hookehuyr

✨ feat(我的信息页面): 新增/编辑儿童信息API调整

...@@ -9,7 +9,7 @@ export const useUpload = () => { ...@@ -9,7 +9,7 @@ export const useUpload = () => {
9 let lock_btn = ref(false); // 保存按钮锁 9 let lock_btn = ref(false); // 保存按钮锁
10 let fileList = ref([]); 10 let fileList = ref([]);
11 let metaId = ref(''); 11 let metaId = ref('');
12 - let upload_image = reactive({ meta_id: '' }); 12 + let upload_image = reactive({ src: '' });
13 const afterRead = (res) => { 13 const afterRead = (res) => {
14 lock_btn.value = true; // 上传开始, 不能保存 14 lock_btn.value = true; // 上传开始, 不能保存
15 let affix = uuidv4(); 15 let affix = uuidv4();
...@@ -43,7 +43,7 @@ export const useUpload = () => { ...@@ -43,7 +43,7 @@ export const useUpload = () => {
43 filekey: info.filekey, 43 filekey: info.filekey,
44 })) 44 }))
45 .then(res => { 45 .then(res => {
46 - upload_image.meta_id = res.data.data.meta_id; 46 + upload_image.src = res.data.data.src;
47 lock_btn.value = false; // 头像上传完成, 打开锁 47 lock_btn.value = false; // 头像上传完成, 打开锁
48 }) 48 })
49 .catch(err => { 49 .catch(err => {
...@@ -73,8 +73,7 @@ export const useUpload = () => { ...@@ -73,8 +73,7 @@ export const useUpload = () => {
73 }) 73 })
74 }; 74 };
75 const beforeDelete = () => { // 删除图片回调 75 const beforeDelete = () => { // 删除图片回调
76 - metaId = ''; 76 + upload_image.src = '';
77 - upload_image.meta_id = '';
78 return true; 77 return true;
79 } 78 }
80 79
...@@ -86,4 +85,4 @@ export const useUpload = () => { ...@@ -86,4 +85,4 @@ export const useUpload = () => {
86 afterRead, 85 afterRead,
87 beforeDelete 86 beforeDelete
88 } 87 }
89 -}
...\ No newline at end of file ...\ No newline at end of file
88 +}
......
1 -<template>
2 - <div class="add-user-page">
3 - <p style="color: #713610; font-size: 1.25rem; padding: 1rem; text-align: center; font-weight: bold;">请录入儿童的信息</p>
4 - <div style="">
5 - <van-config-provider :theme-vars="themeVars">
6 - <van-form>
7 - <van-cell-group inset>
8 - <van-field v-model="user_info.kindergarten" name="幼儿园" label="幼儿园" placeholder="" disabled />
9 - <van-field v-model="user_info.name" name="儿童姓名" label="儿童姓名" placeholder="请输入儿童姓名" />
10 - <van-row style="padding: 2vh 0;">
11 - <van-col span="7"><span style="font-size: 14px; color: #323233; margin-left: 2vh;">儿童头像</span></van-col>
12 - <van-col span="17"><span style="font-size: 12px; color: #B0B0B0;">请上传一张清晰的儿童照片</span></van-col>
13 - </van-row>
14 - <van-row style="padding-bottom: 2vh;">
15 - <van-col span="16" offset="8">
16 - <van-uploader v-model="fileList" :after-read="afterRead" :before-delete="beforeDelete" :max-count="1" />
17 - </van-col>
18 - </van-row>
19 - </van-cell-group>
20 - <div style="margin: 2vh;">
21 - <van-button v-if="lock_btn" loading type="primary" loading-text="上传中..." style="width: 100%;" round></van-button>
22 - <van-button v-else @click="validForm" :disabled="lock_btn" type="primary" native-type="submit" style="width: 100%;" round>保存</van-button>
23 - </div>
24 - </van-form>
25 - </van-config-provider>
26 - </div>
27 - </div>
28 -</template>
29 -
30 -<script setup>
31 -import { useUpload } from '@/composables/useUpload.js'
32 -
33 -import { ref, reactive, onMounted } from 'vue'
34 -import { useRoute, useRouter } from 'vue-router'
35 -import axios from '@/utils/axios';
36 -import $ from 'jquery'
37 -import { Toast } from 'vant';
38 -
39 -const { lock_btn, fileList, upload_image, metaId, afterRead, beforeDelete } = useUpload(); // 上传图片模块
40 -
41 -const $route = useRoute();
42 -const $router = useRouter();
43 -
44 -const themeVars = {
45 - buttonPrimaryBackground: '#F9D95C',
46 - buttonPrimaryBorderColor: '#F9D95C',
47 - buttonPrimaryColor: '#713610',
48 -};
49 -
50 -// 验证输入项
51 -const validForm = () => {
52 - // if (!user_info.name) {
53 - // Toast.fail('儿童姓名不能为空')
54 - // return false;
55 - // }
56 - // if (!fileList.value.length) {
57 - // Toast.fail('儿童头像不能为空')
58 - // return false;
59 - // }
60 - saveInfo()
61 -};
62 -
63 -let user_info = reactive({
64 - kg_id: $route.query.kg_id,
65 - kindergarten: $route.query.kg_name,
66 - name: '',
67 - meta_id: metaId.value
68 -});
69 -
70 -onMounted(() => {
71 - //
72 - $('.content-section').height($(document).height() - $('.title-section').height());
73 -})
74 -
75 -// 保存用户信息
76 -const saveInfo = () => {
77 - axios.post('/srv/?a=add_performer', {
78 - kg_id: user_info.kg_id,
79 - perf_name: user_info.name,
80 - perf_avatar: '',
81 - meta_id: upload_image.meta_id ? upload_image.meta_id : metaId,
82 - })
83 - .then(res => {
84 - if (res.data.code === 1) {
85 - Toast.success({
86 - message: '保存成功',
87 - duration: 1000,
88 - onClose: () => {
89 - $router.go(-1)
90 - }
91 - });
92 - } else {
93 - console.warn(res);
94 - Toast({
95 - icon: 'close',
96 - message: res.data.msg
97 - });
98 - }
99 - })
100 - .catch(err => {
101 - console.error(err);
102 - })
103 -}
104 -</script>
105 -
106 -<script>
107 -import mixin from 'common/mixin';
108 -
109 -export default {
110 - mixins: [mixin.init],
111 - data () {
112 - return {
113 -
114 - }
115 - },
116 - mounted () {
117 -
118 - },
119 - methods: {
120 -
121 - }
122 -}
123 -</script>
124 -
125 -<style lang="less" scoped>
126 -.add-user-page {
127 - padding: 1rem;
128 -}
129 -</style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -69,21 +69,20 @@ const validForm = () => { ...@@ -69,21 +69,20 @@ const validForm = () => {
69 }; 69 };
70 70
71 let user_info = reactive({ 71 let user_info = reactive({
72 + perf_id: $route.query.perf_id,
72 kg_id: $route.query.kg_id, 73 kg_id: $route.query.kg_id,
73 kindergarten: $route.query.kg_name, 74 kindergarten: $route.query.kg_name,
74 name: $route.query.name, 75 name: $route.query.name,
75 - meta_id: metaId.value
76 }); 76 });
77 77
78 // 保存用户信息 78 // 保存用户信息
79 const saveInfo = () => { 79 const saveInfo = () => {
80 - // TODO: 需要一个修改儿童信息的接口 80 + let url = $route.query.type === 'ADD' ? 'add_performer' : 'modify_performer';
81 - let url = $route.query.type === 'Add' ? 'add_performer' : 'add_performer';
82 axios.post(`/srv/?a=${url}`, { 81 axios.post(`/srv/?a=${url}`, {
82 + perf_id: $route.query.type !== 'ADD' ? user_info.perf_id : '',
83 kg_id: user_info.kg_id, 83 kg_id: user_info.kg_id,
84 perf_name: user_info.name, 84 perf_name: user_info.name,
85 - perf_avatar: '', 85 + perf_avatar: upload_image.src ? upload_image.src : $route.query.avatar
86 - meta_id: upload_image.meta_id ? upload_image.meta_id : metaId,
87 }) 86 })
88 .then(res => { 87 .then(res => {
89 if (res.data.code === 1) { 88 if (res.data.code === 1) {
......
...@@ -234,6 +234,7 @@ const handleUser = (type) => { ...@@ -234,6 +234,7 @@ const handleUser = (type) => {
234 $router.push({ 234 $router.push({
235 path: '/me/handleUser', 235 path: '/me/handleUser',
236 query: { 236 query: {
237 + perf_id: userInfo.value.perf_id,
237 kg_id: userInfo.value.kg_id, 238 kg_id: userInfo.value.kg_id,
238 kg_name: userInfo.value.kg_name, 239 kg_name: userInfo.value.kg_name,
239 type 240 type
...@@ -245,6 +246,7 @@ const handleUser = (type) => { ...@@ -245,6 +246,7 @@ const handleUser = (type) => {
245 query: { 246 query: {
246 avatar: userInfo.value.avatar, 247 avatar: userInfo.value.avatar,
247 name: userInfo.value.name, 248 name: userInfo.value.name,
249 + perf_id: userInfo.value.perf_id,
248 kg_id: userInfo.value.kg_id, 250 kg_id: userInfo.value.kg_id,
249 kg_name: userInfo.value.kg_name, 251 kg_name: userInfo.value.kg_name,
250 type 252 type
......