xiaoming_global 4 年 前
コミット
906109067b

+ 3 - 0
build/webpack.base.conf.js ファイルの表示

@@ -24,6 +24,9 @@ module.exports = {
24 24
   entry: {
25 25
     app: './src/main.js'
26 26
   },
27
+  externals: {
28
+    "BMap": "BMap"
29
+  },
27 30
   output: {
28 31
     path: config.build.assetsRoot,
29 32
     filename: '[name].js',

+ 2 - 0
index.html ファイルの表示

@@ -20,5 +20,7 @@
20 20
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.parse.min.js"></script>
21 21
     <div id="app"></div>
22 22
     <!-- built files will be auto injected -->
23
+    <script src='http://api.map.baidu.com/api?v=2.0&ak=?&callback=init'></script>
24
+    
23 25
   </body>
24 26
 </html>

+ 159 - 145
package-lock.json ファイルの表示

@@ -333,7 +333,6 @@
333 333
       "version": "1.0.10",
334 334
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
335 335
       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
336
-      "dev": true,
337 336
       "requires": {
338 337
         "sprintf-js": "~1.0.2"
339 338
       }
@@ -1550,6 +1549,34 @@
1550 1549
       "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==",
1551 1550
       "dev": true
1552 1551
     },
1552
+    "bmaplib.curveline": {
1553
+      "version": "1.0.0",
1554
+      "resolved": "https://registry.npmjs.org/bmaplib.curveline/-/bmaplib.curveline-1.0.0.tgz",
1555
+      "integrity": "sha512-9wcFMVhiYxNPqpvsLDAADn3qDhNzXp2mA6VyHSHg2XOAgSooC7ZiujdFhy0sp+0QYjTfJ/MjmLuNoUg2HHxH4Q=="
1556
+    },
1557
+    "bmaplib.heatmap": {
1558
+      "version": "1.0.4",
1559
+      "resolved": "https://registry.npmjs.org/bmaplib.heatmap/-/bmaplib.heatmap-1.0.4.tgz",
1560
+      "integrity": "sha512-rmhqUARBpUSJ9jXzUI2j7dIOqnc38bqubkx/8a349U2qtw/ulLUwyzRD535OrA8G7w5cz4aPKm6/rNvUAarg/Q=="
1561
+    },
1562
+    "bmaplib.lushu": {
1563
+      "version": "1.0.7",
1564
+      "resolved": "https://registry.npmjs.org/bmaplib.lushu/-/bmaplib.lushu-1.0.7.tgz",
1565
+      "integrity": "sha512-LVvgpESPii6xGxyjnQjq8u+ic4NjvhdCPV/RiSS/PGTUdZKeTDS7prSpleJLZH3ES0+oc0gYn8bw0LtPYUSz2w=="
1566
+    },
1567
+    "bmaplib.markerclusterer": {
1568
+      "version": "1.0.13",
1569
+      "resolved": "https://registry.npmjs.org/bmaplib.markerclusterer/-/bmaplib.markerclusterer-1.0.13.tgz",
1570
+      "integrity": "sha512-VrLyWSiuDEVNi0yUfwOhFQ6z1oEEHS4w36GNu3iASu6p52QIx9uAXMUkuSCHReNR0bj2Cp9SA1dSx5RpojXajQ==",
1571
+      "requires": {
1572
+        "bmaplib.texticonoverlay": "^1.0.2"
1573
+      }
1574
+    },
1575
+    "bmaplib.texticonoverlay": {
1576
+      "version": "1.0.2",
1577
+      "resolved": "https://registry.npmjs.org/bmaplib.texticonoverlay/-/bmaplib.texticonoverlay-1.0.2.tgz",
1578
+      "integrity": "sha512-4ZTWr4ZP3B6qEWput5Tut16CfZgII38YwM3bpyb4gFTQyORlKYryFp9WHWrwZZaHlOyYDAXG9SX0hka43jTADg=="
1579
+    },
1553 1580
     "bn.js": {
1554 1581
       "version": "4.11.8",
1555 1582
       "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
@@ -1906,14 +1933,6 @@
1906 1933
         }
1907 1934
       }
1908 1935
     },
1909
-    "can-promise": {
1910
-      "version": "0.0.1",
1911
-      "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz",
1912
-      "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==",
1913
-      "requires": {
1914
-        "window-or-global": "^1.0.1"
1915
-      }
1916
-    },
1917 1936
     "caniuse-api": {
1918 1937
       "version": "1.6.1",
1919 1938
       "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
@@ -2353,7 +2372,6 @@
2353 2372
       "version": "1.9.3",
2354 2373
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2355 2374
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2356
-      "dev": true,
2357 2375
       "requires": {
2358 2376
         "color-name": "1.1.3"
2359 2377
       }
@@ -2361,8 +2379,7 @@
2361 2379
     "color-name": {
2362 2380
       "version": "1.1.3",
2363 2381
       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2364
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
2365
-      "dev": true
2382
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
2366 2383
     },
2367 2384
     "color-string": {
2368 2385
       "version": "0.3.0",
@@ -3582,6 +3599,11 @@
3582 3599
         "minimalistic-crypto-utils": "^1.0.0"
3583 3600
       }
3584 3601
     },
3602
+    "emoji-regex": {
3603
+      "version": "7.0.3",
3604
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
3605
+      "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
3606
+    },
3585 3607
     "emojis-list": {
3586 3608
       "version": "2.1.0",
3587 3609
       "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
@@ -3597,6 +3619,7 @@
3597 3619
       "version": "1.4.1",
3598 3620
       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
3599 3621
       "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
3622
+      "dev": true,
3600 3623
       "requires": {
3601 3624
         "once": "^1.4.0"
3602 3625
       }
@@ -3616,8 +3639,7 @@
3616 3639
     "entities": {
3617 3640
       "version": "1.1.2",
3618 3641
       "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
3619
-      "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
3620
-      "dev": true
3642
+      "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
3621 3643
     },
3622 3644
     "errno": {
3623 3645
       "version": "0.1.7",
@@ -6763,6 +6785,14 @@
6763 6785
         "immediate": "~3.0.5"
6764 6786
       }
6765 6787
     },
6788
+    "linkify-it": {
6789
+      "version": "2.2.0",
6790
+      "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
6791
+      "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
6792
+      "requires": {
6793
+        "uc.micro": "^1.0.1"
6794
+      }
6795
+    },
6766 6796
     "lint-staged": {
6767 6797
       "version": "7.2.0",
6768 6798
       "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.2.0.tgz",
@@ -7241,14 +7271,6 @@
7241 7271
         "pify": "^3.0.0"
7242 7272
       }
7243 7273
     },
7244
-    "map-age-cleaner": {
7245
-      "version": "0.1.3",
7246
-      "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
7247
-      "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
7248
-      "requires": {
7249
-        "p-defer": "^1.0.0"
7250
-      }
7251
-    },
7252 7274
     "map-cache": {
7253 7275
       "version": "0.2.2",
7254 7276
       "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
@@ -7270,6 +7292,18 @@
7270 7292
         "object-visit": "^1.0.0"
7271 7293
       }
7272 7294
     },
7295
+    "markdown-it": {
7296
+      "version": "8.4.2",
7297
+      "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
7298
+      "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
7299
+      "requires": {
7300
+        "argparse": "^1.0.7",
7301
+        "entities": "~1.1.1",
7302
+        "linkify-it": "^2.0.0",
7303
+        "mdurl": "^1.0.1",
7304
+        "uc.micro": "^1.0.5"
7305
+      }
7306
+    },
7273 7307
     "marked": {
7274 7308
       "version": "0.6.2",
7275 7309
       "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz",
@@ -7298,6 +7332,11 @@
7298 7332
         "safe-buffer": "^5.1.2"
7299 7333
       }
7300 7334
     },
7335
+    "mdurl": {
7336
+      "version": "1.0.1",
7337
+      "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
7338
+      "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
7339
+    },
7301 7340
     "media-typer": {
7302 7341
       "version": "0.3.0",
7303 7342
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -7632,11 +7671,6 @@
7632 7671
       "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
7633 7672
       "dev": true
7634 7673
     },
7635
-    "nice-try": {
7636
-      "version": "1.0.5",
7637
-      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
7638
-      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
7639
-    },
7640 7674
     "no-case": {
7641 7675
       "version": "2.3.2",
7642 7676
       "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
@@ -8104,6 +8138,7 @@
8104 8138
       "version": "1.4.0",
8105 8139
       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
8106 8140
       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
8141
+      "dev": true,
8107 8142
       "requires": {
8108 8143
         "wrappy": "1"
8109 8144
       }
@@ -8266,21 +8301,11 @@
8266 8301
         "os-tmpdir": "^1.0.0"
8267 8302
       }
8268 8303
     },
8269
-    "p-defer": {
8270
-      "version": "1.0.0",
8271
-      "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
8272
-      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
8273
-    },
8274 8304
     "p-finally": {
8275 8305
       "version": "1.0.0",
8276 8306
       "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
8277 8307
       "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
8278 8308
     },
8279
-    "p-is-promise": {
8280
-      "version": "2.1.0",
8281
-      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
8282
-      "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
8283
-    },
8284 8309
     "p-limit": {
8285 8310
       "version": "1.3.0",
8286 8311
       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
@@ -11342,46 +11367,42 @@
11342 11367
       "dev": true
11343 11368
     },
11344 11369
     "qrcode": {
11345
-      "version": "1.3.3",
11346
-      "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.3.tgz",
11347
-      "integrity": "sha512-SH7V13AcJusH3GT8bMNOGz4w0L+LjcpNOU/NiOgtBhT/5DoWeZE6D5ntMJnJ84AMkoaM4kjJJoHoh9g++8lWFg==",
11370
+      "version": "1.4.1",
11371
+      "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.1.tgz",
11372
+      "integrity": "sha512-3JhHQJkKqJL4PfoM6t+B40f0GWv9eNJAJmuNx2X/sHEOLvMyvEPN8GfbdN1qmr19O8N2nLraOzeWjXocHz1S4w==",
11348 11373
       "requires": {
11349
-        "can-promise": "0.0.1",
11350 11374
         "dijkstrajs": "^1.0.1",
11351 11375
         "isarray": "^2.0.1",
11352 11376
         "pngjs": "^3.3.0",
11353
-        "yargs": "^12.0.5"
11377
+        "yargs": "^13.2.4"
11354 11378
       },
11355 11379
       "dependencies": {
11380
+        "ansi-regex": {
11381
+          "version": "4.1.0",
11382
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
11383
+          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
11384
+        },
11385
+        "ansi-styles": {
11386
+          "version": "3.2.1",
11387
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11388
+          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
11389
+          "requires": {
11390
+            "color-convert": "^1.9.0"
11391
+          }
11392
+        },
11356 11393
         "camelcase": {
11357 11394
           "version": "5.3.1",
11358 11395
           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
11359 11396
           "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
11360 11397
         },
11361
-        "cross-spawn": {
11362
-          "version": "6.0.5",
11363
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
11364
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
11365
-          "requires": {
11366
-            "nice-try": "^1.0.4",
11367
-            "path-key": "^2.0.1",
11368
-            "semver": "^5.5.0",
11369
-            "shebang-command": "^1.2.0",
11370
-            "which": "^1.2.9"
11371
-          }
11372
-        },
11373
-        "execa": {
11374
-          "version": "1.0.0",
11375
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
11376
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
11398
+        "cliui": {
11399
+          "version": "5.0.0",
11400
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
11401
+          "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
11377 11402
           "requires": {
11378
-            "cross-spawn": "^6.0.0",
11379
-            "get-stream": "^4.0.0",
11380
-            "is-stream": "^1.1.0",
11381
-            "npm-run-path": "^2.0.0",
11382
-            "p-finally": "^1.0.0",
11383
-            "signal-exit": "^3.0.0",
11384
-            "strip-eof": "^1.0.0"
11403
+            "string-width": "^3.1.0",
11404
+            "strip-ansi": "^5.2.0",
11405
+            "wrap-ansi": "^5.1.0"
11385 11406
           }
11386 11407
         },
11387 11408
         "find-up": {
@@ -11392,31 +11413,15 @@
11392 11413
             "locate-path": "^3.0.0"
11393 11414
           }
11394 11415
         },
11395
-        "get-stream": {
11396
-          "version": "4.1.0",
11397
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
11398
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
11399
-          "requires": {
11400
-            "pump": "^3.0.0"
11401
-          }
11402
-        },
11403
-        "invert-kv": {
11404
-          "version": "2.0.0",
11405
-          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
11406
-          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="
11416
+        "get-caller-file": {
11417
+          "version": "2.0.5",
11418
+          "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
11419
+          "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
11407 11420
         },
11408 11421
         "isarray": {
11409
-          "version": "2.0.4",
11410
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz",
11411
-          "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA=="
11412
-        },
11413
-        "lcid": {
11414
-          "version": "2.0.0",
11415
-          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
11416
-          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
11417
-          "requires": {
11418
-            "invert-kv": "^2.0.0"
11419
-          }
11422
+          "version": "2.0.5",
11423
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
11424
+          "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
11420 11425
         },
11421 11426
         "locate-path": {
11422 11427
           "version": "3.0.0",
@@ -11427,31 +11432,6 @@
11427 11432
             "path-exists": "^3.0.0"
11428 11433
           }
11429 11434
         },
11430
-        "mem": {
11431
-          "version": "4.3.0",
11432
-          "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
11433
-          "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
11434
-          "requires": {
11435
-            "map-age-cleaner": "^0.1.1",
11436
-            "mimic-fn": "^2.0.0",
11437
-            "p-is-promise": "^2.0.0"
11438
-          }
11439
-        },
11440
-        "mimic-fn": {
11441
-          "version": "2.1.0",
11442
-          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
11443
-          "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
11444
-        },
11445
-        "os-locale": {
11446
-          "version": "3.1.0",
11447
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
11448
-          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
11449
-          "requires": {
11450
-            "execa": "^1.0.0",
11451
-            "lcid": "^2.0.0",
11452
-            "mem": "^4.0.0"
11453
-          }
11454
-        },
11455 11435
         "p-limit": {
11456 11436
           "version": "2.2.0",
11457 11437
           "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
@@ -11473,43 +11453,65 @@
11473 11453
           "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
11474 11454
           "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
11475 11455
         },
11476
-        "pump": {
11477
-          "version": "3.0.0",
11478
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
11479
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
11456
+        "require-main-filename": {
11457
+          "version": "2.0.0",
11458
+          "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
11459
+          "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
11460
+        },
11461
+        "string-width": {
11462
+          "version": "3.1.0",
11463
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
11464
+          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
11480 11465
           "requires": {
11481
-            "end-of-stream": "^1.1.0",
11482
-            "once": "^1.3.1"
11466
+            "emoji-regex": "^7.0.1",
11467
+            "is-fullwidth-code-point": "^2.0.0",
11468
+            "strip-ansi": "^5.1.0"
11483 11469
           }
11484 11470
         },
11485
-        "semver": {
11486
-          "version": "5.7.0",
11487
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
11488
-          "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
11471
+        "strip-ansi": {
11472
+          "version": "5.2.0",
11473
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
11474
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
11475
+          "requires": {
11476
+            "ansi-regex": "^4.1.0"
11477
+          }
11478
+        },
11479
+        "wrap-ansi": {
11480
+          "version": "5.1.0",
11481
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
11482
+          "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
11483
+          "requires": {
11484
+            "ansi-styles": "^3.2.0",
11485
+            "string-width": "^3.0.0",
11486
+            "strip-ansi": "^5.0.0"
11487
+          }
11488
+        },
11489
+        "y18n": {
11490
+          "version": "4.0.0",
11491
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
11492
+          "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
11489 11493
         },
11490 11494
         "yargs": {
11491
-          "version": "12.0.5",
11492
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
11493
-          "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
11495
+          "version": "13.3.0",
11496
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
11497
+          "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
11494 11498
           "requires": {
11495
-            "cliui": "^4.0.0",
11496
-            "decamelize": "^1.2.0",
11499
+            "cliui": "^5.0.0",
11497 11500
             "find-up": "^3.0.0",
11498
-            "get-caller-file": "^1.0.1",
11499
-            "os-locale": "^3.0.0",
11501
+            "get-caller-file": "^2.0.1",
11500 11502
             "require-directory": "^2.1.1",
11501
-            "require-main-filename": "^1.0.1",
11503
+            "require-main-filename": "^2.0.0",
11502 11504
             "set-blocking": "^2.0.0",
11503
-            "string-width": "^2.0.0",
11505
+            "string-width": "^3.0.0",
11504 11506
             "which-module": "^2.0.0",
11505
-            "y18n": "^3.2.1 || ^4.0.0",
11506
-            "yargs-parser": "^11.1.1"
11507
+            "y18n": "^4.0.0",
11508
+            "yargs-parser": "^13.1.1"
11507 11509
           }
11508 11510
         },
11509 11511
         "yargs-parser": {
11510
-          "version": "11.1.1",
11511
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
11512
-          "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
11512
+          "version": "13.1.1",
11513
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
11514
+          "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
11513 11515
           "requires": {
11514 11516
             "camelcase": "^5.0.0",
11515 11517
             "decamelize": "^1.2.0"
@@ -13098,8 +13100,7 @@
13098 13100
     "sprintf-js": {
13099 13101
       "version": "1.0.3",
13100 13102
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
13101
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
13102
-      "dev": true
13103
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
13103 13104
     },
13104 13105
     "ssf": {
13105 13106
       "version": "0.10.2",
@@ -13939,6 +13940,11 @@
13939 13940
       "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.0.3.tgz",
13940 13941
       "integrity": "sha1-VNjrx5SfGngQkItgAsaEFSbJnVo="
13941 13942
     },
13943
+    "uc.micro": {
13944
+      "version": "1.0.6",
13945
+      "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
13946
+      "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
13947
+    },
13942 13948
     "uglify-js": {
13943 13949
       "version": "3.4.10",
13944 13950
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
@@ -14283,6 +14289,18 @@
14283 14289
       "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz",
14284 14290
       "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ=="
14285 14291
     },
14292
+    "vue-baidu-map": {
14293
+      "version": "0.21.22",
14294
+      "resolved": "https://registry.npmjs.org/vue-baidu-map/-/vue-baidu-map-0.21.22.tgz",
14295
+      "integrity": "sha512-WQMPCih4UTh0AZCKKH/OVOYnyAWjfRNeK6BIeoLmscyY5aF8zzlJhz/NOHLb3mdztIpB0Z6aohn4Jd9mfCSjQw==",
14296
+      "requires": {
14297
+        "bmaplib.curveline": "^1.0.0",
14298
+        "bmaplib.heatmap": "^1.0.4",
14299
+        "bmaplib.lushu": "^1.0.7",
14300
+        "bmaplib.markerclusterer": "^1.0.13",
14301
+        "markdown-it": "^8.4.0"
14302
+      }
14303
+    },
14286 14304
     "vue-count-to": {
14287 14305
       "version": "1.0.13",
14288 14306
       "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
@@ -15163,11 +15181,6 @@
15163 15181
         "string-width": "^1.0.2 || 2"
15164 15182
       }
15165 15183
     },
15166
-    "window-or-global": {
15167
-      "version": "1.0.1",
15168
-      "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz",
15169
-      "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4="
15170
-    },
15171 15184
     "window-size": {
15172 15185
       "version": "0.1.0",
15173 15186
       "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
@@ -15234,7 +15247,8 @@
15234 15247
     "wrappy": {
15235 15248
       "version": "1.0.2",
15236 15249
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
15237
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
15250
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
15251
+      "dev": true
15238 15252
     },
15239 15253
     "write": {
15240 15254
       "version": "0.2.1",

+ 2 - 1
package.json ファイルの表示

@@ -59,7 +59,7 @@
59 59
     "normalize.css": "7.0.0",
60 60
     "nprogress": "0.2.0",
61 61
     "print-js": "^1.0.50",
62
-    "qrcode": "^1.3.3",
62
+    "qrcode": "^1.4.1",
63 63
     "qrcodejs2": "0.0.2",
64 64
     "screenfull": "4.2.0",
65 65
     "serve-static": "1.13.2",
@@ -69,6 +69,7 @@
69 69
     "spark-md5": "^3.0.0",
70 70
     "swiper": "^4.5.0",
71 71
     "vue": "2.5.16",
72
+    "vue-baidu-map": "^0.21.22",
72 73
     "vue-count-to": "1.0.13",
73 74
     "vue-i18n": "7.3.2",
74 75
     "vue-infinite-scroll": "^2.0.2",

+ 1 - 1
src/App.vue ファイルの表示

@@ -20,7 +20,7 @@
20 20
     methods: {
21 21
        reload(){
22 22
          this.isRouterAlive = false;
23
-         this.$$nextTick(function(){
23
+         this.$nextTick(function(){
24 24
            this.isRouterAlive = true;
25 25
          })
26 26
        }

+ 14 - 1
src/api/act/submitinfo.js ファイルの表示

@@ -35,10 +35,23 @@ export function GetAllArticles(status,id,keyword,limit,page){
35 35
 }
36 36
 
37 37
 export function addCategory(data){
38
+    console.log("添加分类名称?",data)
38 39
     return request({
39 40
         url:'/api/article/addCategory',
40 41
         method:'Post',
41
-        data:data
42
+        data:data,
43
+    })
44
+}
45
+
46
+export function getAritcleCount(name){
47
+    console.log("分类名称",name);
48
+    const params = {
49
+        name:name,
50
+    }
51
+    return request({
52
+        url:"/api/article/getAritcleCount",
53
+        method:'Post',
54
+        params:params,
42 55
     })
43 56
 }
44 57
 

+ 197 - 12
src/api/site/site.js ファイルの表示

@@ -1,7 +1,7 @@
1 1
 import request from '@/utils/request'
2 2
 
3 3
 export function AddRotationChart(data){
4
-    console.log("新增轮播图",data);
4
+   
5 5
     return request({
6 6
         url:"/api/site/addrotationchart",
7 7
         method:"Post",
@@ -9,8 +9,17 @@ export function AddRotationChart(data){
9 9
     })
10 10
 }
11 11
 
12
+export function addRotationUpload(data){
13
+   
14
+    return request({
15
+        url:"/api/site/addrotationupload",
16
+        method:"Post",
17
+        data:data,
18
+    })
19
+}
20
+
12 21
 export function saveHispital(data){
13
-    console.log("添加医院",data);
22
+   
14 23
     return request({
15 24
         url:"/api/site/savehispital",
16 25
         method:"Post",
@@ -19,7 +28,7 @@ export function saveHispital(data){
19 28
 }
20 29
 
21 30
 export function addOffices(data){
22
-    console.log("添加科室",data);
31
+  
23 32
     return request({
24 33
         url:"/api/site/addoffices",
25 34
         method:"Post",
@@ -28,7 +37,7 @@ export function addOffices(data){
28 37
 }
29 38
 
30 39
 export function AddDoctor(data){
31
-    console.log("添加名医",data);
40
+   
32 41
     return request({
33 42
         url:"/api/site/adddoctor",
34 43
         method:"Post",
@@ -37,7 +46,7 @@ export function AddDoctor(data){
37 46
 }
38 47
 
39 48
 export function AddDoctorInfo(data){
40
-   console.log("编辑名医介绍",data);
49
+  
41 50
    return request({
42 51
        url:"/api/site/adddoctorinfo",
43 52
        method:"Post",
@@ -46,7 +55,7 @@ export function AddDoctorInfo(data){
46 55
 }
47 56
 
48 57
 export function AddOfficeEnvironment(data){
49
-   console.log("新增科室环境",data);
58
+   
50 59
    return request({
51 60
        url:"/api/site/keenvironment",
52 61
        method:"Post",
@@ -55,7 +64,7 @@ export function AddOfficeEnvironment(data){
55 64
 }
56 65
 
57 66
 export function GetRationImages(params){
58
-    console.log("获取轮播图片",params)
67
+  
59 68
     return request({
60 69
         url:"/api/site/getrationimages",
61 70
         method:'Get',
@@ -64,7 +73,7 @@ export function GetRationImages(params){
64 73
 }
65 74
 
66 75
 export function GetHospitalInfo(params){
67
-   console.log("获取医院信息",params)
76
+  
68 77
    return request({
69 78
        url:"/api/site/gethospitalinfo",
70 79
        method:'Get',
@@ -73,7 +82,7 @@ export function GetHospitalInfo(params){
73 82
 }
74 83
 
75 84
 export function GetOfficeInfo(params){
76
-   console.log("获取科室信息",params)
85
+  
77 86
    return request({
78 87
        url:"/api/site/getofficeinfo",
79 88
        method:'Get',
@@ -82,7 +91,7 @@ export function GetOfficeInfo(params){
82 91
 }
83 92
 
84 93
 export function GetDoctorInfo(params){
85
-    console.log("获取名医介绍",params)
94
+    
86 95
     return request({
87 96
         url:"/api/site/getdoctorinfo",
88 97
         method:'Get',
@@ -90,11 +99,187 @@ export function GetDoctorInfo(params){
90 99
     })
91 100
 }
92 101
 
102
+export function editDoctor(id,data){
103
+  
104
+    return request({
105
+        url:"/api/site/editdoctor?id="+id,
106
+        method:'Get',
107
+        data:data,
108
+    })
109
+}
110
+
111
+export function getQueryDocInfo(params){
112
+
113
+    return request({
114
+        url:"/api/site/getquerydocinfo",
115
+        method:"Post",
116
+        params:params,
117
+    })
118
+}
119
+
120
+export function getQueryDoCHead(params){
121
+   return request({
122
+       url:"/api/site/getquerydochead",
123
+       method:"Post",
124
+       params:params,
125
+   })
126
+}
127
+
93 128
 export function GetOffEnvironment(params){
94
-   console.log("获取科室环境",params)
129
+   
95 130
    return request({
96 131
        url:"/api/site/getOffEnvironment",
97 132
        method:'Get',
98 133
        params:params,
99 134
    })
100
-}
135
+}
136
+
137
+export function addconnection(data){
138
+ 
139
+   return request({
140
+       url:"/api/site/addconnection",
141
+       method:"Post",
142
+       data:data,
143
+   })
144
+}
145
+
146
+export function addWorkTime(data){
147
+   
148
+    return request({
149
+        url:"/api/site/addworktime",
150
+        method:"Post",
151
+        data:data,
152
+    })
153
+ }
154
+
155
+export function addRideWay(data){
156
+  
157
+   return request({
158
+       url:"/api/site/addrideway",
159
+       method:"Post",
160
+       data:data,
161
+   })
162
+}
163
+
164
+export function queryConnetion(params){
165
+  
166
+   return request({
167
+       url:"/api/site/queryconnetion",
168
+       method:"Get",
169
+       params:params,
170
+   })
171
+}
172
+
173
+export function deleteConnecWay(id,data){
174
+ 
175
+   return request({
176
+       url:"/api/site/delete?id="+id,
177
+       method:"Get",
178
+       data:data,
179
+   })
180
+}
181
+
182
+export function editConnecWay(id,data){
183
+   return request({
184
+       url:"/api/site/editconnecway?id="+id,
185
+       method:"Get",
186
+       data:data,
187
+   })
188
+}
189
+
190
+export function saveConnecform(id,data){
191
+   
192
+    return request({
193
+        url:"/api/site/saveconnection?id="+id,
194
+        method:"Post",
195
+        data:data,
196
+    })
197
+}
198
+
199
+export function addContract(data){
200
+ 
201
+   return request({
202
+       url:"/api/site/addcontract",
203
+       method:"Post",
204
+       data:data,
205
+   })
206
+}
207
+
208
+export function GetUserdModel(params){
209
+   
210
+    return request({
211
+        url:"/api/site/getuserdmodel",
212
+        method:"Post",
213
+        params:params,
214
+    })
215
+}
216
+
217
+export function eidtmodel(id,data){
218
+  
219
+   return request({
220
+       url:"/api/site/eidtmodel?id="+id,
221
+       method:"Get",
222
+       data:data,
223
+   })
224
+}
225
+
226
+export function editRideWay(id,data){
227
+  return request({
228
+      url:"/api/site/editrideway?id="+id,
229
+      method:"Get",
230
+      data:data,
231
+  })
232
+}
233
+
234
+export function SaveWorkTime(id,data){
235
+ 
236
+  return request({
237
+      url:"/api/site/saveworktime?id="+id,
238
+      method:"Post",
239
+      data:data,
240
+  })
241
+}
242
+
243
+export function saverideway(id,data){
244
+ 
245
+    return request({
246
+        url:"/api/site/saverideway?id="+id,
247
+        method:"Post",
248
+        data:data,
249
+    })
250
+}
251
+
252
+export function getQueryNewModel(params){
253
+  
254
+   return request({
255
+       url:"/api/site/getquerynewmodel",
256
+       method:"Post",
257
+       params:params,
258
+   })
259
+}
260
+
261
+export function change(id,data){
262
+   // console.log("编辑医生返回数据",id)
263
+    return request({
264
+       url:"/api/site/change?id="+id,
265
+       method:"Get",
266
+       data:data,
267
+    })
268
+}
269
+
270
+export function saveDocInfo(id,data){
271
+    return request({
272
+       url:"/api/site/savedocinfo?id="+id,
273
+       method:"Post",
274
+       data:data,
275
+    })
276
+}
277
+
278
+export function deleteDoctor(id,data){
279
+   return request({
280
+       url:"/api/site/deletedoctor?id="+id,
281
+       method:"Get",
282
+       data:data,
283
+   })
284
+}
285
+

+ 5 - 0
src/main.js ファイルの表示

@@ -32,6 +32,7 @@ import vuescroll from 'vuescroll'
32 32
 import { read } from 'fs';
33 33
 import 'vuescroll/dist/vuescroll.css';
34 34
 import 'swiper/dist/css/swiper.min.css'
35
+import BaiduMap from 'vue-baidu-map'
35 36
 Vue.use(vuescroll)
36 37
 Vue.use(Element, {
37 38
   size: 'medium', // set element-ui default size
@@ -54,3 +55,7 @@ new Vue({
54 55
 })
55 56
 
56 57
 Vue.prototype.Base64 = require('js-base64').Base64
58
+Vue.use(BaiduMap, {
59
+  // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
60
+  ak: 'YOUR_APP_KEY'
61
+})

+ 11 - 2
src/scrm_pages/article/acticleCategory.vue ファイルの表示

@@ -91,7 +91,7 @@
91 91
   import BreadCrumb from '../components/bread-crumb'
92 92
   import CreateArticleForm from "./components/CreateArticleForm";
93 93
   import EditArticleForm from "./components/EditArticleForm";
94
-  import { GetCategorys,DeleteCategorys } from '@/api/act/submitinfo';
94
+  import { GetCategorys,DeleteCategorys,getAritcleCount } from '@/api/act/submitinfo';
95 95
   export default {
96 96
     name: 'acticleCategory',
97 97
     components:{
@@ -112,6 +112,7 @@
112 112
           order:'',
113 113
           id:0,
114 114
         },
115
+        articname:[],
115 116
         total:0,
116 117
         listQuery:{
117 118
           page:1,
@@ -134,6 +135,7 @@
134 135
              console.log(response.data.state)
135 136
              if(response.data.state === 1){
136 137
                this.articsData = response.data.data.category; 
138
+               var articsData = response.data.data.category; 
137 139
                console.log(this.articsData)
138 140
                this.total = response.data.data.total;
139 141
                console.log("多少",this.total)
@@ -229,9 +231,16 @@
229 231
             return false        
230 232
           });
231 233
         },
234
+        getAritcleCount(){       
235
+          getAritcleCount(this.articsData.name).then(response=>{
236
+              console.log("好烦啊",this.articsData.name)
237
+          })
238
+        }
232 239
     },
233 240
      created(){
234
-         this.GetCategorys()
241
+         this.GetCategorys();
242
+         this.getAritcleCount();
243
+
235 244
        }
236 245
   }
237 246
 </script>

+ 18 - 9
src/scrm_pages/article/components/CreateArticleForm.vue ファイルの表示

@@ -41,7 +41,7 @@
41 41
 </template>
42 42
 
43 43
 <script>
44
-    import { addCategory } from '@/api/act/submitinfo'
44
+    import { addCategory,getAritcleCount } from '@/api/act/submitinfo'
45 45
     export default {
46 46
         name: "CreateArticleForm",       
47 47
            props:{
@@ -58,13 +58,14 @@
58 58
                     rules: {
59 59
                     name: [{required: true, message: "请填写分类名称",},],
60 60
                     summary: [{required: true,message:"请填写分类描述"}],
61
-                    order: [{required: true,message:"请填写排序"}]
61
+                    order: [{required: true,message:"请填写排序"}],
62 62
                  },
63 63
                 acticleform:[],
64 64
                  form:{
65 65
                     name:"",
66 66
                     summary:"",
67 67
                     order:"",
68
+                   
68 69
                    },
69 70
              }
70 71
           },   
@@ -77,28 +78,36 @@
77 78
                      this.$refs[formName].resetFields();
78 79
                    }
79 80
                   },
80
-               addCategory(formName){                 
81
+               addCategory(formName){   
81 82
                    this.$refs[formName].validate((valid)=>{
82
-                       if(valid){                         
83
-                            addCategory(this.form).then(response =>{
83
+                       if(valid){   
84
+                            var params = new Object();
85
+                            params.name = this.form.name;      
86
+                             params.summary = this.form.summary;
87
+                            params.order = this.form.order;       
88
+                            console.log("对象params是什么?",params);         
89
+                            addCategory(params).then(response =>{
84 90
                                   console.log("添加分类响应",response.data.state)
85 91
                                   if(response.data.state==1){
86
-                                    var category = response.data.data.category
92
+                                    var category = response.data.data.category;
87 93
                                     console.log("category是什么",category)
88 94
                                     this.centerDialogVisible=false;
89 95
                                     this.articsData.unshift(category);
90 96
                                     this.resetForm("acticleform");
91 97
                                     this.$message.success("添加分类成功");                           
98
+                                  }else{
99
+                                    this.$message.error("该分类名称已存在");
100
+                                    
92 101
                                   }
93
-                            });
102
+                            }).catch(e=>{})
94 103
                        }   
95 104
                    });         
96 105
               },  
97
-          }
106
+          },
98 107
       }  
99 108
 </script>
100 109
 
101 110
 <style scoped>
102
-
111
+   
103 112
 </style>
104 113
    

+ 2 - 0
src/scrm_pages/article/components/EditArticleForm.vue ファイルの表示

@@ -96,6 +96,8 @@ export default {
96 96
                               this.articsData[this.artilceIndex].order = categorys.order;
97 97
                               this.centerDialogVisible = false;
98 98
                               this.$message.success("编辑文章分类成功");
99
+                           }else{
100
+                             this.$message.error("该分类名称已存在")
99 101
                            }
100 102
                       })
101 103
                    }

+ 448 - 101
src/scrm_pages/site/components/add-contact.vue ファイルの表示

@@ -1,6 +1,7 @@
1 1
 <template>
2 2
     <div>
3 3
          <div class="feature ">
4
+
4 5
             <ul >
5 6
                 <li @click="slideshow = true">
6 7
                     <span>
@@ -8,7 +9,7 @@
8 9
                         <p>轮播图</p>  
9 10
                     </span>
10 11
                 </li>
11
-                <li @click="address = true">
12
+                <li @click="hospitaAddress()">
12 13
                     <span>
13 14
                         <img :src="new2" alt="" style="width:40px;height:40px">
14 15
                         <p>医院地址</p>  
@@ -34,56 +35,83 @@
34 35
                 </li>
35 36
             </ul>
36 37
          </div>
38
+
37 39
 <!-- 轮播图 -->
38 40
 <el-dialog
39 41
     title="新增轮播图"
40 42
     :visible.sync="slideshow"
41 43
     width="550px"
42
-    :before-close="handleClose">
43
-    <el-form ref="form" :model="form" label-width="80px">
44
-      <el-form-item label="模块标题: ">
45
-        <el-input v-model="form.name"></el-input>
44
+    >
45
+    <el-form ref="rotationform" :model="rotationform" label-width="90px" :rules="rules" :label-position="labelPosition">
46
+      <el-form-item label="模块标题:" required prop="title">      
47
+        <el-input v-model="rotationform.title" ></el-input>
46 48
       </el-form-item>
47
-      <el-form-item label="排序值: ">
48
-        <el-input v-model="form.name"></el-input>
49
+      <el-form-item label="排序值:" required prop="sort">
50
+        <el-input v-model="rotationform.sort"></el-input>
49 51
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
50 52
       </el-form-item>
51
-      <el-form-item label="添加图片: ">
52
-        <el-upload
53
-          action="https://jsonplaceholder.typicode.com/posts/"
53
+      <el-form-item label="添加图片:" v-model="rotationform.rotationImages" required prop="rotationImages">
54
+         <el-upload
55
+          :data="rotationData"
56
+          action="https://upload.qiniup.com"
54 57
           list-type="picture-card"
55
-          :on-preview="handlePictureCardPreview"
56
-          :on-remove="handleRemove">
57
-          <i class="el-icon-plus"></i>
58
-        </el-upload>
58
+          :on-success="RotationchartSuccess"
59
+         :before-upload="beforeRotationUpload"
60
+         >
61
+        <i slot="default" class="el-icon-plus"></i>
62
+        <div slot="file" slot-scope="{file}">
63
+          <img
64
+           class="el-upload-list__item-thumbnail"
65
+           :src="file.url"
66
+          >
67
+        <span class="el-upload-list__item-actions"> 
68
+         <span
69
+           v-if="!disabled"
70
+           class="el-upload-list__item-delete"
71
+         >
72
+         <i class="el-icon-edit-outline" @click="rotationEditImages('rotationform')"></i>
73
+          </span> 
74
+         <span
75
+           v-if="!disabled"
76
+           class="el-upload-list__item-delete"
77
+         >
78
+          <i class="el-icon-delete"></i>
79
+          </span> 
80
+         </span> 
81
+        </div> 
82
+     </el-upload>
59 83
       </el-form-item>
60 84
     </el-form>
61 85
     <span slot="footer" class="dialog-footer">
62 86
       <el-button @click="slideshow = false">取 消</el-button>
63
-      <el-button type="primary" @click="slideshow = false">确 定</el-button>
87
+      <el-button type="primary" @click="addRotationUpload('rotationform');">确 定</el-button>
64 88
     </span>
65 89
   </el-dialog>
66 90
 
67 91
   <!-- 医院地址 -->
68 92
   <el-dialog
69
-    title="新增轮播图"
70
-    :visible.sync="address"
93
+    title="新增医院地址"
94
+    :visible.sync="hostaddress"
71 95
     width="550px"
72
-    :before-close="handleClose">
73
-    <el-form ref="form" :model="form" label-width="80px">
96
+   >
97
+    <el-form ref="hospitalform" :model="hospitalform" label-width="80px">
74 98
       <el-form-item label="模块标题: ">
75
-        <el-input v-model="form.name"></el-input>
99
+        <el-input v-model="hospitalform.title" ></el-input>
76 100
       </el-form-item>
77 101
       <el-form-item label="排序值: ">
78
-        <el-input v-model="form.name"></el-input>
102
+        <el-input v-model="hospitalform.sort"></el-input>
79 103
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
80 104
       </el-form-item>
81
-      <el-form-item label="医院地址: ">
82
-        <el-input v-model="form.name"></el-input>
83
-      </el-form-item>
84
-      <el-form-item label="医院地图: ">
85
-
86
-      </el-form-item>
105
+      
106
+       <el-form-item label="医院地址:">
107
+         <div id="all">
108
+          <el-input id="suggestId"  v-model="hospitalform.address"></el-input>
109
+        </div>
110
+       </el-form-item>
111
+       <el-form-item label="医院地图:">  
112
+        <div id="allmap"></div>  
113
+       </el-form-item>
114
+    
87 115
     </el-form>
88 116
     <span slot="footer" class="dialog-footer">
89 117
       <el-button @click="address = false">取 消</el-button>
@@ -91,35 +119,29 @@
91 119
     </span>
92 120
   </el-dialog>
93 121
 
122
+
94 123
 <!-- 新增联系方式 -->
95 124
 <el-dialog
96 125
     title="新增联系方式"
97 126
     :visible.sync="contact"
98 127
     width="550px"
99
-    :before-close="handleClose">
100
-    <el-form ref="form" :model="form" label-width="80px">
101
-      <el-form-item label="模块标题: ">
102
-        <el-input v-model="form.name"></el-input>
128
+    >
129
+    <el-form ref="contractform" :model="contractform" label-width="90px">
130
+      <el-form-item label="模块标题:" required prop="title">
131
+        <el-input v-model="contractform.title"></el-input>
103 132
       </el-form-item>
104
-      <el-form-item label="排序值: ">
105
-        <el-input v-model="form.name"></el-input>
133
+      <el-form-item label="排序值:" required prop="sort">
134
+        <el-input v-model="contractform.sort"></el-input>
106 135
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
107 136
       </el-form-item>
108
-      <el-form-item label="联系方式: ">
137
+      <el-form-item label="联系方式:" v-model="contractform.way">
109 138
         <div class="used">
110 139
              <ul>
111
-                 <li>
112
-                    <span class="name">医院电话</span>
113
-                    <span class="icon"> 
114
-                        <i class="el-icon-edit-outline" @click="addLink = true"></i>
115
-                        <i class="el-icon-delete" @click="deleteList = true"></i>
116
-                    </span>
117
-                 </li>
118
-                 <li>
119
-                    <span class="name">微信号</span>
140
+                 <li v-for="(item,index) in this.connectionway" :key="item.id">
141
+                    <span class="name">{{item.title}}</span>
120 142
                     <span class="icon"> 
121
-                        <i class="el-icon-edit-outline" @click="addLink = true"></i>
122
-                        <i class="el-icon-delete" @click="deleteList = true"></i>
143
+                        <i class="el-icon-edit-outline" @click="editLink=true;editConnecWay(item.id)"></i>
144
+                        <i class="el-icon-delete" @click="deleteConnecWay(item.id,index)"></i>
123 145
                     </span>
124 146
                  </li>
125 147
              </ul>
@@ -129,46 +151,83 @@
129 151
     <span slot="footer" class="dialog-footer">
130 152
       <el-button @click="addLink = true">添加联系方式</el-button>      
131 153
       <el-button @click="contact = false">取 消</el-button>
132
-      <el-button type="primary" @click="contact = false">确 定</el-button>
154
+      <el-button type="primary" @click="addContract('contractform');contact = false">确 定</el-button>
133 155
     </span>
134 156
   </el-dialog>
135 157
 
136
-
137
-  <!-- 确定删除组件 -->
138
-    <el-dialog
139
-        title="删除提示"
140
-        :visible.sync="deleteList"
141
-        width="550px"
142
-        :before-close="handleClose">
143
-        <span>确认要删除该组件吗?删除后,该组件将无法恢复</span>
144
-        <span slot="footer" class="dialog-footer">
145
-            <el-button @click="deleteList = false">取 消</el-button>
146
-            <el-button type="primary" @click="deleteList = false">确 定</el-button>
147
-        </span>
148
-    </el-dialog>
149
-  <!-- 新增联系方式 -->
158
+  <!-- 添加联系方式内容 -->
150 159
   <el-dialog
151 160
     title="新增联系方式"
152 161
     :visible.sync="addLink"
153 162
     width="550px"
154
-    :before-close="handleClose">
155
-    <el-form ref="form" :model="form" label-width="80px">
156
-        <el-form-item label="标题:">
157
-            <el-input v-model="form.name"></el-input>
163
+    >
164
+    <el-form ref="connecform" :model="connecform" label-width="90px" :rules="rules" >
165
+      <el-row>
166
+        <el-col :span="20">
167
+        <el-form-item label="标题:" required prop="title">
168
+            <el-input v-model="connecform.title" style="width:400px"></el-input>
158 169
         </el-form-item>
159
-        <el-form-item label="联系方式:">
160
-            <el-radio-group v-model="form.resource">
161
-            <el-radio label="电话"></el-radio>
162
-            <el-radio label="非电话"></el-radio>
170
+        </el-col>
171
+      </el-row>
172
+        <el-form-item label="联系方式:" required prop="connecway">
173
+          <el-row>
174
+            <el-col :span="20">
175
+            <el-radio-group v-model="connecform.connecway">
176
+            <el-radio :label="way.id" :value="way.id" v-for="(way,index) in connections" :key="index">{{way.name}}</el-radio>
163 177
             </el-radio-group>
178
+            </el-col>
179
+          </el-row>  
164 180
         </el-form-item>
165
-        <el-form-item label="内容:">
166
-            <el-input v-model="form.name"></el-input>
181
+
182
+        <el-form-item label="内容:" required prop="content">
183
+          <el-row>
184
+            <el-col :span="20">
185
+            <el-input v-model="connecform.content" style="width:400px"></el-input>
186
+            </el-col>
187
+          </el-row>'
167 188
         </el-form-item>
168 189
     </el-form>
169 190
     <span slot="footer" class="dialog-footer">
170 191
         <el-button @click="addLink = false">取 消</el-button>
171
-        <el-button type="primary" @click="addLink = false">确 定</el-button>
192
+        <el-button type="primary" @click="addconnection('connecform');addLink = false">确 定</el-button>
193
+    </span>
194
+  </el-dialog>
195
+
196
+<!-- 编辑联系方式 -->
197
+  <el-dialog
198
+    title="编辑联系方式"
199
+    :visible.sync="editLink"
200
+    width="550px"
201
+    >
202
+    <el-form ref="editconnecform" :model="editconnecform" label-width="90px" :rules="rules" >
203
+      <el-row>
204
+        <el-col :span="20">
205
+        <el-form-item label="标题:" required prop="title">
206
+            <el-input v-model="editconnecform.title" style="width:400px"></el-input>
207
+        </el-form-item>
208
+        </el-col>
209
+      </el-row>
210
+        <el-form-item label="联系方式:" required prop="connecway">
211
+          <el-row>
212
+            <el-col :span="20">
213
+            <el-radio-group v-model="editconnecform.connecway">
214
+            <el-radio :label="way.id" :value="way.id" v-for="(way,index) in connections" :key="index">{{way.name}}</el-radio>
215
+            </el-radio-group>
216
+            </el-col>
217
+          </el-row>  
218
+        </el-form-item>
219
+
220
+        <el-form-item label="内容:" required prop="content">
221
+          <el-row>
222
+            <el-col :span="20">
223
+            <el-input v-model="editconnecform.content" style="width:400px"></el-input>
224
+            </el-col>
225
+          </el-row>'
226
+        </el-form-item>
227
+    </el-form>
228
+    <span slot="footer" class="dialog-footer">
229
+        <el-button @click="editLink = false">取 消</el-button>
230
+        <el-button type="primary" @click="saveConnecform('editconnecform')">确 定</el-button>
172 231
     </span>
173 232
   </el-dialog>
174 233
 
@@ -177,27 +236,27 @@
177 236
     title="新增工作时间"
178 237
     :visible.sync="time"
179 238
     width="550px"
180
-    :before-close="handleClose">
181
-    <el-form ref="form" :model="form" label-width="80px">
182
-      <el-form-item label="模块标题: ">
183
-        <el-input v-model="form.name"></el-input>
239
+   >
240
+    <el-form ref="woketimeform" :model="woketimeform" label-width="90px" :rules="rules">
241
+      <el-form-item label="模块标题:" required prop="title">
242
+        <el-input v-model="woketimeform.title"></el-input>
184 243
       </el-form-item>
185
-      <el-form-item label="排序值: ">
186
-        <el-input v-model="form.name"></el-input>
244
+      <el-form-item label="排序值:" required prop="sort">
245
+        <el-input v-model="woketimeform.sort"></el-input>
187 246
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
188 247
       </el-form-item>
189
-      <el-form-item label="工作时间: ">
248
+      <el-form-item label="工作时间:" required prop="worktime">
190 249
         <el-input
191 250
           type="textarea"
192 251
           :rows="6"
193 252
           placeholder="请输入内容"
194
-          v-model="textarea">
253
+          v-model="woketimeform.worktime">
195 254
         </el-input>
196 255
       </el-form-item>
197 256
     </el-form>
198 257
     <span slot="footer" class="dialog-footer">
199 258
       <el-button @click="time = false">取 消</el-button>
200
-      <el-button type="primary" @click="time = false">确 定</el-button>
259
+      <el-button type="primary" @click="addWorkTime('woketimeform');time = false">确 定</el-button>
201 260
     </span>
202 261
   </el-dialog>
203 262
 
@@ -205,66 +264,354 @@
205 264
  <el-dialog
206 265
     title="新增乘车方式"
207 266
     :visible.sync="type"
208
-    width="550px"
209
-    :before-close="handleClose">
210
-    <el-form ref="form" :model="form" label-width="80px">
211
-      <el-form-item label="模块标题: ">
212
-        <el-input v-model="form.name"></el-input>
267
+    width="550px">
268
+    <el-form ref="rideform" :model="rideform" label-width="90px" :rules="rules" :label-position="labelPosition">
269
+      <template>
270
+      <el-form-item label="模块标题:" required prop="title">
271
+        <el-input v-model="rideform.title"></el-input>
213 272
       </el-form-item>
214
-      <el-form-item label="排序值: ">
215
-        <el-input v-model="form.name"></el-input>
273
+      <el-form-item label="排序值:" required prop="sort">
274
+        <el-input v-model="rideform.sort" ></el-input>
216 275
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
217 276
       </el-form-item>
218
-      <el-form-item label="乘车方式: ">
277
+      <el-form-item label="乘车方式:" required prop="content">
219 278
         <el-input
220 279
           type="textarea"
221 280
           :rows="6"
222 281
           placeholder="请输入内容"
223
-          v-model="textarea">
282
+          v-model="rideform.content">
224 283
         </el-input>
225 284
       </el-form-item>
285
+       </template>
226 286
     </el-form>
227 287
     <span slot="footer" class="dialog-footer">
228 288
       <el-button @click="type = false">取 消</el-button>
229
-      <el-button type="primary" @click="type = false">确 定</el-button>
289
+      <el-button type="primary" @click="addRideWay('rideform');">确 定</el-button>
230 290
     </span>
231
-  </el-dialog>
232
-
233
-
234
-    </div>
291
+   </el-dialog>
292
+  </div>
235 293
 </template>
236 294
 
237 295
 
238 296
 <script>
297
+ import { getToken } from '@/api/qiniu'
298
+ import { getFileExtension} from '@/utils/tools'
299
+ import { addRotationUpload,addRideWay,addWorkTime,addconnection,queryConnetion,deleteConnecWay,editConnecWay,saveConnecform,addContract} from '@/api/site/site'  
300
+import { truncateSync } from 'fs';
239 301
 export default {
240 302
   name: "addcontact",
241 303
   data() {
242 304
     return {
305
+      dialogshow:false,
243 306
       slideshow:false,
244 307
       address:false,
308
+      hostaddress:false,
245 309
       contact:false,
246 310
       addLink:false,
311
+      editLink:false,
247 312
       time:false,
248 313
       type:false,
314
+      disabled: false,
315
+      dialogFormVisibleAdd:true,
316
+      labelPosition: 'left',
317
+      qiniuDomain: 'https://images.shengws.com/',
318
+      rotationData: { token:'',key: '' },
249 319
       new1: require("../../../assets/preview/u481.png"),
250 320
       new2: require("../../../assets/preview/u493.png"),
251 321
       new3: require("../../../assets/preview/u496.png"),
252 322
       new4: require("../../../assets/preview/u488.png"),
253
-      new5: require("../../../assets/preview/u500.png"),
254
-      
323
+      new5: require("../../../assets/preview/u500.png"),    
255 324
       form: {
256
-        name: ""
257
-      }
325
+        name: "",
326
+        sort:"",
327
+        title:"",
328
+      },
329
+      userlocation: {lng: "", lat: ""},
330
+      rotationform:{
331
+        title:"",
332
+        sort:"",
333
+        rotationImages:[],
334
+      },
335
+      rideform:{
336
+        title:"",
337
+        sort:"",
338
+        content:"",
339
+      },
340
+      woketimeform:{
341
+       title:"",
342
+       sort:"",
343
+       worktime:"",
344
+      },
345
+      hospitalform:{
346
+        title:"",
347
+        sort:"",
348
+        address:"",
349
+      },
350
+      connecform:{
351
+        title:"",
352
+        connecway:"",
353
+        content:"",
354
+      },
355
+      editconnecform:{
356
+        title:"",
357
+        connecway:"",
358
+        content:"",
359
+      },
360
+      connections:[
361
+         {id:1,name:'电话'},
362
+         {id:2,name:'非电话'},
363
+      ],
364
+      connectionway:[],
365
+      contractform:{
366
+        title:"",
367
+        sort:"",
368
+        way:[],
369
+      },
370
+      rules: {
371
+        title: [{required: true, message: "请填写模块标题",},],
372
+        sort: [{required: true,message:"请填写排序值"}],       
373
+        rotationImages:[{required:true,message:"请填写添加图片"}],
374
+        content:[{required:true,message:"请填写乘车方式"}],
375
+        worktime:[{required:true,message:"请填写工作时间"}],
376
+        connecway:[{required:true,message:"请选择联系方式"}]
377
+      },
378
+
258 379
     };
259 380
   },
260 381
   methods:{
261
-    
262
-  }
382
+       //轮播图
383
+      RotationchartSuccess(res,file,filelist){         
384
+         this.rotationform.rotationImages.push(this.qiniuDomain + res.url);  
385
+         console.log("双层地址",file.url)       
386
+         console.log("联系我们轮播图地址",this.rotationform.rotationImages); 
387
+      },
388
+         beforeRotationUpload(file){
389
+         console.log("尺寸",file.size)
390
+         const isJPG = file.type === 'image/jpeg';
391
+         const isLt2M = file.size / 1024 / 1024 < 2;
392
+       
393
+        if (!isJPG) {
394
+          this.$message.error('上传头像图片只能是 JPG 格式!');
395
+        }
396
+        if (!isLt2M) {
397
+          this.$message.error('上传头像图片大小不能超过 2MB!');
398
+        }
399
+      
400
+         var date = new Date()
401
+            var ext = getFileExtension(file.name)
402
+            var key = date.getFullYear() + (date.getMonth() + 1) + date.getDate() + date.getHours()  + date.getMinutes()  + date.getSeconds()  +'_o_' + file.uid + '.' + ext;
403
+            const _self = this
404
+            return new Promise((resolve, reject) => {
405
+                getToken().then(response => {
406
+                    const token= response.data.data.uptoken
407
+                    console.log("联系我们轮播图token是什么?",token)
408
+                    _self._data.rotationData.token = token;
409
+                    _self._data.rotationData.key = key;
410
+                    resolve(true)
411
+                }).catch(err => {
412
+                    reject(false)
413
+                })
414
+            })
415
+          return isJPG && isLt2M;
416
+      },
417
+      //添加轮播图
418
+      addRotationUpload(formName){
419
+        this.$refs[formName].validate((valid)=>{
420
+          if(valid){
421
+            addRotationUpload(this.rotationform).then(response=>{
422
+               if(response.data.state==1){
423
+                 var connecmodel = response.data.data.connecmodel;
424
+                 this.slideshow = false;
425
+                 console.log("返回值",connecmodel);
426
+               }
427
+            });   
428
+          }
429
+        })
430
+        
431
+      },
432
+      rotationEditImages(){
433
+        
434
+      },
435
+
436
+      //新增联系方式
437
+      addconnection(formName){
438
+        this.$refs[formName].validate((valid)=>{
439
+          if(valid){
440
+            addconnection(this.connecform).then(response=>{
441
+              if(response.data.state==1){
442
+                 var cooection =  response.data.data.connection;
443
+                 console.log("返回数据",cooection);
444
+                 this.queryConnetion();
445
+                 this.connecform.title = "";
446
+                 this.connecform.content = "";
447
+              }
448
+            })
449
+          }
450
+        })
451
+      },
452
+
453
+      //获取联系方式
454
+      queryConnetion(){
455
+        queryConnetion().then(response=>{
456
+           if(response.data.state ==1){
457
+             this.connectionway = response.data.data.conection;
458
+             this.contractform.way =  response.data.data.cooection.id;
459
+             console.log("联系方式返回数据",this.connectionway);
460
+           }
461
+        })
462
+      },
463
+
464
+      //删除联系方式
465
+      deleteConnecWay(id,index){
466
+         this.$confirm('确定要删除该信息么?,删除后将无法恢复!',{
467
+         dangerouslyUseHTMLString:true,
468
+         confirmButtonText: '确定',
469
+         cancelButtonText: '取消',
470
+          type: 'warning'
471
+         }).then(()=>{
472
+            deleteConnecWay(id).then(response=>{
473
+             if(response.data.state==1){
474
+                this.connectionway.splice(index,1);
475
+             }
476
+           }).catch(e=>{}); 
477
+         }).catch(e=>{});
478
+      },
479
+
480
+      //编辑联系方式
481
+      editConnecWay(id){
482
+        console.log("id是啥",id);
483
+        editConnecWay(id).then(response=>{
484
+            if(response.data.state == 1){
485
+              this.editconnecform = response.data.data.connection;
486
+              console.log("返回数据",this.connecform);
487
+            }
488
+        })      
489
+      },
490
+
491
+      //编辑保存后的联系方式
492
+      saveConnecform(formName){
493
+         this.$refs[formName].validate((valid)=>{
494
+           if(valid){
495
+              saveConnecform(this.editconnecform.id,this.editconnecform).then(response=>{
496
+                  if(response.data.state == 1){
497
+                     var connection =  response.data.data.connection;
498
+                     console.log("返回数据",connection);
499
+                      this.editLink =false;
500
+                      this.queryConnetion();
501
+                  }    
502
+              }) 
503
+           }
504
+         })
505
+      },
506
+
507
+      //添加联系方式
508
+      addContract(formName){
509
+         this.$refs[formName].validate((valid)=>{
510
+            if(valid){
511
+              addContract(this.contractform).then(response=>{
512
+                  if(response.data.state == 1){
513
+                         
514
+                  }
515
+              })           
516
+            }
517
+         })
518
+      },
519
+
520
+      //添加工作时间
521
+      addWorkTime(formName){
522
+        this.$refs[formName].validate((valid)=>{
523
+          if(valid){
524
+            addWorkTime(this.woketimeform).then(response=>{
525
+                  if(response.data.state==1){
526
+                    var sgjworktime = response.data.data.sgjworktime;
527
+                    console.log("返回数据",sgjworktime);
528
+                    this.time = false;
529
+                }
530
+            })
531
+          }
532
+        })
533
+      },
534
+
535
+      //添加乘车方式
536
+      addRideWay(formName){
537
+        this.$refs[formName].validate((valid)=>{
538
+          if(valid){
539
+            addRideWay(this.rideform).then(response=>{
540
+              if(response.data.state==1){
541
+                 var rideway = response.data.data.rideway;
542
+                 console.log("返回数据",rideway);
543
+                 this.type = false;
544
+              }
545
+            })
546
+          }
547
+        })
548
+      },
549
+      hospitaAddress(){
550
+        this.hostaddress = true;
551
+      }
552
+  },
553
+       mounted(){
554
+          this.$nextTick(function () {
555
+                var th = this
556
+                // 创建Map实例
557
+                var map = new BMap.Map("allmap");
558
+                // 初始化地图,设置中心点坐标,
559
+                var point = new BMap.Point(121.160724,31.173277); // 创建点坐标,汉得公司的经纬度坐标
560
+                map.centerAndZoom(point, 15);
561
+                map.enableScrollWheelZoom();
562
+                var ac = new BMap.Autocomplete(    //建立一个自动完成的对象
563
+                    {
564
+                        "input":"suggestId", 
565
+                        "location": map,
566
+                    })
567
+                var myValue
568
+                ac.addEventListener("onconfirm", function (e) {    //鼠标点击下拉列表后的事件
569
+                    var _value = e.item.value;
570
+                    myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
571
+                    this.address_detail = myValue
572
+                    setPlace();
573
+                });
574
+
575
+                function setPlace() {
576
+                    map.clearOverlays();    //清除地图上所有覆盖物
577
+                    function myFun() {
578
+                        th.userlocation = local.getResults().getPoi(0).point;    //获取第一个智能搜索的结果
579
+                        map.centerAndZoom(th.userlocation, 18);
580
+                        map.addOverlay(new BMap.Marker(th.userlocation));    //添加标注
581
+                    }
582
+
583
+                    var local = new BMap.LocalSearch(map, { //智能搜索
584
+                        onSearchComplete: myFun
585
+                    });
586
+                    local.search(myValue);
587
+
588
+                    //测试输出坐标(指的是输入框最后确定地点的经纬度)
589
+                    map.addEventListener("click",function(e){
590
+                        //经度
591
+                        console.log(th.userlocation.lng);
592
+                        //维度
593
+                        console.log(th.userlocation.lat);
594
+
595
+                    })
596
+                }
597
+
598
+            })
599
+        },
600
+
601
+        created(){
602
+          this.queryConnetion();
603
+        }
263 604
 };
264 605
 </script>
265 606
 
266 607
 <style rel="stylesheet/scss" lang="scss" scoped>
267
-
608
+  #allmap{
609
+        width: 200px;
610
+        height: 200px;
611
+        font-family: "微软雅黑";
612
+        margin-top: 20px;
613
+      //  border:1px solid green;
614
+    }
268 615
 .tips {
269 616
   font-size: 12px;
270 617
   line-height: 18px;

+ 478 - 152
src/scrm_pages/site/components/new-feature.vue ファイルの表示

@@ -69,13 +69,15 @@
69 69
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
70 70
       </el-form-item>
71 71
       <el-form-item label="添加图片:" v-model="rotationform.rotationImages" required prop="rotationImages">
72
+        <div>
73
+        </div>
72 74
          <el-upload
73 75
           :data="rotationData"
74 76
           action="https://upload.qiniup.com"
75 77
           list-type="picture-card"
76 78
          :on-success="RotationchartSuccess"
77 79
          :before-upload="beforeRotationUpload"
78
-         >
80
+         v-show="show">
79 81
         <i slot="default" class="el-icon-plus"></i>
80 82
         <div slot="file" slot-scope="{file}">
81 83
           <img
@@ -98,7 +100,9 @@
98 100
          </span> 
99 101
         </div> 
100 102
      </el-upload>
103
+      <img  src="static/images/u679.png" @click="addpic()">
101 104
       </el-form-item>
105
+       
102 106
        <span class="uploadfont">图片已上传0张,最多上传9张图片</span>
103 107
     </el-form>
104 108
     <span slot="footer" class="dialog-footer">
@@ -107,12 +111,106 @@
107 111
     </span>
108 112
   </el-dialog>
109 113
 
114
+   <!-- 编辑图片 -->
115
+   <el-dialog
116
+     title="编辑图片"
117
+     :visible.sync="addpicVisible"
118
+     width="30%"
119
+    >
120
+  <el-form ref="picform" :model="picform" label-width="90px">
121
+    <el-form-item label="图片编辑:">
122
+      <el-col :span="5">
123
+       <el-upload
124
+         :data="rotationData"
125
+         class="avatar-uploader"
126
+         action="https://upload.qiniup.com"
127
+        :show-file-list="false"
128
+         :on-success="RotationchartSuccess"
129
+        :before-upload="beforeRotationUpload">
130
+        <img v-if="imageUrl" :src="imageUrl" class="avatar">
131
+       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
132
+      </el-upload>
133
+      </el-col>
134
+      <el-col :span="19">
135
+          <div class="tpic"> 
136
+            <img src="static/images/a.jpg">
137
+          </div>
138
+      </el-col>
139
+    </el-form-item>
140
+    <el-form-item label="排序值:">
141
+       <el-col :span="24">
142
+         <el-input></el-input>
143
+       </el-col>   
144
+    </el-form-item>
145
+    <el-form-item label="图片链接:">
146
+      <el-radio v-model="radio" label="1">无</el-radio>
147
+      <el-radio v-model="radio" label="2">自定义</el-radio> 
148
+    </el-form-item>
149
+    <el-form-item label="链接地址:">
150
+      <el-col :span="20">
151
+      <el-input></el-input>
152
+      </el-col>
153
+      <el-col :span="4">
154
+       <el-button size="medium" @click="addlink()">设置链接</el-button>
155
+      </el-col>
156
+    </el-form-item>
157
+  </el-form>
158
+  <span slot="footer" class="dialog-footer">
159
+    <el-button @click="addpicVisible = false">取 消</el-button>
160
+    <el-button type="primary" @click="addpicVisible = false">确 定</el-button>
161
+  </span>
162
+</el-dialog>
163
+  
164
+  <!-- 设置图片链接地址 -->
165
+  <el-dialog
166
+    title="设置图片链接地址"
167
+    :visible.sync="linkVisible"
168
+    width="30%">
169
+     <el-form label-width="90px">
170
+       <el-form-item label="链接类型">
171
+       <el-radio v-model="radio" label="1">无</el-radio>
172
+       <el-radio v-model="radio" label="2">站内链接</el-radio> 
173
+       <el-radio v-model="radio" label="2">站外链接</el-radio> 
174
+       </el-form-item>
175
+       <el-form-item label="链接类型:">
176
+          <el-select v-model="value" placeholder="请选择">
177
+            <el-option
178
+              v-for="item in options"
179
+              :key="item.value"
180
+              :label="item.label"
181
+              :value="item.value">
182
+            </el-option>
183
+         </el-select>
184
+       </el-form-item>
185
+       <el-form-item label="站内链接:">
186
+          <el-select v-model="value" placeholder="请选择">
187
+            <el-option
188
+              v-for="item in option"
189
+              :key="item.value"
190
+              :label="item.label"
191
+              :value="item.value">
192
+            </el-option>
193
+         </el-select>
194
+       </el-form-item>
195
+       <el-form-item >
196
+        <el-input style="width: 300px"  placeholder="请输入您需要搜索的内容"></el-input>
197
+          <el-button type="primary"  icon="el-icon-search">搜索</el-button>
198
+       </el-form-item>
199
+       <el-form-item label="自定义地址:">
200
+          <el-input></el-input>
201
+       </el-form-item>
202
+     </el-form>
203
+    <span slot="footer" class="dialog-footer">
204
+    <el-button @click="linkVisible = false">取 消</el-button>
205
+    <el-button type="primary" @click="linkVisible = false">确 定</el-button>
206
+  </span>
207
+  </el-dialog>
208
+
110 209
   <!-- 新增医院介绍 -->
111 210
   <el-dialog
112 211
     title="新增医院介绍"
113 212
     :visible.sync="two"
114 213
     width="50%"
115
-    :before-close="handleClose"
116 214
      :modal='false'
117 215
      v-dialogDrag
118 216
      :close-on-click-modal="false">
@@ -121,11 +219,11 @@
121 219
         <el-input v-model="hispitalform.title"></el-input>
122 220
       </el-form-item>
123 221
       <el-form-item label="排序值:" required prop="sort">
124
-        <el-input v-model="hispitalform.sort" ></el-input>
222
+        <el-input v-model="hispitalform.sort"></el-input>
125 223
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
126 224
       </el-form-item>
127 225
       <el-form-item label="医院介绍:" required prop="introduction">
128
-         <keep-alive v-show="editorshow">
226
+         <keep-alive>
129 227
             <neditor ref="neditor"
130 228
               id="editor"
131 229
               v-bind:r_content="hispitalform.introduction">
@@ -168,55 +266,180 @@
168 266
     </span>
169 267
   </el-dialog>
170 268
 
171
-  <!-- 新增名医介绍 -->
269
+    <!-- 新增名医介绍 -->
172 270
   <el-dialog
173 271
     title="新增名医介绍"
174 272
     :visible.sync="four"
175
-    width="550px"
176
-    :before-close="handleClose">
177
-    <el-form ref="doctorform" :model="doctorform" label-width="90px" :rules="rules">
273
+    width="550px">
274
+    <el-form ref="doctorform" :model="doctorform" label-width="90px" :rules="rules" >
178 275
       <el-form-item label="模块标题:" required prop="title">
179 276
         <el-input v-model="doctorform.title"></el-input>
180 277
       </el-form-item>
181
-      <el-form-item label="排序值: " required prop="sort">
278
+      <el-form-item label="排序值:" required prop="sort">
182 279
         <el-input v-model="doctorform.sort"></el-input>
183 280
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
184 281
       </el-form-item>
185
-      <el-form-item label="新增名医:" required prop="image">       
186
-        <div class="flex-img">
187
-        <div class="el-upload-list el-upload-list--picture-card" v-show="hideShow">            
188
-            <div class="el-upload-list__item is-success">              
189
-                 <img class="flex-img__image" :src="doctorform.image" v-if="doctorform.image">              
282
+      <el-form-item label="新增名医:" v-model="doctorform.image">
283
+         <div class="flex-img" v-show="headshow">
284
+        <div class="el-upload-list el-upload-list--picture-card" >            
285
+            <div class="el-upload-list__item is-success" v-for="item in this.docform" :key="item.id">             
286
+                 <img class="flex-img__image" :src="item.dochead">              
190 287
                 <label class="el-upload-list__item-status-label">
191 288
                     <i class="el-icon-upload-success el-icon-check"></i>
192 289
                 </label>
193 290
                 <span class="el-upload-list__item-actions">
194 291
                     <span class="el-upload-list__item-delete">
195
-                        <i class="el-icon-edit-outline" @click="editDoctor()"></i>
196
-                        <i class="el-icon-delete" @click="deleteDoctor"></i>
292
+                        <i class="el-icon-edit-outline" @click="editDoctor(item.id);editcenterDialogVisible = true"></i>
293
+                        <i class="el-icon-delete" @click="deleteDoctor(item.id,index)"></i>
197 294
                     </span>
198 295
                 </span>
199 296
             </div>         
200
-        </div>
201
-        <el-upload
202
-            class="image-uploader"
203
-            action="https://upload.qiniup.com"
204
-            :show-file-list="false"
205
-            :data="uploadData"
206
-            accept="image/jpeg,image/jpg,image/png"
207
-            :on-success="imageUploadSuccess"
208
-            :before-upload="beforeUpload"
209
-            v-show="!hideShow">
210
-            <i class="el-icon-plus"></i>
211
-        </el-upload>          
297
+        </div>        
212 298
     </div>
213
-   </el-form-item>
299
+      <img src="static/images/u646.png" @click="centerDialogVisible = true">
300
+      </el-form-item>
214 301
     </el-form>
215 302
     <span slot="footer" class="dialog-footer">
216 303
       <el-button @click="four = false">取 消</el-button>
217 304
       <el-button type="primary" @click="AddDoctor('doctorform')">确 定</el-button>
218 305
     </span>
219 306
   </el-dialog>
307
+
308
+    <!-- 编辑名医介绍 -->
309
+   <el-dialog
310
+      title="编辑医生介绍"
311
+      :visible.sync="centerDialogVisible"
312
+      width="50%"
313
+      center>
314
+       <el-form label-width="90px" class="clearfix" :model="eidtDoctorform" ref="eidtDoctorform" :rules="rules">
315
+          <el-row :span=20>
316
+            <el-col :span="12">
317
+             <el-form-item label="医生姓名:">
318
+              <el-select v-model="eidtDoctorform.name" placeholder="请选择"  @change="change(eidtDoctorform.name)">
319
+                <el-option
320
+                 v-for="item in docnames"
321
+                 :key="item.id"
322
+                 :label="item.name"
323
+                 :value="item.id"
324
+                 >
325
+                </el-option>
326
+              </el-select>
327
+             </el-form-item>     
328
+             </el-col> 
329
+             <el-col :span="12">
330
+              <el-form-item label="医生职称:" required prop="user_title">
331
+              <el-select v-model="eidtDoctorform.user_title" placeholder="请选择">
332
+                <el-option
333
+                 v-for="item in positions"
334
+                 :key="item.index"
335
+                 :label="item.name"
336
+                 :value="item.index">
337
+                </el-option>
338
+              </el-select>
339
+              </el-form-item>   
340
+             </el-col>
341
+          </el-row>
342
+          <el-row :span=20>
343
+               <el-form-item label="医生头像:" required prop="dochead">
344
+                 <el-col :span="5">
345
+                   <el-upload
346
+                       :data="doctorData"
347
+                       class="avatar-uploader"
348
+                       action="https://upload.qiniup.com"
349
+                       :show-file-list="false"
350
+                       :on-success="handleAvatarSuccess"
351
+                       :before-upload="beforeAvatarUpload">
352
+                       <img v-if="eidtDoctorform.dochead" :src="eidtDoctorform.dochead" class="avatar">
353
+                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
354
+                    </el-upload>
355
+                   </el-col>
356
+                   <el-col :span="16">
357
+                    <el-form-item label="排序值:" required prop="sort">
358
+                      <el-input v-model="eidtDoctorform.sort"></el-input>
359
+                    </el-form-item>
360
+                  </el-col>
361
+               </el-form-item>  
362
+          </el-row>
363
+          <el-row :span=20>
364
+            <el-form-item label="医生简介:" required prop="content">      
365
+                 <keep-alive>
366
+                   <neditor ref="neditor"
367
+                      id="editor"
368
+                      v-bind:r_content="eidtDoctorform.content">
369
+                  </neditor>
370
+                </keep-alive>
371
+            </el-form-item>
372
+          </el-row>
373
+        </el-form>
374
+     <span slot="footer" class="dialog-footer">
375
+      <el-button @click="centerDialogVisible = false">取 消</el-button>
376
+      <el-button type="primary" @click="AddDoctorInfo('eidtDoctorform')">确 定</el-button>
377
+      </span>
378
+   </el-dialog>
379
+
380
+    <el-dialog
381
+      title="编辑医生介绍"
382
+      :visible.sync="editcenterDialogVisible"
383
+      width="50%"
384
+      center>
385
+       <el-form label-width="90px" class="clearfix" :model="editdocfrom" ref="editdocfrom" :rules="rules">
386
+          <el-row :span=20>
387
+            <el-col :span="10">
388
+             <el-form-item label="医生姓名:" required prop="docname">
389
+              <el-input v-model="editdocfrom.docname"></el-input>
390
+             </el-form-item>     
391
+             </el-col> 
392
+             <el-col :span="12">
393
+              <el-form-item label="医生职称:" required prop="doc_position">
394
+              <!-- <el-input v-model="editdocfrom.doc_position"></el-input> -->
395
+              <el-select v-model="editdocfrom.doc_position" placeholder="请选择">
396
+                <el-option
397
+                 v-for="item in positions"
398
+                 :key="item.index"
399
+                 :label="item.name"
400
+                 :value="item.index">
401
+                </el-option>
402
+              </el-select>
403
+              </el-form-item>   
404
+             </el-col>
405
+          </el-row>
406
+          <el-row :span=20>
407
+               <el-form-item label="医生头像:" required prop="dochead">
408
+                 <el-col :span="10">
409
+                   <el-upload
410
+                       :data="doctorDatatwo"
411
+                       class="avatar-uploader"
412
+                       action="https://upload.qiniup.com"
413
+                       :show-file-list="false"
414
+                       :on-success="handleAvatarSuccesstwo"
415
+                       :before-upload="beforeAvatarUploadtwo">
416
+                       <img v-if="editdocfrom.dochead" :src="editdocfrom.dochead" class="avatar">
417
+                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
418
+                    </el-upload>
419
+                   </el-col>
420
+                   <el-col :span="12">
421
+                    <el-form-item label="排序值:" required prop="doc_sort">
422
+                      <el-input v-model="editdocfrom.doc_sort"></el-input>
423
+                    </el-form-item>
424
+                  </el-col>
425
+               </el-form-item>  
426
+          </el-row>
427
+          <el-row :span=20>
428
+            <el-form-item label="医生简介:" required prop="docintroduction">      
429
+                 <keep-alive>
430
+                   <neditor ref="neditor"
431
+                      id="editor"
432
+                      v-bind:r_content="editdocfrom.docintroduction">
433
+                  </neditor>
434
+                </keep-alive>
435
+            </el-form-item>
436
+          </el-row>
437
+        </el-form>
438
+     <span slot="footer" class="dialog-footer">
439
+      <el-button @click="editcenterDialogVisible = false">取 消</el-button>
440
+      <el-button type="primary" @click="saveDocInfo('editdocfrom')">确 定</el-button>
441
+      </span>
442
+   </el-dialog>
220 443
   
221 444
   <!-- 新增科室环境 -->
222 445
    <el-dialog
@@ -356,93 +579,12 @@
356 579
     </span>
357 580
   </el-dialog>
358 581
     
359
-    <!-- 编辑名医介绍 -->
360
-   <el-dialog
361
-      title="编辑医生介绍"
362
-      :visible.sync="centerDialogVisible"
363
-      width="30%"
364
-      center>
365
-       <el-form label-width="90px" class="clearfix" :model="eidtDoctorform" ref="eidtDoctorform" :rules="rules">
366
-          <el-row :span=20>
367
-            <el-form-item label="医生姓名:" required prop="docname">
368
-              <el-input v-model="eidtDoctorform.docname">
369
-
370
-              </el-input>
371
-            </el-form-item>
372
-          </el-row>
373
-          <el-row :span=20>
374
-               <el-form-item label="医生头像:" required prop="docHead">
375
-                   <el-upload
376
-                       :data="doctorData"
377
-                       class="avatar-uploader"
378
-                       action="https://upload.qiniup.com"
379
-                       :show-file-list="false"
380
-                       :on-success="handleAvatarSuccess"
381
-                       :before-upload="beforeAvatarUpload">
382
-                       <img v-if="eidtDoctorform.docHead" :src="eidtDoctorform.docHead" class="avatar">
383
-                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
384
-                   </el-upload>
385
-               </el-form-item>  
386
-          </el-row>
387
-          <el-row :span=20>
388
-            <el-form-item label="医生职称:" required prop="docpositional">
389
-              <el-input v-model="eidtDoctorform.docpositional">
390
-
391
-              </el-input>
392
-            </el-form-item>
393
-          </el-row>
394
-          <el-row :span=20>
395
-            <el-form-item label="医生简介:" required prop="docintroduction">      
396
-                <div style="margin: 10px 0;"></div>
397
-                <el-input
398
-                 type="textarea"
399
-                :autosize="{ minRows: 2, maxRows: 4}"
400
-                 v-model="eidtDoctorform.docintroduction">
401
-                </el-input>
402
-            </el-form-item>
403
-          </el-row>
404
-        </el-form>
405
-     <span slot="footer" class="dialog-footer">
406
-      <el-button @click="centerDialogVisible = false">取 消</el-button>
407
-      <el-button type="primary" @click="AddDoctorInfo('eidtDoctorform')">确 定</el-button>
408
-      </span>
409
-   </el-dialog>
410
-
411
-   <!-- 编辑图片 -->
412
-    <el-dialog
413
-       title="提示"
414
-       :visible.sync="dialogRotationVisible"
415
-        width="30%"
416
-        :before-close="handleClose"
417
-        center>
418
-        <div class="eidtRotationimages">
419
-          <img src="static/images/a.jpg" style="width:260px;height:200px">
420
-        </div>
421
-        <el-form label-width="90px" class="clearfix">
422
-           <el-form-item  label="图片描述:">
423
-              <el-input></el-input>
424
-           </el-form-item>
425
-           <el-form-item label="图片链接:">
426
-              <el-radio-group v-model="radio">
427
-                <el-radio :label="3">无</el-radio>
428
-                <el-radio :label="6">自定义</el-radio>
429
-              </el-radio-group>
430
-           </el-form-item>
431
-           <el-form-item label="链接地址:">
432
-               <el-input style="width:320px"></el-input>
433
-               <el-button  type="primary">链接地址</el-button>
434
-           </el-form-item>
435
-        </el-form>
436
-        <span slot="footer" class="dialog-footer">
437
-       <el-button @click="dialogRotationVisible = false">取 消</el-button>
438
-       <el-button type="primary" @click="dialogRotationVisible = false">确 定</el-button>
439
-      </span>
440
-   </el-dialog>
582
+  
441 583
 </div>
442 584
 </template>
443 585
 
444 586
 <script>
445
-   import { AddRotationChart, saveHispital,addOffices,AddDoctor,AddDoctorInfo,AddOfficeEnvironment } from '@/api/site/site'  
587
+   import { AddRotationChart, saveHispital,addOffices,AddDoctor,AddDoctorInfo,AddOfficeEnvironment,getQueryDocInfo,change,getQueryDoCHead,editDoctor,saveDocInfo,deleteDoctor } from '@/api/site/site'  
446 588
    import { getToken } from '@/api/qiniu'
447 589
    import { getFileExtension} from '@/utils/tools'
448 590
    import { isIP } from 'net';
@@ -451,6 +593,7 @@
451 593
    import 'quill/dist/quill.core.css'
452 594
    import 'quill/dist/quill.snow.css'
453 595
    import 'quill/dist/quill.bubble.css'
596
+   import { constants } from 'crypto';
454 597
 export default {
455 598
   name: "newfeature",
456 599
   components:{
@@ -459,6 +602,37 @@ export default {
459 602
   props: ['image', 'clearList'],
460 603
   data() {
461 604
     return {
605
+      options: [{
606
+          value: '选项1',
607
+          label: '文章'
608
+        }, {
609
+          value: '选项2',
610
+          label: '活动'
611
+        }],
612
+        option:[{
613
+           value:'选项1',
614
+           label:'体育'
615
+        },{
616
+          value:'选项2',
617
+          label:'数学',
618
+        }],
619
+       headshow:false,
620
+       docnames:[],
621
+       positions:[
622
+          { index: 1, name: '医士' },
623
+          { index: 2, name: '医师' },
624
+          { index: 3, name: '住院医师' },
625
+          { index: 4, name: '主治医师' },
626
+          { index: 5, name: '副主任医师' },
627
+          { index: 6, name: '主任医师' },
628
+          { index: 7, name: '护士' },
629
+          { index: 8, name: '护师' },
630
+          { index: 9, name: '主管护师' },
631
+          { index: 10, name: '副主任护师' },
632
+          { index: 11, name: '主任护师' },
633
+          { index: 12, name: '运营专员' },
634
+       ],
635
+       value: '',
462 636
       new1: require("../../../assets/preview/u481.png"),
463 637
       new2: require("../../../assets/preview/u493.png"),
464 638
       new3: require("../../../assets/preview/u496.png"),
@@ -469,6 +643,9 @@ export default {
469 643
       new8: require("../../../assets/preview/u512.png"),
470 644
       dialogVisible: false,
471 645
       dialogRotationVisible: false,
646
+      editcenterDialogVisible: false,
647
+      addpicVisible:false,
648
+      radio: '1',
472 649
       two: false,
473 650
       three: false,
474 651
       four: false,
@@ -476,11 +653,13 @@ export default {
476 653
       six: false,
477 654
       seven: false,
478 655
       eight: false,
656
+      linkVisible:false,
479 657
       dialogImageUrl: '',
480 658
       disabled: false,
481 659
       qiniuDomain: 'https://images.shengws.com/',
482 660
       uploadData: { token: '', key: '' },
483
-      doctorData: { token: '' ,key: '' },
661
+      doctorData: { token: '', key: '' },
662
+      doctorDatatwo:  { token: '', key: '' },
484 663
       rotationData: { token:'',key: '' },
485 664
       keData: { token: '' ,key: ''},
486 665
       file: this.image ? this.image : '',
@@ -495,6 +674,9 @@ export default {
495 674
         textarea:"",
496 675
         image:"",
497 676
       },
677
+      docform:[],
678
+        
679
+    
498 680
       hispitalform:{
499 681
         title:"",
500 682
         sort:"",
@@ -509,12 +691,22 @@ export default {
509 691
         title:"",
510 692
         sort:"",
511 693
         image:"",
694
+        docimages:[],
695
+      },
696
+      editdocfrom:{
697
+        docname:"",
698
+        dochead:"",
699
+        doc_position:"",
700
+        doc_sort:"",
701
+        docintroduction:"",
512 702
       },
513 703
       eidtDoctorform:{
514
-       docname:"",
515
-       docHead:"",
516
-       docpositional:"",
517
-       docintroduction:"",
704
+       id:"",
705
+       name:"",
706
+       dochead:"",
707
+       user_title:"",
708
+       sort:"",
709
+       content:"",
518 710
       },
519 711
       rotationform:{
520 712
         title:"",
@@ -525,6 +717,9 @@ export default {
525 717
         title:"",
526 718
         sort:"",
527 719
         keImages:[],
720
+      },
721
+      picform:{
722
+
528 723
       },
529 724
 
530 725
        rules: {
@@ -534,16 +729,26 @@ export default {
534 729
          image: [{required: true,message:"请填写新增名医"}],
535 730
          docname: [{required:true,message:"请填写医生姓名"}],
536 731
          docHead: [{required: true,message:"请填写医生头像"}],
732
+         dochead: [{required: true,message:"请填写医生头像"}],
537 733
          docpositional:[{required:true,message:"请填写医生职位"}],
538 734
          docintroduction:[{required:true,message:"请填写医生简介"}],
539 735
          images:[{required:true,message:"请填写新增科室环境"}],
540 736
          rotationImages:[{required:true,message:"请填写添加图片"}],
541
-         keimages:[{required:true,message:"请填写新增科室环境"}]
737
+         keimages:[{required:true,message:"请填写新增科室环境"}],
738
+         user_title:[{required:true,message:"请填写医生职称"}],
739
+         docimages:[{required:true,message:"请填写新增名医"}]
542 740
       },
543 741
     };
544 742
   },
545 743
   // 医院介绍模块
546 744
   methods:{   
745
+      addpic(){
746
+       this.addpicVisible = true;
747
+      },
748
+
749
+      addlink(){
750
+        this.linkVisible = true;
751
+      },
547 752
      //轮播图
548 753
      rotationEditImages(){
549 754
         this.dialogRotationVisible = true;
@@ -552,10 +757,12 @@ export default {
552 757
       handleRemove(file) {
553 758
         console.log(file);
554 759
       },
760
+      handleClose(file){
761
+        console.log(file);
762
+      },
555 763
       imageUploadSuccess(res,file) {
556
-        this.doctorform.image = this.qiniuDomain + res.url;  
557
-        this.hideShow = true;
558
-        console.log("這是啥?",this.qiniuDomain+res.url)
764
+        console.log("上传的数据是什么",this.qiniuDomain+res.url)
765
+        this.doctorform.docimages.push(this.qiniuDomain + res.url)
559 766
       },
560 767
       beforeUpload(file) {   
561 768
         const isJPG = file.type === 'image/jpeg';
@@ -577,8 +784,8 @@ export default {
577 784
                 getToken().then(response => {
578 785
                     const tokentree = response.data.data.uptoken
579 786
                     console.log("token是什么?",tokentree)
580
-                    _self._data.uploadData.token = tokentree;
581
-                    _self._data.uploadData.key = key;
787
+                    _self._data.doctorData.token = tokentree;
788
+                    _self._data.doctorData.key = key;
582 789
                     resolve(true)
583 790
                 }).catch(err => {
584 791
                     reject(false)
@@ -593,8 +800,10 @@ export default {
593 800
 
594 801
 
595 802
       handleAvatarSuccess(res, file) {
596
-         this.eidtDoctorform.docHead = this.qiniuDomain + res.url;  
803
+         this.eidtDoctorform.dochead = this.qiniuDomain + res.url;  
597 804
       },
805
+
806
+    
598 807
       beforeAvatarUpload(file) {
599 808
         console.log("尺寸",file.size)
600 809
         const isJPG = file.type === 'image/jpeg';
@@ -629,6 +838,45 @@ export default {
629 838
           return isJPG && isLt2M;
630 839
       },
631 840
 
841
+      handleAvatarSuccesstwo(res,file){
842
+        this.editdocfrom.dochead = this.qiniuDomain + res.url;
843
+      },
844
+
845
+       beforeAvatarUploadtwo(file) {
846
+        console.log("尺寸",file.size)
847
+        const isJPG = file.type === 'image/jpeg';
848
+        const isLt2M = file.size / 1024 / 1024 < 2;
849
+       
850
+        if (!isJPG) {
851
+          this.$message.error('上传头像图片只能是 JPG 格式!');
852
+        }
853
+        if (!isLt2M) {
854
+          this.$message.error('上传头像图片大小不能超过 2MB!');
855
+        }
856
+      
857
+         var date = new Date()
858
+            var ext = getFileExtension(file.name)
859
+            var key = date.getFullYear() + (date.getMonth() + 1) + date.getDate() + date.getHours()  + date.getMinutes()  + date.getSeconds()  +'_o_' + file.uid + '.' + ext;
860
+            this.uploading = true;
861
+            this.loadingText = '封面图片上传中'
862
+
863
+            const _self = this
864
+            return new Promise((resolve, reject) => {
865
+                getToken().then(response => {
866
+                    const token= response.data.data.uptoken
867
+                    console.log("医生头像token是什么?",token)
868
+                    _self._data.doctorDatatwo.token = token;
869
+                    _self._data.doctorDatatwo.key = key;
870
+                    resolve(true)
871
+                }).catch(err => {
872
+                    reject(false)
873
+                    this.uploading = false;
874
+                })
875
+            })
876
+          return isJPG && isLt2M;
877
+      },
878
+
879
+
632 880
       //轮播图
633 881
       RotationchartSuccess(res,file,filelist){         
634 882
          this.rotationform.rotationImages.push(this.qiniuDomain + res.url);         
@@ -675,7 +923,7 @@ export default {
675 923
               AddRotationChart(this.rotationform).then(response=>{
676 924
                   if(response.data.state==1){
677 925
                     var rotation =  response.data.data.rotation;
678
-                    console.log("返回数据",rotation);
926
+                   // console.log("返回数据",rotation);
679 927
                     this.$message.success("添加轮播图成功");
680 928
                     this.dialogVisible = false;
681 929
                   }
@@ -693,7 +941,7 @@ export default {
693 941
              saveHispital(this.hispitalform).then(response=>{
694 942
                   if(response.data.state==1){
695 943
                     var hospital = response.data.data.hospital;
696
-                    console.log("返回数据",hospital)
944
+                    //console.log("返回数据",hospital)
697 945
                      this.$message.success("添加医院介绍成功");  
698 946
                      this.two = false;    
699 947
                   }
@@ -710,7 +958,7 @@ export default {
710 958
              addOffices(this.administform).then(response=>{
711 959
                  if(response.data.state==1){
712 960
                     var offices = response.data.data.offices;
713
-                    console.log("返回数据",offices);
961
+                   // console.log("返回数据",offices);
714 962
                     this.$message.success("添加科室介绍成功");
715 963
                     this.three = false;
716 964
                  }
@@ -720,25 +968,71 @@ export default {
720 968
      },
721 969
 
722 970
      //名医介绍
723
-     AddDoctor(formName){
971
+     AddDoctor(formName){ 
972
+          var images = [];
973
+          for (let index = 0; index < this.docform.length; index++) {
974
+            images.push(this.docform[index].dochead);          
975
+          }      
976
+          this.doctorform.docimages = images,
724 977
          this.$refs[formName].validate((valid)=>{
725 978
            if(valid){
726 979
               AddDoctor(this.doctorform).then(response=>{
980
+                console.log("啊啊啊",this.doctorform);
727 981
                 if(response.data.state==1){
728
-                    var doctor = response.data.data.doctor;
729
-                    console.log("返回数据",doctor);
730
-                    this.$message.success("添加名医成功");
731
-                    this.four = false;
982
+                  var doctor = response.data.data.doctor;
983
+                  console.log("返回数据",doctor)
984
+                  this.four = false;
732 985
                 }
733 986
               })
734 987
            }
735 988
          })
736 989
      },
737
-     editDoctor(){
738
-        this.centerDialogVisible = true;
990
+      getQueryDocInfo(){
991
+        getQueryDocInfo(this.doctorform).then(response=>{
992
+              if(response.data.state==1){
993
+                 this.docnames = response.data.data.doctor;
994
+
995
+              }
996
+        })
997
+      },
998
+      //获取医生头像
999
+      getQueryDoCHead(){
1000
+        getQueryDoCHead().then(response=>{
1001
+          if(response.data.state==1){
1002
+            //var docHead =  response.data.data.docHead;
1003
+            this.docform =  response.data.data.docHead;
1004
+            console.log("aaa",response.data.data.docHead)
1005
+            this.headshow = true;
1006
+            //console.log("数据返回",docHead)
1007
+          }
1008
+        })
1009
+      },
1010
+      change(id){
1011
+        // alert(id);
1012
+        change(id).then(response=>{
1013
+            if(response.data.state == 1){
1014
+              var docinfo =  response.data.data.docinfo;
1015
+              this.eidtDoctorform = response.data.data.docinfo;
1016
+             console.log("编辑医生返回数据",docinfo);
1017
+
1018
+            }
1019
+        })
1020
+      },
1021
+     editDoctor(id){
1022
+        editDoctor(id).then(response=>{
1023
+           if(response.data.state ==1){
1024
+             var docionfo = response.data.data.docinfo;
1025
+             this.editdocfrom = response.data.data.docinfo;
1026
+             console.log("数据",docionfo);
1027
+           }
1028
+        });
739 1029
      },
740
-     deleteDoctor(){
741
-       this.hideShow = false;
1030
+     deleteDoctor(id,index){
1031
+       deleteDoctor(id,index).then(response=>{
1032
+          if(response.data.state == 1){
1033
+             this.docform.splice(index,1);
1034
+          }
1035
+       })
742 1036
      },
743 1037
 
744 1038
      //编辑医生介绍
@@ -747,15 +1041,32 @@ export default {
747 1041
            if(valid){
748 1042
              AddDoctorInfo(this.eidtDoctorform).then(response=>{
749 1043
                if(response.data.state==1){
750
-                  var doctor  =  response.data.data.doctor;
751
-                  console.log("返回数据",doctor);
752
-                  this.$message.success("编辑名医成功");
753
-                  this.centerDialogVisible = false;
1044
+                 var doctor =  response.data.data.doctor;
1045
+                 this.centerDialogVisible = false;
1046
+                 console.log("返回数据",doctor);
1047
+                 this.eidtDoctorform = "";
1048
+                 this.getQueryDoCHead();
754 1049
                }
755 1050
              })
756 1051
            }
757 1052
          })
758
-     },   
1053
+     }, 
1054
+     saveDocInfo(formName){
1055
+        this.$refs[formName].validate((valid)=>{
1056
+          if(valid){
1057
+               saveDocInfo(this.editdocfrom.id,this.editdocfrom).then(response=>{
1058
+                  if(response.data.state == 1){
1059
+                     var doctor =  response.data.data.doctor;
1060
+                     console.log("返回数据",doctor);
1061
+                     this.editcenterDialogVisible = false;
1062
+                     this.$message.success("保存成功")
1063
+                     this.getQueryDoCHead();
1064
+                  }
1065
+              })
1066
+           }
1067
+        })
1068
+     
1069
+     },
759 1070
       
760 1071
       // 科室环境
761 1072
       deleteKe(){
@@ -811,12 +1122,23 @@ export default {
811 1122
              })
812 1123
            }
813 1124
          })
814
-      }
1125
+      },
1126
+      add(){
1127
+     
1128
+      },
815 1129
   },  
1130
+   created(){
1131
+     this.getQueryDocInfo();
1132
+     this.getQueryDoCHead();
1133
+   }
816 1134
  };
817 1135
 </script>
818 1136
 
819 1137
 <style rel="stylesheet/scss" lang="scss" scoped>
1138
+     .tpic{
1139
+       margin-left: 50px;
1140
+     }
1141
+
820 1142
      .eidtRotationimages{
821 1143
        text-align: center;
822 1144
        margin-bottom: 12px;
@@ -835,6 +1157,9 @@ export default {
835 1157
     font-size: 12px;
836 1158
     line-height: 18px;
837 1159
   }
1160
+  .adddoc{
1161
+    font-size: 14px;
1162
+  }
838 1163
 
839 1164
     //上传样式
840 1165
     .uploadfont{
@@ -868,8 +1193,8 @@ export default {
868 1193
     cursor: pointer;
869 1194
     position: relative;
870 1195
     overflow: hidden;
871
-    width: 148px;
872
-    height: 148px;
1196
+    width: 100px;
1197
+    height: 100px;
873 1198
   }
874 1199
   .avatar-uploader{
875 1200
     border-color: #409EFF;
@@ -877,16 +1202,14 @@ export default {
877 1202
   .avatar-uploader-icon {
878 1203
     font-size: 28px;
879 1204
     color: #8c939d;
880
-    width: 148px;
881
-    height: 148px;
882
-    line-height: 148px;
1205
+    width: 50px;
1206
+    height: 50px;
1207
+    line-height: 50px;
1208
+    margin-left: 25px;
1209
+    margin-top: 25px;
883 1210
     text-align: center;
884 1211
   }
885
-  .avatar {
886
-    width: 178px;
887
-    height: 178px;
888
-    display: block;
889
-  }
1212
+  
890 1213
 </style>
891 1214
 <style  /deep/scoped>
892 1215
      .disabled {
@@ -944,5 +1267,8 @@ export default {
944 1267
         -webkit-transition: opacity .3s;
945 1268
         transition: opacity .3s;
946 1269
     }
1270
+
1271
+
1272
+
947 1273
 </style>
948 1274
 

+ 23 - 309
src/scrm_pages/site/components/used-list.vue ファイルの表示

@@ -1,321 +1,19 @@
1 1
 <template>
2 2
 <div>
3
-    <div class="used">
3
+    <div class="used" v-for="item in this.model" :key="item.id">
4 4
         <ul>
5 5
             <li>
6
-                <span class="name">轮播图</span>
6
+                <span class="name">{{item.title}}</span>
7 7
                 <span class="icon"> 
8 8
                     <i class="el-icon-edit-outline" @click="dialogVisible = true"></i>
9 9
                     <i class="el-icon-delete" @click="deleteList = true"></i>
10 10
                 </span>
11 11
             </li>
12
-            <!-- <li>
13
-                <span class="name">魔方导航</span>
14
-                <span class="icon"> 
15
-                    <i class="el-icon-edit-outline" @click="eight = true"></i>
16
-                    <i class="el-icon-delete" @click="deleteList = true"></i>
17
-                </span>
18
-            </li>
19
-            <li>
20
-                <span class="name">医院介绍</span>
21
-                <span class="icon"> 
22
-                    <i class="el-icon-edit-outline" @click="two = true"></i>
23
-                    <i class="el-icon-delete" @click="deleteList = true"></i>
24
-                </span>
25
-            </li>
26
-            <li>
27
-                <span class="name">科室介绍</span>
28
-                <span class="icon"> 
29
-                    <i class="el-icon-edit-outline" @click="three = true"></i>
30
-                    <i class="el-icon-delete" @click="deleteList = true"></i>
31
-                </span>
32
-            </li>
33
-            <li>
34
-                <span class="name">名医介绍</span>
35
-                <span class="icon"> 
36
-                    <i class="el-icon-edit-outline" @click="four = true"></i>
37
-                    <i class="el-icon-delete" @click="deleteList = true"></i>
38
-                </span>
39
-            </li>
40
-            <li>
41
-                <span class="name">科室环境</span>
42
-                <span class="icon"> 
43
-                    <i class="el-icon-edit-outline" @click="five = true"></i>
44
-                    <i class="el-icon-delete" @click="deleteList = true"></i>
45
-                </span>
46
-            </li>
47
-            <li>
48
-                <span class="name">文章列表</span>
49
-                <span class="icon"> 
50
-                    <i class="el-icon-edit-outline" @click="six = true"></i>
51
-                    <i class="el-icon-delete" @click="deleteList = true"></i>
52
-                </span>
53
-            </li>
54
-            <li>
55
-                <span class="name">活动列表</span> 
56
-                <span class="icon"> 
57
-                    <i class="el-icon-edit-outline" @click="seven = true"></i>
58
-                    <i class="el-icon-delete" @click="deleteList = true"></i>
59
-                </span>
60
-            </li> -->
61 12
         </ul>
62 13
     </div>
63
-
64
-<!-- 确定删除组件 -->
65
-    <el-dialog
66
-        title="删除提示"
67
-        :visible.sync="deleteList"
68
-        width="550px"
69
-        :before-close="handleClose">
70
-        <span>确认要删除该组件吗?删除后,该组件将无法恢复</span>
71
-        <span slot="footer" class="dialog-footer">
72
-            <el-button @click="deleteList = false">取 消</el-button>
73
-            <el-button type="primary" @click="deleteList = false">确 定</el-button>
74
-        </span>
75
-    </el-dialog>
76
-
77
-
78
-  <!-- 新增轮播图 -->
79
-  <el-dialog
80
-    title="新增轮播图"
81
-    :visible.sync="dialogVisible"
82
-    width="550px"
83
-    :before-close="handleClose">
84
-    <el-form ref="form" :model="form" label-width="80px">
85
-      <el-form-item label="模块标题: ">
86
-        <el-input v-model="form.name"></el-input>
87
-      </el-form-item>
88
-      <el-form-item label="排序值: ">
89
-        <el-input v-model="form.name"></el-input>
90
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
91
-      </el-form-item>
92
-      <el-form-item label="添加图片: ">
93
-        <el-upload
94
-          action="https://jsonplaceholder.typicode.com/posts/"
95
-          list-type="picture-card"
96
-          :on-preview="handlePictureCardPreview"
97
-          :on-remove="handleRemove">
98
-          <i class="el-icon-plus"></i>
99
-        </el-upload>
100
-      </el-form-item>
101
-    </el-form>
102
-    <span slot="footer" class="dialog-footer">
103
-      <el-button @click="dialogVisible = false">取 消</el-button>
104
-      <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
105
-    </span>
106
-  </el-dialog>
107
-  <!-- 新增医院介绍 -->
108
-  <el-dialog
109
-    title="新增医院介绍"
110
-    :visible.sync="two"
111
-    width="550px"
112
-    :before-close="handleClose">
113
-    <el-form ref="form" :model="form" label-width="80px">
114
-      <el-form-item label="模块标题: ">
115
-        <el-input v-model="form.name"></el-input>
116
-      </el-form-item>
117
-      <el-form-item label="排序值: ">
118
-        <el-input v-model="form.name"></el-input>
119
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
120
-      </el-form-item>
121
-      <el-form-item label="医院介绍: ">
122
-          <el-input
123
-          type="textarea"
124
-          :rows="6"
125
-          placeholder="请输入内容"
126
-          v-model="textarea">
127
-        </el-input>
128
-      </el-form-item>
129
-    </el-form>
130
-    <span slot="footer" class="dialog-footer">
131
-      <el-button @click="two = false">取 消</el-button>
132
-      <el-button type="primary" @click="two = false">确 定</el-button>
133
-    </span>
134
-  </el-dialog>
135
-  <!-- 新增科室介绍 -->
136
-  <el-dialog
137
-    title="新增科室介绍"
138
-    :visible.sync="three"
139
-    width="550px"
140
-    :before-close="handleClose">
141
-    <el-form ref="form" :model="form" label-width="80px">
142
-      <el-form-item label="模块标题: ">
143
-        <el-input v-model="form.name"></el-input>
144
-      </el-form-item>
145
-      <el-form-item label="排序值: ">
146
-        <el-input v-model="form.name"></el-input>
147
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
148
-      </el-form-item>
149
-      <el-form-item label="科室介绍: ">
150
-           <el-input
151
-          type="textarea"
152
-          :rows="6"
153
-          placeholder="请输入内容"
154
-          v-model="textarea">
155
-        </el-input>
156
-      </el-form-item>
157
-    </el-form>
158
-    <span slot="footer" class="dialog-footer">
159
-      <el-button @click="three = false">取 消</el-button>
160
-      <el-button type="primary" @click="three = false">确 定</el-button>
161
-    </span>
162
-  </el-dialog>
163
-
164
-  <!-- 新增名医介绍 -->
165
-  <el-dialog
166
-    title="新增名医介绍"
167
-    :visible.sync="four"
168
-    width="550px"
169
-    :before-close="handleClose">
170
-    <el-form ref="form" :model="form" label-width="80px">
171
-      <el-form-item label="模块标题: ">
172
-        <el-input v-model="form.name"></el-input>
173
-      </el-form-item>
174
-      <el-form-item label="排序值: ">
175
-        <el-input v-model="form.name"></el-input>
176
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
177
-      </el-form-item>
178
-      <el-form-item label="新增名医: ">
179
-        <el-upload
180
-          action="https://jsonplaceholder.typicode.com/posts/"
181
-          list-type="picture-card"
182
-          :on-preview="handlePictureCardPreview"
183
-          :on-remove="handleRemove">
184
-          <i class="el-icon-plus"></i>
185
-        </el-upload>
186
-      </el-form-item>
187
-    </el-form>
188
-    <span slot="footer" class="dialog-footer">
189
-      <el-button @click="four = false">取 消</el-button>
190
-      <el-button type="primary" @click="four = false">确 定</el-button>
191
-    </span>
192
-  </el-dialog>
193
-
194
-  <!-- 新增科室环境 -->
195
-   <el-dialog
196
-    title="新增科室环境"
197
-    :visible.sync="five"
198
-    width="550px"
199
-    :before-close="handleClose">
200
-    <el-form ref="form" :model="form" label-width="100px">
201
-      <el-form-item label="模块标题: ">
202
-        <el-input v-model="form.name"></el-input>
203
-      </el-form-item>
204
-      <el-form-item label="排序值: ">
205
-        <el-input v-model="form.name"></el-input>
206
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
207
-      </el-form-item>
208
-      <el-form-item label="新增科室环境: ">
209
-        <el-upload
210
-          action="https://jsonplaceholder.typicode.com/posts/"
211
-          list-type="picture-card"
212
-          :on-preview="handlePictureCardPreview"
213
-          :on-remove="handleRemove">
214
-          <i class="el-icon-plus"></i>
215
-        </el-upload>
216
-      </el-form-item>
217
-    </el-form>
218
-    <span slot="footer" class="dialog-footer">
219
-      <el-button @click="five = false">取 消</el-button>
220
-      <el-button type="primary" @click="five = false">确 定</el-button>
221
-    </span>
222
-  </el-dialog>
223
-
224
-  <!-- 新增文章列表 -->
225
-  <el-dialog
226
-    title="新增文章列表"
227
-    :visible.sync="six"
228
-    width="550px"
229
-    :before-close="handleClose">
230
-    <el-form ref="form" :model="form" label-width="100px">
231
-      <el-form-item label="模块标题: ">
232
-        <el-input v-model="form.name"></el-input>
233
-      </el-form-item>
234
-      <el-form-item label="排序值: ">
235
-        <el-input v-model="form.name"></el-input>
236
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
237
-      </el-form-item>
238
-      <el-form-item label="文章分类: ">
239
-        <el-select v-model="form.region" placeholder="请选择活动区域" style="width:49%;float:left;">
240
-          <el-option label="区域一" value="shanghai"></el-option>
241
-          <el-option label="区域二" value="beijing"></el-option>
242
-        </el-select>
243
-        <el-select v-model="form.region" placeholder="请选择活动区域" style="width:49%;float:right;">
244
-          <el-option label="区域一" value="shanghai"></el-option>
245
-          <el-option label="区域二" value="beijing"></el-option>
246
-        </el-select>
247
-      </el-form-item>
248
-      <el-form-item label="首页展示条数: ">
249
-        <el-input v-model="form.name"></el-input>
250
-      </el-form-item>
251
-    </el-form>
252
-    <span slot="footer" class="dialog-footer">
253
-      <el-button @click="six = false">取 消</el-button>
254
-      <el-button type="primary" @click="six = false">确 定</el-button>
255
-    </span>
256
-  </el-dialog>
257
-
258
-  <!-- 新增活动列表 -->
259
-   <el-dialog
260
-    title="新增活动列表"
261
-    :visible.sync="seven"
262
-    width="550px"
263
-    :before-close="handleClose">
264
-    <el-form ref="form" :model="form" label-width="100px">
265
-      <el-form-item label="模块标题: ">
266
-        <el-input v-model="form.name"></el-input>
267
-      </el-form-item>
268
-      <el-form-item label="排序值: ">
269
-        <el-input v-model="form.name"></el-input>
270
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
271
-      </el-form-item>
272
-     
273
-      <el-form-item label="首页展示条数: ">
274
-        <el-input v-model="form.name"></el-input>
275
-      </el-form-item>
276
-    </el-form>
277
-    <span slot="footer" class="dialog-footer">
278
-      <el-button @click="seven = false">取 消</el-button>
279
-      <el-button type="primary" @click="seven = false">确 定</el-button>
280
-    </span>
281
-  </el-dialog>
282
-
283
-  <!-- 新增魔方导航 -->
284
-  <el-dialog
285
-    title="新增魔方导航"
286
-    :visible.sync="eight"
287
-    width="550px"
288
-    :before-close="handleClose">
289
-    <el-form ref="form" :model="form" label-width="100px">
290
-      <el-form-item label="模块标题: ">
291
-        <el-input v-model="form.name"></el-input>
292
-      </el-form-item>
293
-      <el-form-item label="排序值: ">
294
-        <el-input v-model="form.name"></el-input>
295
-        <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
296
-      </el-form-item>
297
-      <el-form-item label="新增科室环境: ">
298
-        <el-upload
299
-          action="https://jsonplaceholder.typicode.com/posts/"
300
-          list-type="picture-card"
301
-          :on-preview="handlePictureCardPreview"
302
-          :on-remove="handleRemove">
303
-          <i class="el-icon-plus"></i>
304
-        </el-upload>
305
-      </el-form-item>
306
-    </el-form>
307
-    <span slot="footer" class="dialog-footer">
308
-      <el-button @click="eight = false">取 消</el-button>
309
-      <el-button type="primary" @click="eight = false">确 定</el-button>
310
-    </span>
311
-  </el-dialog>
312
-
313
-
314 14
 </div>
315
-
316 15
 </template>
317 16
 
318
-
319 17
 <script>
320 18
 export default {
321 19
   name: "usedlist",
@@ -332,12 +30,28 @@ export default {
332 30
       dialogVisible: false,      
333 31
       form: {
334 32
         name: ""
335
-      }
33
+      },
34
+      modelform:{
35
+        id:"",
36
+        title:"",
37
+        sort:"",
38
+      },
336 39
     };
337
-    
338
-   
339
-    
340
-  }
40
+  },
41
+   methods:{
42
+     getQueryNewModel(){
43
+         getQueryNewModel().then(response=>{
44
+            if(response.data.state ==1){
45
+             var model  = response.data.data.model;
46
+             this.modelform  = response.data.data.model;
47
+             console.log("返回新增模块数据",model);
48
+            }
49
+         });
50
+      }
51
+    },
52
+    created(){
53
+       this.getQueryNewModel();
54
+    }
341 55
 };
342 56
 </script>
343 57
 

+ 434 - 48
src/scrm_pages/site/preview.vue ファイルの表示

@@ -3,36 +3,155 @@
3 3
       <div class="position">
4 4
         <bread-crumb :crumbs='crumbs'></bread-crumb>
5 5
       </div>
6
-      <div class="app-container">
7
-            
6
+      <div class="app-container">           
8 7
             <!-- 新增 -->
9 8
             <el-row :gutter="24">
10
-               <el-col :span="6">
11
-                <div class="phone1">
9
+               <el-col :span="6">             
12 10
                  <el-tabs type="border-card">
13 11
                     <el-tab-pane label="首页">
14
-                        <el-tabs v-model="activeName" @tab-click="handleClick"  >
12
+                        <el-tabs v-model="activeName" @v-on:click="handleClick"  >
15 13
                             <el-tab-pane label="新增模块" name="first">
16 14
                                  <new-feature> </new-feature>
17 15
                             </el-tab-pane>
18 16
                             <el-tab-pane label="已使用" name="second">
19
-                                 <used-list></used-list>
17
+                                 <!-- <used-list></used-list> -->
18
+                                  <div class="used" v-for="item in this.modelform" :key="item.id">
19
+                                  <ul>
20
+                                   <li>
21
+                                    <span class="name">{{item.title}}</span>
22
+                                    <span class="icon"> 
23
+                                    <i class="el-icon-edit-outline" @click="dialogVisible = true"></i>
24
+                                    <i class="el-icon-delete" @click="deleteList = true"></i>
25
+                                   </span>
26
+                                   </li>
27
+                                 </ul>
28
+                                 </div>
20 29
                             </el-tab-pane>
21 30
                         </el-tabs>
22 31
                     </el-tab-pane>
32
+
23 33
                     <el-tab-pane label="联系我们">
24 34
                         <el-tabs v-model="activeName" @tab-click="handleClick">
25 35
                             <el-tab-pane label="新增模块" name="three">
26 36
                                 <add-contact></add-contact>
27 37
                             </el-tab-pane>
28 38
                             <el-tab-pane label="已使用" name="four">
29
-                                 <used-list></used-list>
39
+                              <div class="used" v-for="(item,index) in this.model" :key="item.id">
40
+                                 <ul>
41
+                                   <li>
42
+                                     <span class="name">{{item.title}}</span>
43
+                                     <span class="icon"> 
44
+                                     <i class="el-icon-edit-outline" @click="eidtmodel(item.id,item.mode_type,index)"></i>
45
+                                     <i class="el-icon-delete" @click="deletemodle(item.id,index)"></i>
46
+                                    </span>
47
+                                   </li>
48
+                                 </ul>
49
+                              </div>                                                           
30 50
                             </el-tab-pane>
31 51
                         </el-tabs>                        
32 52
                     </el-tab-pane>
33 53
                   </el-tabs>
34
-                </div>
35 54
                </el-col>
55
+                
56
+                <el-dialog
57
+                   title="编辑轮播图"
58
+                   :visible.sync="edialogVisible"
59
+                   width="30%"
60
+                 >
61
+                  <el-form ref="rotationform" :model="rotationform" label-width="90px" :rules="rules" :label-position="labelPosition">
62
+                 <el-form-item label="模块标题:" required prop="title">      
63
+                    <el-input v-model="rotationform.title" ></el-input>
64
+                 </el-form-item>
65
+                 <el-form-item label="排序值:" required prop="sort">
66
+                    <el-input v-model="rotationform.sort"></el-input>
67
+                    <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
68
+                </el-form-item>
69
+                <el-form-item label="添加图片:" v-model="rotationform.rotationImages" required prop="rotationImages">
70
+                  <el-upload
71
+                      :data="rotationData"
72
+                       action="https://upload.qiniup.com"
73
+                       list-type="picture-card"
74
+                       :on-success="RotationchartSuccess"
75
+                       :before-upload="beforeRotationUpload"
76
+                     >
77
+                       <i slot="default" class="el-icon-plus"></i>
78
+                        <div slot="file" slot-scope="{file}">
79
+                       <img
80
+                             class="el-upload-list__item-thumbnail"
81
+                            :src="file.url"
82
+                       >
83
+                       <span class="el-upload-list__item-actions"> 
84
+                        <span
85
+                         v-if="!disabled"
86
+                         class="el-upload-list__item-delete"
87
+                        >
88
+                          <i class="el-icon-edit-outline"></i>
89
+                        </span> 
90
+                          <span
91
+                           v-if="!disabled"
92
+                          class="el-upload-list__item-delete"
93
+                        >
94
+                          <i class="el-icon-delete"></i>
95
+                         </span> 
96
+                       </span> 
97
+                       </div> 
98
+                      </el-upload>
99
+                   </el-form-item>
100
+                 </el-form>
101
+                  <span slot="footer" class="dialog-footer">
102
+                  <el-button @click="edialogVisible = false">取 消</el-button>
103
+                  <el-button type="primary" @click="edialogVisible = false">确 定</el-button>
104
+                  </span>
105
+                </el-dialog>
106
+
107
+                <!-- 编辑工作时间 -->
108
+                 <el-dialog
109
+                   title="提示"
110
+                   :visible.sync="dialogVisiblefour"
111
+                   width="30%"
112
+                 >
113
+                  <el-form label-width="90px" ref="workform" :model="workform" :rules="rules">
114
+                    <el-form-item label="模块标题:" required prop="title" >
115
+                       <el-input v-model="workform.title" ></el-input>
116
+                    </el-form-item>
117
+                    <el-form-item label="模块排序:" required prop="sort">
118
+                        <el-input v-model="workform.sort"></el-input>
119
+                    </el-form-item>
120
+                    <el-form-item label="工作时间:" required prop="worktime">
121
+                      <el-input type="textarea" v-model="workform.worktime">
122
+                     </el-input>  
123
+                    </el-form-item>
124
+                  </el-form>
125
+                  <span slot="footer" class="dialog-footer">
126
+                  <el-button @click="dialogVisiblefour = false">取 消</el-button>
127
+                  <el-button type="primary" @click="SaveWorkTime('workform')">确 定</el-button>
128
+                  </span>
129
+                </el-dialog>
130
+
131
+
132
+               <!-- 编辑乘车方式 -->
133
+                <el-dialog
134
+                   title="提示"
135
+                   :visible.sync="dialogVisiblefive"
136
+                   width="30%"
137
+                  >
138
+                  <el-form label-width="90px" ref="rideform" :model="rideform">
139
+                    <el-form-item label="模块标题:" >
140
+                       <el-input v-model="rideform.title" required prop="title" ></el-input>
141
+                    </el-form-item>
142
+                    <el-form-item label="模块排序:">
143
+                        <el-input v-model="rideform.sort" required prop="sort"></el-input>
144
+                    </el-form-item>
145
+                    <el-form-item label="乘车方式:">
146
+                      <el-input type="textarea" v-model="rideform.rideway" rquired prop="rideway">
147
+                     </el-input>  
148
+                    </el-form-item>
149
+                  </el-form>
150
+                  <span slot="footer" class="dialog-footer">
151
+                  <el-button @click="dialogVisiblefive = false">取 消</el-button>
152
+                  <el-button type="primary" @click="saverideway('rideform')">确 定</el-button>
153
+                  </span>
154
+                </el-dialog>
36 155
 
37 156
                <el-col :span="6">
38 157
                   <div class="phone">
@@ -201,8 +320,7 @@
201 320
                         <div class="swiper-container" id="swiper4">
202 321
                          <div class="swiper-wrapper" id="wrapper4">
203 322
                            <div class="swiper-slide">
204
-                                <div class="xiangqing" v-html="officeform.introduction" v-show="keshow">
205
-                                   
323
+                                <div class="xiangqing" v-html="officeform.introduction" v-show="keshow">                                
206 324
                                 </div>  
207 325
                            </div>
208 326
                          </div>
@@ -210,17 +328,42 @@
210 328
                  </div>   
211 329
                </el-col>
212 330
               
213
-               <el-col :span="6">
214
-                  <div class="qrcode">
215
-                     <img src="static/images/u169.png">
216
-                 </div> 
331
+                 <!-- <el-col :span="5">
332
+                  <div class="done">
333
+                     <img src="static/images/u642.png">
334
+                  </div>
335
+                </el-col> -->
336
+
337
+                <!-- <el-col :span="5">
338
+                <div class="dfont">
339
+                  <span>分享管理</span>
340
+                </div>
341
+                </el-col>
342
+
343
+                <el-col :span="5">
344
+                  <div class="dtwo">
345
+                     <img src="static/images/u645.png">
346
+                  </div>
347
+                </el-col>
348
+                  
349
+                <el-col :span="5">
350
+                 <div class="dfon">
351
+                  <span>系统设置</span>
352
+                </div>
353
+                 </el-col> -->
354
+                 
355
+               <el-col :span="5">
356
+                 <div id="qrcode" class="qrcode"></div>
217 357
                </el-col>
218 358
 
219 359
                <el-col :span="6">
220 360
                  <div class="share">
221 361
                   <div class="share2"> 
222
-                    <span class="share3">分享管理</span>      
362
+                    <span class="share3">导航设置</span>      
223 363
                   </div> 
364
+                  <div class="addbutton">
365
+                     <el-button>添加</el-button>
366
+                  </div>
224 367
                  </div>  
225 368
                </el-col>
226 369
             </el-row>                   
@@ -233,14 +376,18 @@ import BreadCrumb from "../components/bread-crumb";
233 376
 import NewFeature from "./components/new-feature";
234 377
 import UsedList from "./components/used-list";
235 378
 import AddContact from "./components/add-contact";
379
+import { getToken } from '@/api/qiniu'
380
+import { getFileExtension} from '@/utils/tools'
236 381
 import { Swipe, SwipeItem } from 'mint-ui';
237 382
 import Vue from 'vue';
238 383
 import 'mint-ui/lib/style.css';
239
-import { GetRationImages,GetHospitalInfo,GetOfficeInfo,GetDoctorInfo,GetOffEnvironment } from '@/api/site/site'  
384
+import { GetRationImages,GetHospitalInfo,GetOfficeInfo,GetDoctorInfo,GetOffEnvironment,GetUserdModel,eidtmodel,editRideWay,SaveWorkTime,saverideway, getQueryNewModel } from '@/api/site/site'  
240 385
 import { IncomingMessage } from 'http';
241 386
 import { isIP } from 'net';
242 387
 import Swiper from "swiper";
243 388
 import vuedraggable from 'vuedraggable';
389
+import { constants } from 'crypto';
390
+import QRCode from 'qrcodejs2';
244 391
 Vue.component(Swipe.name, Swipe);
245 392
 Vue.component(SwipeItem.name, SwipeItem);
246 393
 export default {
@@ -270,6 +417,10 @@ export default {
270 417
       shows:false,
271 418
       keshow:false,
272 419
       showimages:true,
420
+      edialogVisible:false,
421
+      dialogVisibletwo:false,
422
+      dialogVisiblefour:false,
423
+      dialogVisiblefive:false,
273 424
       ellipsis:'',
274 425
        ops: {
275 426
           vuescroll: {},
@@ -283,8 +434,16 @@ export default {
283 434
             background: 'red',
284 435
           }
285 436
         },
437
+        rules: {
438
+          title: [{required: true, message: "请填写模块标题",},],
439
+          sort: [{required: true,message:"请填写排序值"}],       
440
+          worktime:[{required:true,message:"请填写工作时间"}],
441
+          rideway:[{required:true,message:"请填写乘车方式"}]   
442
+      },
286 443
         rotationImages:[],
287 444
         keEnvironmentImages:[],
445
+        qiniuDomain: 'https://images.shengws.com/',
446
+        rotationData: { token:'',key: '' },
288 447
         hispitalform:{
289 448
           title:"",
290 449
           sort:"",
@@ -301,11 +460,88 @@ export default {
301 460
        docpositional:"",
302 461
        docintroduction:"",
303 462
       },
304
-      doctorInfos:[],
463
+      rotationform:{
464
+        title:"",
465
+        sort:"",
466
+        rotationImages:[],
467
+      },
468
+      workform:{
469
+        title:"",
470
+        sort:"",
471
+        worktime:"",
472
+      },
473
+      rideform:{
474
+        title:"",
475
+        sort:"",
476
+        rideway:"",
477
+      },
478
+      doctorInfos:[],    
479
+      model:{
480
+         id:"",
481
+         title:"",
482
+         sort:"",
483
+      },
484
+      modelform:{
485
+        id:"",
486
+        title:"",
487
+        sort:"",
488
+      }
305 489
     };
306 490
   },
307 491
 
308 492
   methods:{   
493
+         //轮播图
494
+      RotationchartSuccess(res,file,filelist){         
495
+         this.rotationform.rotationImages.push(this.qiniuDomain + res.url);  
496
+         console.log("双层地址",file.url)       
497
+         console.log("联系我们轮播图地址",this.rotationform.rotationImages); 
498
+      },
499
+         beforeRotationUpload(file){
500
+         console.log("尺寸",file.size)
501
+         const isJPG = file.type === 'image/jpeg';
502
+         const isLt2M = file.size / 1024 / 1024 < 2;
503
+       
504
+        if (!isJPG) {
505
+          this.$message.error('上传头像图片只能是 JPG 格式!');
506
+        }
507
+        if (!isLt2M) {
508
+          this.$message.error('上传头像图片大小不能超过 2MB!');
509
+        }
510
+      
511
+         var date = new Date()
512
+            var ext = getFileExtension(file.name)
513
+            var key = date.getFullYear() + (date.getMonth() + 1) + date.getDate() + date.getHours()  + date.getMinutes()  + date.getSeconds()  +'_o_' + file.uid + '.' + ext;
514
+            const _self = this
515
+            return new Promise((resolve, reject) => {
516
+                getToken().then(response => {
517
+                    const token= response.data.data.uptoken
518
+                    console.log("联系我们轮播图token是什么?",token)
519
+                    _self._data.rotationData.token = token;
520
+                    _self._data.rotationData.key = key;
521
+                    resolve(true)
522
+                }).catch(err => {
523
+                    reject(false)
524
+                })
525
+            })
526
+          return isJPG && isLt2M;
527
+      },
528
+      //添加轮播图
529
+      addRotationUpload(formName){
530
+        this.$refs[formName].validate((valid)=>{
531
+          if(valid){
532
+            addRotationUpload(this.rotationform).then(response=>{
533
+               if(response.data.state==1){
534
+                 var connecmodel = response.data.data.connecmodel;
535
+                 this.slideshow = false;
536
+                 console.log("返回值",connecmodel);
537
+               }
538
+            });   
539
+          }
540
+        })       
541
+      },
542
+
543
+      
544
+
309 545
     more(){
310 546
       this.show = false;
311 547
       this.shows = true;
@@ -327,6 +563,19 @@ export default {
327 563
     handleClick(){
328 564
 
329 565
     },
566
+    
567
+     //查询已使用的模块
568
+     GetUserdModel(){
569
+        GetUserdModel(this.model).then(response=>{
570
+             if(response.data.state==1){
571
+                var title = [];
572
+                this.model = response.data.data.model;           
573
+               console.log("模型",this.model);
574
+             }
575
+        })
576
+     },
577
+
578
+
330 579
     //获取轮播图
331 580
       GetRationImages(){
332 581
         GetRationImages().then(response=>{
@@ -373,7 +622,7 @@ export default {
373 622
            var doctor = response.data.data.doctor;
374 623
            this.doctorInfos = response.data.data.doctor;
375 624
            this.doctorInfo = response.data,data.doctor
376
-           console.log("获取名医介绍",this.doctorInfos);
625
+          // console.log("获取名医介绍",this.doctorInfos);
377 626
         }
378 627
       })
379 628
     },
@@ -392,7 +641,88 @@ export default {
392 641
             this.keEnvironmentImages =  Images;
393 642
          }
394 643
        })
395
-    }
644
+    },
645
+     eidtmodel(id,modetype,index){
646
+       if(modetype == 1){
647
+           this.edialogVisible = true;
648
+       
649
+       }
650
+       if(modetype == 4){
651
+          this.dialogVisiblefour = true;
652
+          eidtmodel(id).then(response=>{
653
+             if(response.data.state==1){
654
+               var connecmodel = response.data.data.connecmodel;
655
+               this.workform = response.data.data.connecmodel;
656
+               console.log("返回数据",connecmodel);
657
+             }
658
+         });
659
+       }
660
+       if(modetype == 5){
661
+         this.dialogVisiblefive = true;
662
+         editRideWay(id).then(response=>{
663
+           if(response.data.state == 1){
664
+             var connecmodel = response.data.data.connecmodel;
665
+             this.rideform = response.data.data.connecmodel;
666
+             console.log("乘车方式返回数据",connecmodel);
667
+           }
668
+         })
669
+       }   
670
+     },
671
+     deletemodle(id){
672
+       alert(id);
673
+     },
674
+
675
+     SaveWorkTime(formName){
676
+       this.$refs[formName].validate((valid)=>{
677
+         if(valid){
678
+           SaveWorkTime(this.workform.id,this.workform).then(response=>{
679
+                 if(response.data.state == 1){
680
+                    var connecmodel = response.data.data.connecmodel;
681
+                    console.log("返回数据",connecmodel);
682
+                    this.dialogVisiblefour = false;
683
+                    this.$message.success('数据保存成功');                  
684
+                 }
685
+           })
686
+         }
687
+       })
688
+     },
689
+
690
+     saverideway(formName){
691
+       this.$refs[formName].validate((valid)=>{
692
+         if(valid){
693
+           saverideway(this.rideform.id,this.rideform).then(response=>{
694
+              if(response.data.state ==1 ){
695
+                 var ridewaymodel = response.data.data.ridewaymodel;
696
+                 console.log("返回数据",ridewaymodel);
697
+                 this.dialogVisiblefive = false;
698
+                 this.$message.success("数据保存成功");
699
+              }
700
+           })        
701
+         }
702
+       })
703
+     },
704
+
705
+      qrcode () {
706
+      let qrcode = new QRCode('qrcode', {
707
+        width: 100,
708
+        height: 100, // 高度
709
+        text: '56663159' // 二维码内容
710
+        // render: 'canvas' // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
711
+        // background: '#f0f'
712
+        // foreground: '#ff0'
713
+      })
714
+      console.log(qrcode)
715
+    },
716
+
717
+     getQueryNewModel(){
718
+         getQueryNewModel(this.modelform).then(response=>{
719
+            if(response.data.state ==1){
720
+             var model  = response.data.data.model;
721
+             this.modelform  = response.data.data.model;
722
+             console.log("返回新增模块数据",model);
723
+            }
724
+         });
725
+      }
396 726
   },
397 727
   created(){
398 728
     this.GetRationImages();
@@ -400,23 +730,26 @@ export default {
400 730
     this.GetOfficeInfo();
401 731
     this.GetDoctorInfo();
402 732
     this.GetOffEnvironment();
403
-  },
404
-  mounted(){
405
-          
406
-             var swiper = new Swiper('#swiper1', {
407
-                 direction: 'vertical',
408
-                 slidesPerView: "auto",
409
-                 spaceBetween:5,
410
-                loopAdditionalSlides:10,
411
-                centeredSlides: false, // active slide 居中
412
-                observer:true,//动态加载图片
413
-                observeParents:true,
414
-                paginationClickable: true,
415
-                pagination: {
416
-                    el: '.swiper-pagination',
417
-                    clickable: true,
418
-                },
419
-            });
733
+    this.GetUserdModel();
734
+    this.getQueryNewModel();
735
+    },
736
+ 
737
+    mounted(){
738
+      this.qrcode();
739
+      var swiper = new Swiper('#swiper1', {
740
+          direction: 'vertical',
741
+         slidesPerView: "auto",
742
+         spaceBetween:5,
743
+         loopAdditionalSlides:10,
744
+        centeredSlides: false, // active slide 居中
745
+        observer:true,//动态加载图片
746
+        observeParents:true,
747
+        paginationClickable: true,
748
+        pagination: {
749
+            el: '.swiper-pagination',
750
+           clickable: true,
751
+            },
752
+          });
420 753
            
421 754
             var mySwiper = new Swiper('#swiper2', {
422 755
                 direction:"horizontal",
@@ -484,6 +817,60 @@ export default {
484 817
 
485 818
 <style rel="stylesheet/scss" lang="scss" scoped>
486 819
 
820
+
821
+     .done{
822
+       position: absolute;
823
+       width: 50px;
824
+       height: 50px;
825
+      // border: solid 1px red;
826
+       margin-top: 600px;
827
+     }
828
+     .dfont{
829
+       position: absolute;
830
+       width: 70px;
831
+       height: 20px;
832
+     //  border:solid 1px red;
833
+       margin-top: 615px;
834
+       margin-left: 920px;
835
+     }
836
+      .dfon{
837
+       position: absolute;
838
+       width: 70px;
839
+       height: 20px;
840
+     //  border:solid 1px red;
841
+       margin-top: 675px;
842
+       margin-left: 920px;
843
+     }
844
+
845
+     .dtwo{
846
+       position: absolute;
847
+       width:50px;
848
+       height: 50px;
849
+    //   border:solid 1px red;
850
+       margin-top: 670px;
851
+     }
852
+
853
+
854
+     .used {
855
+       ul {
856
+        li {
857
+         height: 44px;
858
+         line-height: 44px;
859
+         font-size: 14px;
860
+         display: flex;
861
+         color: #606266;      
862
+         align-items: center;
863
+         justify-content: space-between;
864
+         border-bottom: 1px solid #e4e7ed;
865
+       i {
866
+        font-size: 19px;
867
+        margin: 0 6px;
868
+        cursor: pointer;
869
+      }
870
+    }
871
+  }
872
+}
873
+   
487 874
      .el-row {
488 875
        margin-bottom: 20px;
489 876
        &:last-child {
@@ -498,7 +885,7 @@ export default {
498 885
      width: 180px;
499 886
      height: 180px;
500 887
    //  border: solid 1px red;
501
-     margin-left: 120px;
888
+     margin-left: 90px;
502 889
      margin-top: 30px;
503 890
    }
504 891
    .share{
@@ -507,7 +894,7 @@ export default {
507 894
      height: 720px;
508 895
      border: solid 1px black;
509 896
      margin-top: 30px;
510
-   //  margin-left: 1100px;
897
+
511 898
    }
512 899
 
513 900
    .share2{
@@ -879,19 +1266,11 @@ export default {
879 1266
    }
880 1267
    #wrapper4{
881 1268
      width: 50%;
882
-   }
883
-
884
-  .phone1{
885
-    float: left;
886
-    width: 350px;
887
-    margin-top: 20px;
888
-  }
889
- 
890
-  
1269
+   }  
891 1270
 .phone{
892 1271
    margin-top: 5px;
893 1272
    position: relative;
894
-   margin-left: 70px;
1273
+   margin-left: 40px;
895 1274
    float: left;
896 1275
    width: 380px;
897 1276
    height: 750px;
@@ -1341,6 +1720,13 @@ export default {
1341 1720
      color: #FF6600;
1342 1721
    }
1343 1722
 
1723
+   .addbutton{
1724
+     font-size: 14px;
1725
+     color: #FF6600;
1726
+     margin-top: 100px;
1727
+     margin-left: 150px;
1728
+   }
1729
+
1344 1730
 </style>
1345 1731
 
1346 1732
 

BIN
static/images/u642.png ファイルの表示


BIN
static/images/u645.png ファイルの表示


BIN
static/images/u646.png ファイルの表示


BIN
static/images/u678.png ファイルの表示


BIN
static/images/u679.png ファイルの表示