FirstOrderScreen.js 4.4 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, GPVGLH } = useModel("wordsModel");
  50. const { loading, success } = useModel("loadingModel");
  51. const [money, changeMoney] = React.useState("");
  52. const [edit, changeEdit] = React.useState(false);
  53. const { firstOrder, updateMerchant } = useModel("userModel");
  54. useFocusEffect(
  55. React.useCallback(() => {
  56. changeBackground(theme["color-primary-500"]);
  57. if (!firstOrder) {
  58. changeEdit(true);
  59. } else {
  60. changeMoney(firstOrder.toString() || "0");
  61. }
  62. }, [])
  63. );
  64. return (
  65. <>
  66. <NavHeaderBar title={GPVGLH} />
  67. <ScrollPage
  68. style={styles.lay}
  69. enabledFresh
  70. refreshEvent={() => Promise.resolve()}
  71. >
  72. <Layout style={[styles.lay]}>
  73. <Layout style={styles.item}>
  74. <Layout style={[styles.text, styles.flexRow]}>
  75. <Text category="c2">新用户立减</Text>
  76. {edit ? (
  77. <Input
  78. size="small"
  79. style={styles.input}
  80. value={money}
  81. keyboardType="numeric"
  82. onChangeText={changeMoney}
  83. />
  84. ) : (
  85. <Text category="c2">{money}</Text>
  86. )}
  87. <Text category="c2">元</Text>
  88. </Layout>
  89. {!edit ? (
  90. <>
  91. <Button
  92. size="small"
  93. appearance="outline"
  94. onPress={() => {
  95. changeEdit(true);
  96. }}
  97. >
  98. {editText}
  99. </Button>
  100. {firstOrder != null && (
  101. <Button
  102. size="small"
  103. status="danger"
  104. style={styles.buttonlast}
  105. onPress={() => {
  106. changeMoney("0");
  107. loading();
  108. updateMerchant({
  109. firstOrder: 0,
  110. }).then(() => {
  111. success("删除成功");
  112. changeEdit(true);
  113. });
  114. }}
  115. >
  116. {delText}
  117. </Button>
  118. )}
  119. </>
  120. ) : (
  121. <>
  122. <Button
  123. size="small"
  124. onPress={() => {
  125. loading();
  126. updateMerchant({
  127. firstOrder: money,
  128. }).then(() => {
  129. success("保存成功");
  130. changeEdit(false);
  131. });
  132. }}
  133. >
  134. 保存
  135. </Button>
  136. <Button
  137. size="small"
  138. appearance="outline"
  139. style={styles.buttonlast}
  140. onPress={() => {
  141. changeEdit(false);
  142. changeMoney(firstOrder.toString() || "0");
  143. }}
  144. >
  145. {cancel}
  146. </Button>
  147. </>
  148. )}
  149. </Layout>
  150. </Layout>
  151. </ScrollPage>
  152. </>
  153. );
  154. }