ct 5 часов назад
Родитель
Сommit
2db953f2ab
100 измененных файлов с 617 добавлено и 2401 удалено
  1. 17 17
      .env.development
  2. 0 40
      .env.prod-bjczwh
  3. 0 40
      .env.prod-bjyjb
  4. 0 42
      .env.prod-bjzm
  5. 0 39
      .env.prod-bly
  6. 0 40
      .env.prod-bnkc
  7. 0 44
      .env.prod-cfryt
  8. 0 40
      .env.prod-cqtyt
  9. 0 40
      .env.prod-cqxzt
  10. 0 40
      .env.prod-czt
  11. 0 40
      .env.prod-ddgy
  12. 0 40
      .env.prod-drk
  13. 0 38
      .env.prod-fby
  14. 0 47
      .env.prod-fcky
  15. 0 40
      .env.prod-fzbt
  16. 0 40
      .env.prod-gzzdy
  17. 0 44
      .env.prod-hat
  18. 0 40
      .env.prod-hcl
  19. 0 40
      .env.prod-hdt
  20. 0 50
      .env.prod-heyantang
  21. 0 40
      .env.prod-hst
  22. 0 44
      .env.prod-hsyy
  23. 0 40
      .env.prod-hyt
  24. 0 40
      .env.prod-hzyy
  25. 0 37
      .env.prod-jkj
  26. 0 44
      .env.prod-jnlzjk
  27. 16 16
      .env.prod-jnmy
  28. 0 40
      .env.prod-jnsyj
  29. 0 40
      .env.prod-jzzx
  30. 0 48
      .env.prod-knt
  31. 0 39
      .env.prod-knt2
  32. 0 40
      .env.prod-kyt
  33. 0 40
      .env.prod-lmjy
  34. 0 47
      .env.prod-myhk
  35. 0 44
      .env.prod-nmgyt
  36. 0 43
      .env.prod-qdtst
  37. 0 40
      .env.prod-sczy
  38. 0 43
      .env.prod-sft
  39. 0 40
      .env.prod-shdn
  40. 0 44
      .env.prod-sxjz
  41. 0 44
      .env.prod-syysy
  42. 0 44
      .env.prod-test
  43. 0 39
      .env.prod-whhm
  44. 0 40
      .env.prod-xfk
  45. 0 53
      .env.prod-ylrz
  46. 0 43
      .env.prod-yxj
  47. 0 40
      .env.prod-yzt
  48. 0 43
      .env.prod-zkzh
  49. 0 39
      .env.prod-zsjk
  50. 13 13
      .env.production
  51. 1 0
      package.json
  52. 6 0
      src/api/login.js
  53. 1 0
      src/components/FileUpload/index.vue
  54. 1 1
      src/components/H5/h5-chat.vue
  55. 2 1
      src/components/HeaderSearch/index.vue
  56. 1 0
      src/components/ImageUpload/index.vue
  57. 4 1
      src/components/Material/index.vue
  58. 4 1
      src/components/Material/single.vue
  59. 2 1
      src/components/TopNav/index.vue
  60. 2 0
      src/directive/index.js
  61. 16 0
      src/directive/safeHtml.js
  62. 38 6
      src/utils/common.js
  63. 9 19
      src/utils/jsencrypt.js
  64. 57 68
      src/utils/obs.js
  65. 55 0
      src/utils/safeUrl.js
  66. 15 0
      src/utils/sanitize.js
  67. 5 2
      src/views/chat/chatKeyword/index.vue
  68. 3 0
      src/views/chat/chatRole/index.vue
  69. 3 1
      src/views/company/companyUser/indexAll.vue
  70. 5 1
      src/views/company/components/companyProfit.vue
  71. 5 1
      src/views/components/course/userCourseCatalogDetails.vue
  72. 5 5
      src/views/components/his/articleDetails.vue
  73. 4 4
      src/views/components/his/caseArticleDetails.vue
  74. 5 5
      src/views/components/his/chineseMedicineDetails.vue
  75. 6 6
      src/views/components/his/diseaseDetails.vue
  76. 5 5
      src/views/components/his/doctorArticleDetails.vue
  77. 5 5
      src/views/components/his/drugReportDetails.vue
  78. 6 6
      src/views/components/his/famousPrescribeDetails.vue
  79. 34 34
      src/views/components/his/followMsgDetails.vue
  80. 4 4
      src/views/components/his/integralGoodsDetails.vue
  81. 2 2
      src/views/components/his/medicatedFoodDetails.vue
  82. 35 35
      src/views/components/his/msgDetails.vue
  83. 12 12
      src/views/components/his/packageDetails.vue
  84. 10 10
      src/views/components/his/storeProductDetails.vue
  85. 4 4
      src/views/components/his/vesselDetails.vue
  86. 10 4
      src/views/course/courseFinishTemp/index.vue
  87. 10 4
      src/views/course/courseFinishTempParent/index.vue
  88. 2 2
      src/views/course/coursePlaySourceConfig/index.vue
  89. 44 44
      src/views/course/courseQuestionBank/index.vue
  90. 27 27
      src/views/course/sopLogs/sopLogsList.vue
  91. 27 27
      src/views/course/userCourseCategory/index.vue
  92. 5 1
      src/views/course/userVideo/index.vue
  93. 34 34
      src/views/crm/customer/line.vue
  94. 5 1
      src/views/his/adv/index.vue
  95. 14 4
      src/views/his/appVersion/index.vue
  96. 5 1
      src/views/his/article/index.vue
  97. 5 1
      src/views/his/articleCate/index.vue
  98. 3 1
      src/views/his/caseArticle/index.vue
  99. 3 1
      src/views/his/chineseMedicine/index.vue
  100. 5 1
      src/views/his/department/index.vue

+ 17 - 17
.env.development

@@ -1,26 +1,26 @@
 # 页面标题
-VUE_APP_TITLE =互联网医院管理系
+VUE_APP_TITLE =互联网医院管理系��?
 # 首页菜单标题
-VUE_APP_TITLE_INDEX =互联网医
+VUE_APP_TITLE_INDEX =互联网医��?
 # 公司名称
 VUE_APP_COMPANY_NAME =
-# ICP备案
-VUE_APP_ICP_RECORD =陕ICP备2025066365号-3
+# ICP备案��?
+VUE_APP_ICP_RECORD =陕ICP��?025066365��?3
 # ICP网站访问地址
 VUE_APP_ICP_URL =https://beian.miit.gov.cn
 # 网站LOG
 VUE_APP_LOG_URL =@/assets/logo/xfk.png
-# 存储桶配
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配
+# 存储桶配��?
+VUE_APP_OBS_ACCESS_KEY_ID = 
+# 存储桶配��?
+VUE_APP_OBS_SECRET_ACCESS_KEY = 
+# 存储桶配��?
 VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配
+# 存储桶配��?
 VUE_APP_OBS_BUCKET = xfk-hw079058881
-# 存储桶配
+# 存储桶配��?
 VUE_APP_COS_BUCKET = xfk-1323137866
-# 存储桶配
+# 存储桶配��?
 VUE_APP_COS_REGION = ap-chongqing
 # 线路一地址
 VUE_APP_VIDEO_LINE_1 = https://xfktcpv.ylrzcloud.com
@@ -36,18 +36,18 @@ LIVE_PATH = /live
 VUE_APP_LIVE_WS_URL = ws://127.0.0.1:7114/ws
 
 
-# 开发环境配
+# 开发环境配��?
 ENV = 'development'
 
-# FS管理系统/开发环
+# FS管理系统/开发环��?
 VUE_APP_BASE_API = '/prod-api'
 
-#默认 1、会员 2、企微
+#默认 1、会��?2、企��?
 VUE_APP_COURSE_DEFAULT = 1
 
-# 路由懒加
+# 路由懒加��?
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
-# 患者信
+# 患者信��?
 VUE_APP_PATIENT_INFO = '客户信息'
 # 添加病人
 VUE_APP_ADD_PATIENT = '添加信息'

+ 0 - 40
.env.prod-bjczwh

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =北京存在文化互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =存在文化互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =北京存在文化
-# ICP备案号
-VUE_APP_ICP_RECORD =京ICP备2024100370号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/bjczwh.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = czwh-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = czwh-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://czwhtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://czwhobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-bjyjb

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =医健宝医药管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =医健宝医药
-# 公司名称
-VUE_APP_COMPANY_NAME =医健宝智慧(北京)医药科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =京ICP备2025133930号-2
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/bjyjb.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = bjyjb-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = bjyjb-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://bjyjbtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://bjyjbobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 42
.env.prod-bjzm

@@ -1,42 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =北京卓美悦康直播管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =卓美悦康直播系统
-# 公司名称
-VUE_APP_COMPANY_NAME =北京卓美悦康
-# ICP备案号
-VUE_APP_ICP_RECORD =京ICP备2024068752号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/bjzmky.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://bjzmobs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = bjzm
-# 存储桶配置
-VUE_APP_COS_BUCKET = bjzmky-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = http://bjzmkytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://bjzmobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
-
-VUE_APP_LIVE_WS_URL = wss://ws.klbycp.com/ws

+ 0 - 39
.env.prod-bly

@@ -1,39 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =倍力优会员商城平台
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =倍力优会员商城平台
-# 公司名称
-VUE_APP_COMPANY_NAME = 倍力优(北京)健康产业科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD = 京ICP备18042618号-2
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/bly_logo.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = bly-obs2025
-# 存储桶配置
-VUE_APP_COS_BUCKET = beliyo-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://blytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://blyobs.ylrztop.com
-# 生产环境配置
-ENV = 'production'
-
-#FS管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-bnkc

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =百年康成互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =百年康成互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =北京百年康成信息科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =京ICP备2024053040号-5
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/bnkc.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = bnkc-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = bnkc-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://bnkctcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://bnkcobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 44
.env.prod-cfryt

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =赤峰润元堂
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =赤峰润元堂
-# 公司名称
-VUE_APP_COMPANY_NAME =赤峰润元堂健康咨询有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =蒙ICP备2024019526号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/cfryt.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = cfryt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = ryt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://ryttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://cfrytobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://rytvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = ryt-2114522511
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-cqtyt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =重庆泰医堂
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =重庆泰医堂
-# 公司名称
-VUE_APP_COMPANY_NAME =泰安高新区泰医堂中医医院有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =鲁ICP备2025154120号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/cqtyt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = cqtyt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = cqtyt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://cqtytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://cqtytobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-cqxzt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =襄之棠互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =襄之棠互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆襄之棠大药房连锁有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =
-# ICP网站访问地址
-VUE_APP_ICP_URL =
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/cqxzt.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = cqxzt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = cqxzt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://cqxzttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://cqxztobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-czt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =内蒙古纯正堂互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =内蒙古纯正堂互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =内蒙古纯正堂大药房有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =京ICP备2024053040号-5
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/czt.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = czt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = czt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://czttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://cztobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-ddgy

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =叮当国医总管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =叮当国医管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2024031984号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/ddgy.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = ddgy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = ddgy-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://ddgytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://ddgyobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-drk

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =德瑞康互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =德瑞康互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =青岛德瑞康医疗管理有限公司市北德瑞康中医医院
-# ICP备案号
-VUE_APP_ICP_RECORD =鲁ICP备2024135071号-3
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/drk.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = drk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = drk-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://drktcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://drkobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 38
.env.prod-fby

@@ -1,38 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =互联网医院管理系统
-# 公司名称
-COMPANY_NAME =福本源
-# ICP备案号
-ICP_RECORD =蜀ICP备2023036719号
-# ICP网站访问地址
-ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/fby_logo.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = fby-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = fby-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://fbytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://fbyobs.ylrztop.com
-# 生产环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
-

+ 0 - 47
.env.prod-fcky

@@ -1,47 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =CRM客户管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =CRM客户管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =蜂巢快药(北京)医药连锁有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =京ICP备2025120013号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/fcky.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = fcky-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = fcky-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://fckytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://fckyobs.ylrztop.com
-# 默认看课模式 1会员 2企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
-
-# 患者信息
-VUE_APP_PATIENT_INFO = '客户信息'
-# 添加病人
-VUE_APP_ADD_PATIENT = '添加信息'

+ 0 - 40
.env.prod-fzbt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =福州白兔管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =福州白兔管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =福州高新区白兔健康咨询有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =闽ICP备2024081011号-3
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/myhk.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = myhk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = myhk-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://myhktcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://myhkobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-gzzdy

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =郑多燕总管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =郑多燕管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =广州郑多燕健康管理有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =粤ICP备2023104913号-7
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/gzzdy_logo.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = gzzdy1-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = gzzdy1-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://gzzdytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://gzzdyobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 44
.env.prod-hat

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =恒安图总管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =恒安图管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2024031984号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/hat.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = hat-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = hat-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://hattcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://hatobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://hatvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = hat-2114522511
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-hcl

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =恒春来管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =恒春来
-# 公司名称
-VUE_APP_COMPANY_NAME =福州恒春来健康咨询有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =闽ICP备2024061323号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/hcl.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = hclobs-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = hcl-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://hcltcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://hclobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-hdt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =弘德互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =弘德互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =河北红德堂医药连锁有限公司保定第五十七分公司
-# ICP备案号
-VUE_APP_ICP_RECORD =冀ICP备2025113252号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/hdt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = hdt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = hdt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://hdttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://hdtobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 50
.env.prod-heyantang

@@ -1,50 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =成都鹤颜堂健康管理
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =成都鹤颜堂健康管理
-# 公司名称
-VUE_APP_COMPANY_NAME =成都御养堂健康管理有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =蜀ICP备2024054506号-51
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/cdhyt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = cdhyt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = cdhyt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://cdhyttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://cdhytobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://cdhytvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = cdhyt-2114522511
-
-#直播解码路径
-VUE_APP_LIVE_PATH = /live
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
-
-
-VUE_APP_LIVE_WS_URL = wss://liveapp.yytcdta.com/ws
-

+ 0 - 40
.env.prod-hst

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =鸿森堂管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =成都温江鸿森堂智慧互联网医院有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =蜀ICP备2025160310号-3
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/hst_logo.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = hst-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = hst-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://hsttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://hstobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 44
.env.prod-hsyy

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =河山医院
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =河山医院
-# 公司名称
-VUE_APP_COMPANY_NAME =哈尔滨市河山医院有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =蒙ICP备2024019526号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/hsyy.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = hsyy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = heshanyy-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://heshanyytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://hsyyobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://heshanyyvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = heshanyy-2114522511
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-hyt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =宏医堂互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =宏医堂互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =易行健和泰(湖北)健康咨询有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =鄂ICP备2025116549号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/hyt.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = hyt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = fzhyt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://fzhyttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://hytobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-hzyy

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =弘珍医药管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =弘珍医药
-# 公司名称
-VUE_APP_COMPANY_NAME =南宁良庆区宝和堂金悦澜湾大药房
-# ICP备案号
-VUE_APP_ICP_RECORD =桂ICP备2025059156号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/hzyy.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = hzyy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = hzyy-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://hzyytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://hzyyobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 37
.env.prod-jkj

@@ -1,37 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =金康健互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =金康健互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =西安金康健医药有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =陕ICP备2024035932号-15
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/jkj.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = jkj-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = jkj-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://jkjtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://jkjobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 44
.env.prod-jnlzjk

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =济南联志健康互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =济南联志健康互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =济南联志健康
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2024031984号-2
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/jnlzjk.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = jnlzjk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = jnlzjk-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://jnlzjktcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://jnlzjkobs.ylrztop.com
-#火山云
-VUE_APP_VIDEO_URL = https://jnlzjkvolcengine.ylrztop.com
-#火山云
-VUE_APP_HSY_SPACE = lzjk-2114522511
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 16 - 16
.env.prod-jnmy

@@ -1,26 +1,26 @@
 # 页�标题
-VUE_APP_TITLE =金牛明医互�网医院管�系统
+VUE_APP_TITLE =金牛明医互�网医院管�系�
 # 首页��标题
 VUE_APP_TITLE_INDEX =金牛明医
 # 公��称
-VUE_APP_COMPANY_NAME =�都金牛明医云�互�网医院有�公�
-# ICP备案�
-VUE_APP_ICP_RECORD =蜀ICP备2024052643�
+VUE_APP_COMPANY_NAME =�都金牛明医云�互�网医院有�公�
+# ICP备案�
+VUE_APP_ICP_RECORD =蜀ICP�024052643�
 # ICP网站访问地�
 VUE_APP_ICP_URL =https://beian.miit.gov.cn
 # 网站LOG
 VUE_APP_LOG_URL =@/assets/logo/jnmy.png
-# 存储桶�置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶�置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶�置
+# 存储桶��
+VUE_APP_OBS_ACCESS_KEY_ID = 
+# 存储桶��
+VUE_APP_OBS_SECRET_ACCESS_KEY = 
+# 存储桶��
 VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶�置
+# 存储桶��
 VUE_APP_OBS_BUCKET = jnmy-hw079058881
-# 存储桶�置
+# 存储桶��
 VUE_APP_COS_BUCKET = jnmy-1323137866
-# 存储桶�置
+# 存储桶��
 VUE_APP_COS_REGION = ap-chongqing
 # 线路一地�
 VUE_APP_VIDEO_LINE_1 = https://jnmytcpv.ylrzcloud.com
@@ -32,14 +32,14 @@ VUE_APP_VIDEO_URL = https://cdjnmyvolcengine.ylrztop.com
 #�山云视频点播空间�
 VUE_APP_HSY_SPACE = cdjnmy-2114522511
 
-# 开�环境�置
+# 开�环境��
 ENV = 'development'
 
-# FS管�系统/开�环境
+# FS管�系统/开�环�
 VUE_APP_BASE_API = '/prod-api'
 
-#默认 1�会员 2��微
+#默认 1�会�2���
 VUE_APP_COURSE_DEFAULT = 2
 
-# 路由懒加载
+# 路由懒加�
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-jnsyj

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =济南顺亿景SCRM管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =济南顺亿景
-# 公司名称
-VUE_APP_COMPANY_NAME =济南顺亿景
-# ICP备案号
-VUE_APP_ICP_RECORD =蜀ICP备2024052643号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/jnsyj.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = jnsyj-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = jnsyj-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://jnsyjtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://jnsyjobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-jzzx

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =九州在线管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =九州好医生
-# 公司名称
-VUE_APP_COMPANY_NAME =成都双流九州在线互联网医院有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =蜀ICP备2025130335号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/jzzx.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = jzzx-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = jiuzhou-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://jzzxtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://jzzxobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 48
.env.prod-knt

@@ -1,48 +0,0 @@
-# 页面标题
-VUE_APP_TITLE = 康年堂SCRM管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX = 康年堂
-# 公司名称
-VUE_APP_COMPANY_NAME = 陕西康年堂医药连锁有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD = 陕ICP备2023011686号-5
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/knt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = jnmy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = jnmy-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://jnmytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://jnmyobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://cdjnmyvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = cdjnmy-2114522511
-# 生产环境配置
-ENV = 'production'
-
-#直播解码路径
-LIVE_PATH = /live
-
-#FS管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
-
-VUE_APP_LIVE_WS_URL = wss://liveapp.kangniantangyiyao.top/ws

+ 0 - 39
.env.prod-knt2

@@ -1,39 +0,0 @@
-# 页面标题
-VUE_APP_TITLE = 康年堂SCRM管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX = 康年堂
-# 公司名称
-VUE_APP_COMPANY_NAME = 陕西康年堂医药连锁有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD = 陕ICP备2023011686号-5
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/knt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = jnmy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = jnmy-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://jnmytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://jnmyobs.ylrztop.com
-# 生产环境配置
-ENV = 'production'
-
-#FS管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-kyt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =宽益堂管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2024031984号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/kyt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = kyt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = kyt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://kyttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://kytobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-lmjy

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =良苗教育管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =良苗教育
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆良苗教育咨询有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2025055647号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/lm.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = lmjy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = lm-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://lmjytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://lmjyobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 47
.env.prod-myhk

@@ -1,47 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =木易华康互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =康复e站
-# 公司名称
-VUE_APP_COMPANY_NAME =福州市木易华康医药有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =闽ICP备2020016609号-3
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/myhk.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = myhk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = myhk-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://myhktcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://myhkobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://myhkvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = myhk-2114522511
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
-
-# 项目
-VUE_APP_PROJECT = 'myhk'

+ 0 - 44
.env.prod-nmgyt

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =内蒙古一帖医药
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =内蒙古一帖医药
-# 公司名称
-VUE_APP_COMPANY_NAME =内蒙古好药师蒙一堂大药房有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =蒙ICP备2023002294号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/nmgyt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = nmgyt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = nmgyt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://nmgyttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://nmgytobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://nmgmytvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = nmgmyt-2114522511
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 43
.env.prod-qdtst

@@ -1,43 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =同顺堂医药管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =同顺堂
-# 公司名称
-VUE_APP_COMPANY_NAME =青岛同顺堂医药有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =鲁ICP备2023028746号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/qdtst.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = qdtst-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = qdtst-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://qdtsttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://qdtstobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://qdtstvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = qdtst-2114522511
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-sczy

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =致医总管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =致医管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2024031984号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/sczy.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = sczy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = sczy-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://sczycpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://sczyobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 43
.env.prod-sft

@@ -1,43 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =四福堂互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =四福堂
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆佰达昌科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2025059148号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/sft.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-#VUE_APP_COS_BUCKET = sft-1361917636
-VUE_APP_COS_BUCKET = cqsft-1323137866
-# 存储桶配置
-VUE_APP_OBS_BUCKET = sft-hw079058881
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-
-# 线路一地址
-#VUE_APP_VIDEO_LINE_1 = https://video.sft12.cn
-VUE_APP_VIDEO_LINE_1 = https://cqsfttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://sftobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-shdn

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =德宁健康管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =德宁健康管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =淄博德宁健康科技有限责任公司
-# ICP备案号
-VUE_APP_ICP_RECORD =鲁ICP备2024100689号-2
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/kyt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = kyt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = kyt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://kyttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://kytobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 44
.env.prod-sxjz

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =挑宝总管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =挑宝网
-# 公司名称
-VUE_APP_COMPANY_NAME =银川鑫泰互联网医院有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =宁ICP备2022001349号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/sxjz.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = sxjz-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = sxjz-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://sxjztcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://sxjzobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://sxjzvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = sxjz-2114522511
-
-# 开发环境配置
-ENV = 'development'
-
-# 今正互联网医院管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 44
.env.prod-syysy

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =益寿缘
-# 公司名称
-VUE_APP_COMPANY_NAME =沈阳铁西益寿缘中医院有限责任公司
-# ICP备案号
-VUE_APP_ICP_RECORD =辽ICP备2024035076号-17
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/syysy.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = syysy-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = syysy-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://syysytcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://syysyobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://syysyvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = syysy-2114522511
-
-# 开发环境配置
-ENV = 'development'
-
-# 今正互联网医院管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 44
.env.prod-test

@@ -1,44 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =互联网医院管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =蜀ICP备2023036719号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/logo.png
-
-
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = myhk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = myhk-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://myhktcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://myhkobs.ylrztop.com
-
-
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/admin-api'
-
-VUE_APP_LIVE_WS_URL = ws://127.0.0.1:7114/ws
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 39
.env.prod-whhm

@@ -1,39 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =惠名互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =惠名互联网医院
-# 公司名称
-VUE_APP_COMPANY_NAME =武汉惠名大药房有限责任公司
-# ICP备案号
-VUE_APP_ICP_RECORD =
-# ICP网站访问地址
-VUE_APP_ICP_URL =
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/whhm.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = whhm-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = whhm-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://whhmtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://whhmobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-xfk

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =协和魔丽管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =协和魔丽
-# 公司名称
-VUE_APP_COMPANY_NAME =西安协和魔丽网络科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =陕ICP备2025066365号-3
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/xfk.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = xfk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = xfk-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://xfktcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://xfkobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 53
.env.prod-ylrz

@@ -1,53 +0,0 @@
-#该文本用于打包测试平台
-# 页面标题
-VUE_APP_TITLE =云联融智SCRM管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =云联融智SCRM
-# 公司名称
-VUE_APP_COMPANY_NAME =云联融智科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/ylrz.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = myhk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = ylrz-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://ylrztcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://cdhytobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://ylrzvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = ylrz-2114522511
-
-#直播解码路径
-VUE_APP_LIVE_PATH = /live
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
-
-# 患者信息
-VUE_APP_PATIENT_INFO = '客户信息'
-# 添加病人
-VUE_APP_ADD_PATIENT = '添加信息'

+ 0 - 43
.env.prod-yxj

@@ -1,43 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =易行健总管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =易行健管理系统
-# 公司名称
-VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2024031984号-1
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/yxj.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = whyxj-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = yxj-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://yxjtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://whyxjobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://whyxjvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = whyxj-2114522511
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 40
.env.prod-yzt

@@ -1,40 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =易诊通互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =易诊通
-# 公司名称
-VUE_APP_COMPANY_NAME =广州易诊通医院有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =粤ICP备2024241490号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/yzt.jpg
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = yzt-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = yzt-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://yzttcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://yztobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'development'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 43
.env.prod-zkzh

@@ -1,43 +0,0 @@
-# 页面标题
-VUE_APP_TITLE = 中康SCRM管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX = 陕西中康智慧
-# 公司名称
-VUE_APP_COMPANY_NAME = 陕西中康智慧药房有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD = 陕ICP备2024048690号-2
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/zkzh_logo.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = zkzh-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = zkzh-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://zkzhtcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://zkzhobs.ylrztop.com
-#火山云视频地址域名
-VUE_APP_VIDEO_URL = https://sxzkvolcengine.ylrztop.com
-#火山云视频点播空间名
-VUE_APP_HSY_SPACE = sxzk-2114522511
-# 生产环境配置
-ENV = 'production'
-
-#FS管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 1
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 0 - 39
.env.prod-zsjk

@@ -1,39 +0,0 @@
-# 页面标题
-VUE_APP_TITLE =中食健康互联网医院管理系统
-# 首页菜单标题
-VUE_APP_TITLE_INDEX =中食健康
-# 公司名称
-VUE_APP_COMPANY_NAME =中食健康(北京)科技有限公司
-# ICP备案号
-VUE_APP_ICP_RECORD =京ICP备2024062307号
-# ICP网站访问地址
-VUE_APP_ICP_URL =https://beian.miit.gov.cn
-# 网站LOG
-VUE_APP_LOG_URL =@/assets/logo/zsjk.png
-# 存储桶配置
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配置
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配置
-VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配置
-VUE_APP_OBS_BUCKET = zsjk-hw079058881
-# 存储桶配置
-VUE_APP_COS_BUCKET = zsjk-1323137866
-# 存储桶配置
-VUE_APP_COS_REGION = ap-chongqing
-# 线路一地址
-VUE_APP_VIDEO_LINE_1 = https://zsjktcpv.ylrzcloud.com
-# 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://zsjkobs.ylrztop.com
-
-# 开发环境配置
-ENV = 'production'
-
-# FS管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
-
-#默认 1、会员 2、企微
-VUE_APP_COURSE_DEFAULT = 2
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 13 - 13
.env.production

@@ -1,26 +1,26 @@
-#弘珍医药互联网医院管理系统/生产环境
+#弘珍医药互联网医院管理系��?生产环境
 VUE_APP_BASE_API = '/admin-api'
 
 
 # 公司名称
 VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
-# ICP备案
-VUE_APP_ICP_RECORD =蜀ICP备2023036719号
+# ICP备案��?
+VUE_APP_ICP_RECORD =蜀ICP��?023036719��?
 # ICP网站访问地址
 VUE_APP_ICP_URL =https://beian.miit.gov.cn
 # 网站LOG
 VUE_APP_LOG_URL =@/assets/logo/logo.png
-# 存储桶配
-VUE_APP_OBS_ACCESS_KEY_ID = K2UTJGIN7UTZJR2XMXYG
-# 存储桶配
-VUE_APP_OBS_SECRET_ACCESS_KEY = sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX
-# 存储桶配
+# 存储桶配��?
+VUE_APP_OBS_ACCESS_KEY_ID = 
+# 存储桶配��?
+VUE_APP_OBS_SECRET_ACCESS_KEY = 
+# 存储桶配��?
 VUE_APP_OBS_SERVER = https://obs.cn-north-4.myhuaweicloud.com
-# 存储桶配
+# 存储桶配��?
 VUE_APP_OBS_BUCKET = zkzh-hw079058881
-# 存储桶配
+# 存储桶配��?
 VUE_APP_COS_BUCKET = fs-1319721001
-# 存储桶配
+# 存储桶配��?
 VUE_APP_COS_REGION = ap-chongqing
 # 线路一地址
 VUE_APP_VIDEO_LINE_1 = https://cos.his.cdwjyyh.com
@@ -29,9 +29,9 @@ VUE_APP_VIDEO_LINE_2 = https://zkzhobs.ylrztop.com
 
 
 # 页面标题
-VUE_APP_TITLE = 弘珍医药互联网医院管理系
+VUE_APP_TITLE = 弘珍医药互联网医院管理系��?
 
 VUE_APP_LIVE_WS_URL = ws://127.0.0.1:7114/ws
 
-# 开发环境配
+# 开发环境配��?
 ENV = 'production'

+ 1 - 0
package.json

@@ -89,6 +89,7 @@
     "core-js": "3.8.1",
     "cos-js-sdk-v5": "^1.8.3",
     "dayjs": "^1.11.13",
+    "dompurify": "^3.4.13",
     "echarts": "^4.9.0",
     "element-ui": "2.15.5",
     "esdk-obs-browserjs": "^3.24.3",

+ 6 - 0
src/api/login.js

@@ -10,6 +10,9 @@ export function login(username, password, code, uuid) {
   }
   return request({
     url: '/login',
+    headers: {
+      isToken: false
+    },
     method: 'post',
     data: data
   })
@@ -77,6 +80,9 @@ export function checkIsNeedCheck(username, password, code, uuid) {
   }
   return request({
     url: '/checkIsNeedCheck',
+    headers: {
+      isToken: false
+    },
     method: 'post',
     data: data
   })

+ 1 - 0
src/components/FileUpload/index.vue

@@ -2,6 +2,7 @@
   <div class="upload-file">
     <el-upload
       :action="uploadFileUrl"
+      :headers="headers"
       :before-upload="handleBeforeUpload"
       :file-list="fileList"
       :limit="limit"

+ 1 - 1
src/components/H5/h5-chat.vue

@@ -9,7 +9,7 @@
             <img :src="message.sender === 'user' ? userAvatar : getAgentAvatar" alt="Avatar" />
           </div>
           <div class="message-content">
-            <div v-if="message.text" class="message-text" v-html="message.text"></div>
+            <div v-if="message.text" class="message-text" v-safe-html="message.text"></div>
             <!-- Options buttons -->
             <div v-if="message.options && message.options.length > 0" class="options-container">
               <button

+ 2 - 1
src/components/HeaderSearch/index.vue

@@ -22,6 +22,7 @@
 // make search results more in line with expectations
 import Fuse from 'fuse.js/dist/fuse.min.js'
 import path from 'path'
+import { safeOpen } from '@/utils/safeUrl'
 
 export default {
   name: 'HeaderSearch',
@@ -74,7 +75,7 @@ export default {
       if(this.ishttp(val.path)) {
         // http(s):// 路径新窗口打开
         const pindex = path.indexOf("http");
-        window.open(path.substr(pindex, path.length), "_blank");
+        safeOpen(path.substr(pindex, path.length), "_blank");
       } else {
         this.$router.push(val.path)
       }

+ 1 - 0
src/components/ImageUpload/index.vue

@@ -3,6 +3,7 @@
     <el-upload
       :action="uploadImgUrl"
       list-type="picture-card"
+      :headers="headers"
       :on-success="handleUploadSuccess"
       :before-upload="handleBeforeUpload"
       :limit="limit"

+ 4 - 1
src/components/Material/index.vue

@@ -1,4 +1,4 @@
-<template>
+<template>
   <div v-if="type == 'image'">
     <ul v-for="(item,index) in value" :key="index" class="el-upload-list el-upload-list--picture-card">
       <li tabindex="0" class="el-upload-list__item is-ready" :style="'width: '+width+'px;height: '+height+'px'">
@@ -72,6 +72,7 @@
                 <el-col :span="12" style="text-align: right;">
                   <el-upload
                     :action="uploadUrl"
+                    :headers="uploadHeaders"
                     :file-list="[]"
                     :on-progress="handleProgress"
                     :before-upload="beforeUpload"
@@ -140,6 +141,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { listMaterial, getMaterial, delMaterial, addMaterial, updateMaterial, exportMaterial } from "@/api/store/material";
 import { getAllMaterialGroup,listMaterialGroup, getMaterialGroup, delMaterialGroup, addMaterialGroup, updateMaterialGroup, exportMaterialGroup } from "@/api/store/materialGroup";
 import { Loading } from 'element-ui';
@@ -183,6 +185,7 @@ export default {
     return {
       finalQuality:1,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       dialogVisible: false,
       url: '',
       listDialogVisible: false,

+ 4 - 1
src/components/Material/single.vue

@@ -1,4 +1,4 @@
-<template>
+<template>
   <div v-if="type == 'image'">
     <div v-if="myValue != ''">
       <ul class="el-upload-list el-upload-list--picture-card">
@@ -63,6 +63,7 @@
                 <el-col :span="12" style="text-align: right;">
                   <el-upload
                     :action="uploadUrl"
+                    :headers="uploadHeaders"
                     :file-list="[]"
                     :on-progress="handleProgress"
                     :before-upload="beforeUpload"
@@ -131,6 +132,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { listMaterial, getMaterial, delMaterial, addMaterial, updateMaterial, exportMaterial } from "@/api/store/material";
 import { getAllMaterialGroup,listMaterialGroup, getMaterialGroup, delMaterialGroup, addMaterialGroup, updateMaterialGroup, exportMaterialGroup } from "@/api/store/materialGroup";
 import { Loading } from 'element-ui';
@@ -177,6 +179,7 @@ export default {
       finalQuality:1,
       myValue: this.value,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       dialogVisible: false,
       url: '',
       listDialogVisible: false,

+ 2 - 1
src/components/TopNav/index.vue

@@ -29,6 +29,7 @@
 
 <script>
 import { constantRoutes } from "@/router";
+import { safeOpen } from "@/utils/safeUrl";
 
 export default {
   data() {
@@ -137,7 +138,7 @@ export default {
       this.currentIndex = key;
       if (this.ishttp(key)) {
         // http(s):// 路径新窗口打开
-        window.open(key, "_blank");
+        safeOpen(key, "_blank");
       } else if (key.indexOf("/redirect") !== -1) {
         // /redirect 路径内部打开
         this.$router.push({ path: key.replace("/redirect", "") });

+ 2 - 0
src/directive/index.js

@@ -3,6 +3,7 @@ import hasPermi from './permission/hasPermi'
 import dialogDrag from './dialog/drag'
 import dialogDragWidth from './dialog/dragWidth'
 import dialogDragHeight from './dialog/dragHeight'
+import safeHtml from './safeHtml'
 
 const install = function(Vue) {
   Vue.directive('hasRole', hasRole)
@@ -10,6 +11,7 @@ const install = function(Vue) {
   Vue.directive('dialogDrag', dialogDrag)
   Vue.directive('dialogDragWidth', dialogDragWidth)
   Vue.directive('dialogDragHeight', dialogDragHeight)
+  Vue.directive('safe-html', safeHtml)
 }
 
 if (window.Vue) {

+ 16 - 0
src/directive/safeHtml.js

@@ -0,0 +1,16 @@
+import { sanitizeHtml } from '@/utils/sanitize'
+
+/**
+ * 替代 v-html:写入前经 DOMPurify 清洗
+ * 用法:v-safe-html="htmlString"
+ */
+export default {
+  bind(el, binding) {
+    el.innerHTML = sanitizeHtml(binding.value)
+  },
+  update(el, binding) {
+    if (binding.value !== binding.oldValue) {
+      el.innerHTML = sanitizeHtml(binding.value)
+    }
+  }
+}

+ 38 - 6
src/utils/common.js

@@ -1,7 +1,5 @@
-/**
- * 通用js方法封装处理
- * Copyright (c) 2019 ruoyi
- */
+import axios from 'axios'
+import { getToken } from '@/utils/auth'
 
 const baseURL = process.env.VUE_APP_BASE_API
 
@@ -100,9 +98,43 @@ export function selectDictLabels(datas, value, separator) {
 	return actions.join('').substring(0, actions.join('').length - 1);
 }
 
-// 通用下载方法
+// 通用下载方法(需登录态,禁止用 window.location 裸跳)
 export function download(fileName) {
-	window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + false;
+	const token = getToken()
+	if (!token) {
+		console.error('download: 未登录,无法下载')
+		return
+	}
+	axios({
+		method: 'get',
+		url: baseURL + "/common/download",
+		params: { fileName: fileName, delete: true },
+		responseType: 'blob',
+		headers: { Authorization: 'Bearer ' + token }
+	}).then(async (res) => {
+		const data = res.data
+		// 鉴权失败等业务错误会以 JSON blob 返回,避免当成文件保存
+		if (data.type && data.type.includes('application/json')) {
+			const text = await data.text()
+			try {
+				const json = JSON.parse(text)
+				console.error('download failed:', json.msg || text)
+				alert(json.msg || '下载失败')
+			} catch (e) {
+				alert('下载失败')
+			}
+			return
+		}
+		const blob = new Blob([data])
+		const link = document.createElement('a')
+		link.href = window.URL.createObjectURL(blob)
+		link.download = decodeURIComponent(fileName)
+		link.click()
+		window.URL.revokeObjectURL(link.href)
+	}).catch((err) => {
+		console.error('download error:', err)
+		alert('下载失败,请重新登录后再试')
+	})
 }
 
 // 字符串格式化(%s )

+ 9 - 19
src/utils/jsencrypt.js

@@ -1,30 +1,20 @@
 import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
 
-// 密钥对生成 http://web.chacuo.net/netrsakeypair
-
+// 仅保留公钥用于传输加密;私钥严禁下发到前端
 const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
   'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
 
-const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
-  '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
-  'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
-  'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
-  'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
-  'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
-  'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
-  'UP8iWi1Qw0Y='
-
 // 加密
 export function encrypt(txt) {
   const encryptor = new JSEncrypt()
-  encryptor.setPublicKey(publicKey) // 设置公钥
-  return encryptor.encrypt(txt) // 对数据进行加密
+  encryptor.setPublicKey(publicKey)
+  return encryptor.encrypt(txt)
 }
 
-// 解密
-export function decrypt(txt) {
-  const encryptor = new JSEncrypt()
-  encryptor.setPrivateKey(privateKey) // 设置私钥
-  return encryptor.decrypt(txt) // 对数据进行解密
+/**
+ * 已移除前端私钥解密能力,防止「记住密码」Cookie 被还原明文。
+ * 历史加密 Cookie 将无法解密,需用户重新输入密码。
+ */
+export function decrypt() {
+  return ''
 }
-

+ 57 - 68
src/utils/obs.js

@@ -1,78 +1,67 @@
-import ObsClient from "esdk-obs-browserjs/src/obs"
+import { getToken } from '@/utils/auth'
 
+/**
+ * 上传到 OBS:禁止使用前端永久 AK/SK,统一走后端鉴权上传。
+ * 返回结构兼容旧逻辑:{ urlPath, url }
+ */
 export const uploadToOBS = async (file, progressCallback, type, cancelCallback) => {
-  try {
-    const obsClient = new ObsClient({
-      access_key_id: process.env.VUE_APP_OBS_ACCESS_KEY_ID,
-      secret_access_key: process.env.VUE_APP_OBS_SECRET_ACCESS_KEY,
-      server: process.env.VUE_APP_OBS_SERVER,
-      timeout: 1200,
-    })
+  if (process.env.VUE_APP_OBS_ACCESS_KEY_ID || process.env.VUE_APP_OBS_SECRET_ACCESS_KEY) {
+    console.error('[安全] 检测到前端配置了 OBS 永久密钥,已忽略。请从 .env 中移除 VUE_APP_OBS_ACCESS_KEY_ID / SECRET')
+  }
 
-    const fileName = file.name || ""
-    const upload_file_name = new Date().getTime() + "." + fileName.split(".")[fileName.split(".").length - 1]
-    const date = new Date()
-    const year = date.getFullYear()
-    const month = date.getMonth() + 1
-    const strDate = date.getDate()
-    const uploadDay = `${year}${month}${strDate}`
-    const videoKey = `userVideo/${uploadDay}/${upload_file_name}`
-    const courseKey = `course/${uploadDay}/${upload_file_name}`
-    const key = type === 1 ? courseKey : videoKey
+  const formData = new FormData()
+  formData.append('file', file)
+  formData.append('type', type == null ? 2 : type)
 
-    var callback = (transferredAmount, totalAmount, totalSeconds) => {
-      const progress = Number.parseInt((transferredAmount * 100.0) / totalAmount)
-      if (progressCallback) {
-        progressCallback(progress)
-      }
+  const baseApi = process.env.VUE_APP_BASE_API || ''
+  const url = `${baseApi}/common/uploadObsKey`
+
+  return new Promise((resolve, reject) => {
+    const xhr = new XMLHttpRequest()
+    let aborted = false
+
+    if (cancelCallback) {
+      cancelCallback({
+        cancel: () => {
+          aborted = true
+          xhr.abort()
+          reject(new Error('Upload cancelled by user'))
+        }
+      })
     }
 
-    return new Promise((resolve, reject) => {
-      let isCancelled = false
+    xhr.upload.onprogress = (event) => {
+      if (!progressCallback || !event.lengthComputable) return
+      const progress = Math.round((event.loaded * 100) / event.total)
+      progressCallback(progress)
+    }
 
-      if (cancelCallback) {
-        cancelCallback({
-          cancel: () => {
-            console.log("Cancelling OBS upload")
-            isCancelled = true
-            reject(new Error("Upload cancelled by user"))
-          },
-        })
+    xhr.onerror = () => reject(new Error('OBS 后端上传失败'))
+    xhr.onload = () => {
+      if (aborted) return
+      try {
+        const res = JSON.parse(xhr.responseText || '{}')
+        if (xhr.status >= 200 && xhr.status < 300 && (res.code === 200 || res.urlPath || res.url)) {
+          const urlPath = res.urlPath || (res.data && res.data.urlPath) || ''
+          const fileUrl = res.url || (res.data && res.data.url) || ''
+          resolve({
+            RequestId: '',
+            urlPath: urlPath.replace(/^\//, ''),
+            url: fileUrl
+          })
+        } else {
+          reject(new Error(res.msg || res.message || '上传失败'))
+        }
+      } catch (e) {
+        reject(e)
       }
-      //四福堂专属配置
-   /*   resolve({
-        "RequestId": "",
-        "urlPath": ""
-      })*/
-      obsClient.putObject(
-        {
-          Bucket: process.env.VUE_APP_OBS_BUCKET,
-          Key: key,
-          Body: file,
-          ProgressCallback: callback,
-        },
-        (err, result) => {
-          if (isCancelled) {
-            return // Don't process result if cancelled
-          }
+    }
 
-          if (err) {
-            reject(err)
-            console.error("Error-->" + err)
-          } else {
-            const a = {
-              ...result,
-              urlPath: key,
-            }
-            console.log("上传成功", a)
-            resolve(a)
-          }
-        },
-      )
-      //注释到这里【四福堂】
-    })
-  } catch (error) {
-    console.error("Error during upload:", error)
-    throw error
-  }
+    xhr.open('POST', url, true)
+    const token = getToken()
+    if (token) {
+      xhr.setRequestHeader('Authorization', 'Bearer ' + token)
+    }
+    xhr.send(formData)
+  })
 }

+ 55 - 0
src/utils/safeUrl.js

@@ -0,0 +1,55 @@
+/**
+ * 安全打开外链:仅允许 http/https,并可按域名白名单限制
+ */
+const DEFAULT_HOST_WHITELIST = [
+  'cdwjyyh.com',
+  'jnmyunl.com',
+  'obs.jnmyunl.com',
+  'cos.his.cdwjyyh.com'
+]
+
+function isWhitelistedHost(hostname, whitelist) {
+  if (!hostname) return false
+  const host = hostname.toLowerCase()
+  return whitelist.some(domain => host === domain || host.endsWith('.' + domain))
+}
+
+/**
+ * @param {string} url
+ * @param {object} [options]
+ * @param {string[]} [options.hostWhitelist]
+ * @returns {boolean}
+ */
+export function isSafeHttpUrl(url, options = {}) {
+  if (!url || typeof url !== 'string') return false
+  const trimmed = url.trim()
+  try {
+    const u = new URL(trimmed)
+    if (u.protocol !== 'http:' && u.protocol !== 'https:') return false
+    if (u.username || u.password) return false
+    const whitelist = options.hostWhitelist || DEFAULT_HOST_WHITELIST
+    // 未配置白名单时至少禁止 javascript/data 等;有白名单则校验 host
+    if (whitelist.length > 0 && !isWhitelistedHost(u.hostname, whitelist)) {
+      return false
+    }
+    return true
+  } catch (e) {
+    return false
+  }
+}
+
+/**
+ * 安全 window.open
+ */
+export function safeOpen(url, target = '_blank') {
+  if (!isSafeHttpUrl(url)) {
+    console.warn('拒绝打开不安全链接:', url)
+    return null
+  }
+  return window.open(url, target, 'noopener,noreferrer')
+}
+
+export default {
+  isSafeHttpUrl,
+  safeOpen
+}

+ 15 - 0
src/utils/sanitize.js

@@ -0,0 +1,15 @@
+import DOMPurify from 'dompurify'
+
+/**
+ * 清洗 HTML,防止存储型/反射型 XSS(配合 v-safe-html 使用)
+ */
+export function sanitizeHtml(html) {
+  if (html == null || html === '') {
+    return ''
+  }
+  return DOMPurify.sanitize(String(html), {
+    USE_PROFILES: { html: true },
+    FORBID_TAGS: ['script', 'iframe', 'object', 'embed', 'form', 'base'],
+    FORBID_ATTR: ['onerror', 'onload', 'onclick', 'onmouseover', 'onfocus', 'onblur']
+  })
+}

+ 5 - 2
src/views/chat/chatKeyword/index.vue

@@ -64,7 +64,7 @@
       <!-- <el-table-column label="回复内容" align="center" prop="content" /> -->
       <el-table-column label="回复内容" align="center" prop="content">
         <template slot-scope="scope">
-          <div v-html="scope.row.content"></div>
+          <div v-safe-html="scope.row.content"></div>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -134,7 +134,9 @@
             :action="uploadUrl"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
-            :before-upload="beforeAvatarUpload">
+            :before-upload="beforeAvatarUpload"
+      :headers="uploadHeaders"
+    >
             <img v-if="form.qwCode" :src="form.qwCode" class="avatar" width="200px">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
@@ -149,6 +151,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { listChatKeyword, getChatKeyword, delChatKeyword, addChatKeyword, updateChatKeyword, exportChatKeyword } from "@/api/chat/chatKeyword";
 import { getAllRoleList } from "@/api/chat/chatRole";
 import Editor from '@/components/Editor/wang';

+ 3 - 0
src/views/chat/chatRole/index.vue

@@ -135,6 +135,7 @@
             v-model="form.kfHeadUrl"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -172,6 +173,7 @@ import { listChatRole, getChatRole, delChatRole, addChatRole, updateChatRole, ex
 import { getUrl } from "@/api/chat/chatUpload";
 import QRCode from 'qrcodejs2'
 import {allList}from "@/api/company/company";
+import { getToken } from "@/utils/auth";
 export default {
   name: "ChatRole",
   data() {
@@ -180,6 +182,7 @@ export default {
       user:null,
       qrOpen:false,
       uploadUrl:process.env.VUE_APP_BASE_API+"/chat/upload/uploadFile",
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       modeOptions:[],
       typeOptions:[],
       // 遮罩层

+ 3 - 1
src/views/company/companyUser/indexAll.vue

@@ -144,7 +144,9 @@
                 class="avatar-uploader"
                 action="#"
                 :show-file-list="false"
-                :http-request="(options) => handleCustomUpload(options, scope.row)"
+                :http-request="(options) =
+      :headers="headers"
+    > handleCustomUpload(options, scope.row)"
                 :before-upload="(file) => beforeImageUpload(file, scope.row)"
               >
                 <el-button size="small" type="primary" :loading="scope.row.uploading">

+ 5 - 1
src/views/company/components/companyProfit.vue

@@ -117,7 +117,9 @@
               :action="uploadUrl"
               :show-file-list="false"
               :on-success="handleSuccess"
-              :before-upload="beforeUpload">
+              :before-upload="beforeUpload"
+      :headers="uploadHeaders"
+    >
               <img v-if="form.imgUrl" :src="form.imgUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
@@ -135,12 +137,14 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { audit1,audit2,audit3, getCompanyProfit, delCompanyProfit, addCompanyProfit, updateCompanyProfit, exportCompanyProfit } from "@/api/company/companyProfit";
 
 export default {
   name: "profit",
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       type:null,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       baseUrl: process.env.VUE_APP_BASE_API,

+ 5 - 1
src/views/components/course/userCourseCatalogDetails.vue

@@ -120,7 +120,9 @@
 
         <el-form-item label="视频缩略图" prop="thumbnail">
           <el-upload v-model="form.thumbnail" class="avatar-uploader" :action="uploadUrl" :show-file-list="false"
-                     :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
+                     :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
+      :headers="uploadHeaders"
+    >
             <img v-if="form.thumbnail" :src="form.thumbnail" class="avatar" width="300px">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
@@ -481,6 +483,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import {
   addUserCourseVideo,
   batchSaveVideo,
@@ -522,6 +525,7 @@ export default {
   },
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       duration: null,
       packageList: [],
       //课题

+ 5 - 5
src/views/components/his/articleDetails.vue

@@ -6,7 +6,7 @@
 <div class="contentx" >
   <div class="desct"> �康知识详情</div>
  <el-descriptions title="" :column="3" border>
-            <el-descriptions-item label="��图" >
+            <el-descriptions-item label="��� >
                  <img :src="item.imageUrl" style="max-width: 150px;">
             </el-descriptions-item>
             <el-descriptions-item label="分类" >
@@ -18,13 +18,13 @@
                 <span v-if="item!=null">{{item.title}}</span>
             </el-descriptions-item>
 
-            <el-descriptions-item label="�览�" >
+            <el-descriptions-item label="�览� >
                 <span v-if="item!=null">{{item.views}}</span>
             </el-descriptions-item>
               <el-descriptions-item label="是�推�" >
             <dict-tag v-if="item.isTui!=null" :options="isTuiOptions" :value="item.isTui"/>
             </el-descriptions-item>
-            <el-descriptions-item label="是�最新" >
+            <el-descriptions-item label="是�最� >
                    <dict-tag :options="isNewsOptions" :value="item.isNews"/>
             </el-descriptions-item>
             <el-descriptions-item label="�布时间"  >
@@ -37,7 +37,7 @@
                 <span v-if="item!=null">{{item.updateTime}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="内容" >
-                <span v-html="item.contents"></span>
+                <span v-safe-html="item.contents"></span>
             </el-descriptions-item>
         </el-descriptions>
 
@@ -56,7 +56,7 @@ import { listCate} from "@/api/his/articleCate";
         cateName:null,
         // 是�推�字典
         isTuiOptions: [],
-        // 是�最新字典
+        // 是�最新字�
         isNewsOptions: [],
         item:null,
       }

+ 4 - 4
src/views/components/his/caseArticleDetails.vue

@@ -6,7 +6,7 @@
 <div class="contentx" >
   <div class="desct"> 医案科普详情</div>
  <el-descriptions title="" :column="3" border>
-            <el-descriptions-item label="��图" >
+            <el-descriptions-item label="��� >
               <el-image
                       style="width: 100px"
                       :src="item.imgUrl"
@@ -17,7 +17,7 @@
             <el-descriptions-item label="标题" >
                 <span v-if="item!=null">{{item.title}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="�览�" >
+            <el-descriptions-item label="�览� >
                 <span v-if="item!=null">{{item.views}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="创建时间" >
@@ -27,7 +27,7 @@
                 <span v-if="item!=null">{{item.updateTime}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="内容" >
-                <span v-html="item.contents"></span>
+                <span v-safe-html="item.contents"></span>
             </el-descriptions-item>
         </el-descriptions>
 
@@ -44,7 +44,7 @@ import { listCaseArticle, getCaseArticle, delCaseArticle, addCaseArticle, update
       return {
         // 医案科普分类字典
         articleTypeOptions: [],
-        // 状�字典
+        // 状�字�
         statusOptions: [],
         item:null,
       }

+ 5 - 5
src/views/components/his/chineseMedicineDetails.vue

@@ -15,14 +15,14 @@
           </el-descriptions-item>
           <el-descriptions-item label="中��称"><span v-if="item!=null">{{item.medicineName}}</span></el-descriptions-item>
           <el-descriptions-item label="排�"><span v-if="item!=null">{{item.sort}}</span></el-descriptions-item>
-          <el-descriptions-item label="状�"><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
+          <el-descriptions-item label="状�><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
           <el-descriptions-item label="是�常�"><span v-if="item!=null"><dict-tag :options="isUsualOptions" :value="item.isUsual"/></span></el-descriptions-item>
           <el-descriptions-item label="归�"><span v-if="item!=null">{{item.vessel}}</span></el-descriptions-item>
           <el-descriptions-item label="五味"span="3"><span v-if="item!=null">{{item.flavor}}</span></el-descriptions-item>
-          <el-descriptions-item label="�物作用"span="3"><span v-if="item!=null"><span v-html="item.action"></span></span></el-descriptions-item>
-          <el-descriptions-item label="用�方法" span="3"><span v-if="item!=null"> <span v-html="item.usageMethod"></span></span></el-descriptions-item>
-          <el-descriptions-item label="基本信�" span="3"><span v-if="item!=null"> <span v-html="item.descs"></span></span></el-descriptions-item>
-          <el-descriptions-item label="注�事项" span="3"><span v-if="item!=null"> <span v-html="item.msg"></span></span></el-descriptions-item>
+          <el-descriptions-item label="�物作用"span="3"><span v-if="item!=null"><span v-safe-html="item.action"></span></span></el-descriptions-item>
+          <el-descriptions-item label="用�方法" span="3"><span v-if="item!=null"> <span v-safe-html="item.usageMethod"></span></span></el-descriptions-item>
+          <el-descriptions-item label="基本信�" span="3"><span v-if="item!=null"> <span v-safe-html="item.descs"></span></span></el-descriptions-item>
+          <el-descriptions-item label="注�事项" span="3"><span v-if="item!=null"> <span v-safe-html="item.msg"></span></span></el-descriptions-item>
         </el-descriptions>
     </div>
 

+ 6 - 6
src/views/components/his/diseaseDetails.vue

@@ -17,12 +17,12 @@
             <el-descriptions-item label="疾病编�" >
                 <span v-if="item!=null">{{item.diseaseCode}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="所属科室" >
+            <el-descriptions-item label="所属科� >
                 <span v-if="item!=null">{{item.deptName}}</span>
             </el-descriptions-item>
 
 
-            <el-descriptions-item label="状�" >
+            <el-descriptions-item label="状� >
              <span v-if="item!=null">
                    <dict-tag :options="statusOptions" :value="item.status"/>
              </span>
@@ -30,7 +30,7 @@
             <el-descriptions-item label="创建时间" >
                 <span v-if="item!=null">{{item.createTime}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="简介" span="6">
+            <el-descriptions-item label="简� span="6">
                 <span v-if="item!=null">{{item.introduction}}</span>
             </el-descriptions-item>
 
@@ -38,11 +38,11 @@
                 <span v-if="item!=null">{{item.diagnose}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="症状" span="6">
-                      <span v-html="item.symptom"></span>
+                      <span v-safe-html="item.symptom"></span>
 
             </el-descriptions-item>
-            <el-descriptions-item label="检验" span="6">
-                      <span v-html="item.inspect"></span>
+            <el-descriptions-item label="检� span="6">
+                      <span v-safe-html="item.inspect"></span>
             </el-descriptions-item>
         </el-descriptions>
     </div>

+ 5 - 5
src/views/components/his/doctorArticleDetails.vue

@@ -12,10 +12,10 @@
             <el-descriptions-item label="文章ID"  >
                 <span v-if="item!=null">{{item.articleId}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="作者" >
+            <el-descriptions-item label="作� >
                 <span v-if="item!=null">{{item.doctorName}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="��图" >
+            <el-descriptions-item label="��� >
                 <el-popover v-if="item.imageUrl!=null"
                           placement="right"
                           title=""
@@ -31,11 +31,11 @@
                 <span v-if="item!=null">{{item.title}}</span>
             </el-descriptions-item>
 
-            <el-descriptions-item label="�览�" >
+            <el-descriptions-item label="�览� >
                 <span v-if="item!=null">{{item.views}}</span>
             </el-descriptions-item>
 
-            <el-descriptions-item label="状�" >
+            <el-descriptions-item label="状� >
              <span v-if="item!=null">
                    <dict-tag :options="articleStatus" :value="item.status"/>
              </span>
@@ -47,7 +47,7 @@
                 <span v-if="item!=null">{{item.updateTime}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="内容" >
-                <span v-html="item.content"></span>
+                <span v-safe-html="item.content"></span>
             </el-descriptions-item>
 
 

+ 5 - 5
src/views/components/his/drugReportDetails.vue

@@ -9,14 +9,14 @@
     <el-descriptions-item label="订�编�"><span v-if="item!=null">{{item.orderCode}}</span></el-descriptions-item>
     <el-descriptions-item label="病人�称"><span v-if="item!=null">{{item.patientName}}</span></el-descriptions-item>
     <el-descriptions-item label="医生�称"><span v-if="item!=null">{{item.doctorNane}}</span></el-descriptions-item>
-    <el-descriptions-item label="状�"><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
+    <el-descriptions-item label="状�><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
     <el-descriptions-item label="咨询总结"><span v-if="item!=null">{{item.reportSummary}}</span></el-descriptions-item>
     <el-descriptions-item label="生活建议"span="3"><span v-if="item!=null">{{item.reportAdvice}}</span></el-descriptions-item>
     <el-descriptions-item label="备注"span="3"><span v-if="item!=null">{{item.remark}}</span></el-descriptions-item>
-    <el-descriptions-item label="评分"span="3"><span v-if="item!=null"><span v-html="item.pingStar"></span></span></el-descriptions-item>
-    <el-descriptions-item label="评价" span="3"><span v-if="item!=null"> <span v-html="item.pingContent"></span></span></el-descriptions-item>
-    <el-descriptions-item label="评价时间" span="3"><span v-if="item!=null"> <span v-html="item.pingTime"></span></span></el-descriptions-item>
-    <el-descriptions-item label="创建时间" span="3"><span v-if="item!=null"> <span v-html="item.createTime"></span></span></el-descriptions-item>
+    <el-descriptions-item label="评分"span="3"><span v-if="item!=null"><span v-safe-html="item.pingStar"></span></span></el-descriptions-item>
+    <el-descriptions-item label="评价" span="3"><span v-if="item!=null"> <span v-safe-html="item.pingContent"></span></span></el-descriptions-item>
+    <el-descriptions-item label="评价时间" span="3"><span v-if="item!=null"> <span v-safe-html="item.pingTime"></span></span></el-descriptions-item>
+    <el-descriptions-item label="创建时间" span="3"><span v-if="item!=null"> <span v-safe-html="item.createTime"></span></span></el-descriptions-item>
   </el-descriptions>
   </div>
 </div>

+ 6 - 6
src/views/components/his/famousPrescribeDetails.vue

@@ -15,14 +15,14 @@
             </el-descriptions-item>
           <el-descriptions-item label="�典�方�称"><span v-if="item!=null">{{item.prescribeName}}</span></el-descriptions-item>
           <el-descriptions-item label="排�"><span v-if="item!=null">{{item.sort}}</span></el-descriptions-item>
-          <el-descriptions-item label="状�"><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
+          <el-descriptions-item label="状�><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
           <el-descriptions-item label="方剂类型"><span v-if="item!=null"> <dict-tag :options="prescribeTypeOptions" :value="item.prescribeType"/></span></el-descriptions-item>
            <el-descriptions-item label="主治疾病"><span v-if="item!=null">{{item.indication}}</span></el-descriptions-item>
           <el-descriptions-item label="归属书�" span="3"><span v-if="item!=null">{{item.belongBook}}</span></el-descriptions-item>
-          <el-descriptions-item label="�物作用"span="3"><span v-if="item!=null"><span v-html="item.action"></span></span></el-descriptions-item>
-          <el-descriptions-item label="用�方法" span="3"><span v-if="item!=null"> <span v-html="item.usageMethod"></span></span></el-descriptions-item>
-          <el-descriptions-item label="基本信�" span="3"><span v-if="item!=null"> <span v-html="item.descs"></span></span></el-descriptions-item>
-          <el-descriptions-item label="注�事项" span="3"><span v-if="item!=null"> <span v-html="item.msg"></span></span></el-descriptions-item>
+          <el-descriptions-item label="�物作用"span="3"><span v-if="item!=null"><span v-safe-html="item.action"></span></span></el-descriptions-item>
+          <el-descriptions-item label="用�方法" span="3"><span v-if="item!=null"> <span v-safe-html="item.usageMethod"></span></span></el-descriptions-item>
+          <el-descriptions-item label="基本信�" span="3"><span v-if="item!=null"> <span v-safe-html="item.descs"></span></span></el-descriptions-item>
+          <el-descriptions-item label="注�事项" span="3"><span v-if="item!=null"> <span v-safe-html="item.msg"></span></span></el-descriptions-item>
           <el-descriptions-item label="创建时间"><span v-if="item!=null">{{item.createTime}}</span></el-descriptions-item>
 
         </el-descriptions>
@@ -40,7 +40,7 @@ import { listFamousPrescribe, getFamousPrescribe, delFamousPrescribe, addFamousP
       return {
         // 方剂类型字典
         prescribeTypeOptions: [],
-        // 状�字典
+        // 状�字�
         statusOptions: [],
         item:null,
       }

+ 34 - 34
src/views/components/his/followMsgDetails.vue

@@ -18,7 +18,7 @@
             <div v-if="lt.msgContentType == '4'" :class="{ 'right': lt.msgType == '2'}">
               <video  :src="lt.content" controls style="max-width: 400px; max-height: 400px;"></video>
             </div>
-            <span v-if="lt.msgContentType == '5'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="getPrescribe(JSON.parse(lt.content).prescribeId)">处方�</el-link></span>
+            <span v-if="lt.msgContentType == '5'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="getPrescribe(JSON.parse(lt.content).prescribeId)">处方�/el-link></span>
             <span v-if="lt.msgContentType == '6'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="report(lt.content)">问诊报告</el-link></span>
             <span v-if="lt.msgContentType == '7'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="follow(lt.content)">�访</el-link></span>
             <span v-if="lt.msgContentType == '8'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="drugReport(lt.content)">用�报告</el-link></span>
@@ -41,7 +41,7 @@
       @pagination="msgList"
     />
     <el-dialog
-      title="�访�"
+      title="�访�
       :visible.sync="followDialogVisible"
       width="80%"
       :before-close="handleCloseSF" append-to-body >
@@ -75,31 +75,31 @@
       </div>
 
       <span slot="footer" class="dialog-footer">
-        <el-button @click="followDialogVisible = false">� 消</el-button>
-        <el-button type="primary" @click="followDialogVisible = false">确 定</el-button>
+        <el-button @click="followDialogVisible = false">��/el-button>
+        <el-button type="primary" @click="followDialogVisible = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
-    <el-dialog title="处方�" :visible.sync="prescribeDialog.open" width="80%" :before-close="handleClose" append-to-body >
+    <el-dialog title="处方� :visible.sync="prescribeDialog.open" width="80%" :before-close="handleClose" append-to-body >
       <div class="desct">
         基本信�
       </div>
       <el-descriptions :column="3" border  >
-        <el-descriptions-item label="处方�编�"  >
+        <el-descriptions-item label="处方�编�  >
             <span v-if="prescribeItem!=null">
               {{prescribeItem.prescribeCode}}
             </span>
         </el-descriptions-item>
         <el-descriptions-item label="病情�述"  > <span v-if="prescribeItem!=null">{{prescribeItem.patientDescs}}</span></el-descriptions-item>
         <el-descriptions-item label="诊断"  > <span v-if="prescribeItem!=null">{{prescribeItem.diagnose}}</span></el-descriptions-item>
-        <el-descriptions-item label="既往�" ><span v-if="prescribeItem!=null">{{prescribeItem.historyIllness}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者年龄" > <span v-if="prescribeItem!=null">{{prescribeItem.patientAge}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者姓�" > <span v-if="prescribeItem!=null">{{prescribeItem.patientName}}</span> </el-descriptions-item>
+        <el-descriptions-item label="既往� ><span v-if="prescribeItem!=null">{{prescribeItem.historyIllness}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者年� > <span v-if="prescribeItem!=null">{{prescribeItem.patientAge}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者姓� > <span v-if="prescribeItem!=null">{{prescribeItem.patientName}}</span> </el-descriptions-item>
         <el-descriptions-item label="是�有过��" > <dict-tag :options="orOptions" :value="prescribeItem.historyAllergic"/></el-descriptions-item>
-        <el-descriptions-item label="过��" ><span v-if="prescribeItem!=null">{{prescribeItem.weight}}</span></el-descriptions-item>
-        <el-descriptions-item label="�功能是�异常" ><span v-if="prescribeItem!=null">{{prescribeItem.liverUnusual}}</span> </el-descriptions-item>
-        <el-descriptions-item label="肾功能是�异常" > <span v-if="prescribeItem!=null">{{prescribeItem.renalUnusual}}</span> </el-descriptions-item>
-        <el-descriptions-item label="是�是备孕/怀孕/哺乳期" > <dict-tag :options="orOptions" :value="prescribeItem.isLactation"/> </el-descriptions-item>
-        <el-descriptions-item label="患者电�" >  <span v-if="prescribeItem!=null">{{prescribeItem.patientTel}}</span> </el-descriptions-item>
+        <el-descriptions-item label="过�� ><span v-if="prescribeItem!=null">{{prescribeItem.weight}}</span></el-descriptions-item>
+        <el-descriptions-item label="�功能是�异� ><span v-if="prescribeItem!=null">{{prescribeItem.liverUnusual}}</span> </el-descriptions-item>
+        <el-descriptions-item label="肾功能是�异� > <span v-if="prescribeItem!=null">{{prescribeItem.renalUnusual}}</span> </el-descriptions-item>
+        <el-descriptions-item label="是�是备�怀�哺乳� > <dict-tag :options="orOptions" :value="prescribeItem.isLactation"/> </el-descriptions-item>
+        <el-descriptions-item label="患者电� >  <span v-if="prescribeItem!=null">{{prescribeItem.patientTel}}</span> </el-descriptions-item>
         <el-descriptions-item label="�师�称" > <span v-if="prescribeItem!=null">{{prescribeItem.doctorDrugName}}</span>  </el-descriptions-item>
         <el-descriptions-item label="医生�称" > <span v-if="prescribeItem!=null">{{prescribeItem.doctorName}}</span> </el-descriptions-item>
         <el-descriptions-item label="审核时间" > <span v-if="prescribeItem!=null">{{prescribeItem.auditTime}}</span></el-descriptions-item>
@@ -141,12 +141,12 @@
       </el-table>
       <div style="height: 30px;">
         <div style="float: right;margin: 20px" v-if="prescribeItem.prescribeType==2">
-          剂数:<span class="color-danger">{{JSON.parse(prescribeItem.usageJson).counts}}</span>
+          剂数�span class="color-danger">{{JSON.parse(prescribeItem.usageJson).counts}}</span>
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="prescribeDialog.open = false">� 消</el-button>
-        <el-button type="primary" @click="prescribeDialog.open = false">确 定</el-button>
+        <el-button @click="prescribeDialog.open = false">��/el-button>
+        <el-button type="primary" @click="prescribeDialog.open = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
 
@@ -156,15 +156,15 @@
       </div>
       <el-descriptions :column="3" border  >
         <el-descriptions-item label="报告编�"><span v-if="reportItem!=null">{{reportItem.reportSn}}</span></el-descriptions-item>
-        <el-descriptions-item label="状�"><span v-if="reportItem!=null"><dict-tag :options="statusOptions" :value="reportItem.status"/></span></el-descriptions-item>
+        <el-descriptions-item label="状�><span v-if="reportItem!=null"><dict-tag :options="statusOptions" :value="reportItem.status"/></span></el-descriptions-item>
         <el-descriptions-item label="会员昵称"><span v-if="reportItem!=null">{{reportItem.nickName}}</span></el-descriptions-item>
         <el-descriptions-item label="会员电�"><span v-if="reportItem!=null">{{reportItem.phone}}</span></el-descriptions-item>
         <el-descriptions-item label="医生�称"><span v-if="reportItem!=null">{{reportItem.doctorName}}</span></el-descriptions-item>
-        <el-descriptions-item label="问诊�类型" ><dict-tag :options="inquirySubTypeOptions" :value="reportItem.inquirySubType"/></el-descriptions-item>
+        <el-descriptions-item label="问诊�类� ><dict-tag :options="inquirySubTypeOptions" :value="reportItem.inquirySubType"/></el-descriptions-item>
         <el-descriptions-item label="优惠劵��人"><span v-if="reportItem!=null">{{reportItem.sendName}}</span></el-descriptions-item>
         <el-descriptions-item label="主诉"><span v-if="reportItem!=null">{{reportItem.patientDescs}}</span></el-descriptions-item>
-        <el-descriptions-item label="疾病历"><span v-if="reportItem!=null">{{reportItem.illnessLogs}}</span></el-descriptions-item>
-        <el-descriptions-item label="用��"><span v-if="reportItem!=null">{{reportItem.drugLogs}}</span></el-descriptions-item>
+        <el-descriptions-item label="疾病�><span v-if="reportItem!=null">{{reportItem.illnessLogs}}</span></el-descriptions-item>
+        <el-descriptions-item label="用��><span v-if="reportItem!=null">{{reportItem.drugLogs}}</span></el-descriptions-item>
         <el-descriptions-item label="诊断结果"><span v-if="reportItem!=null">{{reportItem.inquiryResult}}</span></el-descriptions-item>
         <el-descriptions-item label="备注"><span v-if="reportItem!=null">{{reportItem.remark}}</span></el-descriptions-item>
         <el-descriptions-item label="医生签�"><span v-if="reportItem.signUrl!=null"><img :src="reportItem.signUrl" style="max-width: 100px;"></span></el-descriptions-item>
@@ -176,9 +176,9 @@
         ${process.env.VUE_APP_VIDEO_LINE_1}
       </div>
       <el-descriptions :column="3" border  >
-        <el-descriptions-item label="患者姓�" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).patientName}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者年龄" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).age}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者性别" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).sex==1?'男':'女'}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者姓� ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).patientName}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者年� ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).age}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者性别" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).sex==1?'�:'�}}</span></el-descriptions-item>
         <el-descriptions-item label="身份��" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).idCard}}</span></el-descriptions-item>
         <el-descriptions-item label="体�" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).weight}}</span></el-descriptions-item>
         <el-descriptions-item label="身高" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).height}}</span></el-descriptions-item>
@@ -221,8 +221,8 @@
         </el-descriptions>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="reportDialogVisible = false">� 消</el-button>
-        <el-button type="primary" @click="reportDialogVisible = false">确 定</el-button>
+        <el-button @click="reportDialogVisible = false">��/el-button>
+        <el-button type="primary" @click="reportDialogVisible = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
     <el-dialog title="用�报告" :visible.sync="drugReportDialogVisible" width="80%" :before-close="handleCloseR" append-to-body >
@@ -233,18 +233,18 @@
         <el-descriptions-item label="订�编�"><span v-if="drugReportItem!=null">{{drugReportItem.orderCode}}</span></el-descriptions-item>
         <el-descriptions-item label="病人�称"><span v-if="drugReportItem!=null">{{drugReportItem.patientName}}</span></el-descriptions-item>
         <el-descriptions-item label="医生�称"><span v-if="drugReportItem!=null">{{drugReportItem.doctorNane}}</span></el-descriptions-item>
-        <el-descriptions-item label="状�"><span v-if="drugReportItem!=null"> <dict-tag :options="statusDrugReportOptions" :value="drugReportItem.status"/></span></el-descriptions-item>
+        <el-descriptions-item label="状�><span v-if="drugReportItem!=null"> <dict-tag :options="statusDrugReportOptions" :value="drugReportItem.status"/></span></el-descriptions-item>
         <el-descriptions-item label="咨询总结"><span v-if="drugReportItem!=null">{{drugReportItem.reportSummary}}</span></el-descriptions-item>
         <el-descriptions-item label="生活建议"span="3"><span v-if="drugReportItem!=null">{{drugReportItem.reportAdvice}}</span></el-descriptions-item>
         <el-descriptions-item label="备注"span="3"><span v-if="drugReportItem!=null">{{drugReportItem.remark}}</span></el-descriptions-item>
-        <el-descriptions-item label="评分"span="3"><span v-if="drugReportItem!=null"><span v-html="drugReportItem.pingStar"></span></span></el-descriptions-item>
-        <el-descriptions-item label="评价" span="3"><span v-if="drugReportItem!=null"> <span v-html="drugReportItem.pingContent"></span></span></el-descriptions-item>
-        <el-descriptions-item label="评价时间" span="3"><span v-if="drugReportItem!=null"> <span v-html="drugReportItem.pingTime"></span></span></el-descriptions-item>
-        <el-descriptions-item label="创建时间" span="3"><span v-if="drugReportItem!=null"> <span v-html="drugReportItem.createTime"></span></span></el-descriptions-item>
+        <el-descriptions-item label="评分"span="3"><span v-if="drugReportItem!=null"><span v-safe-html="drugReportItem.pingStar"></span></span></el-descriptions-item>
+        <el-descriptions-item label="评价" span="3"><span v-if="drugReportItem!=null"> <span v-safe-html="drugReportItem.pingContent"></span></span></el-descriptions-item>
+        <el-descriptions-item label="评价时间" span="3"><span v-if="drugReportItem!=null"> <span v-safe-html="drugReportItem.pingTime"></span></span></el-descriptions-item>
+        <el-descriptions-item label="创建时间" span="3"><span v-if="drugReportItem!=null"> <span v-safe-html="drugReportItem.createTime"></span></span></el-descriptions-item>
       </el-descriptions>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="drugReportDialogVisible = false">� 消</el-button>
-        <el-button type="primary" @click="drugReportDialogVisible = false">确 定</el-button>
+        <el-button @click="drugReportDialogVisible = false">��/el-button>
+        <el-button type="primary" @click="drugReportDialogVisible = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
 
@@ -276,7 +276,7 @@ export default {
       drugReportDialogVisible:false,
       prescribeDialog:{
         open:false,
-        title:"处方�"
+        title:"处方�
       },
       msgForm:{
         pageNum: 1,

+ 4 - 4
src/views/components/his/integralGoodsDetails.vue

@@ -7,7 +7,7 @@
         <div class="desct"> 积分商�信�</div>
         <el-descriptions title="" :column="3" border>
           <el-descriptions-item label="商��称"><span v-if="item!=null">{{item.goodsName}}</span></el-descriptions-item>
-          <el-descriptions-item label="��图"> <el-image v-if="item.imgUrl!=null"
+          <el-descriptions-item label="���> <el-image v-if="item.imgUrl!=null"
                   style="width: 100px"
                   :src="item.imgUrl"
                   :preview-src-list="[item.imgUrl]">
@@ -20,13 +20,13 @@
           <el-descriptions-item label="需支付金�"><span v-if="item!=null">{{item.cash}}</span></el-descriptions-item>
           <el-descriptions-item label="排�"><span v-if="item!=null">{{item.sort}}</span></el-descriptions-item>
           <el-descriptions-item label="库存"><span v-if="item!=null">{{item.stock}}</span></el-descriptions-item>
-          <el-descriptions-item label="状�"><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
+          <el-descriptions-item label="状�><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
           <el-descriptions-item label="创建时间"><span v-if="item!=null">{{item.createTime}}</span></el-descriptions-item>
         </el-descriptions>
     </div>
     <div class="contentx" v-if="item!=null">
         <div class="desct"> 积分商�信�</div>
-    <span v-html="item.descs"></span>
+    <span v-safe-html="item.descs"></span>
     </div>
 
     </div>
@@ -40,7 +40,7 @@ import { listIntegralGoods, getIntegralGoods, delIntegralGoods, addIntegralGoods
       return {
         // 商�分类字典
         goodsTypeOptions: [],
-        // 状�字典
+        // 状�字�
         statusOptions: [],
         item:null,
       }

+ 2 - 2
src/views/components/his/medicatedFoodDetails.vue

@@ -19,9 +19,9 @@
           <el-descriptions-item label="椋熸潗"><span v-if="item!=null">{{item.food}}</span></el-descriptions-item>
 
           <el-descriptions-item label="鍒涘缓鏃堕棿"><span v-if="item!=null">{{item.createTime}}</span></el-descriptions-item>
-          <el-descriptions-item label="鐘舵€�"><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
+          <el-descriptions-item label="鐘舵€?><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
           <el-descriptions-item label="涓绘不鐤剧梾" span="3"><span v-if="item!=null" >{{item.indications}}</span></el-descriptions-item>
-          <el-descriptions-item label="鎻忚堪" span="3"><span v-if="item!=null" > <span v-html="item.descs"></span></span></el-descriptions-item>
+          <el-descriptions-item label="鎻忚堪" span="3"><span v-if="item!=null" > <span v-safe-html="item.descs"></span></span></el-descriptions-item>
         </el-descriptions>
     </div>
 

+ 35 - 35
src/views/components/his/msgDetails.vue

@@ -18,7 +18,7 @@
           <div v-if="lt.msgContentType == '4'" :class="{ 'right': lt.msgType == '2'}">
             <video  :src="lt.content" controls style="max-width: 400px; max-height: 400px;"></video>
           </div>
-          <span v-if="lt.msgContentType == '5'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="getPrescribe(JSON.parse(lt.content).prescribeId)">处方�</el-link></span>
+          <span v-if="lt.msgContentType == '5'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="getPrescribe(JSON.parse(lt.content).prescribeId)">处方�/el-link></span>
           <span v-if="lt.msgContentType == '6'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="report(lt.content)">问诊报告</el-link></span>
           <span v-if="lt.msgContentType == '7'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="follow(lt.content)">�访</el-link></span>
           <span v-if="lt.msgContentType == '8'" :class="{ 'right': lt.msgType == '2'}"><el-link type="primary" :underline="false" @click="drugReport(lt.content)">用�报告</el-link></span>
@@ -41,7 +41,7 @@
       @pagination="msgList"
     />
     <el-dialog
-      title="�访�"
+      title="�访�
       :visible.sync="followDialogVisible"
       width="80%"
       :before-close="handleCloseSF" append-to-body >
@@ -75,31 +75,31 @@
               </div>
 
       <span slot="footer" class="dialog-footer">
-        <el-button @click="followDialogVisible = false">� 消</el-button>
-        <el-button type="primary" @click="followDialogVisible = false">确 定</el-button>
+        <el-button @click="followDialogVisible = false">��/el-button>
+        <el-button type="primary" @click="followDialogVisible = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
-    <el-dialog title="处方�" :visible.sync="prescribeDialog.open" width="80%" :before-close="handleClose" append-to-body >
+    <el-dialog title="处方� :visible.sync="prescribeDialog.open" width="80%" :before-close="handleClose" append-to-body >
       <div class="desct">
         基本信�
       </div>
       <el-descriptions :column="3" border  >
-        <el-descriptions-item label="处方�编�"  >
+        <el-descriptions-item label="处方�编�  >
             <span v-if="prescribeItem!=null">
               {{prescribeItem.prescribeCode}}
             </span>
         </el-descriptions-item>
         <el-descriptions-item label="病情�述"  > <span v-if="prescribeItem!=null">{{prescribeItem.patientDescs}}</span></el-descriptions-item>
         <el-descriptions-item label="诊断"  > <span v-if="prescribeItem!=null">{{prescribeItem.diagnose}}</span></el-descriptions-item>
-        <el-descriptions-item label="既往�" ><span v-if="prescribeItem!=null">{{prescribeItem.historyIllness}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者年龄" > <span v-if="prescribeItem!=null">{{prescribeItem.patientAge}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者姓�" > <span v-if="prescribeItem!=null">{{prescribeItem.patientName}}</span> </el-descriptions-item>
+        <el-descriptions-item label="既往� ><span v-if="prescribeItem!=null">{{prescribeItem.historyIllness}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者年� > <span v-if="prescribeItem!=null">{{prescribeItem.patientAge}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者姓� > <span v-if="prescribeItem!=null">{{prescribeItem.patientName}}</span> </el-descriptions-item>
         <el-descriptions-item label="是�有过��" > <dict-tag :options="orOptions" :value="prescribeItem.historyAllergic"/></el-descriptions-item>
-        <el-descriptions-item label="过��" ><span v-if="prescribeItem!=null">{{prescribeItem.weight}}</span></el-descriptions-item>
-        <el-descriptions-item label="�功能是�异常" ><span v-if="prescribeItem!=null">{{prescribeItem.liverUnusual}}</span> </el-descriptions-item>
-        <el-descriptions-item label="肾功能是�异常" > <span v-if="prescribeItem!=null">{{prescribeItem.renalUnusual}}</span> </el-descriptions-item>
-        <el-descriptions-item label="是�是备孕/怀孕/哺乳期" > <dict-tag :options="orOptions" :value="prescribeItem.isLactation"/> </el-descriptions-item>
-        <el-descriptions-item label="患者电�" >  <span v-if="prescribeItem!=null">{{prescribeItem.patientTel}}</span> </el-descriptions-item>
+        <el-descriptions-item label="过�� ><span v-if="prescribeItem!=null">{{prescribeItem.weight}}</span></el-descriptions-item>
+        <el-descriptions-item label="�功能是�异� ><span v-if="prescribeItem!=null">{{prescribeItem.liverUnusual}}</span> </el-descriptions-item>
+        <el-descriptions-item label="肾功能是�异� > <span v-if="prescribeItem!=null">{{prescribeItem.renalUnusual}}</span> </el-descriptions-item>
+        <el-descriptions-item label="是�是备�怀�哺乳� > <dict-tag :options="orOptions" :value="prescribeItem.isLactation"/> </el-descriptions-item>
+        <el-descriptions-item label="患者电� >  <span v-if="prescribeItem!=null">{{prescribeItem.patientTel}}</span> </el-descriptions-item>
         <el-descriptions-item label="�师�称" > <span v-if="prescribeItem!=null">{{prescribeItem.doctorDrugName}}</span>  </el-descriptions-item>
         <el-descriptions-item label="医生�称" > <span v-if="prescribeItem!=null">{{prescribeItem.doctorName}}</span> </el-descriptions-item>
         <el-descriptions-item label="审核时间" > <span v-if="prescribeItem!=null">{{prescribeItem.auditTime}}</span></el-descriptions-item>
@@ -141,12 +141,12 @@
       </el-table>
       <div style="height: 30px;">
         <div style="float: right;margin: 20px" v-if="prescribeItem.prescribeType==2">
-          剂数:<span class="color-danger">{{JSON.parse(prescribeItem.usageJson).counts}}</span>
+          剂数�span class="color-danger">{{JSON.parse(prescribeItem.usageJson).counts}}</span>
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="prescribeDialog.open = false">� 消</el-button>
-        <el-button type="primary" @click="prescribeDialog.open = false">确 定</el-button>
+        <el-button @click="prescribeDialog.open = false">��/el-button>
+        <el-button type="primary" @click="prescribeDialog.open = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
 
@@ -156,15 +156,15 @@
       </div>
       <el-descriptions :column="3" border  >
         <el-descriptions-item label="报告编�"><span v-if="reportItem!=null">{{reportItem.reportSn}}</span></el-descriptions-item>
-        <el-descriptions-item label="状�"><span v-if="reportItem!=null"><dict-tag :options="statusOptions" :value="reportItem.status"/></span></el-descriptions-item>
+        <el-descriptions-item label="状�><span v-if="reportItem!=null"><dict-tag :options="statusOptions" :value="reportItem.status"/></span></el-descriptions-item>
         <el-descriptions-item label="会员昵称"><span v-if="reportItem!=null">{{reportItem.nickName}}</span></el-descriptions-item>
         <el-descriptions-item label="会员电�"><span v-if="reportItem!=null">{{reportItem.phone}}</span></el-descriptions-item>
         <el-descriptions-item label="医生�称"><span v-if="reportItem!=null">{{reportItem.doctorName}}</span></el-descriptions-item>
-        <el-descriptions-item label="问诊�类型" ><dict-tag :options="inquirySubTypeOptions" :value="reportItem.inquirySubType"/></el-descriptions-item>
+        <el-descriptions-item label="问诊�类� ><dict-tag :options="inquirySubTypeOptions" :value="reportItem.inquirySubType"/></el-descriptions-item>
         <el-descriptions-item label="优惠劵��人"><span v-if="reportItem!=null">{{reportItem.sendName}}</span></el-descriptions-item>
         <el-descriptions-item label="主诉"><span v-if="reportItem!=null">{{reportItem.patientDescs}}</span></el-descriptions-item>
-        <el-descriptions-item label="疾病历"><span v-if="reportItem!=null">{{reportItem.illnessLogs}}</span></el-descriptions-item>
-        <el-descriptions-item label="用��"><span v-if="reportItem!=null">{{reportItem.drugLogs}}</span></el-descriptions-item>
+        <el-descriptions-item label="疾病�><span v-if="reportItem!=null">{{reportItem.illnessLogs}}</span></el-descriptions-item>
+        <el-descriptions-item label="用��><span v-if="reportItem!=null">{{reportItem.drugLogs}}</span></el-descriptions-item>
         <el-descriptions-item label="诊断结果"><span v-if="reportItem!=null">{{reportItem.inquiryResult}}</span></el-descriptions-item>
         <el-descriptions-item label="备注"><span v-if="reportItem!=null">{{reportItem.remark}}</span></el-descriptions-item>
         <el-descriptions-item label="医生签�"><span v-if="reportItem.signUrl!=null"><img :src="reportItem.signUrl" style="max-width: 100px;"></span></el-descriptions-item>
@@ -177,13 +177,13 @@
             {{ patientInfo }}
           </span>
           <span v-else>
-            患者信�
+            患者信�
           </span>
       </div>
       <el-descriptions :column="3" border  >
-       <el-descriptions-item label="患者姓�" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).patientName}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者年龄" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).age}}</span></el-descriptions-item>
-        <el-descriptions-item label="患者性别" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).sex==1?'男':'女'}}</span></el-descriptions-item>
+       <el-descriptions-item label="患者姓� ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).patientName}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者年� ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).age}}</span></el-descriptions-item>
+        <el-descriptions-item label="患者性别" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).sex==1?'�:'�}}</span></el-descriptions-item>
         <el-descriptions-item label="身份��" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).idCard}}</span></el-descriptions-item>
         <el-descriptions-item label="体�" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).weight}}</span></el-descriptions-item>
         <el-descriptions-item label="身高" ><span v-if="reportItem.patientJson!=null">{{JSON.parse(reportItem.patientJson).height}}</span></el-descriptions-item>
@@ -226,8 +226,8 @@
             </el-descriptions>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="reportDialogVisible = false">� 消</el-button>
-        <el-button type="primary" @click="reportDialogVisible = false">确 定</el-button>
+        <el-button @click="reportDialogVisible = false">��/el-button>
+        <el-button type="primary" @click="reportDialogVisible = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
     <el-dialog title="用�报告" :visible.sync="drugReportDialogVisible" width="80%" :before-close="handleCloseR" append-to-body >
@@ -238,18 +238,18 @@
         <el-descriptions-item label="订�编�"><span v-if="drugReportItem!=null">{{drugReportItem.orderCode}}</span></el-descriptions-item>
         <el-descriptions-item label="病人�称"><span v-if="drugReportItem!=null">{{drugReportItem.patientName}}</span></el-descriptions-item>
         <el-descriptions-item label="医生�称"><span v-if="drugReportItem!=null">{{drugReportItem.doctorNane}}</span></el-descriptions-item>
-        <el-descriptions-item label="状�"><span v-if="drugReportItem!=null"> <dict-tag :options="statusDrugReportOptions" :value="drugReportItem.status"/></span></el-descriptions-item>
+        <el-descriptions-item label="状�><span v-if="drugReportItem!=null"> <dict-tag :options="statusDrugReportOptions" :value="drugReportItem.status"/></span></el-descriptions-item>
         <el-descriptions-item label="咨询总结"><span v-if="drugReportItem!=null">{{drugReportItem.reportSummary}}</span></el-descriptions-item>
         <el-descriptions-item label="生活建议"span="3"><span v-if="drugReportItem!=null">{{drugReportItem.reportAdvice}}</span></el-descriptions-item>
         <el-descriptions-item label="备注"span="3"><span v-if="drugReportItem!=null">{{drugReportItem.remark}}</span></el-descriptions-item>
-        <el-descriptions-item label="评分"span="3"><span v-if="drugReportItem!=null"><span v-html="drugReportItem.pingStar"></span></span></el-descriptions-item>
-        <el-descriptions-item label="评价" span="3"><span v-if="drugReportItem!=null"> <span v-html="drugReportItem.pingContent"></span></span></el-descriptions-item>
-        <el-descriptions-item label="评价时间" span="3"><span v-if="drugReportItem!=null"> <span v-html="drugReportItem.pingTime"></span></span></el-descriptions-item>
-        <el-descriptions-item label="创建时间" span="3"><span v-if="drugReportItem!=null"> <span v-html="drugReportItem.createTime"></span></span></el-descriptions-item>
+        <el-descriptions-item label="评分"span="3"><span v-if="drugReportItem!=null"><span v-safe-html="drugReportItem.pingStar"></span></span></el-descriptions-item>
+        <el-descriptions-item label="评价" span="3"><span v-if="drugReportItem!=null"> <span v-safe-html="drugReportItem.pingContent"></span></span></el-descriptions-item>
+        <el-descriptions-item label="评价时间" span="3"><span v-if="drugReportItem!=null"> <span v-safe-html="drugReportItem.pingTime"></span></span></el-descriptions-item>
+        <el-descriptions-item label="创建时间" span="3"><span v-if="drugReportItem!=null"> <span v-safe-html="drugReportItem.createTime"></span></span></el-descriptions-item>
       </el-descriptions>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="drugReportDialogVisible = false">� 消</el-button>
-        <el-button type="primary" @click="drugReportDialogVisible = false">确 定</el-button>
+        <el-button @click="drugReportDialogVisible = false">��/el-button>
+        <el-button type="primary" @click="drugReportDialogVisible = false">ç¡?å®?/el-button>
       </span>
     </el-dialog>
 
@@ -283,7 +283,7 @@ import {getPrescribe,getDrugInfo} from "@/api/his/prescribe";
         drugReportDialogVisible:false,
         prescribeDialog:{
           open:false,
-          title:"处方�"
+          title:"处方�
         },
         msgForm:{
           pageNum: 1,

+ 12 - 12
src/views/components/his/packageDetails.vue

@@ -2,33 +2,33 @@
 
   <div style="background-color: #f0f2f5; padding-bottom: 20px; min-height: 100%; " >
     <div style="padding: 20px; background-color: #fff;">
-      套é¤�包详æƒ
+      套�包详�
     </div>
 
 <div class="content" v-if="item!=null">
     <div class="desct">
-      套�包信�
+      套�包信�
     </div>
     <el-descriptions title="" :column="3" border>
-    <el-descriptions-item label="套�包�称" >
+    <el-descriptions-item label="套�包�� >
         <span v-if="item!=null">{{item.packageName}}</span>
     </el-descriptions-item>
-    <el-descriptions-item label="状�" >
+    <el-descriptions-item label="状� >
          <dict-tag :options="statusOptions" :value="item.status"/>
     </el-descriptions-item>
     <el-descriptions-item label="类型" >
          <dict-tag :options="packageTypeOptions" :value="item.packageType"/>
     </el-descriptions-item>
-    <el-descriptions-item label="�类型" >
+    <el-descriptions-item label="�类� >
          <dict-tag :options="packageSubTypeOptions" :value="item.packageSubType"/>
     </el-descriptions-item>
     <el-descriptions-item label="疾病类型" >
          <dict-tag :options="diseaseTypeOptions" :value="item.diseaseType"/>
     </el-descriptions-item>
-    <el-descriptions-item label="总价 元/天" >
+    <el-descriptions-item label="总价 �� >
          <span v-if="item!=null">{{item.price}}</span>
     </el-descriptions-item>
-    <el-descriptions-item label="套�价" >
+    <el-descriptions-item label="套�� >
          <span v-if="item!=null">{{item.totalPrice}}</span>
     </el-descriptions-item>
     <el-descriptions-item label="周期" >
@@ -54,7 +54,7 @@
     <el-descriptions-item label="修改时间" >
         <span v-if="item!=null">{{item.updateTime}}</span>
     </el-descriptions-item>
-    <el-descriptions-item label="��图" >
+    <el-descriptions-item label="��� >
         <el-image v-for="img in item.imgUrl" :key="img"
             style="width: 100px"
             :src="img"
@@ -91,7 +91,7 @@
                 <el-table-column label="商��称" show-overflow-tooltip align="center" prop="productName" />
                 <el-table-column label="数�" align="center"  prop="count" width="150px" />
                 <el-table-column label="�用方法" align="center"  prop="usageMethod" width="150px" />
-                <el-table-column label="一日几次" align="center"  prop="usageFrequencyUnit" width="150px" />
+                <el-table-column label="一日几� align="center"  prop="usageFrequencyUnit" width="150px" />
                 <el-table-column label="商�编�" align="center" prop="barCode" />
                 <el-table-column label="商�规格" align="center" prop="sku" />
                 <el-table-column label="售价" align="center"  prop="price"  >
@@ -118,7 +118,7 @@
 <div class="desct">
   套�详情
 </div>
-<span v-html="item.desc"></span>
+<span v-safe-html="item.desc"></span>
  </div>
       </div>
 </template>
@@ -131,7 +131,7 @@ import {list as getAppMallOptions} from '@/api/course/coursePlaySourceConfig';
     props:["data"],
     data() {
       return {
-       // 状�字典
+       // 状�字�
        drugList:[],
        drugOpen:false,
        statusOptions: [],
@@ -153,7 +153,7 @@ import {list as getAppMallOptions} from '@/api/course/coursePlaySourceConfig';
         const ids = this.item.appIds.split(',');
         return ids
           .map(id => this.appMallOptions.find(opt => opt.appid === id)?.name)
-          .filter(Boolean); // 过滤掉找ä¸�到çš
+          .filter(Boolean); // 过滤掉找�到�
       }
     },
     created() {

+ 10 - 10
src/views/components/his/storeProductDetails.vue

@@ -28,7 +28,7 @@
                 <span v-if="item!=null">{{item.productIntroduce}}</span>
 
             </el-descriptions-item>
-            <el-descriptions-item label="关键字" >
+            <el-descriptions-item label="关键� >
                 <span v-if="item!=null">{{item.keyword}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="产���" >
@@ -40,20 +40,20 @@
             <el-descriptions-item label="商�价格" >
                 <span v-if="item!=null">{{item.price}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="市场价" >
+            <el-descriptions-item label="市场� >
                 <span v-if="item!=null">{{item.otPrice}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="���"  >
+            <el-descriptions-item label="���  >
                 <span v-if="item!=null">{{item.unitName}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="排�" >
                 <span v-if="item!=null">{{item.sort}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="销�" >
+            <el-descriptions-item label="销� >
                 <span v-if="item!=null">{{item.stock}}</span>
             </el-descriptions-item>
 
-            <el-descriptions-item label="状�" >
+            <el-descriptions-item label="状� >
 
                    <dict-tag :options="specShowOptions" :value="item.isShow"/>
             </el-descriptions-item>
@@ -76,16 +76,16 @@
             <el-descriptions-item label="是�包邮" >
                <dict-tag :options="orOptions" :value="item.isPostage"/>
             </el-descriptions-item>
-            <el-descriptions-item label="是�在商�展示" >
+            <el-descriptions-item label="是�在商�展� >
                <dict-tag :options="orOptions" :value="item.isDisplay"/>
             </el-descriptions-item>
             <el-descriptions-item label="获得积分" >
                 <span v-if="item!=null">{{item.giveIntegral}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="�本价"  >
+            <el-descriptions-item label="�本�  >
                 <span v-if="item!=null">{{item.costPrice}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="�览�" >
+            <el-descriptions-item label="�览� >
                 <span v-if="item!=null">{{item.views}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="产�二维�地�" >
@@ -103,7 +103,7 @@
             <el-descriptions-item label="生产厂家" >
                 <span v-if="item!=null">{{item.prescribeFactory}}</span>
             </el-descriptions-item>
-            <el-descriptions-item label="处方�" >
+            <el-descriptions-item label="处方� >
                 <span v-if="item!=null">{{item.prescribeName}}</span>
             </el-descriptions-item>
 
@@ -126,7 +126,7 @@
       <div class="desct">
         ���述
       </div>
-        <span v-html="item.desc"></span>
+        <span v-safe-html="item.desc"></span>
      <!-- <el-descriptions  direction="vertical" :column="1" border >
          <el-descriptions-item label="���述" >
 

+ 4 - 4
src/views/components/his/vesselDetails.vue

@@ -13,14 +13,14 @@
                     :preview-src-list="[item.imgUrl]">
             </el-image>
           </el-descriptions-item>
-          <el-descriptions-item label="霂瑁��亦�蝏𦦵庖雿滚�蝘�"><span v-if="item!=null">{{item.vesselName}}</span></el-descriptions-item>
+          <el-descriptions-item label="霂瑁��亦�蝏𦦵庖雿滚�蝘?><span v-if="item!=null">{{item.vesselName}}</span></el-descriptions-item>
           <el-descriptions-item label="�鍦�"><span v-if="item!=null">{{item.sort}}</span></el-descriptions-item>
            <el-descriptions-item label="蝏讐�"><span v-if="item!=null">{{item.vessel}}</span></el-descriptions-item>
           <el-descriptions-item label="�其�"><span v-if="item!=null">{{item.region}}</span></el-descriptions-item>
 
-          <el-descriptions-item label="�嗆��"><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
+          <el-descriptions-item label="�嗆�?><span v-if="item!=null"> <dict-tag :options="statusOptions" :value="item.status"/></span></el-descriptions-item>
           <el-descriptions-item label="�𥕦遣�園𡢿"><span v-if="item!=null">{{item.createTime}}</span></el-descriptions-item>
-          <el-descriptions-item label="�讛膩"><span  v-if="item!=null" v-html="item.descs" ></span></el-descriptions-item>
+          <el-descriptions-item label="�讛膩"><span  v-if="item!=null" v-safe-html="item.descs" ></span></el-descriptions-item>
         </el-descriptions>
     </div>
 
@@ -35,7 +35,7 @@ import { listVessel, getVessel, delVessel, addVessel, updateVessel, exportVessel
     data() {
       return {
         item:null,
-        // �嗆����
+        // �嗆����?
         statusOptions: [],
       }
     },

+ 10 - 4
src/views/course/courseFinishTemp/index.vue

@@ -280,7 +280,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -298,7 +299,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -380,7 +382,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -398,7 +401,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -463,6 +467,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import {
   listCourseFinishTemp,
   getCourseFinishTemp,
@@ -483,6 +488,7 @@ export default {
   components: { SelectTree, ImageUpload},
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       selectedCompanyList: [],
       deptList: [],
       //上传语音的遮罩层

+ 10 - 4
src/views/course/courseFinishTempParent/index.vue

@@ -208,7 +208,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -226,7 +227,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -308,7 +310,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -326,7 +329,8 @@
                           class="avatar-uploader"
                           :action="uploadUrl"
                           :show-file-list="false"
-                          :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
+                          :headers="uploadHeaders"
+                                                :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
                           <i class="el-icon-plus avatar-uploader-icon"></i>
                         </el-upload>
@@ -391,6 +395,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import {getCompanyList} from "@/api/company/company";
 import { listCourseFinishTempParent, getCourseFinishTempParent, delCourseFinishTempParent, addCourseFinishTempParent, updateCourseFinishTempParent, exportCourseFinishTempParent } from "@/api/course/courseFinishTempParent";
 import {courseList} from '@/api/qw/sop'
@@ -403,6 +408,7 @@ export default {
   components: { ImageUpload },
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       voiceLoading: false,
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS2",
       uploadUrlByVoice: process.env.VUE_APP_BASE_API + "/common/uploadOSSByHOOKVoice",

+ 2 - 2
src/views/course/coursePlaySourceConfig/index.vue

@@ -782,8 +782,8 @@ export default {
         img: null,
         originalId: null,
         setCompanyIdList: [],
-        token: 'cbnd7lJvkripVOpyTFAna6NAWCxCrvC',
-        aesKey: 'HlEiBB55eaWUaeBVAQO3cWKWPYv1vOVQSq7nFNICw4E',
+        token: '',
+        aesKey: '',
         msgDataFormat: 'JSON',
         type: '1',
         status: 0

+ 44 - 44
src/views/course/courseQuestionBank/index.vue

@@ -4,7 +4,7 @@
       <el-form-item label="问题" prop="title">
         <el-input
           v-model="queryParams.title"
-          placeholder="请输入问题标题"
+          placeholder="请输入问题标�
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -13,7 +13,7 @@
 <!--      <el-form-item label="排�" prop="sort">-->
 <!--        <el-input-->
 <!--          v-model="queryParams.sort"-->
-<!--          placeholder="请输入排�"-->
+<!--          placeholder="请输入排�-->
 <!--          clearable-->
 <!--          size="small"-->
 <!--          @keyup.enter.native="handleQuery"-->
@@ -39,8 +39,8 @@
           />
 	    </el-select>
 	  </el-form-item>
-    <el-form-item label="题目�类别" prop="questionSubType" label-width="100px">
-      <el-select v-model="queryParams.questionSubType" ref="typeSelect" placeholder="请选择�类别" clearable size="small">
+    <el-form-item label="题目�类� prop="questionSubType" label-width="100px">
+      <el-select v-model="queryParams.questionSubType" ref="typeSelect" placeholder="请选择�类� clearable size="small">
         <el-option
           v-for="item in questionSubTypeOptions"
           :key="item.dictValue"
@@ -51,8 +51,8 @@
     </el-form-item>
 
 
-<!--      <el-form-item label="状�" prop="status">-->
-<!--        <el-select v-model="queryParams.status" placeholder="请选择状�" clearable size="small">-->
+<!--      <el-form-item label="状� prop="status">-->
+<!--        <el-select v-model="queryParams.status" placeholder="请选择状� clearable size="small">-->
 <!--          <el-option-->
 <!--            v-for="dict in statusOptions"-->
 <!--            :key="dict.dictValue"-->
@@ -137,12 +137,12 @@
         <el-tag v-if="scope.row.questionType">{{ getCategoryName(scope.row.questionType) }}</el-tag>
 	    </template>
 	  </el-table-column>
-    <el-table-column label="题目�类别" align="center" prop="questionType">
+    <el-table-column label="题目�类� align="center" prop="questionType">
       <template slot-scope="scope">
         <el-tag v-if="scope.row.questionSubType">{{ getCategoryName(scope.row.questionSubType) }}</el-tag>
       </template>
     </el-table-column>
-      <el-table-column label="状�" align="center" prop="status">
+      <el-table-column label="状� align="center" prop="status">
         <template slot-scope="scope">
           <dict-tag :options="statusOptions" :value="scope.row.status"/>
         </template>
@@ -181,10 +181,10 @@
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" placeholder="请输入问题" />
+          <el-input v-model="form.title" placeholder="请输入问� />
         </el-form-item>
         <el-form-item label="排�" prop="sort">
-          <el-input-number v-model="form.sort"  :min="0" label="请输入排�"></el-input-number>
+          <el-input-number v-model="form.sort"  :min="0" label="请输入排�></el-input-number>
         </el-form-item>
         <el-form-item label="类别 " prop="type">
           <el-select v-model="form.type" placeholder="请选择类别" @change="changeType">
@@ -205,7 +205,7 @@
           :value="item.dictValue"
         />
 		  </el-select>
-      <el-select v-model="form.questionSubType" clearable placeholder="请选择题目�类别" >
+      <el-select v-model="form.questionSubType" clearable placeholder="请选择题目�类� >
         <el-option
           v-for="item in questionSubTypeOptions"
           :key="item.dictValue"
@@ -214,7 +214,7 @@
         />
       </el-select>
 		</el-form-item>
-        <el-form-item label="状�">
+        <el-form-item label="状�>
           <el-radio-group v-model="form.status">
             <el-radio
               v-for="dict in statusOptions"
@@ -236,10 +236,10 @@
             </el-table-column>
             <el-table-column label="选项" prop="name" >
               <template slot-scope="scope">
-                <el-input v-model="scope.row.name" :placeholder="getOptionLabel(scope.$index) + ':' + '请输入标题'" ></el-input>
+                <el-input v-model="scope.row.name" :placeholder="getOptionLabel(scope.$index) + '� + '请输入标�" ></el-input>
               </template>
             </el-table-column>
-            <el-table-column label="是�为答案" prop="isWrite" >
+            <el-table-column label="是�为答� prop="isWrite" >
               <template slot-scope="scope">
                 <el-tooltip
                   v-if="!scope.row.name"
@@ -281,8 +281,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">� 消</el-button>
+        <el-button type="primary" @click="submitForm">ç¡?å®?/el-button>
+        <el-button @click="cancel">��/el-button>
       </div>
     </el-dialog>
 
@@ -291,7 +291,7 @@
       <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">
-          将文件拖到此处,æˆ
+          将文件拖到此处,�
           <em>点击上传</em>
         </div>
         <div class="el-upload__tip" slot="tip">
@@ -300,15 +300,15 @@
         <div class="el-upload__tip" style="color:red" slot="tip">�示:仅�许导入“xls�或“xlsx�格�文件�</div>
       </el-upload>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" :loading="upload.isUploading" :disabled="upload.isUploading" @click="submitFileForm">确 定</el-button>
-        <el-button @click="upload.open = false">� 消</el-button>
+        <el-button type="primary" :loading="upload.isUploading" :disabled="upload.isUploading" @click="submitFileForm">ç¡?å®?/el-button>
+        <el-button @click="upload.open = false">��/el-button>
       </div>
     </el-dialog>
     <el-dialog title="导入结果" :close-on-press-escape="false" :close-on-click-modal="false" :visible.sync="importMsgOpen" width="500px" append-to-body>
-      <div class="import-msg" v-html="importMsg">
+      <div class="import-msg" v-safe-html="importMsg">
       </div>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="importMsgOpen = false">å…³ é—­</el-button>
+        <el-button @click="importMsgOpen = false">å…?é—?/el-button>
         <el-button
           v-if="failList && failList.length > 0"
           type="primary"
@@ -353,9 +353,9 @@ export default {
   data() {
     return {
       exportFailLoading: false,
-      //å�•é€
+      //��
       selectedAnswer:null,
-      //多é€
+      //多�
       selectedAnswers: [],
 
       typeOptions: [],
@@ -366,28 +366,28 @@ export default {
         { name: "", isAnswer: 0, indexId:2},
         { name: "", isAnswer: 0, indexId:3},
       ],
-      // é�®ç½©å±
+      // �罩�
       loading: true,
-      // 导出é�®ç½©å±
+      // 导出�罩�
       exportLoading: false,
       // 选中数组
       ids: [],
-      // ��个�用
+      // ��个��
       single: true,
-      // �多个�用
+      // �多个��
       multiple: true,
       // 显示�索�件
       showSearch: true,
-      // 总�数
+      // 总��
       total: 0,
       // 题库表格数�
       courseQuestionBankList: [],
 	  questionTypeOptions: [],
       questionRootTypeOptions: [],
 	    questionSubTypeOptions: [],
-      // 弹出层标题
+      // 弹出层标�
       title: "",
-      // 是å�¦æ˜¾ç¤ºå¼¹å‡ºå±
+      // 是�显示弹出�
       open: false,
       // 查询�数
       queryParams: {
@@ -418,13 +418,13 @@ export default {
       failList:[],
       importMsg: '',
       upload: {
-        // 是å�¦æ˜¾ç¤ºå¼¹å‡ºå±‚(文件导入ï¼
+        // 是�显示弹出层(文件导入�
         open: false,
-        // 弹出层标题(文件导入ï¼
+        // 弹出层标题(文件导入�
         title: "",
         // 是��用上传
         isUploading: false,
-        // 设置上传的请求头部
+        // 设置上传的请求头�
         headers: { Authorization: "Bearer " + getToken() },
         // 上传的地�
         url: process.env.VUE_APP_BASE_API + "/course/courseQuestionBank/importData",
@@ -448,7 +448,7 @@ export default {
 // 导出失败信�
     handleExportFailList(failList) {
       if (!failList || failList.length === 0) {
-        this.msgWarning("没有失败信��导出");
+        this.msgWarning("没有失败信��导�);
         return;
       }
 
@@ -473,7 +473,7 @@ export default {
       });
     },
 
-    // 分类æ 
+    // 分类�
     getCategoryTree() {
       listUserCourseCategory().then(response => {
         this.questionTypeOptions = response.data
@@ -498,9 +498,9 @@ export default {
         this.selectedAnswers = [];
         this.selectedAnswer = null;
         this.question.forEach(item => {
-          item.isAnswer = 0; // 清除所有选项的选中状æ€
+          item.isAnswer = 0; // 清除所有选项的选中状�
         });
-        // �置答案的显示值
+        // �置答案的显示�
         this.form.answer = null;
     },
     //选择答案
@@ -518,19 +518,19 @@ export default {
         this.form.answer = row.name;
       } else if (this.form.type === 2) {
 
-        // 多选模�:将所有被选中的答案存储到 selectedAnswers 数组 先检查当�选项是�已�在选中答案列表中
+        // 多选模�:将所有被选中的答案存储到 selectedAnswers 数组 先检查当�选项是�已�在选中答案列表�
         if (row.isAnswer === 1) {
           // 如果选中,将该答案加入到选中数组
           this.selectedAnswers.push(row);
         } else {
-          // 如果�消选中,从选中数组中移除
+          // 如果�消选中,从选中数组中移�
           this.selectedAnswers = this.selectedAnswers.filter(item => item.indexId !== row.indexId);
         }
 
-        // 对 selectedAnswers 进行排� (�设按 row.indexId 排�)
+        // �selectedAnswers 进行排� (�设�row.indexId 排�)
         this.selectedAnswers.sort((a, b) => a.indexId - b.indexId);
 
-        // 更新 form.answer,�存所有选中的答案
+        // 更新 form.answer,�存所有选中的答�
         this.form.answer = this.selectedAnswers.map(item => item.name);
       }
 
@@ -610,7 +610,7 @@ export default {
         this.form = response.data;
         this.changeCateType(this.form.questionType)
 
-        //åˆ�始化多选的选择结果,å�•选的选择的时候,就å�–消其他的äºselectedAnswers
+        //�始化多选的选择结果,�选的选择的时候,就�消其他的�selectedAnswers
         if (this.form.type===2) {
           this.form.answer=JSON.parse(this.form.answer)
           this.selectedAnswers = JSON.parse(this.form.question).filter(item => item.isAnswer === 1);
@@ -657,7 +657,7 @@ export default {
     /** 删除按钮�作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$confirm('是�确认删除题库编�为"' + ids + '"的数�项?', "警告", {
+      this.$confirm('是�确认删除题库编��' + ids + '"的数�项?', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "�消",
           type: "warning"
@@ -697,7 +697,7 @@ export default {
     submitFileForm() {
       this.$refs.upload.submit();
     },
-    // 文件上传中处ç�
+    // 文件上传中处�
     handleFileUploadProgress(event, file, fileList) {
       this.upload.isUploading = true;
     },

+ 27 - 27
src/views/course/sopLogs/sopLogsList.vue

@@ -4,7 +4,7 @@
       <el-form-item label="�微员工昵称" prop="qwUserName">
         <el-input
           v-model="queryParams.qwUserName"
-          placeholder="请输入�微员工昵称"
+          placeholder="请输入�微员工昵�
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -13,14 +13,14 @@
       <el-form-item label="客户昵称" prop="externalUserName">
         <el-input
           v-model="queryParams.externalUserName"
-          placeholder="请输入�微客户昵称"
+          placeholder="请输入�微客户昵�
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="��(�员)状�" prop="sendStatus">
-        <el-select v-model="queryParams.sendStatus" placeholder="请选择��(�员)状�" clearable size="small">
+      <el-form-item label="���员)状� prop="sendStatus">
+        <el-select v-model="queryParams.sendStatus" placeholder="请选择���员)状� clearable size="small">
           <el-option
             v-for="dict in sysQwSopLogsStatus"
             :key="dict.dictValue"
@@ -29,8 +29,8 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="接收(客户)状�" prop="receivingStatus">
-        <el-select v-model="queryParams.receivingStatus" placeholder="请选择接收(客户)状�" clearable size="small">
+      <el-form-item label="接收(客户)状� prop="receivingStatus">
+        <el-select v-model="queryParams.receivingStatus" placeholder="请选择接收(客户)状� clearable size="small">
           <el-option
             v-for="dict in groupMsgSendStatusOptions"
             :key="dict.dictValue"
@@ -69,7 +69,7 @@
       <el-table-column label="�微�员昵称" align="center" prop="qwUserName" />
       <el-table-column label="系统��昵称" align="center" prop="userName" />
       <el-table-column label="客户昵称" align="center" prop="externalUserName" />
-      <el-table-column label="观看状�" align="center" prop="watchStatus">
+      <el-table-column label="观看状� align="center" prop="watchStatus">
         <template slot-scope="scope">
           <dict-tag :options="sysFsSopWatchStatus" :value="scope.row.watchStatus"/>
         </template>
@@ -81,12 +81,12 @@
           </el-button>
         </template>
       </el-table-column>
-      <el-table-column label="�员状�" align="center" prop="sendStatus" >
+      <el-table-column label="�员状� align="center" prop="sendStatus" >
         <template slot-scope="scope">
           <dict-tag :options="sysQwSopLogsStatus" :value="scope.row.sendStatus"/>
         </template>
       </el-table-column>
-      <el-table-column label="预计��时间" align="center" prop="sendTime" width="180"/>
+      <el-table-column label="预计��时� align="center" prop="sendTime" width="180"/>
       <el-table-column label="客户接收" align="center" prop="receivingStatus" >
         <template slot-scope="scope">
           <dict-tag :options="groupMsgSendStatusOptions" :value="scope.row.receivingStatus"/>
@@ -99,14 +99,14 @@
         <div slot="header" class="clearfix">
           <span>消�{{index}}:</span>
         </div>
-        <div v-html="item.value"></div>
+        <div v-safe-html="item.value"></div>
       </el-card>
       <span slot="footer" class="dialog-footer">
         <el-button @click="contentDialog.isDialogVisible = false">关闭</el-button>
       </span>
     </el-dialog>
 
-    <!-- 大图预览对è¯�æ¡-->
+    <!-- 大图预览对��-->
     <el-dialog
       :visible.sync="dialogVisible"
       :modal="false"
@@ -141,30 +141,30 @@ export default {
       dialogImageUrl:null,
       //默认规则
       defaultWatchStatus:"0",
-      // é�®ç½©å±
+      // �罩�
       loading: true,
-      // 导出é�®ç½©å±
+      // 导出�罩�
       exportLoading: false,
       // 选中数组
       ids: [],
-      // ��个�用
+      // ��个��
       single: true,
-      // �多个�用
+      // �多个��
       multiple: true,
       // 显示�索�件
       showSearch: true,
-      // 总�数
+      // 总��
       total: 0,
       // �业微信SOP  定时任务表格数�
       qwSopLogsList: [],
 
-      //æˆ�员状æ€
+      //�员状�
       sysQwSopLogsStatus:[],
 
-      //客户接收状æ€
+      //客户接收状�
       groupMsgSendStatusOptions:[],
 
-      //SOP课程观看状æ€
+      //SOP课程观看状�
       sysFsSopWatchStatus:[],
 
       //��的消�
@@ -172,9 +172,9 @@ export default {
         isDialogVisible:false,
         selectedContentJson: [],
       },
-      // 弹出层标题
+      // 弹出层标�
       title: "",
-      // 是å�¦æ˜¾ç¤ºå¼¹å‡ºå±
+      // 是�显示弹出�
       open: false,
       // 查询�数
       queryParams: {
@@ -197,17 +197,17 @@ export default {
   created() {
     this.getList();
 
-    //æˆ�员状æ€
+    //�员状�
     this.getDicts("sys_qw_sopLogs_status").then(response => {
       this.sysQwSopLogsStatus = response.data;
     });
 
-    //客户接收状æ€
+    //客户接收状�
     this.getDicts("sys_qw_groupMsg_SendStatus").then(response => {
       this.groupMsgSendStatusOptions = response.data;
     });
 
-    //客户观看状æ€
+    //客户观看状�
     this.getDicts("sys_fs_sop_watch_status").then(response => {
       this.sysFsSopWatchStatus = response.data;
     });
@@ -261,11 +261,11 @@ export default {
     },
 
     openImageViewer(url) {
-      // 打开大图预览对è¯�æ¡
+      // 打开大图预览对��
       this.dialogImageUrl=url
       this.dialogVisible = true;
     },
-    //查看å�‘é€�的消æ�¯ä½
+    //查看��的消��
     showContentDialog(contentJson) {
 
       this.contentDialog.selectedContentJson = JSON.parse(contentJson);
@@ -284,7 +284,7 @@ export default {
     /** 导出按钮�作 */
     handleExport() {
       const queryParams = this.queryParams;
-      this.$confirm('是�确认导出所有�业微信SOP  定时任务数�项?', "警告", {
+      this.$confirm('是�确认导出所有�业微信SOP  定时任务数��', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "�消",
           type: "warning"

+ 27 - 27
src/views/course/userCourseCategory/index.vue

@@ -4,7 +4,7 @@
       <el-form-item label="分类�称" prop="cateName">
         <el-input
           v-model="queryParams.cateName"
-          placeholder="请输入分类�称"
+          placeholder="请输入分类��
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -106,7 +106,7 @@
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="分类id" align="left" prop="cateId" />
       <el-table-column label="分类�称" align="left" prop="cateName" />
-      <el-table-column  label="状�" align="center" prop="isShow">
+      <el-table-column  label="状� align="center" prop="isShow">
         <template slot-scope="scope">
           <div>
             <el-tag v-if="scope.row.isShow === 1" :type="''">显示</el-tag>
@@ -150,23 +150,23 @@
           <treeselect v-model="form.pid" :options="categoryOptions" :normalizer="normalizer" placeholder="请选择上级分类" />
         </el-form-item>
         <el-form-item label="分类�称" prop="cateName">
-          <el-input v-model="form.cateName" placeholder="请输入分类�称" />
+          <el-input v-model="form.cateName" placeholder="请输入分类�� />
         </el-form-item>
         <!-- <el-form-item label="图标"  prop="pic" v-if="form.pid!=0">
            <Material v-model="picArr" type="image" :num="1" :width="150" :height="150" />
         </el-form-item> -->
-        <el-form-item label="状�" prop="isShow">
+        <el-form-item label="状� prop="isShow">
             <el-radio v-model="form.isShow" label="1">显示</el-radio>
             <el-radio v-model="form.isShow" label="0">��</el-radio>
         </el-form-item>
         <el-form-item label="排�" prop="sort">
-          <el-input-number v-model="form.sort" placeholder="请输入排�" />
+          <el-input-number v-model="form.sort" placeholder="请输入排� />
         </el-form-item>
 
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">� 消</el-button>
+        <el-button type="primary" @click="submitForm">ç¡?å®?/el-button>
+        <el-button @click="cancel">��/el-button>
       </div>
     </el-dialog>
 
@@ -175,7 +175,7 @@
       <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">
-          将文件拖到此处,æˆ
+          将文件拖到此处,�
           <em>点击上传</em>
         </div>
         <div class="el-upload__tip" slot="tip">
@@ -184,15 +184,15 @@
         <div class="el-upload__tip" style="color:red" slot="tip">�示:仅�许导入“xls�或“xlsx�格�文件�</div>
       </el-upload>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" :loading="upload.isUploading" :disabled="upload.isUploading" @click="submitFileForm">确 定</el-button>
-        <el-button @click="upload.open = false">� 消</el-button>
+        <el-button type="primary" :loading="upload.isUploading" :disabled="upload.isUploading" @click="submitFileForm">ç¡?å®?/el-button>
+        <el-button @click="upload.open = false">��/el-button>
       </div>
     </el-dialog>
     <el-dialog title="导入结果" :close-on-press-escape="false" :close-on-click-modal="false" :visible.sync="importMsgOpen" width="500px" append-to-body>
-      <div class="import-msg" v-html="importMsg">
+      <div class="import-msg" v-safe-html="importMsg">
       </div>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="importMsgOpen = false">å…³ é—­</el-button>
+        <el-button @click="importMsgOpen = false">å…?é—?/el-button>
         <el-button
           v-if="failList && failList.length > 0"
           type="primary"
@@ -219,25 +219,25 @@ export default {
     return {
       orOptions:[],
       categoryOptions:[],
-      // é�®ç½©å±
+      // �罩�
       loading: true,
-      // 导出é�®ç½©å±
+      // 导出�罩�
       exportLoading: false,
       // 选中数组
       ids: [],
-      // ��个�用
+      // ��个��
       single: true,
-      // �多个�用
+      // �多个��
       multiple: true,
       // 显示�索�件
       showSearch: true,
-      // 总�数
+      // 总��
       total: 0,
       // 课堂分类表格数�
       userCourseCategoryList: [],
-      // 弹出层标题
+      // 弹出层标�
       title: "",
-      // 是å�¦æ˜¾ç¤ºå¼¹å‡ºå±
+      // 是�显示弹出�
       open: false,
       // 查询�数
       queryParams: {
@@ -266,13 +266,13 @@ export default {
       failList:[],
       importMsg: '',
       upload: {
-        // 是å�¦æ˜¾ç¤ºå¼¹å‡ºå±‚(文件导入ï¼
+        // 是�显示弹出层(文件导入�
         open: false,
-        // 弹出层标题(文件导入ï¼
+        // 弹出层标题(文件导入�
         title: "",
         // 是��用上传
         isUploading: false,
-        // 设置上传的请求头部
+        // 设置上传的请求头�
         headers: { Authorization: "Bearer " + getToken() },
         // 上传的地�
         url: process.env.VUE_APP_BASE_API + "/course/userCourseCategory/importData",
@@ -393,7 +393,7 @@ export default {
     /** 删除按钮�作 */
     handleDelete(row) {
       const cateIds = row.cateId || this.ids;
-      this.$confirm('是�确认删除课堂分类编�为"' + cateIds + '"的数�项?', "警告", {
+      this.$confirm('是�确认删除课堂分类编��' + cateIds + '"的数�项?', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "�消",
           type: "warning"
@@ -433,7 +433,7 @@ export default {
     submitFileForm() {
       this.$refs.upload.submit();
     },
-    // 文件上传中处ç�
+    // 文件上传中处�
     handleFileUploadProgress(event, file, fileList) {
       this.upload.isUploading = true;
     },
@@ -450,7 +450,7 @@ export default {
     // 导出失败信�
     handleExportFailList(failList) {
       if (!failList || failList.length === 0) {
-        this.msgError("没有失败信��导出");
+        this.msgError("没有失败信��导�);
         return;
       }
       this.exportFailLoading = true;
@@ -474,7 +474,7 @@ export default {
     },
     handleFansExport() {
       if (!Array.isArray(this.ids) || this.ids.length === 0) {
-        this.$message.warning('请先选择至少一�数�');
+        this.$message.warning('请先选择至少一�数�);
         return;
       }
 
@@ -487,7 +487,7 @@ export default {
       }).then(() => {
         const loading = this.$loading({
           lock: true,
-          text: '正在导出数�,请�候...',
+          text: '正在导出数�,请��..',
           spinner: 'el-icon-loading',
           background: 'rgba(0, 0, 0, 0.3)'
         });

+ 5 - 1
src/views/course/userVideo/index.vue

@@ -274,7 +274,9 @@
             :action="uploadUrl"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
-            :before-upload="beforeAvatarUpload">
+            :before-upload="beforeAvatarUpload"
+      :headers="uploadHeaders"
+    >
             <img v-if="form.thumbnail" :src="form.thumbnail" class="avatar" width="300px">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
@@ -379,6 +381,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import VideoUpload from '@/components/VideoUpload/index';
 import { listUserVideo, getUserVideo, delUserVideo, addUserVideo, updateUserVideo, exportUserVideo,auditUserVideo,putOn,pullOff } from "@/api/course/userVideo";
 import {getSignature,uploadHuaWeiVod} from "@/api/common"
@@ -400,6 +403,7 @@ export default {
   },
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       tagsOptions:[],
       tags:[],
 

+ 34 - 34
src/views/crm/customer/line.vue

@@ -4,7 +4,7 @@
       <el-form-item label="客户编�" prop="customerCode">
         <el-input
           v-model="queryParams.customerCode"
-          placeholder="请输入客户编�"
+          placeholder="请输入客户编�
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -13,7 +13,7 @@
       <el-form-item label="客户�称" prop="customerName">
         <el-input
           v-model="queryParams.customerName"
-          placeholder="请输入客户�称"
+          placeholder="请输入客户��
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -22,7 +22,7 @@
       <el-form-item label="手机" prop="mobile">
         <el-input
           v-model="queryParams.mobile"
-          placeholder="请输入手机"
+          placeholder="请输入手�
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -43,7 +43,7 @@
           v-model="dateRange"
           type="daterange"
           value-format="yyyy-MM-dd"
-          start-placeholder="开始日期" end-placeholder="结�日期"  @change="handleScheduleTimeChange"
+          start-placeholder="开始日� end-placeholder="结�日期"  @change="handleScheduleTimeChange"
            >
         </el-date-picker>
       </el-form-item>
@@ -123,13 +123,13 @@
 	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
     <el-tabs type="card" v-model="activeName" @tab-click="handleClick">
-      <el-tab-pane label="待分�" name="0"></el-tab-pane>
-      <el-tab-pane label="已分�" name="1"></el-tab-pane>
+      <el-tab-pane label="待分� name="0"></el-tab-pane>
+      <el-tab-pane label="已分� name="1"></el-tab-pane>
     </el-tabs>
     <el-table  height="500" border v-loading="loading" :data="customerList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="ID" align="center" prop="customerId" />
-      <el-table-column label="所属公�" align="center" prop="companyName" />
+      <el-table-column label="所属公� align="center" prop="companyName" />
       <el-table-column label="客户编�" width="120"  align="center" prop="customerCode" />
       <el-table-column label="客户�称" align="center" prop="customerName" />
       <el-table-column label="手机" align="center" prop="mobile" />
@@ -138,7 +138,7 @@
             <el-tag prop="status" v-for="(item, index) in sexOptions"    v-if="scope.row.sex==item.dictValue">{{item.dictLabel}}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="微信�" align="center" prop="weixin" />
+      <el-table-column label="微信� align="center" prop="weixin" />
       <el-table-column label="所在地" align="center" prop="address" />
       <el-table-column width="105" label="创建时间" align="center" prop="createTime" />
       <el-table-column  label="客户��" align="center" prop="source">
@@ -188,20 +188,20 @@
     <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-form-item label="客户�称" prop="customerName">
-          <el-input v-model="form.customerName" placeholder="请输入客户�称" />
+          <el-input v-model="form.customerName" placeholder="请输入客户�� />
         </el-form-item>
         <el-form-item label="手机" prop="mobile">
-          <el-input maxlength="11"  v-model="form.mobile" placeholder="请输入手机" />
+          <el-input maxlength="11"  v-model="form.mobile" placeholder="请输入手� />
         </el-form-item>
         <el-form-item label="性别" prop="sex">
           <el-radio-group v-model="form.sex">
             <el-radio :label="item.dictValue" v-for="item in sexOptions" >{{item.dictLabel}}</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="微信�" prop="weixin">
+        <el-form-item label="微信� prop="weixin">
           <el-input v-model="form.weixin" placeholder="请输入微信�" />
         </el-form-item>
-        <el-form-item label="所在地区" prop="address">
+        <el-form-item label="所在地� prop="address">
           <el-cascader
           ref="citySelect"
           v-model="cityIds"
@@ -259,10 +259,10 @@
           </el-date-picker>
         </el-form-item>
         <el-form-item label="进线链接" prop="registerLinkUrl">
-          <el-input v-model="form.registerLinkUrl" placeholder="请输入进线链接" />
+          <el-input v-model="form.registerLinkUrl" placeholder="请输入进线链� />
         </el-form-item>
         <el-form-item label="进线客户详情" prop="registerDesc">
-          <el-input v-model="form.registerDesc" placeholder="请输入进线客户详情" />
+          <el-input v-model="form.registerDesc" placeholder="请输入进线客户详� />
         </el-form-item>
         <el-form-item label="进线填写时间" prop="registerSubmitTime">
           <el-date-picker
@@ -273,19 +273,19 @@
           </el-date-picker>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input type="textarea" :rows="2" v-model="form.remark"   placeholder="请输入备注" />
+          <el-input type="textarea" :rows="2" v-model="form.remark"   placeholder="请输入备� />
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">� 消</el-button>
+        <el-button type="primary" @click="submitForm">ç¡?å®?/el-button>
+        <el-button @click="cancel">��/el-button>
       </div>
     </el-dialog>
     <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
       <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">
-          将文件拖到此处,æˆ
+          将文件拖到此处,�
           <em>点击上传</em>
         </div>
         <div class="el-upload__tip" slot="tip">
@@ -294,12 +294,12 @@
         <div class="el-upload__tip" style="color:red" slot="tip">�示:仅�许导入“xls�或“xlsx�格�文件�</div>
       </el-upload>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFileForm">确 定</el-button>
-        <el-button @click="upload.open = false">� 消</el-button>
+        <el-button type="primary" @click="submitFileForm">ç¡?å®?/el-button>
+        <el-button @click="upload.open = false">��/el-button>
       </div>
     </el-dialog>
     <el-dialog title="导入结果" :close-on-press-escape="false" :close-on-click-modal="false" :visible.sync="importMsgOpen" width="500px" append-to-body>
-       <div class="import-msg" v-html="importMsg">
+       <div class="import-msg" v-safe-html="importMsg">
        </div>
     </el-dialog>
 
@@ -359,13 +359,13 @@ export default {
       },
       // 用户导入�数
       upload: {
-        // 是å�¦æ˜¾ç¤ºå¼¹å‡ºå±‚(用户导入ï¼
+        // 是�显示弹出层(用户导入�
         open: false,
-        // 弹出层标题(用户导入ï¼
+        // 弹出层标题(用户导入�
         title: "",
         // 是��用上传
         isUploading: false,
-        // 设置上传的请求头部
+        // 设置上传的请求头�
         headers: { Authorization: "Bearer " + getToken() },
         // 上传的地�
         url: process.env.VUE_APP_BASE_API + "/crm/customer/importLineData",
@@ -378,24 +378,24 @@ export default {
       inputValue: '',
       sourceOptions:[],
       sexOptions:[],
-      // é�®ç½©å±
+      // �罩�
       loading: true,
       // 选中数组
       ids: [],
-      // ��个�用
+      // ��个��
       single: true,
-      // �多个�用
+      // �多个��
       multiple: true,
       // 显示�索�件
       showSearch: true,
-      // 总�数
+      // 总��
       total: 0,
       // 客户表格数�
       customerList: [],
       dateRange:[],
-      // 弹出层标题
+      // 弹出层标�
       title: "",
-      // 是å�¦æ˜¾ç¤ºå¼¹å‡ºå±
+      // 是�显示弹出�
       open: false,
       isAdmin:false,
       // 查询�数
@@ -439,7 +439,7 @@ export default {
       // 表�校验
       rules: {
         mobile: [
-          { required: true, message: "手机��能为空", trigger: "blur" }
+          { required: true, message: "手机��能为�, trigger: "blur" }
         ],
         source: [
           { required: true, message: "客户���能为空", trigger: "blur" }
@@ -615,7 +615,7 @@ export default {
             that.$refs.assignCompany.init(this.ids);
            }, 200);
       // }else{
-      //      this.msgError("无���作!");
+      //      this.msgError("无����");
       // }
 
       // //获�所有CUSTOMER列表
@@ -710,7 +710,7 @@ export default {
     /** 删除按钮�作 */
     handleDelete(row) {
       const customerIds = row.customerId || this.ids;
-      this.$confirm('是�确认删除客户编�为"' + customerIds + '"的数�项?', "警告", {
+      this.$confirm('是�确认删除客户编��' + customerIds + '"的数�项?', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "�消",
           type: "warning"
@@ -745,7 +745,7 @@ export default {
         this.download(response.msg);
       });
     },
-    // 文件上传中处ç�
+    // 文件上传中处�
     handleFileUploadProgress(event, file, fileList) {
       this.upload.isUploading = true;
     },

+ 5 - 1
src/views/his/adv/index.vue

@@ -171,7 +171,9 @@
                       :action="uploadUrl"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
-                      :before-upload="beforeAvatarUpload">
+                      :before-upload="beforeAvatarUpload"
+      :headers="uploadHeaders"
+    >
                       <img v-if="form.imageUrl" :src="form.imageUrl" class="avatar" width="300px">
                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
@@ -235,6 +237,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { listAdv, getAdv, delAdv, addAdv, updateAdv, exportAdv } from "@/api/his/adv";
 import Editor from '@/components/Editor/wang';
 import { getPromotionalActiveOption } from '@/api/his/promotionalActive'
@@ -243,6 +246,7 @@ export default {
   components: { Editor },
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       baseUrl: process.env.VUE_APP_BASE_API,
       showOptions: [],

+ 14 - 4
src/views/his/appVersion/index.vue

@@ -135,7 +135,9 @@
             :before-remove="beforeRemove"
             :limit="1"
             :on-exceed="handleExceed"
-            :file-list="fileList">
+            :file-list="fileList"
+      :headers="uploadHeaders"
+    >
             <el-button size="small" type="primary">点击上传</el-button>
             <div slot="tip" class="el-upload__tip">只能上传APK文件</div>
           </el-upload>
@@ -152,7 +154,9 @@
             :before-remove="beforeRemove"
             :limit="1"
             :on-exceed="handleWgtExceed"
-            :file-list="fileWgtList">
+            :file-list="fileWgtList"
+      :headers="uploadHeaders"
+    >
             <el-button size="small" type="primary">点击上传</el-button>
             <div slot="tip" class="el-upload__tip">只能上传WGT文件</div>
           </el-upload>
@@ -169,7 +173,9 @@
             :before-remove="beforeRemove"
             :limit="1"
             :on-exceed="handleExceed"
-            :file-list="fileList">
+            :file-list="fileList"
+      :headers="uploadHeaders"
+    >
             <el-button size="small" type="primary">点击上传</el-button>
             <div slot="tip" class="el-upload__tip">只能上传Zip压缩文件</div>
           </el-upload>
@@ -193,7 +199,9 @@
             :before-remove="beforeRemoveBaidu"
             :limit="1"
             :on-exceed="handleExceedBaidu"
-            :file-list="fileList1">
+            :file-list="fileList1"
+      :headers="uploadHeaders"
+    >
             <el-button size="small" type="primary">点击上传</el-button>
             <div slot="tip" class="el-upload__tip">只能上传APK文件</div>
           </el-upload>
@@ -250,12 +258,14 @@
   </div>
 </template>
 <script>
+import { getToken } from '@/utils/auth'
 import { listApp, getApp, delApp, addApp, updateApp, exportApp } from "@/api/his/appVersion";
 
 export default {
   name: "App",
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       updateConfig: { },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       // 遮罩层

+ 5 - 1
src/views/his/article/index.vue

@@ -186,7 +186,9 @@
                   :action="uploadUrl"
                   :show-file-list="false"
                   :on-success="handleAvatarSuccess"
-                  :before-upload="beforeAvatarUpload">
+                  :before-upload="beforeAvatarUpload"
+      :headers="uploadHeaders"
+    >
                   <img v-if="form.imageUrl" :src="form.imageUrl" class="avatar" width="300px">
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
       </el-upload>
@@ -249,6 +251,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { listArticle, getArticle, delArticle, addArticle, updateArticle, exportArticle } from "@/api/his/article";
 import { getAllArticleCateList} from "@/api/his/articleCate";
 import Editor from '@/components/Editor/wang';
@@ -258,6 +261,7 @@ export default {
   components: { Editor ,ArticleDetails},
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       show:{
               title:"健康知识详情",
               open:false,

+ 5 - 1
src/views/his/articleCate/index.vue

@@ -135,7 +135,9 @@
             :action="uploadUrl"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
-            :before-upload="beforeAvatarUpload">
+            :before-upload="beforeAvatarUpload"
+      :headers="uploadHeaders"
+    >
             <img v-if="form.imgUrl" :src="form.imgUrl" class="avatar" width="300px">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
@@ -163,12 +165,14 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { listArticleCate, getArticleCate, delArticleCate, addArticleCate, updateArticleCate, exportArticleCate } from "@/api/his/articleCate";
 
 export default {
   name: "articleCate",
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       // 遮罩层
       loading: true,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",

+ 3 - 1
src/views/his/caseArticle/index.vue

@@ -174,7 +174,9 @@
                       :action="uploadUrl"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
-                      :before-upload="beforeAvatarUpload">
+                      :before-upload="beforeAvatarUpload"
+      :headers="headers"
+    >
                       <img v-if="form.imgUrl" :src="form.imgUrl" class="avatar" width="200px">
                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>

+ 3 - 1
src/views/his/chineseMedicine/index.vue

@@ -169,7 +169,9 @@
                       :action="uploadUrl"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
-                      :before-upload="beforeAvatarUpload">
+                      :before-upload="beforeAvatarUpload"
+      :headers="headers"
+    >
                       <img v-if="form.imgUrl" :src="form.imgUrl" class="avatar" width="200px">
                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>

+ 5 - 1
src/views/his/department/index.vue

@@ -159,7 +159,9 @@
             :action="uploadUrl"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
-            :before-upload="beforeAvatarUpload">
+            :before-upload="beforeAvatarUpload"
+      :headers="uploadHeaders"
+    >
             <img v-if="form.iconUrl" :src="form.iconUrl" class="avatar" width="200px">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
@@ -197,6 +199,7 @@
 </template>
 
 <script>
+import { getToken } from '@/utils/auth'
 import { listDepartment, getDepartment, delDepartment, addDepartment, updateDepartment, exportDepartment } from "@/api/his/department";
 import departmentDetails from '../../components/his/departmentDetails.vue';
 export default {
@@ -204,6 +207,7 @@ export default {
    components: { departmentDetails },
   data() {
     return {
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       baseUrl: process.env.VUE_APP_BASE_API,
    show:{

Некоторые файлы не были показаны из-за большого количества измененных файлов