master
Phoenix 7 months ago
parent 648764acf5
commit c97d55b77a

@ -0,0 +1 @@
VITE_APP_API_BASE_URL=http://172.16.100.93:8004/

146
package-lock.json generated

@ -10,6 +10,7 @@
"dependencies": {
"@vant/area-data": "^1.5.1",
"@varlet/ui": "^2.22.2",
"axios": "^1.6.7",
"normalize.css": "^8.0.1",
"vant": "^4.8.4",
"vue": "^3.3.11",
@ -847,6 +848,21 @@
"node": ">= 8"
}
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/axios": {
"version": "1.6.7",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.7.tgz",
"integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
"dependencies": {
"follow-redirects": "^1.15.4",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@ -904,6 +920,17 @@
"fsevents": "~2.3.2"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
@ -936,6 +963,14 @@
"resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
"integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
@ -1033,6 +1068,32 @@
"node": ">=8"
}
},
"node_modules/follow-redirects": {
"version": "1.15.5",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz",
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
@ -1182,6 +1243,25 @@
"node": ">=8.6"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/minimatch": {
"version": "9.0.3",
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz",
@ -1306,6 +1386,11 @@
"postcss": ">=5.0.2"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
@ -2186,6 +2271,21 @@
"picomatch": "^2.0.4"
}
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"axios": {
"version": "1.6.7",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.7.tgz",
"integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
"requires": {
"follow-redirects": "^1.15.4",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@ -2232,6 +2332,14 @@
"readdirp": "~3.6.0"
}
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
@ -2256,6 +2364,11 @@
"resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
"integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
"entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
@ -2334,6 +2447,21 @@
"to-regex-range": "^5.0.1"
}
},
"follow-redirects": {
"version": "1.15.5",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz",
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw=="
},
"form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
}
},
"fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
@ -2446,6 +2574,19 @@
"picomatch": "^2.3.1"
}
},
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
"mime-db": "1.52.0"
}
},
"minimatch": {
"version": "9.0.3",
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz",
@ -2549,6 +2690,11 @@
"postcss": ">=5.0.2"
}
},
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",

@ -11,6 +11,7 @@
"dependencies": {
"@vant/area-data": "^1.5.1",
"@varlet/ui": "^2.22.2",
"axios": "^1.6.7",
"normalize.css": "^8.0.1",
"vant": "^4.8.4",
"vue": "^3.3.11",

@ -13,4 +13,7 @@
box-sizing: border-box;
}
.particulars-detail-popup {
background: rgba(0, 0, 0, 0.7) !important;
}
</style>

@ -0,0 +1,25 @@
import request from "@/request/index.js";
export const send_code = (data) => {
return request({
url: '/account/send_code',
method: 'post',
data
})
}
export const check_code = (data) => {
return request({
url: '/account/check_code',
method: 'post',
data
})
}
export const upload_img = (data) => {
return request({
headers: {
'Content-Type': 'multipart/form-data'
},
url: '/upload/img',
method: 'post',
data
})
}

@ -8,5 +8,16 @@ import 'vant/lib/index.css';
const app = createApp(App);
app.use(router);
app.directive('no-space', {
mounted(el) {
el.addEventListener('input', (e) => {
const originalValue = e.target.value;
const newValue = originalValue.replace(/\s/g, '');
if (originalValue !== newValue) {
e.target.value = newValue;
e.target.dispatchEvent(new Event('input'));
}
});
}
})
app.mount('#app');

@ -0,0 +1,31 @@
import {showLoadingToast, closeToast, showToast} from 'vant';
import axios from "axios";
import storage from '@/utils/storage.js';
const request = axios.create({
baseURL:import.meta.env.VITE_APP_API_BASE_URL,
timeout:5000
});
request.interceptors.request.use((config)=>{
config.headers.Authorization =storage.getItem('token')
showLoadingToast({
duration:5000,
message: '加载中...',
forbidClick: true,
className:'particulars-detail-popup'
});
return config;
});
request.interceptors.response.use((res)=>{
closeToast()
if (res.data.status!==0){
console.log(res.data.msg)
showToast({
message:res.data.msg,
className: 'particulars-detail-popup'
});
}
return res.data;
},()=>{
});
export default request;

@ -1,16 +1,33 @@
<script setup>
import { useRouter } from 'vue-router';
const router = useRouter();
import { showToast } from 'vant';
import storage from '@/utils/storage.js';
import {ref,onBeforeUnmount} from "vue";
import {check_code, send_code} from "@/apis/index.js";
const router = useRouter();
const isCountingDown = ref(false);
const timeLeft = ref(60);
const countdownInterval = ref(null);
const sendCodeApi=()=>{
const telNum=ref('')
const code=ref('')
const sendCodeApi=async ()=>{
const data={
TelNum:telNum.value
}
const res=await send_code(data)
if (res.status===0){
}
}
const sendCode = async () => {
if (!isCountingDown.value){
if(!/^1[3-9]\d{9}$/.test(telNum.value)){
showToast({
message:'请输入合规的手机号码',
className:'particulars-detail-popup'
});
return
}
await sendCodeApi()
}
isCountingDown.value = true;
@ -24,7 +41,15 @@ const sendCode = async () => {
}
}, 1000);
};
const goRouter=()=>{
const goRouter=async ()=>{
const data={
telNum:telNum.value,
code:code.value
}
const res=await check_code(data)
if (res.status===0){
}
router.push(`/title-forward/upload-id-card/${0}`)
}
onBeforeUnmount(() => {
@ -38,13 +63,13 @@ onBeforeUnmount(() => {
<div class="wrap1">
<div class="wrap1_1">手机号 <span class="wrap1_1_1">(+86)</span> </div>
<div class="wrap1_2">
<input placeholder="在此输入报名人手机号">
<input placeholder="在此输入报名人手机号" v-model="telNum" v-no-space>
</div>
</div>
<div class="wrap2">
<div class="wrap2_1">验证码 </div>
<div class="wrap2_2" >
<input placeholder="在此输入">
<input placeholder="在此输入" v-model="code" v-no-space>
</div>
<div class="wrap2_3" @click="sendCode"> {{ isCountingDown ? `(${timeLeft})` : '' }}</div>
</div>

@ -1,11 +1,20 @@
<script setup>
import {upload_img} from "@/apis/index.js";
const afterRead=async (file)=>{
const res=await upload_img( {
file: file.file,
source: "artwork",
type: 'image'
})
console.log(file,'file')
}
</script>
<template>
<div class="one-content">
<div class="content2">
<van-uploader>
<van-uploader :after-read="afterRead">
<div class="wrap1">
<div class="wrap1_1">
<div class="wrap1_1_1">

Loading…
Cancel
Save