BizListCard.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <view class="biz-card" :class="'status-' + item.tagType">
  3. <view class="card-inner">
  4. <view class="row-top">
  5. <view class="type-icon">
  6. <van-icon :name="item.icon" />
  7. </view>
  8. <view class="title-wrap">
  9. <view class="type-chip">{{ item.typeLabel }}</view>
  10. <view class="title">{{ item.title }}</view>
  11. </view>
  12. <text class="status-pill">{{ item.status }}</text>
  13. </view>
  14. <view class="body-row">
  15. <view class="desc-box">{{ item.desc }}</view>
  16. <view class="side-metric">
  17. <template v-if="item.amount">
  18. <text class="amt-label">金额</text>
  19. <text class="amt">¥{{ item.amount }}</text>
  20. </template>
  21. <template v-else>
  22. <text class="amt-label">进度</text>
  23. <text class="amt" style="font-size: 26rpx">{{ item.progress || '—' }}</text>
  24. </template>
  25. <text class="time">{{ item.time }}</text>
  26. </view>
  27. </view>
  28. <view class="meta-row">
  29. <text class="mi code-pill">{{ item.code }}</text>
  30. <text class="mi">{{ item.owner }}</text>
  31. </view>
  32. <view class="footer">
  33. <view class="left-hint">
  34. <view class="dot" />
  35. {{ item.hint || '点击操作处理' }}
  36. </view>
  37. <view class="ops">
  38. <van-button size="small" plain hairline type="default" @click.stop="$emit('view', item)">
  39. 查看
  40. </van-button>
  41. <van-button size="small" type="primary" color="#22c55e" @click.stop="$emit('action', item)">
  42. 处理
  43. </van-button>
  44. </view>
  45. </view>
  46. </view>
  47. </view>
  48. </template>
  49. <script>
  50. export default {
  51. name: 'BizListCard',
  52. props: {
  53. item: { type: Object, required: true }
  54. },
  55. emits: ['view', 'action']
  56. }
  57. </script>