Browse Source

合并master

pull/15/head
longchao 4 weeks ago
parent
commit
4714c28476
  1. 150
      package-lock.json
  2. 1
      src/assets/site/prompt-icon-1.svg
  3. 1
      src/assets/site/prompt-icon-2.svg
  4. 1
      src/assets/site/prompt-icon-3.svg
  5. 6
      src/components/GroupFormBtns.vue
  6. 97
      src/components/PromptText.vue
  7. 17
      src/store/index.js
  8. 187
      src/views/DoctorInformation.vue
  9. 2293
      src/views/HosInformation.vue

150
package-lock.json

@ -15,6 +15,7 @@
"regenerator-runtime": "^0.14.1", "regenerator-runtime": "^0.14.1",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-clickaway": "^2.2.2", "vue-clickaway": "^2.2.2",
"vue-qr": "^4.0.9",
"vue-router": "^3.5.1", "vue-router": "^3.5.1",
"vuex": "^3.6.2" "vuex": "^3.6.2"
}, },
@ -3874,8 +3875,7 @@
"node_modules/balanced-match": { "node_modules/balanced-match": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
"dev": true
}, },
"node_modules/base64-js": { "node_modules/base64-js": {
"version": "1.5.1", "version": "1.5.1",
@ -4989,6 +4989,20 @@
} }
} }
}, },
"node_modules/decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"dependencies": {
"mimic-response": "^3.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/deep-is": { "node_modules/deep-is": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
@ -6497,8 +6511,7 @@
"node_modules/fs.realpath": { "node_modules/fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
"dev": true
}, },
"node_modules/fsevents": { "node_modules/fsevents": {
"version": "2.3.3", "version": "2.3.3",
@ -7113,7 +7126,6 @@
"resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
"dependencies": { "dependencies": {
"once": "^1.3.0", "once": "^1.3.0",
"wrappy": "1" "wrappy": "1"
@ -7122,8 +7134,7 @@
"node_modules/inherits": { "node_modules/inherits": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
"dev": true
}, },
"node_modules/ipaddr.js": { "node_modules/ipaddr.js": {
"version": "2.2.0", "version": "2.2.0",
@ -7377,6 +7388,11 @@
"@sideway/pinpoint": "^2.0.0" "@sideway/pinpoint": "^2.0.0"
} }
}, },
"node_modules/js-binary-schema-parser": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
"integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
},
"node_modules/js-message": { "node_modules/js-message": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz",
@ -7954,6 +7970,17 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/mimic-response": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/mini-css-extract-plugin": { "node_modules/mini-css-extract-plugin": {
"version": "2.9.2", "version": "2.9.2",
"resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz",
@ -8375,7 +8402,6 @@
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": { "dependencies": {
"wrappy": "1" "wrappy": "1"
} }
@ -8541,6 +8567,11 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/parenthesis": {
"version": "3.1.8",
"resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz",
"integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
},
"node_modules/parse-json": { "node_modules/parse-json": {
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
@ -10271,6 +10302,49 @@
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true "dev": true
}, },
"node_modules/simple-concat": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/simple-get": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"decompress-response": "^6.0.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
}
},
"node_modules/sirv": { "node_modules/sirv": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmmirror.com/sirv/-/sirv-2.0.4.tgz", "resolved": "https://registry.npmmirror.com/sirv/-/sirv-2.0.4.tgz",
@ -10459,6 +10533,14 @@
"safe-buffer": "~5.2.0" "safe-buffer": "~5.2.0"
} }
}, },
"node_modules/string-split-by": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz",
"integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
"dependencies": {
"parenthesis": "^3.1.5"
}
},
"node_modules/string-width": { "node_modules/string-width": {
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
@ -11209,6 +11291,55 @@
} }
} }
}, },
"node_modules/vue-qr": {
"version": "4.0.9",
"resolved": "https://registry.npmjs.org/vue-qr/-/vue-qr-4.0.9.tgz",
"integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
"dependencies": {
"glob": "^8.0.1",
"js-binary-schema-parser": "^2.0.2",
"simple-get": "^4.0.1",
"string-split-by": "^1.0.0"
}
},
"node_modules/vue-qr/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/vue-qr/node_modules/glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"deprecated": "Glob versions prior to v9 are no longer supported",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^5.0.1",
"once": "^1.3.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/vue-qr/node_modules/minimatch": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/vue-router": { "node_modules/vue-router": {
"version": "3.6.5", "version": "3.6.5",
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz",
@ -11807,8 +11938,7 @@
"node_modules/wrappy": { "node_modules/wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
"dev": true
}, },
"node_modules/ws": { "node_modules/ws": {
"version": "7.5.10", "version": "7.5.10",

1
src/assets/site/prompt-icon-1.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_217_60685"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_217_60685)"><g><path d="M8,1C9.97933,1.052,11.6278,1.7368329999999998,12.9455,3.0545C14.2632,4.372170000000001,14.948,6.02067,15,8C14.948,9.97933,14.2632,11.6278,12.9455,12.9455C11.6278,14.2632,9.97933,14.948,8,15C6.02067,14.948,4.372170000000001,14.2632,3.0545,12.9455C1.7368329999999998,11.6278,1.052,9.97933,1,8C1.052,6.02067,1.7368329999999998,4.372170000000001,3.0545,3.0545C4.372170000000001,1.7368329999999998,6.02067,1.052,8,1C8,1,8,1,8,1C8,1,8,1,8,1ZM9.047,5.297C9.318,5.297,9.542,5.21633,9.719,5.055C9.896,4.89367,9.9845,4.6775,9.9845,4.406499999999999C9.9845,4.1355,9.896,3.91933,9.719,3.758C9.542,3.59667,9.32067,3.516,9.055,3.516C8.78933,3.516,8.568,3.59667,8.391,3.758C8.214,3.91933,8.125499999999999,4.1355,8.125499999999999,4.406499999999999C8.125499999999999,4.6775,8.214,4.89367,8.391,5.055C8.568,5.21633,8.78683,5.297,9.0475,5.297C9.0475,5.297,9.047,5.297,9.047,5.297C9.047,5.297,9.047,5.297,9.047,5.297ZM9.2345,10.922C9.2345,10.85933,9.23967,10.776,9.25,10.672C9.26033,10.568,9.26033,10.469,9.25,10.375C9.25,10.375,8.422,11.328,8.422,11.328C8.33867,11.4217,8.25267,11.4947,8.164,11.547C8.075330000000001,11.5993,7.99983,11.615,7.9375,11.594C7.84383,11.5523,7.80217,11.4793,7.8125,11.375C7.8125,11.375,9.1875,7.047,9.1875,7.047C9.2395,6.75533,9.19267,6.50533,9.047,6.297C8.90133,6.08867,8.667,5.96367,8.344000000000001,5.922C7.97933,5.93233,7.58083,6.086,7.1485,6.383C6.71617,6.68,6.3385,7.05767,6.0155,7.516C6.0155,7.516,6.0155,7.7505,6.0155,7.7505C6.00517,7.85483,6.00517,7.95383,6.0155,8.0475C6.0155,8.0475,6.8435,7.0945,6.8435,7.0945C6.92683,7.00083,7.01283,6.92783,7.1015,6.8755C7.19017,6.82317,7.2605,6.8075,7.3125,6.8285C7.41683,6.8805,7.45333,6.96383,7.422,7.0785C7.422,7.0785,6.0625,11.391,6.0625,11.391C5.9895,11.6513,6.026,11.8832,6.172,12.0865C6.318,12.2898,6.57317,12.4278,6.9375,12.5005C7.4585,12.4902,7.896,12.3392,8.25,12.0475C8.604,11.7558,8.93217,11.3808,9.2345,10.9225C9.2345,10.9225,9.2345,10.922,9.2345,10.922C9.2345,10.922,9.2345,10.922,9.2345,10.922Z" fill="#006AFF" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

1
src/assets/site/prompt-icon-2.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_354_94660/23_30613"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_354_94660/23_30613)"><g><path d="M8,1C9.97933,1.052,11.6278,1.7368329999999998,12.9455,3.0545C14.2632,4.372170000000001,14.948,6.02067,15,8C14.948,9.97933,14.2632,11.6278,12.9455,12.9455C11.6278,14.2632,9.97933,14.948,8,15C6.02067,14.948,4.372170000000001,14.2632,3.0545,12.9455C1.7368329999999998,11.6278,1.052,9.97933,1,8C1.052,6.02067,1.7368329999999998,4.372170000000001,3.0545,3.0545C4.372170000000001,1.7368329999999998,6.02067,1.052,8,1C8,1,8,1,8,1C8,1,8,1,8,1ZM9.047,5.297C9.318,5.297,9.542,5.21633,9.719,5.055C9.896,4.89367,9.9845,4.6775,9.9845,4.406499999999999C9.9845,4.1355,9.896,3.91933,9.719,3.758C9.542,3.59667,9.32067,3.516,9.055,3.516C8.78933,3.516,8.568,3.59667,8.391,3.758C8.214,3.91933,8.125499999999999,4.1355,8.125499999999999,4.406499999999999C8.125499999999999,4.6775,8.214,4.89367,8.391,5.055C8.568,5.21633,8.78683,5.297,9.0475,5.297C9.0475,5.297,9.047,5.297,9.047,5.297C9.047,5.297,9.047,5.297,9.047,5.297ZM9.2345,10.922C9.2345,10.85933,9.23967,10.776,9.25,10.672C9.26033,10.568,9.26033,10.469,9.25,10.375C9.25,10.375,8.422,11.328,8.422,11.328C8.33867,11.4217,8.25267,11.4947,8.164,11.547C8.075330000000001,11.5993,7.99983,11.615,7.9375,11.594C7.84383,11.5523,7.80217,11.4793,7.8125,11.375C7.8125,11.375,9.1875,7.047,9.1875,7.047C9.2395,6.75533,9.19267,6.50533,9.047,6.297C8.90133,6.08867,8.667,5.96367,8.344000000000001,5.922C7.97933,5.93233,7.58083,6.086,7.1485,6.383C6.71617,6.68,6.3385,7.05767,6.0155,7.516C6.0155,7.516,6.0155,7.7505,6.0155,7.7505C6.00517,7.85483,6.00517,7.95383,6.0155,8.0475C6.0155,8.0475,6.8435,7.0945,6.8435,7.0945C6.92683,7.00083,7.01283,6.92783,7.1015,6.8755C7.19017,6.82317,7.2605,6.8075,7.3125,6.8285C7.41683,6.8805,7.45333,6.96383,7.422,7.0785C7.422,7.0785,6.0625,11.391,6.0625,11.391C5.9895,11.6513,6.026,11.8832,6.172,12.0865C6.318,12.2898,6.57317,12.4278,6.9375,12.5005C7.4585,12.4902,7.896,12.3392,8.25,12.0475C8.604,11.7558,8.93217,11.3808,9.2345,10.9225C9.2345,10.9225,9.2345,10.922,9.2345,10.922C9.2345,10.922,9.2345,10.922,9.2345,10.922Z" fill="#FF8C00" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

1
src/assets/site/prompt-icon-3.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_242_77707/23_30613"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_242_77707/23_30613)"><g><path d="M8,1C9.97933,1.052,11.6278,1.7368329999999998,12.9455,3.0545C14.2632,4.372170000000001,14.948,6.02067,15,8C14.948,9.97933,14.2632,11.6278,12.9455,12.9455C11.6278,14.2632,9.97933,14.948,8,15C6.02067,14.948,4.372170000000001,14.2632,3.0545,12.9455C1.7368329999999998,11.6278,1.052,9.97933,1,8C1.052,6.02067,1.7368329999999998,4.372170000000001,3.0545,3.0545C4.372170000000001,1.7368329999999998,6.02067,1.052,8,1C8,1,8,1,8,1C8,1,8,1,8,1ZM9.047,5.297C9.318,5.297,9.542,5.21633,9.719,5.055C9.896,4.89367,9.9845,4.6775,9.9845,4.406499999999999C9.9845,4.1355,9.896,3.91933,9.719,3.758C9.542,3.59667,9.32067,3.516,9.055,3.516C8.78933,3.516,8.568,3.59667,8.391,3.758C8.214,3.91933,8.125499999999999,4.1355,8.125499999999999,4.406499999999999C8.125499999999999,4.6775,8.214,4.89367,8.391,5.055C8.568,5.21633,8.78683,5.297,9.0475,5.297C9.0475,5.297,9.047,5.297,9.047,5.297C9.047,5.297,9.047,5.297,9.047,5.297ZM9.2345,10.922C9.2345,10.85933,9.23967,10.776,9.25,10.672C9.26033,10.568,9.26033,10.469,9.25,10.375C9.25,10.375,8.422,11.328,8.422,11.328C8.33867,11.4217,8.25267,11.4947,8.164,11.547C8.075330000000001,11.5993,7.99983,11.615,7.9375,11.594C7.84383,11.5523,7.80217,11.4793,7.8125,11.375C7.8125,11.375,9.1875,7.047,9.1875,7.047C9.2395,6.75533,9.19267,6.50533,9.047,6.297C8.90133,6.08867,8.667,5.96367,8.344000000000001,5.922C7.97933,5.93233,7.58083,6.086,7.1485,6.383C6.71617,6.68,6.3385,7.05767,6.0155,7.516C6.0155,7.516,6.0155,7.7505,6.0155,7.7505C6.00517,7.85483,6.00517,7.95383,6.0155,8.0475C6.0155,8.0475,6.8435,7.0945,6.8435,7.0945C6.92683,7.00083,7.01283,6.92783,7.1015,6.8755C7.19017,6.82317,7.2605,6.8075,7.3125,6.8285C7.41683,6.8805,7.45333,6.96383,7.422,7.0785C7.422,7.0785,6.0625,11.391,6.0625,11.391C5.9895,11.6513,6.026,11.8832,6.172,12.0865C6.318,12.2898,6.57317,12.4278,6.9375,12.5005C7.4585,12.4902,7.896,12.3392,8.25,12.0475C8.604,11.7558,8.93217,11.3808,9.2345,10.9225C9.2345,10.9225,9.2345,10.922,9.2345,10.922C9.2345,10.922,9.2345,10.922,9.2345,10.922Z" fill="#FF4D4F" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

6
src/components/GroupFormBtns.vue

@ -2,8 +2,8 @@
<template> <template>
<div class="btns-wrap flex"> <div class="btns-wrap flex">
<GuipButton type="ignore" @click="cancelClick">取消</GuipButton> <GuipButton type="ignore" @click="cancelClick">{{cancelText || '取消'}}</GuipButton>
<GuipButton type="primary" @click="confirmClick">保存</GuipButton> <GuipButton type="primary" @click="confirmClick">{{confirmText ||'保存'}}</GuipButton>
</div> </div>
</template> </template>
<script> <script>
@ -11,7 +11,7 @@ import GuipButton from '@/components/GuipButton.vue';
export default { export default {
name: '', name: '',
props: [''], props: ['cancelText','confirmText'],
components: { components: {
GuipButton GuipButton
}, },

97
src/components/PromptText.vue

@ -0,0 +1,97 @@
<template>
<div class="prompt-text" :class="typeClass">
<div class="flex-text">
<div class="flex">
<img class="prompt-icon" :src="typeIcon" alt="">
<span class="prompt-desc">{{text}}</span>
</div>
<div class="flex">
<slot name="next_desc" />
</div>
</div>
<div class="prompt-extra">
<slot name="desc" />
</div>
</div>
</template>
<script>
export default {
name: 'PromptText',
props: {
text: {
type: String,
required: true
},
type: {
type: [Number, String],
default: 2
},
},
components: {
},
data(){
return{}
},
computed: {
typeClass() {
switch (parseInt(this.type)) {
case 1: return 'info';
case 2: return 'notice';
case 3: return 'warning';
default: return 'notice';
}
},
typeIcon() {
switch (parseInt(this.type)) {
case 1: return require('@/assets/site/prompt-icon-1.svg');
case 2: return require('@/assets/site/prompt-icon-2.svg');
case 3: return require('@/assets/site/prompt-icon-3.svg');
default: return require('@/assets/site/prompt-icon-2.svg');
}
}
},
methods:{
}
}
</script>
<style scoped lang="scss">
.prompt-text{
padding: 8px 13px;
border-radius: 4px;
text-align: justify;
}
.flex-text{
display: flex;
align-items: center;
align-self: stretch;
justify-content: space-between;
z-index: 1;
}
.info{
background: #F2F7FF;
border: 1px solid #BFDAFF;
}
.notice{
background: #FEFCE8;
border: 1px solid rgba(255, 140, 0, 0.3);
}
.warning{
background: #FFF1F0;
border: 1px solid #FFA39E;
}
.prompt-icon{
width: 16px;
height: 16px;;
margin-right: 8px;
}
.prompt-desc{
color: #1E2226;
letter-spacing: 0.08em;
}
.prompt-extra{
}
</style>

17
src/store/index.js

@ -54,6 +54,23 @@ export default new Vuex.Store({
] ]
}, },
{ {
name: '出诊公告',
path: '',
noToPath:true,
img: 'menu/Totalprofit1.svg',
imgActive: require('@/assets/menu/Totalprofit.svg'),
list: [
{
name: '公告设置',
desc: 'siteMessage8'
},
{
name: '出诊日历预览',
desc: 'siteMessage9'
},
]
},
{
name: '项目管理', name: '项目管理',
path: '', path: '',
noToPath:true, noToPath:true,

187
src/views/DoctorInformation.vue

@ -18,23 +18,17 @@
<div class="qqCode-wrap right"> <div class="qqCode-wrap right">
<div class="avator-wrapper flex"> <div class="avator-wrapper flex">
<img v-if="doctorAvatorUrl" :src="doctorAvatorUrl" alt="" class="uploadImg"> <img v-if="doctorAvatorUrl" :src="doctorAvatorUrl" alt="" class="uploadImg">
<hover-button :button-text="doctorAvatorUrl?'重新上传':'开始上传'" :default-icon="require('../assets/upLoad_grey.svg')" <hover-button :button-text="doctorAvatorUrl ? '重新上传' : '开始上传'"
:hover-icon="require('../assets/upLoad_active.svg')" :default-icon="require('../assets/upLoad_grey.svg')"
default-text-color="#23242B" hover-text-color="#006AFF"> :hover-icon="require('../assets/upLoad_active.svg')"
default-text-color="#23242B" hover-text-color="#006AFF">
</hover-button> </hover-button>
<div class="info-upload-wrapper" @click="clearDocotorAvatorFiles"> <div class="info-upload-wrapper" @click="clearDocotorAvatorFiles">
<el-upload <el-upload :on-change="handleAvatarChange" action="#" list-type="picture-card"
:on-change="handleAvatarChange" :multiple="false" :http-request="setDoctorBaseInfoUpload" :limit="Number(1)"
action="#" ref="avatorUpload" :auto-upload="false">
list-type="picture-card" <i slot="default" class="el-icon-plus"></i>
:multiple="false"
:http-request="setDoctorBaseInfoUpload"
:limit="Number(1)"
ref="avatorUpload"
:auto-upload="false"
>
<i slot="default" class="el-icon-plus"></i>
</el-upload> </el-upload>
</div> </div>
</div> </div>
@ -46,8 +40,8 @@
</el-form-item> </el-form-item>
<GuipInput ref="GuipInput" column="column" :required="true" label="医生姓名" <GuipInput ref="GuipInput" column="column" :required="true" label="医生姓名" v-model="siteForm.name"
v-model="siteForm.name" prop="name" placeholder="请输入" /> prop="name" placeholder="请输入" />
</div> </div>
<div class="flex-line"></div> <div class="flex-line"></div>
<div class="flex-right"> <div class="flex-right">
@ -62,6 +56,27 @@
</div> </div>
<div class="siteMessage flex-common" id="siteMessage2"> <div class="siteMessage flex-common" id="siteMessage2">
<p class="littleTitle mb32">出诊设置</p>
<el-form :model="siteForm" :rules="siteFormrules3" ref="siteForm3">
<div class="flex-wrap">
<div class="flex-left">
<p class="coincideTip mb12">您有多个出诊医院时允许不同医院排班时段重合吗</p>
<div class="flex">
<div class="coincideWrap">
<el-radio v-model="siteForm.is_allow_coincide" :label="1">允许时段重合</el-radio>
<p>适用于可由助理代为坐诊</p>
</div>
<div class="coincideWrap">
<el-radio v-model="siteForm.is_allow_coincide" :label="0">禁止时段重合</el-radio>
<p>适用于可由助理代为坐诊</p>
</div>
</div>
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="submitCoincideSet" />
</div>
<div class="siteMessage flex-common" id="siteMessage2">
<p class="littleTitle mb32">初诊审批</p> <p class="littleTitle mb32">初诊审批</p>
<el-form :model="siteForm" :rules="siteFormrules2" ref="siteForm2"> <el-form :model="siteForm" :rules="siteFormrules2" ref="siteForm2">
<div class="flex-wrap"> <div class="flex-wrap">
@ -69,7 +84,7 @@
<GuipRadio v-model="siteForm.first_visit_audit" class="mb12" column="column" <GuipRadio v-model="siteForm.first_visit_audit" class="mb12" column="column"
:options="groupOptions" label="初诊是否审批" required prop="first_visit_audit" :options="groupOptions" label="初诊是否审批" required prop="first_visit_audit"
@change="radioChange" /> @change="radioChange" />
<GuipInput ref="GuipInput" column="column" label="审批人电话" desc="审批人电话、微信,至少填写一项" <GuipInput ref="GuipInput" column="column" label="审批人电话" desc="审批人电话、微信,至少填写一项"
v-model="siteForm.approver_phone" prop="approver_phone" placeholder="请输入" /> v-model="siteForm.approver_phone" prop="approver_phone" placeholder="请输入" />
</div> </div>
<div class="flex-line"></div> <div class="flex-line"></div>
@ -80,27 +95,24 @@
<div class="avator-wrapper"> <div class="avator-wrapper">
<div class="flex" style="position: relative;"> <div class="flex" style="position: relative;">
<img v-if="approverWechatUrl" :src="approverWechatUrl" class="uploadImg"> <img v-if="approverWechatUrl" :src="approverWechatUrl" class="uploadImg">
<hover-button :button-text="(approverWechatUrl ? '重新上传':'微信二维码')" :default-icon="require('../assets/upLoad_grey.svg')" <hover-button :button-text="(approverWechatUrl ? '重新上传' : '微信二维码')"
:hover-icon="require('../assets/upLoad_active.svg')" :default-icon="require('../assets/upLoad_grey.svg')"
default-text-color="#23242B" hover-text-color="#006AFF" /> :hover-icon="require('../assets/upLoad_active.svg')"
default-text-color="#23242B" hover-text-color="#006AFF" />
<div class="info-upload-wrapper" @click="clearApproverWechatFiles" style="width: 177px;left: 0;display: flex;justify-content: flex-start;overflow: hidden;">
<el-upload <div class="info-upload-wrapper" @click="clearApproverWechatFiles"
:on-change="handleApproverWechatChange" style="width: 177px;left: 0;display: flex;justify-content: flex-start;overflow: hidden;">
action="#" <el-upload :on-change="handleApproverWechatChange" action="#"
list-type="picture-card" list-type="picture-card" :multiple="false"
:multiple="false" :http-request="setApproverWechatUpload" :limit="Number(1)"
:http-request="setApproverWechatUpload" ref="approverWechatUpload" :auto-upload="false">
:limit="Number(1)"
ref="approverWechatUpload"
:auto-upload="false"
>
<i slot="default" class="el-icon-plus"></i> <i slot="default" class="el-icon-plus"></i>
</el-upload> </el-upload>
</div> </div>
</div> </div>
<div slot="tip" class="el-upload__tip desc" style="margin-top:8px;">批人微信二维码大小2M以内</div> <div slot="tip" class="el-upload__tip desc" style="margin-top:8px;">批人微信二维码大小2M以内
</div>
</div> </div>
</div> </div>
</GuipFormItem> </GuipFormItem>
@ -121,8 +133,8 @@
</div> </div>
<div class="flex-line"></div> <div class="flex-line"></div>
<div class="flex-right"> <div class="flex-right">
<GuipInput ref="GuipInput" column="column" label="个人标签" <GuipInput ref="GuipInput" column="column" label="个人标签" v-model="siteForm.label" prop="name"
v-model="siteForm.label" prop="name" placeholder="请输入" /> placeholder="请输入" />
</div> </div>
</div> </div>
</el-form> </el-form>
@ -156,11 +168,11 @@ export default {
fileList: [ fileList: [
// { name: 'image.jpeg', url: 'http://jasonyizherenxin.checkcopy.com/user_avatar/1.png?v=93940df0b596961c42de23ef1f2d3257' } // { name: 'image.jpeg', url: 'http://jasonyizherenxin.checkcopy.com/user_avatar/1.png?v=93940df0b596961c42de23ef1f2d3257' }
], ],
fileList1:[], fileList1: [],
doctorAvatoFile:[], doctorAvatoFile: [],
doctorAvatorUrl: '', doctorAvatorUrl: '',
approverWechatUrl:'', approverWechatUrl: '',
approverWechatFile:[], approverWechatFile: [],
options_payword: [], options_payword: [],
groupOptions: [ groupOptions: [
{ label: '需审批', value: '1' }, { label: '需审批', value: '1' },
@ -168,7 +180,7 @@ export default {
], ],
formData: null, formData: null,
siteForm: { siteForm: {
did:0, did: 0,
name: '', name: '',
idcard: ' ', idcard: ' ',
phone: '', phone: '',
@ -176,9 +188,10 @@ export default {
doctor_desc: '', doctor_desc: '',
doctor_detail: '', doctor_detail: '',
label: '', label: '',
approver_phone:'', approver_phone: '',
approver_wechat:'', approver_wechat: '',
first_visit_audit: '', first_visit_audit: '',
is_allow_coincide:''//
}, },
oldForm: {}, oldForm: {},
siteFormrules2: { siteFormrules2: {
@ -186,6 +199,11 @@ export default {
{ required: true, message: '请选择初诊审批设置', trigger: 'change' } { required: true, message: '请选择初诊审批设置', trigger: 'change' }
] ]
}, },
siteFormrules3: {
coincide: [
{ required: true, message: '请选择出诊设置', trigger: 'change' }
]
},
siteFormrules: { siteFormrules: {
name: [ name: [
{ required: true, message: '请输入姓名', trigger: 'blur' } { required: true, message: '请输入姓名', trigger: 'blur' }
@ -231,7 +249,7 @@ export default {
}, },
methods: { methods: {
setDoctorDesc() { setDoctorDesc() {
if(!this.doctorId) { if (!this.doctorId) {
this.$message.error('请先设置医生基础信息') this.$message.error('请先设置医生基础信息')
return; return;
} }
@ -253,7 +271,7 @@ export default {
}) })
}, },
getDoctorData(doctor_id) { getDoctorData(doctor_id) {
this.$http('POST', '/api/admin/get_doctor_baseinfo', {did:doctor_id}).then(response => { this.$http('POST', '/api/admin/get_doctor_baseinfo', { did: doctor_id }).then(response => {
if (response.code != 0) { if (response.code != 0) {
this.$message.error(response.msg) this.$message.error(response.msg)
return; return;
@ -277,9 +295,9 @@ export default {
this.$message.success(response.msg) this.$message.success(response.msg)
var data = response.data var data = response.data
if(this.doctorId) return; if (this.doctorId) return;
setTimeout(() => { setTimeout(() => {
location.href = location.href+'?doctor_id='+data.doctor_id location.href = location.href + '?doctor_id=' + data.doctor_id
}, 800); }, 800);
}).catch(error => { }).catch(error => {
console.error(error, 'error') console.error(error, 'error')
@ -299,8 +317,8 @@ export default {
this.setDoctorInfo(fd) this.setDoctorInfo(fd)
}, },
submitDoctorBaseInfo() { submitDoctorBaseInfo() {
if(this.doctorAvatoFile.length == 0) { if (this.doctorAvatoFile.length == 0) {
if(this.doctorId) { if (this.doctorId) {
this.setDoctorInfo(this.siteForm) this.setDoctorInfo(this.siteForm)
return; return;
} }
@ -310,12 +328,12 @@ export default {
this.$refs.avatorUpload.submit(); this.$refs.avatorUpload.submit();
}, },
clearDocotorAvatorFiles(){ clearDocotorAvatorFiles() {
this.doctorAvatorUrl = ''; this.doctorAvatorUrl = '';
this.doctorAvatoFile = [] this.doctorAvatoFile = []
this.$refs.avatorUpload.clearFiles(); this.$refs.avatorUpload.clearFiles();
}, },
clearApproverWechatFiles(){ clearApproverWechatFiles() {
this.approverWechatUrl = ''; this.approverWechatUrl = '';
this.approverWechatFile = [] this.approverWechatFile = []
this.$refs.approverWechatUpload.clearFiles(); this.$refs.approverWechatUpload.clearFiles();
@ -340,9 +358,9 @@ export default {
this.$message.success(response.msg) this.$message.success(response.msg)
var data = response.data var data = response.data
if(this.doctorId) return; if (this.doctorId) return;
setTimeout(() => { setTimeout(() => {
location.href = location.href+'?doctor_id='+data.doctor_id location.href = location.href + '?doctor_id=' + data.doctor_id
}, 800); }, 800);
}).catch(error => { }).catch(error => {
console.error(error, 'error') console.error(error, 'error')
@ -350,18 +368,42 @@ export default {
}) })
}, },
submitApproverWechat() { submitApproverWechat() {
if(!this.doctorId) { if (!this.doctorId) {
this.$message.error('请先设置医生基础信息') this.$message.error('请先设置医生基础信息')
return; return;
} }
if(this.approverWechatFile.length == 0) { if (this.approverWechatFile.length == 0) {
this.setApproverWechat(this.siteForm) this.setApproverWechat(this.siteForm)
return; return;
} }
this.$refs.approverWechatUpload.submit(); this.$refs.approverWechatUpload.submit();
}, },
//
submitCoincideSet() {
if (!this.doctorId) {
this.$message.error('请先设置医生基础信息')
return;
}
//
// this.$http('POST', '/api/admin/set_doctor_approver', {
// is_allow_coincide:this.siteForm.is_allow_coincide
// }).then(response => {
// if (response.code != 0) {
// this.$message.error(response.msg)
// return;
// }
// this.$message.success(response.msg)
// if (this.doctorId) return;
// }).catch(error => {
// console.error(error, 'error')
// this.$message.error('')
// })
},
handleApproverWechatChange(file, fileList) { handleApproverWechatChange(file, fileList) {
console.log(file, fileList) console.log(file, fileList)
this.approverWechatFile = file this.approverWechatFile = file
@ -382,8 +424,30 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.coincideWrap{
.info-upload-wrapper ::v-deep .el-upload-list.el-upload-list--picture-card{ margin-right: 24px;
text-align: left;
p{
font-family: Microsoft YaHei UI;
font-size: 12px;
font-weight: normal;
line-height: 24px;
letter-spacing: 0.08em;
color: #8A9099;
padding-left: 22px;
}
}
.coincideTip{
font-family: Microsoft YaHei UI;
font-size: 14px;
font-weight: normal;
line-height: normal;
letter-spacing: 0.08em;
color: #1E2226;
text-align: left;
}
.info-upload-wrapper ::v-deep .el-upload-list.el-upload-list--picture-card {
display: none; display: none;
} }
@ -393,11 +457,12 @@ export default {
border: 1px solid transparent; border: 1px solid transparent;
} }
.uploadImg{ .uploadImg {
width: 150px; width: 150px;
margin-right: 20px; margin-right: 20px;
} }
.special-form-item ::v-deep .el-form-item__label{
.special-form-item ::v-deep .el-form-item__label {
margin-bottom: 12px; margin-bottom: 12px;
} }
@ -421,9 +486,11 @@ export default {
display: flex; display: flex;
width: 100%; width: 100%;
justify-content: flex-start; justify-content: flex-start;
.avator-wrapper{
.avator-wrapper {
position: relative; position: relative;
.info-upload-wrapper{
.info-upload-wrapper {
position: absolute; position: absolute;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;

2293
src/views/HosInformation.vue

File diff suppressed because it is too large
Loading…
Cancel
Save