vue2-client 1.8.395 → 1.8.397

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.8.395",
3
+ "version": "1.8.397",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -8,13 +8,14 @@
8
8
  height="60%"
9
9
  okText="提交"
10
10
  @cancel="close"
11
- @ok="$refs.main.onSubmit()">
11
+ @ok="onSubmit">
12
12
  <div style="max-height: 70vh; overflow-y: auto;" v-if="showReport">
13
13
  <x-report
14
14
  @updateImg="updateImg"
15
+ @selectRow="selectRow"
15
16
  ref="main"
16
17
  :use-oss-for-img="false"
17
- config-name="medicalRecordCover"
18
+ :config-name="configName"
18
19
  server-name="af-his"
19
20
  :show-img-in-cell="true"
20
21
  :display-only="displayOnly"
@@ -26,12 +27,12 @@
26
27
  </template>
27
28
  <script>
28
29
  import { mapState } from 'vuex'
29
- import XReport from '@vue2-client/pages/XReportGridView/XReport.vue'
30
+ // import XReport from '@vue2-client/pages/XReportGridView/XReport.vue'
30
31
 
31
32
  export default {
32
33
  name: 'XAddReport',
33
34
  components: {
34
- XReport
35
+ XReport: () => import('@vue2-client/pages/XReportGridView/XReport.vue'),
35
36
  },
36
37
  props: {
37
38
 
@@ -51,7 +52,14 @@ export default {
51
52
  // 新增或修改业务是否执行中
52
53
  loading: false,
53
54
  // 是否显示新增/修改模态框
54
- visible: false
55
+ visible: false,
56
+ // 选中的处理对象的id号
57
+ selectedId: null,
58
+ }
59
+ },
60
+ provide () {
61
+ return {
62
+ getSelectedId: () => { return this.selectedId }
55
63
  }
56
64
  },
57
65
  computed: {
@@ -64,19 +72,29 @@ export default {
64
72
  init (params) {
65
73
  console.log('params', params)
66
74
  const {
67
- configName = 'medicalRecordCover', serverName = 'af-his', displayOnly = true
75
+ configName = 'medicalRecordCover', serverName = 'af-his', displayOnly = true, selectedId = null
68
76
  } = params
69
77
  this.configName = configName
70
78
  this.serverName = serverName
71
79
  this.displayOnly = displayOnly
72
80
  this.visible = true
81
+ // 有选中项,给选中项赋值
82
+ if (selectedId) {
83
+ this.selectedId = selectedId
84
+ }
85
+ },
86
+ selectRow (selectedRowKeys, selectedRows) {
87
+ this.table_selectedRowKeys = selectedRowKeys
88
+ this.table_selectedRows = selectedRows
89
+ console.log('XAddReport')
90
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
73
91
  },
74
92
  close () {
75
93
  this.loading = false
76
94
  this.visible = false
77
95
  this.$emit('close')
78
96
  },
79
- onSubmit (params) {
97
+ onSubmit () {
80
98
  this.loading = true
81
99
  this.close()
82
100
  },
@@ -662,7 +662,10 @@ export default {
662
662
  }
663
663
  // 人员联动框增加监听
664
664
  if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动人员')) {
665
- this.debouncedUserLinkFunc = debounce(this.updateUserOptions, 200)
665
+ this.debouncedUserLinkFunc = debounce(() => this.updateResOptions('人员'), 200)
666
+ }
667
+ if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动部门')) {
668
+ this.debouncedDepLinkFunc = debounce(() => this.updateResOptions('部门'), 200)
666
669
  }
667
670
  if (this.attr.type === 'richText') {
668
671
  this.richText = await this.getRichText()
@@ -700,6 +703,10 @@ export default {
700
703
  if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动人员')) {
701
704
  this.debouncedUserLinkFunc()
702
705
  }
706
+ // 数据源来自人员联动时更新数据
707
+ if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动部门')) {
708
+ this.debouncedDepLinkFunc()
709
+ }
703
710
  },
704
711
  deep: true
705
712
  }
@@ -787,29 +794,27 @@ export default {
787
794
  }
788
795
  },
789
796
  // 更新人员下拉框数据
790
- async updateUserOptions () {
791
- if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString()?.endsWith(']联动人员')) {
792
- const searchData = { source: '获取人员', userid: this.currUser.id }
797
+ async updateResOptions (type) {
798
+ if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString()?.endsWith(`]联动${type}`)) {
799
+ const searchData = { source: `获取${type}`, userid: this.currUser.id }
793
800
  const startIndex = this.attr.keyName.indexOf('[') + 1
794
801
  const endIndex = this.attr.keyName.indexOf(']', startIndex)
795
802
  const fromModel = this.attr.keyName.substring(startIndex, endIndex).replace('.', '_')
796
803
  const formModelData = this.form[fromModel]
797
- await searchToListOption(searchData, res => {
798
- this.getDataCallback(
799
- res.filter(h => {
800
- if (fromModel && fromModel.length) {
804
+ if (fromModel?.length && formModelData?.length) {
805
+ await searchToListOption(searchData, res => {
806
+ this.getDataCallback(
807
+ res.filter(h => {
801
808
  if (fromModel.indexOf('org') > -1) {
802
- return formModelData?.includes(h.orgid || h.f_organization_id)
809
+ return formModelData?.includes(h.orgid || h.f_organization_id || h.parentid)
803
810
  } else {
804
811
  return formModelData?.includes(h?.parentid)
805
812
  }
806
- } else {
807
- return false
808
813
  }
809
- }
814
+ )
810
815
  )
811
- )
812
- })
816
+ })
817
+ }
813
818
  }
814
819
  },
815
820
  // js 函数作为数据源
@@ -904,7 +909,9 @@ export default {
904
909
  const searchData = { source, userid, roleName }
905
910
  // 判断是否根据某个表单项联动 仅返回列表结构并筛选
906
911
  if (source.startsWith('根据表单项[') && source.endsWith(']联动人员')) {
907
- this.updateUserOptions()
912
+ this.updateResOptions('人员')
913
+ } else if (source.startsWith('根据表单项[') && source.endsWith(']联动部门')) {
914
+ this.updateResOptions('部门')
908
915
  } else if (this.attr.type === 'select' || this.attr.type === 'checkbox') {
909
916
  // 仅获取最内层数据
910
917
  searchToListOption(searchData, res => this.getDataCallback(res))
@@ -138,6 +138,7 @@ export default {
138
138
  XAddReport,
139
139
  XImportExcel
140
140
  },
141
+ inject: ['getSelectedId'],
141
142
  data () {
142
143
  return {
143
144
  // 加载状态
@@ -601,6 +602,11 @@ export default {
601
602
  break
602
603
  }
603
604
  }
605
+ },
606
+ mounted () {
607
+ console.log('注入数据', this.getSelectedId()) // 访问祖先组件的数据
608
+ Object.assign(this.fixedAddForm, { selected_id: this.getSelectedId() })
609
+ Object.assign(this.fixedQueryForm, { selected_id: this.getSelectedId() })
604
610
  }
605
611
  }
606
612
  </script>
@@ -8,7 +8,6 @@
8
8
  @action="action"
9
9
  ref="xFormTable">
10
10
  </x-form-table>
11
- <router-view></router-view>
12
11
  <a-button @click="navigateToAnotherPage">跳转到另一个页面</a-button> <!-- 使用方法进行跳转 -->
13
12
  <a-drawer
14
13
  title="详情信息"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div>
3
+ <report-grid />
3
4
  <router-view />
4
5
  <child-index /> <!-- 添加 childIndex 组件 -->
5
6
  </div>
@@ -7,11 +8,13 @@
7
8
 
8
9
  <script>
9
10
  import ChildIndex from './childIndex.vue' // 引入 ChildIndex 组件
11
+ import ReportGrid from '../ReportGrid/index.vue'
10
12
 
11
13
  export default {
12
14
  name: 'Example',
13
15
  components: {
14
16
  ChildIndex, // 注册 ChildIndex 组件
17
+ ReportGrid,
15
18
  },
16
19
  data () {
17
20
  return {
@@ -0,0 +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="medicineMouldCover"
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/pages/XReportGridView/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>
@@ -8,6 +8,7 @@
8
8
  <!-- 主体表格 -->
9
9
  <XReportDesign
10
10
  @updateImg="updateImg"
11
+ @selectRow="selectRow"
11
12
  v-if="scanFinish"
12
13
  :show-img-in-cell="showImgInCell"
13
14
  :img-prefix="imgPrefix"
@@ -50,6 +51,7 @@
50
51
  <XReportDesign
51
52
  v-if="scanFinish"
52
53
  @updateImg="updateImg"
54
+ @selectRow="selectRow"
53
55
  :show-img-in-cell="showImgInCell"
54
56
  :img-prefix="imgPrefix"
55
57
  :use-oss-for-img="useOssForImg"
@@ -68,6 +70,10 @@
68
70
  </XReportDesign>
69
71
  </a-card>
70
72
  </template>
73
+ <!-- 弹出框 -->
74
+ <x-add-report
75
+ ref="xAddReport"
76
+ />
71
77
  </div>
72
78
  </template>
73
79
 
@@ -77,6 +83,7 @@ import HtmlToPdf from '@vue2-client/utils/htmlToPDF'
77
83
  import { getConfigByName } from '@vue2-client/services/api/common'
78
84
  import XReportDesign from './XReportDesign.vue'
79
85
  import { printElement } from './print'
86
+ // import XAddReport from '@vue2-client/base-client/components/common/XAddReport'
80
87
 
81
88
  export default {
82
89
  name: 'XReport',
@@ -173,6 +180,7 @@ export default {
173
180
  }
174
181
  },
175
182
  components: {
183
+ XAddReport: () => import('@vue2-client/base-client/components/common/XAddReport'),
176
184
  XReportDesign
177
185
  },
178
186
  data () {
@@ -233,7 +241,20 @@ export default {
233
241
  }
234
242
  },
235
243
  },
244
+ provide () {
245
+ return {
246
+ openDialog: this.openDialog
247
+ }
248
+ },
236
249
  methods: {
250
+ // 打开弹出框
251
+ openDialog (configName, selectedId) {
252
+ console.log('openDialog', configName, selectedId)
253
+ this.$refs.xAddReport.init({
254
+ configName: configName,
255
+ selectedId: selectedId
256
+ })
257
+ },
237
258
  // 向外暴露图片修改后的数据,某些外部需要自己管理图片的保存与修改
238
259
  updateImg (data) {
239
260
  this.$emit('updateImg', data)
@@ -288,6 +309,13 @@ export default {
288
309
  }
289
310
  }
290
311
  },
312
+ selectRow (selectedRowKeys, selectedRows) {
313
+ this.table_selectedRowKeys = selectedRowKeys
314
+ this.table_selectedRows = selectedRows
315
+ console.log('')
316
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
317
+ },
318
+
291
319
  // 正常的保存方法,当前修改内容会直接全部导出到外部
292
320
  saveConfig () {
293
321
  if (this.activeConfig === undefined || this.activeConfig === null) {
@@ -783,6 +811,10 @@ export default {
783
811
  })
784
812
  }
785
813
  },
814
+ onSubmit () {
815
+ console.log('this.table_selectedRowKeys', this.table_selectedRowKeys)
816
+ console.log('this.table_selectedRows', this.table_selectedRows)
817
+ },
786
818
  },
787
819
  beforeMount () {
788
820
  // 如果只是展示
@@ -3,6 +3,7 @@
3
3
  <template v-if="this.activatedConfig.designMode === 'json'">
4
4
  <XReportJsonRender
5
5
  @updateImg="updateImg"
6
+ @selectRow="selectRow"
6
7
  :img-prefix="imgPrefix"
7
8
  :server-name="serverName"
8
9
  :display-only="displayOnly"
@@ -50,6 +51,7 @@
50
51
  <template v-if="row[0].type === 'slot'">
51
52
  <x-report-tr-group
52
53
  @updateImg="updateImg"
54
+ @selectRow="selectRow"
53
55
  :show-img-in-cell="showImgInCell"
54
56
  :img-prefix="imgPrefix"
55
57
  :server-name="serverName"
@@ -68,6 +70,7 @@
68
70
  <template v-if="!forDisplay">
69
71
  <x-report-tr-group
70
72
  @updateImg="updateImg"
73
+ @selectRow="selectRow"
71
74
  :show-img-in-cell="showImgInCell"
72
75
  :img-prefix="imgPrefix"
73
76
  :server-name="serverName"
@@ -83,6 +86,7 @@
83
86
  <template v-else>
84
87
  <x-report-tr-group
85
88
  @updateImg="updateImg"
89
+ @selectRow="selectRow"
86
90
  :show-img-in-cell="showImgInCell"
87
91
  :img-prefix="imgPrefix"
88
92
  :server-name="serverName"
@@ -103,6 +107,7 @@
103
107
  <template v-if="forDisplay">
104
108
  <x-report-tr-group
105
109
  @updateImg="updateImg"
110
+ @selectRow="selectRow"
106
111
  :show-img-in-cell="showImgInCell"
107
112
  :img-prefix="imgPrefix"
108
113
  :server-name="serverName"
@@ -120,6 +125,7 @@
120
125
  <template v-if="!forDisplay">
121
126
  <x-report-tr-group
122
127
  @updateImg="updateImg"
128
+ @selectRow="selectRow"
123
129
  :show-img-in-cell="showImgInCell"
124
130
  :img-prefix="imgPrefix"
125
131
  :server-name="serverName"
@@ -135,6 +141,7 @@
135
141
  <!-- 动态行交互按钮 -->
136
142
  <x-report-tr-group
137
143
  @updateImg="updateImg"
144
+ @selectRow="selectRow"
138
145
  :show-img-in-cell="showImgInCell"
139
146
  :img-prefix="imgPrefix"
140
147
  :server-name="serverName"
@@ -154,6 +161,7 @@
154
161
  <template v-if="!forDisplay">
155
162
  <x-report-tr-group
156
163
  @updateImg="updateImg"
164
+ @selectRow="selectRow"
157
165
  :show-img-in-cell="showImgInCell"
158
166
  :img-prefix="imgPrefix"
159
167
  :server-name="serverName"
@@ -168,6 +176,7 @@
168
176
  <template v-else>
169
177
  <x-report-tr-group
170
178
  @updateImg="updateImg"
179
+ @selectRow="selectRow"
171
180
  :show-img-in-cell="showImgInCell"
172
181
  :img-prefix="imgPrefix"
173
182
  :server-name="serverName"
@@ -292,6 +301,12 @@ export default {
292
301
  updateImg (data) {
293
302
  this.$emit('updateImg', data)
294
303
  },
304
+ selectRow (selectedRowKeys, selectedRows) {
305
+ this.table_selectedRowKeys = selectedRowKeys
306
+ this.table_selectedRows = selectedRows
307
+ console.log('XReportDesign')
308
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
309
+ },
295
310
  // 根据format计算需要多少个输入框
296
311
  calcFormatInputNum (formatStr) {
297
312
  let count = 0
@@ -17,6 +17,7 @@
17
17
  :is="getComponentName(cell.slotConfig, cell.serviceName, cell.slotType)"
18
18
  :key="cellIndex"
19
19
  :serviceName="cell.serviceName"
20
+ @selectRow="selectRow"
20
21
  @[cell.eventType]="(...args)=>executeCustomFunction( cell,...args)"
21
22
  :queryParamsName="cell.slotConfig"/>
22
23
  </template>
@@ -475,6 +476,7 @@ export default {
475
476
  // tableConfig: {}
476
477
  }
477
478
  },
479
+ inject: ['openDialog'],
478
480
  methods: {
479
481
  executeCustomFunction (cell, ...args) {
480
482
  console.info('Event handled:', cell.eventType, args)
@@ -767,6 +769,12 @@ export default {
767
769
 
768
770
  return result
769
771
  },
772
+ selectRow (selectedRowKeys, selectedRows) {
773
+ this.table_selectedRowKeys = selectedRowKeys
774
+ this.table_selectedRows = selectedRows
775
+ console.log('1123123123')
776
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
777
+ },
770
778
  },
771
779
  beforeMount () {
772
780
  if (this.useOssForImg) {