vue2-client 1.14.65 → 1.14.67

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.
Files changed (34) hide show
  1. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +0 -1
  2. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +1 -2
  3. package/package.json +1 -1
  4. package/src/base-client/components/common/XUploadFilesView/index.vue +485 -485
  5. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  6. package/src/base-client/components/his/XTreeRows/TreeNode.vue +100 -100
  7. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +197 -197
  8. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  9. package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +14 -12
  10. package/src/components/FileImageItem/FileItem.vue +268 -23
  11. package/src/components/FileImageItem/FileItemGroup.vue +197 -0
  12. package/src/components/FileImageItem/ImageItem.vue +32 -3
  13. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +1 -1
  14. package/src/pages/WorkflowDetail/WorkflowDetail.vue +16 -7
  15. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +388 -388
  16. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +79 -35
  17. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +1 -1
  18. package/src/router/async/router.map.js +2 -2
  19. package/src/services/api/workFlow.js +3 -1
  20. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  21. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  22. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  23. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  24. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  25. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  26. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  27. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  28. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  29. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  30. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  31. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
  32. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  33. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  34. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
@@ -37,33 +37,59 @@
37
37
  <a-tab-pane key="0" tab="步骤详情">
38
38
  <a-card :bordered="false" :loading="loadingHistory">
39
39
  <!-- 当前步骤历史记录 -->
40
- <template v-if="formCompletedDataPreview">
40
+ <template v-if="formCompletedDataPreview && formCompletedDataPreview.data.length > 0">
41
41
  <a-descriptions
42
42
  v-show="formCompletedDataPreview.data"
43
43
  :column="{ xxl: 4, xl: 3, lg: 3, md: 3, sm: 2, xs: 1 }"
44
- title="步骤历史记录"
45
44
  bordered
45
+ class="descriptionPreviewItem"
46
46
  >
47
+ <p slot="title" class="descriptionTitle">
48
+ 填写历史
49
+ </p>
47
50
  <a-descriptions-item
48
- v-for="item in formCompletedDataPreview.data"
49
- :key="item.label"
51
+ v-for="(item, index) in formPreviewNoFileData"
52
+ :key="`${item.label}-${index}`"
50
53
  >
51
54
  <span slot="label" style="color: #000">{{ item.label }}</span>
52
55
  <div style="white-space: pre-wrap">{{ item.value }}</div>
53
56
  </a-descriptions-item>
54
57
  </a-descriptions>
55
- <div v-if="formCompletedDataPreview.note">
56
- <div class="ant-descriptions-title complete-data-title">备注</div>
57
- <p style="white-space: pre-wrap">{{ formCompletedDataPreview.note }}</p>
58
- </div>
59
- <div v-if="formCompletedDataPreview.images.length">
60
- <div class="ant-descriptions-title complete-data-title">图片</div>
61
- <image-item :images="formCompletedDataPreview.images" @preview="handlePreviewFile"/>
62
- </div>
63
- <div v-if="formCompletedDataPreview.files.length">
64
- <div class="ant-descriptions-title complete-data-title">附件</div>
65
- <file-item :files="formCompletedDataPreview.files" @preview="handlePreviewFile"/>
66
- </div>
58
+ <a-descriptions
59
+ v-show="formCompletedDataPreview.note"
60
+ bordered
61
+ class="descriptionPreviewItem"
62
+ >
63
+ <p slot="title" class="descriptionTitle">
64
+ 备注
65
+ </p>
66
+ <a-descriptions-item>
67
+ <span slot="label" style="color: #000">备注信息</span>
68
+ <p style="white-space: pre-wrap">{{ formCompletedDataPreview.note }}</p>
69
+ </a-descriptions-item>
70
+ </a-descriptions>
71
+ <a-descriptions
72
+ v-show="formCompletedDataPreview.images.length"
73
+ class="descriptionPreviewItem allWidth"
74
+ >
75
+ <p slot="title" class="descriptionTitle">
76
+ 图片
77
+ </p>
78
+ <a-descriptions-item>
79
+ <image-item :images="formCompletedDataPreview.images" />
80
+ </a-descriptions-item>
81
+ </a-descriptions>
82
+ <a-descriptions
83
+ v-show="formCompletedDataPreview.files.length"
84
+ class="descriptionPreviewItem allWidth"
85
+ >
86
+ <p slot="title" class="descriptionTitle">
87
+ 附件
88
+ </p>
89
+ <a-descriptions-item>
90
+ <file-item :files="formCompletedDataPreview.files" />
91
+ </a-descriptions-item>
92
+ </a-descriptions>
67
93
  </template>
68
94
  <!-- 当前步骤无记录 -->
69
95
  <template v-else>
@@ -75,7 +101,7 @@
75
101
  </template>
76
102
  <template v-else>
77
103
  <a-tab-pane key="1" tab="业务操作">
78
- <a-card :bordered="false" :loading="loadingHistory">
104
+ <a-card :bordered="false" :loading="loadingHistory" :body-style="{ paddingTop: 0 }">
79
105
  <template v-if="showTab">
80
106
  <x-tab :local-config="tabDesigner" :body-style="{ padding: 0 }" :tabBarGutter="24" default-active-key="workFlowTab">
81
107
  <a-tab-pane
@@ -182,7 +208,7 @@
182
208
  </a-button>
183
209
  </a-popover>
184
210
  <a-button
185
- v-show="lastStep"
211
+ v-if="lastStep"
186
212
  type="primary"
187
213
  @click="lastStepNextClick"
188
214
  >
@@ -198,14 +224,14 @@
198
224
  <!-- 退回 -->
199
225
  <a-tab-pane v-if="canSubmit && !beforeStepActive && showPrevBtn && !workflowState" key="2" tab="退回">
200
226
  <a-form layout="vertical">
201
- <a-form-item label="退回原因" :wrapper-col="{ span: 10 }" required>
227
+ <a-form-item label="退回原因" :wrapper-col="{ span: 24 }" required>
202
228
  <a-textarea
203
229
  v-model="note"
204
230
  :auto-size="{ minRows: 4, maxRows: 10 }"
205
231
  placeholder="请填写退回原因 / 备注"
206
232
  />
207
233
  </a-form-item>
208
- <a-form-item :wrapper-col="{ offset: 4 }">
234
+ <a-form-item :wrapper-col="{ offset: 11 }">
209
235
  <a-popover :title="preBtnTitle">
210
236
  <template slot="content">
211
237
  <p v-for="(item,index) in preBtnText" :key="index">{{ item }}</p>
@@ -226,10 +252,6 @@
226
252
  <workflow-list-resolution :workflow-project-id="workflowId" :details="details"></workflow-list-resolution>
227
253
  </a-tab-pane>
228
254
  </a-tabs>
229
- <!-- 文件预览 -->
230
- <a-modal v-model="previewFileVisible" :footer="null" :dialog-style="{ top: '20px' }" width="85%" :z-index="1001">
231
- <file-preview :path="filePath"/>
232
- </a-modal>
233
255
  </template>
234
256
  </div>
235
257
  </template>
@@ -271,7 +293,7 @@ export default {
271
293
  ...mapState('account', { currUser: 'user' }),
272
294
  canSubmit () {
273
295
  // 对于超级管理员直接认为可以提交
274
- if (this.currUser.ename === '1') {
296
+ if (this.currUser.name === '超级管理员') {
275
297
  return true
276
298
  }
277
299
  // currentStepId可能还没初始化,此处拿不到先返回false
@@ -309,6 +331,9 @@ export default {
309
331
  }
310
332
 
311
333
  return false
334
+ },
335
+ formPreviewNoFileData () {
336
+ return this.formCompletedDataPreview.data.filter(item => item.label !== '附件上传')
312
337
  }
313
338
  },
314
339
  data () {
@@ -391,9 +416,6 @@ export default {
391
416
  deadlineHelp: '',
392
417
  // 当前任务是否延期
393
418
  // taskIsOverdue: moment().isAfter(this.completeTime, 'day'),
394
- // 预览图片弹框
395
- previewFileVisible: false,
396
- filePath: '',
397
419
  // 操作类型,提交到下一步或跳过
398
420
  operationType: 'submit',
399
421
  // 获取微信推送是否成功信息
@@ -711,7 +733,8 @@ export default {
711
733
  businessType: '修改',
712
734
  formItems: this.stepDefine,
713
735
  layout: properties.form.xAddFormLayout,
714
- showSubmitBtn: false
736
+ showSubmitBtn: false,
737
+ isKeyHandle: false
715
738
  })
716
739
  })
717
740
  } else {
@@ -872,7 +895,7 @@ export default {
872
895
  if (this.checkedChargePerson) {
873
896
  // 使用 value 找到对应的 label
874
897
  stepHandler = this.chargePersonOptions.find(item => item.value === this.checkedChargePerson).label
875
- } else if (this.chargePerson.personList.length > 0) {
898
+ } else if (this.chargePerson.personList && this.chargePerson.personList.length > 0) {
876
899
  stepHandler = this.chargePerson.personList.map(item => item.name).join(',')
877
900
  }
878
901
  return stepHandler
@@ -906,11 +929,6 @@ export default {
906
929
  ...extra
907
930
  })
908
931
  },
909
- // 文件预览
910
- handlePreviewFile (url) {
911
- this.filePath = url
912
- this.previewFileVisible = true
913
- },
914
932
  // 获取默认截止时间
915
933
  getDefaultDeadline () {
916
934
  const date = new Date()
@@ -1063,4 +1081,30 @@ export default {
1063
1081
  :deep(.ant-result){
1064
1082
  padding: 0;
1065
1083
  }
1084
+ .descriptionPreviewItem {
1085
+ margin-bottom: 22px;
1086
+ :deep(.ant-descriptions-view) {
1087
+ overflow: visible;
1088
+ }
1089
+ }
1090
+ .allWidth {
1091
+ :deep(.ant-descriptions-item-content) {
1092
+ width: 100%;
1093
+ }
1094
+ }
1095
+ .descriptionTitle {
1096
+ position: relative;
1097
+ padding-left: 12px;
1098
+ &::before {
1099
+ content: '';
1100
+ position: absolute;
1101
+ left: 0;
1102
+ top: 50%;
1103
+ transform: translateY(-50%);
1104
+ width: 4px;
1105
+ height: 16px;
1106
+ background-color: @primary-color;
1107
+ border-radius: 2px;
1108
+ }
1109
+ }
1066
1110
  </style>
@@ -154,7 +154,7 @@ export default {
154
154
  line-height: 8px;
155
155
  }
156
156
  .ant-steps-item-content {
157
- min-width: 200px;
157
+ min-width: 195px;
158
158
  margin-top: 24px;
159
159
  .ant-steps-item-description {
160
160
  text-align: left;
@@ -56,7 +56,7 @@ routerResource.example = {
56
56
  path: 'example',
57
57
  name: '示例主页面',
58
58
  // component: () => import('@vue2-client/base-client/components/common/XDescriptions/demo.vue'),
59
- component: () => import('@vue2-client/base-client/components/common/XAddNativeForm/demo.vue'),
59
+ // component: () => import('@vue2-client/base-client/components/common/XAddNativeForm/demo.vue'),
60
60
  // component: () => import('@vue2-client/base-client/components/common/XFormGroup/demo.vue'),
61
61
  // component: () => import('@vue2-client/base-client/components/common/XReport/XReportDemo.vue'),
62
62
  // component: () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue'),
@@ -65,7 +65,7 @@ routerResource.example = {
65
65
  // component: () => import('@vue2-client/base-client/components/common/XRate/demo.vue'),
66
66
  // component: () => import('@vue2-client/base-client/components/common/XForm/demo.vue'),
67
67
  // component: () => import('@vue2-client/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue'),
68
- // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
68
+ component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
69
69
  // component: () => import('@vue2-client/base-client/components/common/XConversation/XConversationDemo.vue'),
70
70
  // component: () => import('@vue2-client/base-client/components/common/XButtons/XButtonDemo.vue'),
71
71
  // component: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue'),
@@ -55,7 +55,9 @@ const workFlowViewApi = {
55
55
  // 根据人查询对应的t_workflow_step中字段f_workflow_id的数据组
56
56
  getWorkFlowStepWorkFlowId: '/logic/getWorkFlowStepWorkFlowId',
57
57
  // 表单提交到下一步
58
- submitToNextStep: '/logic/submitToNextStep'
58
+ submitToNextStep: '/logic/submitToNextStep',
59
+ // 获取指定工作流的附件列表
60
+ getWorkFlowAttachments: '/logic/getWorkFlowAttachments',
59
61
  }
60
62
 
61
63
  export { workFlowViewApi }
@@ -1,51 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8"/>
5
- <link rel="shortcut icon" href="./favicon.svg" type="image/svg+xml"/>
6
- <link rel="stylesheet" href="./vender/jquery/zTreeStyle/zTreeStyle.css" type="text/css">
7
- <script src = "./vender/jquery/jquery.js"></script>
8
- <script src = "./vender/date97/WdatePicker.js"></script>
9
- <script src = "./vender/jquery/jquery.ztree.core.min.js"></script>
10
- <script src = "./vender/jquery/jquery.ztree.exedit.min.js"></script>
11
- <script src = "./vender/jquery/jquery.ztree.exhide.min.js"></script>
12
- <script src = "./vender/codemirror.js"></script>
13
- <script src = "./vender/fabric.js"></script>
14
- <script src="./vender/editor.js"></script>
15
- <script>
16
- $(function() {
17
- //配置项可以不设置,会使用默认设置
18
- let option = {
19
- license:'QO1pepfLYwDNqGvW21ensj0psE9CxBxf5MSRD1q2sCvclYGGtk6clTZEIth12i4SvvvDC04ZNcHe3uQuNtBUFcAk7sHUwAdYvffM2aZis/jpZqrm1rDGk1NHYsheD6DroF+m3jZ5Izh/LxRjzZJfaHHejfrn5InFoSqErfPm4gY=',
20
- mode:'form', //默认模式 form:表单模式,design:设计模式
21
- pdfUrl:'https://www.x-emr.cn/pdf/post', //pdf生成服务
22
- dictionary: [ //知识库
23
- {name: '体征', isParent:true, treeUrl:'https://www.x-emr.cn/dict?category=20', itemUrl:'https://www.x-emr.cn/dictitem'},
24
- {name: '症状', isParent:true, treeUrl:'https://www.x-emr.cn/dict?category=20', itemUrl:'https://www.x-emr.cn/dictitem'},
25
- {name: '卫生信息数据元', isParent:true, treeUrl:'https://www.x-emr.cn/dict?category=40', itemUrl:'https://www.x-emr.cn/dictitem'},
26
- {name: '电子病历数据集', isParent:true, treeUrl:'https://www.x-emr.cn/dict?category=50', itemUrl:'https://www.x-emr.cn/dictitem'},
27
- {name: '国家医保标准', isParent:true, treeUrl:'https://www.x-emr.cn/dict?category=80', itemUrl:'https://www.x-emr.cn/dictitem'},
28
- {name: '省数据平台标准', isParent:true, treeUrl:'https://www.x-emr.cn/dict?category=90', itemUrl:'https://www.x-emr.cn/dictitem'},
29
- ]
30
- }
31
-
32
- //从模块的Editor组件中获取mode,doc,lang属性 (该段代码可删除)
33
- let mode = window.frameElement.getAttribute('mode')
34
- let doc = window.frameElement.getAttribute('doc')
35
- let lang = window.frameElement.getAttribute('lang')
36
- mode? option.mode = mode: null
37
- lang? option.lang = lang: null
38
-
39
- //初始化编辑器(初始化代码可以放入组件的load事件中)
40
- editor.init(option).then(()=>{
41
- doc? editor.loadUrl(doc) : null
42
- })
43
-
44
- })
45
- </script>
46
- </head>
47
- <body>
48
- <!-- 默认id 为editor -->
49
- <div id="editor" style="width:100%; height:100%;"></div>
50
- </body>
51
- </html>