imeik-bizui 1.8.0 → 1.8.1

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.
@@ -34,6 +34,7 @@
34
34
  <ImOneLineDot :text="formatPhone(row.doctorPhone)">手机号:{{ formatPhone(row.doctorPhone) }}</ImOneLineDot>
35
35
  <ImOneLineDot :text="row.doctorType">类型:{{ row.doctorType }}</ImOneLineDot>
36
36
  <ImOneLineDot :text="row.doctorPost">职称:{{ row.doctorPost }}</ImOneLineDot>
37
+ <ImOneLineDot :text="row.doctorExpertType">医生类专家类别:{{ row.doctorExpertType }}</ImOneLineDot>
37
38
  </div>
38
39
  </div>
39
40
  </template>
@@ -68,17 +69,32 @@
68
69
  <p v-if="row.describe" class="tips-text">{{ row.describe }}</p>
69
70
  </div>
70
71
  </template>
72
+ <!-- 活动身份 -->
73
+ <template slot="identity" slot-scope="{ row }">
74
+ <div v-if="!isView">
75
+ <ImSelect
76
+ v-model="row.identity"
77
+ :class="{ 'is-error': row.valid === false && !row.identity }"
78
+ :attrs="{ options: row.shenfenList_new }"
79
+ @input="(val) => handleChangeIdentity(val, row)"
80
+ ></ImSelect>
81
+ </div>
82
+ <div v-else>
83
+ <ImDiffText v-if="showDiff" :show-diff="showDiff" />
84
+ </div>
85
+ </template>
71
86
  <!-- 授课名称 -->
72
87
  <template slot="className" slot-scope="{ row }">
73
88
  <div v-if="!isView">
74
- <el-input v-if="checkHasCourse(row)" v-model="row.courseName" placeholder="请输入" maxlength="100"></el-input>
75
- <div v-else>-</div>
89
+ <ImInput :class="{ 'is-error': row.valid === false && checkHasCourse(row) }" v-model="row.className" placeholder="请输入" maxlength="100"></ImInput>
90
+
76
91
  </div>
77
92
  <div v-else>
78
93
  <ImDiffText v-if="showDiff" :show-diff="showDiff" :old-value="row.courseName" :no-absolute="true" :new-value="row._newData?.courseName" />
79
94
  <div v-else>{{ row.courseName }}</div>
80
95
  </div>
81
96
  </template>
97
+
82
98
  <!-- 费用金额 -->
83
99
  <template slot="costAmount" slot-scope="{ row }">
84
100
  <p v-if="checkStandardAmountsIsBeyond(row)" class="standardAmount">费用标准:{{ row.standardAmount }}</p>
@@ -228,6 +244,15 @@ export default {
228
244
  'min-width': '150'
229
245
  }
230
246
  },
247
+ {
248
+ label: '活动身份',
249
+ prop: 'identity',
250
+ type: 'slot',
251
+ slot: 'identity',
252
+ attrs: {
253
+ 'min-width': '150'
254
+ }
255
+ },
231
256
  {
232
257
  label: '授课名称',
233
258
  prop: 'className',
@@ -335,7 +360,10 @@ export default {
335
360
  } else if (!item.doctorServiceSceneCode) {
336
361
  res && showMessage && this.$message.warning('请检查服务场景')
337
362
  res = false
338
- } else if (!item.costAmount) {
363
+ } else if (this.checkHasCourse(item) && !item.className) {
364
+ res && showMessage && this.$message.warning('请填写授课名称')
365
+ res = false
366
+ }else if (!item.costAmount) {
339
367
  res && showMessage && this.$message.warning('请检查费用金额')
340
368
  res = false
341
369
  } else if (this.checkStandardAmountsIsBeyond(item) && !item.remark) {
@@ -397,17 +425,30 @@ export default {
397
425
  },
398
426
  // 获取场景列表
399
427
  getSceneList(data) {
428
+ console.log('getSceneList',data.doctorExpertType)
400
429
  if (data.doctorLevel) {
401
430
  this.scenarioLoading = true
402
- getExpertServiceFee({ expertRoleCode: data.doctorLevel }).then((res) => {
431
+ getExpertServiceFee({ expertRoleCode: data.doctorLevel,doctorExpertType: data.doctorExpertType }).then((res) => {
403
432
  this.scenarioLoading = false
404
433
  if (res.code === 200) {
405
- const list = JSON.parse(res.data)
434
+ const list = JSON.parse(res.data).sceneList
435
+
436
+ const shenfenList = JSON.parse(res.data).standardAmountList.map(item => ({
437
+ label: item.sceneAndIdentity,
438
+ value: item.sceneAndIdentity,
439
+ standardAmount:item.standardAmount
440
+ }))
441
+
406
442
  this.$set(data, 'scenarioList', list)
443
+ this.$set(data, 'shenfenList', shenfenList)
407
444
  }
408
445
  })
409
446
  }
410
447
  },
448
+ handleChangeIdentity(val,row){
449
+ const sceneInfo = row.shenfenList_new.find((item) => item.value === val)
450
+ this.$set(row, 'standardAmount', sceneInfo.standardAmount)
451
+ },
411
452
  // 修改专家回调
412
453
  changedoctorName(row, type) {
413
454
  // 写入专家信息
@@ -442,11 +483,21 @@ export default {
442
483
  // 修改场景回调
443
484
  changeScenario(val, row) {
444
485
  const sceneInfo = row.scenarioList.find((item) => item.value === val)
486
+ console.log(sceneInfo.label)
445
487
  if (sceneInfo) {
446
- this.$set(row, 'standardAmount', sceneInfo.standardAmount)
447
488
  this.$set(row, 'doctorServiceSceneName', sceneInfo.label)
448
489
  this.$set(row, 'describe', sceneInfo.describe)
449
490
  this.$set(row, 'courseName', '')
491
+ // 修改:在过滤后,对每个项处理label,取_之后的部分
492
+ const shenfenList_new = row.shenfenList?.filter(item =>
493
+ item.label?.split('_')[0].includes(sceneInfo.label) ?? false
494
+ )?.map(item => ({
495
+ ...item,
496
+ // 修改:截取_后的文字,没有下划线时返回原label
497
+ label: item.label?.split('_')[1] ?? item.label ?? '',
498
+ value: item.value?.split('_')[1] ?? item.value ?? ''
499
+ })) ?? [];
500
+ this.$set(row, 'shenfenList_new', shenfenList_new)
450
501
  }
451
502
  this.checkStandardAmountsIsBeyond(row)
452
503
  },
@@ -457,6 +508,7 @@ export default {
457
508
  this.$set(row, 'doctorLevelName', roleInfo.label)
458
509
  this.$set(row, 'doctorServiceSceneCode', '')
459
510
  this.$set(row, 'describe', '')
511
+
460
512
  }
461
513
  this.getSceneList(row)
462
514
  },
@@ -501,12 +553,16 @@ export default {
501
553
  checkStandardAmountsIsBeyond(data) {
502
554
  return Number(data.costAmount) > Number(data.standardAmount)
503
555
  },
504
- // 检查场景有没有授课
556
+ // 优化后方法:检查场景是否有活动身份
505
557
  checkHasCourse(data) {
506
- if (!data.doctorServiceSceneName) {
507
- return
558
+ if (!data.identity || !Array.isArray(data.shenfenList_new)) {
559
+ return false;
508
560
  }
509
- return data.doctorServiceSceneName.includes('授课')
561
+ // 使用some替代find,直接返回布尔值
562
+ return data.shenfenList_new.some(item =>
563
+ item.value === data.identity &&
564
+ item.label?.includes('授课') // 安全访问label属性
565
+ );
510
566
  },
511
567
  formatChangeType(val) {
512
568
  switch (val) {
@@ -528,7 +584,7 @@ export default {
528
584
  sums[index] = '合计'
529
585
  return
530
586
  }
531
- if (index === 6) {
587
+ if (index === 7) {
532
588
  const values = data.map((item) => {
533
589
  if (item._newData) {
534
590
  return item?._newData[column.property]