orderCard.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <script>
  2. export default {
  3. props: {
  4. order: {
  5. type: Object,
  6. default: () => ({})
  7. }
  8. },
  9. methods: {
  10. handerBtnClick(btnType, order) {
  11. this.$emit('handleBtnClick', btnType, order);
  12. }
  13. }
  14. }
  15. </script>
  16. <template>
  17. <view class="orderCard">
  18. <view class="bandAndPrice">
  19. <view class="bandName">{{ order.itemBrand || '暂无品牌' }}</view>
  20. <view class="price">¥{{ order.priceRange }}</view>
  21. </view>
  22. <view class="mainLind">
  23. <view class="mainLindImg">
  24. <image :src="'/static/acceptOrder/orderCardPic.jpg'" alt="" />
  25. </view>
  26. <view class="mainLindInfo">
  27. <view class="itemName">{{ order.item || '暂无项目' }}</view>
  28. <view>发单人:{{ order.createNickName || '未知' }}</view>
  29. <view>{{ order.sendDate || '暂无时间' }}</view>
  30. </view>
  31. </view>
  32. <view class="tags">
  33. <view class="tag" v-for="(tag, index) in order.tags" :key="index"
  34. :style="{ backgroundColor: tag.color, opacity: 0.8 }">
  35. {{ tag.name }}</view>
  36. </view>
  37. <view class="Btns">
  38. <view class="btnGroup"
  39. v-if="order && (order.status == '1' || order.status == null || order.status === undefined)">
  40. <view class="card-button" @click="handerBtnClick('acceptOrder', order)">立即接单</view>
  41. <view class=" card-button isBusy" @click="handerBtnClick('isBusy', order)">在忙</view>
  42. </view>
  43. <view class="btnGroup"
  44. v-if="order && (order.status == '2' || order.status == null || order.status === undefined)">
  45. <view class="card-button willFollow" @click="handerBtnClick('willFollow', order)">待跟进</view>
  46. <view class="card-button isBusy" @click="handerBtnClick('tag', order)">打标签</view>
  47. </view>
  48. <view class="btnGroup"
  49. v-if="order && (order.status == '3' || order.status == null || order.status === undefined)">
  50. <view class="card-button share" @click="handerBtnClick('share', order)">一键分享</view>
  51. </view>
  52. <view class="btnGroup"
  53. v-if="order && (order.status == '4' || order.status == null || order.status === undefined)">
  54. <view class="card-button oneFollow" @click="handerBtnClick('oneFollow', order)">待跟进</view>
  55. </view>
  56. </view>
  57. </view>
  58. </template>
  59. <style scoped lang="scss">
  60. /* 订单卡片主容器 */
  61. .orderCard {
  62. box-sizing: border-box;
  63. width: 95%;
  64. background-color: #fff;
  65. margin: 20rpx auto;
  66. border-radius: 20rpx;
  67. padding: 20rpx;
  68. }
  69. /* 品牌和价格区域 */
  70. .orderCard .bandAndPrice {
  71. display: flex;
  72. justify-content: space-between;
  73. align-items: center;
  74. }
  75. /* 品牌名称 */
  76. .orderCard .bandAndPrice .bandName {
  77. font-size: 20rpx;
  78. font-weight: 700;
  79. border: 2px solid #2563EB;
  80. padding: 6rpx 12rpx;
  81. border-radius: 15rpx;
  82. background-color: #EFF6FF;
  83. color: #2563EB;
  84. }
  85. /* 价格 */
  86. .orderCard .bandAndPrice .price {
  87. font-size: 30rpx;
  88. font-weight: 700;
  89. }
  90. /* 主要内容行 */
  91. .orderCard .mainLind {
  92. margin-top: 10rpx;
  93. display: flex;
  94. justify-content: space-between;
  95. align-items: center;
  96. gap: 20rpx;
  97. }
  98. /* 主要内容行图片容器 */
  99. .orderCard .mainLind .mainLindImg image {
  100. width: 150rpx;
  101. height: 150rpx;
  102. border-radius: 20rpx;
  103. }
  104. /* 主要内容行信息容器 */
  105. .orderCard .mainLind .mainLindInfo {
  106. flex: 1;
  107. display: flex;
  108. flex-direction: column;
  109. gap: 10rpx;
  110. font-size: 24rpx;
  111. color: #6b7280;
  112. }
  113. /* 商品名称 */
  114. .orderCard .mainLind .mainLindInfo .itemName {
  115. font-size: 30rpx;
  116. font-weight: 700;
  117. color: #374751;
  118. }
  119. /* 标签区域 */
  120. .orderCard .tags {
  121. display: flex;
  122. gap: 10rpx;
  123. }
  124. /* 单个标签 */
  125. .orderCard .tags .tag {
  126. font-size: 20rpx;
  127. font-weight: 700;
  128. padding: 6rpx 12rpx;
  129. border-radius: 15rpx;
  130. background-color: #EFF6FF;
  131. color: #fff;
  132. }
  133. /* 按钮区域 */
  134. .orderCard .Btns {
  135. margin-top: 10rpx;
  136. }
  137. /* 按钮组 */
  138. .orderCard .Btns .btnGroup {
  139. display: flex;
  140. justify-content: space-between;
  141. align-items: center;
  142. gap: 20rpx;
  143. }
  144. /* 卡片按钮基础样式 */
  145. .orderCard .Btns .btnGroup .card-button {
  146. font-size: 24rpx;
  147. font-weight: 700;
  148. border: 2rpx solid #2563EB;
  149. padding: 6rpx 12rpx;
  150. border-radius: 15rpx;
  151. background-color: #2563EB;
  152. color: #fff;
  153. width: 45%;
  154. text-align: center;
  155. cursor: pointer;
  156. height: 60rpx;
  157. line-height: 60rpx;
  158. }
  159. /* 忙碌状态按钮 */
  160. .orderCard .Btns .btnGroup .card-button.isBusy {
  161. background-color: #fff;
  162. color: #6B7280;
  163. border-color: #6B7280;
  164. }
  165. /* 待跟进状态按钮 */
  166. .orderCard .Btns .btnGroup .card-button.willFollow {
  167. background-color: #EFF6FF;
  168. color: #2563EB;
  169. }
  170. /* 分享按钮 */
  171. .orderCard .Btns .btnGroup .card-button.share {
  172. width: 100%;
  173. }
  174. /* 单独跟进按钮 */
  175. .orderCard .Btns .btnGroup .card-button.oneFollow {
  176. width: 100%;
  177. background-color: #EFF6FF;
  178. color: #2563EB;
  179. }
  180. </style>