添加了pina状态管理

This commit is contained in:
abu 2024-04-08 10:58:37 +08:00
parent 693bec31b2
commit 5981660efc
51 changed files with 155751 additions and 59 deletions

219
package-lock.json generated
View File

@ -9,6 +9,9 @@
"version": "0.1.0",
"dependencies": {
"core-js": "^3.8.3",
"pinia": "^2.1.7",
"pinia-plugin-persist": "^1.0.0",
"vant": "^4.8.10",
"vue": "^3.2.13",
"vue-router": "^4.0.3"
},
@ -2656,6 +2659,19 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@vant/popperjs": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
},
"node_modules/@vant/use": {
"version": "1.6.0",
"resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz",
"integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==",
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
@ -8825,6 +8841,90 @@
"node": ">=8.6"
}
},
"node_modules/pinia": {
"version": "2.1.7",
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.7.tgz",
"integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
"dependencies": {
"@vue/devtools-api": "^6.5.0",
"vue-demi": ">=0.14.5"
},
"peerDependencies": {
"@vue/composition-api": "^1.4.0",
"typescript": ">=4.4.4",
"vue": "^2.6.14 || ^3.3.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"typescript": {
"optional": true
}
}
},
"node_modules/pinia-plugin-persist": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/pinia-plugin-persist/-/pinia-plugin-persist-1.0.0.tgz",
"integrity": "sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==",
"dependencies": {
"vue-demi": "^0.12.1"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0",
"pinia": "^2.0.0",
"vue": "^2.0.0 || >=3.0.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/pinia-plugin-persist/node_modules/vue-demi": {
"version": "0.12.5",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz",
"integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/pinia/node_modules/vue-demi": {
"version": "0.14.7",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz",
"integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
@ -10973,7 +11073,7 @@
"version": "4.5.5",
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz",
"integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
"dev": true,
"devOptional": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@ -11117,6 +11217,19 @@
"spdx-expression-parse": "^3.0.0"
}
},
"node_modules/vant": {
"version": "4.8.10",
"resolved": "https://registry.npmmirror.com/vant/-/vant-4.8.10.tgz",
"integrity": "sha512-JKfywSAwxVrY6q2KbESdW9IyGMeOFKa8ub3DLluTaYV7ff4ECXFilkjMeRYVT4hdsNcNii6KCQF6mUYyI56SBA==",
"dependencies": {
"@vant/popperjs": "^1.3.0",
"@vant/use": "^1.6.0",
"@vue/shared": "^3.4.21"
},
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
@ -12398,7 +12511,8 @@
"version": "7.21.0-placeholder-for-preset-env.2",
"resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
"integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
"dev": true
"dev": true,
"requires": {}
},
"@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
@ -13929,6 +14043,17 @@
"eslint-visitor-keys": "^3.3.0"
}
},
"@vant/popperjs": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
},
"@vant/use": {
"version": "1.6.0",
"resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz",
"integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==",
"requires": {}
},
"@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
@ -14229,7 +14354,8 @@
"version": "5.0.8",
"resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz",
"integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==",
"dev": true
"dev": true,
"requires": {}
},
"@vue/cli-service": {
"version": "5.0.8",
@ -14752,13 +14878,15 @@
"version": "1.9.0",
"resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
"integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
"dev": true
"dev": true,
"requires": {}
},
"acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true
"dev": true,
"requires": {}
},
"acorn-walk": {
"version": "8.3.2",
@ -14817,7 +14945,8 @@
"version": "3.5.2",
"resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true
"dev": true,
"requires": {}
},
"ansi-colors": {
"version": "4.1.3",
@ -15626,7 +15755,8 @@
"version": "6.4.1",
"resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz",
"integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==",
"dev": true
"dev": true,
"requires": {}
},
"css-loader": {
"version": "6.11.0",
@ -15812,7 +15942,8 @@
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
"integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
"dev": true
"dev": true,
"requires": {}
},
"csso": {
"version": "4.2.0",
@ -17506,7 +17637,8 @@
"version": "5.1.0",
"resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz",
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
"dev": true
"dev": true,
"requires": {}
},
"ieee754": {
"version": "1.2.1",
@ -18835,6 +18967,39 @@
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
"pinia": {
"version": "2.1.7",
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.7.tgz",
"integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
"requires": {
"@vue/devtools-api": "^6.5.0",
"vue-demi": ">=0.14.5"
},
"dependencies": {
"vue-demi": {
"version": "0.14.7",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz",
"integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
"requires": {}
}
}
},
"pinia-plugin-persist": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/pinia-plugin-persist/-/pinia-plugin-persist-1.0.0.tgz",
"integrity": "sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==",
"requires": {
"vue-demi": "^0.12.1"
},
"dependencies": {
"vue-demi": {
"version": "0.12.5",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz",
"integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==",
"requires": {}
}
}
},
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
@ -18912,25 +19077,29 @@
"version": "5.1.2",
"resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
"integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
"dev": true
"dev": true,
"requires": {}
},
"postcss-discard-duplicates": {
"version": "5.1.0",
"resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
"integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
"dev": true
"dev": true,
"requires": {}
},
"postcss-discard-empty": {
"version": "5.1.1",
"resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
"integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
"dev": true
"dev": true,
"requires": {}
},
"postcss-discard-overridden": {
"version": "5.1.0",
"resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
"integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
"dev": true
"dev": true,
"requires": {}
},
"postcss-loader": {
"version": "6.2.1",
@ -19048,7 +19217,8 @@
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
"integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
"dev": true
"dev": true,
"requires": {}
},
"postcss-modules-local-by-default": {
"version": "4.0.5",
@ -19083,7 +19253,8 @@
"version": "5.1.0",
"resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
"integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
"dev": true
"dev": true,
"requires": {}
},
"postcss-normalize-display-values": {
"version": "5.1.0",
@ -20456,7 +20627,7 @@
"version": "4.5.5",
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz",
"integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
"dev": true
"devOptional": true
},
"undici-types": {
"version": "5.26.5",
@ -20563,6 +20734,16 @@
"spdx-expression-parse": "^3.0.0"
}
},
"vant": {
"version": "4.8.10",
"resolved": "https://registry.npmmirror.com/vant/-/vant-4.8.10.tgz",
"integrity": "sha512-JKfywSAwxVrY6q2KbESdW9IyGMeOFKa8ub3DLluTaYV7ff4ECXFilkjMeRYVT4hdsNcNii6KCQF6mUYyI56SBA==",
"requires": {
"@vant/popperjs": "^1.3.0",
"@vant/use": "^1.6.0",
"@vue/shared": "^3.4.21"
}
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
@ -21022,7 +21203,8 @@
"version": "8.16.0",
"resolved": "https://registry.npmmirror.com/ws/-/ws-8.16.0.tgz",
"integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
"dev": true
"dev": true,
"requires": {}
}
}
},
@ -21144,7 +21326,8 @@
"version": "7.5.9",
"resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
"dev": true
"dev": true,
"requires": {}
},
"y18n": {
"version": "5.0.8",

View File

@ -9,6 +9,9 @@
},
"dependencies": {
"core-js": "^3.8.3",
"pinia": "^2.1.7",
"pinia-plugin-persist": "^1.0.0",
"vant": "^4.8.10",
"vue": "^3.2.13",
"vue-router": "^4.0.3"
},

View File

@ -1,10 +1,26 @@
<template>
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</nav>
<!-- &lt;!&ndash; <nav>&ndash;&gt;-->
<!-- &lt;!&ndash; <router-link to="/">Home</router-link> |&ndash;&gt;-->
<!-- &lt;!&ndash; <router-link to="/about">About</router-link>&ndash;&gt;-->
<!-- &lt;!&ndash; </nav>&ndash;&gt;-->
<!-- <img src="@/assets/img/first1.svg" alt="">-->
<!-- <img class="input-code" src="@/assets/img/Rectangle 29.svg" alt="">-->
<!-- <div class="login-but">-->
<!-- <span>登录</span>-->
<!-- <img src="@/assets/img/Rectangle%2032.svg" alt="">-->
<!-- </div>-->
<router-view/>
</template>
<script setup>
// function test() {
// setInterval(() =>{
// location.reload()
// },1500)
// }
// test()
</script>
<style lang="scss">
#app {

9
src/assets/img/1.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 301 KiB

View File

@ -0,0 +1,17 @@
<svg width="242" height="72" viewBox="0 0 242 72" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_12_215)">
<rect x="4" width="234" height="64" rx="12" fill="#ECF1F7"/>
</g>
<defs>
<filter id="filter0_d_12_215" x="0" y="0" width="242" height="72" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_12_215"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_12_215" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 897 B

View File

@ -0,0 +1,17 @@
<svg width="217" height="62" viewBox="0 0 217 62" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_12_221)">
<rect x="4" width="209" height="54" rx="27" fill="#95BCD9"/>
</g>
<defs>
<filter id="filter0_d_12_221" x="0" y="0" width="217" height="62" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_12_221"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_12_221" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 897 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

BIN
src/assets/img/aixin_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1 @@
<svg t="1686310663774" class="icon" viewBox="0 0 1034 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14779" width="200" height="200"><path d="M552.96 855.04c25.6 25.6 66.56 25.6 87.04 0l240.64-230.4c61.44-61.44 61.44-158.72 0-220.16s-168.96-61.44-230.4 0c-30.72 25.6-76.8 25.6-102.4 0-61.44-61.44-168.96-61.44-230.4 0S256 563.2 317.44 624.64l235.52 230.4z" fill="#91BDDA" p-id="14780" data-spm-anchor-id="a313x.7781069.0.i22" class="selected"></path><path d="M450.56 870.4c35.84 35.84 87.04 35.84 122.88 0l332.8-332.8c87.04-87.04 87.04-230.4 0-317.44s-230.4-87.04-317.44 0l-5.12 5.12c-40.96 40.96-102.4 40.96-143.36 0l-5.12-5.12C348.16 133.12 204.8 133.12 117.76 220.16s-87.04 230.4 0 317.44L450.56 870.4z m-35.84 35.84l-332.8-332.8c-107.52-107.52-107.52-281.6 0-394.24s281.6-107.52 394.24 0l5.12 5.12c20.48 20.48 51.2 20.48 71.68 0l5.12-5.12c107.52-107.52 281.6-107.52 394.24 0s107.52 281.6 0 394.24l-332.8 332.8c-61.44 56.32-153.6 56.32-204.8 0z" fill="" p-id="14781"></path></svg>

After

Width:  |  Height:  |  Size: 997 B

4433
src/assets/img/all.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 334 KiB

4369
src/assets/img/all1.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 329 KiB

BIN
src/assets/img/bottom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

BIN
src/assets/img/ditu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

1
src/assets/img/ditu.svg Normal file
View File

@ -0,0 +1 @@
<svg t="1686310583241" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13666" width="200" height="200"><path d="M471.04 317.44L665.6 358.4v563.2l-256-51.2V368.64c0-30.72 20.48-51.2 51.2-51.2h10.24z" fill="#91BDDA" p-id="13667"></path><path d="M640 911.36v-716.8c-10.24 0-15.36-5.12-20.48-5.12L384 112.64v711.68c10.24 0 15.36 5.12 20.48 5.12l235.52 81.92z m51.2 0l194.56-66.56c20.48-5.12 35.84-25.6 35.84-46.08V122.88l-209.92 71.68c-5.12 0-15.36 5.12-20.48 5.12v711.68z m-358.4-81.92v-716.8L138.24 179.2c-20.48 5.12-35.84 25.6-35.84 46.08v675.84l209.92-71.68h20.48zM122.88 128l204.8-66.56c20.48-5.12 46.08-5.12 66.56 0l240.64 81.92c20.48 5.12 46.08 5.12 66.56 0l209.92-71.68c25.6-10.24 56.32 5.12 66.56 30.72-5.12 10.24-5.12 15.36-5.12 20.48v675.84c0 46.08-30.72 81.92-71.68 97.28l-204.8 66.56c-20.48 5.12-46.08 5.12-66.56 0l-240.64-81.92c-20.48-5.12-46.08-5.12-66.56 0l-209.92 71.68c-25.6 10.24-56.32-5.12-66.56-30.72 5.12-10.24 5.12-15.36 5.12-20.48V225.28c0-40.96 30.72-81.92 71.68-97.28z" fill="#2c2c2c" p-id="13668" data-spm-anchor-id="a313x.7781069.0.i19" class="selected"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/assets/img/ditu_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
src/assets/img/dt.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 KiB

BIN
src/assets/img/fenzu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

1
src/assets/img/fenzu.svg Normal file
View File

@ -0,0 +1 @@
<svg t="1686310435404" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12365" width="200" height="200"><path d="M760.504 883.784l-619.152 9.88-64.68-24.576V787.024c7.808-3.712 191.376-75.2 193.576-83.568 2.144-8.376 71.616-34.12 66.576-41.168l-18.76-81.216V427.784c0-73.152 59.24-130.44 134.848-130.44 75.576 0 134.816 57.288 134.816 130.472l-31.704 153.256-37.864 64.304c-4.816 6.992 18.072 31.728 20.176 39.952 2.112 8.184 41.808 14.32 49.392 18.128l172.776 83.568v106.64-9.912 0.032z" fill="#91BDDA" p-id="12366" data-spm-anchor-id="a313x.7781069.0.i12" class=""></path><path d="M932.776 848.24l-177.056 1.992v-69.656l-155.936-72.08-65.888-33.152c7.816-3.712-45.48-2.52-43.304-10.888 2.136-8.376 48.344-37.864 43.304-44.888l23.264-71.384 30.56-120.368c0-73.152 9.92-169.472 85.52-169.472 59.752 0 109.264 35.792 127.424 86.936 4.784 13.536-13 29.624-13 44.984l-58.608 157.88-15.328 47.376c-4.816 6.984 44.664 15.84 46.776 24.048 2.104 8.184 39.976 41.08 47.56 44.888l172.776 83.568-18.04 82.064-30.024 18.16z" fill="#91BDDA" p-id="12367" data-spm-anchor-id="a313x.7781069.0.i16" class=""></path><path d="M771.456 761.784a29.264 29.264 0 0 1 16.208 26.216v103.248a29.264 29.264 0 0 1-29.336 29.304H76.232a29.304 29.304 0 0 1-29.336-29.304V788c0-11.296 6.52-21.56 16.68-26.44l241.84-115.84-72.024-101.256a29.136 29.136 0 0 1-5.44-16.992V364.864c0-106.016 84.984-189.112 193.48-189.112 108.472 0 193.456 83.064 193.456 189.112v162.608c0 5.928-1.8 11.72-5.16 16.616l-70.04 101.856 231.76 115.84z m-42.4 100.16h-0.032v-55.808l-245.704-122.8a29.296 29.296 0 0 1-11.016-42.832L556.24 518.376v-153.52c0-73.176-59.24-130.464-134.816-130.464-75.6 0-134.84 57.288-134.84 130.44v153.28L373.36 640.16a29.28 29.28 0 0 1-11.232 43.44l-256.6 122.88v55.464h623.52z m238.496-172.464a29.264 29.264 0 0 1 16.208 26.216v103.248a29.256 29.256 0 0 1-29.336 29.304h-73.088a29.336 29.336 0 0 1 0-58.64h43.784v-55.808L679.44 611.04a29.296 29.296 0 0 1-11.04-42.84l83.976-122.128v-153.52c0-73.176-59.232-130.496-134.84-130.496-4.72 0-10.576 0.504-17.504 1.576a31.472 31.472 0 0 1-34.624-21.528l-0.408-1.2a26.368 26.368 0 0 1 20.584-34.088 191.736 191.736 0 0 1 31.952-3.36c108.496 0 193.456 83.056 193.456 189.104v162.608c0 5.928-1.808 11.728-5.168 16.616l-70 101.864 231.728 115.832z" fill="#2c2c2c" p-id="12368" data-spm-anchor-id="a313x.7781069.0.i13" class="selected"></path></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

4731
src/assets/img/first1.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 356 KiB

2654
src/assets/img/hashida1.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 200 KiB

2654
src/assets/img/hsd-name.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

24145
src/assets/img/letter.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 1.8 MiB

105969
src/assets/img/map.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 7.8 MiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
src/assets/img/ryzs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

5071
src/assets/img/success.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 382 KiB

57
src/assets/img/tu2.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 130 KiB

BIN
src/assets/img/txz.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

View File

@ -0,0 +1 @@
<svg t="1686279836167" class="icon" viewBox="0 0 1288 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21110" data-spm-anchor-id="a313x.7781069.0.i32" width="200" height="200"><path d="M1115.134327 794.622808h-735.57223a26.453294 26.453294 0 1 0 0 52.906587h735.57223a26.453294 26.453294 0 1 0 0-52.906587zM762.025524 582.655126H938.665259a27.135959 27.135959 0 0 0 18.773305-7.850655 25.258629 25.258629 0 0 0 7.509322-18.431972A26.453294 26.453294 0 0 0 938.665259 529.065873H762.025524a26.453294 26.453294 0 0 0 0 52.906587zM762.025524 435.711346h294.228892a26.453294 26.453294 0 0 0 0-52.906587H762.025524a26.453294 26.453294 0 1 0 0 52.906587z" p-id="21111" fill="#1296db"></path><path d="M467.796632 382.634093a114.687828 114.687828 0 1 0 114.687828 114.687828 114.858494 114.858494 0 0 0-114.687828-114.687828z m0 176.469068A61.781241 61.781241 0 1 1 511.999232 453.972652a61.269241 61.269241 0 0 1 17.066641 43.519935 61.781241 61.781241 0 0 1-61.269241 61.610574z" fill="#1296db" p-id="21112"></path><path d="M1203.198195 205.823691H261.802274a85.333205 85.333205 0 0 0-85.333205 85.333206V938.665259a85.333205 85.333205 0 0 0 85.333205 85.333205H1203.198195a26.111961 26.111961 0 0 0 18.943972-7.850655 25.599962 25.599962 0 0 0 7.509322-18.602639 26.453294 26.453294 0 0 0-26.453294-26.62396H261.802274A32.255952 32.255952 0 0 1 229.546322 938.665259V291.156897a32.255952 32.255952 0 0 1 32.255952-32.255952h941.737254a32.255952 32.255952 0 0 1 32.255952 32.255952v498.857918a26.453294 26.453294 0 0 0 52.906587 0V291.156897a85.333205 85.333205 0 0 0-85.503872-85.333206z" p-id="21113" fill="#1296db"></path><path d="M1026.899793 0H85.333205a85.333205 85.333205 0 0 0-85.333205 85.333205v647.16703a85.333205 85.333205 0 0 0 85.333205 85.333205h115.54116a26.453294 26.453294 0 1 0 0-52.735921H85.333205a32.255952 32.255952 0 0 1-32.255951-32.255952V85.333205A32.255952 32.255952 0 0 1 85.333205 53.077254h941.907921A32.255952 32.255952 0 0 1 1059.497077 85.333205v146.090448a26.453294 26.453294 0 1 0 52.735921 0V85.333205a85.333205 85.333205 0 0 0-85.333205-85.333205z" p-id="21114" fill="#1296db"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
src/assets/img/xysh.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

1
src/assets/img/zs.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
src/assets/img/位置.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1698028173053" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10729" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M782 571.9c17.8-39.9 29-77.1 29-107.6 0-150.7-122.2-272.9-272.8-272.9S265.4 313.6 265.4 464.3c0 137.6 227.5 411.3 267 455.1 3.1 3.5 8.5 3.5 11.7 0 22.6-25 106.8-125.3 174.6-232.3M538.2 570.5c-65.5 0-118.6-53.1-118.6-118.7s53.1-118.7 118.6-118.7 118.6 53.1 118.6 118.7-53.1 118.7-118.6 118.7z" fill="#C5E5FF" p-id="10730"></path><path d="M512 960c-5.3 0-10.4-2.3-14-6.3-3.2-3.6-323-369.1-323-552.7 0-185.8 151.2-337 337-337s337 151.2 337 337.1c0 35.4-12 80.1-35.6 133-2.1 4.8-7.8 7-12.5 4.8-4.8-2.1-6.9-7.8-4.8-12.5 22.5-50.5 34-92.6 34-125.3C830 225.7 687.4 83 512 83S194 225.7 194 401.1c0 154.3 255 470 318.1 539.9 28.3-31.4 127.5-149.9 208.5-277.6 2.8-4.4 8.7-5.8 13.1-2.9 4.4 2.8 5.7 8.7 2.9 13.1C654.9 802.4 554.7 922 526 953.7c-3.5 4-8.7 6.3-14 6.3z m0-422c-83.8 0-151.9-68.2-151.9-151.9s68.2-152 151.9-152S663.9 302.3 663.9 386 595.8 538 512 538z m0-284.9c-73.3 0-132.9 59.6-132.9 132.9S438.7 519 512 519s132.9-59.6 132.9-132.9-59.6-133-132.9-133z" fill="#3B94FF" p-id="10731"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
src/assets/img/证书.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1686223601489" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2298" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M958.464 294.912l-86.016-102.4c-16.384-16.384-40.96-28.672-65.536-28.672H143.36c-45.056 0-81.92 36.864-81.92 81.92v204.8c0 45.056 36.864 81.92 81.92 81.92h663.552c24.576 0 45.056-12.288 61.44-28.672l86.016-102.4c28.672-32.768 28.672-73.728 4.096-106.496zM806.912 450.56H143.36V245.76h663.552l86.016 102.4-86.016 102.4z" fill="#303133" p-id="2299"></path><path d="M512 36.864c24.576 0 40.96 16.384 40.96 40.96v110.592c0 24.576-16.384 40.96-40.96 40.96s-40.96-16.384-40.96-40.96V77.824c0-20.48 16.384-40.96 40.96-40.96zM512 454.656c24.576 0 40.96 16.384 40.96 40.96v479.232c0 24.576-16.384 40.96-40.96 40.96s-40.96-16.384-40.96-40.96V495.616c0-20.48 16.384-40.96 40.96-40.96z" fill="#303133" p-id="2300"></path><path d="M307.2 983.04c0-24.576 16.384-40.96 40.96-40.96h327.68c24.576 0 40.96 16.384 40.96 40.96s-16.384 40.96-40.96 40.96H348.16c-24.576 0-40.96-16.384-40.96-40.96z" fill="#303133" p-id="2301"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1,34 +1,6 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript" target="_blank" rel="noopener">typescript</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>

View File

@ -0,0 +1,13 @@
<script setup lang="ts">
</script>
<template>
<div>
<h1>页面没找到</h1>
</div>
</template>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,178 @@
<template>
<div>
<img class="hsd-name" src="@/assets/img/hsd-name.svg" alt="">
<div class="main-page">
<p><span>马明</span> 同志您的数据已通过审
!您将在本次评卷工作担任:</p>
<span>评卷工作领导小组
副组长</span>
<p>您的数据已成功进入我校评卷人员
档案数据库中感谢您对本次评卷工作
的支持</p>
</div>
<!-- <div class="main-text">-->
<!-- <p>老师,您已成功报名!感谢您参与本次评卷工作!</p>-->
<!-- </div>-->
<div class="main-item">
<van-row>
<van-col span="6">
<img @click="show1 = true" src="@/assets/img/ditu_3.png" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show1" show-cancel-button>
<img src="@/assets/img/dt.jpg" />
<span class="dialog-close-content" @click="show1 = false">×</span>
</van-dialog>
<p>师大地图</p>
</van-col>
<van-col span="6">
<img @click="show2 = true" src="@/assets/img/txz_tubiao.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show2" show-cancel-button>
<img src="@/assets/img/txz.jpg" />
<span class="dialog-close-content" @click="show2 = false">×</span>
</van-dialog>
<p>通行证</p>
</van-col>
<van-col span="6">
<img @click="show6 = true" src="@/assets/img/xysh.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
:show-cancel-button="false"
v-model:show="show6">
<span class="dialog-close-content" @click="show6 = false">×</span>
<div class="grop-by">
校园生活
<p>暂时未发布</p>
</div>
</van-dialog>
<p>校园生活</p>
</van-col>
<van-col span="6">
<img @click="show7 = true" src="@/assets/img/aixin_1.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show7" show-cancel-button>
<img src="@/assets/img/letter.svg" />
<span class="dialog-close-content" @click="show7 = false">×</span>
</van-dialog>
<p>致谢</p>
</van-col>
</van-row>
<div class="main-bottom">
<img src="@/assets/img/bottom.png">
</div>
</div>
</div>
</template>
<script setup lang="ts">
import {ref} from "vue";
const show1 = ref(false);
const show2 = ref(false);
const show3 = ref(false);
const show4 = ref(false);
const show5 = ref(false);
const show6 = ref(false);
const show7 = ref(false);
const show8 = ref(false);
</script>
<style scoped lang="scss">
.dialog-close-content{
position: absolute;
right: 10px;
top: 0;
font-weight: 700;
font-size: 30px;
//background-color: #42b983;
color: #949494;
}
.main-page{
width: 95vw;
height: 200px;
//margin-top: 15px;
// radius10px10px
border-radius: 10px;
box-shadow: 0 10px 10px rgba(0,0,0,0.2);
background-color: #fff;
margin: 50px auto;
margin-top: 0;
color: #656565;
p {
text-indent: 2em;
margin: 0 30px;
text-align: left;
line-height: 2;
span{
font-weight: 700;
}
}
span{
text-align: center;
font-weight: 700;
}
}
.hsd-name{
width: 90%;
margin: 15px 0;
}
.main-text{
width: 90vw;
margin: 0 auto;
height: 45px;
border-radius: 10px;
background-color: #dce0e1;
text-align: center;
line-height: 45px;
p{
color: red;
}
}
.main-item{
margin-top: 15px;
img{
width: 50%;
}
p{
margin-top: -5px;
font-size: 0.7rem;
font-weight: 600;
}
}
.van-row{
margin-top: 15px;
}
.main-bottom{
position: absolute;
left: 0;
bottom: 0;
margin-bottom: 0;
img{
width: 100%;
}
}
.grop-by{
width: 100%;
height: 100px;
p{
text-align: center;
line-height: 100px;
font-size: initial;
color: red;
}
}
</style>

View File

@ -0,0 +1,135 @@
<template>
<div class="father">
<van-cell-group inset class="mar-auto15">
<van-field
class="van-field__label_rectangle"
label-width="400px"
label="哈尔滨师范大学评卷信息填报"
type="hidden"
/>
</van-cell-group>
<van-form @submit="onSubmit">
<van-cell-group inset>
<van-field
class="van-field__label1——circle"
label-width="400px"
label="个人信息"
type="hidden"
/>
<van-field
v-model="student.userName"
name="userName"
label="姓名"
type="text"
placeholder="请输入姓名"
:rules="[{ required: true, message: '请输入学号' }]"
/>
<van-field
v-model="student.studentId"
name="studentId"
label="学号"
type="number"
placeholder="请输入学号"
:rules="[{ required: true, message: '请输入学号' }]"
/>
<van-field
v-model="student.phone"
name="phone"
label="手机号"
type="number"
placeholder="请输入手机号"
:rules="[{ required: true, message: '请输入手机号' }]"
/>
<van-field label-width="150px" class="van-rad" name="checked" label="是否第一次参加阅卷">
<template #input>
<van-radio-group v-model="student.checked" direction="horizontal">
<van-radio name="1"></van-radio>
<van-radio name="2"></van-radio>
</van-radio-group>
</template>
</van-field>
</van-cell-group>
<div style="margin: 16px;">
<van-button round block type="primary" native-type="submit">
提交
</van-button>
</div>
</van-form>
</div>
</template>
<script setup lang="ts">
import {reactive, ref} from 'vue';
// eslint-disable-next-line no-undef
const student = reactive({
userName: '',
studentId: '',
phone: '',
checked: ''
})
const onSubmit = (values: object) => {
// valueschecked
// values = {...values ,...{checked:checked.value}}
// values.checked = checked.value;
console.log('submit', values);
};
// return {
// username,
// password,
// onSubmit,
// };
</script>
<style scoped lang="scss">
.father {
height: 100vh;
background-color: #efefef;
}
.mar-auto15 {
margin: 15px 15px;
}
.van-field__label_rectangle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label1circle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label_rectangle:before {
content: "";
position: absolute;
top: 30%;
left: 5px;
display: inline-block;
height: 20px;
width: 5px;
background-color: #1989fa;
border-radius: 8px;
}
.van-field__label1circle:before {
content: "";
position: absolute;
top: 50%;
left: 5px;
display: inline-block;
height: 5px;
width: 5px;
background-color: #1989fa;
border-radius: 50%;
}
</style>

View File

@ -0,0 +1,145 @@
<template>
<div class="father">
<van-cell-group inset class="mar-auto15">
<van-field
class="van-field__label_rectangle"
label-width="400px"
label="哈尔滨师范大学评卷信息填报"
type="hidden"
/>
</van-cell-group>
<van-form @submit="onSubmit">
<van-cell-group inset>
<van-field
class="van-field__label1——circle"
label-width="400px"
label="个人信息"
type="hidden"
/>
<van-field
v-model="teacher.userName"
name="userName"
label="姓名"
type="text"
placeholder="请输入姓名"
:rules="[{ required: true, message: '请输入学号' }]"
/>
<van-field
v-model="teacher.teacherId"
name="studentId"
label="工号"
type="number"
placeholder="请输入工号"
:rules="[{ required: true, message: '请输入工号' }]"
/>
<van-field
v-model="teacher.phone"
name="phone"
label="手机号"
type="number"
placeholder="请输入手机号"
:rules="[{ required: true, message: '请输入手机号' }]"
/>
<van-field label-width="150px" class="van-rad" name="checked" label="是否第一次参加阅卷">
<template #input>
<van-radio-group v-model="teacher.checked" direction="horizontal">
<van-radio name="1"></van-radio>
<van-radio name="2"></van-radio>
</van-radio-group>
</template>
</van-field>
</van-cell-group>
<div style="margin: 16px;">
<van-button round block type="primary" native-type="submit">
提交
</van-button>
</div>
</van-form>
<button @click="add">+++</button>
<button @click="sub">---</button>
<div>{{store.count}}</div>
<div>{{store.double}}</div>
</div>
</template>
<script setup lang="ts">
import {reactive, ref} from 'vue';
import { useCounterStore } from '@/store'
const store = useCounterStore()
function add(){
store.increment()
}
function sub(){
store.decrement()
}
// eslint-disable-next-line no-undef
const teacher = reactive({
userName: '',
teacherId: '',
phone: '',
checked: ''
})
const onSubmit = (values: object) => {
// valueschecked
// values = {...values ,...{checked:checked.value}}
// values.checked = checked.value;
console.log('submit', values);
};
// return {
// username,
// password,
// onSubmit,
// };
</script>
<style scoped lang="scss">
.father {
height: 100vh;
background-color: #efefef;
}
.mar-auto15 {
margin: 15px 15px;
}
.van-field__label_rectangle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label1circle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label_rectangle:before {
content: "";
position: absolute;
top: 30%;
left: 5px;
display: inline-block;
height: 20px;
width: 5px;
background-color: #1989fa;
border-radius: 8px;
}
.van-field__label1circle:before {
content: "";
position: absolute;
top: 50%;
left: 5px;
display: inline-block;
height: 5px;
width: 5px;
background-color: #1989fa;
border-radius: 50%;
}
</style>

206
src/components/mainPage.vue Normal file
View File

@ -0,0 +1,206 @@
<template>
<div>
<div class="main-page">
<img src="@/assets/img/success.svg">
</div>
<div class="main-text">
<p>老师,您已成功报名!感谢您参与本次评卷工作!</p>
</div>
<div class="main-item">
<van-row>
<van-col span="6">
<img @click="show1 = true" src="@/assets/img/ditu_3.png" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show1" show-cancel-button>
<img src="@/assets/img/dt.jpg" />
<span class="dialog-close-content" @click="show1 = false">×</span>
</van-dialog>
<p>师大地图</p>
</van-col>
<van-col span="6">
<img @click="show2 = true" src="@/assets/img/txz_tubiao.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show2" show-cancel-button>
<img src="@/assets/img/txz.jpg" />
<span class="dialog-close-content" @click="show2 = false">×</span>
</van-dialog>
<p>通行证</p>
</van-col>
<van-col span="6">
<img @click="show3 = true" src="@/assets/img/fenzu.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
:show-cancel-button="false"
v-model:show="show3">
<span class="dialog-close-content" @click="show3 = false">×</span>
<div class="grop-by">
分组信息
<p>暂时未分组</p>
</div>
</van-dialog>
<p>所属分组</p>
</van-col>
<van-col span="6">
<img @click="show4 = true" src="@/assets/img/jianzhu_sushe.png" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
:show-cancel-button="false"
v-model:show="show4">
<span class="dialog-close-content" @click="show4 = false">×</span>
<div class="grop-by">
宿舍分配
<p>暂时未分配宿舍</p>
</div>
</van-dialog>
<p>宿舍</p>
</van-col>
</van-row>
<van-row>
<van-col span="6">
<img @click="show5 = true" src="@/assets/img/mykaoshi.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show5" show-cancel-button>
<img src="@/assets/img/dt.jpg" />
<span class="dialog-close-content" @click="show5 = false">×</span>
</van-dialog>
<p>评卷地点</p>
</van-col>
<van-col span="6">
<img @click="show6 = true" src="@/assets/img/xysh.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
:show-cancel-button="false"
v-model:show="show6">
<span class="dialog-close-content" @click="show6 = false">×</span>
<div class="grop-by">
校园生活
<p>暂时未发布</p>
</div>
</van-dialog>
<p>校园生活</p>
</van-col>
<van-col span="6">
<img @click="show7 = true" src="@/assets/img/aixin_1.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show7" show-cancel-button>
<img src="@/assets/img/letter.svg" />
<span class="dialog-close-content" @click="show7 = false">×</span>
</van-dialog>
<p>致谢</p>
</van-col>
<van-col span="6">
<img @click="show8 = true" src="@/assets/img/zs.svg" alt="">
<van-dialog
:overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"
:show-confirm-button="false"
cancel-button-text="长按图片保存"
cancel-button-color="#e34032"
v-model:show="show8" show-cancel-button>
<img src="@/assets/img/ryzs.png" />
<span class="dialog-close-content" @click="show8 = false">×</span>
</van-dialog>
<p>证书</p>
</van-col>
</van-row>
<div class="main-bottom">
<img src="@/assets/img/bottom.png">
</div>
</div>
</div>
</template>
<script setup lang="ts">
import {ref} from "vue";
const show1 = ref(false);
const show2 = ref(false);
const show3 = ref(false);
const show4 = ref(false);
const show5 = ref(false);
const show6 = ref(false);
const show7 = ref(false);
const show8 = ref(false);
</script>
<style scoped lang="scss">
.dialog-close-content{
position: absolute;
right: 10px;
top: 0;
font-weight: 700;
font-size: 30px;
//background-color: #42b983;
color: #949494;
}
.main-page{
width: 95vw;
margin-top: 15px;
img{
width: 100%;
}
}
.main-text{
width: 90vw;
margin: 0 auto;
height: 45px;
border-radius: 10px;
background-color: #dce0e1;
text-align: center;
line-height: 45px;
p{
color: red;
}
}
.main-item{
margin-top: 15px;
img{
width: 50%;
}
p{
margin-top: -5px;
font-size: 0.7rem;
font-weight: 600;
}
}
.van-row{
margin-top: 15px;
}
.main-bottom{
position: absolute;
left: 0;
bottom: 0;
margin-bottom: 0;
img{
width: 100%;
}
}
.grop-by{
width: 100%;
height: 100px;
p{
text-align: center;
line-height: 100px;
font-size: initial;
color: red;
}
}
</style>

View File

@ -0,0 +1,215 @@
<template>
<div class="father">
<van-cell-group inset class="mar-auto15">
<van-field
class="van-field__label_rectangle"
label-width="400px"
label="哈尔滨师范大学评卷信息填报"
type="hidden"
/>
</van-cell-group>
<van-form @submit="onSubmit">
<van-cell-group inset>
<van-field
class="van-field__label1——circle"
label-width="400px"
label="个人信息"
type="hidden"
/>
<van-field
v-model="notLocalTeacher.userName"
name="userName"
label="姓名"
type="text"
placeholder="请输入姓名"
:rules="[{ required: true, message: '请输入姓名' }]"
/>
<van-field
v-model="notLocalTeacher.userCardId"
name="userCardId"
label="身份证号"
type="text"
placeholder="请输入身份证号"
:rules="[{ required: true, message: '请输入身份证号' }]"
/>
<van-field
v-model="notLocalTeacher.phone"
name="phone"
label="手机号"
type="number"
placeholder="请输入手机号"
:rules="[{ required: true, message: '请输入手机号' }]"
/>
<van-field
v-model="notLocalTeacher.result"
is-link
readonly
name="picker"
label="职称"
placeholder="点击选择职称"
@click="showPicker = true"
/>
<van-popup v-model:show="showPicker" position="bottom">
<van-picker
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup>
<van-field
v-model="notLocalTeacher.office"
name="office"
label="职务"
type="text"
placeholder="请输入职务(如教师,教务主任)"
:rules="[{ required: true, message: '请输入职务' }]"
/>
</van-cell-group>
<van-cell-group inset class="mar-auto15">
<van-field
class="van-field__label1——circle"
label-width="400px"
label="工作单位"
type="hidden"
/>
<van-field
v-model="notLocalTeacher.workName"
name="workName"
label="单位名称"
type="text"
placeholder="请输入单位名称"
:rules="[{ required: true, message: '请输入单位名称' }]"
/>
<van-field
v-model="notLocalTeacher.workPhone"
name="workPhoen"
label="单位电话"
type="text"
placeholder="电话/固定电话"
:rules="[{ required: true, message: '请输入单位电话' }]"
/>
</van-cell-group>
<div style="margin: 16px;">
<van-button round block type="primary" native-type="submit">
下一步
</van-button>
</div>
</van-form>
</div>
</template>
<script setup lang="ts">
import {onMounted, reactive, ref} from 'vue';
import {useRouter} from "vue-router";
// const userName = ref('');
// const phone = ref('');
// const userCardId = ref('');
// const result = ref('');
// const office = ref('');
// const workName = ref('');
// const workPhone = ref('');
const router = useRouter();
//
let notLocalTeacher = reactive({
userName: '',
phone: '',
userCardId: '',
result: '',
office: '',
workName: '',
workPhone: '',
});
const showPicker = ref(false);
const columns = [
{text: '教师1', value: 'Hangzhou'},
{text: '教师2', value: 'Ningbo'},
{text: '教师2', value: 'Wenzhou'},
{text: '教师3', value: 'Shaoxing'},
{text: '教师4', value: 'Huzhou'},
];
const onConfirm = ({selectedOptions}) => {
notLocalTeacher.result = selectedOptions[0]?.text;
showPicker.value = false;
};
const onSubmit = (values: object) => {
console.log('submit', values);
localStorage.setItem("notLocalTeacher", JSON.stringify(notLocalTeacher))
router.push("/notLocalTeacherTwo")
};
//
// eslint-disable-next-line no-undef
onMounted(() => {
console.log("组件挂在了")
const notLocalTeacherStr = localStorage.getItem("notLocalTeacher")
if (notLocalTeacherStr == null) {
console.log("数据空")
} else {
const storedData = JSON.parse(notLocalTeacherStr);
Object.assign(notLocalTeacher, storedData)
console.log(notLocalTeacher)
}
})
</script>
<style scoped lang="scss">
.father {
height: 100vh;
background-color: #efefef;
}
.mar-auto15 {
margin: 15px 15px;
}
.van-field__label_rectangle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label1circle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label_rectangle:before {
content: "";
position: absolute;
top: 30%;
left: 5px;
display: inline-block;
height: 20px;
width: 5px;
background-color: #1989fa;
border-radius: 8px;
}
.van-field__label1circle:before {
content: "";
position: absolute;
top: 50%;
left: 5px;
display: inline-block;
height: 5px;
width: 5px;
background-color: #1989fa;
border-radius: 50%;
}
</style>

View File

@ -0,0 +1,274 @@
<template>
<div class="father">
<div class="vant-title-card">
<div class="title-tishi">
<span>温馨提示</span>
<p> 银行账户必须为本人账户!建议填报中国银行或中国建设银行借记卡账户信填报除借记
卡以外其他类型账户(:信用卡)会造成您的劳务费用无法成功发放</p>
</div>
<van-form @submit="onSubmit">
<van-cell-group inset>
<van-field
class="van-field__label1——circle"
label-width="400px"
label="劳务信息"
type="hidden"
/>
<van-field
v-model="notLocalTeacherTwo.userName"
name="userName"
label="姓名"
type="text"
placeholder="请输入姓名"
:rules="[{ required: true, message: '请输入学号' }]"
/>
<van-field
v-model="notLocalTeacherTwo.userCardId"
name="userCardId"
label="身份证号"
type="text"
placeholder="请输入身份证号"
:rules="[{ required: true, message: '请输入身份证号' }]"
/>
<van-field
v-model="notLocalTeacherTwo.phone"
name="phone"
label="手机号"
type="number"
placeholder="请输入手机号"
:rules="[{ required: true, message: '请输入手机号' }]"
/>
<van-field
v-model="notLocalTeacherTwo.pyCard"
name="pyCard"
label="银行卡号"
type="number"
placeholder="请输入银行卡号"
:rules="[{ required: true, message: '请输入银行卡号' }]"
/>
<van-field
v-model="notLocalTeacherTwo.bankAddress"
name="bankAddress"
label="开户所在地"
type="text"
placeholder="请输入开户所在地(北京,哈尔滨)"
:rules="[{ required: true, message: '请输入开户所在地' }]"
/>
<van-field
v-model="notLocalTeacherTwo.bankName"
name="bankName"
label="开户行"
type="text"
placeholder="请输入开户行名称"
:rules="[{ required: true, message: '请输入开户行名称' }]"
/>
</van-cell-group>
<div class="border-rad">
<van-field
class="van-field__label1——circle"
label-width="400px"
label="劳务信息"
type="hidden"
/>
<van-field name="carStatus" label-width="150px" label="车辆是否入校">
<template #input>
<van-radio-group v-model="notLocalTeacherTwo.carStatus" direction="horizontal">
<van-radio name="1"></van-radio>
<van-radio name="2"></van-radio>
</van-radio-group>
</template>
</van-field>
<van-field name="DormitoryStatus" label-width="150px" label="是否住宿">
<template #input>
<van-radio-group v-model="notLocalTeacherTwo.DormitoryStatus" direction="horizontal">
<van-radio name="1"></van-radio>
<van-radio name="2"></van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div style="margin: 16px;">
<van-button round class="van-button--primary" type="primary" @click="Previous">
上一步
</van-button>
<van-button round class="van-button--primary" type="primary" native-type="submit">
提交
</van-button>
</div>
</van-form>
</div>
</div>
</template>
<script setup lang="ts">
import {onMounted, reactive, ref} from 'vue';
import {useRouter} from "vue-router";
// const userName = ref('');
// const phone = ref('');
// const userCardId = ref('');
// const pyCard = ref('');
// const result = ref('');
// const checked = ref('1');
let notLocalTeacherTwo = reactive({
userName: '',
phone: '',
userCardId: '',
pyCard: '',
result: '',
carStatus:'1',
DormitoryStatus:'1',
bankAddress:'',
bankName:'',
});
const router = useRouter();
const onSubmit = (values: object) => {
console.log('submit', values);
router.push("/mainPage")
};
//
const showPicker = ref(false);
const columns = [
{text: '教师1', value: 'Hangzhou'},
{text: '教师2', value: 'Ningbo'},
{text: '教师2', value: 'Wenzhou'},
{text: '教师3', value: 'Shaoxing'},
{text: '教师4', value: 'Huzhou'},
];
const onConfirm = ({selectedOptions}) => {
notLocalTeacherTwo = selectedOptions[0]?.text;
showPicker.value = false;
};
onMounted(() => {
console.log("组件挂在了")
const notLocalTeacherStr = localStorage.getItem("notLocalTeacher")
if (notLocalTeacherStr == null) {
console.log("数据空")
} else {
const storedData = JSON.parse(notLocalTeacherStr);
Object.assign(notLocalTeacherTwo, storedData)
}
})
const Previous = () => {
router.push("/notLocalTeacher")
}
</script>
<style scoped lang="scss">
.father {
height: 100vh;
background-color: #efefef;
}
.mar-auto15 {
margin: 15px 15px;
}
.van-field__label_rectangle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label1circle {
position: relative;
font-size: 1rem; /* 调整为您所需的字体大小 */
}
.van-field__label_rectangle:before {
content: "";
position: absolute;
top: 30%;
left: 5px;
display: inline-block;
height: 20px;
width: 5px;
background-color: #1989fa;
border-radius: 8px;
}
.van-field__label1circle:before {
content: "";
position: absolute;
top: 50%;
left: 5px;
display: inline-block;
height: 5px;
width: 5px;
background-color: #1989fa;
border-radius: 50%;
}
.vant-title-card {
width: 90%;
height: 100vh;
margin: 0 auto;
border-radius: 8px;
//background-color: #42b983;
padding: 0;
}
.van-cell-group--inset {
margin: 0;
margin-bottom: 15px;
//border-top-right-radius: 0;
//border-top-left-radius: 0;
}
.van-cell-group--inset-bottom {
}
.title-tishi {
width: 100%;
//border-bottom-right-radius: 0;
//border-bottom-left-radius: 0;
background-color: #ffffff;
margin-bottom: 15px;
border-radius: 8px;
p {
color: red;
text-align: left;
margin: 5px 15px;
}
span {
position: relative;
font-weight: 600;
display: block;
text-align: left;
}
span:before {
content: "";
display: inline-block;
height: 8px;
width: 8px;
margin: 0 10px;
background-color: #1989fa;
border-radius: 50%;
}
}
.van-button--primary {
width: 35%;
margin-left: 7%;
}
.border-rad{
border-radius: 10px;
overflow: hidden;
}
</style>

View File

@ -1,5 +1,19 @@
import { createApp } from 'vue'
import {createApp} from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
import Vant from 'vant'
import 'vant/lib/index.css';
const app = createApp(App);
const pinia = createPinia()
app.use(Vant);
app.use(pinia)
app.use(router)
// Lazyload 指令需要单独进行注册
// app.use(vant.Lazyload);
createApp(App).use(router).mount('#app')
app.mount('#app')
// createApp(App).use(router).mount('#app')

View File

@ -1,20 +1,79 @@
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import HomeView from '../views/HomeView.vue'
import myIndex from '../views/myIndex.vue'
// 导入404组件
import NotFound from '../components/NotFound.vue';
const routes: Array<RouteRecordRaw> = [
{
path: '/',
name: 'home',
component: HomeView
name: 'myIndex',
component: myIndex
},
// {
// path: '/about',
// name: 'about',
// // route level code-splitting
// // this generates a separate chunk (about.[hash].js) for this route
// // which is lazy-loaded when the route is visited.
// component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
// },
{
path: '/about',
name: 'about',
path: '/localTeacher',
name: 'localTeacher',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
component: () => import(/* webpackChunkName: "about" */ '../components/localTeacher.vue')
}
,
{
path: '/localStudent',
name: 'localStudent',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../components/localStudent.vue')
}
,
{
path: '/notLocalTeacher',
name: 'notLocalTeacher',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../components/notLocalTeacher.vue')
},
{
path: '/notLocalTeacherTwo',
name: 'notLocalTeacherTwo',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../components/notLocalTeacherTwo.vue')
},
{
path: '/mainPage',
name: 'mainPage',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../components/mainPage.vue')
},
{
path: '/leaderShip',
name: 'leaderShip',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../components/leaderShip.vue')
},
// 在路由配置中添加通配符路由
{
path: '/:catchAll(.*)',
name: 'NotFound',
component: NotFound
}
]
const router = createRouter({

22
src/store/index.ts Normal file
View File

@ -0,0 +1,22 @@
import { defineStore } from 'pinia'
// 你可以任意命名 `defineStore()` 的返回值,但最好使用 store 的名字,同时以 `use` 开头且以 `Store` 结尾。
// (比如 `useUserStore``useCartStore``useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
export const useAlertsStore = defineStore('alerts', {
// 其他配置...
})
export const useCounterStore = defineStore('counter', {
state: () => ({ count: 0 }),
getters: {
double: (state) => state.count * 2,
},
actions: {
increment() {
this.count++
},
decrement() {
this.count--
}
},
})

View File

@ -1,5 +1,20 @@
<template>
<div class="about">
<h1>This is an about page</h1>
<van-button type="primary">主要按钮</van-button>
<van-cell-group inset>
<van-cell title="单元格" value="内容" />
<van-cell title="单元格" value="内容" label="描述信息" />
</van-cell-group>
</div>
</template>
<script lang="ts">
import {defineComponent} from "vue";
export default defineComponent({
})
</script>

86
src/views/myIndex.vue Normal file
View File

@ -0,0 +1,86 @@
<template>
<img class="img-first1" src="@/assets/img/first1.svg" alt="">
<div class="input-code">
<input type="number" v-model="inputCode">
<!-- <img src="@/assets/img/Rectangle 29.svg" alt="">-->
</div>
<div class="login-but">
<span>登录</span>
<img @click="login" src="@/assets/img/Rectangle%2032.svg" alt="">
</div>
</template>
<script setup lang="ts">
import {ref} from "vue";
import {useRouter} from "vue-router";
import {showNotify} from "vant";
const router = useRouter()
const inputCode = ref('12345678')
const login = () => {
if (inputCode.value.length!=8){
showNotify({ message: '请输入8位的身份码' });
return;
}
showNotify({ type: 'success', message: '登录成功' });
setTimeout(()=>{
router.push('/notLocalTeacher')
// router.push('/localStudent')
// router.push('/localTeacher')
},10)
}
</script>
<style scoped lang="scss">
.img-first1 {
width: 80%;
margin-top: 10px;
}
.input-code {
margin-top: 20px;
input{
width: 70%;
height: 60px;
margin: 0 auto;
border-radius: 15px;
background-color: #f6f6f6;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5) ;
border: none;
font-size:1.5rem;
font-weight: 60;
text-align: center;
}
}
.login-but {
position: relative;
width: 50%;
margin: 10px auto;
//border: 1px solid red;
height: 4rem;
img {
height: 4rem;
width: 100%;
}
span {
position: absolute;
left: 50%;
transform: translateX(-50%) translateY(-50%);
top: 50%;
//;
}
}
</style>