panhui 5 лет назад
Родитель
Сommit
aaf9462b11

+ 9 - 0
flooks/User.js

@@ -93,6 +93,15 @@ const app = (now) => ({
         },
         requestType: 'form',
       })
+      .then(() => {
+        return request.post('/auth/login', {
+          data: {
+            username: submitPhone(phone),
+            password,
+          },
+          requestType: 'form',
+        });
+      })
       .then((res) => {
         return addAsyncStorage('token', res);
       })

+ 1 - 1
screens/Order/OrderDetailScreen.jsx

@@ -213,7 +213,7 @@ export default function OrderScreen({ navigation }) {
           </Div>
           <Div>
             {orderGoodsSpecs.map((item) => {
-              return <GoodsItem info={item} goods={item.goods} Key={item.id} />;
+              return <GoodsItem info={item} goods={item.goods} key={item.id} />;
             })}
           </Div>
           <Flex style={styles.info}>

+ 3 - 8
screens/User/ApplyScreen.jsx

@@ -1,10 +1,6 @@
 import * as WebBrowser from 'expo-web-browser';
 import * as React from 'react';
-import { Div, Button, Image, Text, Avatar } from 'react-native-magnus';
-import { ScrollView } from 'react-native-gesture-handler';
-
-import useModel from 'flooks';
-import User from '../../flooks/User'; // detail模块通用方法
+import { Div, Button } from 'react-native-magnus';
 
 import Header from '../../components/Header';
 
@@ -33,8 +29,6 @@ const info = new Map([
 ]);
 
 export default function ApplyScreen({ navigation, route }) {
-  const { userInfo } = useModel(User, ['id']);
-
   const { params } = route;
   const { type } = params;
 
@@ -43,11 +37,12 @@ export default function ApplyScreen({ navigation, route }) {
   return (
     <>
       <Header title={nowInfo.title} />
-      <Div />
+      <Div flex={1} />
       <Button
         my={20}
         mx={10}
         bg="brand500"
+        block
         onPress={() => navigation.navigate(nowInfo.next)}
       >
         立即申请

+ 94 - 5
screens/User/CompanyApplyScreen.jsx

@@ -2,20 +2,109 @@ import * as WebBrowser from 'expo-web-browser';
 import * as React from 'react';
 import { Div, Button, Image, Text, Avatar } from 'react-native-magnus';
 import { ScrollView } from 'react-native-gesture-handler';
-
+import { InputItem, TextareaItem } from '@ant-design/react-native';
+import { useRequest, useCreation } from '@umijs/hooks';
 import useModel from 'flooks';
 import User from '../../flooks/User'; // detail模块通用方法
+import Toast from '../../flooks/Toast'; // detail模块通用方法
 
 import Header from '../../components/Header';
+import request from '../../Utils/RequestUtils';
+
+function saveRequest(data) {
+  return request.post('/cooperateApply/save', {
+    data,
+  });
+}
 
-export default function CompanyApplyScreen() {
+export default function CompanyApplyScreen({ navigation }) {
   const { userInfo } = useModel(User, ['id']);
+  const { warnning, success } = useModel(Toast, []);
+
+  const [name, setname] = React.useState('');
+  const [phone, setphone] = React.useState('');
+  const [remark, setremark] = React.useState('');
+
+  const allpyRequest = useRequest((data) => saveRequest(data), {
+    manual: true,
+    onError: (e) => {
+      warnning(e.error);
+    },
+    onSuccess: () => {
+      success('申请提交成功');
+      navigation.goBack();
+    },
+  });
+
+  const canSubmit = useCreation(() => {
+    if (name && phone && remark) {
+      return true;
+    } else {
+      return false;
+    }
+  }, [name, phone, remark]);
 
   return (
     <>
-      <Header title="" />
-      <ScrollView>
-        <Div />
+      <Header title="商务合作申请" />
+      <ScrollView
+        contentContainerStyle={{
+          backgroundColor: '#fff',
+          flexGrow: 1,
+        }}
+      >
+        <Div bg="white">
+          <InputItem
+            clear
+            type="phone"
+            value={name}
+            onChange={setname}
+            placeholder="输入联系人"
+            style={{ fontSize: 14 }}
+          >
+            <Text fontSize="sm">姓名</Text>
+          </InputItem>
+
+          <InputItem
+            clear
+            type="phone"
+            value={phone}
+            onChange={setphone}
+            placeholder="输入联系电话"
+            style={{ fontSize: 14 }}
+          >
+            <Text fontSize="sm">联系电话</Text>
+          </InputItem>
+          <Text px={15} py={10} fontSize="sm">
+            期望合作的内容
+          </Text>
+          <Div px={15}>
+            <TextareaItem
+              rows={4}
+              placeholder="添加商品简介(不超过50字)"
+              style={{ backgroundColor: '#eee', fontSize: 14, paddingTop: 10 }}
+              onChange={(text) => setremark(text)}
+            />
+          </Div>
+        </Div>
+        <Button
+          my={30}
+          mx={130}
+          fontSize="sm"
+          block
+          bg="brand500"
+          disabled={!canSubmit}
+          onPress={() => {
+            allpyRequest.run({
+              name,
+              phone,
+              remark,
+              userId: userInfo.id,
+            });
+          }}
+        >
+          提交
+        </Button>
       </ScrollView>
     </>
   );

+ 117 - 3
screens/User/MerchatApplyScreen.jsx

@@ -2,19 +2,133 @@ import * as WebBrowser from 'expo-web-browser';
 import * as React from 'react';
 import { Div, Button, Image, Text, Avatar } from 'react-native-magnus';
 import { ScrollView } from 'react-native-gesture-handler';
-
+import { InputItem } from '@ant-design/react-native';
+import { useRequest, useCreation } from '@umijs/hooks';
 import useModel from 'flooks';
 import User from '../../flooks/User'; // detail模块通用方法
+import Toast from '../../flooks/Toast'; // detail模块通用方法
 
 import Header from '../../components/Header';
+import request from '../../Utils/RequestUtils';
+
+function saveRequest(data) {
+  return request.post('/cooperateApply/save', {
+    data,
+  });
+}
 
-export default function MerchatApplyScreen() {
+export default function MerchatApplyScreen({ navigation }) {
   const { userInfo } = useModel(User, ['id']);
+  const { warnning, success } = useModel(Toast, []);
+
+  const [name, setname] = React.useState('');
+  const [phone, setphone] = React.useState('');
+  const [merName, setmerName] = React.useState('');
+  const [category, setcategory] = React.useState('');
+  const [address, setaddress] = React.useState('');
+
+  const allpyRequest = useRequest((data) => saveRequest(data), {
+    manual: true,
+    onError: (e) => {
+      warnning(e.error);
+    },
+    onSuccess: () => {
+      success('申请提交成功');
+      navigation.goBack();
+    },
+  });
+
+  const canSubmit = useCreation(() => {
+    if (name && phone && merName && category && address) {
+      return true;
+    } else {
+      return false;
+    }
+  }, [name, phone, merName, category, address]);
 
   return (
     <>
       <Header title="开店申请" />
-      <Div bg="white"></Div>
+      <ScrollView
+        contentContainerStyle={{
+          backgroundColor: '#fff',
+          flexGrow: 1,
+        }}
+      >
+        <Div bg="white">
+          <InputItem
+            clear
+            type="phone"
+            value={name}
+            onChange={setname}
+            placeholder="输入联系人"
+            style={{ fontSize: 14 }}
+          >
+            <Text fontSize="sm">联系人</Text>
+          </InputItem>
+
+          <InputItem
+            clear
+            type="phone"
+            value={phone}
+            onChange={setphone}
+            placeholder="输入联系电话"
+            style={{ fontSize: 14 }}
+          >
+            <Text fontSize="sm">联系电话</Text>
+          </InputItem>
+
+          <InputItem
+            clear
+            value={merName}
+            onChange={setmerName}
+            placeholder="输入店铺名称"
+            style={{ fontSize: 14 }}
+          >
+            <Text fontSize="sm">店铺名称</Text>
+          </InputItem>
+
+          <InputItem
+            clear
+            value={category}
+            onChange={setcategory}
+            placeholder="输入经营类型"
+            style={{ fontSize: 14 }}
+          >
+            <Text fontSize="sm">经营类型</Text>
+          </InputItem>
+          <InputItem
+            clear
+            value={address}
+            onChange={setaddress}
+            placeholder="请输入店铺地址"
+            style={{ fontSize: 14 }}
+          >
+            <Text fontSize="sm">店铺地址</Text>
+          </InputItem>
+        </Div>
+
+        <Button
+          my={30}
+          mx={130}
+          fontSize="sm"
+          block
+          bg="brand500"
+          disabled={!canSubmit}
+          onPress={() => {
+            allpyRequest.run({
+              name,
+              phone,
+              merName,
+              category,
+              address,
+              userId: userInfo.id,
+            });
+          }}
+        >
+          提交
+        </Button>
+      </ScrollView>
     </>
   );
 }

+ 97 - 5
screens/User/RiderApplyScreen.jsx

@@ -2,20 +2,112 @@ import * as WebBrowser from 'expo-web-browser';
 import * as React from 'react';
 import { Div, Button, Image, Text, Avatar } from 'react-native-magnus';
 import { ScrollView } from 'react-native-gesture-handler';
-
+import { InputItem } from '@ant-design/react-native';
+import { useRequest, useCreation } from '@umijs/hooks';
 import useModel from 'flooks';
 import User from '../../flooks/User'; // detail模块通用方法
+import Toast from '../../flooks/Toast'; // detail模块通用方法
 
 import Header from '../../components/Header';
+import request from '../../Utils/RequestUtils';
+
+function saveRequest(data) {
+  return request.post('/cooperateApply/save', {
+    data,
+  });
+}
 
-export default function RiderApplyScreen() {
+export default function RiderApplyScreen({ navigation }) {
   const { userInfo } = useModel(User, ['id']);
+  const { warnning, success } = useModel(Toast, []);
+
+  const [name, setname] = React.useState('');
+  const [phone, setphone] = React.useState('');
+  const [address, setaddress] = React.useState('');
+
+  const allpyRequest = useRequest((data) => saveRequest(data), {
+    manual: true,
+    onError: (e) => {
+      warnning(e.error);
+    },
+    onSuccess: () => {
+      success('申请提交成功');
+      navigation.goBack();
+    },
+  });
+
+  const canSubmit = useCreation(() => {
+    if (name && phone && address) {
+      return true;
+    } else {
+      return false;
+    }
+  }, [name, phone, address]);
 
   return (
     <>
-      <Header title="" />
-      <ScrollView>
-        <Div />
+      <Header title="骑手申请" />
+      <ScrollView
+        contentContainerStyle={{
+          backgroundColor: '#fff',
+          flexGrow: 1,
+        }}
+      >
+        <Div bg="white">
+          <InputItem
+            clear
+            type="phone"
+            value={name}
+            onChange={setname}
+            placeholder="输入联系人"
+            style={{ fontSize: 14 }}
+            labelNumber={7}
+          >
+            <Text fontSize="sm">姓名</Text>
+          </InputItem>
+
+          <InputItem
+            clear
+            type="phone"
+            value={phone}
+            onChange={setphone}
+            placeholder="输入联系电话"
+            style={{ fontSize: 14 }}
+            labelNumber={7}
+          >
+            <Text fontSize="sm">联系电话</Text>
+          </InputItem>
+
+          <InputItem
+            clear
+            value={address}
+            onChange={setaddress}
+            placeholder="请输入期望的工作地址"
+            style={{ fontSize: 14 }}
+            labelNumber={7}
+          >
+            <Text fontSize="sm">期望的工作地址</Text>
+          </InputItem>
+        </Div>
+
+        <Button
+          my={30}
+          mx={130}
+          fontSize="sm"
+          block
+          bg="brand500"
+          disabled={!canSubmit}
+          onPress={() => {
+            allpyRequest.run({
+              name,
+              phone,
+              address,
+              userId: userInfo.id,
+            });
+          }}
+        >
+          提交
+        </Button>
       </ScrollView>
     </>
   );