vue2-client 1.16.35 → 1.16.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,113 +1,113 @@
1
- <template>
2
- <!-- 根据实际部署环境修改 editor.html 的路径 -->
3
- <iframe
4
- src="/his/editor/editor.html"
5
- width="100%"
6
- height="800"
7
- frameborder="0"
8
- @load="onIframeLoad"
9
- ref="editorIframe">
10
- </iframe>
11
- </template>
12
-
13
- <script setup>
14
-
15
- import { ref, onBeforeUnmount } from 'vue'
16
-
17
- const editorIframe = ref(null)
18
- const checkEditorTimer = ref(null)
19
- const checkCount = ref(0)
20
- const editor = ref(null)
21
- const iframeWindow = ref(null)
22
- // 对外暴露的获取editor方法
23
- const getEditor = () => {
24
- if (editor.value) {
25
- return editor.value
26
- }
27
- if (iframeWindow.value && iframeWindow.value.editor) {
28
- editor.value = iframeWindow.value.editor
29
- return editor.value
30
- }
31
- if (editorIframe.value && editorIframe.value.contentWindow && editorIframe.value.contentWindow.editor) {
32
- editor.value = editorIframe.value.contentWindow.editor
33
- return editor.value
34
- }
35
- return null
36
- }
37
- // 创建体温单方法
38
- const createVitalSigns = (data) => {
39
- const editorObj = getEditor()
40
- if (!editorObj) {
41
- throw new Error('editor对象未初始化,无法创建体温单')
42
- }
43
- if (typeof editorObj.createVitalSigns === 'function') {
44
- return editorObj.createVitalSigns(data)
45
- } else {
46
- throw new Error('editor对象未包含createVitalSigns方法')
47
- }
48
- }
49
-
50
- // 检查editor对象是否已初始化
51
- const startEditorCheck = (frameWindow, iframe) => {
52
- if (checkEditorTimer.value) {
53
- clearInterval(checkEditorTimer.value)
54
- }
55
- checkCount.value = 0
56
- checkEditorTimer.value = setInterval(() => {
57
- checkCount.value++
58
- try {
59
- const editorObj = frameWindow.editor
60
- if (editorObj && typeof editorObj.createVitalSigns === 'function') {
61
- clearInterval(checkEditorTimer.value)
62
- editor.value = editorObj
63
- // 将editor对象暴露到全局
64
- window.iframeEditor = editorObj
65
- window.iframeWindow = frameWindow
66
- // 触发事件
67
- emit('editor-ready', editorObj)
68
- emit('load', { target: iframe, editor: editorObj })
69
- // 发送消息通知
70
- window.parent.postMessage({ type: 'editorReady' }, '*')
71
- }
72
- } catch (err) {
73
- console.error('检查editor对象时出错:', err)
74
- }
75
- if (checkCount.value >= 20) {
76
- clearInterval(checkEditorTimer.value)
77
- console.error('Editor 对象加载失败')
78
- }
79
- }, 500)
80
- }
81
- // iframe加载完成的处理
82
- const onIframeLoad = (e) => {
83
- const iframe = e.target
84
- const frameWindow = iframe.contentWindow
85
- iframeWindow.value = frameWindow
86
- if (!frameWindow) {
87
- console.error('无法访问 iframe 内容')
88
- return
89
- }
90
- // 关闭文书工具栏
91
- iframe.contentWindow.editor.option.toolbar = false
92
- startEditorCheck(frameWindow, iframe)
93
- }
94
- // 组件销毁前清理
95
- onBeforeUnmount(() => {
96
- if (checkEditorTimer.value) {
97
- clearInterval(checkEditorTimer.value)
98
- }
99
- })
100
- // 暴露方法给父组件
101
- defineExpose({ getEditor, createVitalSigns })
102
-
103
- // 定义事件
104
- const emit = defineEmits(['editor-ready', 'load'])
105
- </script>
106
-
107
- <style scoped>
108
- iframe {
109
- border: none;
110
- width: 100%;
111
- min-height: 800px;
112
- }
113
- </style>
1
+ <template>
2
+ <!-- 根据实际部署环境修改 editor.html 的路径 -->
3
+ <iframe
4
+ src="/his/editor/editor.html"
5
+ width="100%"
6
+ height="800"
7
+ frameborder="0"
8
+ @load="onIframeLoad"
9
+ ref="editorIframe">
10
+ </iframe>
11
+ </template>
12
+
13
+ <script setup>
14
+
15
+ import { ref, onBeforeUnmount } from 'vue'
16
+
17
+ const editorIframe = ref(null)
18
+ const checkEditorTimer = ref(null)
19
+ const checkCount = ref(0)
20
+ const editor = ref(null)
21
+ const iframeWindow = ref(null)
22
+ // 对外暴露的获取editor方法
23
+ const getEditor = () => {
24
+ if (editor.value) {
25
+ return editor.value
26
+ }
27
+ if (iframeWindow.value && iframeWindow.value.editor) {
28
+ editor.value = iframeWindow.value.editor
29
+ return editor.value
30
+ }
31
+ if (editorIframe.value && editorIframe.value.contentWindow && editorIframe.value.contentWindow.editor) {
32
+ editor.value = editorIframe.value.contentWindow.editor
33
+ return editor.value
34
+ }
35
+ return null
36
+ }
37
+ // 创建体温单方法
38
+ const createVitalSigns = (data) => {
39
+ const editorObj = getEditor()
40
+ if (!editorObj) {
41
+ throw new Error('editor对象未初始化,无法创建体温单')
42
+ }
43
+ if (typeof editorObj.createVitalSigns === 'function') {
44
+ return editorObj.createVitalSigns(data)
45
+ } else {
46
+ throw new Error('editor对象未包含createVitalSigns方法')
47
+ }
48
+ }
49
+
50
+ // 检查editor对象是否已初始化
51
+ const startEditorCheck = (frameWindow, iframe) => {
52
+ if (checkEditorTimer.value) {
53
+ clearInterval(checkEditorTimer.value)
54
+ }
55
+ checkCount.value = 0
56
+ checkEditorTimer.value = setInterval(() => {
57
+ checkCount.value++
58
+ try {
59
+ const editorObj = frameWindow.editor
60
+ if (editorObj && typeof editorObj.createVitalSigns === 'function') {
61
+ clearInterval(checkEditorTimer.value)
62
+ editor.value = editorObj
63
+ // 将editor对象暴露到全局
64
+ window.iframeEditor = editorObj
65
+ window.iframeWindow = frameWindow
66
+ // 触发事件
67
+ emit('editor-ready', editorObj)
68
+ emit('load', { target: iframe, editor: editorObj })
69
+ // 发送消息通知
70
+ window.parent.postMessage({ type: 'editorReady' }, '*')
71
+ }
72
+ } catch (err) {
73
+ console.error('检查editor对象时出错:', err)
74
+ }
75
+ if (checkCount.value >= 20) {
76
+ clearInterval(checkEditorTimer.value)
77
+ console.error('Editor 对象加载失败')
78
+ }
79
+ }, 500)
80
+ }
81
+ // iframe加载完成的处理
82
+ const onIframeLoad = (e) => {
83
+ const iframe = e.target
84
+ const frameWindow = iframe.contentWindow
85
+ iframeWindow.value = frameWindow
86
+ if (!frameWindow) {
87
+ console.error('无法访问 iframe 内容')
88
+ return
89
+ }
90
+ // 关闭文书工具栏
91
+ iframe.contentWindow.editor.option.toolbar = false
92
+ startEditorCheck(frameWindow, iframe)
93
+ }
94
+ // 组件销毁前清理
95
+ onBeforeUnmount(() => {
96
+ if (checkEditorTimer.value) {
97
+ clearInterval(checkEditorTimer.value)
98
+ }
99
+ })
100
+ // 暴露方法给父组件
101
+ defineExpose({ getEditor, createVitalSigns })
102
+
103
+ // 定义事件
104
+ const emit = defineEmits(['editor-ready', 'load'])
105
+ </script>
106
+
107
+ <style scoped>
108
+ iframe {
109
+ border: none;
110
+ width: 100%;
111
+ min-height: 800px;
112
+ }
113
+ </style>
@@ -0,0 +1,45 @@
1
+ <script>
2
+ export default {
3
+ name: 'ExceptionQuery',
4
+ components: {
5
+ XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue')
6
+ },
7
+ props: {
8
+ currUserInfo: {
9
+ type: Object,
10
+ default: () => undefined
11
+ }
12
+ },
13
+ mounted () {
14
+ this.$refs.xFormTable.refresh(true)
15
+ },
16
+ data () {
17
+ return {
18
+ // 查询配置名称
19
+ queryParamsName: 'ExceptionRecordQueryCRUD',
20
+ fixedQueryForm: { ex_f_userfiles_id: this.currUserInfo.f_userfiles_id },
21
+ // 新增表单固定值
22
+ fixedAddForm: {},
23
+ // 是否显示详情抽屉
24
+ detailVisible: false,
25
+ // 当前记录
26
+ record: {}
27
+ }
28
+ }
29
+ }
30
+ </script>
31
+
32
+ <template>
33
+ <a-card :bordered="false">
34
+ <x-form-table
35
+ title="异常查询"
36
+ :queryParamsName="queryParamsName"
37
+ :fixedQueryForm="fixedQueryForm"
38
+ ref="xFormTable">
39
+ </x-form-table>
40
+ </a-card>
41
+ </template>
42
+
43
+ <style scoped>
44
+
45
+ </style>
@@ -36,7 +36,7 @@ import UserException from '@vue2-client/pages/userInfoDetailManage/UserException
36
36
  import PriceAdjustments from '@vue2-client/pages/userInfoDetailManage/PriceAdjustments'
37
37
  import uploadFilesHistory from '@vue2-client/pages/userInfoDetailManage/uploadFilesHistory'
38
38
  import InsuranceDetailQuery from '@vue2-client/pages/userInfoDetailManage/InsuranceDetailQuery'
39
-
39
+ import ExceptionRecordQuery from '@vue2-client/pages/userInfoDetailManage/ExceptionRecordQuery'
40
40
  export default {
41
41
  name: 'UserInfoDetailQueryTabs',
42
42
  components: {
@@ -59,7 +59,8 @@ export default {
59
59
  UserException,
60
60
  PriceAdjustments,
61
61
  uploadFilesHistory,
62
- InsuranceDetailQuery
62
+ InsuranceDetailQuery,
63
+ ExceptionRecordQuery
63
64
  },
64
65
  props: {
65
66
  userInfo: {
@@ -112,6 +113,7 @@ export default {
112
113
  { key: '15', label: '价格调整', permission: '价格调整', component: 'PriceAdjustments' },
113
114
  { key: '16', label: '附件查看', permission: '附件查看', component: 'uploadFilesHistory' },
114
115
  { key: '17', label: '保险明细', permission: '保险明细', component: 'InsuranceDetailQuery' },
116
+ { key: '18', label: '异常查看', permission: '异常查看', component: 'ExceptionRecordQuery', condition: () => this.userInfo?.f_meter_type === '物联网表' },
115
117
  ],
116
118
  }
117
119
  },
@@ -1,129 +1,129 @@
1
- const { homePage } = require('../../config')
2
- // 视图组件
3
- const view = {
4
- tabs: () => import('@vue2-client/layouts/tabs'),
5
- blank: () => import('@vue2-client/layouts/BlankView'),
6
- page: () => import('@vue2-client/layouts/PageView'),
7
- // his-web$ceshiGrid?type=GridView&configName=RxPreparedMed
8
- gridView: () => import('@vue2-client/layouts/GridView'),
9
- login: () => import('@vue2-client/pages/login/Login'),
10
- loginv3: () => import('@vue2-client/pages/login/LoginV3')
11
- }
12
- // 动态路由对象定义
13
- const routerResource = {}
14
- // --------------------------------------基本视图组件--------------------------------------
15
- // 空白视图
16
- routerResource.blank = view.blank
17
- // 单页面视图
18
- routerResource.singlePage = view.blank
19
- // 栅格配置视图
20
- routerResource.gridView = () => import('@vue2-client/layouts/GridView')
21
- // 测试
22
- routerResource.businessQuery = view.blank
23
- // 业务查询 - 收费查询
24
- routerResource.chargeQuery = () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue')
25
- // --------------------------------------仪表盘--------------------------------------
26
- routerResource.dashboard = view.blank
27
- // 工作台
28
- routerResource.workplace = () =>
29
- import('@vue2-client/pages/dashboard/workplace')
30
- // --------------------------------------系统配置--------------------------------------
31
- routerResource.system = view.blank
32
- // 字典管理
33
- routerResource.dictionaryManage = () => import('@vue2-client/pages/system/dictionary')
34
- // 文件管理
35
- routerResource.fileManager = () => import('@vue2-client/pages/system/file')
36
- // 登录日志
37
- routerResource.loginInfor = () => import('@vue2-client/pages/system/monitor/loginInfor')
38
- // 操作日志
39
- routerResource.operLog = () => import('@vue2-client/pages/system/monitor/operLog')
40
- // 系统问题反馈工单
41
- routerResource.submitTicket = () => import('@vue2-client/pages/system/ticket')
42
- // 通用服务评价
43
- routerResource.ServiceReview = () => import('@vue2-client/pages/ServiceReview')
44
- // 系统设置
45
- routerResource.settings = () => import('@vue2-client/pages/system/settings')
46
- // 页面编辑器
47
- routerResource.editablePage = () => import('@vue2-client/pages/lowCode/lowCodeEditor.vue')
48
- // 数据检索
49
- routerResource.dynamicStatistics = () => import('@vue2-client/pages/DynamicStatistics')
50
- // 数据检索(新)
51
- routerResource.newDynamicStatistics = () => import('@vue2-client/pages/NewDynamicStatistics')
52
- // 示例页面
53
- routerResource.example = {
54
- path: 'example',
55
- name: '示例主页面',
56
- // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo2.vue'),
57
- // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
58
- // component: () => import('@vue2-client/pages/addressSelect/addressDemo.vue'),
59
- // component: () => import('@vue2-client/base-client/components/common/XDescriptions/demo.vue'),
60
- // component: () => import('@vue2-client/base-client/components/common/XAddNativeForm/demo.vue'),
61
- // component: () => import('@vue2-client/base-client/components/common/XFormGroup/demo.vue'),
62
- // component: () => import('@vue2-client/base-client/components/common/XReport/XReportDemo.vue'),
63
- component: () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue'),
64
- // component: () => import('@vue2-client/base-client/components/common/XDatePicker/demo.vue'),
65
- // component: () => import('@vue2-client/base-client/components/common/XTab/XTabDemo.vue'),
66
- // component: () => import('@vue2-client/base-client/components/common/XRate/demo.vue'),
67
- // component: () => import('@vue2-client/base-client/components/common/XForm/demo.vue'),
68
- // component: () => import('@vue2-client/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue'),
69
- // component: () => import('@vue2-client/base-client/components/his/XImportExcelButton/XFrontImportExcelDemo.vue'),
70
- // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
71
- // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
72
- // component: () => import('@vue2-client/pages/XPageViewExample/index.vue'),
73
- // component: () => import('@vue2-client/base-client/components/common/XButtons/XButtonDemo.vue'),
74
- // component: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue'),
75
- // component: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
76
- // component: () => import('@vue2-client/base-client/components/common/XPrint/Demo.vue'),
77
- // component: () => import('@vue2-client/base-client/components/AI/demo.vue'),
78
- // component: () => import('@vue2-client/components/g2Charts/demo.vue'),
79
- // component: () => import('@vue2-client/pages/LogicCallExample/index.vue'),
80
- // component: () => import('@vue2-client/components/FilePreview/FilePreviewDemo.vue'),
81
- // component: () => import('@vue2-client/pages/ReportGrid/index.vue'),
82
- // component: () => import('@vue2-client/base-client/components/common/HIS/demo.vue'),
83
- }
84
- // routerResource.example = () =>
85
- // import('@vue2-client/pages/Example')
86
- routerResource.XReportView = () => import('@vue2-client/pages/XReportView')
87
-
88
- routerResource.XReportGrid = () => import('@vue2-client/base-client/components/common/XReportGrid/XReportDemo')
89
-
90
- routerResource.XTab = () => import('@vue2-client/base-client/components/common/XTab/XTabDemo')
91
- routerResource.addressManage = () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue')
92
-
93
- // 基础路由组件注册
94
- const routerMap = {
95
- login: {
96
- authority: '*',
97
- path: '/login',
98
- component: process.env.VUE_APP_LOGIN_VERSION === 'V3'
99
- ? view.loginv3 : view.login
100
- },
101
- root: {
102
- path: '/',
103
- name: '首页',
104
- // 只有在非微前端环境下才进行重定向,或者通过环境变量控制
105
- redirect: window.__MICRO_APP_ENVIRONMENT__ ? undefined : homePage,
106
- component: process.env.VUE_APP_SINGLE_PAPER === 'TRUE' ? view.blank : view.tabs,
107
- },
108
- exp403: {
109
- authority: '*',
110
- name: 'exp403',
111
- path: '403',
112
- component: () =>
113
- import('@vue2-client/pages/exception/403')
114
- },
115
- exp404: {
116
- name: 'exp404',
117
- path: '404',
118
- component: () =>
119
- import('@vue2-client/pages/exception/404')
120
- },
121
- exp500: {
122
- name: 'exp500',
123
- path: '500',
124
- component: () =>
125
- import('@vue2-client/pages/exception/500')
126
- }
127
- }
128
- Object.assign(routerMap, routerResource)
129
- export default routerMap
1
+ const { homePage } = require('../../config')
2
+ // 视图组件
3
+ const view = {
4
+ tabs: () => import('@vue2-client/layouts/tabs'),
5
+ blank: () => import('@vue2-client/layouts/BlankView'),
6
+ page: () => import('@vue2-client/layouts/PageView'),
7
+ // his-web$ceshiGrid?type=GridView&configName=RxPreparedMed
8
+ gridView: () => import('@vue2-client/layouts/GridView'),
9
+ login: () => import('@vue2-client/pages/login/Login'),
10
+ loginv3: () => import('@vue2-client/pages/login/LoginV3')
11
+ }
12
+ // 动态路由对象定义
13
+ const routerResource = {}
14
+ // --------------------------------------基本视图组件--------------------------------------
15
+ // 空白视图
16
+ routerResource.blank = view.blank
17
+ // 单页面视图
18
+ routerResource.singlePage = view.blank
19
+ // 栅格配置视图
20
+ routerResource.gridView = () => import('@vue2-client/layouts/GridView')
21
+ // 测试
22
+ routerResource.businessQuery = view.blank
23
+ // 业务查询 - 收费查询
24
+ routerResource.chargeQuery = () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue')
25
+ // --------------------------------------仪表盘--------------------------------------
26
+ routerResource.dashboard = view.blank
27
+ // 工作台
28
+ routerResource.workplace = () =>
29
+ import('@vue2-client/pages/dashboard/workplace')
30
+ // --------------------------------------系统配置--------------------------------------
31
+ routerResource.system = view.blank
32
+ // 字典管理
33
+ routerResource.dictionaryManage = () => import('@vue2-client/pages/system/dictionary')
34
+ // 文件管理
35
+ routerResource.fileManager = () => import('@vue2-client/pages/system/file')
36
+ // 登录日志
37
+ routerResource.loginInfor = () => import('@vue2-client/pages/system/monitor/loginInfor')
38
+ // 操作日志
39
+ routerResource.operLog = () => import('@vue2-client/pages/system/monitor/operLog')
40
+ // 系统问题反馈工单
41
+ routerResource.submitTicket = () => import('@vue2-client/pages/system/ticket')
42
+ // 通用服务评价
43
+ routerResource.ServiceReview = () => import('@vue2-client/pages/ServiceReview')
44
+ // 系统设置
45
+ routerResource.settings = () => import('@vue2-client/pages/system/settings')
46
+ // 页面编辑器
47
+ routerResource.editablePage = () => import('@vue2-client/pages/lowCode/lowCodeEditor.vue')
48
+ // 数据检索
49
+ routerResource.dynamicStatistics = () => import('@vue2-client/pages/DynamicStatistics')
50
+ // 数据检索(新)
51
+ routerResource.newDynamicStatistics = () => import('@vue2-client/pages/NewDynamicStatistics')
52
+ // 示例页面
53
+ routerResource.example = {
54
+ path: 'example',
55
+ name: '示例主页面',
56
+ // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo2.vue'),
57
+ // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
58
+ // component: () => import('@vue2-client/pages/addressSelect/addressDemo.vue'),
59
+ // component: () => import('@vue2-client/base-client/components/common/XDescriptions/demo.vue'),
60
+ // component: () => import('@vue2-client/base-client/components/common/XAddNativeForm/demo.vue'),
61
+ // component: () => import('@vue2-client/base-client/components/common/XFormGroup/demo.vue'),
62
+ // component: () => import('@vue2-client/base-client/components/common/XReport/XReportDemo.vue'),
63
+ component: () => import('@vue2-client/base-client/components/common/HIS/demo.vue'),
64
+ // component: () => import('@vue2-client/base-client/components/common/XDatePicker/demo.vue'),
65
+ // component: () => import('@vue2-client/base-client/components/common/XTab/XTabDemo.vue'),
66
+ // component: () => import('@vue2-client/base-client/components/common/XRate/demo.vue'),
67
+ // component: () => import('@vue2-client/base-client/components/common/XForm/demo.vue'),
68
+ // component: () => import('@vue2-client/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue'),
69
+ // component: () => import('@vue2-client/base-client/components/his/XImportExcelButton/XFrontImportExcelDemo.vue'),
70
+ // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
71
+ // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
72
+ // component: () => import('@vue2-client/pages/XPageViewExample/index.vue'),
73
+ // component: () => import('@vue2-client/base-client/components/common/XButtons/XButtonDemo.vue'),
74
+ // component: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue'),
75
+ // component: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
76
+ // component: () => import('@vue2-client/base-client/components/common/XPrint/Demo.vue'),
77
+ // component: () => import('@vue2-client/base-client/components/AI/demo.vue'),
78
+ // component: () => import('@vue2-client/components/g2Charts/demo.vue'),
79
+ // component: () => import('@vue2-client/pages/LogicCallExample/index.vue'),
80
+ // component: () => import('@vue2-client/components/FilePreview/FilePreviewDemo.vue'),
81
+ // component: () => import('@vue2-client/pages/ReportGrid/index.vue'),
82
+ // component: () => import('@vue2-client/base-client/components/common/HIS/demo.vue'),
83
+ }
84
+ // routerResource.example = () =>
85
+ // import('@vue2-client/pages/Example')
86
+ routerResource.XReportView = () => import('@vue2-client/pages/XReportView')
87
+
88
+ routerResource.XReportGrid = () => import('@vue2-client/base-client/components/common/XReportGrid/XReportDemo')
89
+
90
+ routerResource.XTab = () => import('@vue2-client/base-client/components/common/XTab/XTabDemo')
91
+ routerResource.addressManage = () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue')
92
+
93
+ // 基础路由组件注册
94
+ const routerMap = {
95
+ login: {
96
+ authority: '*',
97
+ path: '/login',
98
+ component: process.env.VUE_APP_LOGIN_VERSION === 'V3'
99
+ ? view.loginv3 : view.login
100
+ },
101
+ root: {
102
+ path: '/',
103
+ name: '首页',
104
+ // 只有在非微前端环境下才进行重定向,或者通过环境变量控制
105
+ redirect: window.__MICRO_APP_ENVIRONMENT__ ? undefined : homePage,
106
+ component: process.env.VUE_APP_SINGLE_PAPER === 'TRUE' ? view.blank : view.tabs,
107
+ },
108
+ exp403: {
109
+ authority: '*',
110
+ name: 'exp403',
111
+ path: '403',
112
+ component: () =>
113
+ import('@vue2-client/pages/exception/403')
114
+ },
115
+ exp404: {
116
+ name: 'exp404',
117
+ path: '404',
118
+ component: () =>
119
+ import('@vue2-client/pages/exception/404')
120
+ },
121
+ exp500: {
122
+ name: 'exp500',
123
+ path: '500',
124
+ component: () =>
125
+ import('@vue2-client/pages/exception/500')
126
+ }
127
+ }
128
+ Object.assign(routerMap, routerResource)
129
+ export default routerMap
@@ -1,47 +1,47 @@
1
- import AMapLoader from '@amap/amap-jsapi-loader'
2
- let Amap
3
- async function GetGDMap (secretKey, key) {
4
- if (!Amap) {
5
- window._AMapSecurityConfig = {
6
- securityJsCode: secretKey
7
- }
8
- // 解决高德地图加载报错 ---> 禁止多种API加载方式混用
9
- AMapLoader.reset()
10
- Amap = await AMapLoader.load({
11
- key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
12
- version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
13
- plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
14
- 'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
15
- 'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
16
- AMapUI: {
17
- version: '1.1', // AMapUI 缺省 1.1
18
- plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
19
- }
20
- })
21
- }
22
- return Amap
23
- }
24
-
25
- async function getGDMap (address) {
26
- new (await GetGDMap()).Geocoder({
27
- radius: 500 // 范围,默认:500
28
- }).getLocation(address, function (status, result) {
29
- if (status === 'complete' && result.geocodes.length) {
30
- return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
31
- } else {
32
- // eslint-disable-next-line prefer-promise-reject-errors
33
- throw new Error('根据经纬度查询地址失败')
34
- }
35
- })
36
- }
37
-
38
- async function GetLocation (address) {
39
- return new Promise((resolve, reject) => {
40
- try {
41
- resolve(getGDMap(address))
42
- } catch (e) {
43
- reject(e)
44
- }
45
- })
46
- }
47
- export { GetGDMap, GetLocation }
1
+ import AMapLoader from '@amap/amap-jsapi-loader'
2
+ let Amap
3
+ async function GetGDMap (secretKey, key) {
4
+ if (!Amap) {
5
+ window._AMapSecurityConfig = {
6
+ securityJsCode: secretKey
7
+ }
8
+ // 解决高德地图加载报错 ---> 禁止多种API加载方式混用
9
+ AMapLoader.reset()
10
+ Amap = await AMapLoader.load({
11
+ key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
12
+ version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
13
+ plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
14
+ 'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
15
+ 'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
16
+ AMapUI: {
17
+ version: '1.1', // AMapUI 缺省 1.1
18
+ plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
19
+ }
20
+ })
21
+ }
22
+ return Amap
23
+ }
24
+
25
+ async function getGDMap (address) {
26
+ new (await GetGDMap()).Geocoder({
27
+ radius: 500 // 范围,默认:500
28
+ }).getLocation(address, function (status, result) {
29
+ if (status === 'complete' && result.geocodes.length) {
30
+ return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
31
+ } else {
32
+ // eslint-disable-next-line prefer-promise-reject-errors
33
+ throw new Error('根据经纬度查询地址失败')
34
+ }
35
+ })
36
+ }
37
+
38
+ async function GetLocation (address) {
39
+ return new Promise((resolve, reject) => {
40
+ try {
41
+ resolve(getGDMap(address))
42
+ } catch (e) {
43
+ reject(e)
44
+ }
45
+ })
46
+ }
47
+ export { GetGDMap, GetLocation }