xiaoming_global 5 years ago
parent
commit
906109067b

+ 3 - 0
build/webpack.base.conf.js View File

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

+ 2 - 0
index.html View File

20
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.parse.min.js"></script>
20
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.parse.min.js"></script>
21
     <div id="app"></div>
21
     <div id="app"></div>
22
     <!-- built files will be auto injected -->
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
   </body>
25
   </body>
24
 </html>
26
 </html>

+ 159 - 145
package-lock.json View File

333
       "version": "1.0.10",
333
       "version": "1.0.10",
334
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
334
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
335
       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
335
       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
336
-      "dev": true,
337
       "requires": {
336
       "requires": {
338
         "sprintf-js": "~1.0.2"
337
         "sprintf-js": "~1.0.2"
339
       }
338
       }
1550
       "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==",
1549
       "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==",
1551
       "dev": true
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
     "bn.js": {
1580
     "bn.js": {
1554
       "version": "4.11.8",
1581
       "version": "4.11.8",
1555
       "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
1582
       "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
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
     "caniuse-api": {
1936
     "caniuse-api": {
1918
       "version": "1.6.1",
1937
       "version": "1.6.1",
1919
       "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
1938
       "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
2353
       "version": "1.9.3",
2372
       "version": "1.9.3",
2354
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2373
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2355
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2374
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2356
-      "dev": true,
2357
       "requires": {
2375
       "requires": {
2358
         "color-name": "1.1.3"
2376
         "color-name": "1.1.3"
2359
       }
2377
       }
2361
     "color-name": {
2379
     "color-name": {
2362
       "version": "1.1.3",
2380
       "version": "1.1.3",
2363
       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
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
     "color-string": {
2384
     "color-string": {
2368
       "version": "0.3.0",
2385
       "version": "0.3.0",
3582
         "minimalistic-crypto-utils": "^1.0.0"
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
     "emojis-list": {
3607
     "emojis-list": {
3586
       "version": "2.1.0",
3608
       "version": "2.1.0",
3587
       "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
3609
       "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
3597
       "version": "1.4.1",
3619
       "version": "1.4.1",
3598
       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
3620
       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
3599
       "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
3621
       "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
3622
+      "dev": true,
3600
       "requires": {
3623
       "requires": {
3601
         "once": "^1.4.0"
3624
         "once": "^1.4.0"
3602
       }
3625
       }
3616
     "entities": {
3639
     "entities": {
3617
       "version": "1.1.2",
3640
       "version": "1.1.2",
3618
       "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
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
     "errno": {
3644
     "errno": {
3623
       "version": "0.1.7",
3645
       "version": "0.1.7",
6763
         "immediate": "~3.0.5"
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
     "lint-staged": {
6796
     "lint-staged": {
6767
       "version": "7.2.0",
6797
       "version": "7.2.0",
6768
       "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.2.0.tgz",
6798
       "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.2.0.tgz",
7241
         "pify": "^3.0.0"
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
     "map-cache": {
7274
     "map-cache": {
7253
       "version": "0.2.2",
7275
       "version": "0.2.2",
7254
       "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
7276
       "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
7270
         "object-visit": "^1.0.0"
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
     "marked": {
7307
     "marked": {
7274
       "version": "0.6.2",
7308
       "version": "0.6.2",
7275
       "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz",
7309
       "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz",
7298
         "safe-buffer": "^5.1.2"
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
     "media-typer": {
7340
     "media-typer": {
7302
       "version": "0.3.0",
7341
       "version": "0.3.0",
7303
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
7342
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
7632
       "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
7671
       "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
7633
       "dev": true
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
     "no-case": {
7674
     "no-case": {
7641
       "version": "2.3.2",
7675
       "version": "2.3.2",
7642
       "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
7676
       "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
8104
       "version": "1.4.0",
8138
       "version": "1.4.0",
8105
       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
8139
       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
8106
       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
8140
       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
8141
+      "dev": true,
8107
       "requires": {
8142
       "requires": {
8108
         "wrappy": "1"
8143
         "wrappy": "1"
8109
       }
8144
       }
8266
         "os-tmpdir": "^1.0.0"
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
     "p-finally": {
8304
     "p-finally": {
8275
       "version": "1.0.0",
8305
       "version": "1.0.0",
8276
       "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
8306
       "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
8277
       "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
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
     "p-limit": {
8309
     "p-limit": {
8285
       "version": "1.3.0",
8310
       "version": "1.3.0",
8286
       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
8311
       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
11342
       "dev": true
11367
       "dev": true
11343
     },
11368
     },
11344
     "qrcode": {
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
       "requires": {
11373
       "requires": {
11349
-        "can-promise": "0.0.1",
11350
         "dijkstrajs": "^1.0.1",
11374
         "dijkstrajs": "^1.0.1",
11351
         "isarray": "^2.0.1",
11375
         "isarray": "^2.0.1",
11352
         "pngjs": "^3.3.0",
11376
         "pngjs": "^3.3.0",
11353
-        "yargs": "^12.0.5"
11377
+        "yargs": "^13.2.4"
11354
       },
11378
       },
11355
       "dependencies": {
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
         "camelcase": {
11393
         "camelcase": {
11357
           "version": "5.3.1",
11394
           "version": "5.3.1",
11358
           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
11395
           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
11359
           "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
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
           "requires": {
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
         "find-up": {
11408
         "find-up": {
11392
             "locate-path": "^3.0.0"
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
         "isarray": {
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
         "locate-path": {
11426
         "locate-path": {
11422
           "version": "3.0.0",
11427
           "version": "3.0.0",
11427
             "path-exists": "^3.0.0"
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
         "p-limit": {
11435
         "p-limit": {
11456
           "version": "2.2.0",
11436
           "version": "2.2.0",
11457
           "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
11437
           "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
11473
           "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
11453
           "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
11474
           "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
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
           "requires": {
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
         "yargs": {
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
           "requires": {
11498
           "requires": {
11495
-            "cliui": "^4.0.0",
11496
-            "decamelize": "^1.2.0",
11499
+            "cliui": "^5.0.0",
11497
             "find-up": "^3.0.0",
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
             "require-directory": "^2.1.1",
11502
             "require-directory": "^2.1.1",
11501
-            "require-main-filename": "^1.0.1",
11503
+            "require-main-filename": "^2.0.0",
11502
             "set-blocking": "^2.0.0",
11504
             "set-blocking": "^2.0.0",
11503
-            "string-width": "^2.0.0",
11505
+            "string-width": "^3.0.0",
11504
             "which-module": "^2.0.0",
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
         "yargs-parser": {
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
           "requires": {
11515
           "requires": {
11514
             "camelcase": "^5.0.0",
11516
             "camelcase": "^5.0.0",
11515
             "decamelize": "^1.2.0"
11517
             "decamelize": "^1.2.0"
13098
     "sprintf-js": {
13100
     "sprintf-js": {
13099
       "version": "1.0.3",
13101
       "version": "1.0.3",
13100
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
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
     "ssf": {
13105
     "ssf": {
13105
       "version": "0.10.2",
13106
       "version": "0.10.2",
13939
       "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.0.3.tgz",
13940
       "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.0.3.tgz",
13940
       "integrity": "sha1-VNjrx5SfGngQkItgAsaEFSbJnVo="
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
     "uglify-js": {
13948
     "uglify-js": {
13943
       "version": "3.4.10",
13949
       "version": "3.4.10",
13944
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
13950
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
14283
       "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz",
14289
       "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz",
14284
       "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ=="
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
     "vue-count-to": {
14304
     "vue-count-to": {
14287
       "version": "1.0.13",
14305
       "version": "1.0.13",
14288
       "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
14306
       "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
15163
         "string-width": "^1.0.2 || 2"
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
     "window-size": {
15184
     "window-size": {
15172
       "version": "0.1.0",
15185
       "version": "0.1.0",
15173
       "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
15186
       "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
15234
     "wrappy": {
15247
     "wrappy": {
15235
       "version": "1.0.2",
15248
       "version": "1.0.2",
15236
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
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
     "write": {
15253
     "write": {
15240
       "version": "0.2.1",
15254
       "version": "0.2.1",

+ 2 - 1
package.json View File

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

+ 1 - 1
src/App.vue View File

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

+ 14 - 1
src/api/act/submitinfo.js View File

35
 }
35
 }
36
 
36
 
37
 export function addCategory(data){
37
 export function addCategory(data){
38
+    console.log("添加分类名称?",data)
38
     return request({
39
     return request({
39
         url:'/api/article/addCategory',
40
         url:'/api/article/addCategory',
40
         method:'Post',
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 View File

1
 import request from '@/utils/request'
1
 import request from '@/utils/request'
2
 
2
 
3
 export function AddRotationChart(data){
3
 export function AddRotationChart(data){
4
-    console.log("新增轮播图",data);
4
+   
5
     return request({
5
     return request({
6
         url:"/api/site/addrotationchart",
6
         url:"/api/site/addrotationchart",
7
         method:"Post",
7
         method:"Post",
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
 export function saveHispital(data){
21
 export function saveHispital(data){
13
-    console.log("添加医院",data);
22
+   
14
     return request({
23
     return request({
15
         url:"/api/site/savehispital",
24
         url:"/api/site/savehispital",
16
         method:"Post",
25
         method:"Post",
19
 }
28
 }
20
 
29
 
21
 export function addOffices(data){
30
 export function addOffices(data){
22
-    console.log("添加科室",data);
31
+  
23
     return request({
32
     return request({
24
         url:"/api/site/addoffices",
33
         url:"/api/site/addoffices",
25
         method:"Post",
34
         method:"Post",
28
 }
37
 }
29
 
38
 
30
 export function AddDoctor(data){
39
 export function AddDoctor(data){
31
-    console.log("添加名医",data);
40
+   
32
     return request({
41
     return request({
33
         url:"/api/site/adddoctor",
42
         url:"/api/site/adddoctor",
34
         method:"Post",
43
         method:"Post",
37
 }
46
 }
38
 
47
 
39
 export function AddDoctorInfo(data){
48
 export function AddDoctorInfo(data){
40
-   console.log("编辑名医介绍",data);
49
+  
41
    return request({
50
    return request({
42
        url:"/api/site/adddoctorinfo",
51
        url:"/api/site/adddoctorinfo",
43
        method:"Post",
52
        method:"Post",
46
 }
55
 }
47
 
56
 
48
 export function AddOfficeEnvironment(data){
57
 export function AddOfficeEnvironment(data){
49
-   console.log("新增科室环境",data);
58
+   
50
    return request({
59
    return request({
51
        url:"/api/site/keenvironment",
60
        url:"/api/site/keenvironment",
52
        method:"Post",
61
        method:"Post",
55
 }
64
 }
56
 
65
 
57
 export function GetRationImages(params){
66
 export function GetRationImages(params){
58
-    console.log("获取轮播图片",params)
67
+  
59
     return request({
68
     return request({
60
         url:"/api/site/getrationimages",
69
         url:"/api/site/getrationimages",
61
         method:'Get',
70
         method:'Get',
64
 }
73
 }
65
 
74
 
66
 export function GetHospitalInfo(params){
75
 export function GetHospitalInfo(params){
67
-   console.log("获取医院信息",params)
76
+  
68
    return request({
77
    return request({
69
        url:"/api/site/gethospitalinfo",
78
        url:"/api/site/gethospitalinfo",
70
        method:'Get',
79
        method:'Get',
73
 }
82
 }
74
 
83
 
75
 export function GetOfficeInfo(params){
84
 export function GetOfficeInfo(params){
76
-   console.log("获取科室信息",params)
85
+  
77
    return request({
86
    return request({
78
        url:"/api/site/getofficeinfo",
87
        url:"/api/site/getofficeinfo",
79
        method:'Get',
88
        method:'Get',
82
 }
91
 }
83
 
92
 
84
 export function GetDoctorInfo(params){
93
 export function GetDoctorInfo(params){
85
-    console.log("获取名医介绍",params)
94
+    
86
     return request({
95
     return request({
87
         url:"/api/site/getdoctorinfo",
96
         url:"/api/site/getdoctorinfo",
88
         method:'Get',
97
         method:'Get',
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
 export function GetOffEnvironment(params){
128
 export function GetOffEnvironment(params){
94
-   console.log("获取科室环境",params)
129
+   
95
    return request({
130
    return request({
96
        url:"/api/site/getOffEnvironment",
131
        url:"/api/site/getOffEnvironment",
97
        method:'Get',
132
        method:'Get',
98
        params:params,
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 View File

32
 import { read } from 'fs';
32
 import { read } from 'fs';
33
 import 'vuescroll/dist/vuescroll.css';
33
 import 'vuescroll/dist/vuescroll.css';
34
 import 'swiper/dist/css/swiper.min.css'
34
 import 'swiper/dist/css/swiper.min.css'
35
+import BaiduMap from 'vue-baidu-map'
35
 Vue.use(vuescroll)
36
 Vue.use(vuescroll)
36
 Vue.use(Element, {
37
 Vue.use(Element, {
37
   size: 'medium', // set element-ui default size
38
   size: 'medium', // set element-ui default size
54
 })
55
 })
55
 
56
 
56
 Vue.prototype.Base64 = require('js-base64').Base64
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 View File

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

+ 18 - 9
src/scrm_pages/article/components/CreateArticleForm.vue View File

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

+ 2 - 0
src/scrm_pages/article/components/EditArticleForm.vue View File

96
                               this.articsData[this.artilceIndex].order = categorys.order;
96
                               this.articsData[this.artilceIndex].order = categorys.order;
97
                               this.centerDialogVisible = false;
97
                               this.centerDialogVisible = false;
98
                               this.$message.success("编辑文章分类成功");
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 View File

1
 <template>
1
 <template>
2
     <div>
2
     <div>
3
          <div class="feature ">
3
          <div class="feature ">
4
+
4
             <ul >
5
             <ul >
5
                 <li @click="slideshow = true">
6
                 <li @click="slideshow = true">
6
                     <span>
7
                     <span>
8
                         <p>轮播图</p>  
9
                         <p>轮播图</p>  
9
                     </span>
10
                     </span>
10
                 </li>
11
                 </li>
11
-                <li @click="address = true">
12
+                <li @click="hospitaAddress()">
12
                     <span>
13
                     <span>
13
                         <img :src="new2" alt="" style="width:40px;height:40px">
14
                         <img :src="new2" alt="" style="width:40px;height:40px">
14
                         <p>医院地址</p>  
15
                         <p>医院地址</p>  
34
                 </li>
35
                 </li>
35
             </ul>
36
             </ul>
36
          </div>
37
          </div>
38
+
37
 <!-- 轮播图 -->
39
 <!-- 轮播图 -->
38
 <el-dialog
40
 <el-dialog
39
     title="新增轮播图"
41
     title="新增轮播图"
40
     :visible.sync="slideshow"
42
     :visible.sync="slideshow"
41
     width="550px"
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
       </el-form-item>
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
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
51
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
50
       </el-form-item>
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
           list-type="picture-card"
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
       </el-form-item>
83
       </el-form-item>
60
     </el-form>
84
     </el-form>
61
     <span slot="footer" class="dialog-footer">
85
     <span slot="footer" class="dialog-footer">
62
       <el-button @click="slideshow = false">取 消</el-button>
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
     </span>
88
     </span>
65
   </el-dialog>
89
   </el-dialog>
66
 
90
 
67
   <!-- 医院地址 -->
91
   <!-- 医院地址 -->
68
   <el-dialog
92
   <el-dialog
69
-    title="新增轮播图"
70
-    :visible.sync="address"
93
+    title="新增医院地址"
94
+    :visible.sync="hostaddress"
71
     width="550px"
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
       <el-form-item label="模块标题: ">
98
       <el-form-item label="模块标题: ">
75
-        <el-input v-model="form.name"></el-input>
99
+        <el-input v-model="hospitalform.title" ></el-input>
76
       </el-form-item>
100
       </el-form-item>
77
       <el-form-item label="排序值: ">
101
       <el-form-item label="排序值: ">
78
-        <el-input v-model="form.name"></el-input>
102
+        <el-input v-model="hospitalform.sort"></el-input>
79
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
103
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
80
       </el-form-item>
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
     </el-form>
115
     </el-form>
88
     <span slot="footer" class="dialog-footer">
116
     <span slot="footer" class="dialog-footer">
89
       <el-button @click="address = false">取 消</el-button>
117
       <el-button @click="address = false">取 消</el-button>
91
     </span>
119
     </span>
92
   </el-dialog>
120
   </el-dialog>
93
 
121
 
122
+
94
 <!-- 新增联系方式 -->
123
 <!-- 新增联系方式 -->
95
 <el-dialog
124
 <el-dialog
96
     title="新增联系方式"
125
     title="新增联系方式"
97
     :visible.sync="contact"
126
     :visible.sync="contact"
98
     width="550px"
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
       </el-form-item>
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
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
135
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
107
       </el-form-item>
136
       </el-form-item>
108
-      <el-form-item label="联系方式: ">
137
+      <el-form-item label="联系方式:" v-model="contractform.way">
109
         <div class="used">
138
         <div class="used">
110
              <ul>
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
                     <span class="icon"> 
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
                     </span>
145
                     </span>
124
                  </li>
146
                  </li>
125
              </ul>
147
              </ul>
129
     <span slot="footer" class="dialog-footer">
151
     <span slot="footer" class="dialog-footer">
130
       <el-button @click="addLink = true">添加联系方式</el-button>      
152
       <el-button @click="addLink = true">添加联系方式</el-button>      
131
       <el-button @click="contact = false">取 消</el-button>
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
     </span>
155
     </span>
134
   </el-dialog>
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
   <el-dialog
159
   <el-dialog
151
     title="新增联系方式"
160
     title="新增联系方式"
152
     :visible.sync="addLink"
161
     :visible.sync="addLink"
153
     width="550px"
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
         </el-form-item>
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
             </el-radio-group>
177
             </el-radio-group>
178
+            </el-col>
179
+          </el-row>  
164
         </el-form-item>
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
         </el-form-item>
188
         </el-form-item>
168
     </el-form>
189
     </el-form>
169
     <span slot="footer" class="dialog-footer">
190
     <span slot="footer" class="dialog-footer">
170
         <el-button @click="addLink = false">取 消</el-button>
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
     </span>
231
     </span>
173
   </el-dialog>
232
   </el-dialog>
174
 
233
 
177
     title="新增工作时间"
236
     title="新增工作时间"
178
     :visible.sync="time"
237
     :visible.sync="time"
179
     width="550px"
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
       </el-form-item>
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
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
246
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
188
       </el-form-item>
247
       </el-form-item>
189
-      <el-form-item label="工作时间: ">
248
+      <el-form-item label="工作时间:" required prop="worktime">
190
         <el-input
249
         <el-input
191
           type="textarea"
250
           type="textarea"
192
           :rows="6"
251
           :rows="6"
193
           placeholder="请输入内容"
252
           placeholder="请输入内容"
194
-          v-model="textarea">
253
+          v-model="woketimeform.worktime">
195
         </el-input>
254
         </el-input>
196
       </el-form-item>
255
       </el-form-item>
197
     </el-form>
256
     </el-form>
198
     <span slot="footer" class="dialog-footer">
257
     <span slot="footer" class="dialog-footer">
199
       <el-button @click="time = false">取 消</el-button>
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
     </span>
260
     </span>
202
   </el-dialog>
261
   </el-dialog>
203
 
262
 
205
  <el-dialog
264
  <el-dialog
206
     title="新增乘车方式"
265
     title="新增乘车方式"
207
     :visible.sync="type"
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
       </el-form-item>
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
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
275
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
217
       </el-form-item>
276
       </el-form-item>
218
-      <el-form-item label="乘车方式: ">
277
+      <el-form-item label="乘车方式:" required prop="content">
219
         <el-input
278
         <el-input
220
           type="textarea"
279
           type="textarea"
221
           :rows="6"
280
           :rows="6"
222
           placeholder="请输入内容"
281
           placeholder="请输入内容"
223
-          v-model="textarea">
282
+          v-model="rideform.content">
224
         </el-input>
283
         </el-input>
225
       </el-form-item>
284
       </el-form-item>
285
+       </template>
226
     </el-form>
286
     </el-form>
227
     <span slot="footer" class="dialog-footer">
287
     <span slot="footer" class="dialog-footer">
228
       <el-button @click="type = false">取 消</el-button>
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
     </span>
290
     </span>
231
-  </el-dialog>
232
-
233
-
234
-    </div>
291
+   </el-dialog>
292
+  </div>
235
 </template>
293
 </template>
236
 
294
 
237
 
295
 
238
 <script>
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
 export default {
301
 export default {
240
   name: "addcontact",
302
   name: "addcontact",
241
   data() {
303
   data() {
242
     return {
304
     return {
305
+      dialogshow:false,
243
       slideshow:false,
306
       slideshow:false,
244
       address:false,
307
       address:false,
308
+      hostaddress:false,
245
       contact:false,
309
       contact:false,
246
       addLink:false,
310
       addLink:false,
311
+      editLink:false,
247
       time:false,
312
       time:false,
248
       type:false,
313
       type:false,
314
+      disabled: false,
315
+      dialogFormVisibleAdd:true,
316
+      labelPosition: 'left',
317
+      qiniuDomain: 'https://images.shengws.com/',
318
+      rotationData: { token:'',key: '' },
249
       new1: require("../../../assets/preview/u481.png"),
319
       new1: require("../../../assets/preview/u481.png"),
250
       new2: require("../../../assets/preview/u493.png"),
320
       new2: require("../../../assets/preview/u493.png"),
251
       new3: require("../../../assets/preview/u496.png"),
321
       new3: require("../../../assets/preview/u496.png"),
252
       new4: require("../../../assets/preview/u488.png"),
322
       new4: require("../../../assets/preview/u488.png"),
253
-      new5: require("../../../assets/preview/u500.png"),
254
-      
323
+      new5: require("../../../assets/preview/u500.png"),    
255
       form: {
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
   methods:{
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
 </script>
605
 </script>
265
 
606
 
266
 <style rel="stylesheet/scss" lang="scss" scoped>
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
 .tips {
615
 .tips {
269
   font-size: 12px;
616
   font-size: 12px;
270
   line-height: 18px;
617
   line-height: 18px;

+ 478 - 152
src/scrm_pages/site/components/new-feature.vue View File

69
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
69
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
70
       </el-form-item>
70
       </el-form-item>
71
       <el-form-item label="添加图片:" v-model="rotationform.rotationImages" required prop="rotationImages">
71
       <el-form-item label="添加图片:" v-model="rotationform.rotationImages" required prop="rotationImages">
72
+        <div>
73
+        </div>
72
          <el-upload
74
          <el-upload
73
           :data="rotationData"
75
           :data="rotationData"
74
           action="https://upload.qiniup.com"
76
           action="https://upload.qiniup.com"
75
           list-type="picture-card"
77
           list-type="picture-card"
76
          :on-success="RotationchartSuccess"
78
          :on-success="RotationchartSuccess"
77
          :before-upload="beforeRotationUpload"
79
          :before-upload="beforeRotationUpload"
78
-         >
80
+         v-show="show">
79
         <i slot="default" class="el-icon-plus"></i>
81
         <i slot="default" class="el-icon-plus"></i>
80
         <div slot="file" slot-scope="{file}">
82
         <div slot="file" slot-scope="{file}">
81
           <img
83
           <img
98
          </span> 
100
          </span> 
99
         </div> 
101
         </div> 
100
      </el-upload>
102
      </el-upload>
103
+      <img  src="static/images/u679.png" @click="addpic()">
101
       </el-form-item>
104
       </el-form-item>
105
+       
102
        <span class="uploadfont">图片已上传0张,最多上传9张图片</span>
106
        <span class="uploadfont">图片已上传0张,最多上传9张图片</span>
103
     </el-form>
107
     </el-form>
104
     <span slot="footer" class="dialog-footer">
108
     <span slot="footer" class="dialog-footer">
107
     </span>
111
     </span>
108
   </el-dialog>
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
   <el-dialog
210
   <el-dialog
112
     title="新增医院介绍"
211
     title="新增医院介绍"
113
     :visible.sync="two"
212
     :visible.sync="two"
114
     width="50%"
213
     width="50%"
115
-    :before-close="handleClose"
116
      :modal='false'
214
      :modal='false'
117
      v-dialogDrag
215
      v-dialogDrag
118
      :close-on-click-modal="false">
216
      :close-on-click-modal="false">
121
         <el-input v-model="hispitalform.title"></el-input>
219
         <el-input v-model="hispitalform.title"></el-input>
122
       </el-form-item>
220
       </el-form-item>
123
       <el-form-item label="排序值:" required prop="sort">
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
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
223
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
126
       </el-form-item>
224
       </el-form-item>
127
       <el-form-item label="医院介绍:" required prop="introduction">
225
       <el-form-item label="医院介绍:" required prop="introduction">
128
-         <keep-alive v-show="editorshow">
226
+         <keep-alive>
129
             <neditor ref="neditor"
227
             <neditor ref="neditor"
130
               id="editor"
228
               id="editor"
131
               v-bind:r_content="hispitalform.introduction">
229
               v-bind:r_content="hispitalform.introduction">
168
     </span>
266
     </span>
169
   </el-dialog>
267
   </el-dialog>
170
 
268
 
171
-  <!-- 新增名医介绍 -->
269
+    <!-- 新增名医介绍 -->
172
   <el-dialog
270
   <el-dialog
173
     title="新增名医介绍"
271
     title="新增名医介绍"
174
     :visible.sync="four"
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
       <el-form-item label="模块标题:" required prop="title">
275
       <el-form-item label="模块标题:" required prop="title">
179
         <el-input v-model="doctorform.title"></el-input>
276
         <el-input v-model="doctorform.title"></el-input>
180
       </el-form-item>
277
       </el-form-item>
181
-      <el-form-item label="排序值: " required prop="sort">
278
+      <el-form-item label="排序值:" required prop="sort">
182
         <el-input v-model="doctorform.sort"></el-input>
279
         <el-input v-model="doctorform.sort"></el-input>
183
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
280
         <p class="tips">请输入1-99的整数,数值越小,模块排序越靠前</p>
184
       </el-form-item>
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
                 <label class="el-upload-list__item-status-label">
287
                 <label class="el-upload-list__item-status-label">
191
                     <i class="el-icon-upload-success el-icon-check"></i>
288
                     <i class="el-icon-upload-success el-icon-check"></i>
192
                 </label>
289
                 </label>
193
                 <span class="el-upload-list__item-actions">
290
                 <span class="el-upload-list__item-actions">
194
                     <span class="el-upload-list__item-delete">
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
                     </span>
294
                     </span>
198
                 </span>
295
                 </span>
199
             </div>         
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
     </div>
298
     </div>
213
-   </el-form-item>
299
+      <img src="static/images/u646.png" @click="centerDialogVisible = true">
300
+      </el-form-item>
214
     </el-form>
301
     </el-form>
215
     <span slot="footer" class="dialog-footer">
302
     <span slot="footer" class="dialog-footer">
216
       <el-button @click="four = false">取 消</el-button>
303
       <el-button @click="four = false">取 消</el-button>
217
       <el-button type="primary" @click="AddDoctor('doctorform')">确 定</el-button>
304
       <el-button type="primary" @click="AddDoctor('doctorform')">确 定</el-button>
218
     </span>
305
     </span>
219
   </el-dialog>
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
    <el-dialog
445
    <el-dialog
356
     </span>
579
     </span>
357
   </el-dialog>
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
 </div>
583
 </div>
442
 </template>
584
 </template>
443
 
585
 
444
 <script>
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
    import { getToken } from '@/api/qiniu'
588
    import { getToken } from '@/api/qiniu'
447
    import { getFileExtension} from '@/utils/tools'
589
    import { getFileExtension} from '@/utils/tools'
448
    import { isIP } from 'net';
590
    import { isIP } from 'net';
451
    import 'quill/dist/quill.core.css'
593
    import 'quill/dist/quill.core.css'
452
    import 'quill/dist/quill.snow.css'
594
    import 'quill/dist/quill.snow.css'
453
    import 'quill/dist/quill.bubble.css'
595
    import 'quill/dist/quill.bubble.css'
596
+   import { constants } from 'crypto';
454
 export default {
597
 export default {
455
   name: "newfeature",
598
   name: "newfeature",
456
   components:{
599
   components:{
459
   props: ['image', 'clearList'],
602
   props: ['image', 'clearList'],
460
   data() {
603
   data() {
461
     return {
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
       new1: require("../../../assets/preview/u481.png"),
636
       new1: require("../../../assets/preview/u481.png"),
463
       new2: require("../../../assets/preview/u493.png"),
637
       new2: require("../../../assets/preview/u493.png"),
464
       new3: require("../../../assets/preview/u496.png"),
638
       new3: require("../../../assets/preview/u496.png"),
469
       new8: require("../../../assets/preview/u512.png"),
643
       new8: require("../../../assets/preview/u512.png"),
470
       dialogVisible: false,
644
       dialogVisible: false,
471
       dialogRotationVisible: false,
645
       dialogRotationVisible: false,
646
+      editcenterDialogVisible: false,
647
+      addpicVisible:false,
648
+      radio: '1',
472
       two: false,
649
       two: false,
473
       three: false,
650
       three: false,
474
       four: false,
651
       four: false,
476
       six: false,
653
       six: false,
477
       seven: false,
654
       seven: false,
478
       eight: false,
655
       eight: false,
656
+      linkVisible:false,
479
       dialogImageUrl: '',
657
       dialogImageUrl: '',
480
       disabled: false,
658
       disabled: false,
481
       qiniuDomain: 'https://images.shengws.com/',
659
       qiniuDomain: 'https://images.shengws.com/',
482
       uploadData: { token: '', key: '' },
660
       uploadData: { token: '', key: '' },
483
-      doctorData: { token: '' ,key: '' },
661
+      doctorData: { token: '', key: '' },
662
+      doctorDatatwo:  { token: '', key: '' },
484
       rotationData: { token:'',key: '' },
663
       rotationData: { token:'',key: '' },
485
       keData: { token: '' ,key: ''},
664
       keData: { token: '' ,key: ''},
486
       file: this.image ? this.image : '',
665
       file: this.image ? this.image : '',
495
         textarea:"",
674
         textarea:"",
496
         image:"",
675
         image:"",
497
       },
676
       },
677
+      docform:[],
678
+        
679
+    
498
       hispitalform:{
680
       hispitalform:{
499
         title:"",
681
         title:"",
500
         sort:"",
682
         sort:"",
509
         title:"",
691
         title:"",
510
         sort:"",
692
         sort:"",
511
         image:"",
693
         image:"",
694
+        docimages:[],
695
+      },
696
+      editdocfrom:{
697
+        docname:"",
698
+        dochead:"",
699
+        doc_position:"",
700
+        doc_sort:"",
701
+        docintroduction:"",
512
       },
702
       },
513
       eidtDoctorform:{
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
       rotationform:{
711
       rotationform:{
520
         title:"",
712
         title:"",
525
         title:"",
717
         title:"",
526
         sort:"",
718
         sort:"",
527
         keImages:[],
719
         keImages:[],
720
+      },
721
+      picform:{
722
+
528
       },
723
       },
529
 
724
 
530
        rules: {
725
        rules: {
534
          image: [{required: true,message:"请填写新增名医"}],
729
          image: [{required: true,message:"请填写新增名医"}],
535
          docname: [{required:true,message:"请填写医生姓名"}],
730
          docname: [{required:true,message:"请填写医生姓名"}],
536
          docHead: [{required: true,message:"请填写医生头像"}],
731
          docHead: [{required: true,message:"请填写医生头像"}],
732
+         dochead: [{required: true,message:"请填写医生头像"}],
537
          docpositional:[{required:true,message:"请填写医生职位"}],
733
          docpositional:[{required:true,message:"请填写医生职位"}],
538
          docintroduction:[{required:true,message:"请填写医生简介"}],
734
          docintroduction:[{required:true,message:"请填写医生简介"}],
539
          images:[{required:true,message:"请填写新增科室环境"}],
735
          images:[{required:true,message:"请填写新增科室环境"}],
540
          rotationImages:[{required:true,message:"请填写添加图片"}],
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
   methods:{   
744
   methods:{   
745
+      addpic(){
746
+       this.addpicVisible = true;
747
+      },
748
+
749
+      addlink(){
750
+        this.linkVisible = true;
751
+      },
547
      //轮播图
752
      //轮播图
548
      rotationEditImages(){
753
      rotationEditImages(){
549
         this.dialogRotationVisible = true;
754
         this.dialogRotationVisible = true;
552
       handleRemove(file) {
757
       handleRemove(file) {
553
         console.log(file);
758
         console.log(file);
554
       },
759
       },
760
+      handleClose(file){
761
+        console.log(file);
762
+      },
555
       imageUploadSuccess(res,file) {
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
       beforeUpload(file) {   
767
       beforeUpload(file) {   
561
         const isJPG = file.type === 'image/jpeg';
768
         const isJPG = file.type === 'image/jpeg';
577
                 getToken().then(response => {
784
                 getToken().then(response => {
578
                     const tokentree = response.data.data.uptoken
785
                     const tokentree = response.data.data.uptoken
579
                     console.log("token是什么?",tokentree)
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
                     resolve(true)
789
                     resolve(true)
583
                 }).catch(err => {
790
                 }).catch(err => {
584
                     reject(false)
791
                     reject(false)
593
 
800
 
594
 
801
 
595
       handleAvatarSuccess(res, file) {
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
       beforeAvatarUpload(file) {
807
       beforeAvatarUpload(file) {
599
         console.log("尺寸",file.size)
808
         console.log("尺寸",file.size)
600
         const isJPG = file.type === 'image/jpeg';
809
         const isJPG = file.type === 'image/jpeg';
629
           return isJPG && isLt2M;
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
       RotationchartSuccess(res,file,filelist){         
881
       RotationchartSuccess(res,file,filelist){         
634
          this.rotationform.rotationImages.push(this.qiniuDomain + res.url);         
882
          this.rotationform.rotationImages.push(this.qiniuDomain + res.url);         
675
               AddRotationChart(this.rotationform).then(response=>{
923
               AddRotationChart(this.rotationform).then(response=>{
676
                   if(response.data.state==1){
924
                   if(response.data.state==1){
677
                     var rotation =  response.data.data.rotation;
925
                     var rotation =  response.data.data.rotation;
678
-                    console.log("返回数据",rotation);
926
+                   // console.log("返回数据",rotation);
679
                     this.$message.success("添加轮播图成功");
927
                     this.$message.success("添加轮播图成功");
680
                     this.dialogVisible = false;
928
                     this.dialogVisible = false;
681
                   }
929
                   }
693
              saveHispital(this.hispitalform).then(response=>{
941
              saveHispital(this.hispitalform).then(response=>{
694
                   if(response.data.state==1){
942
                   if(response.data.state==1){
695
                     var hospital = response.data.data.hospital;
943
                     var hospital = response.data.data.hospital;
696
-                    console.log("返回数据",hospital)
944
+                    //console.log("返回数据",hospital)
697
                      this.$message.success("添加医院介绍成功");  
945
                      this.$message.success("添加医院介绍成功");  
698
                      this.two = false;    
946
                      this.two = false;    
699
                   }
947
                   }
710
              addOffices(this.administform).then(response=>{
958
              addOffices(this.administform).then(response=>{
711
                  if(response.data.state==1){
959
                  if(response.data.state==1){
712
                     var offices = response.data.data.offices;
960
                     var offices = response.data.data.offices;
713
-                    console.log("返回数据",offices);
961
+                   // console.log("返回数据",offices);
714
                     this.$message.success("添加科室介绍成功");
962
                     this.$message.success("添加科室介绍成功");
715
                     this.three = false;
963
                     this.three = false;
716
                  }
964
                  }
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
          this.$refs[formName].validate((valid)=>{
977
          this.$refs[formName].validate((valid)=>{
725
            if(valid){
978
            if(valid){
726
               AddDoctor(this.doctorform).then(response=>{
979
               AddDoctor(this.doctorform).then(response=>{
980
+                console.log("啊啊啊",this.doctorform);
727
                 if(response.data.state==1){
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
            if(valid){
1041
            if(valid){
748
              AddDoctorInfo(this.eidtDoctorform).then(response=>{
1042
              AddDoctorInfo(this.eidtDoctorform).then(response=>{
749
                if(response.data.state==1){
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
       deleteKe(){
1072
       deleteKe(){
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
 </script>
1135
 </script>
818
 
1136
 
819
 <style rel="stylesheet/scss" lang="scss" scoped>
1137
 <style rel="stylesheet/scss" lang="scss" scoped>
1138
+     .tpic{
1139
+       margin-left: 50px;
1140
+     }
1141
+
820
      .eidtRotationimages{
1142
      .eidtRotationimages{
821
        text-align: center;
1143
        text-align: center;
822
        margin-bottom: 12px;
1144
        margin-bottom: 12px;
835
     font-size: 12px;
1157
     font-size: 12px;
836
     line-height: 18px;
1158
     line-height: 18px;
837
   }
1159
   }
1160
+  .adddoc{
1161
+    font-size: 14px;
1162
+  }
838
 
1163
 
839
     //上传样式
1164
     //上传样式
840
     .uploadfont{
1165
     .uploadfont{
868
     cursor: pointer;
1193
     cursor: pointer;
869
     position: relative;
1194
     position: relative;
870
     overflow: hidden;
1195
     overflow: hidden;
871
-    width: 148px;
872
-    height: 148px;
1196
+    width: 100px;
1197
+    height: 100px;
873
   }
1198
   }
874
   .avatar-uploader{
1199
   .avatar-uploader{
875
     border-color: #409EFF;
1200
     border-color: #409EFF;
877
   .avatar-uploader-icon {
1202
   .avatar-uploader-icon {
878
     font-size: 28px;
1203
     font-size: 28px;
879
     color: #8c939d;
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
     text-align: center;
1210
     text-align: center;
884
   }
1211
   }
885
-  .avatar {
886
-    width: 178px;
887
-    height: 178px;
888
-    display: block;
889
-  }
1212
+  
890
 </style>
1213
 </style>
891
 <style  /deep/scoped>
1214
 <style  /deep/scoped>
892
      .disabled {
1215
      .disabled {
944
         -webkit-transition: opacity .3s;
1267
         -webkit-transition: opacity .3s;
945
         transition: opacity .3s;
1268
         transition: opacity .3s;
946
     }
1269
     }
1270
+
1271
+
1272
+
947
 </style>
1273
 </style>
948
 
1274
 

+ 23 - 309
src/scrm_pages/site/components/used-list.vue View File

1
 <template>
1
 <template>
2
 <div>
2
 <div>
3
-    <div class="used">
3
+    <div class="used" v-for="item in this.model" :key="item.id">
4
         <ul>
4
         <ul>
5
             <li>
5
             <li>
6
-                <span class="name">轮播图</span>
6
+                <span class="name">{{item.title}}</span>
7
                 <span class="icon"> 
7
                 <span class="icon"> 
8
                     <i class="el-icon-edit-outline" @click="dialogVisible = true"></i>
8
                     <i class="el-icon-edit-outline" @click="dialogVisible = true"></i>
9
                     <i class="el-icon-delete" @click="deleteList = true"></i>
9
                     <i class="el-icon-delete" @click="deleteList = true"></i>
10
                 </span>
10
                 </span>
11
             </li>
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
         </ul>
12
         </ul>
62
     </div>
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
 </div>
14
 </div>
315
-
316
 </template>
15
 </template>
317
 
16
 
318
-
319
 <script>
17
 <script>
320
 export default {
18
 export default {
321
   name: "usedlist",
19
   name: "usedlist",
332
       dialogVisible: false,      
30
       dialogVisible: false,      
333
       form: {
31
       form: {
334
         name: ""
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
 </script>
56
 </script>
343
 
57
 

+ 434 - 48
src/scrm_pages/site/preview.vue View File

3
       <div class="position">
3
       <div class="position">
4
         <bread-crumb :crumbs='crumbs'></bread-crumb>
4
         <bread-crumb :crumbs='crumbs'></bread-crumb>
5
       </div>
5
       </div>
6
-      <div class="app-container">
7
-            
6
+      <div class="app-container">           
8
             <!-- 新增 -->
7
             <!-- 新增 -->
9
             <el-row :gutter="24">
8
             <el-row :gutter="24">
10
-               <el-col :span="6">
11
-                <div class="phone1">
9
+               <el-col :span="6">             
12
                  <el-tabs type="border-card">
10
                  <el-tabs type="border-card">
13
                     <el-tab-pane label="首页">
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
                             <el-tab-pane label="新增模块" name="first">
13
                             <el-tab-pane label="新增模块" name="first">
16
                                  <new-feature> </new-feature>
14
                                  <new-feature> </new-feature>
17
                             </el-tab-pane>
15
                             </el-tab-pane>
18
                             <el-tab-pane label="已使用" name="second">
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
                             </el-tab-pane>
29
                             </el-tab-pane>
21
                         </el-tabs>
30
                         </el-tabs>
22
                     </el-tab-pane>
31
                     </el-tab-pane>
32
+
23
                     <el-tab-pane label="联系我们">
33
                     <el-tab-pane label="联系我们">
24
                         <el-tabs v-model="activeName" @tab-click="handleClick">
34
                         <el-tabs v-model="activeName" @tab-click="handleClick">
25
                             <el-tab-pane label="新增模块" name="three">
35
                             <el-tab-pane label="新增模块" name="three">
26
                                 <add-contact></add-contact>
36
                                 <add-contact></add-contact>
27
                             </el-tab-pane>
37
                             </el-tab-pane>
28
                             <el-tab-pane label="已使用" name="four">
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
                             </el-tab-pane>
50
                             </el-tab-pane>
31
                         </el-tabs>                        
51
                         </el-tabs>                        
32
                     </el-tab-pane>
52
                     </el-tab-pane>
33
                   </el-tabs>
53
                   </el-tabs>
34
-                </div>
35
                </el-col>
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
                <el-col :span="6">
156
                <el-col :span="6">
38
                   <div class="phone">
157
                   <div class="phone">
201
                         <div class="swiper-container" id="swiper4">
320
                         <div class="swiper-container" id="swiper4">
202
                          <div class="swiper-wrapper" id="wrapper4">
321
                          <div class="swiper-wrapper" id="wrapper4">
203
                            <div class="swiper-slide">
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
                                 </div>  
324
                                 </div>  
207
                            </div>
325
                            </div>
208
                          </div>
326
                          </div>
210
                  </div>   
328
                  </div>   
211
                </el-col>
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
                </el-col>
357
                </el-col>
218
 
358
 
219
                <el-col :span="6">
359
                <el-col :span="6">
220
                  <div class="share">
360
                  <div class="share">
221
                   <div class="share2"> 
361
                   <div class="share2"> 
222
-                    <span class="share3">分享管理</span>      
362
+                    <span class="share3">导航设置</span>      
223
                   </div> 
363
                   </div> 
364
+                  <div class="addbutton">
365
+                     <el-button>添加</el-button>
366
+                  </div>
224
                  </div>  
367
                  </div>  
225
                </el-col>
368
                </el-col>
226
             </el-row>                   
369
             </el-row>                   
233
 import NewFeature from "./components/new-feature";
376
 import NewFeature from "./components/new-feature";
234
 import UsedList from "./components/used-list";
377
 import UsedList from "./components/used-list";
235
 import AddContact from "./components/add-contact";
378
 import AddContact from "./components/add-contact";
379
+import { getToken } from '@/api/qiniu'
380
+import { getFileExtension} from '@/utils/tools'
236
 import { Swipe, SwipeItem } from 'mint-ui';
381
 import { Swipe, SwipeItem } from 'mint-ui';
237
 import Vue from 'vue';
382
 import Vue from 'vue';
238
 import 'mint-ui/lib/style.css';
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
 import { IncomingMessage } from 'http';
385
 import { IncomingMessage } from 'http';
241
 import { isIP } from 'net';
386
 import { isIP } from 'net';
242
 import Swiper from "swiper";
387
 import Swiper from "swiper";
243
 import vuedraggable from 'vuedraggable';
388
 import vuedraggable from 'vuedraggable';
389
+import { constants } from 'crypto';
390
+import QRCode from 'qrcodejs2';
244
 Vue.component(Swipe.name, Swipe);
391
 Vue.component(Swipe.name, Swipe);
245
 Vue.component(SwipeItem.name, SwipeItem);
392
 Vue.component(SwipeItem.name, SwipeItem);
246
 export default {
393
 export default {
270
       shows:false,
417
       shows:false,
271
       keshow:false,
418
       keshow:false,
272
       showimages:true,
419
       showimages:true,
420
+      edialogVisible:false,
421
+      dialogVisibletwo:false,
422
+      dialogVisiblefour:false,
423
+      dialogVisiblefive:false,
273
       ellipsis:'',
424
       ellipsis:'',
274
        ops: {
425
        ops: {
275
           vuescroll: {},
426
           vuescroll: {},
283
             background: 'red',
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
         rotationImages:[],
443
         rotationImages:[],
287
         keEnvironmentImages:[],
444
         keEnvironmentImages:[],
445
+        qiniuDomain: 'https://images.shengws.com/',
446
+        rotationData: { token:'',key: '' },
288
         hispitalform:{
447
         hispitalform:{
289
           title:"",
448
           title:"",
290
           sort:"",
449
           sort:"",
301
        docpositional:"",
460
        docpositional:"",
302
        docintroduction:"",
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
   methods:{   
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
     more(){
545
     more(){
310
       this.show = false;
546
       this.show = false;
311
       this.shows = true;
547
       this.shows = true;
327
     handleClick(){
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
       GetRationImages(){
580
       GetRationImages(){
332
         GetRationImages().then(response=>{
581
         GetRationImages().then(response=>{
373
            var doctor = response.data.data.doctor;
622
            var doctor = response.data.data.doctor;
374
            this.doctorInfos = response.data.data.doctor;
623
            this.doctorInfos = response.data.data.doctor;
375
            this.doctorInfo = response.data,data.doctor
624
            this.doctorInfo = response.data,data.doctor
376
-           console.log("获取名医介绍",this.doctorInfos);
625
+          // console.log("获取名医介绍",this.doctorInfos);
377
         }
626
         }
378
       })
627
       })
379
     },
628
     },
392
             this.keEnvironmentImages =  Images;
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
   created(){
727
   created(){
398
     this.GetRationImages();
728
     this.GetRationImages();
400
     this.GetOfficeInfo();
730
     this.GetOfficeInfo();
401
     this.GetDoctorInfo();
731
     this.GetDoctorInfo();
402
     this.GetOffEnvironment();
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
             var mySwiper = new Swiper('#swiper2', {
754
             var mySwiper = new Swiper('#swiper2', {
422
                 direction:"horizontal",
755
                 direction:"horizontal",
484
 
817
 
485
 <style rel="stylesheet/scss" lang="scss" scoped>
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
      .el-row {
874
      .el-row {
488
        margin-bottom: 20px;
875
        margin-bottom: 20px;
489
        &:last-child {
876
        &:last-child {
498
      width: 180px;
885
      width: 180px;
499
      height: 180px;
886
      height: 180px;
500
    //  border: solid 1px red;
887
    //  border: solid 1px red;
501
-     margin-left: 120px;
888
+     margin-left: 90px;
502
      margin-top: 30px;
889
      margin-top: 30px;
503
    }
890
    }
504
    .share{
891
    .share{
507
      height: 720px;
894
      height: 720px;
508
      border: solid 1px black;
895
      border: solid 1px black;
509
      margin-top: 30px;
896
      margin-top: 30px;
510
-   //  margin-left: 1100px;
897
+
511
    }
898
    }
512
 
899
 
513
    .share2{
900
    .share2{
879
    }
1266
    }
880
    #wrapper4{
1267
    #wrapper4{
881
      width: 50%;
1268
      width: 50%;
882
-   }
883
-
884
-  .phone1{
885
-    float: left;
886
-    width: 350px;
887
-    margin-top: 20px;
888
-  }
889
- 
890
-  
1269
+   }  
891
 .phone{
1270
 .phone{
892
    margin-top: 5px;
1271
    margin-top: 5px;
893
    position: relative;
1272
    position: relative;
894
-   margin-left: 70px;
1273
+   margin-left: 40px;
895
    float: left;
1274
    float: left;
896
    width: 380px;
1275
    width: 380px;
897
    height: 750px;
1276
    height: 750px;
1341
      color: #FF6600;
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
 </style>
1730
 </style>
1345
 
1731
 
1346
 
1732
 

BIN
static/images/u642.png View File


BIN
static/images/u645.png View File


BIN
static/images/u646.png View File


BIN
static/images/u678.png View File


BIN
static/images/u679.png View File