vue2-client 1.12.83 → 1.12.84

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,76 +1,76 @@
1
- <template>
2
- <div id="test" v-if="showReport">
3
- <XReport
4
- @updateImg="updateImg"
5
- ref="main"
6
- :use-oss-for-img="false"
7
- config-name="outpatientWait"
8
- server-name="af-his"
9
- :show-img-in-cell="true"
10
- :display-only="displayOnly"
11
- :edit-mode="false"
12
- :show-save-button="false"
13
- :dont-format="true"/>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- import XReport from '@vue2-client/base-client/components/common/XReportGrid/XReport'
19
- // eslint-disable-next-line no-unused-vars
20
- import { exportHTMLNodeToPDF } from '@vue2-client/utils/htmlToPDFApi'
21
-
22
- export default {
23
- name: 'Example',
24
- components: {
25
- XReport
26
- },
27
- mounted () {
28
- console.log(this.$route)
29
- },
30
- data () {
31
- return {
32
- test: {
33
- title: {
34
- type: 'titleKey',
35
- value: 'f_type'
36
- },
37
- designMode: 'json',
38
- },
39
- total: 1,
40
- registerMap: [],
41
- displayOnly: true,
42
- showReport: true
43
- }
44
- },
45
- methods: {
46
- updateImg (data) {
47
- console.warn('demo', data)
48
- },
49
- testExport () {
50
- this.showReport = false
51
- this.displayOnly = true
52
- this.$nextTick(() => {
53
- this.showReport = true
54
- setTimeout(() => {
55
- exportHTMLNodeToPDF('123', '#test')
56
- this.showReport = false
57
- this.displayOnly = false
58
- this.$nextTick(() => {
59
- this.showReport = true
60
- })
61
- }, 500)
62
- })
63
- },
64
- testSave () {
65
- const result = []
66
- this.registerMap.forEach(item => {
67
- result.push(item.exportData())
68
- })
69
- console.warn('save', result)
70
- }
71
- }
72
- }
73
- </script>
74
- <style scoped>
75
-
76
- </style>
1
+ <template>
2
+ <div id="test" v-if="showReport">
3
+ <XReport
4
+ @updateImg="updateImg"
5
+ ref="main"
6
+ :use-oss-for-img="false"
7
+ config-name="outpatientWait"
8
+ server-name="af-his"
9
+ :show-img-in-cell="true"
10
+ :display-only="displayOnly"
11
+ :edit-mode="false"
12
+ :show-save-button="false"
13
+ :dont-format="true"/>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ import XReport from '@vue2-client/base-client/components/common/XReportGrid/XReport'
19
+ // eslint-disable-next-line no-unused-vars
20
+ import { exportHTMLNodeToPDF } from '@vue2-client/utils/htmlToPDFApi'
21
+
22
+ export default {
23
+ name: 'Example',
24
+ components: {
25
+ XReport
26
+ },
27
+ mounted () {
28
+ console.log(this.$route)
29
+ },
30
+ data () {
31
+ return {
32
+ test: {
33
+ title: {
34
+ type: 'titleKey',
35
+ value: 'f_type'
36
+ },
37
+ designMode: 'json',
38
+ },
39
+ total: 1,
40
+ registerMap: [],
41
+ displayOnly: true,
42
+ showReport: true
43
+ }
44
+ },
45
+ methods: {
46
+ updateImg (data) {
47
+ console.warn('demo', data)
48
+ },
49
+ testExport () {
50
+ this.showReport = false
51
+ this.displayOnly = true
52
+ this.$nextTick(() => {
53
+ this.showReport = true
54
+ setTimeout(() => {
55
+ exportHTMLNodeToPDF('123', '#test')
56
+ this.showReport = false
57
+ this.displayOnly = false
58
+ this.$nextTick(() => {
59
+ this.showReport = true
60
+ })
61
+ }, 500)
62
+ })
63
+ },
64
+ testSave () {
65
+ const result = []
66
+ this.registerMap.forEach(item => {
67
+ result.push(item.exportData())
68
+ })
69
+ console.warn('save', result)
70
+ }
71
+ }
72
+ }
73
+ </script>
74
+ <style scoped>
75
+
76
+ </style>
@@ -0,0 +1,130 @@
1
+ <template>
2
+ <div>
3
+ <div class="filter-bar">
4
+ <a-date-picker v-model="upload_date" placeholder="上传日期" @change="selfSearch" />
5
+ <a-select
6
+ style="width: 200px;"
7
+ v-model="fusetype"
8
+ :options="fusetypes"
9
+ placeholder="分类"
10
+ @change="selfSearch"
11
+ allow-clear />
12
+ <a-button type="primary" @click="selfSearch">查询</a-button>
13
+ </div>
14
+ <a-list bordered>
15
+ <a-list-item v-for="item in files" :key="item.days">
16
+ <div class="file-group">
17
+ <h4>{{ item.days }}</h4>
18
+ <div class="file-items">
19
+ <div v-for="file in item.arrays" :key="file.id" class="file-card">
20
+ <img :src="file.f_downloadpath" class="file-image" v-if="file.f_filetype.includes('jpg') || file.f_filetype.includes('png')" />
21
+ <p>上传时间: {{ file.f_uploaddate }}</p>
22
+ <p>操作员: {{ file.f_username }}</p>
23
+ <p>分类: {{ file.fusetype }}</p>
24
+ <p>说明: {{ file.fremarks }}</p>
25
+ <a :href="file.f_downloadpath" target="_blank">预览</a>
26
+ <a-button v-if="isDelete === '1'" @click="delet(file.id)">删除</a-button>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </a-list-item>
31
+ </a-list>
32
+ </div>
33
+ </template>
34
+
35
+ <script>
36
+ import { post } from '@vue2-client/services/api'
37
+ export default {
38
+ props: {
39
+ currUserInfo: {
40
+ type: Object,
41
+ default: () => undefined
42
+ }
43
+ },
44
+ data () {
45
+ return {
46
+ upload_date: null,
47
+ fusetype: null,
48
+ files: [],
49
+ fusetypes: [],
50
+ isDelete: '0'
51
+ }
52
+ },
53
+ methods: {
54
+ async getfusetypes () {
55
+ this.fusetypes = [{ label: '全部', value: '' }]
56
+ const res = await post('rs/sql/singleTable_OrderBy', {
57
+ data: {
58
+ items: 'fusetype',
59
+ tablename: 't_files',
60
+ condition: `fusetype is not null GROUP BY fusetype`,
61
+ orderitem: 'fusetype'
62
+ }
63
+ })
64
+ this.fusetypes.push(...res.map(item => ({ label: item.fusetype, value: item.fusetype })))
65
+ console.log('123456', this.fusetypes)
66
+ },
67
+ async getFiles () {
68
+ console.log('999', this.currUserInfo)
69
+ if (!this.currUserInfo) return
70
+ this.files = []
71
+ let condition = `CONVERT(varchar(200),f_blobid) = '${this.currUserInfo.f_userinfo_id}'`
72
+ if (this.upload_date) {
73
+ condition += ` and CONVERT(VARCHAR(100), f_uploaddate, 23) = '${this.upload_date}'`
74
+ }
75
+ if (this.fusetype) {
76
+ condition += ` and fusetype = '${this.fusetype}'`
77
+ }
78
+ const res = await post('/api/af-revenue/logic/getAllFiles', { data: { condition } })
79
+ console.log('7777', res)
80
+ console.log('7777', res.days)
81
+ this.files = res.days.map(day => ({
82
+ days: day.uploadday,
83
+ arrays: res.array.filter(file => file.uploadday === day.uploadday)
84
+ }))
85
+ },
86
+ async delet (fileId) {
87
+ await this.$resetdelete('rs/entity/t_files', { id: fileId }, { resolveMsg: '删除成功', rejectMsg: '删除失败' })
88
+ this.getFiles()
89
+ },
90
+ selfSearch () {
91
+ this.getFiles()
92
+ }
93
+ },
94
+ mounted () {
95
+ if (this.$login.r.includes('上传附件删除')) {
96
+ this.isDelete = '1'
97
+ }
98
+ this.getFiles()
99
+ this.getfusetypes()
100
+ }
101
+ }
102
+ </script>
103
+
104
+ <style scoped>
105
+ .filter-bar {
106
+ display: flex;
107
+ gap: 10px;
108
+ margin-bottom: 15px;
109
+ }
110
+ .file-group {
111
+ margin-bottom: 15px;
112
+ }
113
+ .file-items {
114
+ display: flex;
115
+ flex-wrap: wrap;
116
+ gap: 10px;
117
+ }
118
+ .file-card {
119
+ border: 1px solid #ddd;
120
+ padding: 10px;
121
+ border-radius: 5px;
122
+ width: 200px;
123
+ }
124
+ .file-image {
125
+ width: 100%; /* 让图片填充整个容器 */
126
+ height: 150px; /* 调整高度 */
127
+ object-fit: cover; /* 保持图片比例,填充整个区域 */
128
+ border-radius: 5px; /* 圆角边框 */
129
+ }
130
+ </style>
@@ -34,6 +34,7 @@ import TransferRecordQuery from '@vue2-client/pages/userInfoDetailManage/Transfe
34
34
  import WatchCollectionRecordQuery from '@vue2-client/pages/userInfoDetailManage/WatchCollectionRecordQuery'
35
35
  import UserException from '@vue2-client/pages/userInfoDetailManage/UserException'
36
36
  import PriceAdjustments from '@vue2-client/pages/userInfoDetailManage/PriceAdjustments'
37
+ import uploadFilesHistory from '@vue2-client/pages/userInfoDetailManage/uploadFilesHistory'
37
38
 
38
39
  export default {
39
40
  name: 'UserInfoDetailQueryTabs',
@@ -56,6 +57,7 @@ export default {
56
57
  UserHandRecordQuery,
57
58
  UserException,
58
59
  PriceAdjustments,
60
+ uploadFilesHistory,
59
61
  },
60
62
  props: {
61
63
  userInfo: {
@@ -106,6 +108,7 @@ export default {
106
108
  { key: '13', label: '流量计参数查看', permission: '流量计参数查看', component: 'MeterParamRecordQuery' },
107
109
  { key: '14', label: '异常报警', permission: '异常报警', component: 'MeterParamRecordQuery' },
108
110
  { key: '15', label: '价格调整', permission: '价格调整', component: 'PriceAdjustments' },
111
+ { key: '16', label: '附件查看', permission: '附件查看', component: 'uploadFilesHistory' },
109
112
  ],
110
113
  }
111
114
  },
@@ -1,123 +1,119 @@
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 = view.gridView
21
-
22
- // --------------------------------------仪表盘--------------------------------------
23
- routerResource.dashboard = view.blank
24
- // 工作台
25
- routerResource.workplace = () =>
26
- import('@vue2-client/pages/dashboard/workplace')
27
- // --------------------------------------系统配置--------------------------------------
28
- routerResource.system = view.blank
29
- // 字典管理
30
- routerResource.dictionaryManage = () => import('@vue2-client/pages/system/dictionary')
31
- // 文件管理
32
- routerResource.fileManager = () => import('@vue2-client/pages/system/file')
33
- // 登录日志
34
- routerResource.loginInfor = () => import('@vue2-client/pages/system/monitor/loginInfor')
35
- // 操作日志
36
- routerResource.operLog = () => import('@vue2-client/pages/system/monitor/operLog')
37
- // 系统问题反馈工单
38
- routerResource.submitTicket = () => import('@vue2-client/pages/system/ticket')
39
- // 通用服务评价
40
- routerResource.ServiceReview = () => import('@vue2-client/pages/ServiceReview')
41
- // 系统设置
42
- routerResource.settings = () => import('@vue2-client/pages/system/settings')
43
- // AMIS示例页面
44
- routerResource.amisDemo = () => import('@vue2-client/pages/AMisDemo/AMisDemo')
45
- // 页面编辑器
46
- routerResource.editablePage = () => import('@vue2-client/pages/lowCode/lowCodeEditor.vue')
47
- // 数据检索
48
- routerResource.dynamicStatistics = () => import('@vue2-client/pages/DynamicStatistics')
49
- // 数据检索(新)
50
- routerResource.newDynamicStatistics = () => import('@vue2-client/pages/NewDynamicStatistics')
51
- // 示例页面
52
- routerResource.example = {
53
- path: 'example',
54
- name: '示例主页面',
55
- // component: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
56
- // component: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
57
- component: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
58
- // component: () => import('@vue2-client/base-client/components/common/XDataCard/XDataCard.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/pages/WorkflowDetail/WorkFlowDemo.vue'),
69
- // component: () => import('@vue2-client/base-client/components/common/XConversation/XConversationDemo.vue'),
70
- // component: () => import('@vue2-client/base-client/components/common/XButtons/XButtonDemo.vue'),
71
- // component: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue'),
72
- // component: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
73
- // component: () => import('@vue2-client/base-client/components/common/XPrint/Demo.vue'),
74
- // component: () => import('@vue2-client/base-client/components/AI/demo.vue'),
75
- // component: () => import('@vue2-client/components/g2Charts/demo.vue'),
76
- // component: () => import('@vue2-client/pages/LogicCallExample/index.vue'),
77
- // component: () => import('@vue2-client/components/FilePreview/FilePreviewDemo.vue'),
78
- // component: () => import('@vue2-client/pages/ReportGrid/index.vue')
79
- }
80
- // routerResource.example = () =>
81
- // import('@vue2-client/pages/Example')
82
- routerResource.XReportView = () => import('@vue2-client/pages/XReportView')
83
-
84
- routerResource.XReportGrid = () => import('@vue2-client/base-client/components/common/XReportGrid/XReportDemo')
85
-
86
- routerResource.XTab = () => import('@vue2-client/base-client/components/common/XTab/XTabDemo')
87
-
88
- // 基础路由组件注册
89
- const routerMap = {
90
- login: {
91
- authority: '*',
92
- path: '/login',
93
- component: process.env.VUE_APP_LOGIN_VERSION === 'V3'
94
- ? view.loginv3 : view.login
95
- },
96
- root: {
97
- path: '/',
98
- name: '首页',
99
- redirect: homePage,
100
- component: process.env.VUE_APP_SINGLE_PAPER === 'TRUE' ? view.blank : view.tabs,
101
- },
102
- exp403: {
103
- authority: '*',
104
- name: 'exp403',
105
- path: '403',
106
- component: () =>
107
- import('@vue2-client/pages/exception/403')
108
- },
109
- exp404: {
110
- name: 'exp404',
111
- path: '404',
112
- component: () =>
113
- import('@vue2-client/pages/exception/404')
114
- },
115
- exp500: {
116
- name: 'exp500',
117
- path: '500',
118
- component: () =>
119
- import('@vue2-client/pages/exception/500')
120
- }
121
- }
122
- Object.assign(routerMap, routerResource)
123
- 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 = view.gridView
21
+
22
+ // --------------------------------------仪表盘--------------------------------------
23
+ routerResource.dashboard = view.blank
24
+ // 工作台
25
+ routerResource.workplace = () =>
26
+ import('@vue2-client/pages/dashboard/workplace')
27
+ // --------------------------------------系统配置--------------------------------------
28
+ routerResource.system = view.blank
29
+ // 字典管理
30
+ routerResource.dictionaryManage = () => import('@vue2-client/pages/system/dictionary')
31
+ // 文件管理
32
+ routerResource.fileManager = () => import('@vue2-client/pages/system/file')
33
+ // 登录日志
34
+ routerResource.loginInfor = () => import('@vue2-client/pages/system/monitor/loginInfor')
35
+ // 操作日志
36
+ routerResource.operLog = () => import('@vue2-client/pages/system/monitor/operLog')
37
+ // 系统问题反馈工单
38
+ routerResource.submitTicket = () => import('@vue2-client/pages/system/ticket')
39
+ // 通用服务评价
40
+ routerResource.ServiceReview = () => import('@vue2-client/pages/ServiceReview')
41
+ // 系统设置
42
+ routerResource.settings = () => import('@vue2-client/pages/system/settings')
43
+ // AMIS示例页面
44
+ routerResource.amisDemo = () => import('@vue2-client/pages/AMisDemo/AMisDemo')
45
+ // 页面编辑器
46
+ routerResource.editablePage = () => import('@vue2-client/pages/lowCode/lowCodeEditor.vue')
47
+ // 数据检索
48
+ routerResource.dynamicStatistics = () => import('@vue2-client/pages/DynamicStatistics')
49
+ // 数据检索(新)
50
+ routerResource.newDynamicStatistics = () => import('@vue2-client/pages/NewDynamicStatistics')
51
+ // 示例页面
52
+ routerResource.example = {
53
+ path: 'example',
54
+ name: '示例主页面',
55
+ // component: () => import('@vue2-client/base-client/components/common/XDescriptions/demo.vue'),
56
+ // component: () => import('@vue2-client/base-client/components/common/XAddNativeForm/demo.vue'),
57
+ // component: () => import('@vue2-client/base-client/components/common/XFormGroup/demo.vue'),
58
+ // component: () => import('@vue2-client/base-client/components/common/XReport/XReportDemo.vue'),
59
+ // component: () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue'),
60
+ // component: () => import('@vue2-client/base-client/components/common/XDatePicker/demo.vue'),
61
+ // component: () => import('@vue2-client/base-client/components/common/XTab/XTabDemo.vue'),
62
+ // component: () => import('@vue2-client/base-client/components/common/XRate/demo.vue'),
63
+ // component: () => import('@vue2-client/base-client/components/common/XForm/demo.vue'),
64
+ // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
65
+ // component: () => import('@vue2-client/base-client/components/common/XConversation/XConversationDemo.vue'),
66
+ // component: () => import('@vue2-client/base-client/components/common/XButtons/XButtonDemo.vue'),
67
+ // component: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue'),
68
+ // component: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
69
+ // component: () => import('@vue2-client/base-client/components/common/XPrint/Demo.vue'),
70
+ // component: () => import('@vue2-client/base-client/components/AI/demo.vue'),
71
+ // component: () => import('@vue2-client/components/g2Charts/demo.vue'),
72
+ // component: () => import('@vue2-client/pages/LogicCallExample/index.vue'),
73
+ // component: () => import('@vue2-client/components/FilePreview/FilePreviewDemo.vue'),
74
+ component: () => import('@vue2-client/pages/ReportGrid/index.vue'),
75
+ }
76
+ // routerResource.example = () =>
77
+ // import('@vue2-client/pages/Example')
78
+ routerResource.XReportView = () => import('@vue2-client/pages/XReportView')
79
+
80
+ routerResource.XReportGrid = () => import('@vue2-client/base-client/components/common/XReportGrid/XReportDemo')
81
+
82
+ routerResource.XTab = () => import('@vue2-client/base-client/components/common/XTab/XTabDemo')
83
+
84
+ // 基础路由组件注册
85
+ const routerMap = {
86
+ login: {
87
+ authority: '*',
88
+ path: '/login',
89
+ component: process.env.VUE_APP_LOGIN_VERSION === 'V3'
90
+ ? view.loginv3 : view.login
91
+ },
92
+ root: {
93
+ path: '/',
94
+ name: '首页',
95
+ redirect: homePage,
96
+ component: process.env.VUE_APP_SINGLE_PAPER === 'TRUE' ? view.blank : view.tabs,
97
+ },
98
+ exp403: {
99
+ authority: '*',
100
+ name: 'exp403',
101
+ path: '403',
102
+ component: () =>
103
+ import('@vue2-client/pages/exception/403')
104
+ },
105
+ exp404: {
106
+ name: 'exp404',
107
+ path: '404',
108
+ component: () =>
109
+ import('@vue2-client/pages/exception/404')
110
+ },
111
+ exp500: {
112
+ name: 'exp500',
113
+ path: '500',
114
+ component: () =>
115
+ import('@vue2-client/pages/exception/500')
116
+ }
117
+ }
118
+ Object.assign(routerMap, routerResource)
119
+ export default routerMap
@@ -1,15 +0,0 @@
1
- <template>
2
- <x-collapse :query-params-name="openPrescriptionConfig" />
3
- </template>
4
-
5
- <script>
6
- import XCollapse from '@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'
7
- export default {
8
- name: 'Demo',
9
- components: { XCollapse }
10
- }
11
- </script>
12
-
13
- <style scoped>
14
-
15
- </style>