QualificationScreen.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /* eslint-disable no-underscore-dangle */
  2. import * as WebBrowser from "expo-web-browser";
  3. import * as React from "react";
  4. import { StyleSheet, View } from "react-native";
  5. import { useModel } from "flooks";
  6. import { useTheme, Text, Button } from "@ui-kitten/components";
  7. import { useFocusEffect } from "@react-navigation/native";
  8. import NavHeaderBar from "../../components/NavHeaderBar";
  9. import UpLoadImage from "../../components/UpLoadImage";
  10. import ListUtil from "../../Utils/ListUtil";
  11. const styles = StyleSheet.create({
  12. imgList: {
  13. flexDirection: "row",
  14. justifyContent: "space-around",
  15. },
  16. imgItem: {
  17. paddingVertical: 30,
  18. },
  19. text: {
  20. paddingVertical: 15,
  21. },
  22. btn: {
  23. marginVertical: 30,
  24. alignItems: "center",
  25. },
  26. });
  27. export default function QualificationScreen({ navigation }) {
  28. const theme = useTheme();
  29. const { changeBackground } = useModel("barModel", true);
  30. const {
  31. mid,
  32. registerInfo,
  33. userInfo,
  34. updateMerchant,
  35. changeRegisterInfo,
  36. } = useModel("userModel");
  37. const { XKTKDO, WCTSUL, confirm, RKMZQB } = useModel("wordsModel");
  38. const { success } = useModel("loadingModel", true);
  39. const [beforeImg, changeBeforeImg] = React.useState("");
  40. const [afterImg, changeAfterImg] = React.useState("");
  41. useFocusEffect(
  42. React.useCallback(() => {
  43. changeBackground(theme["color-primary-500"]);
  44. if (mid) {
  45. const imgList = new ListUtil(userInfo.qualification || "");
  46. imgList.getOneTow(changeBeforeImg, changeAfterImg);
  47. } else {
  48. const imgList = new ListUtil(registerInfo.qualification || "");
  49. imgList.getOneTow(changeBeforeImg, changeAfterImg);
  50. }
  51. }, [])
  52. );
  53. const canSubmit = React.useMemo(() => {
  54. if (beforeImg && afterImg) {
  55. return true;
  56. }
  57. return false;
  58. }, [beforeImg, afterImg]);
  59. function submit() {
  60. if (mid) {
  61. const _qualification = new ListUtil([beforeImg, afterImg]);
  62. updateMerchant({
  63. qualification: _qualification.getListValue(),
  64. }).then(() => {
  65. success("设置成功");
  66. navigation.goBack();
  67. });
  68. } else {
  69. const _qualification = new ListUtil([beforeImg, afterImg]);
  70. changeRegisterInfo({
  71. qualification: _qualification.getListValue(),
  72. });
  73. success("设置成功");
  74. navigation.goBack();
  75. }
  76. }
  77. return (
  78. <>
  79. <NavHeaderBar title={WCTSUL} />
  80. <View style={styles.imgList}>
  81. <View style={styles.imgItem}>
  82. <UpLoadImage
  83. key="before"
  84. value={beforeImg}
  85. changeIcon={changeBeforeImg}
  86. size={67}
  87. aspect={[1, 1]}
  88. />
  89. <Text category="c1" style={styles.text}>
  90. {RKMZQB}
  91. </Text>
  92. </View>
  93. <View style={styles.imgItem}>
  94. <UpLoadImage
  95. key="after"
  96. value={afterImg}
  97. changeIcon={changeAfterImg}
  98. size={67}
  99. aspect={[1, 1]}
  100. />
  101. <Text category="c1" style={styles.text}>
  102. {XKTKDO}
  103. </Text>
  104. </View>
  105. </View>
  106. <View style={styles.btn}>
  107. <Button onPress={submit} disabled={!canSubmit}>
  108. {confirm}
  109. </Button>
  110. </View>
  111. </>
  112. );
  113. }