vue2-client 1.14.42 → 1.14.43

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.
@@ -13,7 +13,7 @@ const props = defineProps({
13
13
  modalType: {
14
14
  type: String,
15
15
  default: 'create',
16
- validator: (value) => ['create', 'update', 'baby'].includes(value)
16
+ validator: (value) => ['create', 'update'].includes(value)
17
17
  },
18
18
  editorReady: {
19
19
  type: Boolean,
@@ -27,8 +27,7 @@ const emit = defineEmits(['update:visible', 'submit', 'cancel'])
27
27
  // 常量
28
28
  const modalTitles = {
29
29
  create: '创建体温单',
30
- update: '更新体温单',
31
- baby: '新生儿体温单'
30
+ update: '更新体温单'
32
31
  }
33
32
 
34
33
  // 响应式状态
@@ -118,9 +117,9 @@ const resetForm = () => {
118
117
  formData.heart = ''
119
118
  formData.tempType = ''
120
119
  formData.temperature = ''
121
- formData.physicalcool = ''
122
- formData.breath = ''
123
- formData.sphygmus = ''
120
+ formData.pulse = ''
121
+ formData.breathing = ''
122
+ formData.bloodPressure = ''
124
123
  formData.labels = ''
125
124
  formData.data1 = ''
126
125
  formData.data2 = ''
@@ -222,7 +221,6 @@ const closeModal = () => {
222
221
 
223
222
  // 验证表单
224
223
  const validateForm = () => {
225
- const isBaby = props.modalType === 'baby'
226
224
  const errors = {}
227
225
  let hasError = false
228
226
  // 通用字段验证
@@ -247,23 +245,15 @@ const validateForm = () => {
247
245
  { key: 'data5', label: '小便次数' }
248
246
  ]
249
247
  // 成人特有字段
250
- if (!isBaby) {
251
- requiredFields.push(
252
- { key: 'diag', label: '诊断' },
253
- { key: 'operateDate', label: '手术日期' },
254
- { key: 'sphygmus', label: '脉搏' },
255
- { key: 'data6', label: '身高' },
256
- { key: 'data7', label: '体重' },
257
- { key: 'data8', label: '过敏药' },
258
- { key: 'data9', label: '其他数据' }
259
- )
260
- } else {
261
- // 婴儿特有字段
262
- requiredFields.push(
263
- { key: 'weight', label: '体重' },
264
- { key: 'physicalcool', label: '物理降温' }
265
- )
266
- }
248
+ requiredFields.push(
249
+ { key: 'diag', label: '诊断' },
250
+ { key: 'operateDate', label: '手术日期' },
251
+ { key: 'sphygmus', label: '脉搏' },
252
+ { key: 'data6', label: '身高' },
253
+ { key: 'data7', label: '体重' },
254
+ { key: 'data8', label: '过敏药' },
255
+ { key: 'data9', label: '其他数据' }
256
+ )
267
257
  // 检查每个必填字段
268
258
  requiredFields.forEach(field => {
269
259
  // 首先检查字段是否存在
@@ -290,9 +280,8 @@ const validateForm = () => {
290
280
 
291
281
  // 获取表单数据
292
282
  const getFormData = () => {
293
- const isBaby = props.modalType === 'baby'
294
283
  const commonData = {
295
- id: formData.id || `${isBaby ? 'BY' : 'VS'}${Date.now()}`,
284
+ id: formData.id || `VS${Date.now()}`,
296
285
  name: formData.name,
297
286
  inDate: formData.inDate,
298
287
  dept: formData.dept,
@@ -310,26 +299,18 @@ const getFormData = () => {
310
299
  data3: formData.data3,
311
300
  data4: formData.data4,
312
301
  data5: formData.data5,
313
- pain: formData.pain
314
- }
315
- if (isBaby) {
316
- return {
317
- ...commonData,
318
- type: 'baby',
319
- sex: formData.sex,
320
- weight: formData.weight,
321
- physicalcool: formData.physicalcool
322
- }
323
- }
324
- return {
325
- ...commonData,
326
- diag: formData.diag,
327
- operateDate: formData.operateDate,
328
- sphygmus: formData.sphygmus,
329
302
  data6: formData.data6,
330
303
  data7: formData.data7,
331
304
  data8: formData.data8,
332
- data9: formData.data9
305
+ data9: formData.data9,
306
+ pain: formData.pain,
307
+ diag: formData.diag,
308
+ operateDate: formData.operateDate,
309
+ sphygmus: formData.sphygmus
310
+ }
311
+ return {
312
+ ...commonData,
313
+ type: 'normal'
333
314
  }
334
315
  }
335
316
 
@@ -368,7 +349,7 @@ const submitForm = async () => {
368
349
  <a-form :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
369
350
  <!-- 通用基础信息字段 -->
370
351
  <a-form-item label="ID" :validateStatus="formErrors.id ? 'error' : ''" :help="formErrors.id">
371
- <a-input v-model="formData.id" :placeholder="`请输入ID,如:${modalType === 'baby' ? 'BY' : 'AD'}20230001`" />
352
+ <a-input v-model="formData.id" :placeholder="`请输入ID,如:AD20230001`" />
372
353
  </a-form-item>
373
354
  <a-form-item label="姓名" :validateStatus="formErrors.name ? 'error' : ''" :help="formErrors.name">
374
355
  <a-input v-model="formData.name" placeholder="请输入姓名,如:张三" />
@@ -376,24 +357,12 @@ const submitForm = async () => {
376
357
  <a-form-item label="入院日期" :validateStatus="formErrors.inDate ? 'error' : ''" :help="formErrors.inDate">
377
358
  <a-input v-model="formData.inDate" placeholder="请输入日期,如:2023-08-01" />
378
359
  </a-form-item>
379
- <!-- 新生儿特有字段 -->
380
- <template v-if="modalType === 'baby'">
381
- <a-form-item label="性别">
382
- <a-radio-group v-model="formData.sex">
383
- <a-radio value="男">男</a-radio>
384
- <a-radio value="女">女</a-radio>
385
- </a-radio-group>
386
- </a-form-item>
387
- </template>
388
- <!-- 成人特有字段 -->
389
- <template v-else>
390
360
  <a-form-item label="诊断" :validateStatus="formErrors.diag ? 'error' : ''" :help="formErrors.diag">
391
361
  <a-input v-model="formData.diag" placeholder="请输入诊断,如:新型冠状病毒肺炎" />
392
362
  </a-form-item>
393
- </template>
394
363
  <!-- 通用字段 -->
395
364
  <a-form-item label="科室" :validateStatus="formErrors.dept ? 'error' : ''" :help="formErrors.dept">
396
- <a-input v-model="formData.dept" :placeholder="`请输入科室,如:${modalType === 'baby' ? '妇产科' : '呼吸内科'}`" />
365
+ <a-input v-model="formData.dept" :placeholder="`请输入科室,如:呼吸内科`" />
397
366
  </a-form-item>
398
367
  <a-form-item label="床位" :validateStatus="formErrors.bed ? 'error' : ''" :help="formErrors.bed">
399
368
  <a-input v-model="formData.bed" placeholder="请输入床位,如:801" />
@@ -404,30 +373,19 @@ const submitForm = async () => {
404
373
  <a-form-item label="开始日期" :validateStatus="formErrors.begin ? 'error' : ''" :help="formErrors.begin">
405
374
  <a-input v-model="formData.begin" placeholder="请输入日期,如:2023-08-01" />
406
375
  </a-form-item>
407
- <!-- 成人特有字段 -->
408
- <template v-if="modalType !== 'baby'">
409
- <a-form-item label="手术日期" :validateStatus="formErrors.operateDate ? 'error' : ''" :help="formErrors.operateDate">
410
- <a-input v-model="formData.operateDate" placeholder="请输入日期,如:2023-08-03" />
411
- </a-form-item>
412
- </template>
376
+ <a-form-item label="手术日期" :validateStatus="formErrors.operateDate ? 'error' : ''" :help="formErrors.operateDate">
377
+ <a-input v-model="formData.operateDate" placeholder="请输入日期,如:2023-08-03" />
378
+ </a-form-item>
413
379
  <!-- 备注字段 -->
414
380
  <a-form-item label="备注" :validateStatus="formErrors.notes ? 'error' : ''" :help="formErrors.notes">
415
381
  <a-input v-model="formData.notes" :placeholder="`请输入备注,如:${modalType === 'baby' ? '出生-十时二十分' : '入院-十时二十分,,转入ICU,,,,,,,手术'}`" />
416
382
  <div class="input-tip">格式:多个值用逗号分隔,对应不同日期</div>
417
383
  </a-form-item>
418
384
  <!-- 根据表单类型显示不同的数据字段 -->
419
- <template v-if="modalType !== 'baby'">
420
- <a-form-item label="脉搏" :validateStatus="formErrors.sphygmus ? 'error' : ''" :help="formErrors.sphygmus">
421
- <a-input v-model="formData.sphygmus" placeholder="脉搏数据,如:112,110,109,103,108,85" />
422
- <div class="input-tip">格式:多个值用逗号分隔</div>
423
- </a-form-item>
424
- </template>
425
- <template v-else>
426
- <a-form-item label="体重" :validateStatus="formErrors.weight ? 'error' : ''" :help="formErrors.weight">
427
- <a-input v-model="formData.weight" placeholder="体重数据,多个值用逗号分隔,如:3200,,,,3300,,,,3400" />
428
- <div class="input-tip">格式:多个值用逗号分隔,每组数据对应一天</div>
429
- </a-form-item>
430
- </template>
385
+ <a-form-item label="脉搏" :validateStatus="formErrors.sphygmus ? 'error' : ''" :help="formErrors.sphygmus">
386
+ <a-input v-model="formData.sphygmus" placeholder="脉搏数据,如:112,110,109,103,108,85" />
387
+ <div class="input-tip">格式:多个值用逗号分隔</div>
388
+ </a-form-item>
431
389
  <!-- 生命体征数据字段 -->
432
390
  <a-form-item label="心率" :validateStatus="formErrors.heart ? 'error' : ''" :help="formErrors.heart">
433
391
  <a-input v-model="formData.heart" placeholder="心率数据,多个值用逗号分隔,如:112,120,118,111" />
@@ -438,16 +396,9 @@ const submitForm = async () => {
438
396
  <div class="input-tip">格式:多个值用逗号分隔,0-3表示不同类型</div>
439
397
  </a-form-item>
440
398
  <a-form-item label="体温" :validateStatus="formErrors.temperature ? 'error' : ''" :help="formErrors.temperature">
441
- <a-input v-model="formData.temperature" :placeholder="`体温数据,如:${modalType === 'baby' ? '37.7,37.9,38.5,37.1' : '38.7,38.9,38.5,39.1,38.5,38.5|37.1'}`" />
399
+ <a-input v-model="formData.temperature" :placeholder="`体温数据,如:38.7,38.9,38.5,39.1,38.5,38.5|37.1`" />
442
400
  <div class="input-tip">格式:多个值用逗号分隔<template v-if="modalType !== 'baby'">,|表示新一行数据</template></div>
443
401
  </a-form-item>
444
- <!-- 新生儿特有字段 -->
445
- <template v-if="modalType === 'baby'">
446
- <a-form-item label="物理降温" :validateStatus="formErrors.physicalcool ? 'error' : ''" :help="formErrors.physicalcool">
447
- <a-input v-model="formData.physicalcool" placeholder="物理降温数据,如:,,,37.6,,,,,,,,37.5" />
448
- <div class="input-tip">格式:多个值用逗号分隔,空值用逗号表示</div>
449
- </a-form-item>
450
- </template>
451
402
  <!-- 通用数据字段 -->
452
403
  <a-form-item label="呼吸" :validateStatus="formErrors.breath ? 'error' : ''" :help="formErrors.breath">
453
404
  <a-input v-model="formData.breath" placeholder="呼吸数据,如:30,30,R,,35,35" />
@@ -478,25 +429,22 @@ const submitForm = async () => {
478
429
  <a-input v-model="formData.data5" placeholder="小便次数数据,如:2,4,5,3,3,3,2,,2" />
479
430
  <div class="input-tip">格式:多个值用逗号分隔</div>
480
431
  </a-form-item>
481
- <!-- 成人特有字段 -->
482
- <template v-if="modalType !== 'baby'">
483
- <a-form-item label="身高" :validateStatus="formErrors.data6 ? 'error' : ''" :help="formErrors.data6">
484
- <a-input v-model="formData.data6" placeholder="身高数据,如:167cm,,,,,,,,,164cm" />
485
- <div class="input-tip">格式:多个值用逗号分隔</div>
486
- </a-form-item>
487
- <a-form-item label="体重" :validateStatus="formErrors.data7 ? 'error' : ''" :help="formErrors.data7">
488
- <a-input v-model="formData.data7" placeholder="体重数据,如:95kg,,,,,90kg" />
489
- <div class="input-tip">格式:多个值用逗号分隔</div>
490
- </a-form-item>
491
- <a-form-item label="过敏药" :validateStatus="formErrors.data8 ? 'error' : ''" :help="formErrors.data8">
492
- <a-input v-model="formData.data8" placeholder="过敏药数据,如:青霉素," />
493
- <div class="input-tip">格式:多个值用逗号分隔</div>
494
- </a-form-item>
495
- <a-form-item label="其他数据" :validateStatus="formErrors.data9 ? 'error' : ''" :help="formErrors.data9">
496
- <a-input v-model="formData.data9" placeholder="其他数据,如:测试," />
497
- <div class="input-tip">格式:多个值用逗号分隔</div>
498
- </a-form-item>
499
- </template>
432
+ <a-form-item label="身高" :validateStatus="formErrors.data6 ? 'error' : ''" :help="formErrors.data6">
433
+ <a-input v-model="formData.data6" placeholder="身高数据,如:167cm,,,,,,,,,164cm" />
434
+ <div class="input-tip">格式:多个值用逗号分隔</div>
435
+ </a-form-item>
436
+ <a-form-item label="体重" :validateStatus="formErrors.data7 ? 'error' : ''" :help="formErrors.data7">
437
+ <a-input v-model="formData.data7" placeholder="体重数据,如:95kg,,,,,90kg" />
438
+ <div class="input-tip">格式:多个值用逗号分隔</div>
439
+ </a-form-item>
440
+ <a-form-item label="过敏药" :validateStatus="formErrors.data8 ? 'error' : ''" :help="formErrors.data8">
441
+ <a-input v-model="formData.data8" placeholder="过敏药数据,如:青霉素," />
442
+ <div class="input-tip">格式:多个值用逗号分隔</div>
443
+ </a-form-item>
444
+ <a-form-item label="其他数据" :validateStatus="formErrors.data9 ? 'error' : ''" :help="formErrors.data9">
445
+ <a-input v-model="formData.data9" placeholder="其他数据,如:测试," />
446
+ <div class="input-tip">格式:多个值用逗号分隔</div>
447
+ </a-form-item>
500
448
  <!-- 按钮 -->
501
449
  <a-form-item :wrapper-col="{ span: 18, offset: 6 }">
502
450
  <a-button type="primary" @click="submitForm" :loading="submitLoading" style="margin-right: 10px">确定</a-button>
@@ -8,19 +8,16 @@
8
8
  <a-button plain type="primary" @click="showVitalSignsModal('update')" :loading="loading" :disabled="!editorReady">更新体温单</a-button>
9
9
  </a-button-group>
10
10
  <a-button-group style="margin: 0 20px;">
11
- <a-button plain type="primary" @click="showVitalSignsModal('baby')" :loading="loading" :disabled="!editorReady">新生儿体温单</a-button>
12
- </a-button-group>
13
- <a-button-group style="margin: 0 20px;">
14
- <a-button plain type="primary" @click="execCommand('preview')" :loading="loading" :disabled="!editorReady">打印预览</a-button>
15
11
  <a-button plain type="primary" @click="execCommand('print')" :loading="loading" :disabled="!editorReady">打印</a-button>
16
12
  </a-button-group>
17
13
  <!-- 修改清空体温单按钮样式,使其更加醒目 -->
18
- <a-button type="primary"
19
- danger
20
- @click="clearVitalSigns"
21
- :loading="loading"
22
- :disabled="!editorReady"
23
- style="margin-left: 10px;">
14
+ <a-button
15
+ type="primary"
16
+ danger
17
+ @click="clearVitalSigns"
18
+ :loading="loading"
19
+ :disabled="!editorReady"
20
+ style="margin-left: 10px;">
24
21
  <a-icon type="delete" /> 清空体温单
25
22
  </a-button>
26
23
  </a-row>
@@ -70,8 +67,7 @@ const emit = defineEmits(['submit'])
70
67
  // 常量
71
68
  const modalTitles = {
72
69
  create: '创建体温单',
73
- update: '更新体温单',
74
- baby: '新生儿体温单'
70
+ update: '更新体温单'
75
71
  }
76
72
 
77
73
  // 显示弹窗
@@ -272,22 +268,16 @@ const handleSubmit = async (formData) => {
272
268
  loading.value = true
273
269
  generating.value = true // 开始生成,显示加载遮罩
274
270
  try {
275
- // 简化代码,直接在现有体温单上创建新的体温单(不再清空)
276
271
  let result
277
272
  try {
278
273
  const iframe = editorComponent.value.$refs.editorIframe
279
274
  if (iframe?.contentWindow) {
280
- const dataStr = JSON.stringify(formData)
281
- const script = `
282
- try {
283
- const data = JSON.parse('${dataStr.replace(/'/g, "\\'")}');
284
- return editor.createVitalSigns(data);
285
- } catch(e) {
286
- console.error('iframe执行错误:', e);
287
- return null;
288
- }
289
- `
290
- result = iframe.contentWindow.eval(script)
275
+ // 直接传递数据对象,避免使用eval
276
+ if (iframe.contentWindow.editor && typeof iframe.contentWindow.editor.createVitalSigns === 'function') {
277
+ result = iframe.contentWindow.editor.createVitalSigns(formData)
278
+ } else {
279
+ throw new Error('编辑器对象无效')
280
+ }
291
281
  } else if (window.iframeEditor) {
292
282
  result = window.iframeEditor.createVitalSigns(formData)
293
283
  } else {
@@ -6,7 +6,7 @@ export default {
6
6
  components: { WorkflowDetail },
7
7
  mounted () {
8
8
  this.$refs.workFlow.init({
9
- workflowId: '1'
9
+ workflowId: '31'
10
10
  })
11
11
  },
12
12
  methods: {
@@ -2,64 +2,97 @@
2
2
  <!-- 抽屉 -->
3
3
  <a-drawer
4
4
  :visible="visible"
5
- width="85vw"
5
+ width="95vw"
6
6
  :placement="direction"
7
7
  title="流程详情"
8
8
  @close="onClose"
9
+ class="modern-workflow-drawer"
10
+ :bodyStyle="{ padding: '0', background: '#f5f7fa' }"
11
+ :headerStyle="{ borderBottom: '1px solid #eaedf2', padding: '16px 24px' }"
9
12
  >
10
- <div>
11
- <!-- 基础信息 -->
12
- <workflow-base-information
13
- v-if="details"
14
- ref="baseInformation"
15
- :workflow-id="workflowId"
16
- :details="details"
17
- :visible="visible"
18
- />
19
- <div :style="{ height: screenHeight * 0.9 + 'px' }">
20
- <a-card style="margin-top: 20px">
21
- <a-tabs :activeKey="activeKey" @change="changeTab">
22
- <a-tab-pane key="1" tab="查看 / 编辑进度">
23
- <WorkFlowHandle
24
- v-if="
25
- activeKey === '1' &&
26
- details.f_state !== undefined &&
27
- steps !== undefined
28
- "
29
- ref="workflowHandle"
13
+ <div class="workflow-container">
14
+ <!-- 基础信息卡片 -->
15
+ <div class="info-section">
16
+ <workflow-base-information
17
+ v-if="details"
18
+ ref="baseInformation"
19
+ :workflow-id="workflowId"
20
+ :details="details"
21
+ :visible="visible"
22
+ class="base-info-card"
23
+ />
24
+ </div>
25
+
26
+ <!-- 内容区域 -->
27
+ <div class="content-section" :style="{ minHeight: screenHeight * 0.7 + 'px' }">
28
+ <a-card class="content-card" :bordered="false">
29
+ <a-tabs
30
+ :activeKey="activeKey"
31
+ @change="changeTab"
32
+ class="modern-tabs"
33
+ :tabBarStyle="{ marginBottom: '5px', borderBottom: '1px solid #eaedf2' }"
34
+ >
35
+ <!-- 查看/编辑进度标签页 -->
36
+ <a-tab-pane key="1" tab="开始工作">
37
+ <template v-if="details">
38
+ <WorkFlowHandle
39
+ v-if="activeKey === '1' && details.f_state !== undefined && steps !== undefined"
40
+ ref="workflowHandle"
41
+ :workflow-id="workflowId"
42
+ :workflowState="details.f_state === 1"
43
+ :complete-time="details.f_complete_time"
44
+ :stepsForChild="steps"
45
+ :visible="visible"
46
+ :taskName="details.f_task_name"
47
+ :details="details"
48
+ @refresh="stepChanged"
49
+ @success="success"
50
+ @nextClick="nextClick"
51
+ class="handle-content"
52
+ />
53
+ </template>
54
+ </a-tab-pane>
55
+
56
+ <!-- 任务流转记录标签页 -->
57
+ <a-tab-pane key="2" tab="流转记录">
58
+ <workflow-log
59
+ v-if="activeKey === '2'"
30
60
  :workflow-id="workflowId"
31
- :workflowState="details.f_state === 1"
32
- :complete-time="details.f_complete_time"
33
- :stepsForChild="steps"
34
- :visible="visible"
35
- :taskName="details.f_task_name"
36
- :details="details"
37
- @refresh="stepChanged"
38
- @success="success"
39
- @nextClick="nextClick"
61
+ class="log-content"
40
62
  />
41
63
  </a-tab-pane>
42
- <a-tab-pane key="2" tab="任务流转记录">
43
- <workflow-log v-if="activeKey === '2'" :workflow-id="workflowId"/>
44
- </a-tab-pane>
64
+
65
+ <!-- 任务留言标签页 -->
45
66
  <a-tab-pane key="4">
46
- <span slot="tab">
67
+ <span slot="tab" class="message-tab">
47
68
  <span>任务留言</span>
48
69
  <a-badge
49
70
  :count="messageList.length"
50
- :offset="[4, -4]"
51
- :number-style="{ backgroundColor: '#b2b2b2' }"></a-badge>
71
+ :offset="[8, -4]"
72
+ :numberStyle="{ backgroundColor: '#5B6B8F', fontSize: '12px', padding: '0 6px', height: '18px', lineHeight: '18px', borderRadius: '9px' }"
73
+ />
52
74
  </span>
53
- <a-row>
54
- <a-col :span="14">
75
+ <div class="message-content">
76
+ <template v-if="details">
55
77
  <leave-message
56
- :workflowId="this.workflowId"
78
+ :workflowId="workflowId"
57
79
  :projectName="details.f_task_name"
58
80
  :data="messageList"
59
81
  :loading="messageLoading"
60
- @success="success"/>
61
- </a-col>
62
- </a-row>
82
+ @success="success"
83
+ class="leave-message-component"
84
+ />
85
+ </template>
86
+ </div>
87
+ </a-tab-pane>
88
+
89
+ <!-- 查看附件标签页 -->
90
+ <a-tab-pane key="5" tab="查看附件">
91
+ <template v-if="details">
92
+ <XUploadFilesView
93
+ :currUserInfo="{ f_userinfo_id: 90613 }"
94
+ />
95
+ </template>
63
96
  </a-tab-pane>
64
97
  </a-tabs>
65
98
  </a-card>
@@ -77,6 +110,7 @@ import { postByServiceName } from '@vue2-client/services/api/restTools'
77
110
  import { workFlowViewApi } from '@vue2-client/services/api/workFlow'
78
111
  import WorkflowLog from './WorkflowPageDetail/WorkflowLog.vue'
79
112
  import LeaveMessage from './WorkflowPageDetail/LeaveMessage'
113
+ import XUploadFilesView from '@vue2-client/base-client/components/common/XUploadFilesView/index.vue'
80
114
 
81
115
  export default {
82
116
  name: 'WorkflowDetail',
@@ -85,7 +119,8 @@ export default {
85
119
  WorkFlowHandle,
86
120
  XFormTable,
87
121
  WorkflowLog,
88
- LeaveMessage
122
+ LeaveMessage,
123
+ XUploadFilesView
89
124
  },
90
125
  data () {
91
126
  return {
@@ -98,7 +133,7 @@ export default {
98
133
  // 保存流程和留言信息
99
134
  steps: undefined,
100
135
  // 基础信息
101
- details: {},
136
+ details: undefined,
102
137
  // 是否已完成
103
138
  allStepDown: false,
104
139
  // 给XFormTable增加额外查询条件
@@ -113,7 +148,7 @@ export default {
113
148
  messageList: [],
114
149
  messageLoading: true,
115
150
  workflowId: '',
116
- direction: '',
151
+ direction: 'right',
117
152
  visible: false
118
153
  }
119
154
  },
@@ -150,7 +185,7 @@ export default {
150
185
  this.visible = false
151
186
  this.activeKey = '1'
152
187
  this.allStepDown = false
153
- this.details = {}
188
+ this.details = undefined
154
189
  this.fixedAddForm = {}
155
190
  this.fixedQueryForm = {}
156
191
  this.steps = undefined
@@ -180,7 +215,7 @@ export default {
180
215
  this.fixedAddForm.a_f_workflow_id = this.workflowId
181
216
  },
182
217
  // 初始化两张固定表
183
- async init ({ workflowId, direction, visible = true }) {
218
+ async init ({ workflowId, direction = 'right', visible = true }) {
184
219
  this.workflowId = workflowId
185
220
  this.direction = direction
186
221
  this.visible = visible
@@ -204,6 +239,72 @@ export default {
204
239
  </script>
205
240
 
206
241
  <style lang="less" scoped>
242
+ .workflow-container {
243
+ height: 100%;
244
+ display: flex;
245
+ flex-direction: column;
246
+
247
+ .info-section {
248
+ padding: 16px 24px;
249
+ background-color: #fff;
250
+ border-bottom: 1px solid #eaedf2;
251
+ }
252
+
253
+ .content-section {
254
+ flex: 1;
255
+ padding: 16px 24px;
256
+
257
+ .content-card {
258
+ border-radius: 8px;
259
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
260
+ height: 100%;
261
+
262
+ /deep/ .ant-card-body {
263
+ padding: 0px 24px 24px;
264
+ }
265
+ }
266
+ }
267
+ }
268
+
269
+ .modern-tabs {
270
+ /deep/ .ant-tabs-nav {
271
+ margin-bottom: 0;
272
+ }
273
+
274
+ /deep/ .ant-tabs-tab {
275
+ padding: 12px 0;
276
+ margin-right: 48px;
277
+ font-size: 15px;
278
+ }
279
+
280
+ /deep/ .ant-tabs-tab-active {
281
+ font-weight: 500;
282
+ }
283
+
284
+ /deep/ .ant-tabs-ink-bar {
285
+ height: 3px;
286
+ border-radius: 3px 3px 0 0;
287
+ }
288
+ }
289
+
290
+ .message-tab {
291
+ display: flex;
292
+ align-items: center;
293
+ gap: 6px;
294
+ }
295
+
296
+ .message-content {
297
+ max-width: 900px;
298
+
299
+ .leave-message-component {
300
+ width: 100%;
301
+ }
302
+ }
303
+
304
+ .log-content {
305
+ margin-top: 16px;
306
+ }
307
+
207
308
  /deep/ .step-label {
208
309
  &:not(:first-child) {
209
310
  margin-left: 16px;
@@ -220,15 +321,15 @@ export default {
220
321
  margin-right: 8px;
221
322
 
222
323
  &.blue {
223
- border: 3px solid rgb(24, 144, 255);
324
+ border: 3px solid #5B6B8F;
224
325
  }
225
326
 
226
327
  &.green {
227
- border: 3px solid rgb(82, 196, 26);
328
+ border: 3px solid #4CAF50;
228
329
  }
229
330
 
230
331
  &.gray {
231
- border: 3px solid rgb(191, 191, 191);
332
+ border: 3px solid #cfd8e3;
232
333
  }
233
334
  }
234
335
  }