FirstOrderScreen.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. import * as WebBrowser from "expo-web-browser";
  2. import * as React from "react";
  3. import { StyleSheet } from "react-native";
  4. import { useModel } from "flooks";
  5. import { Layout, Text, useTheme, Button, Input } from "@ui-kitten/components";
  6. import { useFocusEffect } from "@react-navigation/native";
  7. import ScrollPage from "../../components/ScrollPage";
  8. import NavHeaderBar from "../../components/NavHeaderBar";
  9. const styles = StyleSheet.create({
  10. lay: {
  11. backgroundColor: "#fff",
  12. },
  13. padBot: {
  14. paddingBottom: 100,
  15. },
  16. list: {
  17. paddingVertical: 10,
  18. paddingHorizontal: 15,
  19. backgroundColor: "transparent",
  20. flex: 0,
  21. },
  22. item: {
  23. flexDirection: "row",
  24. alignItems: "center",
  25. paddingVertical: 10,
  26. paddingHorizontal: 15,
  27. },
  28. input: {
  29. marginHorizontal: 5,
  30. minWidth: 49,
  31. },
  32. text: {
  33. flex: 1,
  34. },
  35. flexRow: {
  36. flexDirection: "row",
  37. alignItems: "center",
  38. },
  39. buttonlast: {
  40. marginLeft: 10,
  41. },
  42. button: {
  43. alignSelf: "flex-start",
  44. },
  45. });
  46. export default function FirstOrderScreen() {
  47. const theme = useTheme();
  48. const { changeBackground } = useModel("barModel", true);
  49. const { delText, editText, cancel } = useModel("wordsModel");
  50. const [money, changeMoney] = React.useState("");
  51. const [edit, changeEdit] = React.useState(false);
  52. useFocusEffect(
  53. React.useCallback(() => {
  54. changeBackground(theme["color-primary-500"]);
  55. }, [])
  56. );
  57. const { firstOrder, updateMerchant } = useModel("userModel");
  58. React.useEffect(() => {
  59. if (!firstOrder) {
  60. changeEdit(true);
  61. } else {
  62. changeMoney(firstOrder.toString() || "0");
  63. }
  64. }, [firstOrder]);
  65. return (
  66. <>
  67. <NavHeaderBar title="首单" />
  68. <ScrollPage
  69. style={styles.lay}
  70. enabledFresh
  71. refreshEvent={() => Promise.resolve()}
  72. >
  73. <Layout style={[styles.lay]}>
  74. <Layout style={styles.item}>
  75. <Layout style={[styles.text, styles.flexRow]}>
  76. <Text category="c2">新用户立减</Text>
  77. {edit ? (
  78. <Input
  79. size="small"
  80. style={styles.input}
  81. value={money}
  82. keyboardType="numeric"
  83. onChangeText={changeMoney}
  84. />
  85. ) : (
  86. <Text category="c2">{money}</Text>
  87. )}
  88. <Text category="c2">元</Text>
  89. </Layout>
  90. {!edit ? (
  91. <>
  92. <Button
  93. size="small"
  94. appearance="outline"
  95. onPress={() => {
  96. changeEdit(true);
  97. }}
  98. >
  99. {editText}
  100. </Button>
  101. {firstOrder != null && (
  102. <Button
  103. size="small"
  104. status="danger"
  105. style={styles.buttonlast}
  106. onPress={() => {
  107. changeMoney("0");
  108. changeEdit(true);
  109. updateMerchant({
  110. firstOrder: 0,
  111. }).then(() => {
  112. // success("删除成功");
  113. });
  114. }}
  115. >
  116. {delText}
  117. </Button>
  118. )}
  119. </>
  120. ) : (
  121. <>
  122. <Button
  123. size="small"
  124. onPress={() => {
  125. changeEdit(false);
  126. updateMerchant({
  127. firstOrder: money,
  128. }).then(() => {
  129. // success("保存成功");
  130. });
  131. }}
  132. >
  133. 保存
  134. </Button>
  135. <Button
  136. size="small"
  137. appearance="outline"
  138. style={styles.buttonlast}
  139. onPress={() => {
  140. changeEdit(false);
  141. changeMoney(firstOrder.toString() || '0');
  142. }}
  143. >
  144. {cancel}
  145. </Button>
  146. </>
  147. )}
  148. </Layout>
  149. </Layout>
  150. </ScrollPage>
  151. </>
  152. );
  153. }