GoodsCardVertical.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import React from "react";
  2. import { StyleSheet, Dimensions } from "react-native";
  3. import {
  4. Card,
  5. Text,
  6. Button,
  7. Layout,
  8. Avatar,
  9. } from "@ui-kitten/components";
  10. import { useModel } from "flooks";
  11. const {width} = Dimensions.get("window");
  12. const styles = StyleSheet.create({
  13. card: {
  14. width: (width - 35) / 2,
  15. },
  16. layout: {
  17. // flexDirection: "row",
  18. },
  19. avatar: {
  20. width: (width - 35) / 2,
  21. height: (width - 35) / 2,
  22. },
  23. main: {
  24. padding: 6,
  25. },
  26. butContent: {
  27. marginLeft: 6,
  28. },
  29. fontColor: {
  30. color: "#B5B5B5",
  31. },
  32. price: {
  33. marginTop: 5,
  34. },
  35. sub: {
  36. marginTop: 2,
  37. },
  38. remove: {
  39. minHeight: 33,
  40. minWidth: 33,
  41. position: "absolute",
  42. right: 11,
  43. bottom: 4,
  44. },
  45. });
  46. export default function GoodsCard(props) {
  47. const { remove } = useModel("wordsModel");
  48. const { info,removeEvent } = props;
  49. const { id, img, name, totalSales, discountAmount, amount } =
  50. info || {};
  51. return (
  52. <Card
  53. style={styles.card}
  54. disabled
  55. appearance='goodsCard'
  56. direction='vertical'
  57. >
  58. {id ? (
  59. <Layout style={styles.layout}>
  60. <Avatar
  61. style={styles.avatar}
  62. shape='square'
  63. source={{
  64. uri: img,
  65. }}
  66. />
  67. <Layout style={styles.main}>
  68. <Text
  69. category='s1'
  70. ellipsizeMode='tail'
  71. numberOfLines={1}
  72. >
  73. {name}
  74. </Text>
  75. <Text category='c1' status='info' style={styles.sub}>
  76. 月售
  77. {' '}
  78. {totalSales}
  79. </Text>
  80. <Text category='h6' status='danger'>
  81. ¥
  82. {discountAmount}
  83. {" "}
  84. <Text
  85. category='h1'
  86. status='info'
  87. style={{ textDecorationLine: "line-through" }}
  88. >
  89. ¥
  90. {amount}
  91. </Text>
  92. </Text>
  93. </Layout>
  94. <Button
  95. status='danger'
  96. onPress={removeEvent}
  97. style={styles.remove}
  98. >
  99. {remove}
  100. </Button>
  101. </Layout>
  102. ) : (
  103. <Layout style={styles.layout} />
  104. )}
  105. </Card>
  106. );
  107. }