lzh hace 2 meses
commit
98409c8931
Se han modificado 100 ficheros con 8479 adiciones y 0 borrados
  1. 15 0
      .editorconfig
  2. 44 0
      .env.example
  3. 5 0
      .gitattributes
  4. 12 0
      .gitignore
  5. 16 0
      .htaccess
  6. 8 0
      .idea/.gitignore
  7. 10 0
      .idea/UniappTool.xml
  8. 6 0
      .idea/misc.xml
  9. 8 0
      .idea/modules.xml
  10. 246 0
      .idea/php.xml
  11. 13 0
      .idea/phpunit.xml
  12. 248 0
      .idea/zskadmin.iml
  13. 13 0
      .styleci.yml
  14. 29 0
      app/Admin/Actions/BatchDeleteAction.php
  15. 79 0
      app/Admin/Actions/Post/ImportExcel.php
  16. 42 0
      app/Admin/Actions/Post/Update.php
  17. 10 0
      app/Admin/Controllers/AuthController.php
  18. 90 0
      app/Admin/Controllers/BzSymptomLogController.php
  19. 97 0
      app/Admin/Controllers/CategoryController.php
  20. 102 0
      app/Admin/Controllers/CdssAdvisoryController.php
  21. 82 0
      app/Admin/Controllers/CdssController.php
  22. 79 0
      app/Admin/Controllers/CdssSelectController.php
  23. 117 0
      app/Admin/Controllers/CdssXyDisease.php
  24. 117 0
      app/Admin/Controllers/CdssXyDiseaseController.php
  25. 119 0
      app/Admin/Controllers/ChatgptOrderController.php
  26. 95 0
      app/Admin/Controllers/ChatgptRechargeController.php
  27. 77 0
      app/Admin/Controllers/DiagnosisController.php
  28. 85 0
      app/Admin/Controllers/DiseaseCategoryPropertiesController.php
  29. 92 0
      app/Admin/Controllers/DiseasePropertiesController.php
  30. 82 0
      app/Admin/Controllers/DiseasesKeywordController.php
  31. 67 0
      app/Admin/Controllers/ExampleController.php
  32. 111 0
      app/Admin/Controllers/GetGuideController.php
  33. 124 0
      app/Admin/Controllers/GuideKeywordController.php
  34. 34 0
      app/Admin/Controllers/HomeController.php
  35. 106 0
      app/Admin/Controllers/IllnessController.php
  36. 79 0
      app/Admin/Controllers/JmOcrController.php
  37. 133 0
      app/Admin/Controllers/KnowledgeRuleController.php
  38. 84 0
      app/Admin/Controllers/LySymptomController.php
  39. 90 0
      app/Admin/Controllers/LySymptomLogController.php
  40. 588 0
      app/Admin/Controllers/MedicalCalculatorController.php
  41. 91 0
      app/Admin/Controllers/QuestionController.php
  42. 99 0
      app/Admin/Controllers/QuestionDetailController.php
  43. 83 0
      app/Admin/Controllers/QuestionHistoryController.php
  44. 125 0
      app/Admin/Controllers/QwCategoryController.php
  45. 140 0
      app/Admin/Controllers/QwController.php
  46. 91 0
      app/Admin/Controllers/QwDepartmentController.php
  47. 80 0
      app/Admin/Controllers/QwHistoryController.php
  48. 97 0
      app/Admin/Controllers/QwSubController.php
  49. 105 0
      app/Admin/Controllers/RegisterDepartment.php
  50. 124 0
      app/Admin/Controllers/RelationshipController.php
  51. 96 0
      app/Admin/Controllers/SymptomController.php
  52. 91 0
      app/Admin/Controllers/SystemController.php
  53. 306 0
      app/Admin/Controllers/TestController.php
  54. 209 0
      app/Admin/Controllers/TextLabelController.php
  55. 87 0
      app/Admin/Controllers/TranslateRecordController.php
  56. 82 0
      app/Admin/Controllers/UserChatgptUseRecordController.php
  57. 128 0
      app/Admin/Controllers/UserController.php
  58. 83 0
      app/Admin/Controllers/VideoController.php
  59. 96 0
      app/Admin/Controllers/XyDrugAnswersController.php
  60. 103 0
      app/Admin/Controllers/XyDrugOverdoseController.php
  61. 90 0
      app/Admin/Controllers/XyEssentialDrugsController.php
  62. 94 0
      app/Admin/Controllers/XyMedicalInsuranceDrugEnController.php
  63. 109 0
      app/Admin/Controllers/XyZskDiseaseController.php
  64. 127 0
      app/Admin/Controllers/XyZskInspectionController.php
  65. 96 0
      app/Admin/Controllers/XyZskMedicineController.php
  66. 109 0
      app/Admin/Controllers/XyZskSicknessController.php
  67. 505 0
      app/Admin/Controllers/XyzskController.php
  68. 86 0
      app/Admin/Controllers/ZhAcupointController.php
  69. 90 0
      app/Admin/Controllers/ZhChannelCollateralController.php
  70. 83 0
      app/Admin/Controllers/ZhCnMedicinalCropController.php
  71. 84 0
      app/Admin/Controllers/ZhPrescriptionController.php
  72. 95 0
      app/Admin/Controllers/ZhSickNessController.php
  73. 81 0
      app/Admin/Controllers/ZhzyxdyaController.php
  74. 78 0
      app/Admin/Controllers/ZskMenuController.php
  75. 79 0
      app/Admin/Controllers/ZskWordsController.php
  76. 20 0
      app/Admin/bootstrap.php
  77. 105 0
      app/Admin/routes.php
  78. 42 0
      app/Console/Kernel.php
  79. 51 0
      app/Exceptions/Handler.php
  80. 32 0
      app/Http/Controllers/Auth/ForgotPasswordController.php
  81. 39 0
      app/Http/Controllers/Auth/LoginController.php
  82. 72 0
      app/Http/Controllers/Auth/RegisterController.php
  83. 39 0
      app/Http/Controllers/Auth/ResetPasswordController.php
  84. 41 0
      app/Http/Controllers/Auth/VerificationController.php
  85. 13 0
      app/Http/Controllers/Controller.php
  86. 39 0
      app/Http/Controllers/Neo4jController.php
  87. 34 0
      app/Http/Controllers/TestRoleController.php
  88. 80 0
      app/Http/Kernel.php
  89. 21 0
      app/Http/Middleware/Authenticate.php
  90. 29 0
      app/Http/Middleware/Check.php
  91. 17 0
      app/Http/Middleware/CheckForMaintenanceMode.php
  92. 17 0
      app/Http/Middleware/EncryptCookies.php
  93. 26 0
      app/Http/Middleware/RedirectIfAuthenticated.php
  94. 27 0
      app/Http/Middleware/RolePermissionsCheck.php
  95. 18 0
      app/Http/Middleware/TrimStrings.php
  96. 23 0
      app/Http/Middleware/TrustProxies.php
  97. 24 0
      app/Http/Middleware/VerifyCsrfToken.php
  98. 11 0
      app/Model/BzSymptomLog.php
  99. 66 0
      app/Model/Category.php
  100. 17 0
      app/Model/Cdss.php

+ 15 - 0
.editorconfig

@@ -0,0 +1,15 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+trim_trailing_whitespace = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.yml]
+indent_size = 2

+ 44 - 0
.env.example

@@ -0,0 +1,44 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=laravel
+DB_USERNAME=root
+DB_PASSWORD=
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_DRIVER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_APP_CLUSTER=mt1
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

+ 5 - 0
.gitattributes

@@ -0,0 +1,5 @@
+* text=auto
+*.css linguist-vendored
+*.scss linguist-vendored
+*.js linguist-vendored
+CHANGELOG.md export-ignore

+ 12 - 0
.gitignore

@@ -0,0 +1,12 @@
+/node_modules
+/public/hot
+/public/storage
+/storage/*.key
+/vendor
+.env
+.env.backup
+.phpunit.result.cache
+Homestead.json
+Homestead.yaml
+npm-debug.log
+yarn-error.log

+ 16 - 0
.htaccess

@@ -0,0 +1,16 @@
+
+# BEGIN WordPress
+# �ڡ�BEGIN WordPress���롸END WordPress��֮���ָ��У���
+# ��̬���ɵģ�ֻӦ�� WordPress �������޸ġ�
+# �κζԱ��֮���ָ����޸Ķ��ᱻ���ǡ�
+<IfModule mod_rewrite.c>
+RewriteEngine On
+RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+RewriteBase /
+RewriteRule ^index\.php$ - [L]
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule . /index.php [L]
+</IfModule>
+
+# END WordPress

+ 8 - 0
.idea/.gitignore

@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml

+ 10 - 0
.idea/UniappTool.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="cn.fjdmy.uniapp.UniappProjectDataService">
+    <option name="generalBasePath" value="$PROJECT_DIR$" />
+    <option name="manifestPath" value="$PROJECT_DIR$/manifest.json" />
+    <option name="pagesPath" value="$PROJECT_DIR$/pages.json" />
+    <option name="scanNum" value="1" />
+    <option name="type" value="store" />
+  </component>
+</project>

+ 6 - 0
.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/zskadmin.iml" filepath="$PROJECT_DIR$/.idea/zskadmin.iml" />
+    </modules>
+  </component>
+</project>

+ 246 - 0
.idea/php.xml

@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="PhpIncludePathManager">
+    <include_path>
+      <path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
+      <path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
+      <path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
+      <path value="$PROJECT_DIR$/vendor/php-http/promise" />
+      <path value="$PROJECT_DIR$/vendor/php-http/httplug" />
+      <path value="$PROJECT_DIR$/vendor/clue/stream-filter" />
+      <path value="$PROJECT_DIR$/vendor/php-http/discovery" />
+      <path value="$PROJECT_DIR$/vendor/php-http/guzzle6-adapter" />
+      <path value="$PROJECT_DIR$/vendor/php-http/message" />
+      <path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
+      <path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
+      <path value="$PROJECT_DIR$/vendor/php-http/client-common" />
+      <path value="$PROJECT_DIR$/vendor/psy/psysh" />
+      <path value="$PROJECT_DIR$/vendor/filp/whoops" />
+      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-highlighter" />
+      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-color" />
+      <path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
+      <path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
+      <path value="$PROJECT_DIR$/vendor/fzaninotto/faker" />
+      <path value="$PROJECT_DIR$/vendor/opis/closure" />
+      <path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
+      <path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
+      <path value="$PROJECT_DIR$/vendor/graphaware/neo4j-bolt" />
+      <path value="$PROJECT_DIR$/vendor/graphaware/neo4j-common" />
+      <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+      <path value="$PROJECT_DIR$/vendor/graphaware/neo4j-php-client" />
+      <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
+      <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
+      <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
+      <path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
+      <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
+      <path value="$PROJECT_DIR$/vendor/myclabs/php-enum" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
+      <path value="$PROJECT_DIR$/vendor/laravel/tinker" />
+      <path value="$PROJECT_DIR$/vendor/laravel/framework" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/version" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
+      <path value="$PROJECT_DIR$/vendor/symfony/finder" />
+      <path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
+      <path value="$PROJECT_DIR$/vendor/symfony/routing" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
+      <path value="$PROJECT_DIR$/vendor/symfony/mime" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
+      <path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
+      <path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
+      <path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
+      <path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
+      <path value="$PROJECT_DIR$/vendor/symfony/console" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
+      <path value="$PROJECT_DIR$/vendor/symfony/dom-crawler" />
+      <path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
+      <path value="$PROJECT_DIR$/vendor/symfony/debug" />
+      <path value="$PROJECT_DIR$/vendor/symfony/translation" />
+      <path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
+      <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/process" />
+      <path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
+      <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
+      <path value="$PROJECT_DIR$/vendor/erusev/parsedown" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/deprecations" />
+      <path value="$PROJECT_DIR$/vendor/jxlwqq/simditor" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+      <path value="$PROJECT_DIR$/vendor/encore/laravel-admin" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
+      <path value="$PROJECT_DIR$/vendor/dnoegel/php-xdg-base-dir" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/cache" />
+      <path value="$PROJECT_DIR$/vendor/mockery/mockery" />
+      <path value="$PROJECT_DIR$/vendor/composer" />
+      <path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
+      <path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
+      <path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
+      <path value="$PROJECT_DIR$/vendor/laravel-admin-ext/grid-lightbox" />
+      <path value="$PROJECT_DIR$/vendor/laravel-admin-ext/wang-editor" />
+      <path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
+      <path value="$PROJECT_DIR$/vendor/league/flysystem" />
+      <path value="$PROJECT_DIR$/vendor/webmozart/assert" />
+      <path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
+      <path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
+      <path value="$PROJECT_DIR$/vendor/psr/log" />
+      <path value="$PROJECT_DIR$/vendor/psr/container" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
+      <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-message" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/diff" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/environment" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
+      <path value="$PROJECT_DIR$/vendor/beyondcode/laravel-dump-server" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/version" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/dragonmantank/cron-expression" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpdocumentor/reflection-docblock" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/swiftmailer/swiftmailer" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/composer" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/tijsverkoyen/css-to-inline-styles" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel-admin-ext/grid-lightbox" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel-admin-ext/wang-editor" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpdocumentor/type-resolver" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpdocumentor/reflection-common" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-parallel-lint/php-console-highlighter" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-parallel-lint/php-console-color" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/simple-cache" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/container" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psy/psysh" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/http-message" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/log" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/opis/closure" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/nikic/php-parser" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/clue/stream-filter" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/filp/whoops" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/jxlwqq/simditor" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/league/mime-type-detection" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/encore/laravel-admin" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/erusev/parsedown" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/ramsey/uuid" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/vlucas/phpdotenv" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/league/flysystem" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/nesbot/carbon" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel/tinker" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel/framework" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/dnoegel/php-xdg-base-dir" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/egulias/email-validator" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/myclabs/deep-copy" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/myclabs/php-enum" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/mockery/mockery" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/monolog/monolog" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpspec/prophecy" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-code-coverage" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phar-io/version" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phar-io/manifest" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/phpunit" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-timer" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-file-iterator" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-text-template" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-token-stream" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/deprecation-contracts" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-mbstring" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/http-client-contracts" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/css-selector" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/finder" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/routing" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/mime" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-ctype" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-intl-normalizer" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-php80" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/event-dispatcher-contracts" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-php73" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-php72" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/error-handler" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-iconv" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/options-resolver" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-intl-idn" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/console" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/http-foundation" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/http-kernel" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/event-dispatcher" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/var-dumper" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/service-contracts" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/debug" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/dom-crawler" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/translation-contracts" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/theseer/tokenizer" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/translation" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/process" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/codingyu/laravel-ueditor" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/codingyu/ueditor" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/lexer" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/instantiator" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/deprecations" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/event-manager" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/dbal" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/inflector" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/cache" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/hamcrest/hamcrest-php" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/promise" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/message" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/httplug" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/message-factory" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/client-common" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/discovery" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/guzzle6-adapter" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/fideloper/proxy" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/paragonie/random_compat" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpoption/phpoption" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/ralouphie/getallheaders" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/recursion-context" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/resource-operations" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/comparator" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/diff" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/code-unit-reverse-lookup" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/environment" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/object-reflector" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/object-enumerator" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/global-state" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/webmozart/assert" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/exporter" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/version" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/beyondcode/laravel-dump-server" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/fzaninotto/faker" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/graphaware/neo4j-bolt" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/graphaware/neo4j-php-client" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/graphaware/neo4j-common" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/guzzlehttp/guzzle" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/nunomaduro/collision" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/guzzlehttp/promises" />
+      <path value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/guzzlehttp/psr7" />
+    </include_path>
+  </component>
+  <component name="PhpProjectSharedConfiguration" php_language_level="8.0">
+    <option name="suggestChangeDefaultLanguageLevel" value="false" />
+  </component>
+  <component name="PhpUnit">
+    <phpunit_settings>
+      <PhpUnitSettings configuration_file_path="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/phpunit.xml" custom_loader_path="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/autoload.php" use_configuration_file="true" />
+      <PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
+    </phpunit_settings>
+  </component>
+</project>

+ 13 - 0
.idea/phpunit.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="PHPUnit">
+    <option name="directories">
+      <list>
+        <option value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/tests/Unit" />
+        <option value="$PROJECT_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/tests/Feature" />
+        <option value="$PROJECT_DIR$/tests/Unit" />
+        <option value="$PROJECT_DIR$/tests/Feature" />
+      </list>
+    </option>
+  </component>
+</project>

+ 248 - 0
.idea/zskadmin.iml

@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
+      <sourceFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/app" isTestSource="false" packagePrefix="App\" />
+      <sourceFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/tests" isTestSource="true" packagePrefix="Tests\" />
+      <sourceFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/tests/Feature" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/tests/Unit" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
+      <sourceFolder url="file://$MODULE_DIR$/tests/Feature" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/tests/Unit" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/beyondcode/laravel-dump-server" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/clue/stream-filter" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/codingyu/laravel-ueditor" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/codingyu/ueditor" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/composer" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/dnoegel/php-xdg-base-dir" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/cache" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/dbal" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/deprecations" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/event-manager" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/inflector" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/instantiator" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/doctrine/lexer" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/dragonmantank/cron-expression" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/egulias/email-validator" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/encore/laravel-admin" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/erusev/parsedown" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/fideloper/proxy" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/filp/whoops" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/fzaninotto/faker" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/graphaware/neo4j-bolt" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/graphaware/neo4j-common" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/graphaware/neo4j-php-client" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/guzzlehttp/guzzle" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/guzzlehttp/promises" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/guzzlehttp/psr7" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/hamcrest/hamcrest-php" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/jxlwqq/simditor" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel-admin-ext/grid-lightbox" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel-admin-ext/wang-editor" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel/framework" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/laravel/tinker" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/league/flysystem" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/league/mime-type-detection" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/mockery/mockery" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/monolog/monolog" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/myclabs/deep-copy" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/myclabs/php-enum" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/nesbot/carbon" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/nikic/php-parser" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/nunomaduro/collision" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/opis/closure" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/paragonie/random_compat" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phar-io/manifest" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phar-io/version" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/client-common" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/discovery" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/guzzle6-adapter" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/httplug" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/message" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/message-factory" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-http/promise" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-parallel-lint/php-console-color" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/php-parallel-lint/php-console-highlighter" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpdocumentor/reflection-common" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpdocumentor/reflection-docblock" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpdocumentor/type-resolver" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpoption/phpoption" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpspec/prophecy" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-code-coverage" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-file-iterator" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-text-template" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-timer" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/php-token-stream" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/phpunit/phpunit" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/container" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/http-message" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/log" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psr/simple-cache" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/psy/psysh" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/ralouphie/getallheaders" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/ramsey/uuid" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/code-unit-reverse-lookup" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/comparator" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/diff" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/environment" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/exporter" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/global-state" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/object-enumerator" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/object-reflector" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/recursion-context" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/resource-operations" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/sebastian/version" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/swiftmailer/swiftmailer" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/console" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/css-selector" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/debug" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/deprecation-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/dom-crawler" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/error-handler" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/event-dispatcher" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/event-dispatcher-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/finder" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/http-client-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/http-foundation" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/http-kernel" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/mime" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/options-resolver" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-ctype" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-iconv" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-intl-idn" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-intl-normalizer" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-mbstring" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-php72" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-php73" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/polyfill-php80" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/process" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/routing" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/service-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/translation" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/translation-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/symfony/var-dumper" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/theseer/tokenizer" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/tijsverkoyen/css-to-inline-styles" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/vlucas/phpdotenv" />
+      <excludeFolder url="file://$MODULE_DIR$/jsyzskadmin/jsyzsk/jsyzskadmin/vendor/webmozart/assert" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/beyondcode/laravel-dump-server" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/clue/stream-filter" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/dnoegel/php-xdg-base-dir" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/deprecations" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/event-manager" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/dragonmantank/cron-expression" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/egulias/email-validator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/encore/laravel-admin" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/erusev/parsedown" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/fideloper/proxy" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/filp/whoops" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/fzaninotto/faker" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/graphaware/neo4j-bolt" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/graphaware/neo4j-common" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/graphaware/neo4j-php-client" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/hamcrest/hamcrest-php" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/jxlwqq/simditor" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/laravel-admin-ext/grid-lightbox" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/laravel-admin-ext/wang-editor" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/framework" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/tinker" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/league/flysystem" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/league/mime-type-detection" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/mockery/mockery" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/php-enum" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nesbot/carbon" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nunomaduro/collision" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/opis/closure" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/client-common" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/discovery" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/guzzle6-adapter" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/httplug" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/message" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/message-factory" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-http/promise" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-parallel-lint/php-console-color" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/php-parallel-lint/php-console-highlighter" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpoption/phpoption" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/psr/simple-cache" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/psy/psysh" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/ralouphie/getallheaders" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/uuid" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/swiftmailer/swiftmailer" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/css-selector" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/debug" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/deprecation-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dom-crawler" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/error-handler" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/mime" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-iconv" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-idn" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-normalizer" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php73" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php80" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/service-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-dumper" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/vlucas/phpdotenv" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 13 - 0
.styleci.yml

@@ -0,0 +1,13 @@
+php:
+  preset: laravel
+  disabled:
+    - unused_use
+  finder:
+    not-name:
+      - index.php
+      - server.php
+js:
+  finder:
+    not-name:
+      - webpack.mix.js
+css: true

+ 29 - 0
app/Admin/Actions/BatchDeleteAction.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace App\Admin\Actions;
+
+use Encore\Admin\Actions\BatchAction;
+use Illuminate\Database\Eloquent\Collection;
+use App\Admin\Controllers\MedicalCalculatorController;
+use Illuminate\Http\Request;
+
+class BatchDeleteAction extends BatchAction
+{
+    public $name = '批量删除';
+
+    public function handle(Collection $collection, Request $request)
+    {
+        $ids = $collection->pluck('id')->toArray();
+        $controller = new MedicalCalculatorController();
+        $result = $controller->destroy($ids); // 传递所有 ID
+
+        $response = json_decode($result->getContent(), true);
+        
+        return $this->response()->success($response['message'])->refresh();
+    }
+
+    public function dialog()
+    {
+        $this->confirm('确定要删除选中的记录吗?');
+    }
+}

+ 79 - 0
app/Admin/Actions/Post/ImportExcel.php

@@ -0,0 +1,79 @@
+<?php
+
+namespace App\Admin\Actions\Post;
+
+use App\Model\TextLabel;
+use Encore\Admin\Actions\Action;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Storage;
+use PHPExcel_IOFactory;
+class ImportExcel extends Action
+{
+    protected $selector = '.import-excel';
+
+    public function handle(Request $request)
+    {
+        $oFile = $request->file('file');
+        Storage::disk('local')->put('text.xlsx',file_get_contents($oFile));
+        $url = storage_path().'/app/text.xlsx';
+        $excel = PHPExcel_IOFactory::load($url);
+        $sheet = $excel->getSheet(0);
+        $row_num = $sheet->getHighestRow();
+        $data = [];
+        for ($row = 2;$row <= $row_num;$row++){
+            $text = $excel->getActiveSheet()->getCell("A".$row)->getValue();
+            $length = mb_strlen($text);
+            if ($length <= 510){
+                $data[]['text'] = $text;
+            }elseif ($length > 510 && $length <= 1020){
+                $textArray = preg_split('/。/',$text);
+                $count = count($textArray);
+                $pos = ceil($count / 2);
+                $text1 = '';
+                $text2 = '';
+                foreach ($textArray as $key => $item){
+                    if ($key <= $pos){
+                        $text1 .= $item.'。';
+                    }else{
+                        $text2 .= $item.'。';
+                    }
+                }
+                $data[]['text'] = $text1;
+                $data[]['text'] = $text2;
+            }elseif ($length > 1020){
+                $textArray = preg_split('/。/',$text);
+                $count = count($textArray);
+                $pos = ceil($count / 3);
+                $text1 = '';
+                $text2 = '';
+                $text3 = '';
+                foreach ($textArray as $key => $item){
+                    if ($key <= $pos){
+                        $text1 .= $item;
+                    }elseif($key <= $pos*2){
+                        $text2 .= $item.'。';
+                    }else{
+                        $text3 .= $item.'。';
+                    }
+                }
+                $data[]['text'] = $text1;
+                $data[]['text'] = $text2;
+                $data[]['text'] = $text3;
+            }
+        }
+        TextLabel::query()->insert($data);
+        return $this->response()->success('Success message...')->refresh();
+    }
+
+    public function form()
+    {
+        $this->file('file', '请选择文件');
+    }
+
+    public function html()
+    {
+        return <<<HTML
+        <a class="btn btn-sm btn-default import-excel">导入EXCEL</a>
+HTML;
+    }
+}

+ 42 - 0
app/Admin/Actions/Post/Update.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace App\Admin\Actions\Post;
+
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+use App\Model\Test;
+use Illuminate\Http\Request;
+
+class Update extends RowAction
+{
+    public $name = '修改';
+
+    public function handle()
+    {
+
+        return $this->response()->success('Success message.')->refresh();
+    }
+//
+//    public function form()
+//    {
+//        $this->text('content' , 't')->rules('required');
+//    }
+
+
+
+
+//    public function handle(Model $model , Request $request)
+//    {
+//        try {
+//            // 使用request 来获取form 提交的数据
+//            $content = $request->get('content');
+//            //UserChat::replyUser($model->id , $content);
+//
+//
+//            return $this->response()->success('回复成功')->refresh();
+//        } catch (\Exception $e) {
+//            return $this->response()->error('系统出错:' . $e->getMessage());
+//        }
+//    }
+
+}

+ 10 - 0
app/Admin/Controllers/AuthController.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use Encore\Admin\Controllers\AuthController as BaseAuthController;
+
+class AuthController extends BaseAuthController
+{
+
+}

+ 90 - 0
app/Admin/Controllers/BzSymptomLogController.php

@@ -0,0 +1,90 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\BzSymptomLog;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class BzSymptomLogController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('滨医导诊日志');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+//    public function create()
+//    {
+//        return Admin::content(function (Content $content) {
+//            $content->header('导诊症状');
+//            $content->description('新增');
+//            $content->body($this->form());
+//        });
+//    }
+
+//    public function edit($id)
+//    {
+//        return Admin::content(function (Content $content) use ($id) {
+//            $content->header('导诊症状');
+//            $content->description('列表');
+//            $content->body($this->form($id)->edit($id));
+//        });
+//    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(BzSymptomLog::class, function (Form $form) {
+            $form->display('id'          , '序号');
+            $form->text('name'           , '症状名称')->required();
+            $form->text('department'     , '症状科室')->required();
+            $form->text('text'           , '输入内容')->required();
+            $form->text('gender'         , '性别')->required();
+            $form->text('age'            , '年龄段')->required();
+            $form->text('evaluate'       , '评价')->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(BzSymptomLog::class, function (Grid $grid) {
+            $grid->model()->orderBy('id','desc');
+            $grid->id('编号');
+            $grid->name('症状名称');
+            $grid->department('科室');
+            $grid->text('输入文案');
+            $grid->created_at('时间');
+            $grid->gender('性别');
+            $grid->age('年龄段');
+            $grid->evaluate('评价')->display(function ($evaluate){
+                if(0 == $evaluate) {
+                    return "<span>满意</span>";
+                } else {
+                    return "<span>不满意</span>";
+                }
+            });
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                $actions->disableEdit();
+                //$actions->disableEdit();
+            });
+            $grid->filter(function($filter){
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+                // 在这里添加字段过滤器
+                $filter->equal('evaluate'    , '评级类型')->select([0 => '满意',1 => '不满意']);
+            });
+        });
+    }
+}
+

+ 97 - 0
app/Admin/Controllers/CategoryController.php

@@ -0,0 +1,97 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Category;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+
+
+class CategoryController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+//        return Admin::content(function (Content $content) {
+//            $content->header('类目');
+//            $content->description('列表');
+//            $content->body($this->grid());
+//        });
+
+        return Admin::content(function (Content $content) {
+            $content->header('脑图列表');
+            $content->body(Category::tree(function ($tree) {
+                $tree->branch(function ($branch) {
+                    return "{$branch['id']} - {$branch['category_name']}";
+                });
+            }));
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('脑图');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('脑图');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+
+    protected function form($id = '')
+    {
+        return Admin::form(Category::class, function (Form $form) {
+            $form->display('id' , '编号');
+            $form->text('category_name' , '分类名称');
+            $form->select('parent_id'   ,  '选择分类')->options(Category::getCategory());
+            $form->select('type'        ,  '选择类型')->options([1 => '脑图中文' , 2 => '脑图英文']);
+            $form->saving(function (Form $form) {
+                if(is_null($form->parent_id)) {
+                    $form->parent_id = 0;
+                }
+            });
+        });
+    }
+
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Category::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->category_name('类目名称');
+            $grid->parent_id('父级名称')->display(function ($parent_id) {
+                return $parent_id ? Category::getCategoryName($parent_id): '---';
+            });
+            $grid->paginate(20);
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+                $actions->disableDelete();
+            });
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+            });
+        });
+    }
+}

+ 102 - 0
app/Admin/Controllers/CdssAdvisoryController.php

@@ -0,0 +1,102 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\CdssAdvisory;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class CdssAdvisoryController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('Cdss问诊多项下拉选项');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('Cdss问诊多项下拉选项');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('Cdss问诊多项下拉选项');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(CdssAdvisory::class, function (Form $form) {
+            $form->display('id'                     , '序号');
+            $form->select('category'                , '分类')->options((new CdssAdvisory())->getOptions())->required();
+            $form->text('inspect_name'              , '检查名称')->required();
+            $form->number('order'                   , '检查名称排序');
+            $form->text('multiple_choice_name'      , '默认名称');
+            $form->text('first_column_select'       , '第一列选项')->required();
+            $form->text('second_column_select'      , '第二列选项');
+            $form->text('thirdly_column_select'     , '第三列选项');
+            $form->text('fourthly_column_select'    , '第四列选项');
+            $form->text('fifth_column_select'       , '第五列选项');
+
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(CdssAdvisory::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            $grid->category('分类');
+            $grid->inspect_name('检查名称');
+            $grid->order('检查名称排序');
+            $grid->multiple_choice_name('默认名称')->display(function ($multiple_choice_name) {
+                return $multiple_choice_name ? $multiple_choice_name : '------';
+            });
+            $grid->first_column_select('第一列选项');
+            $grid->second_column_select('第二列选项')->display(function ($second_column_select) {
+                return $second_column_select ? $second_column_select : '------';
+            });
+            $grid->thirdly_column_select('第三列选项')->display(function ($thirdly_column_select) {
+                return $thirdly_column_select ? $thirdly_column_select : '------';
+            });
+            $grid->fourthly_column_select('第四列选项')->display(function ($fourthly_column_select) {
+                return $fourthly_column_select ? $fourthly_column_select : '------';
+            });
+            $grid->fifth_column_select('第五列选项')->display(function ($fifth_column_select) {
+                return $fifth_column_select ? $fifth_column_select : '------';
+            });
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->equal('category')->select((new CdssAdvisory())->getOptions());
+            });
+        });
+    }
+}

+ 82 - 0
app/Admin/Controllers/CdssController.php

@@ -0,0 +1,82 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Cdss;
+use App\Model\CdssSelect;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class CdssController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('Cdss选项');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('Cdss选项');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('Cdss');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(Cdss::class, function (Form $form) {
+            $form->display('id'      , '序号');
+            $form->select('category', '分类')->options((new CdssSelect())->getOptions())->required();
+            $form->text('options' , '复选框选项');
+
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(Cdss::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->category('分类');
+            $grid->options('复选框选项')->display(function ($options) {
+                return $options ? $options : '------';
+            });
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+            });
+
+        });
+    }
+}

+ 79 - 0
app/Admin/Controllers/CdssSelectController.php

@@ -0,0 +1,79 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\CdssSelect;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class CdssSelectController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('Cdss下拉选项');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('Cdss下拉选项');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('Cdss下拉选项');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(CdssSelect::class, function (Form $form) {
+            $form->display('id'         , '序号');
+            $form->select('category'    , '分类')->options((new CdssSelect())->getOptions())->required();
+            $form->text('select_name'   , '选项名称')->required();
+            $form->text('select_values' , '选项值')->required();
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(CdssSelect::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            $grid->category('分类');
+            $grid->select_name('选项名称');
+            $grid->select_values('选项值');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+            });
+
+        });
+    }
+}

+ 117 - 0
app/Admin/Controllers/CdssXyDisease.php

@@ -0,0 +1,117 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\CdssXyDisease as CdssXyDiseases;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class CdssXyDisease extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医疾病');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医疾病');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('西医疾病');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(CdssXyDiseases::class, function (Form $form) {
+            //$form->display('id'         , '序号');
+            $form->text('department_1'      , '一级科室');
+            $form->text('department_2'      , '二级科室');
+            $form->text('name'              , '疾病名称');
+            $form->text('nameEn'            , '英文名称');
+            $form->text('alias'             , '别名');
+            $form->text('sickOverview'      , '概述');
+            $form->text('clinicalFeature'   , '临床表现');
+            $form->text('diagnosis'         , '诊断');
+            $form->text('treatment'         , '治疗');
+            $form->text('regularMedication' , '相关药品');
+            $form->text('pathogenesis'      , '发病机制');
+            $form->text('inspection'        , '相关检查');
+            $form->text('relevantOperation' , '相关操作');
+            $form->text('laboratoryInspection' , '实验室检查');
+            $form->text('icd'                  , 'icd');
+            $form->text('etiology'             , '病因');
+            $form->text('auxiliaryExamination' , '其他辅助检查');
+            $form->text('antidiastole'         , '鉴别诊断');
+            $form->text('prognosis'            , '预后');
+            $form->text('complicationsOverview', '并发症');
+            $form->text('epidemiology'         , '流行病学');
+            $form->text('precaution'           , '预防');
+            $form->text('symptom'              , '症状');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(CdssXyDiseases::class, function (Grid $grid) {
+            //$grid->id('序号')->sortable();
+            $grid->department_1('一级科室');
+            $grid->department_2('二级科室');
+            $grid->name('疾病名称');
+            $grid->nameEn('英文名称');
+            $grid->alias('别名');
+            $grid->sickOverview('概述');
+            $grid->clinicalFeature('临床表现');
+            $grid->diagnosis('诊断');
+            $grid->treatment('治疗');
+            $grid->regularMedication('相关药品');
+            $grid->pathogenesis('发病机制');
+            $grid->inspection('相关检查');
+            $grid->relevantOperation('相关操作');
+            $grid->laboratoryInspection('实验室检查');
+            $grid->icd('icd');
+            $grid->etiology('病因');
+            $grid->auxiliaryExamination('其他辅助检查');
+            $grid->antidiastole('鉴别诊断');
+            $grid->prognosis('预后');
+            $grid->complicationsOverview('并发症');
+            $grid->epidemiology('流行病学');
+            $grid->precaution('预防');
+            $grid->symptom('症状');
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name'    , '输入疾病名称');
+            });
+
+        });
+    }
+}

+ 117 - 0
app/Admin/Controllers/CdssXyDiseaseController.php

@@ -0,0 +1,117 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\CdssXyDisease as CdssXyDiseases;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class CdssXyDiseaseController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医疾病');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医疾病');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('西医疾病');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(CdssXyDiseases::class, function (Form $form) {
+            //$form->display('id'         , '序号');
+            $form->text('department_1'      , '一级科室');
+            $form->text('department_2'      , '二级科室');
+            $form->text('name'              , '疾病名称');
+            $form->text('nameEn'            , '英文名称');
+            $form->text('alias'             , '别名');
+            $form->text('sickOverview'      , '概述');
+            $form->text('clinicalFeature'   , '临床表现');
+            $form->text('diagnosis'         , '诊断');
+            $form->text('treatment'         , '治疗');
+            $form->text('regularMedication' , '相关药品');
+            $form->text('pathogenesis'      , '发病机制');
+            $form->text('inspection'        , '相关检查');
+            $form->text('relevantOperation' , '相关操作');
+            $form->text('laboratoryInspection' , '实验室检查');
+            $form->text('icd'                  , 'icd');
+            $form->text('etiology'             , '病因');
+            $form->text('auxiliaryExamination' , '其他辅助检查');
+            $form->text('antidiastole'         , '鉴别诊断');
+            $form->text('prognosis'            , '预后');
+            $form->text('complicationsOverview', '并发症');
+            $form->text('epidemiology'         , '流行病学');
+            $form->text('precaution'           , '预防');
+            $form->text('symptom'              , '症状');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(CdssXyDiseases::class, function (Grid $grid) {
+            //$grid->id('序号')->sortable();
+            $grid->department_1('一级科室');
+            $grid->department_2('二级科室');
+            $grid->name('疾病名称');
+            $grid->nameEn('英文名称');
+            $grid->alias('别名');
+            $grid->sickOverview('概述');
+            $grid->clinicalFeature('临床表现');
+            $grid->diagnosis('诊断');
+            $grid->treatment('治疗');
+            $grid->regularMedication('相关药品');
+            $grid->pathogenesis('发病机制');
+            $grid->inspection('相关检查');
+            $grid->relevantOperation('相关操作');
+            $grid->laboratoryInspection('实验室检查');
+            $grid->icd('icd');
+            $grid->etiology('病因');
+            $grid->auxiliaryExamination('其他辅助检查');
+            $grid->antidiastole('鉴别诊断');
+            $grid->prognosis('预后');
+            $grid->complicationsOverview('并发症');
+            $grid->epidemiology('流行病学');
+            $grid->precaution('预防');
+            $grid->symptom('症状');
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name'    , '输入疾病名称');
+            });
+
+        });
+    }
+}

+ 119 - 0
app/Admin/Controllers/ChatgptOrderController.php

@@ -0,0 +1,119 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ChatgptOrder;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ChatgptOrderController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('充值订单');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('充值订单');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('充值订单');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(ChatgptOrder::class, function (Form $form) use ($id) {
+            $form->display( 'id'                  , 'Uid');
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(ChatgptOrder::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+            $grid->uid('用户ID');
+            $grid->mobile('手机号');
+            $grid->recharge_id('充值ID');
+            $grid->recharge_type('充值类型')->display(function ($recharge_type){
+                if(1 == $recharge_type) {
+                    return "chatgpt充值";
+                }
+                if(2 == $recharge_type) {
+                    return "其他";
+                }
+            });
+            $grid->order_no('订单号');
+            $grid->order_status('支付状态')->display(function ($order_status){
+                if(1 == $order_status) {
+                    return "待支付";
+                }
+
+                if(2 == $order_status) {
+                    return "已支付";
+                }
+                return '---';
+            });
+            $grid->pay_type('支付类型')->display(function ($pay_type){
+                if(1 == $pay_type) {
+                    return "微信支付";
+                }
+
+                if(2 == $pay_type) {
+                    return "支付宝支付";
+                }
+
+                if(3 == $pay_type) {
+                    return "其他";
+                }
+                return '---';
+            });
+            $grid->pay_price('支付价格');
+            $grid->pay_time('支付时间')->display(function ($pay_time) {
+                return 0 == $pay_time ? '---' : date('Y-m-d H:i:s' , $pay_time);
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return 0 == $create_time ? '---' : date('Y-m-d H:i:s' , $create_time);
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->equal('order_no'    , '订单号');
+                //$filter->like('company_name' , '输入公司关键字');
+                $filter->equal('order_status'      , '支付状态')->select([1 => '待支付' , 2 => '已支付']);
+            });
+
+
+        });
+    }
+}

+ 95 - 0
app/Admin/Controllers/ChatgptRechargeController.php

@@ -0,0 +1,95 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ChatgptRecharge;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ChatgptRechargeController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('充值类型');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('充值类型');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('充值类型');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(ChatgptRecharge::class, function (Form $form) use ($id) {
+            $form->display( 'id'     , 'id');
+            $form->text( 'name'      , '名称');
+            $form->number( 'money'   , '充值金额');
+            $form->number( 'num'     , '次数');
+            $form->select( 'status'  , '状态')->options([1 => '显示' , 2 => '下架']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(ChatgptRecharge::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+            $grid->name('充值类型名称');
+            $grid->money('金额');
+            $grid->num('次数');
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+            $grid->updatetime('更新时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 77 - 0
app/Admin/Controllers/DiagnosisController.php

@@ -0,0 +1,77 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Diagnosis;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class DiagnosisController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('诊断信息');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('诊断信息');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('诊断信息');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(Diagnosis::class, function (Form $form) {
+            $form->display('id'         , '序号');
+            $form->text('name'   , '表单名称')->required();
+            $form->text('tag' , '英文标识')->required();
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(Diagnosis::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            $grid->name('表单名称');
+            $grid->tag('英文标识');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+            });
+
+        });
+    }
+}

+ 85 - 0
app/Admin/Controllers/DiseaseCategoryPropertiesController.php

@@ -0,0 +1,85 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\DiseaseCategoryProperties;
+use App\Model\DiseaseProperties;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class DiseaseCategoryPropertiesController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病属性分类');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病属性分类');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('疾病属性分类');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(DiseaseCategoryProperties::class, function (Form $form) {
+            $form->display('id'      , '序号');
+            $form->text(   'name'    , '属性分类名称')->required();
+            $form->select( 'tag'     , '分类')->options([1 => '西医' , 2 => '中医'])->required();
+            $form->select( 'label'   , '所属标签')->options(DiseaseProperties::getLables())->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(DiseaseCategoryProperties::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->name('属性分类名称');
+            $grid->label('所属标签')->display(function($label) {
+                return DiseaseProperties::getLables($label) ?? '---';
+            });
+            $grid->tag('分类')->display(function($tag){
+                return 1 == $tag ? '西医' : '中医';
+            });
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->equal('tag' , '选择分类')->select([1 => '西医' , 2 => '中医']);
+            });
+
+        });
+    }
+}

+ 92 - 0
app/Admin/Controllers/DiseasePropertiesController.php

@@ -0,0 +1,92 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\DiseaseProperties;
+use App\Model\DiseaseCategoryProperties;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class DiseasePropertiesController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病属性');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病属性');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('疾病属性');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(DiseaseProperties::class , function (Form $form) {
+            $form->display('id'                  , '序号');
+            $form->text(   'property_zh_name'    , '属性中文名称')->required();
+            $form->text(   'property_ch_name'    , '属性英文名称')->required();
+            $form->select( 'tag'                 , '中西医分类')->options([1 => '西医' , 2 => '中医'])->required();
+            $form->select( 'label'               , '所属标签')->options(DiseaseProperties::getLables())->required();
+            $form->select( 'category_id'         , '属性分类名称')->options((new DiseaseCategoryProperties)->getPropertiesCategory())->required();
+            $form->text(   'order'               , '属性排序值');
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(DiseaseProperties::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->property_ch_name('属性英文名称');
+            $grid->property_zh_name('属性中文名称');
+            $grid->diseaseCategoryProperties()->name('属性分类');
+            $grid->label('所属标签')->display(function($label) {
+                return DiseaseProperties::getLables($label) ?? '---';
+            });
+            $grid->tag('分类')->display(function($tag) {
+                return 1 == $tag ? '西医' : '中医';
+            });
+            $grid->order('排序值');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->equal('tag'   , '选择分类')->select([1 => '西医' , 2 => '中医']);
+                $filter->equal('label' , '选择标签分类')->select(DiseaseProperties::getLables());
+            });
+
+        });
+    }
+}

+ 82 - 0
app/Admin/Controllers/DiseasesKeywordController.php

@@ -0,0 +1,82 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\DiseaseKeyword;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class DiseasesKeywordController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病关键字');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病关键字');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('疾病关键字');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(DiseaseKeyword::class, function (Form $form) {
+            $form->display('id'         , '序号');
+            $form->text('keyword'       , '关键字')->required();
+            $form->select('tag'         , '分类')->options([1 => '幼儿' , 2 => '老年人' , 3 => '男' , 4 => '女'])->required();
+            $form->text('remark'        , '备注')->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(DiseaseKeyword::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->keyword('关键字');
+            $grid->remark('备注');
+            $grid->tag('分类');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('tag' , '选择分类')->select([1 => '幼儿' , 2 => '老年人']);
+            });
+
+
+        });
+    }
+}

+ 67 - 0
app/Admin/Controllers/ExampleController.php

@@ -0,0 +1,67 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class ExampleController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = 'Example controller';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new ExampleModel);
+
+        $grid->column('id', __('ID'))->sortable();
+        $grid->column('created_at', __('Created at'));
+        $grid->column('updated_at', __('Updated at'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed   $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(ExampleModel::findOrFail($id));
+
+        $show->field('id', __('ID'));
+        $show->field('created_at', __('Created at'));
+        $show->field('updated_at', __('Updated at'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new ExampleModel);
+
+        $form->display('id', __('ID'));
+        $form->display('created_at', __('Created At'));
+        $form->display('updated_at', __('Updated At'));
+
+        return $form;
+    }
+}

+ 111 - 0
app/Admin/Controllers/GetGuideController.php

@@ -0,0 +1,111 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\GetGuide;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class GetGuideController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('指南数据');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('指南数据');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('指南数据');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(GetGuide::class, function (Form $form) {
+            $form->display('id'                  , '序号');
+            $form->text('keyword_cn'             , '关键字中文')->required();
+            $form->text('keyword'                , '关键字英文');
+            $form->text('title'                  , '标题');
+            $form->textarea('title_trans'        , '标题翻译');
+            $form->textarea('abstract'           , '摘要');
+            $form->textarea('abstract_trans'     , '摘要翻译');
+            $form->text('author'                 , '作者');
+            $form->text('url'                     , 'url');
+            $form->text('full_text_url'           , '原文地址');
+            $form->text('publish_time'           , '发布时间');
+            $form->textarea('kws'                , '关键词');
+            $form->textarea('kws_trans'          , '关键词翻译');
+            $form->textarea('references'         , '引用文献');
+            $form->textarea('references_trans'   , '引用文献翻译');
+            $form->date('add_time'               , '入库日期');
+            $form->file('pdf'                    , 'pdf');
+        });
+    }
+
+
+    // Grid
+    protected function grid()
+    {
+
+        return Admin::grid(GetGuide::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->title('英文标题');
+            $grid->title_trans('中文标题');
+            $grid->abstract('英文摘要');
+            $grid->abstract_trans('中文摘要');
+            $grid->author('作者');
+            $grid->full_text_url('原文地址');
+            $grid->publish_time('发布时间');
+            $grid->kws('关键词');
+            $grid->kws_trans('关键词翻译');
+            //$grid->references('引用文献');
+            //$grid->references_trans('引用文献翻译');
+            $grid->add_time('入库日期');
+            $grid->column('pdf')->display(function($pdf) {
+                if(!$pdf) {
+                    return '---';
+                }
+
+                $url = 'https://zskadmin.jiankangche.cn/uploads/'.$pdf;
+                return "<a href='$url' target='_blank'>pdf链接</a>";
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->like('keyword_cn'    , '输入中文关键词');
+                $filter->like('title_trans'  , '输入中文标题');
+            });
+        });
+    }
+}

+ 124 - 0
app/Admin/Controllers/GuideKeywordController.php

@@ -0,0 +1,124 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Guide;
+use App\Model\GuideKeyword;
+use App\Model\Test;
+use Encore\Admin\Show;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Support\Facades\Request;
+
+class GuideKeywordController extends Controller
+{
+    use ModelForm;
+
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('指南关键词');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('指南关键词');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('指南关键词');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(GuideKeyword::class, function (Form $form) use ($id) {
+            $form->display('id'        , '序号');
+            $form->text('keyword'      , '关键词英文')->required();
+            $form->text('keyword_cn'   , '关键词中文')->required();
+            if($id) {
+//                $form->saved(function (Form $form) use ($id) {
+//                    $url  = "http://124.70.62.102/keyword/update";
+//                    $data = ['keyword' => $form->keyword , 'keyword_cn' => $form->keyword_cn , 'ID' => $id];
+//                    $ch   = curl_init();
+//                    $header  = array(
+//                        'Content-Type:'.'application/json; charset=UTF-8'
+//                    );
+//                    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
+//                    curl_setopt($ch, CURLOPT_URL, $url);
+//                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+//                    curl_setopt($ch, CURLOPT_POST, 1);
+//                    curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($data));
+//                    $result = curl_exec($ch);
+//                    curl_close($ch);
+//
+//                    $result = json_decode($result , true);
+//                    dd($result);
+//                });
+            } else {
+                $form->saved(function (Form $form) {
+                    $url  = "http://124.70.62.102/keyword/add";
+                    $data = ['keyword' => $form->keyword , 'keyword_cn' => $form->keyword_cn];
+                    $ch   = curl_init();
+                    $header  = array(
+                        'Content-Type:'.'application/json; charset=UTF-8'
+                    );
+                    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
+                    curl_setopt($ch, CURLOPT_URL, $url);
+                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+                    curl_setopt($ch, CURLOPT_POST, 1);
+                    curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($data));
+                    $result = curl_exec($ch);
+                    curl_close($ch);
+
+                    //$result = json_decode($result , true);
+                    //dd($result);
+                });
+            }
+        });
+    }
+
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(GuideKeyword::class, function (Grid $grid) {
+            $grid->id('Id')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->keyword('关键词英文')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->keyword_cn('关键词中文')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->paginate(20);
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                // $actions->disableView();
+                // $actions->disableEdit();
+                $actions->disableDelete();
+                //$actions->add(new Update());
+                //dd($actions->row);
+            });
+            //$grid->disableCreateButton();
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('keyword_cn' , '输入关键词名称');
+            });
+        });
+    }
+}

+ 34 - 0
app/Admin/Controllers/HomeController.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use Encore\Admin\Controllers\Dashboard;
+use Encore\Admin\Layout\Column;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Layout\Row;
+
+class HomeController extends Controller
+{
+    public function index(Content $content)
+    {
+        return $content
+            ->title('知识库')
+            ->description('首页')
+            ->row(Dashboard::title())
+            ->row(function (Row $row) {
+
+//                $row->column(4, function (Column $column) {
+//                    $column->append(Dashboard::environment());
+//                });
+//
+//                $row->column(4, function (Column $column) {
+//                    $column->append(Dashboard::extensions());
+//                });
+//
+//                $row->column(4, function (Column $column) {
+//                    $column->append(Dashboard::dependencies());
+//                });
+            });
+    }
+}

+ 106 - 0
app/Admin/Controllers/IllnessController.php

@@ -0,0 +1,106 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Category;
+use App\Model\Illness;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class IllnessController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('疾病');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+
+    protected function form($id='')
+    {
+        return Admin::form(Illness::class, function (Form $form) {
+            $form->display('id' , '编号');
+            $form->text('illness_name' , '疾病名称');
+            $form->text('illness_as_name' , '疾病别名');
+            $form->text('icd_number' , 'ICD号');
+            $form->select('category' ,  '选择分类')->options(Category::getCategory());
+            $form->text('medicinal' , '相关药品');
+            $form->editor('illness_desc' , '疾病概述')->rows(10);
+            $form->text('epidemiology' , '流行病学');
+            $form->text('clinical_manifestation' , '临床表现');
+            $form->text('pathogeny' , '病因');
+            $form->text('complication' , '并发症');
+            $form->text('auxiliary' , '辅助检查');
+            $form->text('diagnose' , '诊断');
+            $form->text('cure' , '治疗');
+        });
+    }
+
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Illness::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+            $grid->illness_name('疾病名称');
+            $grid->illness_as_name('疾病别名');
+            $grid->icd_number('ICD号');
+            $grid->category('类别')->display(function ($category){
+                return Category::getCategoryName($category) ?? '--';
+            });
+            $grid->medicinal('相关药品');
+            $grid->illness_desc('疾病概述');
+            $grid->epidemiology('流行病学');
+            $grid->clinical_manifestation('临床表现');
+            $grid->pathogeny('病因');
+            $grid->complication('并发症');
+            $grid->auxiliary('辅助检查');
+            $grid->diagnose('诊断');
+            $grid->cure('治疗');
+
+            $grid->paginate(20);
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+                $actions->disableDelete();
+            });
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                //$filter->equal('phone'     ,'输入手机号查询');
+            });
+        });
+    }
+}

+ 79 - 0
app/Admin/Controllers/JmOcrController.php

@@ -0,0 +1,79 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\JmOcr;
+use App\Model\LySymptom;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class JmOcrController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('检验报告识别记录');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+//    public function create()
+//    {
+//        return Admin::content(function (Content $content) {
+//            $content->header('检验报告识别记录');
+//            $content->description('新增');
+//            $content->body($this->form());
+//        });
+//    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('检验报告识别记录');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(JmOcr::class, function (Form $form) {
+            $form->display('id'          , '序号');
+            $form->text('handled'        , '抽取数据')->required();
+            $form->text('calculation'    , '最后结果')->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(JmOcr::class, function (Grid $grid) {
+            $grid->model()->orderBy('id','desc');
+            $grid->id('编号')->sortable();
+            $grid->handled('抽取数据')->display(function ($handled){
+                return json_decode($handled,true);
+            });
+            $grid->calculation('最后结果')->display(function ($calculation){
+                return json_decode($calculation,true);
+            });
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                $actions->disableEdit();
+//                $actions->disableAdd();
+            });
+//            $grid->filter(function($filter){
+//                // 去掉默认的id过滤器
+//                $filter->disableIdFilter();
+//                // 在这里添加字段过滤器
+//                $filter->like('name'         , '输入症状关键字');
+//            });
+        });
+    }
+}

+ 133 - 0
app/Admin/Controllers/KnowledgeRuleController.php

@@ -0,0 +1,133 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\KnowledgeRule;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Controllers\ModelForm;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Layout\Content;
+
+class KnowledgeRuleController extends Controller
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '知识库规则';
+
+    use ModelForm;
+
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header($this->title);
+            $content->description('描述');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header($this->title);
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header($this->title);
+            $content->description('编辑');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Admin::grid(KnowledgeRule::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            $grid->name('规则名称');
+            $grid->gender('性别')->display(function ($gender){
+                if(1 == $gender) {
+                    return "<span>男</span>";
+                } elseif(2 == $gender) {
+                    return "<span>女</span>";
+                }else {
+                    return "<span>全部</span>";
+                }
+            });
+            $grid->rule_level('规则等级');
+            $grid->rule_tip('规则提示');
+            $grid->rule_result('规则结果');
+            $grid->suggest('建议');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name', '输入规则名称搜索');
+                $filter->equal('gender' , '性别')->select([1=>'男',2=>'女']);
+            });
+        });
+
+
+//        $grid = new Grid(new KnowledgeRule());
+//
+//        $grid->column('id', __('Id'));
+//        $grid->column('name', __('Name'));
+//        $grid->column('rule_level', __('Rule level'));
+//        $grid->column('rule_tip', __('Rule tip'));
+//        $grid->column('rule_result', __('Rule result'));
+//        $grid->column('suggest', __('Suggest'));
+//        $grid->column('created_at', __('Created at'));
+//        $grid->column('updated_at', __('Updated at'));
+//
+//        return $grid;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form($id='')
+    {
+        return Admin::form(KnowledgeRule::class, function (Form $form) {
+            $form->text('name', '规则名称');
+            $form->select('gender'       , '性别')->options([0=>'全部',1=>'男',2=>'女'])->required();
+            $form->text('rule_level', '规则等级');
+            $form->text('rule_tip', '规则提示');
+            $form->text('rule_result', '规则结果');
+            $form->text('suggest', '建议');
+        });
+//        $form = new Form(new KnowledgeRule());
+//
+//        $form->text('name', __('Name'));
+//        $form->text('rule_level', __('Rule level'));
+//        $form->text('rule_tip', __('Rule tip'));
+//        $form->text('rule_result', __('Rule result'));
+//        $form->text('suggest', __('Suggest'));
+//
+//        return $form;
+    }
+}
+

+ 84 - 0
app/Admin/Controllers/LySymptomController.php

@@ -0,0 +1,84 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\LySymptom;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class LySymptomController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('导诊症状');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('导诊症状');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('导诊症状');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(LySymptom::class, function (Form $form) {
+            $form->display('id'          , '序号');
+            $form->text('name'           , '症状名称')->required();
+            $form->text('department'     , '症状科室')->required();
+            $form->text('relevant'       , '相关词汇')->required();
+            $form->select('gender'       , '性别')->options([0=>'全部',1=>'男',2=>'女'])->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(LySymptom::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->name('症状名称');
+            $grid->department('科室');
+            $grid->relevant('相关词汇');
+            $grid->gender('性别')->display(function ($gender){
+                if(1 == $gender) {
+                    return "<span>男</span>";
+                } elseif(2 == $gender) {
+                    return "<span>女</span>";
+                }else {
+                    return "<span>全部</span>";
+                }
+            });
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+            $grid->filter(function($filter){
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+                // 在这里添加字段过滤器
+                $filter->like('name'         , '输入症状关键字');
+            });
+        });
+    }
+}

+ 90 - 0
app/Admin/Controllers/LySymptomLogController.php

@@ -0,0 +1,90 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\LySymptom;
+use App\Model\LySymptomLog;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class LySymptomLogController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('导诊日志');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+//    public function create()
+//    {
+//        return Admin::content(function (Content $content) {
+//            $content->header('导诊症状');
+//            $content->description('新增');
+//            $content->body($this->form());
+//        });
+//    }
+
+//    public function edit($id)
+//    {
+//        return Admin::content(function (Content $content) use ($id) {
+//            $content->header('导诊症状');
+//            $content->description('列表');
+//            $content->body($this->form($id)->edit($id));
+//        });
+//    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(LySymptomLog::class, function (Form $form) {
+            $form->display('id'          , '序号');
+            $form->text('name'           , '症状名称')->required();
+            $form->text('department'     , '症状科室')->required();
+            $form->text('text'           , '输入内容')->required();
+            $form->text('gender'         , '性别')->required();
+            $form->text('age'            , '年龄段')->required();
+            $form->text('evaluate'       , '评价')->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(LySymptomLog::class, function (Grid $grid) {
+            $grid->model()->orderBy('id','desc');
+            $grid->id('编号');
+            $grid->name('症状名称');
+            $grid->department('科室');
+            $grid->text('输入文案');
+            $grid->created_at('时间');
+            $grid->gender('性别');
+            $grid->age('年龄段');
+            $grid->evaluate('评价')->display(function ($evaluate){
+                if(0 == $evaluate) {
+                    return "<span>满意</span>";
+                } else {
+                    return "<span>不满意</span>";
+                }
+            });
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                $actions->disableEdit();
+                //$actions->disableEdit();
+            });
+            $grid->filter(function($filter){
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+                // 在这里添加字段过滤器
+                $filter->equal('evaluate'    , '评级类型')->select([0 => '满意',1 => '不满意']);
+            });
+        });
+    }
+}

+ 588 - 0
app/Admin/Controllers/MedicalCalculatorController.php

@@ -0,0 +1,588 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\MedicalCalculator;
+use App\Model\MedicalQuestion;
+use App\Model\MedicalOption;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Http\Request;
+use App\Admin\Actions\BatchDeleteAction;
+
+class MedicalCalculatorController extends Controller
+{
+    use ModelForm;
+
+    /**
+     * 显示医学计算器列表
+     *
+     * @OA\Get(
+     *     path="/api/medical-calculators",
+     *     summary="获取医学计算器列表",
+     *     tags={"医学计算器"},
+     *     @OA\Response(
+     *         response=200,
+     *         description="成功",
+     *         @OA\JsonContent(type="array", @OA\Items(ref="#/components/schemas/MedicalCalculator"))
+     *     )
+     * )
+     */
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('医学计算器');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    /**
+     * 创建新的医学计算器
+     *
+     * @OA\Post(
+     *     path="/api/medical-calculators",
+     *     summary="创建新的医学计算器",
+     *     tags={"医学计算器"},
+     *     @OA\RequestBody(
+     *         required=true,
+     *         @OA\JsonContent(ref="#/components/schemas/MedicalCalculator")
+     *     ),
+     *     @OA\Response(
+     *         response=201,
+     *         description="创建成功",
+     *         @OA\JsonContent(ref="#/components/schemas/MedicalCalculator")
+     *     )
+     * )
+     */
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('医学计算器');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    /**
+     * 编辑现有的医学计算器
+     *
+     * @OA\Get(
+     *     path="/api/medical-calculators/{id}",
+     *     summary="编辑现有的医学计算器",
+     *     tags={"医学计算器"},
+     *     @OA\Parameter(
+     *         name="id",
+     *         in="path",
+     *         required=true,
+     *         @OA\Schema(type="integer")
+     *     ),
+     *     @OA\Response(
+     *         response=200,
+     *         description="成功",
+     *         @OA\JsonContent(ref="#/components/schemas/MedicalCalculator")
+     *     )
+     * )
+     *
+     * @param int $id 医学计算器ID
+     */
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('医学计算器');
+            $content->description('编辑');
+            $content->body($this->form($id)->edit($id)); // 传递 $id 给 form 方法
+        });
+    }
+
+    /**
+     * 计算医学计算器的结果
+     *
+     * @OA\Post(
+     *     path="/api/medical-calculators/{id}/calculate",
+     *     summary="计算医学计算器的结果",
+     *     tags={"医学计算器"},
+     *     @OA\Parameter(
+     *         name="id",
+     *         in="path",
+     *         required=true,
+     *         @OA\Schema(type="integer")
+     *     ),
+     *     @OA\RequestBody(
+     *         required=true,
+     *         @OA\JsonContent(type="object")
+     *     ),
+     *     @OA\Response(
+     *         response=200,
+     *         description="计算结果",
+     *         @OA\JsonContent(type="object", @OA\Property(property="result", type="string"))
+     *     )
+     * )
+     *
+     * @param Request $request 请求对象
+     * @param int $id 医学计算器ID
+     * @return \Illuminate\Http\JsonResponse 计算结果的JSON响应
+     */
+    public function calculate(Request $request, $id)
+    {
+        $calculator = MedicalCalculator::findOrFail($id);
+        $inputs = $request->all();
+
+        try {
+            $result = $calculator->calculateResult($inputs);
+            return response()->json(['result' => $result]);
+        } catch (\Exception $e) {
+            return response()->json(['error' => $e->getMessage()], 400);
+        }
+    }
+
+    /**
+     * 获取指定计算器的问题
+     *
+     * @OA\Get(
+     *     path="/api/medical-calculators/{id}/questions",
+     *     summary="获取指定计算器的问题",
+     *     tags={"医学计算器"},
+     *     @OA\Parameter(
+     *         name="id",
+     *         in="path",
+     *         required=true,
+     *         @OA\Schema(type="integer")
+     *     ),
+     *     @OA\Response(
+     *         response=200,
+     *         description="成功",
+     *         @OA\JsonContent(type="array", @OA\Items(ref="#/components/schemas/MedicalQuestion"))
+     *     )
+     * )
+     *
+     * @param int $id 医学计算器ID
+     * @return \Illuminate\Http\JsonResponse 问题列表的JSON响应
+     */
+    public function getQuestions($id)
+    {
+        $questions = MedicalQuestion::where('medical_calculator_id', $id)->with('options')->get();
+        return response()->json($questions);
+    }
+
+    /**
+     * 定义医学计算器的表单
+     *
+     * @param int|null $id 医学计算器ID
+     * @return \Encore\Admin\Form 表单对象
+     */
+    protected function form($id = null)
+    {
+        return Admin::form(MedicalCalculator::class, function (Form $form) use ($id) {
+            $form->text('name', '计算器名称');
+            $form->text('disease_name', '疾病名称')->rules('nullable');
+
+            // 确保传递正确的 calculatorId
+            $calculatorId = $id ?? $form->model()->id;
+            $form->html($this->questionsForm($calculatorId));
+
+            $form->textarea('formula', '计算公式')->help('直接使用问题的变量名称,例如: weight / (height * height)');
+
+            $form->table('results', '结果对照表', function ($table) {
+                $table->decimal('min_score', 8, 2, '最小分数')->rules('required|numeric');
+                $table->decimal('max_score', 8, 2, '最大分数')->rules('required|numeric');
+                $table->text('result', '结果描述');
+            })->default([])->customFormat(function ($value) {
+                if (empty($value)) {
+                    return [];
+                }
+                if (is_string($value)) {
+                    $decoded = json_decode($value, true);
+                    return is_array($decoded) ? array_values($decoded) : [];
+                }
+                return is_array($value) ? array_values($value) : [];
+            });
+
+            $form->textarea('instructions', '使用说明')->rules('nullable');
+
+            $form->saving(function (Form $form) {
+                if (empty($form->results)) {
+                    $form->results = [];
+                } elseif (is_array($form->results)) {
+                    $form->results = array_values($form->results);
+                }
+            });
+
+            $form->saved(function (Form $form) {
+                $this->saveQuestions($form);
+                admin_toastr('保存成功', 'success');
+                return redirect()->route('admin.medical-calculators.index');
+            });
+
+            // 在表单显示之前处理 results 字段
+            if ($form->isEditing()) {
+                $form->editing(function (Form $form) {
+                    $results = $form->model()->results;
+                    if (is_string($results)) {
+                        $decoded = json_decode($results, true);
+                        $form->results = is_array($decoded) ? array_values($decoded) : [];
+                    } elseif (!is_array($results)) {
+                        $form->results = [];
+                    } else {
+                        $form->results = array_values($results);
+                    }
+                });
+            }
+
+            Admin::script($this->questionsScript());
+        });
+    }
+
+    /**
+     * 生成问题表单的HTML
+     *
+     * @param int $calculatorId 医学计算器ID
+     * @return string 问题表单的HTML
+     */
+    protected function questionsForm($calculatorId)
+    {
+        if (!$calculatorId) {
+            return '<div id="questions"></div><button type="button" id="add-question" class="btn btn-success">添加问题</button>';
+        }
+
+        $questions = MedicalQuestion::where('medical_calculator_id', $calculatorId)->with('options')->get();
+
+        $html = '<div id="questions">';
+        foreach ($questions as $index => $question) {
+            $html .= $this->questionTemplate($index, $question);
+        }
+        $html .= '</div>';
+        $html .= '<button type="button" id="add-question" class="btn btn-success">添加问题</button>';
+
+        return $html;
+    }
+
+    /**
+     * 生成单个问题的HTML模板
+     *
+     * @param int|string $index 问题索引
+     * @param MedicalQuestion|null $question 问题对象
+     * @return string 单个问题的HTML模板
+     */
+    protected function questionTemplate($index, $question = null)
+    {
+        $index = is_numeric($index) ? $index : "' + questionIndex + '";
+        $html = '<div class="question" data-index="' . $index . '">';
+        $html .= '<input type="hidden" name="questions[' . $index . '][id]" value="' . ($question ? htmlspecialchars($question->id) : '') . '">';
+
+        $html .= '<div class="form-group">';
+        $html .= '<label>问题内容:</label>';
+        $html .= '<input type="text" name="questions[' . $index . '][question]" value="' . ($question ? htmlspecialchars($question->question) : '') . '" placeholder="请输入问题内容" class="form-control">';
+        $html .= '</div>';
+
+        $html .= '<div class="form-group">';
+        $html .= '<label>变量名称:</label>';
+        $html .= '<input type="text" name="questions[' . $index . '][variable_name]" value="' . ($question ? htmlspecialchars($question->variable_name) : '') . '" placeholder="请输入变量名称" class="form-control">';
+        $html .= '</div>';
+
+        $html .= '<div class="form-group">';
+        $html .= '<label>问题类型:</label>';
+        $html .= '<select name="questions[' . $index . '][type]" class="form-control question-type">';
+        $html .= '<option value="text" ' . ($question && $question->type == 'text' ? 'selected' : '') . '>填空</option>';
+        $html .= '<option value="radio" ' . ($question && $question->type == 'radio' ? 'selected' : '') . '>单选</option>';
+        $html .= '<option value="checkbox" ' . ($question && $question->type == 'checkbox' ? 'selected' : '') . '>多选</option>';
+        $html .= '</select>';
+        $html .= '</div>';
+
+        $html .= '<div class="form-group score-formula-group" ' . ($question && ($question->type == 'radio' || $question->type == 'checkbox') ? 'style="display:none;"' : '') . '>';
+        $html .= '<label>分数:</label>';
+        $html .= '<input type="text" name="questions[' . $index . '][score]" value="' . ($question ? $question->score : '') . '" placeholder="请输入分数" class="form-control score-formula">';
+        $html .= '</div>';
+
+        $html .= '<div class="options" ' . ($question && ($question->type == 'radio' || $question->type == 'checkbox') ? '' : 'style="display:none;"') . '>';
+        if ($question && $question->options) {
+            foreach ($question->options as $optionIndex => $option) {
+                $html .= $this->optionTemplate($index, $optionIndex, $option);
+            }
+        }
+        $html .= '</div>';
+
+        $html .= '<button type="button" class="btn btn-info add-option" ' . ($question && ($question->type == 'radio' || $question->type == 'checkbox') ? '' : 'style="display:none;"') . '>添加选项</button>';
+        $html .= '<button type="button" class="btn btn-danger remove-question">删除问题</button>';
+        $html .= '</div>';
+        return $html;
+    }
+
+    /**
+     * 生成单个选项的HTML模板
+     *
+     * @param int|string $questionIndex 问题索引
+     * @param int|string $optionIndex 选项索引
+     * @param MedicalOption|null $option 选项对象
+     * @return string 单个选项的HTML模板
+     */
+    protected function optionTemplate($questionIndex, $optionIndex, $option = null)
+    {
+        $questionIndex = is_numeric($questionIndex) ? $questionIndex : "' + questionIndex + '";
+        $optionIndex = is_numeric($optionIndex) ? $optionIndex : "' + optionIndex + '";
+        $html = '<div class="option">';
+        $html .= '<input type="hidden" name="questions[' . $questionIndex . '][options][' . $optionIndex . '][id]" value="' . ($option ? $option->id : '') . '">';
+
+        $html .= '<div class="form-group">';
+        $html .= '<label>选项内容:</label>';
+        $html .= '<input type="text" name="questions[' . $questionIndex . '][options][' . $optionIndex . '][content]" value="' . ($option ? $option->content : '') . '" placeholder="请输入选项内容" class="form-control">';
+        $html .= '</div>';
+
+        $html .= '<div class="form-group">';
+        $html .= '<label>选项分数:</label>';
+        $html .= '<input type="number" step="0.01" name="questions[' . $questionIndex . '][options][' . $optionIndex . '][score]" value="' . ($option ? $option->score : '') . '" placeholder="请输入选项分数" class="form-control">';
+        $html .= '</div>';
+
+        $html .= '<button type="button" class="btn btn-warning remove-option">删除选项</button>';
+        $html .= '</div>';
+        return $html;
+    }
+
+    /**
+     * 生成问题和选项的JavaScript
+     *
+     * @return string JavaScript代码
+     */
+    protected function questionsScript()
+    {
+        $questionTemplate = json_encode($this->questionTemplate("' + questionIndex + '"));
+        $optionTemplate = json_encode($this->optionTemplate("' + questionIndex + '", "' + optionIndex + '"));
+
+        return <<<EOT
+        $(document).ready(function() {
+            let questionIndex = $('.question').length;
+
+            // 移除所有现有的事件处理程序
+            $(document).off('click', '#add-question');
+            $(document).off('click', '.add-option');
+            $(document).off('click', '.remove-question');
+            $(document).off('click', '.remove-option');
+            $(document).off('change', '.question-type');
+
+            // 重新绑定事件处理程序
+            $('#add-question').on('click', function() {
+                let newQuestion = $($questionTemplate.replace(/' \+ questionIndex \+ '/g, questionIndex));
+                $('#questions').append(newQuestion);
+                questionIndex++;
+
+                // 触发新添加问题的类型选择变化事件
+                newQuestion.find('.question-type').trigger('change');
+            });
+
+            $(document).on('click', '.add-option', function() {
+                let questionDiv = $(this).closest('.question');
+                let questionIndex = questionDiv.data('index');
+                let optionIndex = questionDiv.find('.option').length;
+                let newOption = $($optionTemplate.replace(/' \+ questionIndex \+ '/g, questionIndex).replace(/' \+ optionIndex \+ '/g, optionIndex));
+                questionDiv.find('.options').append(newOption);
+            });
+
+            $(document).on('click', '.remove-question', function() {
+                $(this).closest('.question').remove();
+            });
+
+            $(document).on('click', '.remove-option', function() {
+                $(this).closest('.option').remove();
+            });
+
+            $(document).on('change', '.question-type', function() {
+                let questionDiv = $(this).closest('.question');
+                let optionsDiv = questionDiv.find('.options');
+                let scoreFormulaGroup = questionDiv.find('.score-formula-group');
+                let addOptionButton = questionDiv.find('.add-option');
+                if (this.value === 'text') {
+                    optionsDiv.hide();
+                    scoreFormulaGroup.show();
+                    addOptionButton.hide();
+                } else {
+                    optionsDiv.show();
+                    scoreFormulaGroup.hide();
+                    addOptionButton.show();
+                }
+            });
+
+            // 初始化时触发一次
+            $('.question-type').trigger('change');
+        });
+    EOT;
+    }
+
+    /**
+     * 获取所有计算器
+     *
+     * @return \Illuminate\Http\JsonResponse 所有计算器的JSON响应
+     */
+    public function getAllCalculators()
+    {
+        $calculators = MedicalCalculator::all();
+        return response()->json($calculators);
+    }
+
+    /**
+     * 获取指定计算器
+     *
+     * @param int $id 医学计算器ID
+     * @return \Illuminate\Http\JsonResponse 计算器详情
+     */
+    public function show($id)
+    {
+        $calculator = MedicalCalculator::findOrFail($id);
+        return response()->json($calculator);
+    }
+
+    /**
+     * 更新指定计算器
+     *
+     * @param Request $request 请求对象
+     * @param int $id 医学计算器ID
+     * @return \Illuminate\Http\JsonResponse 更新后的计算器详情
+     */
+    public function update(Request $request, $id)
+    {
+        $calculator = MedicalCalculator::findOrFail($id);
+        $calculator->update($request->all());
+        $this->saveQuestions($calculator);
+
+        admin_toastr('更新成功', 'success');
+        return redirect()->route('admin.medical-calculators.index');
+    }
+
+    /**
+     * 删除指定计算器(支持批量删除)
+     *
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse 删除结果
+     */
+    public function destroy($id)
+    {
+        $ids = is_array($id) ? $id : [$id];
+
+
+
+        $successCount = 0;
+        $failCount = 0;
+
+        \Illuminate\Support\Facades\DB::transaction(function () use ($ids, &$successCount, &$failCount) {
+            // 批量删除关联的问题和选项
+            $deletedOptionsCount = MedicalOption::whereIn('medical_question_id', function($query) use ($ids) {
+                $query->select('id')
+                      ->from('medical_questions')
+                      ->whereIn('medical_calculator_id', $ids);
+            })->delete();
+
+            $deletedQuestionsCount = MedicalQuestion::whereIn('medical_calculator_id', $ids)->delete();
+
+            // 删除计算器
+            $deletedCalculatorsCount = MedicalCalculator::whereIn('id', $ids)->delete();
+
+            $successCount = $deletedCalculatorsCount;
+            $failCount = count($ids) - $deletedCalculatorsCount;
+
+
+        });
+
+        $message = "成功删除 {$successCount} 个计算器";
+        if ($failCount > 0) {
+            $message .= ",{$failCount} 个计算器删除失败";
+        }
+
+
+
+        return response()->json(['message' => $message, 'status' => true]);
+    }
+
+    /**
+     * 保存问题和选项
+     *
+     * @param Form|MedicalCalculator $formOrModel 表单对象或模型实例
+     */
+    protected function saveQuestions($formOrModel)
+    {
+        if ($formOrModel instanceof Form) {
+            $formModelId = $formOrModel->model()->id;
+        } elseif ($formOrModel instanceof MedicalCalculator) {
+            $formModelId = $formOrModel->id;
+        } else {
+            throw new \InvalidArgumentException('Invalid argument type');
+        }
+
+        $questionsData = request()->input('questions');
+
+        if (!is_array($questionsData)) {
+            return; // 如果 $questionsData 不是数组,直接返回
+        }
+
+        foreach ($questionsData as $index => $questionData) {
+            if (!isset($questionData['question']) || !isset($questionData['type'])) {
+                continue;
+            }
+
+            try {
+                $variableName = !empty($questionData['variable_name']) ? $questionData['variable_name'] : 'VAR_' . ($index + 1);
+
+                $question = MedicalQuestion::updateOrCreate(
+                    ['id' => $questionData['id'] ?? null],
+                    [
+                        'medical_calculator_id' => $formModelId,
+                        'question' => $questionData['question'],
+                        'variable_name' => $variableName,
+                        'type' => $questionData['type'],
+                        'score' => isset($questionData['score']) ? (float)$questionData['score'] : null,
+                    ]
+                );
+
+                // 删除旧的选项
+                $question->options()->delete();
+
+                if (isset($questionData['options']) && is_array($questionData['options'])) {
+                    foreach ($questionData['options'] as $optionData) {
+                        if (!isset($optionData['content'])) {
+                            continue;
+                        }
+
+                        $option = new MedicalOption([
+                            'content' => $optionData['content'],
+                            'score' => isset($optionData['score']) ? (float)$optionData['score'] : 0,
+                        ]);
+                        $question->options()->save($option);
+                    }
+                }
+            } catch (\Exception $e) {
+                \Illuminate\Support\Facades\Log::error('Error saving question: ' . $e->getMessage());
+            }
+        }
+    }
+
+    /**
+     * 定义医学计算器的表格
+     *
+     * @return \Encore\Admin\Grid 表格对象
+     */
+    protected function grid()
+    {
+        return Admin::grid(MedicalCalculator::class, function (Grid $grid) {
+            $grid->name('计算器名称');
+            $grid->disease_name('疾病名称');
+            $grid->column('questions_count', '问题数量');
+
+            $grid->paginate(20);
+            $grid->disableExport();
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+            });
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name', '输入名称搜索');
+            });
+
+            // 启用批量删除
+            $grid->batchActions(function ($batch) {
+                $batch->disableDelete();
+                $batch->add(new BatchDeleteAction());
+            });
+        });
+    }
+}

+ 91 - 0
app/Admin/Controllers/QuestionController.php

@@ -0,0 +1,91 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Question;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class QuestionController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('智能问题');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('智能问题');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('智能问题');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(Question::class, function (Form $form) use ($id) {
+            $form->display( 'id'     , 'id');
+            $form->text( 'question'      , '问题名称');
+            $form->select( 'status'  , '状态')->options([1 => '显示' , 2 => '下架']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Question::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','asc');
+            $grid->question('问题名称');
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+            $grid->updatetime('更新时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 99 - 0
app/Admin/Controllers/QuestionDetailController.php

@@ -0,0 +1,99 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Question;
+use App\Model\QuestionDetail;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class QuestionDetailController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('智能问题详情');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('智能问题详情');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('智能问题详情');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(QuestionDetail::class, function (Form $form) use ($id) {
+            $form->display( 'id'                  , 'id');
+            $form->select( 'question_id'          , '选择问题')->options(Question::all()->pluck('question','id'));
+            //$form->text( 'stage'                  , '孕期阶段');
+            $form->text( 'pathogenesis'           , '表象下原因');
+            $form->textarea( 'solving_path'       , '解决方法');
+            $form->textarea( 'means_intervention' , '对应生活方式');
+            $form->textarea( 'product_name'       , '对应产品');
+            $form->select( 'status'               , '状态')->options([1 => '显示' , 2 => '下架']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(QuestionDetail::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+            //$grid->stage('孕期阶段');
+            $grid->pathogenesis('表象下原因');
+            $grid->solving_path('解决方法');
+            $grid->means_intervention('对应生活方式');
+            $grid->product_name('对应产品');
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+            $grid->updatetime('更新时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+        });
+    }
+}

+ 83 - 0
app/Admin/Controllers/QuestionHistoryController.php

@@ -0,0 +1,83 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\QuestionHistory;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class QuestionHistoryController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('智能问题记录');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('智能问题记录');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('智能问题记录');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(QuestionHistory::class, function (Form $form) use ($id) {
+            $form->display( 'id'     , 'id');
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(QuestionHistory::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+            $grid->phone('提问者手机号');
+            $grid->question('问题名称');
+            $grid->answer('答案');
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+//            $grid->updatetime('更新时间')->display(function ($create_time) {
+//                return date('Y-m-d H:i:s' , $create_time);
+//            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 125 - 0
app/Admin/Controllers/QwCategoryController.php

@@ -0,0 +1,125 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\qw\QwDepartment;
+use App\Model\qw\QwCategory;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Http\Request;
+
+class QwCategoryController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答知识类别');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答知识类别');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('问答知识类别');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(QwCategory::class , function (Form $form) use ($id) {
+            $form->display( 'id'            , 'id');
+            $form->select( 'department_id'  , '所属部门')->options(
+                QwDepartment::all()->pluck('department_name' , 'id')
+            )->load('pid', 'll');    // 选中传入接口一个q参数,加载到第二级;
+            //$form->select('pid' , '知识类别');
+
+            $form->select('pid' , '知识类别')->options(function ($id) {
+                return QwCategory::where('pid',$id)->pluck('category_name', 'id');
+            });
+
+            $form->text( 'category_name'    , '分类名称');
+            $form->select( 'status'         , '状态')->options([1 => '显示' , 2 => '隐藏']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(QwCategory::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','asc');
+            $grid->department_desc('部门名称');
+            $grid->pid_text('知识类别');
+            $grid->category_name('业务分类');
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+            $grid->updatetime('更新时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+        });
+    }
+
+
+    public function show(request $request)
+    {
+        $projectId = $request->get('q');
+        return QwCategory::where('department_id' , $projectId)->where('pid' , 0)->get(
+            [
+                'id', 'category_name as text'
+            ]
+        );
+    }
+
+
+    public function ll(request $request)
+    {
+        $projectId = $request->get('q');
+        return QwCategory::where('department_id' , $projectId)->get(
+            [
+                'id', 'category_name as text'
+            ]
+        );
+    }
+
+}

+ 140 - 0
app/Admin/Controllers/QwController.php

@@ -0,0 +1,140 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\qw\Qw;
+use App\Model\qw\QwCategory;
+use App\Model\qw\QwDepartment;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Http\Request;
+use Encore\Admin\Show;
+
+class QwController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('问答');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(Qw::class, function (Form $form) use ($id) {
+            $form->display( 'id'            , 'id');
+            $form->select('category_id' , '业务分类')->options(QwCategory::where('pid' , '<>' , 0)->pluck('category_name' , 'id'));
+            $form->text( 'question'         , '问题');
+            $form->text( 'answer'           , '回答');
+            $form->select( 'is_have_question_select' , '是否有子问题选项')->options([1 => '是' , 2 => '否']);
+            $form->select( 'is_hot'         , '是否热门问题')->options([1 => '是' , 2 => '否']);
+            $form->select( 'status'         , '状态')->options([1 => '显示' , 2 => '隐藏']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Qw::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','asc');
+            $grid->category_desc('业务分类');
+            $grid->question('问题');
+            $grid->answer('回答');
+            $grid->is_have_question_select('是否有子问答选项')->display(function ($is_have_question_select) {
+                if( 1 == $is_have_question_select) {
+                    return '是';
+                }
+                if( 2 == $is_have_question_select) {
+                    return '否';
+                }
+            });
+            $grid->is_hot('是否热门问题')->display(function ($is_hot) {
+                if( 1 == $is_hot) {
+                    return '是';
+                }
+                if( 2 == $is_hot) {
+                    return '否';
+                }
+            });
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+            $grid->updatetime('更新时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+
+
+    public function show(request $request)
+    {
+        $projectId = $request->get('q');
+        return QwCategory::where('department_id' , $projectId)->get(
+            [
+                'id', 'category_name as text'
+            ]
+        );
+    }
+
+
+    public function ll(request $request)
+    {
+        $projectId = $request->get('q');
+        return QwCategory::where('department_id' , $projectId)->get(
+            [
+                'id', 'category_name as text'
+            ]
+        );
+    }
+
+}

+ 91 - 0
app/Admin/Controllers/QwDepartmentController.php

@@ -0,0 +1,91 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\qw\QwDepartment;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class QwDepartmentController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答部门');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答部门');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('问答部门');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(QwDepartment::class, function (Form $form) use ($id) {
+            $form->display( 'id'     , 'id');
+            $form->text( 'department_name'      , '部门名称');
+            $form->select( 'status'  , '状态')->options([1 => '显示' , 2 => '隐藏']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(QwDepartment::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','asc');
+            $grid->department_name('部门名称');
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return $create_time ? date('Y-m-d H:i:s' , $create_time) : '';
+            });
+            $grid->updatetime('更新时间')->display(function ($update_time) {
+                return $update_time ? date('Y-m-d H:i:s' , $update_time) : '';
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 80 - 0
app/Admin/Controllers/QwHistoryController.php

@@ -0,0 +1,80 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\qw\QwHistory;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class QwHistoryController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答记录');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问答记录');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('问答记录');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(QwHistory::class, function (Form $form) use ($id) {
+            $form->display( 'id'             , 'id');
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(QwHistory::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','asc');
+            $grid->phone('手机号');
+            $grid->question('问题');
+            $grid->answer('回答');
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return $create_time ? date('Y-m-d H:i:s' , $create_time) : '';
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 97 - 0
app/Admin/Controllers/QwSubController.php

@@ -0,0 +1,97 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\qw\Qw;
+use App\Model\qw\QwDepartment;
+use App\Model\qw\QwSub;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class QwSubController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问题子选项');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('问题子选项');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('问题子选项');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(QwSub::class, function (Form $form) use ($id) {
+            $form->display( 'id'             , 'id');
+            $form->select( 'question_id'     , '所属问题')->options(Qw::where(['is_have_question_select' => 1])->select()->pluck('question','id'));
+            $form->text( 'sub_question'      , '问题');
+            $form->text( 'sub_answer'        , '答案');
+            $form->select( 'status'          , '状态')->options([1 => '显示' , 2 => '隐藏']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(QwSub::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','asc');
+            $grid->question_text('所属问题');
+            $grid->sub_question('问题');
+            $grid->sub_answer('答案');
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return $create_time ? date('Y-m-d H:i:s' , $create_time) : '';
+            });
+            $grid->updatetime('更新时间')->display(function ($update_time) {
+                return $update_time ? date('Y-m-d H:i:s' , $update_time) : '';
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 105 - 0
app/Admin/Controllers/RegisterDepartment.php

@@ -0,0 +1,105 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\RDepartment;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class RegisterDepartment extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('挂号科室管理');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('挂号科室管理');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('挂号科室管理');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(RDepartment::class, function (Form $form) {
+            $form->display('id'          , '序号');
+            $form->select('department_type'           , '科室类别')->options([
+                '耳鼻喉'=>'耳鼻喉',
+                '神经内科'=>'神经内科',
+                '内分泌科'=>'内分泌科',
+                '皮肤性病科'=>'皮肤性病科',
+                '营养科'=>'营养科',
+                '血管外科'=>'血管外科',
+                '成瘾医学科'=>'成瘾医学科',
+                '肿瘤科'=>'肿瘤科',
+                '心血管内科'=>'心血管内科',
+                '精神病科'=>'精神病科',
+                '儿科'=>'儿科',
+                '血液科'=>'血液科',
+                '传染科'=>'传染科',
+                '烧伤科'=>'烧伤科',
+                '急诊科'=>'急诊科',
+                '皮肤科'=>'皮肤科',
+                '肾内科'=>'肾内科',
+                '呼吸内科'=>'呼吸内科',
+                '肝胆外科'=>'肝胆外科',
+                '保健科'=>'保健科',
+                '口腔科'=>'口腔科',
+                '妇科'=>'妇科',
+                '普外科'=>'普外科',
+                '消化内科'=>'消化内科',
+                '骨科'=>'骨科',
+                '心胸外科'=>'心胸外科',
+                '老年科'=>'老年科',
+                '眼科'=>'眼科'
+            ])->required();
+            $form->text('department'     , '科室名称')->required();
+            $form->text('parameter'       , '链接地址')->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(RDepartment::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->department_type('科室类别');
+            $grid->department('科室名称');
+            $grid->parameter('参数')->display(function ($parameter){
+                return "<span>".substr(urldecode($parameter),0,200)."</span>";
+            });
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+            $grid->filter(function($filter){
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+                // 在这里添加字段过滤器
+                $filter->like('department'         , '输入科室名称');
+            });
+        });
+    }
+}

+ 124 - 0
app/Admin/Controllers/RelationshipController.php

@@ -0,0 +1,124 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Relationship;
+use Encore\Admin\Show;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Support\Facades\Request;
+use Illuminate\Support\MessageBag;
+use function Clue\StreamFilter\fun;
+
+class RelationshipController extends Controller
+{
+    use ModelForm;
+
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医关系');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医关系');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('西医关系');
+            $content->description('编辑');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    public function form($id = '')
+    {
+        return Admin::form(Relationship::class, function (Form $form) {
+            $form->display('id'          , '序号');
+            $form->select('from_label'   , '标签')->options(Relationship::labels())->required();
+            $form->text('from_name'      , '属性名')->required();
+            $form->select('to_label'     , '关联标签')->options(Relationship::labels())->required();
+            $form->text('to_name'        , '关联属性名')->required();
+            $form->select('relationship' , '关系名称')->options(Relationship::relationships())->required();
+
+            $form->saving(function(Form $form) {
+                if(Relationship::checkIsadd($form->from_name , $form->to_name)) {
+                    $error = new MessageBag([
+                        'title'   => '错误提示',
+                        'message' => '已建立关联关系,不可重复建立!',
+                    ]);
+                    return back()->with(compact('error'));
+                } else {
+                    $form->saved(function (Form $form) {
+                        $query = "match (n:".$form->from_label."{name:"."'".$form->from_name."'"."}),"."(m:".$form->to_label."{name:"."'".$form->to_name."'"."})".
+                            "CREATE (n)-[r:".$form->relationship."]->(m) RETURN r";
+                        $result   = file_get_contents("https://zskweb.jiankangche.cn/neo4j/setNode?tag=xy&query=$query");
+                        if("{}" == $result) {
+                            Relationship::setStatus($form->id , Relationship::success);
+                        } else {
+                            Relationship::setStatus($form->id , Relationship::failure);
+                        }
+                    });
+                }
+            });
+        });
+    }
+
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Relationship::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+
+            $grid->from_label('标签');
+            $grid->from_name('标签属性名称');
+            $grid->to_label('标签');
+            $grid->to_name('标签属性名称');
+            $grid->relationship('关系名称');
+            $grid->status('状态')->display(function($status) {
+                return $status == Relationship::success ? "<span class='btn btn-success'>成功</span>" : "<span class='btn btn-danger'>失败</span>";
+            });
+            $grid->tag('分类');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->equal('relationship', '关系')->select(Relationship::relationships());
+                $filter->equal('tag'         , '分类')->select((new Relationship)->tag);
+                $filter->equal('status'      , '状态')->select((new Relationship)->status);
+            });
+
+
+        });
+    }
+
+
+}

+ 96 - 0
app/Admin/Controllers/SymptomController.php

@@ -0,0 +1,96 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Symptom;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class SymptomController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('症状');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('症状');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('症状');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(Symptom::class, function (Form $form) {
+            $form->display('id'          , '序号');
+            $form->text('location'       , '症状部位')->required();
+            $form->text('name'           , '症状名称')->required();
+            $form->text('department'     , '症状科室')->required();
+            $form->text('abstract'       , '简介')->required();
+            $form->text('etiology'       , '病因')->required();
+            $form->text('disease'        , '相关疾病')->required();
+            $form->text('inspection'     , '检查')->required();
+            $form->text('identify'       , '鉴别')->required();
+            $form->text('precaution'     , '预防')->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Symptom::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->location('症状部位');
+            $grid->name('症状名称');
+            $grid->department('科室');
+            $grid->abstract('简介');
+            $grid->etiology('病因');
+            $grid->disease('相关疾病');
+            $grid->inspection('检查');
+            $grid->identify('鉴别');
+            $grid->precaution('预防');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->like('name'         , '输入症状关键字');
+                $filter->equal('location'    , '输入症状部位');
+                $filter->like('disease'      , '输入疾病关键字');
+            });
+
+
+        });
+    }
+}

+ 91 - 0
app/Admin/Controllers/SystemController.php

@@ -0,0 +1,91 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\System;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class SystemController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('菁苗系统管理');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('菁苗系统管理');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('菁苗系统管理');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(System::class, function (Form $form) {
+            $form->display('id'                     , '序号');
+            $form->text('version_name'              , '版本名称')->required();
+            $form->text('question'                  , '问题/功能描述')->required();
+            $form->file('question_pic'              , '问题/功能描述截图');
+            $form->select('type'                    , '问题类型')->options([1 => 'bug' , 2 => '新功能'])->required();
+            $form->text('name'                      , '涉及开发者')->required();
+            $form->date('solution_time'             , '预计解决时间');
+            $form->select('status'                  , '状态')->options([1 => '未解决' , 2 => '已解决']);
+            $form->select('rank'                    , '优先级')->options([1 => '低' , 2 => '普通' , 3 => '高']);
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(System::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            $grid->version_name('版本名称');
+            $grid->question('问题/功能描述');
+            $grid->column('question_pic' , '问题/功能图片')->image();
+            $grid->type('问题类型');
+            $grid->name('涉及开发者');
+            $grid->solution_time('预计解决时间');
+            $grid->rank('优先级');
+            $grid->status('状态');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->equal('type'   , '类型')->select([1 => 'bug' , 2 => '新功能']);
+                $filter->equal('status' , '状态')->select([1 => '未解决' , 2 => '已解决']);
+                $filter->equal('rank'   , '优先级')->select([1 => '低' , 2 => '普通' , 3 => '高']);
+            });
+        });
+    }
+}

+ 306 - 0
app/Admin/Controllers/TestController.php

@@ -0,0 +1,306 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Test;
+use Encore\Admin\Show;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use App\Model\ZhSickNess;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Support\Facades\Request;
+
+class TestController extends Controller
+{
+    use ModelForm;
+
+    public function index()
+    {
+	$lable = request('label') ?? 'ZhSickNess';
+        return Admin::content(function (Content $content) {
+            $content->header('中医知识库');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('中医知识库');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('Test');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+
+    protected function show($id)
+    {
+        $zyzsk = new Test();
+        $show = new Show($zyzsk->findOrFail($id));
+        $show->field('name' , '名称');
+
+        $label = $zyzsk->getlabel($id);
+        switch ($label) {
+            case 'SickNess':
+                $show->field('department' , '科室');
+                $show->field('apparatus'  , '器官');
+                $show->field('tongueCondition' , '舌象');
+                $show->field('symptom' , '症状');
+                $show->field('therapeuticMethod' , '治法');
+                $show->field('source' , '来源');
+                $show->field('pulseCondition' , '脉象');
+                $show->field('dietTherapy' , '食物治疗');
+                $show->field('acupuncturePoints' , '穴位');
+                break;
+            case 'Thing':
+                $show->field('composition' , '成分');
+                break;
+            case 'CnMedicinalCrop':
+                $show->field('toxicity' , '毒性');
+                $show->field('indications' , '适应症');
+                $show->field('source' , '来源');
+                //$show->field('pageRankScore');
+                $show->field('pharmacology' , '药理');
+                break;
+            case 'CnPatentMedicine':
+                $show->field('pageRankScore');
+                break;
+            case 'Constitution':
+                $show->field('overallFeature' , '整体特征');
+                $show->field('notEat' , '忌口');
+                $show->field('tendency' , '流行病学');
+                $show->field('exercise' , '锻炼');
+                $show->field('dietTherapy' , '饮食疗法');
+                $show->field('psychologicalFeature' , '心理特征');
+                $show->field('commonPerformance' , '共同表现');
+                $show->field('meridianHealth' , '经络健康');
+                $show->field('medicineRegimen', '药方');
+                break;
+            case 'Prescription':
+                $show->field('composition' , '成分');
+                //$show->field('pageRankScore');
+                break;
+            case 'TonicDiet':
+                $show->field('composition' , '成分');
+                //$show->field('pageRankScore');
+                break;
+        }
+        $show->field('dateModified' , '日期');
+        return $show;
+    }
+
+
+    protected function form($id = '',$label)
+    {
+	echo $$label;die;
+	$this->hidden('type')->value(3);
+        if(isset($id)) {
+            if(!$id){
+                $url  = Request::path();
+                $arr  = explode('/' , $url);
+                $id   = $arr[2];
+            }
+
+            $test = new test();
+            $label = $test->getlabel($id);
+
+            // 编辑
+            switch ($label) {
+                case 'SickNess':
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->display('id' , 'Id');
+                        $form->text('name'  , '名称');
+                        $form->text('department' , '科室');
+                        $form->text('apparatus'  , '器官');
+                        $form->text('tongueCondition' , '舌象');
+                        $form->text('symptom' , '症状');
+                        $form->text('therapeuticMethod' , '治法');
+                        $form->text('source' , '来源');
+                        $form->text('pulseCondition' , '脉象');
+                        $form->text('dietTherapy' , '食物治疗');
+                        $form->text('acupuncturePoints' , '穴位');
+                        $form->text('pageRankScore');
+                    });
+                    break;
+                case 'Thing';
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->text('name');
+                        $form->text('composition');
+                        $form->text('pageRankScore');
+                    });
+                    break;
+                case 'CnMedicinalCrop';
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->text('name');
+                        $form->text('toxicity');
+                        $form->text('indications');
+                        $form->text('source');
+                        $form->text('pageRankScore');
+                        $form->text('pharmacology');
+                    });
+                    break;
+                case 'CnPatentMedicine';
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->text('name');
+                        $form->text('pageRankScore');
+                    });
+                    break;
+                case 'Constitution';
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->text('name');
+                        $form->text('overallFeature');
+                        $form->text('notEat');
+                        $form->text('tendency');
+                        $form->text('exercise');
+                        $form->text('dietTherapy');
+                        $form->text('pageRankScore');
+                        $form->text('psychologicalFeature');
+                        $form->text('commonPerformance');
+                        $form->text('meridianHealth');
+                        $form->text('medicineRegimen');
+                    });
+                    break;
+                case 'Prescription';
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->text('name');
+                        $form->text('composition');
+                        $form->text('pageRankScore');
+                    });
+                    break;
+                case 'TonicDiet';
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->text('name');
+                        $form->text('composition');
+                        $form->text('pageRankScore');
+                    });
+                    break;
+                case 'ChannelCollateral':
+                    return Admin::form(Test::class, function (Form $form) {
+                        $form->text('name'              , '名称');
+                        $form->text('indications'       , '主治');
+                        $form->text('channelSymptom'    , '经脉循行及其病候');
+                        $form->text('collateralSymptom' , '络脉循行及其病候');
+                        $form->text('divergentMeridian' , '经别循行');
+                        $form->text('aponeuroticSystem' , '经筋循行及其病候');
+                        $form->text('clinicalFeature'   , '经络症状主要临床表现');
+                        $form->text('mechanismAnalysis' , '经络病机分析');
+                        $form->text('source'            , '数据来源');
+                    });
+                    break;
+            }
+        } else {
+            // 创建
+            return Admin::form(Test::class, function (Form $form) {
+                $form->text('name');
+            });
+        }
+    }
+
+
+    // Grid
+    protected function grid()
+    {
+	$lable = request('label') ?? 'SickNess';
+        switch ($lable){
+            case 'SickNess';
+            $aa = ZhSickNess::class;
+            break;
+        }	
+        return Admin::grid($aa, function (Grid $grid) use($lable) {
+        //return Admin::grid(Test::class, function (Grid $grid) {
+            //$label = request('label') ?? 'SickNess';
+            //$grid->id('Id')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->name('名称')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            switch ($lable) {
+                case 'TonicDiet':
+                    $grid->composition('成分')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'SickNess':
+                    $grid->department('所属科室')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->apparatus('器官')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->tongueCondition('舌象')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->symptom('症状')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->therapeuticMethod('治法')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->source('来源')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->pulseCondition('脉象')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->dietTherapy('食物治疗')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->acupuncturePoints('穴位')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    //$grid->pageRankScore()->setAttributes(['style' => 'font-family:PMingLiU;']);
+               
+		break;
+                case 'CnMedicinalCrop':
+                    $grid->toxicity('毒性')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->indications('适应症')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->source('来源')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->pageRankScore()->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->pharmacology('药理')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'CnPatentMedicine':
+                    break;
+                case 'Thing':
+                    $grid->composition('成分')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Constitution':
+                    $grid->overallFeature('整体特征')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->notEat('忌口')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->tendency('流行病学')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->exercise('锻炼')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->dietTherapy('饮食疗法')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->psychologicalFeature('心理特征')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->commonPerformance('共同表现')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->meridianHealth('经络健康')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->medicineRegimen('药方')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Prescription':
+                    $grid->composition('成分')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'ChannelCollateral':
+                    $grid->indications('主治');
+                    $grid->channelSymptom('经脉循行及其病候');
+                    $grid->collateralSymptom('络脉循行及其病候');
+                    $grid->divergentMeridian('经别循行');
+                    $grid->aponeuroticSystem('经筋循行及其病候');
+                    $grid->clinicalFeature('经络症状主要临床表现');
+                    $grid->mechanismAnalysis('经络病机分析');
+                    $grid->source('数据来源');
+                    break;
+            }
+
+            $grid->dateModified('日期')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            //$grid->classification();
+
+            $grid->paginate(20);
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                // $actions->disableView();
+                // $actions->disableEdit();
+                $actions->disableDelete();
+                //$actions->add(new Update());
+                //dd($actions->row);
+            });
+            $grid->disableCreateButton();
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+        });
+    }
+}

+ 209 - 0
app/Admin/Controllers/TextLabelController.php

@@ -0,0 +1,209 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Admin\Actions\Post\ImportExcel;
+use App\Http\Controllers\Controller;
+use App\Model\TextLabel;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Http\Request;
+use SebastianBergmann\CodeCoverage\Report\Html\Renderer;
+
+class TextLabelController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('文案标注');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+//    public function create()
+//    {
+//        return Admin::content(function (Content $content) {
+//            $content->header('视频');
+//            $content->description('新增');
+//            $content->body($this->form());
+//        });
+//    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('文案标注');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+    protected function form($id = '')
+    {
+        $data = [
+            'symptom' => [],
+            'operation' => [],
+            'medicine' => [],
+            'disease' => [],
+            'inspection' => [],
+            'test' => [],
+            'date' => []
+        ];
+        self::botLabel($id,$data);
+        return Admin::form(TextLabel::class, function (Form $form) use ($data){
+            $form->display('id'       , '编号');
+            $form->display('text'        , '文案');
+
+            $form->embeds('symptom','症状',function ($form)  use ($data){
+                $num = 0;
+                foreach ($data['symptom'] as $item){
+                    $form->text($num,'terms')->default($item);
+                    $num ++;
+                }
+            });
+            $form->list('add_symptom');
+
+
+            $form->embeds('disease','疾病',function ($form)  use ($data){
+                $num = 0;
+                foreach ($data['disease'] as $item){
+                    $form->text($num,'terms')->default($item);
+                    $num ++;
+                }
+            });
+            $form->list('add_disease');
+
+
+            $form->embeds('operation','操作',function ($form)  use ($data){
+                $num = 0;
+                foreach ($data['operation'] as $item){
+                    $form->text($num,'terms')->default($item);
+                    $num ++;
+                }
+            });
+            $form->list('add_operation');
+
+
+            $form->embeds('medicine','药品',function ($form)  use ($data){
+                $num = 0;
+                foreach ($data['medicine'] as $item){
+                    $form->text($num,'terms')->default($item);
+                    $num ++;
+                }
+            });
+            $form->list('add_medicine');
+
+
+            $form->table('inspection'        , '检查',function ($form){
+                $form->text('terms');
+                $form->text('tag');
+            });
+
+
+            $form->table('test'        , '检验',function ($form){
+                $form->text('terms');
+                $form->text('tag');
+            });
+
+
+            $form->embeds('date','时间',function ($form)  use ($data){
+                $num = 0;
+                foreach ($data['date'] as $item){
+                    $form->text($num,'terms')->default($item);
+                    $num ++;
+                }
+            });
+            $form->list('add_date');
+
+
+            $form->disableViewCheck();
+            $form->disableEditingCheck();
+            $form->disableCreatingCheck();
+            $form->submitted(function (Form $form){
+                $fields = [
+                    'inspection',
+                    'test',
+                    'symptom',
+                    'add_symptom',
+                    'medicine',
+                    'add_medicine',
+                    'operation',
+                    'add_operation',
+                    'disease',
+                    'add_disease',
+                    'date',
+                    'add_date'];
+                $form->ignore($fields);
+            });
+        });
+    }
+    protected function botLabel($id,&$data){
+        $text = TextLabel::query()->where('id',$id)->first(['text as sentence']);
+        if ($text){
+            $text = $text->toArray();
+        }else{
+            return;
+        }
+        $url = 'http://121.36.94.218:10090/disease/ner/predict?'.http_build_query($text);
+        $result = file_get_contents($url);
+        $result = json_decode($result,true);
+        if ($result['code'] == 200){
+            $botLabel = $result['data'];
+            if (!empty($botLabel['symptom'])){
+                $data['symptom'] = array_keys($botLabel['symptom']);
+            }
+            if (!empty($botLabel['operation'])){
+                $data['operation'] = array_keys($botLabel['operation']);
+            }
+            if (!empty($botLabel['medicine'])){
+                $data['medicine'] = array_keys($botLabel['medicine']);
+            }
+            if (!empty($botLabel['disease'])){
+                $data['disease'] = array_keys($botLabel['disease']);
+            }
+            if (!empty($botLabel['inspection'])){
+                $data['inspection'] = array_keys($botLabel['inspection']);
+            }
+            if (!empty($botLabel['test'])){
+                $data['test'] = array_keys($botLabel['test']);
+            }
+            if (!empty($botLabel['date'])){
+                $data['date'] = array_keys($botLabel['date']);
+            }
+        }
+    }
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(TextLabel::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->where('status',0)->orderBy('id','desc');
+            $grid->text('文案');
+            $grid->status('状态')->display(function ($status){
+                if(0 == $status) {
+                    return "<span class='btn btn-success'>未标注</span>";
+                } else {
+                    return "<span class='btn btn-danger'>已标注</span>";
+                }
+            });
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->disableCreation();
+            $grid->disableExport();;
+            $grid->tools(function ($tools) {
+                // 禁用批量删除按钮
+                $tools->batch(function ($batch) {
+                    $batch->disableDelete();
+                });
+                $tools->append(new ImportExcel());
+            });
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+        });
+    }
+}

+ 87 - 0
app/Admin/Controllers/TranslateRecordController.php

@@ -0,0 +1,87 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\qw\TranslateRecord;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class TranslateRecordController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('翻译记录');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('翻译记录');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('翻译记录');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(TranslateRecord::class, function (Form $form) use ($id) {
+            $form->display( 'id'     , 'id');
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(TranslateRecord::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','asc');
+            $grid->uid('用户uid');
+            $grid->text('翻译内容');
+            $grid->translate_text('翻译结果');
+            $grid->status('状态')->display(function ($status) {
+                if( 1 == $status) {
+                    return '显示';
+                }
+                if( 2 == $status) {
+                    return '隐藏';
+                }
+            });
+            $grid->createtime('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 82 - 0
app/Admin/Controllers/UserChatgptUseRecordController.php

@@ -0,0 +1,82 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\UserChatgptUseRecord;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class UserChatgptUseRecordController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('使用记录');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('使用记录');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('使用记录');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(UserChatgptUseRecord::class, function (Form $form) use ($id) {
+            $form->display( 'id'                  , 'id');
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(UserChatgptUseRecord::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+
+            $grid->uid('用户ID');
+            $grid->mobile('手机号');
+            $grid->question('问题');
+            $grid->answer('答案');
+            $grid->createtime('提问时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->equal('uid' , '用户ID');
+            });
+
+
+        });
+    }
+}

+ 128 - 0
app/Admin/Controllers/UserController.php

@@ -0,0 +1,128 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\User;
+use App\Model\Menu;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class UserController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('用户信息');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('用户信息');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('用户信息');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+            return Admin::form(User::class, function (Form $form) use ($id) {
+                $form->display( 'uid'                  , 'Uid');
+                $form->text(    'company_name'         , '单位名称')->required();
+                $form->text(    'department'           , '部门')->required();
+                $form->text(    'username'             , '用户名')->required();
+                $form->text(    'phone'                , '手机号')->rules('required|min:11');
+                $form->email(   'email'                , '邮箱')->required();
+                $form->password('password'             , '密码')->rules('required|min:6');
+                $form->select(  'status'               , '账号状态')->options([1 => '正常' , 2 => '冻结' , 3 => '待审核'])->required();
+                $form->multipleSelect('privilege_menu' , '权限菜单')->options(Menu::all()->pluck('menu_name' ,'id'));
+                // $form->number(    'chatgpt_num'          , 'chatgpt使用次数');
+                $form->hidden(  'create_time');
+                $form->saving(function (Form $form) {
+                    if(strlen($form->password) != 32) {
+                        $form->password    = md5(sha1($form->password));
+                        $form->create_time = time();
+                    }
+                });
+            });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(User::class, function (Grid $grid) {
+            $grid->uid('编号')->sortable();
+            $grid->model()->orderBy('uid','desc');
+            $grid->company_name('单位名称');
+            $grid->department('部门');
+            $grid->username('用户名');
+            $grid->phone('手机号');
+            $grid->email('邮箱');
+            $grid->create_time('创建时间')->display(function ($create_time) {
+                return date('Y-m-d H:i:s' , $create_time);
+            });
+            $grid->status('账号状态')->display(function ($status){
+                if(1 == $status) {
+                    return "<span class='btn btn-success'>正常</span>";
+                }
+
+                if(2 == $status) {
+                    return "<span class='btn btn-danger'>冻结</span>";
+                }
+
+                if(3 == $status) {
+                    return "<span class='btn btn-primary'>待审核</span>";
+                }
+                return '---';
+            });
+            $grid->user_tag('用户标识')->display(function ($user_tag){
+                if(1 == $user_tag) {
+                    return "菁苗";
+                }
+
+                if(2 == $user_tag) {
+                    return "chatGpt";
+                }
+                return '---';
+            });
+            // $grid->chatgpt_num('chatgpt可使用次数');
+            $grid->privilege_menu('可查看菜单');
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                $filter->equal('phone'       , '输入手机号');
+                $filter->like('company_name' , '输入公司关键字');
+                $filter->equal('status'      , '账号状态')->select([1 => '正常' , 2 => '冻结' , 3 => '待审核']);
+            });
+
+
+        });
+    }
+}

+ 83 - 0
app/Admin/Controllers/VideoController.php

@@ -0,0 +1,83 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Video;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class VideoController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('视频');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('视频');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('视频');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(Video::class, function (Form $form) {
+            $form->display('id'       , '编号');
+            $form->text('title'       , '标题')->required();
+//            $form->file('cover_img'   , '封面图')->uniqueName();
+//            $form->text('page_view'   , '页面浏览数');
+            $form->file('video_url'   , '视频')->uniqueName();
+            $form->select('status'    , '视频状态')->options([1 => '正常' , 2 => '隐藏']);
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Video::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->model()->orderBy('id','desc');
+            $grid->title('标题');
+            $grid->video_url('视频')->display(function ($video_url) {
+                $url = env('APP_URL').'/uploads/'.$video_url;
+                return '<video width="200" height="150" controls><source src="' . $url . '"></video>';
+            })->link();
+            $grid->page_view('浏览数');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->status('状态')->display(function ($status){
+                if(1 == $status) {
+                    return "<span class='btn btn-success'>正常</span>";
+                } else {
+                    return "<span class='btn btn-danger'>隐藏</span>";
+                }
+            });
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+        });
+    }
+}

+ 96 - 0
app/Admin/Controllers/XyDrugAnswersController.php

@@ -0,0 +1,96 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyDrugAnswers;
+use App\Model\XyDrugOverdose;
+use App\Model\XyEssentialDrugs;
+use App\Model\XyGjybypmlen;
+use App\Model\XyZskInspection;
+use App\Model\XyZskSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class XyDrugAnswersController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('药品问答');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('药品问答');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('药品问答');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(XyDrugAnswers::class, function (Form $form) {
+            $form->text('name'                         , '疾病名称');
+            $form->text('issue'                   , '问题');
+            $form->text('information'                   , '患者信息');
+            $form->textarea('Description'                   , '患者描述');
+            $form->text('doctor'                   , '医生');
+            $form->text('technicalpost'                   , '职称');
+            $form->text('DoctorInformation'                   , '医生其他信息');
+            $form->text('Medicalspecialty'                   , '医生科室专业');
+            $form->textarea('reply'                   , '回答');
+
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyDrugAnswers::class, function (Grid $grid) {
+            $grid->name('疾病名称');
+            $grid->issue('问题');
+            $grid->information('患者信息');
+            $grid->doctor('医生');
+            $grid->technicalpost('职称');
+
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入名称搜索');
+            });
+
+        });
+    }
+}
+
+
+

+ 103 - 0
app/Admin/Controllers/XyDrugOverdoseController.php

@@ -0,0 +1,103 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyDrugOverdose;
+use App\Model\XyEssentialDrugs;
+use App\Model\XyGjybypmlen;
+use App\Model\XyZskInspection;
+use App\Model\XyZskSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class XyDrugOverdoseController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('超用药说明书');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('超用药说明书');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('超用药说明书');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(XyDrugOverdose::class, function (Form $form) {
+            $form->text('name'                         , '通用名称');
+            $form->text('Dosageform'                   , '剂型');
+            $form->text('rule'                   , '规则');
+            $form->textarea('indication'                   , '适应症');
+            $form->text('dose'                   , '剂量');
+            $form->text('crowd'                   , '人群');
+            $form->text('way'                   , '途径');
+            $form->textarea('Usagedosage'                   , '用法用量');
+            $form->textarea('Levelevidencebasis'                   , '证据等级及依据');
+            $form->text('effectiveness'                   , '有效性');
+            $form->text('Recommendationlevel'                   , '推荐等级');
+            $form->text('Strengthevidence'                   , '证据强度');
+            $form->text('Guidelinegrading'                   , '指南分级');
+            $form->text('Specificlevels'                   , '指南中的具体推荐等级');
+            $form->text('recommendation'                   , '推荐意见');
+            $form->text('basis'                   , '依据');
+            $form->textarea('source'                   , '数据来源');
+            $form->textarea('reference'                   , '参考文献');
+
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyDrugOverdose::class, function (Grid $grid) {
+            $grid->name('通用名称');
+            $grid->Dosageform('剂型');
+            $grid->rule('规则');
+            $grid->Usagedosage('用法用量');
+            $grid->effectiveness('有效性');
+
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入名称搜索');
+            });
+
+        });
+    }
+}
+
+

+ 90 - 0
app/Admin/Controllers/XyEssentialDrugsController.php

@@ -0,0 +1,90 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyEssentialDrugs;
+use App\Model\XyZskInspection;
+use App\Model\XyZskSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class XyEssentialDrugsController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('基本药物目录');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('基本药物目录');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('基本药物目录');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(XyEssentialDrugs::class, function (Form $form) {
+            $form->text('chEnmedicine'                     , '中西药');
+            $form->text('Broadcategory'                   , '大类');
+            $form->text('subclass'                    , '小类');
+            $form->text('name'                    , '品种名称');
+            $form->textarea('specification'         , '规格');
+            $form->text('remark'                    , '备注');
+            $form->text('Supplementary'                    , '增补性质');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyEssentialDrugs::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->chEnmedicine('中西药');
+            $grid->Broadcategory('大类');
+            $grid->subclass('小类');
+            $grid->name('品种名称');
+            $grid->remark('备注');
+
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入名称搜索');
+            });
+
+        });
+    }
+}
+

+ 94 - 0
app/Admin/Controllers/XyMedicalInsuranceDrugEnController.php

@@ -0,0 +1,94 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyEssentialDrugs;
+use App\Model\XyGjybypmlen;
+use App\Model\XyZskInspection;
+use App\Model\XyZskSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class XyMedicalInsuranceDrugEnController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('医保药品目录');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('医保药品目录');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('医保药品目录');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(XyGjybypmlen::class, function (Form $form) {
+            $form->text('drugclassificationcode'       , '药品分类代码');
+            $form->text('catalogue1'                   , '目录1');
+            $form->text('catalogue2'                   , '目录2');
+            $form->text('catalogue3'                   , '目录3');
+            $form->text('catalogue4'                   , '目录4');
+            $form->text('drugclassificationc'          , '药品分类');
+            $form->text('encode'                       , '编码');
+            $form->text('name'                         , '药品名称');
+            $form->text('Dosageform'                   , '剂型');
+            $form->text('remark'                       , '备注');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyGjybypmlen::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->drugclassificationcode('药品分类代码');
+            $grid->drugclassificationc('药品分类');
+            $grid->encode('编码');
+            $grid->name('药品名称');
+            $grid->Dosageform('剂型');
+
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入名称搜索');
+            });
+
+        });
+    }
+}
+

+ 109 - 0
app/Admin/Controllers/XyZskDiseaseController.php

@@ -0,0 +1,109 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyZskDisease;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class XyZskDiseaseController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('医疗疾病');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('医疗疾病');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('医疗疾病');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(XyZskDisease::class, function (Form $form) {
+            $form->text('department_1' , '一级科室');
+            $form->text('department_2' , '二级科室');
+            $form->text('name'             , '名称');
+            $form->text('nameEn'           , '英文名称');
+            $form->text('alias'            , '疾病别名');
+            $form->editor('sickOverview'          , '疾病概述');
+            $form->editor('clinicalFeature'       , '临床表现');
+            $form->editor('diagnosis'             , '诊断');
+            $form->editor('treatment'             , '治疗');
+            $form->editor('regularMedication'     , '相关药品');
+            $form->editor('pathogenesis'          , '发病机制');
+            $form->editor('inspection'            , '相关检查');
+            $form->editor('relevantOperation'     , '相关操作');
+            $form->editor('laboratoryInspection'  , '实验室检查');
+            $form->text('icd'              , 'ICD号');
+            $form->editor('etiology'              , '病因');
+            $form->editor('auxiliaryExamination'  , '其他辅助检查');
+            $form->editor('antidiastole'          , '鉴别诊断');
+            $form->editor('prognosis'             , '预后');
+            $form->editor('complicationsOverview' , '并发症概述');
+            $form->editor('epidemiology'          , '流行病学');
+            $form->editor('precaution'            , '预防');
+            $form->editor('symptom'               , '症状');
+
+            //$form->editor('medicalRecord'         , '临床病例');
+            //$form->editor('pathology'             , '病理');
+            //$form->editor('document'              , '参考文献');
+            //$form->editor('clinicalClassification', '临床分类');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyZskDisease::class, function (Grid $grid) {
+            //$grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->department_1('一级科室');
+            $grid->name('疾病名称');
+            $grid->alias('别名');
+            $grid->relevantOperation('相关操作');
+            $grid->icd('icd');
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入疾病名称搜索');
+                $filter->equal('departmentLevel1' , '输入科室名称');
+            });
+
+        });
+    }
+}
+

+ 127 - 0
app/Admin/Controllers/XyZskInspectionController.php

@@ -0,0 +1,127 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyZskInspection;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Encore\Admin\Show;
+
+class XyZskInspectionController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医检验检查');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医检验检查');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('西医检验检查');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+
+	protected function show($id)
+    {
+        $show = new Show(XyZskInspection::findOrFail($id));
+	$show->field('name'                       , '名称');
+            $show->field('department'                 , '科室分类');
+            $show->field('overview'               , '概述');
+            $show->field('principle'              , '原理');
+            $show->field('reagent'                , '试剂');
+            $show->field('operation'              , '操作方法');
+            $show->field('clinicalSignificance'   , '临床意义');
+            $show->field('normalValue'            , '正常值');
+            $show->field('annotation'             , '附注');
+            $show->field('precautions'            , '注意事项');
+            $show->field('donghua_name'           , '东华name');
+            $show->field('zhonglian_name'         , '中联name');
+            $show->field('process'                , '检查过程');
+            $show->field('related_symptoms'       , '相关症状');
+            $show->field('related_diseases'       , '相关疾病');
+            $show->field('haoze_name'                  , '昊泽name');
+            $show->field('sex'                        , '性别');
+
+        return $show;
+    }
+
+
+    protected function form($id='')
+    {
+        return Admin::form(XyZskInspection::class, function (Form $form) {
+            $form->text('name'                       , '名称');
+            $form->text('department'                 , '科室分类');
+            $form->textarea('overview'               , '概述');
+            $form->textarea('principle'              , '原理');
+            $form->textarea('reagent'                , '试剂');
+            $form->textarea('operation'              , '操作方法');
+            $form->textarea('clinicalSignificance'   , '临床意义');
+            $form->textarea('normalValue'            , '正常值');
+            $form->textarea('annotation'             , '附注');
+            $form->textarea('precautions'            , '注意事项');
+            $form->textarea('donghua_name'           , '东华name');
+            $form->textarea('zhonglian_name'         , '中联name');
+            $form->textarea('process'                , '检查过程');
+            $form->textarea('related_symptoms'       , '相关症状');
+            $form->textarea('related_diseases'       , '相关疾病');
+            $form->textarea('haoze_name'                  , '昊泽name');
+            $form->text('sex'                        , '性别');
+
+
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyZskInspection::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->name('检查名称');
+            $grid->department('科室分类');
+            $grid->operation('操作方法');
+            $grid->normalValue('正常值');
+            $grid->annotation('附注');
+
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入检查名称搜索');
+            });
+
+        });
+    }
+}
+

+ 96 - 0
app/Admin/Controllers/XyZskMedicineController.php

@@ -0,0 +1,96 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyZskMedicine;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class XyZskMedicineController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病药品');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病药品');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('疾病药品');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(XyZskMedicine::class, function (Form $form) {
+            $form->text('name'                     , '名称');
+            $form->text('pinyi'                    , '汉语拼音');
+            $form->text('oldUse'                   , '老人用药');
+            $form->text('chilldUse'                , '儿童用药');
+            $form->text('medicinePregnant'         , '孕妇及哺乳期妇女用药');
+            $form->text('usageDosage'              , '用法用量');
+            $form->text('notes'                    , '注意事项');
+            $form->text('periodValidity'           , '有效期');
+            $form->text('indication'               , '适应症');
+            $form->text('storage'                  , '贮藏');
+            $form->text('character'                , '性状');
+            $form->text('contraindication'         , '禁忌');
+            $form->text('pharmacologyToxicology'   , '药理毒理');
+            $form->text('specification'            , '规格');
+            $form->text('approvalNumber'           , '批准号');
+            $form->text('productionEnterprise'     , '生产企业');
+            $form->text('relateSick'               , '相关疾病');
+            $form->text('untowardEffect'           , '不良反应');
+            $form->text('majorConstituent'         , '主要成分');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyZskMedicine::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->name('药品名称');
+            $grid->indication('适应症');
+            $grid->untowardEffect('不良反应');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入药品名称搜索');
+            });
+
+        });
+    }
+}

+ 109 - 0
app/Admin/Controllers/XyZskSicknessController.php

@@ -0,0 +1,109 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\XyZskInspection;
+use App\Model\XyZskSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class XyZskSickNessController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('科普疾病');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('科普疾病');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('科普疾病');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(XyZskSickNess::class, function (Form $form) {
+            $form->text('departmentLevel1'         , '科室1');
+            $form->text('departmentLevel2'         , '科室2');
+            $form->text('name'                     , '名称');
+            $form->text('nameEn'                   , '英文名称');
+            $form->text('alias'                    , '疾病别名');
+            $form->textarea('introduction'         , '简介');
+            $form->textarea('basicKnowledgel'      , '基本常识');
+            $form->textarea('treatmenCommonSense'  , '治疗常识');
+            $form->textarea('warmPrompt'           ,'温馨提示');
+            $form->textarea('pathogenesis'         , '病因');
+            $form->textarea('precaution'           , '预防');
+            $form->text('complication'             , '并发症');
+            $form->textarea('complicationsOverview', '并发症概述');
+            $form->textarea('symptom'              , '症状');
+            $form->textarea('Inspect'              , '检查');
+            $form->textarea('diagnostiCtriage'     , '诊断鉴别');
+            $form->text('treatmentOverview'        ,'治疗概述');
+            $form->textarea('treatmentInfo'        ,'治疗信息');
+            $form->textarea('nursingInfo'          , '护理信息');
+            $form->textarea('dietHealth'           , '饮食保健');
+            $form->text('suitableFood'             , '宜吃食物');
+            $form->text('notEat'                   , '忌吃食物');
+            $form->text('recommendedRecipe'        , '推荐食物');
+            $form->text('treatExpense'             , '治疗费用');
+            $form->text('treatCycle'               , '治疗周期');
+            $form->text('recoveryRate'               , '治愈率');
+            $form->text('regularMedication'               , '常用药品');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(XyZskSickNess::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->departmentLevel1('科室1');
+            $grid->departmentLevel2('科室2');
+            $grid->name('中文名称');
+            $grid->alias('疾病别名');
+            $grid->warmPrompt('温馨提示');
+
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入检查名称搜索');
+            });
+
+        });
+    }
+}
+

+ 505 - 0
app/Admin/Controllers/XyzskController.php

@@ -0,0 +1,505 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Xyzsk;
+use Encore\Admin\Show;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use Illuminate\Support\Facades\Request;
+
+
+class XyzskController extends Controller
+{
+    use ModelForm;
+
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医知识库');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('西医知识库');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('西医知识库');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+
+    protected function show($id)
+    {
+        $xyzsk = new Xyzsk();
+        $show = new Show($xyzsk->findOrFail($id));
+        $show->field('name' , '名称');
+        $label = $xyzsk->getlabel($id);
+        switch ($label) {
+            case 'SickNess':
+                $show->field('alias'                , '疾病别名');
+                $show->field('ICD10'                , 'ICD10');
+                $show->field('department'           , '疾病类别');
+                $show->field('introduction'         , '疾病概述');
+                $show->field('epidemiology'         , '流行病学');
+                $show->field('suitableFood'         , '宜吃食物');
+                $show->field('notEat'               , '忌吃食物');
+                $show->field('diagnostiCtriage'     , '诊断鉴别');
+                $show->field('precaution'           , '预防');
+                $show->field('nursingInfo'          , '护理信息');
+                $show->field('warmPrompt'           , '温馨提示');
+                $show->field('recommendedRecipe'    , '推荐食谱');
+                $show->field('treatmentOverview'    , '治疗概述');
+                $show->field('pathogenesis'         , '病因');
+                $show->field('basicKnowledgel'      , '基本常识');
+                $show->field('dietHealth'           , '饮食保健');
+                $show->field('symptom'              , '证型');
+                $show->field('complicationsOverview', '并发症概述');
+                $show->field('treatmentInfo'        , '治疗信息');
+                break;
+            case 'Disease':
+                $show->field('nameEn'               , '英文名称');
+                $show->field('alias'                , '疾病别名');
+                $show->field('icd'                  , 'ICD号');
+                $show->field('department'           , '疾病类别');
+                $show->field('epidemiology'         , '流行病学');
+                $show->field('sickOverview'         , '疾病概述');
+                $show->field('clinicalFeature'      , '临床表现');
+                $show->field('diagnosis'            , '诊断');
+                $show->field('treatment'            , '治疗');
+                $show->field('pathogenesis'         , '发病机制');
+                $show->field('inspection'           , '相关检查');
+                $show->field('laboratoryInspection' , '实验室检查');
+                $show->field('b'                    , '病因');
+                $show->field('auxiliaryExamination' , '其他辅助检查');
+                $show->field('prognosis'            , '预后');
+                $show->field('complicationsOverview', '并发症概述');
+                $show->field('precaution'           , '预防');
+                break;
+            case 'Medicine':
+                $show->field('pinyi'                    , '汉语拼音');
+                $show->field('oldUse'                   , '老人用药');
+                $show->field('chilldUse'                , '儿童用药');
+                $show->field('medicinePregnant'         , '孕妇及哺乳期妇女用药');
+                $show->field('usageDosage'              , '用法用量');
+                $show->field('notes'                    , '注意事项');
+                $show->field('periodValidity'           , '有效期');
+                $show->field('indication'               , '适应症');
+                $show->field('storage'                  , '贮藏');
+                $show->field('character'                , '性状');
+                $show->field('contraindication'         , '禁忌');
+                $show->field('pharmacologyToxicology'   , '药理毒理');
+                $show->field('specification'            , '规格');
+                $show->field('approvalNumber'           , '批准号');
+                $show->field('productionEnterprise'     , '生产企业');
+                $show->field('relateSick'               , '相关疾病');
+                $show->field('untowardEffect'           , '不良反应');
+                $show->field('majorConstituent'         , '主要成分');
+                break;
+            case 'Inspection':
+                $show->field('overview'               , '概述');
+                $show->field('annotation'             , '附注');
+                $show->field('principle'              , '原理');
+                $show->field('normalValue'            , '正常值');
+                $show->field('clinicalSignificance'   , '临床意义');
+                $show->field('reagent'                , '试剂');
+                $show->field('operation'              , '操作方法');
+                break;
+            case 'Document':
+                $show->field('abstract' , '摘要');
+                $show->field('year'     , '年份');
+                break;
+            case 'Guide':
+                $show->field('enTitle'      , '英文标题');
+                $show->field('abstract'     , '摘要');
+                $show->field('source'       , '数据来源');
+                $show->field('constitutor'  , '制定者');
+                $show->field('year'         , '年份');
+                break;
+
+        }
+        $show->field('dateModified' , '日期');
+        return $show;
+    }
+
+
+    /**
+     * store resource
+     */
+    public function store()
+    {
+        $data = Request::except(['_token' , '_previous_' , 's']);
+        foreach ($data as $key => $value)
+        {
+            if($data[$key])
+            {
+                if($data[$key] != strip_tags($data[$key])) {
+                    $data[$key] = htmlspecialchars($data[$key]);
+                }
+            }
+        }
+        $url  = "https://zskweb.jiankangche.cn/neo4j/create_node";
+
+        $ch   = curl_init();
+        $header  = array(
+            'Content-Type:'.'application/json; charset=UTF-8'
+        );
+        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($ch, CURLOPT_POST, 1);
+        curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($data));
+        $result = curl_exec($ch);
+        curl_close($ch);
+
+        $result = json_decode($result , true);
+        //dd($result);
+        if(0 == $result['code']) {
+            admin_success('消息提示', '保存成功!');
+            return back();
+        } else {
+            admin_error('消息提示', '保存失败!');
+            return back();
+        }
+    }
+
+
+    public function update($id)
+    {
+        $data = Request::except(['_token' , '_previous_' , 's']);
+        foreach ($data as $key => $value)
+        {
+            if($data[$key])
+            {
+                if($data[$key] != strip_tags($data[$key])) {
+                    $data[$key] = htmlspecialchars($data[$key]);
+                }
+            }
+        }
+        $data['id'] = $id;
+        $result = (new xyzsk())->save($data);
+
+        if('failure' === $result) {
+            admin_error('消息提示', '保存失败!');
+            return back();
+        } else {
+            admin_success('消息提示', '保存成功!');
+            return back();
+        }
+
+    }
+
+
+    protected function form($id = '')
+    {
+        if($id) {
+            $label = (new xyzsk())->getlabel($id);
+
+            // 编辑
+            switch ($label) {
+                case 'SickNess':
+                    return Admin::form(Xyzsk::class, function (Form $form) {
+                        $form->text('name'                     , '名称');
+                        $form->text('alias'                    , '疾病别名');
+                        $form->text('ICD10'                    , 'ICD10');
+                        $form->text('department'               , '疾病类别');
+                        $form->editor('introduction'         , '疾病概述');
+                        $form->editor('epidemiology'         , '流行病学');
+                        $form->editor('suitableFood'         , '宜吃食物');
+                        $form->editor('notEat'               , '忌吃食物');
+                        $form->editor('diagnostiCtriage'     , '诊断鉴别');
+                        $form->editor('precaution'           , '预防');
+                        $form->editor('nursingInfo'          , '护理信息');
+                        $form->editor('warmPrompt'           , '温馨提示');
+                        $form->editor('recommendedRecipe'    , '推荐食谱');
+                        $form->editor('treatmentOverview'    , '治疗概述');
+                        $form->editor('pathogenesis'         , '病因');
+                        $form->editor('basicKnowledgel'      , '基本常识');
+                        $form->editor('dietHealth'           , '饮食保健');
+                        $form->editor('symptom'              , '证型');
+                        $form->editor('complicationsOverview', '并发症概述');
+                        $form->editor('treatmentInfo'        , '治疗信息');
+                    });
+                    break;
+                case 'Disease';
+                    return Admin::form(Xyzsk::class, function (Form $form) {
+                        $form->text('name'             , '名称');
+                        $form->text('nameEn'           , '英文名称');
+                        $form->text('alias'            , '疾病别名');
+                        $form->text('icd'              , 'ICD号');
+                        $form->text('department'       , '疾病类别');
+                        $form->editor('epidemiology'          , '流行病学');
+                        $form->editor('sickOverview'          , '疾病概述');
+                        $form->editor('clinicalFeature'       , '临床表现');
+                        $form->editor('diagnosis'             , '诊断');
+                        $form->editor('treatment'             , '治疗');
+                        $form->editor('pathogenesis'          , '发病机制');
+                        $form->editor('inspection'            , '相关检查');
+                        $form->editor('laboratoryInspection'  , '实验室检查');
+                        $form->editor('etiology'              , '病因');
+                        $form->editor('auxiliaryExamination'  , '其他辅助检查');
+                        $form->editor('prognosis'             , '预后');
+                        $form->editor('complicationsOverview' , '并发症概述');
+                        $form->editor('precaution'            , '预防');
+                    });
+                    break;
+                case 'Medicine';
+                    return Admin::form(Xyzsk::class, function (Form $form) {
+                        $form->text('name'                     , '名称');
+                        $form->text('pinyi'                    , '汉语拼音');
+                        $form->text('oldUse'                   , '老人用药');
+                        $form->text('chilldUse'                , '儿童用药');
+                        $form->text('medicinePregnant'         , '孕妇及哺乳期妇女用药');
+                        $form->text('usageDosage'              , '用法用量');
+                        $form->text('notes'                    , '注意事项');
+                        $form->text('periodValidity'           , '有效期');
+                        $form->text('indication'               , '适应症');
+                        $form->text('storage'                  , '贮藏');
+                        $form->text('character'                , '性状');
+                        $form->text('contraindication'         , '禁忌');
+                        $form->text('pharmacologyToxicology'   , '药理毒理');
+                        $form->text('specification'            , '规格');
+                        $form->text('approvalNumber'           , '批准号');
+                        $form->text('productionEnterprise'     , '生产企业');
+                        $form->text('relateSick'               , '相关疾病');
+                        $form->text('untowardEffect'           , '不良反应');
+                        $form->text('majorConstituent'         , '主要成分');
+                    });
+                    break;
+                case 'Inspection':
+                    return Admin::form(Xyzsk::class, function (Form $form) {
+                        $form->text('name'                   , '名称');
+                        $form->text('annotation'             , '附注');
+                        $form->text('principle'              , '原理');
+                        $form->text('normalValue'            , '正常值');
+                        $form->text('clinicalSignificance'   , '临床意义');
+                        $form->text('reagent'                , '试剂');
+                        $form->text('operation'              , '操作方法');
+                    });
+                    break;
+                case 'Document';
+                    return Admin::form(Xyzsk::class, function (Form $form) {
+                        $form->text('abstract' , '摘要');
+                        $form->text('year'     , '年份');
+                    });
+                    break;
+                case 'Guide';
+                    return Admin::form(Xyzsk::class, function (Form $form) {
+                        $form->text('name'         , '名称');
+                        //$form->text('enTitle'      , '英文标题');
+                        $form->textarea('abstract'     , '摘要');
+                        $form->textarea('source'       , '数据来源');
+                        $form->textarea('constitutor'  , '制定者');
+                        $form->text('year'         , '年份');
+                    });
+                    break;
+                case 'Symptom':
+                    return Admin::form(Xyzsk::class, function (Form $form) {
+                        $form->text('name'        , '名称');
+                        $form->text('identify'    , '识别');
+                        $form->text('abstract'    , '摘要');
+                        $form->text('precaution'  , '预防措施');
+                        $form->text('inspection'  , '检查');
+                        $form->text('etiology'    , '病理');
+                    });
+                    break;
+
+            }
+
+        } else {
+            if(stripos($url = $_SERVER['HTTP_REFERER'] , 'label') !== false) {
+                $urlDeail = parse_url($url);
+                $query    = $urlDeail['query'];
+                $queryArr = explode('=', $query);
+                $label    = $queryArr[1];
+
+
+                return Admin::form(Xyzsk::class, function (Form $form) use ($label) {
+                    $form->select('label' , '标签')->options([$label => $label])->required();
+                    switch ($label) {
+                        case 'SickNess':
+                            $form->text('name'                 , '名称');
+                            $form->text('alias'                , '疾病别名');
+                            $form->text('ICD10'                , 'ICD10');
+                            $form->text('department'           , '疾病类别');
+                            $form->editor('introduction'         , '疾病概述');
+                            $form->editor('epidemiology'         , '流行病学');
+                            $form->editor('suitableFood'         , '宜吃食物');
+                            $form->editor('notEat'               , '忌吃食物');
+                            $form->editor('diagnostiCtriage'     , '诊断鉴别');
+                            $form->editor('precaution'           , '预防');
+                            $form->editor('nursingInfo'          , '护理信息');
+                            $form->editor('warmPrompt'           , '温馨提示');
+                            $form->editor('recommendedRecipe'    , '推荐食谱');
+                            $form->editor('treatmentOverview'    , '治疗概述');
+                            $form->editor('pathogenesis'         , '病因');
+                            $form->editor('basicKnowledgel'      , '基本常识');
+                            $form->editor('dietHealth'           , '饮食保健');
+                            $form->editor('symptom'              , '证型');
+                            $form->editor('complicationsOverview', '并发症概述');
+                            $form->editor('treatmentInfo'        , '治疗信息');
+                            break;
+                        case 'Disease':
+                            $form->text('name'             , '名称');
+                            $form->text('nameEn'           , '英文名称');
+                            $form->text('alias'            , '疾病别名');
+                            $form->text('icd'              , 'ICD号');
+                            $form->text('department'       , '疾病类别');
+                            $form->editor('sickOverview'          , '疾病概述');
+                            $form->editor('epidemiology'          ,  '流行病学');
+                            $form->editor('clinicalFeature'       , '临床表现');
+                            $form->editor('diagnosis'             , '诊断');
+                            $form->editor('treatment'             , '治疗');
+                            $form->editor('pathogenesis'          , '发病机制');
+                            $form->editor('inspection'            , '相关检查');
+                            $form->editor('laboratoryInspection'  , '实验室检查');
+                            $form->editor('etiology'              , '病因');
+                            $form->editor('auxiliaryExamination'  , '其他辅助检查');
+                            $form->editor('prognosis'             , '预后');
+                            $form->editor('complicationsOverview' , '并发症概述');
+                            $form->editor('precaution'            , '预防');
+                            break;
+                        case 'Medicine':
+                            $form->text('name'                     , '名称');
+                            $form->text('pinyi'                    , '汉语拼音');
+                            $form->text('oldUse'                   , '老人用药');
+                            $form->text('chilldUse'                , '儿童用药');
+                            $form->text('medicinePregnant'         , '孕妇及哺乳期妇女用药');
+                            $form->text('usageDosage'              , '用法用量');
+                            $form->text('notes'                    , '注意事项');
+                            $form->text('periodValidity'           , '有效期');
+                            $form->text('indication'               , '适应症');
+                            $form->text('storage'                  , '贮藏');
+                            $form->text('character'                , '性状');
+                            $form->text('contraindication'         , '禁忌');
+                            $form->text('pharmacologyToxicology'   , '药理毒理');
+                            $form->text('specification'            , '规格');
+                            $form->text('approvalNumber'           , '批准号');
+                            $form->text('productionEnterprise'     , '生产企业');
+                            $form->text('relateSick'               , '相关疾病');
+                            $form->text('untowardEffect'           , '不良反应');
+                            $form->text('majorConstituent'         , '主要成分');
+                            break;
+                        case 'Inspection':
+                            $form->text('name'                   , '名称');
+                            $form->text('annotation'             , '附注');
+                            $form->text('principle'              , '原理');
+                            $form->text('normalValue'            , '正常值');
+                            $form->text('clinicalSignificance'   , '临床意义');
+                            $form->text('reagent'                , '试剂');
+                            $form->text('operation'              , '操作方法');
+                            break;
+                        case 'Document':
+                            $form->text('abstract' , '摘要');
+                            $form->text('year'     , '年份');
+                            break;
+                        case 'Guide':
+                            $form->text('name'         , '名称');
+                            $form->text('enTitle'      , '英文标题');
+                            $form->text('abstract'     , '摘要');
+                            $form->text('source'       , '数据来源');
+                            $form->text('constitutor'  , '制定者');
+                            $form->text('year'         , '年份');
+                            break;
+                        case 'Symptom':
+                            $form->text('name'        , '名称');
+                            $form->text('identify'    , '识别');
+                            $form->text('abstract'    , '摘要');
+                            $form->text('precaution'  , '预防措施');
+                            $form->text('inspection'  , '检查');
+                            $form->text('etiology'    , '病理');
+                            break;
+                    }
+                });
+            }
+        }
+
+    }
+
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(Xyzsk::class, function (Grid $grid) {
+            $label = request('label') ?? 'SickNess';
+            //$grid->id('Id')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->name('名称')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            switch ($label) {
+                case 'SickNess':
+                    $grid->alias('疾病别名')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->ICD10('ICD10')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->department('疾病类别')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Disease':
+                    $grid->alias('疾病别名')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->icd('icd')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->department('疾病类别')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Medicine':
+                    $grid->pinyi('汉语拼音')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->indication('适应症')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->majorConstituent('主要成分')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Inspection':
+                    $grid->overview('概述')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->annotation('附注')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->operation('操作方法')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Document':
+                    $grid->abstract('摘要')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->year('年份')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Guide':
+                    $grid->enTitle('英文标题')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    $grid->year('年份')->setAttributes(['style' => 'font-family:PMingLiU;']);
+                    break;
+                case 'Symptom':
+                    $grid->identify('识别');
+                    $grid->abstract('摘要');
+                    $grid->precaution('预防措施');
+                    $grid->inspection('检查');
+                    $grid->etiology('病理');
+                    break;
+            }
+
+            $grid->dateModified('日期')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            //$grid->classification();
+
+            $grid->paginate(20);
+            //$grid->disableCreateButton();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                // $actions->disableView();
+                // $actions->disableEdit();
+                $actions->disableDelete();
+                //$actions->add(new Update());
+                //dd($actions->row);
+            });
+
+            $grid->disableExport();
+
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+        });
+    }
+}

+ 86 - 0
app/Admin/Controllers/ZhAcupointController.php

@@ -0,0 +1,86 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ZhAcupoint;
+use App\Model\ZhCnMedicinalCrop;
+use App\Model\ZhSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ZhAcupointController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('穴位');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('穴位');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('穴位');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(ZhAcupoint::class, function (Form $form) {
+            $form->text('channelCollateral');
+            $form->text('name');
+            $form->text('location');
+            $form->text('indications');
+            $form->text('compatibility');
+            $form->text('acupuncture');
+            $form->text('notions');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(ZhAcupoint::class, function (Grid $grid) {
+            $grid->channelCollateral('经络');
+            $grid->name('穴位');
+            $grid->location('定位');
+            $grid->indications('主治');
+            $grid->compatibility('经筋循行及其病候');
+            $grid->clinicalFeature('配伍');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+
+        });
+    }
+}
+

+ 90 - 0
app/Admin/Controllers/ZhChannelCollateralController.php

@@ -0,0 +1,90 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ZhChannelCollateral;
+use App\Model\ZhCnMedicinalCrop;
+use App\Model\ZhSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ZhChannelCollateralController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('经络');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('经络');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('经络');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(ZhChannelCollateral::class, function (Form $form) {
+            $form->text('name'              , '名称');
+            $form->text('indications'       , '主治');
+            $form->text('channelSymptom'    , '经脉循行及其病候');
+            $form->text('collateralSymptom' , '络脉循行及其病候');
+            $form->text('divergentMeridian' , '经别循行');
+            $form->text('aponeuroticSystem' , '经筋循行及其病候');
+            $form->text('clinicalFeature'   , '经络症状主要临床表现');
+            $form->text('mechanismAnalysis' , '经络病机分析');
+            $form->text('source'            , '数据来源');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(ZhChannelCollateral::class, function (Grid $grid) {
+            $grid->indications('主治');
+            $grid->channelSymptom('经脉循行及其病候');
+            $grid->collateralSymptom('络脉循行及其病候');
+            $grid->divergentMeridian('经别循行');
+            $grid->aponeuroticSystem('经筋循行及其病候');
+            $grid->clinicalFeature('经络症状主要临床表现');
+            $grid->mechanismAnalysis('经络病机分析');
+            $grid->source('数据来源');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+
+        });
+    }
+}
+

+ 83 - 0
app/Admin/Controllers/ZhCnMedicinalCropController.php

@@ -0,0 +1,83 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ZhCnMedicinalCrop;
+use App\Model\ZhSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ZhCnMedicinalCropController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('中药');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('中药');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('中药');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(ZhCnMedicinalCrop::class, function (Form $form) {
+            $form->text('name');
+            $form->text('toxicity');
+            $form->text('indications');
+            $form->text('source');
+            $form->text('pageRankScore');
+            $form->text('pharmacology');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(ZhCnMedicinalCrop::class, function (Grid $grid) {
+            $grid->toxicity('毒性')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->indications('适应症')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->source('来源')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->pageRankScore()->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->pharmacology('药理')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+
+        });
+    }
+}
+

+ 84 - 0
app/Admin/Controllers/ZhPrescriptionController.php

@@ -0,0 +1,84 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ZhPrescription;
+use App\Model\ZhSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ZhPrescriptionController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('方剂');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('方剂');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('方剂');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(ZhPrescription::class, function (Form $form) {
+            $form->text('name');
+            $form->text('composition');
+            $form->text('medicinalCrop');
+            $form->text('indications');
+            $form->text('usageDosage');
+            $form->text('solution');
+            $form->text('source');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(ZhPrescription::class, function (Grid $grid) {
+            $grid->name('方剂名称')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->composition('方剂组成')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->source('来源')->setAttributes(['style' => 'font-family:PMingLiU;']);
+
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+
+        });
+    }
+}
+
+

+ 95 - 0
app/Admin/Controllers/ZhSickNessController.php

@@ -0,0 +1,95 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ZhSickNess;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ZhSickNessController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('疾病');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('疾病');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(ZhSickNess::class, function (Form $form) {
+            $form->display('id' , 'Id');
+            $form->text('name'  , '名称');
+            $form->text('department' , '科室');
+            $form->text('apparatus'  , '器官');
+            $form->text('tongueCondition' , '舌象');
+            $form->text('symptom' , '症状');
+            $form->text('therapeuticMethod' , '治法');
+            $form->text('source' , '来源');
+            $form->text('pulseCondition' , '脉象');
+            $form->text('dietTherapy' , '食物治疗');
+            $form->text('acupuncturePoints' , '穴位');
+            $form->text('pageRankScore');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(ZhSickNess::class, function (Grid $grid) {
+            //$grid->id('序号')->sortable();
+            $grid->department('所属科室')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->apparatus('器官')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->tongueCondition('舌象')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->symptom('症状')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->therapeuticMethod('治法')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->source('来源')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->pulseCondition('脉象')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->dietTherapy('食物治疗')->setAttributes(['style' => 'font-family:PMingLiU;']);
+            $grid->acupuncturePoints('穴位')->setAttributes(['style' => 'font-family:PMingLiU;']);
+//            $grid->created_at('创建时间');
+//            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+
+        });
+    }
+}
+

+ 81 - 0
app/Admin/Controllers/ZhzyxdyaController.php

@@ -0,0 +1,81 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ZhCnMedicinalCrop;
+use App\Model\ZhSickNess;
+use App\Model\Zhzyxdya;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ZhzyxdyaController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('现代医案');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('现代医案');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('现代医案');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(Zhzyxdya::class, function (Form $form) {
+            $form->text('name');
+            $form->text('provenance');
+            $form->text('keyword');
+            $form->text('content');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(Zhzyxdya::class, function (Grid $grid) {
+            $grid->id('ID');
+            $grid->name('医家');
+            $grid->provenance('出处');
+            $grid->keyword('关键词');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+                $filter->like('name' , '输入搜索名称');
+            });
+
+        });
+    }
+}
+

+ 78 - 0
app/Admin/Controllers/ZskMenuController.php

@@ -0,0 +1,78 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\Menu;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+
+class ZskMenuController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('前台菜单');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('前台菜单');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('前台菜单');
+            $content->description();
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id='')
+    {
+        return Admin::form(Menu::class, function (Form $form) {
+            $form->display('id'      , '序号');
+            $form->text('menu_name'  , '菜单名称');
+            $form->text('path'       , '页面路径');
+        });
+    }
+
+    protected function grid()
+    {
+        return Admin::grid(Menu::class, function (Grid $grid) {
+            $grid->id('序号')->sortable();
+            //$grid->model()->orderBy('id','desc');
+            $grid->menu_name('菜单名称');
+            $grid->path('页面路径');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+            $grid->paginate(20);
+
+            //$grid->disableCreateButton();
+            $grid->disableExport();
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            // 条件过滤
+            $grid->filter(function ($filter) {
+                $filter->disableIdFilter();
+            });
+
+        });
+    }
+}

+ 79 - 0
app/Admin/Controllers/ZskWordsController.php

@@ -0,0 +1,79 @@
+<?php
+namespace App\Admin\Controllers;
+
+use App\Http\Controllers\Controller;
+use App\Model\ZskWords;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Layout\Content;
+use Encore\Admin\Controllers\ModelForm;
+use function Clue\StreamFilter\fun;
+
+class ZskWordsController extends Controller
+{
+    use ModelForm;
+    public function index()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('知识库词汇删除');
+            $content->description('列表');
+            $content->body($this->grid());
+        });
+    }
+
+    public function create()
+    {
+        return Admin::content(function (Content $content) {
+            $content->header('知识库词汇删除');
+            $content->description('新增');
+            $content->body($this->form());
+        });
+    }
+
+    public function edit($id)
+    {
+        return Admin::content(function (Content $content) use ($id) {
+            $content->header('知识库词汇删除');
+            $content->description('列表');
+            $content->body($this->form($id)->edit($id));
+        });
+    }
+
+    protected function form($id = '')
+    {
+        return Admin::form(ZskWords::class, function (Form $form) {
+            $form->display('id'       , '序号');
+            $form->text('words'       , '词汇')->required();
+        });
+    }
+
+    // Grid
+    protected function grid()
+    {
+        return Admin::grid(ZskWords::class, function (Grid $grid) {
+            $grid->id('编号')->sortable();
+            $grid->words('词汇');
+            $grid->created_at('创建时间');
+            $grid->updated_at('更新时间');
+
+            // 禁用导出数据按钮
+            $grid->actions(function ($actions) {
+                $actions->disableView();
+                //$actions->disableEdit();
+            });
+
+            $grid->disableCreateButton();
+            $grid->filter(function($filter){
+
+                // 去掉默认的id过滤器
+                $filter->disableIdFilter();
+
+                // 在这里添加字段过滤器
+                //$filter->equal('tag' , '选择分类')->select([1 => '幼儿' , 2 => '老年人']);
+            });
+
+
+        });
+    }
+}

+ 20 - 0
app/Admin/bootstrap.php

@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Laravel-admin - admin builder based on Laravel.
+ * @author z-song <https://github.com/z-song>
+ *
+ * Bootstraper for Admin.
+ *
+ * Here you can remove builtin form field:
+ * Encore\Admin\Form::forget(['map', 'editor']);
+ *
+ * Or extend custom form field:
+ * Encore\Admin\Form::extend('php', PHPEditor::class);
+ *
+ * Or require js and css assets:
+ * Admin::css('/packages/prettydocs/css/styles.css');
+ * Admin::js('/packages/prettydocs/js/main.js');
+ *
+ */
+//Encore\Admin\Form::forget(['map', 'editor']);

+ 105 - 0
app/Admin/routes.php

@@ -0,0 +1,105 @@
+<?php
+
+use Illuminate\Routing\Router;
+use App\Admin\Controllers\MedicalCalculatorController;
+
+use Encore\Admin\Facades\Admin;
+use Illuminate\Support\Facades\Route;
+
+Admin::routes();
+
+Route::group([
+    'prefix'        => config('admin.route.prefix'),
+    'namespace'     => config('admin.route.namespace'),
+    'middleware'    => config('admin.route.middleware'),
+    'as'            => config('admin.route.prefix') . '.',
+], function (Router $router) {
+    $router->get('/', 'HomeController@index')->name('home');
+    
+    // 医学计算器路由
+    $router->get('api/medical-calculators', 'MedicalCalculatorController@getAllCalculators');//获取所有计算器
+    $router->resource('medical-calculators', MedicalCalculatorController::class);//创建计算器
+    $router->get('medical-calculators/{id}/questions', [MedicalCalculatorController::class, 'getQuestions']);//获取计算器问题
+    $router->post('medical-calculators/{id}/calculate', [MedicalCalculatorController::class, 'calculate']);//计算
+    $router->get('medical-calculators', 'MedicalCalculatorController@index');//获取计算器列表
+    $router->post('medical-calculators', 'MedicalCalculatorController@create');//创建计算器
+    $router->get('medical-calculators/{id}', 'MedicalCalculatorController@show');//获取计算器详情
+    $router->put('medical-calculators/{id}', 'MedicalCalculatorController@update');//更新计算器
+    $router->delete('medical-calculators/{id}', 'MedicalCalculatorController@destroy');//删除计算器
+    $router->resource('test'             , 'TestController');
+    $router->resource('illness'          , 'IllnessController');
+    $router->resource('category'         , 'CategoryController');
+    $router->resource('neo4j'            , 'TestController');
+    $router->resource('neo4jxy'          , 'XyzskController');
+    $router->resource('users'            , 'UserController');
+    $router->resource('video'            , 'VideoController');
+    $router->resource('cdss'             , 'CdssController');
+    $router->resource('cdss_select'      , 'CdssSelectController');
+    $router->resource('text_label'       , 'TextLabelController');
+    $router->resource('zskmenu'          , 'ZskMenuController');
+    $router->resource('cdss_advisory'    , 'CdssAdvisoryController');
+    $router->resource('jmjksystem'       , 'SystemController');
+    $router->resource('diagnosis'        ,  'DiagnosisController');
+    $router->resource('relationship'     , 'RelationshipController');
+    $router->resource('symptom'          , 'SymptomController');
+    $router->resource('ly_symptom'       , 'LySymptomController');
+    $router->resource('ly_symptom_log'   , 'LySymptomLogController');
+    $router->resource('bz_symptom_log'   , 'BzSymptomLogController');
+    $router->resource('jm_ocr'           , 'JmOcrController');
+    $router->resource('ly_admin'         , 'RegisterDepartment');
+    $router->resource('diseasekeyword'   , 'DiseasesKeywordController');
+    $router->resource('zskwords'         , 'ZskWordsController');
+    $router->resource('disease-properties-category'  , 'DiseaseCategoryPropertiesController');
+    $router->resource('disease-properties'           , 'DiseasePropertiesController');
+    $router->resource('get-guide'                    , 'GetGuideController');
+    $router->resource('xy-zsk-disease'               , 'XyZskDiseaseController');
+    $router->resource('xy-zsk-sickness'              , 'XyZskSicknessController');
+    $router->resource('xy-essentialDrugs'              , 'XyEssentialDrugsController');
+    $router->resource('xy-DrugOverdose'              , 'XyDrugOverdoseController');
+    $router->resource('xy-DrugAnswers'               , 'XyDrugAnswersController');
+    $router->resource('xy-MedicalInsuranceDrugEn'    , 'XyMedicalInsuranceDrugEnController');
+    $router->resource('xy-zsk-inspection'            , 'XyZskInspectionController');
+    $router->resource('xy-zsk-medicine'              , 'XyZskMedicineController');
+    $router->resource('guide-keyword'                , 'GuideKeywordController');
+    $router->resource('cdss-xy-disease'              , 'CdssXyDiseaseController'); // cdss西医疾病
+    $router->resource('knowledge-rules'              , 'KnowledgeRuleController');  // 检查检验规则
+    $router->resource('medical-calculators'          , 'MedicalCalculatorController');//医学计算器
+    
+
+    //中医
+    $router->resource('zh-SickNess'              , 'ZhSickNessController');//疾病
+    $router->resource('zh-CnMedicinalCrop'              , 'ZhCnMedicinalCropController');//中药
+    $router->resource('zh-Prescription'              , 'ZhPrescriptionController');//方剂
+    $router->resource('zh-ChannelCollateral'              , 'ZhChannelCollateralController');//经络
+    $router->resource('zh-Acupoint'              , 'ZhAcupointController');//穴位
+    $router->resource('zh-zyxdya'              , 'ZhzyxdyaController');//现代医案
+    /**
+     * chatGpt相关展示列表  20230416
+     */
+    $router->resource('chatgpt-order'                , 'ChatgptOrderController');           // chatGpt充值订单
+    $router->resource('chatgpt-use-record'           , 'UserChatgptUseRecordController');   // chatGpt用户使用记录
+    $router->resource('chatgpt-recharge'             , 'ChatgptRechargeController');        // chatGpt充值类型
+
+    /**
+     * 智能问答
+     */
+    $router->resource('question-list'           , 'QuestionController');         // 问题列表
+    $router->resource('question-detail'         , 'QuestionDetailController');   // 问题详情
+    $router->resource('question-history'        , 'QuestionHistoryController');  // 问题记录
+    $router->resource('translate-history'       , 'TranslateRecordController');  // 翻译记录
+
+    /**
+     * 人力资源问答
+     */
+    $router->resource('qw-department-list'  , 'QwDepartmentController');    // 问答部门列表
+    $router->resource('qw-category-list'    , 'QwCategoryController');      // 问答类别列表
+    $router->resource('qw-list'             , 'QwController');              // 问答列表
+    $router->resource('qw-sub-list'         , 'QwSubController');           // 问答子列表
+    $router->resource('qw-hisroy-list'      , 'QwHistoryController');       // 问答历史记录
+    $router->get('ll'                         , 'QwCategoryController@ll');      // 问答分类选项联动
+    $router->get('ll'                         , 'QwController@ll');              // 问答选项联动
+    
+    
+});
+
+

+ 42 - 0
app/Console/Kernel.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace App\Console;
+
+use Illuminate\Console\Scheduling\Schedule;
+use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
+
+class Kernel extends ConsoleKernel
+{
+    /**
+     * The Artisan commands provided by your application.
+     *
+     * @var array
+     */
+    protected $commands = [
+        //
+    ];
+
+    /**
+     * Define the application's command schedule.
+     *
+     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
+     * @return void
+     */
+    protected function schedule(Schedule $schedule)
+    {
+        // $schedule->command('inspire')
+        //          ->hourly();
+    }
+
+    /**
+     * Register the commands for the application.
+     *
+     * @return void
+     */
+    protected function commands()
+    {
+        $this->load(__DIR__.'/Commands');
+
+        require base_path('routes/console.php');
+    }
+}

+ 51 - 0
app/Exceptions/Handler.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace App\Exceptions;
+
+use Exception;
+use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
+
+class Handler extends ExceptionHandler
+{
+    /**
+     * A list of the exception types that are not reported.
+     *
+     * @var array
+     */
+    protected $dontReport = [
+        //
+    ];
+
+    /**
+     * A list of the inputs that are never flashed for validation exceptions.
+     *
+     * @var array
+     */
+    protected $dontFlash = [
+        'password',
+        'password_confirmation',
+    ];
+
+    /**
+     * Report or log an exception.
+     *
+     * @param  \Exception  $exception
+     * @return void
+     */
+    public function report(Exception $exception)
+    {
+        parent::report($exception);
+    }
+
+    /**
+     * Render an exception into an HTTP response.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Exception  $exception
+     * @return \Illuminate\Http\Response
+     */
+    public function render($request, Exception $exception)
+    {
+        return parent::render($request, $exception);
+    }
+}

+ 32 - 0
app/Http/Controllers/Auth/ForgotPasswordController.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
+
+class ForgotPasswordController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Password Reset Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password reset emails and
+    | includes a trait which assists in sending these notifications from
+    | your application to your users. Feel free to explore this trait.
+    |
+    */
+
+    use SendsPasswordResetEmails;
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest');
+    }
+}

+ 39 - 0
app/Http/Controllers/Auth/LoginController.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\AuthenticatesUsers;
+
+class LoginController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Login Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller handles authenticating users for the application and
+    | redirecting them to your home screen. The controller uses a trait
+    | to conveniently provide its functionality to your applications.
+    |
+    */
+
+    use AuthenticatesUsers;
+
+    /**
+     * Where to redirect users after login.
+     *
+     * @var string
+     */
+    protected $redirectTo = '/home';
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest')->except('logout');
+    }
+}

+ 72 - 0
app/Http/Controllers/Auth/RegisterController.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\User;
+use App\Http\Controllers\Controller;
+use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Validator;
+use Illuminate\Foundation\Auth\RegistersUsers;
+
+class RegisterController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Register Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller handles the registration of new users as well as their
+    | validation and creation. By default this controller uses a trait to
+    | provide this functionality without requiring any additional code.
+    |
+    */
+
+    use RegistersUsers;
+
+    /**
+     * Where to redirect users after registration.
+     *
+     * @var string
+     */
+    protected $redirectTo = '/home';
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest');
+    }
+
+    /**
+     * Get a validator for an incoming registration request.
+     *
+     * @param  array  $data
+     * @return \Illuminate\Contracts\Validation\Validator
+     */
+    protected function validator(array $data)
+    {
+        return Validator::make($data, [
+            'name' => ['required', 'string', 'max:255'],
+            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
+            'password' => ['required', 'string', 'min:8', 'confirmed'],
+        ]);
+    }
+
+    /**
+     * Create a new user instance after a valid registration.
+     *
+     * @param  array  $data
+     * @return \App\User
+     */
+    protected function create(array $data)
+    {
+        return User::create([
+            'name' => $data['name'],
+            'email' => $data['email'],
+            'password' => Hash::make($data['password']),
+        ]);
+    }
+}

+ 39 - 0
app/Http/Controllers/Auth/ResetPasswordController.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\ResetsPasswords;
+
+class ResetPasswordController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Password Reset Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password reset requests
+    | and uses a simple trait to include this behavior. You're free to
+    | explore this trait and override any methods you wish to tweak.
+    |
+    */
+
+    use ResetsPasswords;
+
+    /**
+     * Where to redirect users after resetting their password.
+     *
+     * @var string
+     */
+    protected $redirectTo = '/home';
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest');
+    }
+}

+ 41 - 0
app/Http/Controllers/Auth/VerificationController.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\VerifiesEmails;
+
+class VerificationController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Email Verification Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling email verification for any
+    | user that recently registered with the application. Emails may also
+    | be re-sent if the user didn't receive the original email message.
+    |
+    */
+
+    use VerifiesEmails;
+
+    /**
+     * Where to redirect users after verification.
+     *
+     * @var string
+     */
+    protected $redirectTo = '/home';
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('auth');
+        $this->middleware('signed')->only('verify');
+        $this->middleware('throttle:6,1')->only('verify', 'resend');
+    }
+}

+ 13 - 0
app/Http/Controllers/Controller.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Foundation\Bus\DispatchesJobs;
+use Illuminate\Routing\Controller as BaseController;
+use Illuminate\Foundation\Validation\ValidatesRequests;
+use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
+
+class Controller extends BaseController
+{
+    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
+}

+ 39 - 0
app/Http/Controllers/Neo4jController.php

@@ -0,0 +1,39 @@
+<?php
+namespace App\Http\Controllers;
+
+require base_path('vendor/autoload.php');
+use GraphAware\Neo4j\Client\ClientBuilder;
+
+class Neo4jController extends Controller
+{
+
+    private $client;
+
+    public function index()
+    {
+        $client =  ClientBuilder::create()
+            //->addConnection('default', 'http://neo4j:jm@123@59.110.24.172:7474')
+            ->addConnection('bolt', 'bolt://neo4j:jm@123@59.110.24.172:7687')
+            ->build();
+        return $client;
+    }
+
+    public function test()
+    {
+        $client = $this->index();
+        $query = 'MATCH (n:codes)
+RETURN n.address as addr, n.name as name , n, collect(id(n)) as ids
+LIMIT 5';
+        $test = $client->run($query);
+        foreach ($test->getRecords() as $record)
+        {
+            $array[]['name'] = $record->value('name');
+            foreach ($array as $key => $value) {
+                $array[$key]['name'] = $value['name'];
+                $array[$key]['addr'] = $record->value('addr');
+            }
+        }
+        return json_encode(['result' => $array]);
+    }
+
+}

+ 34 - 0
app/Http/Controllers/TestRoleController.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Route;
+
+
+class TestRoleController extends Controller
+{
+
+    public function index()
+    {
+        $arr  = [1,2,3,4];
+        $arr1 = [1,2,3,4,5,6,7];
+        return array_intersect($arr , $arr1) ? 1 : 2;
+    }
+
+    public function test()
+    {
+        return Route::getCurrentRoute()->uri;
+    }
+
+    public function testOne()
+    {
+        return Route::getCurrentRoute()->uri;
+    }
+
+
+    public function testTwo()
+    {
+        return Route::getCurrentRoute()->uri;
+    }
+}

+ 80 - 0
app/Http/Kernel.php

@@ -0,0 +1,80 @@
+<?php
+
+namespace App\Http;
+
+use Illuminate\Foundation\Http\Kernel as HttpKernel;
+
+class Kernel extends HttpKernel
+{
+    /**
+     * The application's global HTTP middleware stack.
+     *
+     * These middleware are run during every request to your application.
+     *
+     * @var array
+     */
+    protected $middleware = [
+        \App\Http\Middleware\TrustProxies::class,
+        \App\Http\Middleware\CheckForMaintenanceMode::class,
+        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
+        \App\Http\Middleware\TrimStrings::class,
+        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+    ];
+
+    /**
+     * The application's route middleware groups.
+     *
+     * @var array
+     */
+    protected $middlewareGroups = [
+        'web' => [
+            \App\Http\Middleware\EncryptCookies::class,
+            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+            \Illuminate\Session\Middleware\StartSession::class,
+            // \Illuminate\Session\Middleware\AuthenticateSession::class,
+            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+            \App\Http\Middleware\VerifyCsrfToken::class,
+            \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        ],
+
+        'api' => [
+            'throttle:60,1',
+            'bindings',
+        ],
+    ];
+
+    /**
+     * The application's route middleware.
+     *
+     * These middleware may be assigned to groups or used individually.
+     *
+     * @var array
+     */
+    protected $routeMiddleware = [
+        'auth' => \App\Http\Middleware\Authenticate::class,
+        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+        'can' => \Illuminate\Auth\Middleware\Authorize::class,
+        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
+        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
+    ];
+
+    /**
+     * The priority-sorted list of middleware.
+     *
+     * This forces non-global middleware to always be in the given order.
+     *
+     * @var array
+     */
+    protected $middlewarePriority = [
+        \Illuminate\Session\Middleware\StartSession::class,
+        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+        \App\Http\Middleware\Authenticate::class,
+        \Illuminate\Session\Middleware\AuthenticateSession::class,
+        \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        \Illuminate\Auth\Middleware\Authorize::class,
+    ];
+}

+ 21 - 0
app/Http/Middleware/Authenticate.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Auth\Middleware\Authenticate as Middleware;
+
+class Authenticate extends Middleware
+{
+    /**
+     * Get the path the user should be redirected to when they are not authenticated.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return string
+     */
+    protected function redirectTo($request)
+    {
+        if (! $request->expectsJson()) {
+            return route('login');
+        }
+    }
+}

+ 29 - 0
app/Http/Middleware/Check.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+
+
+class Check
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Closure  $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+//        $arr      = ['/app/index' , '/app/test'];
+//        $route    = $request->route()->uri;             //
+//        $routeArr = explode('/' , $route);
+//        $str      = '/' . $routeArr[0] . '/' . $routeArr[1];
+//
+//        if(!in_array($str , $arr)) {
+//            return response(['code' => 403 , 'message' => '暂无权限查看' , 'data' => null]);
+//        }
+        return $next($request);
+    }
+}

+ 17 - 0
app/Http/Middleware/CheckForMaintenanceMode.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware;
+
+class CheckForMaintenanceMode extends Middleware
+{
+    /**
+     * The URIs that should be reachable while maintenance mode is enabled.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}

+ 17 - 0
app/Http/Middleware/EncryptCookies.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
+
+class EncryptCookies extends Middleware
+{
+    /**
+     * The names of the cookies that should not be encrypted.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}

+ 26 - 0
app/Http/Middleware/RedirectIfAuthenticated.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\Auth;
+
+class RedirectIfAuthenticated
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Closure  $next
+     * @param  string|null  $guard
+     * @return mixed
+     */
+    public function handle($request, Closure $next, $guard = null)
+    {
+        if (Auth::guard($guard)->check()) {
+            return redirect('/home');
+        }
+
+        return $next($request);
+    }
+}

+ 27 - 0
app/Http/Middleware/RolePermissionsCheck.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\Route;
+use Illuminate\Support\Facades\Auth;
+
+class RolePermissionsCheck
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Closure  $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+//        $arr   = ['v/app/index'];
+//        $route = $request->route()->getDomain();
+////        if(!in_array($route , $arr)) {
+////            return 'Not Permission!';
+////        }
+        return $next($request);
+    }
+}

+ 18 - 0
app/Http/Middleware/TrimStrings.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
+
+class TrimStrings extends Middleware
+{
+    /**
+     * The names of the attributes that should not be trimmed.
+     *
+     * @var array
+     */
+    protected $except = [
+        'password',
+        'password_confirmation',
+    ];
+}

+ 23 - 0
app/Http/Middleware/TrustProxies.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Http\Request;
+use Fideloper\Proxy\TrustProxies as Middleware;
+
+class TrustProxies extends Middleware
+{
+    /**
+     * The trusted proxies for this application.
+     *
+     * @var array|string
+     */
+    protected $proxies;
+
+    /**
+     * The headers that should be used to detect proxies.
+     *
+     * @var int
+     */
+    protected $headers = Request::HEADER_X_FORWARDED_ALL;
+}

+ 24 - 0
app/Http/Middleware/VerifyCsrfToken.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
+
+class VerifyCsrfToken extends Middleware
+{
+    /**
+     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
+     *
+     * @var bool
+     */
+    protected $addHttpCookie = true;
+
+    /**
+     * The URIs that should be excluded from CSRF verification.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}

+ 11 - 0
app/Model/BzSymptomLog.php

@@ -0,0 +1,11 @@
+<?php
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class BzSymptomLog extends Model
+{
+    public $table = "bz_symptom_log";
+
+}
+

+ 66 - 0
app/Model/Category.php

@@ -0,0 +1,66 @@
+<?php
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+use Encore\Admin\Traits\AdminBuilder;
+use Encore\Admin\Traits\ModelTree;
+
+class Category extends Model
+{
+    use ModelTree,AdminBuilder;
+
+    public $table       = "jm_category";
+    protected $fillable = ['parent_id' , 'category_name' , 'id'];
+
+
+    // 展示树状调用
+    public function __construct(array $attributes = [])
+    {
+        parent::__construct($attributes);
+        $this->setParentColumn('parent_id');
+        $this->setOrderColumn( 'id');
+        $this->setTitleColumn( 'category_name');
+    }
+
+
+    // 获取分类名称
+    public static function getCategoryName($parent_id)
+    {
+        $category = self::find($parent_id);
+        return $category->category_name;
+    }
+
+
+    public static function getCategory()
+    {
+        return self::getTree(self::all() , 0, 0);
+    }
+
+
+    public static function getTree($arr , $pid , $step)
+    {
+        global $tree;
+        //$arr = self::all();
+        if($arr->isEmpty()) {
+            return [];
+        } else {
+            foreach ($arr as $key => $val) {
+                if ($val['parent_id'] == $pid) {
+                    $flg = str_repeat('└-', $step);
+                    $val['category_name'] = $flg . $val['category_name'];
+                    $tree[] = $val;
+                    self::getTree($arr , $val['id'], $step + 1);
+                }
+            }
+
+            if(empty($tree)) return [0 => '1级'];
+            $selectOption = [];
+            foreach ($tree as $option) {
+                $selectOption[$option->id] = $option->category_name;
+            }
+            $selectOption[0] = 'Root';
+            return $selectOption;
+        }
+    }
+
+}

+ 17 - 0
app/Model/Cdss.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class Cdss extends Model
+{
+    public $table    = "jm_cdss";
+    private $options = [ 1 => '全身症状' , 2 => '皮肤黏膜' , 3 => '面部五官' , 4 => '神经系统' , 5 => '呼吸系统' , 6 => '运动系统'];
+
+
+    public function getCategoryAttribute($value)
+    {
+        return $this->options[$value];
+    }
+}

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio