flat: init
16
.hbuilderx/launch.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
|
||||
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
|
||||
"version": "0.0",
|
||||
"configurations": [{
|
||||
"default" :
|
||||
{
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"mp-weixin" :
|
||||
{
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"type" : "uniCloud"
|
||||
}
|
||||
]
|
||||
}
|
26
App.vue
Normal file
@@ -0,0 +1,26 @@
|
||||
<script setup>
|
||||
import useUserStore from './stores/useUserStore';
|
||||
import { onLaunch, onShow, onHide } from '@dcloudio/uni-app';
|
||||
const userStore = useUserStore();
|
||||
onLaunch(() => {
|
||||
console.log('App Launch');
|
||||
let openId = uni.getStorageSync('openId') || ''; // 同步获取 缓存信息
|
||||
|
||||
if (openId) {
|
||||
console.log('有openid');
|
||||
} else {
|
||||
console.log('没有openid');
|
||||
}
|
||||
});
|
||||
onShow(() => {
|
||||
console.log('App Show');
|
||||
});
|
||||
onHide(() => {
|
||||
console.log('App Hide');
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*每个页面公共css */
|
||||
@import '@/common/common.css';
|
||||
</style>
|
309
common/common.css
Normal file
@@ -0,0 +1,309 @@
|
||||
/* 公共样式表 */
|
||||
page {
|
||||
height: 100%;
|
||||
min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||||
font-size: 28rpx;
|
||||
background-color: #f4f4f4;
|
||||
/* line-height: 1.8; */
|
||||
color: #333333;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.page-body {
|
||||
height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* 布局调整 */
|
||||
|
||||
|
||||
/* 控制hover */
|
||||
.opctiy_8 {
|
||||
opacity: 0.8 !important;
|
||||
}
|
||||
|
||||
.opctiy_7 {
|
||||
opacity: 0.7 !important;
|
||||
}
|
||||
|
||||
.opctiy_6 {
|
||||
opacity: 0.6 !important;
|
||||
}
|
||||
|
||||
.opctiy_5 {
|
||||
opacity: 0.5 !important;
|
||||
}
|
||||
|
||||
.opctiy_4 {
|
||||
opacity: 0.4 !important;
|
||||
}
|
||||
|
||||
.opctiy_3 {
|
||||
opacity: 0.3 !important;
|
||||
}
|
||||
|
||||
.opctiy_2 {
|
||||
opacity: 0.2 !important;
|
||||
}
|
||||
|
||||
.opctiy_1 {
|
||||
opacity: 0.1 !important;
|
||||
}
|
||||
|
||||
/* 控制文字大小 */
|
||||
.fs_10 {
|
||||
font-size: 20rpx !important;
|
||||
}
|
||||
|
||||
.fs_12 {
|
||||
font-size: 24rpx !important;
|
||||
}
|
||||
|
||||
.fs_14 {
|
||||
font-size: 28rpx !important;
|
||||
}
|
||||
|
||||
.fs_16 {
|
||||
font-size: 32rpx !important;
|
||||
}
|
||||
|
||||
.fs_18 {
|
||||
font-size: 36rpx !important;
|
||||
}
|
||||
|
||||
.fs_20 {
|
||||
font-size: 40rpx !important;
|
||||
}
|
||||
|
||||
.fs_22 {
|
||||
font-size: 44rpx !important;
|
||||
}
|
||||
|
||||
.fs_24 {
|
||||
font-size: 48rpx !important;
|
||||
}
|
||||
|
||||
.fs_26 {
|
||||
font-size: 52rpx !important;
|
||||
}
|
||||
|
||||
.fs_28 {
|
||||
font-size: 56rpx !important;
|
||||
}
|
||||
|
||||
.fs_30 {
|
||||
font-size: 60rpx !important;
|
||||
}
|
||||
|
||||
.fs_32 {
|
||||
font-size: 64rpx !important;
|
||||
}
|
||||
|
||||
/* 控制字体粗细 */
|
||||
.fw_blod {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* 控制字体颜色 */
|
||||
.color_D16B3F {
|
||||
color: #D16B3F !important;
|
||||
}
|
||||
|
||||
.color_C7331D {
|
||||
color: #C7331D !important;
|
||||
}
|
||||
|
||||
.color_666666 {
|
||||
color: #666666 !important;
|
||||
}
|
||||
|
||||
.color_F8A52F {
|
||||
color: #F8A52F !important;
|
||||
}
|
||||
|
||||
.color_999999 {
|
||||
color: #999999 !important;
|
||||
}
|
||||
|
||||
.color_C7331D {
|
||||
color: #C7331D !important;
|
||||
}
|
||||
|
||||
.color_333333 {
|
||||
color: #333333 !important;
|
||||
}
|
||||
|
||||
.color_FFFFFF {
|
||||
color: #FFFFFF !important;
|
||||
}
|
||||
|
||||
.color_E7612E {
|
||||
color: #E7612E !important;
|
||||
}
|
||||
|
||||
.color_EF4B37 {
|
||||
color: #EF4B37 !important;
|
||||
}
|
||||
|
||||
.color_5F5F5F {
|
||||
color: #5F5F5F !important;
|
||||
}
|
||||
|
||||
.color_FB7307 {
|
||||
color: #FB7307 !important;
|
||||
}
|
||||
|
||||
.color_4873D9 {
|
||||
color: #4873D9 !important;
|
||||
}
|
||||
|
||||
.color_4E8ADE {
|
||||
color: #4E8ADE !important;
|
||||
}
|
||||
|
||||
.color_D9D9D9 {
|
||||
color: #D9D9D9 !important;
|
||||
}
|
||||
|
||||
/* 控制左右距离 */
|
||||
.mar_le30 {
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
|
||||
.mar_le25 {
|
||||
margin-left: 50rpx;
|
||||
}
|
||||
|
||||
.mar_le20 {
|
||||
margin-left: 40rpx;
|
||||
}
|
||||
|
||||
.mar_le15 {
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
|
||||
.mar_le10 {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
|
||||
.mar_le5 {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
.mar_ri5 {
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.mar_ri10 {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.mar_ri15 {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
|
||||
.mar_ri20 {
|
||||
margin-right: 40rpx;
|
||||
}
|
||||
|
||||
.mar_ri25 {
|
||||
margin-right: 50rpx;
|
||||
}
|
||||
|
||||
.mar_top5 {
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
|
||||
.mar_top10 {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.mar_top15 {
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.mar_top20 {
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
|
||||
.mar_top25 {
|
||||
margin-top: 50rpx;
|
||||
}
|
||||
|
||||
/* 控制字体粗细 */
|
||||
.fw_blod {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
/* 控制背景色 */
|
||||
.bg_e8 {
|
||||
background-color: #e8e8e8 !important;
|
||||
}
|
||||
|
||||
/* 控制背景色 */
|
||||
.bg_cc {
|
||||
background-color: #CCCCCC !important;
|
||||
}
|
||||
|
||||
/* 控制背景色 */
|
||||
.bg_ff {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 弹性布局 */
|
||||
.fl_box {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.fl_deri {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.fl_row {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.fl_justmiddle {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.fl_juststart {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.fl_justbet {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.fl_justround {
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.fl_justend {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.fl_almiddle {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.fl_alstart {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.fl_alend {
|
||||
align-items: flex-end;
|
||||
}
|
76
common/globalFunction.js
Normal file
@@ -0,0 +1,76 @@
|
||||
import useUserStore from "../stores/useUserStore";
|
||||
|
||||
const msg = (title, duration = 1500, mask = false, icon = 'none', image) => {
|
||||
if (Boolean(title) === false) {
|
||||
return;
|
||||
}
|
||||
uni.showToast({
|
||||
title,
|
||||
duration,
|
||||
mask,
|
||||
icon,
|
||||
image
|
||||
});
|
||||
}
|
||||
|
||||
const prePage = () => {
|
||||
let pages = getCurrentPages();
|
||||
let prePage = pages[pages.length - 2];
|
||||
return prePage.$vm;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const navTo = function(url, needLogin) {
|
||||
if (needLogin && useUserStore().hasLogin) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/login/login'
|
||||
});
|
||||
return
|
||||
}
|
||||
uni.navigateTo({
|
||||
url
|
||||
});
|
||||
}
|
||||
|
||||
function getdeviceInfo() {
|
||||
const globalData = {
|
||||
statusBarHeight: 0, // 状态导航栏高度
|
||||
topHeight: 0, // 距离顶部高度
|
||||
navHeight: 0, // 总体高度
|
||||
windowHeight: 0, // 可使用窗口高度
|
||||
tabBarHight: 0, //底部导航栏高度
|
||||
};
|
||||
let systemInfo = uni.getSystemInfoSync()
|
||||
globalData.windowHeight = systemInfo.screenHeight
|
||||
// 底部导航栏
|
||||
globalData.tabBarHight = systemInfo.screenHeight - systemInfo.safeArea.bottom
|
||||
// 状态栏高度
|
||||
globalData.statusBarHeight = systemInfo.statusBarHeight
|
||||
// #ifdef MP-MP-WEIXIN
|
||||
let menuButtonInfo = uni.getMenuButtonBoundingClientRect()
|
||||
// 胶囊距离顶部高度
|
||||
globalData.topHeight = menuButtonInfo.top
|
||||
// 胶囊高度
|
||||
globalData.navHeight = menuButtonInfo.height
|
||||
// #endif
|
||||
return {
|
||||
...globalData
|
||||
}
|
||||
}
|
||||
|
||||
function sleep(time) {
|
||||
return new Promise((resolve) => setTimeout(resolve, time))
|
||||
}
|
||||
|
||||
|
||||
export default {
|
||||
'$api': {
|
||||
msg,
|
||||
prePage,
|
||||
sleep
|
||||
},
|
||||
navTo,
|
||||
getdeviceInfo
|
||||
}
|
24
config.js
Normal file
@@ -0,0 +1,24 @@
|
||||
export default {
|
||||
baseUrl: '', // 测试
|
||||
// 应用信息
|
||||
appInfo: {
|
||||
// 应用名称
|
||||
name: "青岛市就业服务",
|
||||
// 应用版本
|
||||
version: "1.0.0",
|
||||
// 应用logo
|
||||
logo: "",
|
||||
// 官方网站
|
||||
site_url: "",
|
||||
// 政策协议
|
||||
agreements: [{
|
||||
title: "隐私政策",
|
||||
url: ""
|
||||
},
|
||||
{
|
||||
title: "用户服务协议",
|
||||
url: ""
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
20
index.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<script>
|
||||
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||
CSS.supports('top: constant(a)'))
|
||||
document.write(
|
||||
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||
</script>
|
||||
<title></title>
|
||||
<!--preload-links-->
|
||||
<!--app-context-->
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"><!--app-html--></div>
|
||||
<script type="module" src="/main.js"></script>
|
||||
</body>
|
||||
</html>
|
18
main.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import App from './App'
|
||||
import * as Pinia from 'pinia'
|
||||
import globalFunction from './common/globalFunction'
|
||||
import request from './utils/request'
|
||||
import {
|
||||
createSSRApp
|
||||
} from 'vue'
|
||||
|
||||
export function createApp() {
|
||||
const app = createSSRApp(App)
|
||||
app.use(Pinia.createPinia());
|
||||
app.provide('globalFunction', globalFunction);
|
||||
app.provide('deviceInfo', globalFunction.getdeviceInfo());
|
||||
return {
|
||||
app,
|
||||
Pinia
|
||||
}
|
||||
}
|
81
manifest.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"name": "qingdao-employment-service",
|
||||
"appid": "__UNI__C939371",
|
||||
"description": "",
|
||||
"versionName": "1.0.0",
|
||||
"versionCode": "100",
|
||||
"transformPx": false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus": {
|
||||
"usingComponents": true,
|
||||
"nvueStyleCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
"splashscreen": {
|
||||
"alwaysShowBeforeRender": true,
|
||||
"waiting": true,
|
||||
"autoclose": true,
|
||||
"delay": 0
|
||||
},
|
||||
/* 模块配置 */
|
||||
"modules": {},
|
||||
/* 应用发布信息 */
|
||||
"distribute": {
|
||||
/* android打包配置 */
|
||||
"android": {
|
||||
"permissions": [
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
/* ios打包配置 */
|
||||
"ios": {},
|
||||
/* SDK配置 */
|
||||
"sdkConfigs": {}
|
||||
}
|
||||
},
|
||||
/* 快应用特有相关 */
|
||||
"quickapp": {},
|
||||
/* 小程序特有相关 */
|
||||
"mp-weixin": {
|
||||
"appid": "",
|
||||
"setting": {
|
||||
"urlCheck": false,
|
||||
"es6": true,
|
||||
"postcss": true,
|
||||
"minified": true
|
||||
},
|
||||
"usingComponents": true,
|
||||
"permission": {
|
||||
"scope.userLocation": {
|
||||
"desc": "用于用户选择地图查看位置"
|
||||
}
|
||||
}
|
||||
},
|
||||
"mp-alipay": {
|
||||
"usingComponents": true
|
||||
},
|
||||
"mp-baidu": {
|
||||
"usingComponents": true
|
||||
},
|
||||
"mp-toutiao": {
|
||||
"usingComponents": true
|
||||
},
|
||||
"uniStatistics": {
|
||||
"enable": false
|
||||
},
|
||||
"vueVersion": "3",
|
||||
"locale": "zh-Hans"
|
||||
}
|
73
pages.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "uni-app"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/mine",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/msglog/msglog",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/careerfair/careerfair",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/login",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tabBar": {
|
||||
"color": "#7A7E83",
|
||||
"selectedColor": "#3cc51f",
|
||||
"borderStyle": "black",
|
||||
"backgroundColor": "#ffffff",
|
||||
"list": [{
|
||||
"pagePath": "pages/index/index",
|
||||
"iconPath": "static/tabbar/post.png",
|
||||
"selectedIconPath": "static/tabbar/posted.png",
|
||||
"text": "职位"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/careerfair/careerfair",
|
||||
"iconPath": "static/tabbar/calendar.png",
|
||||
"selectedIconPath": "static/tabbar/calendared.png",
|
||||
"text": "招聘会"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/msglog/msglog",
|
||||
"iconPath": "static/tabbar/chat4.png",
|
||||
"selectedIconPath": "static/tabbar/chat4.png",
|
||||
"text": "消息"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/mine/mine",
|
||||
"iconPath": "static/tabbar/mine.png",
|
||||
"selectedIconPath": "static/tabbar/mine.png",
|
||||
"text": "我的"
|
||||
}
|
||||
]
|
||||
},
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "uni-app",
|
||||
"navigationBarBackgroundColor": "#F8F8F8",
|
||||
"backgroundColor": "#F8F8F8"
|
||||
},
|
||||
"uniIdRouter": {}
|
||||
}
|
22
pages/careerfair/careerfair.vue
Normal file
@@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
35
pages/index/index.vue
Normal file
@@ -0,0 +1,35 @@
|
||||
<template>
|
||||
<view class="content"></view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, inject, watch } from 'vue';
|
||||
import { onLoad, onShow } from '@dcloudio/uni-app';
|
||||
import useUserStore from '../../stores/useUserStore';
|
||||
const { $api, navTo } = inject('globalFunction');
|
||||
const userStore = useUserStore();
|
||||
const state = reactive({
|
||||
title: '123123123房贷首付打的手机家里好玩的很浓厚第卡后sdhiwohdijasnbdhoui1很努力',
|
||||
});
|
||||
onShow(() => {
|
||||
console.log('onShow');
|
||||
});
|
||||
onLoad(() => {
|
||||
console.log('onLoad');
|
||||
$api.sleep(2000).then(() => {
|
||||
navTo('/pages/login/login');
|
||||
});
|
||||
});
|
||||
|
||||
watch(
|
||||
() => state.title,
|
||||
(newValue, oldValue) => {},
|
||||
{ deep: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.logo
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
</style>
|
71
pages/login/components/tabcontrol.vue
Normal file
@@ -0,0 +1,71 @@
|
||||
<template>
|
||||
<view class="tab-container">
|
||||
<view class="uni-margin-wrap">
|
||||
<swiper
|
||||
class="swiper"
|
||||
:current="current"
|
||||
:circular="false"
|
||||
:indicator-dots="false"
|
||||
:autoplay="false"
|
||||
:duration="500"
|
||||
>
|
||||
<swiper-item @touchmove.stop="false">
|
||||
<slot name="tab0"></slot>
|
||||
</swiper-item>
|
||||
<swiper-item @touchmove.stop="false">
|
||||
<slot name="tab1"></slot>
|
||||
</swiper-item>
|
||||
<swiper-item @touchmove.stop="false">
|
||||
<slot name="tab2"></slot>
|
||||
</swiper-item>
|
||||
<swiper-item @touchmove.stop="false">
|
||||
<slot name="tab3"></slot>
|
||||
</swiper-item>
|
||||
<swiper-item @touchmove.stop="false">
|
||||
<slot name="tab4"></slot>
|
||||
</swiper-item>
|
||||
<swiper-item @touchmove.stop="false">
|
||||
<slot name="tab5"></slot>
|
||||
</swiper-item>
|
||||
<swiper-item @touchmove.stop="false">
|
||||
<slot name="tab6"></slot>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'tab',
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
current: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
.tab-container
|
||||
width: 100%
|
||||
height: 100%
|
||||
display: flex
|
||||
align-items: center
|
||||
justify-content: center
|
||||
flex-direction: row
|
||||
.uni-margin-wrap
|
||||
width: 100%
|
||||
height: 100%
|
||||
.swiper
|
||||
width: 100%
|
||||
height: 100%
|
||||
.swiper-item
|
||||
display: block;
|
||||
width: 100%
|
||||
height: 100%
|
||||
</style>
|
316
pages/login/login.vue
Normal file
@@ -0,0 +1,316 @@
|
||||
<template>
|
||||
<view class="container">
|
||||
<view :style="{ height: statusBarHeight + 'px' }"></view>
|
||||
<tabcontrolVue :current="tabCurrent">
|
||||
<!-- tab0 -->
|
||||
<template v-slot:tab0>
|
||||
<view class="login-content">
|
||||
<image class="logo" src="../../static/logo.png"></image>
|
||||
<view class="logo-title">就业</view>
|
||||
</view>
|
||||
<view class="btns">
|
||||
<button open-type="getUserInfo" @getuserinfo="getuserinfo" class="wxlogin">微信登录</button>
|
||||
<view class="wxaddress">青岛市公共就业和人才服务中心</view>
|
||||
</view>
|
||||
</template>
|
||||
<!-- tab1 -->
|
||||
<template v-slot:tab1>
|
||||
<view class="tabtwo">
|
||||
<view class="tabtwo-top">
|
||||
<view class="color_FFFFFF fs_30">选择您的性别1/6</view>
|
||||
<view class="color_D9D9D9">个人信息仅用于推送优质内容</view>
|
||||
</view>
|
||||
<view class="fl_box fl_justmiddle">
|
||||
<view class="tabtwo-sex">
|
||||
<image class="sex-img" src="../../static/icon/woman.png"></image>
|
||||
<view class="mar_top5">女</view>
|
||||
<view class="dot"></view>
|
||||
</view>
|
||||
<view class="tabtwo-sex">
|
||||
<image class="sex-img" src="../../static/icon/man.png"></image>
|
||||
<view class="mar_top5">男</view>
|
||||
<view class="dot doted"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="nextstep" @tap="nextStep">下一步</view>
|
||||
</view>
|
||||
</template>
|
||||
<!-- tab2 -->
|
||||
<template v-slot:tab2>
|
||||
<view class="tabtwo">
|
||||
<view class="tabtwo-top">
|
||||
<view class="color_FFFFFF fs_30">选择您的年龄断段2/6</view>
|
||||
<view class="color_D9D9D9">个人信息仅用于推送优质内容</view>
|
||||
</view>
|
||||
<view class="fl_box fl_deri fl_almiddle">
|
||||
<view class="agebtn agebtned">30岁以下</view>
|
||||
<view class="agebtn">31-40岁</view>
|
||||
<view class="agebtn">41-50岁</view>
|
||||
<view class="agebtn">51岁以上</view>
|
||||
</view>
|
||||
<view class="fl_box fl_justmiddle"></view>
|
||||
<view class="nextstep" @tap="nextStep">下一步</view>
|
||||
</view>
|
||||
</template>
|
||||
<!-- tab3 -->
|
||||
<template v-slot:tab3>
|
||||
<view class="tabtwo">
|
||||
<view class="tabtwo-top">
|
||||
<view class="color_FFFFFF fs_30">选择您的学历3/6</view>
|
||||
<view class="color_D9D9D9">个人信息仅用于推送优质内容</view>
|
||||
</view>
|
||||
<view class="eduction-content">
|
||||
<view class="eductionbtn eductionbtned">初中及以下</view>
|
||||
<view class="eductionbtn">中专/中技</view>
|
||||
<view class="eductionbtn">高中</view>
|
||||
<view class="eductionbtn">大专</view>
|
||||
<view class="eductionbtn">本科</view>
|
||||
<view class="eductionbtn">硕士</view>
|
||||
<view class="eductionbtn">博士</view>
|
||||
<view class="eductionbtn">MBA/EMBA</view>
|
||||
<view class="eductionbtn">留学-学士</view>
|
||||
<view class="eductionbtn">留学-硕士</view>
|
||||
<view class="eductionbtn">留学-博士</view>
|
||||
</view>
|
||||
<view class="fl_box fl_justmiddle"></view>
|
||||
<view class="nextstep" @tap="nextStep">下一步</view>
|
||||
</view>
|
||||
</template>
|
||||
<!-- tab4 -->
|
||||
<template v-slot:tab4>
|
||||
<view class="tabtwo">
|
||||
<view class="tabtwo-top">
|
||||
<view class="color_FFFFFF fs_30">您期望的薪资范围4/6</view>
|
||||
<view class="color_D9D9D9">个人信息仅用于推送优质内容</view>
|
||||
</view>
|
||||
<view class="salary">
|
||||
<scroll-view class="salary-content" :show-scrollbar="false" :scroll-y="true">
|
||||
<view class="salary-content-item">不限</view>
|
||||
<view class="salary-content-item">2k</view>
|
||||
<view class="salary-content-item">5k</view>
|
||||
<view class="salary-content-item">10k</view>
|
||||
<view class="salary-content-item">15k</view>
|
||||
</scroll-view>
|
||||
<view class="center-text">至</view>
|
||||
<scroll-view class="salary-content" :show-scrollbar="false" :scroll-y="true">
|
||||
<view class="salary-content-item">不限</view>
|
||||
<view class="salary-content-item">2k</view>
|
||||
<view class="salary-content-item">5k</view>
|
||||
<view class="salary-content-item">10k</view>
|
||||
<view class="salary-content-item">15k</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="fl_box fl_justmiddle"></view>
|
||||
<view class="nextstep" @tap="nextStep">下一步</view>
|
||||
</view>
|
||||
</template>
|
||||
<!-- tab5 -->
|
||||
<template v-slot:tab5>
|
||||
<view class="tabtwo">
|
||||
<view class="tabtwo-top">
|
||||
<view class="color_FFFFFF fs_30">您期望的求职区域5/6</view>
|
||||
<view class="color_D9D9D9">个人信息仅用于推送优质内容</view>
|
||||
</view>
|
||||
<view class="fl_box fl_justmiddle"></view>
|
||||
<view class="nextstep" @tap="nextStep">下一步</view>
|
||||
</view>
|
||||
</template>
|
||||
<!-- tab6 -->
|
||||
<template v-slot:tab6>
|
||||
<view class="tabtwo">
|
||||
<view class="tabtwo-top">
|
||||
<view class="color_FFFFFF fs_30">您的期望岗位6/6</view>
|
||||
<view class="color_D9D9D9">个人信息仅用于推送优质内容</view>
|
||||
</view>
|
||||
<view class="fl_box fl_justmiddle"></view>
|
||||
<!-- <view class="nextstep" @tap="complate">完成</view> -->
|
||||
<navigator url="/pages/index/index" open-type="reLaunch" hover-class="other-navigator-hover">
|
||||
<button class="nextstep" @tap="complate">完成</button>
|
||||
</navigator>
|
||||
</view>
|
||||
</template>
|
||||
</tabcontrolVue>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import tabcontrolVue from './components/tabcontrol.vue';
|
||||
import { reactive, inject, watch, ref } from 'vue';
|
||||
const { statusBarHeight } = inject('deviceInfo');
|
||||
const { $api, navTo } = inject('globalFunction');
|
||||
const tabCurrent = ref(4);
|
||||
const state = reactive({
|
||||
sex: 1,
|
||||
});
|
||||
|
||||
setTimeout(() => {
|
||||
console.log('gg');
|
||||
}, 4000);
|
||||
const getuserinfo = (e) => {
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
function nextStep() {
|
||||
tabCurrent.value += 1;
|
||||
}
|
||||
function handleScroll(event) {
|
||||
console.log('滚动条滚动', event.detail.scrollTop);
|
||||
console.log(Math.round(event.detail.scrollTop / 75));
|
||||
// this.activeIndex = Math.round(event.detail.scrollTop / 75);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
.container
|
||||
width: 100%;
|
||||
height: 100%
|
||||
background: linear-gradient(#4778EC, #002979);
|
||||
position: relative;
|
||||
|
||||
.login-content
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 40%;
|
||||
transform: translate(-50%, -50%);
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
flex-wrap: nowrap;
|
||||
.logo
|
||||
width: 266rpx;
|
||||
height: 182rpx;
|
||||
.logo-title
|
||||
font-size: 88rpx;
|
||||
color: #FFFFFF;
|
||||
width: 180rpx;
|
||||
.btns
|
||||
position: absolute;
|
||||
top: 70%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0)
|
||||
.wxlogin
|
||||
width: 562rpx;
|
||||
height: 140rpx;
|
||||
border-radius: 70rpx;
|
||||
background-color: #13C57C;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
line-height: 140rpx;
|
||||
font-size: 70rpx;
|
||||
.wxaddress
|
||||
color: #BBBBBB;
|
||||
margin-top: 70rpx;
|
||||
text-align: center;
|
||||
// 2
|
||||
.tabtwo
|
||||
padding: 40rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.tabtwo-top
|
||||
margin: 222rpx 0 0 0;
|
||||
width: 100%;
|
||||
.tabtwo-sex
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #FFFFFF;
|
||||
font-size: 40rpx;
|
||||
margin: 200rpx 60rpx 0 60rpx;
|
||||
.sex-img
|
||||
width: 184rpx;
|
||||
height: 184rpx;
|
||||
.dot
|
||||
width: 68rpx;
|
||||
height: 68rpx;
|
||||
border-radius: 50%;
|
||||
background: #d1d1d6;
|
||||
position: relative;
|
||||
.dot:before
|
||||
content: '';
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%;
|
||||
background: #1e4baa;
|
||||
.doted
|
||||
background: #13C57C;
|
||||
.doted:after{
|
||||
content: '';
|
||||
width: 34rpx;
|
||||
height: 34rpx;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%
|
||||
background: #13C57C;
|
||||
}
|
||||
.agebtn
|
||||
width: 630rpx;
|
||||
height: 108rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #d9d9d9;
|
||||
text-align: center;
|
||||
line-height: 108rpx;
|
||||
font-size: 40rpx;
|
||||
margin-top: 50rpx;
|
||||
color: #606060;
|
||||
.agebtned
|
||||
background: #13C57C;
|
||||
color: #FFFFFF;
|
||||
.nextstep
|
||||
position: absolute;
|
||||
top: 80%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0)
|
||||
width: 630rpx;
|
||||
height: 98rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #13C57C;
|
||||
text-align: center;
|
||||
line-height: 98rpx;
|
||||
font-size: 36rpx;
|
||||
color: #FFFFFF;
|
||||
.eduction-content
|
||||
width: fit-content;
|
||||
display: grid;
|
||||
grid-template-columns: 300rpx 300rpx;
|
||||
grid-gap: 20rpx;
|
||||
margin-top: 50rpx;
|
||||
.eductionbtn
|
||||
width: 300rpx;
|
||||
height: 108rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #d9d9d9;
|
||||
text-align: center;
|
||||
line-height: 108rpx;
|
||||
font-size: 36rpx;
|
||||
color: #606060;
|
||||
.eductionbtned
|
||||
background: #13C57C;
|
||||
color: #FFFFFF;
|
||||
.salary
|
||||
width: fit-content;
|
||||
display: grid;
|
||||
grid-template-columns: 300rpx auto 300rpx;
|
||||
// grid-gap: 20rpx;
|
||||
margin-top: 50rpx;
|
||||
.center-text
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
line-height: 400rpx;
|
||||
.salary-content
|
||||
width: 300rpx;
|
||||
height: 380rpx;
|
||||
.salary-content-item
|
||||
height: 104rpx;
|
||||
line-height: 104rpx;
|
||||
margin: 20rpx 10rpx 20rpx 10rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #d9d9d9;
|
||||
text-align: center;
|
||||
</style>
|
19
pages/mine/mine.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
19
pages/msglog/msglog.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
|
||||
</style>
|
BIN
static/icon/man.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
static/icon/woman.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
static/logo.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
static/logo2.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
static/tabbar/calendar.png
Normal file
After Width: | Height: | Size: 412 B |
BIN
static/tabbar/calendared.png
Normal file
After Width: | Height: | Size: 341 B |
BIN
static/tabbar/chat4.png
Normal file
After Width: | Height: | Size: 662 B |
BIN
static/tabbar/mine.png
Normal file
After Width: | Height: | Size: 677 B |
BIN
static/tabbar/post.png
Normal file
After Width: | Height: | Size: 509 B |
BIN
static/tabbar/posted.png
Normal file
After Width: | Height: | Size: 456 B |
41
stores/useUserStore.js
Normal file
@@ -0,0 +1,41 @@
|
||||
import {
|
||||
defineStore
|
||||
} from 'pinia';
|
||||
import {
|
||||
ref
|
||||
} from 'vue'
|
||||
|
||||
const useUserStore = defineStore("user", () => {
|
||||
// 定义状态
|
||||
const hasLogin = ref(false)
|
||||
const openId = ref('')
|
||||
const userInfo = ref({});
|
||||
const token = ref('测试token')
|
||||
|
||||
const login = (value) => {
|
||||
hasLogin.value = true;
|
||||
userInfo.value = value;
|
||||
openId.value = value.wxOpenId;
|
||||
token.value = value.token
|
||||
uni.setStorage({
|
||||
key: 'token',
|
||||
data: value.token
|
||||
});
|
||||
}
|
||||
|
||||
const logOut = () => {
|
||||
hasLogin = false;
|
||||
}
|
||||
|
||||
// 导入
|
||||
return {
|
||||
hasLogin,
|
||||
openId,
|
||||
userInfo,
|
||||
token,
|
||||
login,
|
||||
logOut
|
||||
}
|
||||
})
|
||||
|
||||
export default useUserStore;
|
13
uni.promisify.adaptor.js
Normal file
@@ -0,0 +1,13 @@
|
||||
uni.addInterceptor({
|
||||
returnValue (res) {
|
||||
if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
|
||||
return res;
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
res.then((res) => {
|
||||
if (!res) return resolve(res)
|
||||
return res[0] ? reject(res[0]) : resolve(res[1])
|
||||
});
|
||||
});
|
||||
},
|
||||
});
|
76
uni.scss
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
|
||||
/* 颜色变量 */
|
||||
|
||||
/* 行为相关颜色 */
|
||||
$uni-color-primary: #007aff;
|
||||
$uni-color-success: #4cd964;
|
||||
$uni-color-warning: #f0ad4e;
|
||||
$uni-color-error: #dd524d;
|
||||
|
||||
/* 文字基本颜色 */
|
||||
$uni-text-color: #333; //基本色
|
||||
$uni-text-color-inverse: #fff; //反色
|
||||
$uni-text-color-grey: #999; //辅助灰色,如加载更多的提示信息
|
||||
$uni-text-color-placeholder: #808080;
|
||||
$uni-text-color-disable: #c0c0c0;
|
||||
|
||||
/* 背景颜色 */
|
||||
$uni-bg-color: #ffffff;
|
||||
$uni-bg-color-grey: #f8f8f8;
|
||||
$uni-bg-color-hover: #f1f1f1; //点击状态颜色
|
||||
$uni-bg-color-mask: rgba(0, 0, 0, 0.4); //遮罩颜色
|
||||
|
||||
/* 边框颜色 */
|
||||
$uni-border-color: #c8c7cc;
|
||||
|
||||
/* 尺寸变量 */
|
||||
|
||||
/* 文字尺寸 */
|
||||
$uni-font-size-sm: 12px;
|
||||
$uni-font-size-base: 14px;
|
||||
$uni-font-size-lg: 16px;
|
||||
|
||||
/* 图片尺寸 */
|
||||
$uni-img-size-sm: 20px;
|
||||
$uni-img-size-base: 26px;
|
||||
$uni-img-size-lg: 40px;
|
||||
|
||||
/* Border Radius */
|
||||
$uni-border-radius-sm: 2px;
|
||||
$uni-border-radius-base: 3px;
|
||||
$uni-border-radius-lg: 6px;
|
||||
$uni-border-radius-circle: 50%;
|
||||
|
||||
/* 水平间距 */
|
||||
$uni-spacing-row-sm: 5px;
|
||||
$uni-spacing-row-base: 10px;
|
||||
$uni-spacing-row-lg: 15px;
|
||||
|
||||
/* 垂直间距 */
|
||||
$uni-spacing-col-sm: 4px;
|
||||
$uni-spacing-col-base: 8px;
|
||||
$uni-spacing-col-lg: 12px;
|
||||
|
||||
/* 透明度 */
|
||||
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
|
||||
|
||||
/* 文章场景相关 */
|
||||
$uni-color-title: #2c405a; // 文章标题颜色
|
||||
$uni-font-size-title: 20px;
|
||||
$uni-color-subtitle: #555555; // 二级标题颜色
|
||||
$uni-font-size-subtitle: 26px;
|
||||
$uni-color-paragraph: #3f536e; // 文章段落颜色
|
||||
$uni-font-size-paragraph: 15px;
|
8
unpackage/dist/cache/.vite/deps/_metadata.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"hash": "6f4322a0",
|
||||
"configHash": "f1ef1766",
|
||||
"lockfileHash": "5d26acb0",
|
||||
"browserHash": "9757e8c9",
|
||||
"optimized": {},
|
||||
"chunks": {}
|
||||
}
|
3
unpackage/dist/cache/.vite/deps/package.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
47
unpackage/dist/dev/mp-weixin/app.js
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
||||
const common_vendor = require("./common/vendor.js");
|
||||
const stores_useUserStore = require("./stores/useUserStore.js");
|
||||
const common_globalFunction = require("./common/globalFunction.js");
|
||||
if (!Math) {
|
||||
"./pages/index/index.js";
|
||||
"./pages/mine/mine.js";
|
||||
"./pages/msglog/msglog.js";
|
||||
"./pages/careerfair/careerfair.js";
|
||||
"./pages/login/login.js";
|
||||
}
|
||||
const _sfc_main = {
|
||||
__name: "App",
|
||||
setup(__props) {
|
||||
stores_useUserStore.useUserStore();
|
||||
common_vendor.onLaunch(() => {
|
||||
console.log("App Launch");
|
||||
let openId = common_vendor.index.getStorageSync("openId") || "";
|
||||
if (openId) {
|
||||
console.log("有openid");
|
||||
} else {
|
||||
console.log("没有openid");
|
||||
}
|
||||
});
|
||||
common_vendor.onShow(() => {
|
||||
console.log("App Show");
|
||||
});
|
||||
common_vendor.onHide(() => {
|
||||
console.log("App Hide");
|
||||
});
|
||||
return () => {
|
||||
};
|
||||
}
|
||||
};
|
||||
function createApp() {
|
||||
const app = common_vendor.createSSRApp(_sfc_main);
|
||||
app.use(common_vendor.createPinia());
|
||||
app.provide("globalFunction", common_globalFunction.globalFunction);
|
||||
app.provide("deviceInfo", common_globalFunction.globalFunction.getdeviceInfo());
|
||||
return {
|
||||
app,
|
||||
Pinia: common_vendor.Pinia
|
||||
};
|
||||
}
|
||||
createApp().app.mount("#app");
|
||||
exports.createApp = createApp;
|
53
unpackage/dist/dev/mp-weixin/app.json
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"pages": [
|
||||
"pages/index/index",
|
||||
"pages/mine/mine",
|
||||
"pages/msglog/msglog",
|
||||
"pages/careerfair/careerfair",
|
||||
"pages/login/login"
|
||||
],
|
||||
"window": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "uni-app",
|
||||
"navigationBarBackgroundColor": "#F8F8F8",
|
||||
"backgroundColor": "#F8F8F8"
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#7A7E83",
|
||||
"selectedColor": "#3cc51f",
|
||||
"borderStyle": "black",
|
||||
"backgroundColor": "#ffffff",
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/index/index",
|
||||
"iconPath": "static/tabbar/post.png",
|
||||
"selectedIconPath": "static/tabbar/posted.png",
|
||||
"text": "职位"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/careerfair/careerfair",
|
||||
"iconPath": "static/tabbar/calendar.png",
|
||||
"selectedIconPath": "static/tabbar/calendared.png",
|
||||
"text": "招聘会"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/msglog/msglog",
|
||||
"iconPath": "static/tabbar/chat4.png",
|
||||
"selectedIconPath": "static/tabbar/chat4.png",
|
||||
"text": "消息"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/mine/mine",
|
||||
"iconPath": "static/tabbar/mine.png",
|
||||
"selectedIconPath": "static/tabbar/mine.png",
|
||||
"text": "我的"
|
||||
}
|
||||
]
|
||||
},
|
||||
"permission": {
|
||||
"scope.userLocation": {
|
||||
"desc": "用于用户选择地图查看位置"
|
||||
}
|
||||
},
|
||||
"usingComponents": {}
|
||||
}
|
238
unpackage/dist/dev/mp-weixin/app.wxss
vendored
Normal file
@@ -0,0 +1,238 @@
|
||||
|
||||
/*每个页面公共css */
|
||||
/* 公共样式表 */
|
||||
page {
|
||||
height: 100%;
|
||||
min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||||
font-size: 28rpx;
|
||||
background-color: #f4f4f4;
|
||||
/* line-height: 1.8; */
|
||||
color: #333333;
|
||||
overflow: hidden;
|
||||
}
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.page-body {
|
||||
height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||||
}
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
/* 布局调整 */
|
||||
/* 控制hover */
|
||||
.opctiy_8 {
|
||||
opacity: 0.8 !important;
|
||||
}
|
||||
.opctiy_7 {
|
||||
opacity: 0.7 !important;
|
||||
}
|
||||
.opctiy_6 {
|
||||
opacity: 0.6 !important;
|
||||
}
|
||||
.opctiy_5 {
|
||||
opacity: 0.5 !important;
|
||||
}
|
||||
.opctiy_4 {
|
||||
opacity: 0.4 !important;
|
||||
}
|
||||
.opctiy_3 {
|
||||
opacity: 0.3 !important;
|
||||
}
|
||||
.opctiy_2 {
|
||||
opacity: 0.2 !important;
|
||||
}
|
||||
.opctiy_1 {
|
||||
opacity: 0.1 !important;
|
||||
}
|
||||
/* 控制文字大小 */
|
||||
.fs_10 {
|
||||
font-size: 20rpx !important;
|
||||
}
|
||||
.fs_12 {
|
||||
font-size: 24rpx !important;
|
||||
}
|
||||
.fs_14 {
|
||||
font-size: 28rpx !important;
|
||||
}
|
||||
.fs_16 {
|
||||
font-size: 32rpx !important;
|
||||
}
|
||||
.fs_18 {
|
||||
font-size: 36rpx !important;
|
||||
}
|
||||
.fs_20 {
|
||||
font-size: 40rpx !important;
|
||||
}
|
||||
.fs_22 {
|
||||
font-size: 44rpx !important;
|
||||
}
|
||||
.fs_24 {
|
||||
font-size: 48rpx !important;
|
||||
}
|
||||
.fs_26 {
|
||||
font-size: 52rpx !important;
|
||||
}
|
||||
.fs_28 {
|
||||
font-size: 56rpx !important;
|
||||
}
|
||||
.fs_30 {
|
||||
font-size: 60rpx !important;
|
||||
}
|
||||
.fs_32 {
|
||||
font-size: 64rpx !important;
|
||||
}
|
||||
/* 控制字体粗细 */
|
||||
.fw_blod {
|
||||
font-weight: bold;
|
||||
}
|
||||
/* 控制字体颜色 */
|
||||
.color_D16B3F {
|
||||
color: #D16B3F !important;
|
||||
}
|
||||
.color_C7331D {
|
||||
color: #C7331D !important;
|
||||
}
|
||||
.color_666666 {
|
||||
color: #666666 !important;
|
||||
}
|
||||
.color_F8A52F {
|
||||
color: #F8A52F !important;
|
||||
}
|
||||
.color_999999 {
|
||||
color: #999999 !important;
|
||||
}
|
||||
.color_C7331D {
|
||||
color: #C7331D !important;
|
||||
}
|
||||
.color_333333 {
|
||||
color: #333333 !important;
|
||||
}
|
||||
.color_FFFFFF {
|
||||
color: #FFFFFF !important;
|
||||
}
|
||||
.color_E7612E {
|
||||
color: #E7612E !important;
|
||||
}
|
||||
.color_EF4B37 {
|
||||
color: #EF4B37 !important;
|
||||
}
|
||||
.color_5F5F5F {
|
||||
color: #5F5F5F !important;
|
||||
}
|
||||
.color_FB7307 {
|
||||
color: #FB7307 !important;
|
||||
}
|
||||
.color_4873D9 {
|
||||
color: #4873D9 !important;
|
||||
}
|
||||
.color_4E8ADE {
|
||||
color: #4E8ADE !important;
|
||||
}
|
||||
.color_D9D9D9 {
|
||||
color: #D9D9D9 !important;
|
||||
}
|
||||
/* 控制左右距离 */
|
||||
.mar_le30 {
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.mar_le25 {
|
||||
margin-left: 50rpx;
|
||||
}
|
||||
.mar_le20 {
|
||||
margin-left: 40rpx;
|
||||
}
|
||||
.mar_le15 {
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
.mar_le10 {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.mar_le5 {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
.mar_ri5 {
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.mar_ri10 {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.mar_ri15 {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
.mar_ri20 {
|
||||
margin-right: 40rpx;
|
||||
}
|
||||
.mar_ri25 {
|
||||
margin-right: 50rpx;
|
||||
}
|
||||
.mar_top5 {
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.mar_top10 {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.mar_top15 {
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
.mar_top20 {
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
.mar_top25 {
|
||||
margin-top: 50rpx;
|
||||
}
|
||||
/* 控制字体粗细 */
|
||||
.fw_blod {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
/* 控制背景色 */
|
||||
.bg_e8 {
|
||||
background-color: #e8e8e8 !important;
|
||||
}
|
||||
/* 控制背景色 */
|
||||
.bg_cc {
|
||||
background-color: #CCCCCC !important;
|
||||
}
|
||||
/* 控制背景色 */
|
||||
.bg_ff {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
/* 弹性布局 */
|
||||
.fl_box {
|
||||
display: flex;
|
||||
}
|
||||
.fl_deri {
|
||||
flex-direction: column;
|
||||
}
|
||||
.fl_row {
|
||||
flex-direction: row;
|
||||
}
|
||||
.fl_justmiddle {
|
||||
justify-content: center;
|
||||
}
|
||||
.fl_juststart {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.fl_justbet {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.fl_justround {
|
||||
justify-content: space-around;
|
||||
}
|
||||
.fl_justend {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.fl_almiddle {
|
||||
align-items: center;
|
||||
}
|
||||
.fl_alstart {
|
||||
align-items: flex-start;
|
||||
}
|
||||
.fl_alend {
|
||||
align-items: flex-end;
|
||||
}
|
||||
page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}
|
7
unpackage/dist/dev/mp-weixin/common/assets.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
const _imports_0 = "/static/logo.png";
|
||||
const _imports_1 = "/static/icon/woman.png";
|
||||
const _imports_2 = "/static/icon/man.png";
|
||||
exports._imports_0 = _imports_0;
|
||||
exports._imports_1 = _imports_1;
|
||||
exports._imports_2 = _imports_2;
|
61
unpackage/dist/dev/mp-weixin/common/globalFunction.js
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
"use strict";
|
||||
const common_vendor = require("./vendor.js");
|
||||
const stores_useUserStore = require("../stores/useUserStore.js");
|
||||
const msg = (title, duration = 1500, mask = false, icon = "none", image) => {
|
||||
if (Boolean(title) === false) {
|
||||
return;
|
||||
}
|
||||
common_vendor.index.showToast({
|
||||
title,
|
||||
duration,
|
||||
mask,
|
||||
icon,
|
||||
image
|
||||
});
|
||||
};
|
||||
const prePage = () => {
|
||||
let pages = getCurrentPages();
|
||||
let prePage2 = pages[pages.length - 2];
|
||||
return prePage2.$vm;
|
||||
};
|
||||
const navTo = function(url, needLogin) {
|
||||
if (needLogin && stores_useUserStore.useUserStore().hasLogin) {
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/login/login"
|
||||
});
|
||||
return;
|
||||
}
|
||||
common_vendor.index.navigateTo({
|
||||
url
|
||||
});
|
||||
};
|
||||
function getdeviceInfo() {
|
||||
const globalData = {
|
||||
statusBarHeight: 0,
|
||||
// 状态导航栏高度
|
||||
topHeight: 0,
|
||||
// 距离顶部高度
|
||||
navHeight: 0,
|
||||
// 总体高度
|
||||
windowHeight: 0,
|
||||
// 可使用窗口高度
|
||||
tabBarHight: 0
|
||||
//底部导航栏高度
|
||||
};
|
||||
let systemInfo = common_vendor.index.getSystemInfoSync();
|
||||
globalData.windowHeight = systemInfo.screenHeight;
|
||||
globalData.tabBarHight = systemInfo.screenHeight - systemInfo.safeArea.bottom;
|
||||
globalData.statusBarHeight = systemInfo.statusBarHeight;
|
||||
return {
|
||||
...globalData
|
||||
};
|
||||
}
|
||||
const globalFunction = {
|
||||
"$api": {
|
||||
msg,
|
||||
prePage
|
||||
},
|
||||
navTo,
|
||||
getdeviceInfo
|
||||
};
|
||||
exports.globalFunction = globalFunction;
|
8339
unpackage/dist/dev/mp-weixin/common/vendor.js
vendored
Normal file
29
unpackage/dist/dev/mp-weixin/components/tabcontrol.js
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
name: "tab",
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
current: {
|
||||
type: Number,
|
||||
default: 0
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {
|
||||
a: common_vendor.o(($event) => false),
|
||||
b: common_vendor.o(($event) => false),
|
||||
c: common_vendor.o(($event) => false),
|
||||
d: common_vendor.o(($event) => false),
|
||||
e: common_vendor.o(($event) => false),
|
||||
f: common_vendor.o(($event) => false),
|
||||
g: common_vendor.o(($event) => false),
|
||||
h: common_vendor.o(($event) => false),
|
||||
i: $props.current
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
wx.createComponent(Component);
|
4
unpackage/dist/dev/mp-weixin/components/tabcontrol.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/components/tabcontrol.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view class="tab-container"><view class="uni-margin-wrap"><swiper class="swiper" current="{{i}}" circular="{{false}}" indicator-dots="{{true}}" autoplay="{{false}}" interval="{{200}}" duration="{{2000}}"><swiper-item catchtouchmove="{{a}}"><slot name="tab0"></slot></swiper-item><swiper-item catchtouchmove="{{b}}"><slot name="tab1"></slot></swiper-item><swiper-item catchtouchmove="{{c}}"><slot name="tab2"></slot></swiper-item><swiper-item catchtouchmove="{{d}}"><slot name="tab3"></slot></swiper-item><swiper-item catchtouchmove="{{e}}"><slot name="tab4"></slot></swiper-item><swiper-item catchtouchmove="{{f}}"><slot name="tab5"></slot></swiper-item><swiper-item catchtouchmove="{{g}}"><slot name="tab6"></slot></swiper-item><swiper-item catchtouchmove="{{h}}"><slot name="tab7"></slot></swiper-item></swiper></view></view>
|
21
unpackage/dist/dev/mp-weixin/components/tabcontrol.wxss
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
.tab-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: row;
|
||||
}
|
||||
.uni-margin-wrap {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.swiper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.swiper-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/config.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";
|
13
unpackage/dist/dev/mp-weixin/pages/careerfair/careerfair.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {};
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
wx.createPage(MiniProgramPage);
|
4
unpackage/dist/dev/mp-weixin/pages/careerfair/careerfair.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "",
|
||||
"usingComponents": {}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/pages/careerfair/careerfair.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view></view>
|
0
unpackage/dist/dev/mp-weixin/pages/careerfair/careerfair.wxss
vendored
Normal file
31
unpackage/dist/dev/mp-weixin/pages/index/index.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const stores_useUserStore = require("../../stores/useUserStore.js");
|
||||
const _sfc_main = {
|
||||
__name: "index",
|
||||
setup(__props) {
|
||||
const { $api, navTo } = common_vendor.inject("globalFunction");
|
||||
stores_useUserStore.useUserStore();
|
||||
const state = common_vendor.reactive({
|
||||
title: "123123123房贷首付打的手机家里好玩的很浓厚第卡后sdhiwohdijasnbdhoui1很努力"
|
||||
});
|
||||
common_vendor.onShow(() => {
|
||||
console.log("onShow");
|
||||
});
|
||||
common_vendor.onLoad(() => {
|
||||
console.log("onLoad");
|
||||
navTo("/pages/login/login");
|
||||
});
|
||||
common_vendor.watch(
|
||||
() => state.title,
|
||||
(newValue, oldValue) => {
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
return (_ctx, _cache) => {
|
||||
return {};
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-1cf27b2a"]]);
|
||||
wx.createPage(MiniProgramPage);
|
4
unpackage/dist/dev/mp-weixin/pages/index/index.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "uni-app",
|
||||
"usingComponents": {}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/pages/index/index.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view class="content data-v-1cf27b2a"></view>
|
4
unpackage/dist/dev/mp-weixin/pages/index/index.wxss
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
.logo.data-v-1cf27b2a {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
29
unpackage/dist/dev/mp-weixin/pages/login/components/tabcontrol.js
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
name: "tab",
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
current: {
|
||||
type: Number,
|
||||
default: 0
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {
|
||||
a: common_vendor.o(($event) => false),
|
||||
b: common_vendor.o(($event) => false),
|
||||
c: common_vendor.o(($event) => false),
|
||||
d: common_vendor.o(($event) => false),
|
||||
e: common_vendor.o(($event) => false),
|
||||
f: common_vendor.o(($event) => false),
|
||||
g: common_vendor.o(($event) => false),
|
||||
h: common_vendor.o(($event) => false),
|
||||
i: $props.current
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
wx.createComponent(Component);
|
4
unpackage/dist/dev/mp-weixin/pages/login/components/tabcontrol.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/pages/login/components/tabcontrol.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view class="tab-container"><view class="uni-margin-wrap"><swiper class="swiper" current="{{i}}" circular="{{false}}" indicator-dots="{{false}}" autoplay="{{false}}" duration="{{500}}"><swiper-item catchtouchmove="{{a}}"><slot name="tab0"></slot></swiper-item><swiper-item catchtouchmove="{{b}}"><slot name="tab1"></slot></swiper-item><swiper-item catchtouchmove="{{c}}"><slot name="tab2"></slot></swiper-item><swiper-item catchtouchmove="{{d}}"><slot name="tab3"></slot></swiper-item><swiper-item catchtouchmove="{{e}}"><slot name="tab4"></slot></swiper-item><swiper-item catchtouchmove="{{f}}"><slot name="tab5"></slot></swiper-item><swiper-item catchtouchmove="{{g}}"><slot name="tab6"></slot></swiper-item><swiper-item catchtouchmove="{{h}}"><slot name="tab7"></slot></swiper-item></swiper></view></view>
|
21
unpackage/dist/dev/mp-weixin/pages/login/components/tabcontrol.wxss
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
.tab-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: row;
|
||||
}
|
||||
.uni-margin-wrap {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.swiper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.swiper-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
42
unpackage/dist/dev/mp-weixin/pages/login/login.js
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
if (!Math) {
|
||||
tabcontrolVue();
|
||||
}
|
||||
const tabcontrolVue = () => "./components/tabcontrol.js";
|
||||
const _sfc_main = {
|
||||
__name: "login",
|
||||
setup(__props) {
|
||||
const { statusBarHeight } = common_vendor.inject("deviceInfo");
|
||||
const tabCurrent = common_vendor.ref(1);
|
||||
common_vendor.reactive({
|
||||
sex: 1
|
||||
});
|
||||
setTimeout(() => {
|
||||
console.log("gg");
|
||||
}, 4e3);
|
||||
const getuserinfo = (e) => {
|
||||
console.log(e);
|
||||
};
|
||||
function nextStep() {
|
||||
tabCurrent.value += 1;
|
||||
}
|
||||
return (_ctx, _cache) => {
|
||||
return {
|
||||
a: common_vendor.unref(statusBarHeight) + "px",
|
||||
b: common_assets._imports_0,
|
||||
c: common_vendor.o(getuserinfo),
|
||||
d: common_assets._imports_1,
|
||||
e: common_assets._imports_2,
|
||||
f: common_vendor.o(nextStep),
|
||||
g: common_vendor.o(nextStep),
|
||||
h: common_vendor.o(nextStep),
|
||||
i: common_vendor.p({
|
||||
current: tabCurrent.value
|
||||
})
|
||||
};
|
||||
};
|
||||
}
|
||||
};
|
||||
wx.createPage(_sfc_main);
|
7
unpackage/dist/dev/mp-weixin/pages/login/login.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"navigationBarTitleText": "登录",
|
||||
"navigationStyle": "custom",
|
||||
"usingComponents": {
|
||||
"tabcontrol-vue": "./components/tabcontrol"
|
||||
}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/pages/login/login.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view class="container"><view style="{{'height:' + a}}"></view><tabcontrol-vue wx:if="{{i}}" u-s="{{['tab0','tab1','tab2','tab3']}}" u-i="665c1f0a-0" bind:__l="__l" u-p="{{i}}"><view slot="tab0"><view class="login-content"><image class="logo" src="{{b}}"></image><view class="logo-title">就业</view></view><view class="btns"><button open-type="getUserInfo" bindgetuserinfo="{{c}}" class="wxlogin">微信登录</button><view class="wxaddress">青岛市公共就业和人才服务中心</view></view></view><view class="tabtwo" slot="tab1"><view class="tabtwo-top"><view class="color_FFFFFF fs_30">选择您的性别1/6</view><view class="color_D9D9D9">个人信息仅用于推送优质内容</view></view><view class="fl_box fl_justmiddle"><view class="tabtwo-sex"><image class="sex-img" src="{{d}}"></image><view class="mar_top5">女</view><view class="dot"></view></view><view class="tabtwo-sex"><image class="sex-img" src="{{e}}"></image><view class="mar_top5">男</view><view class="dot doted"></view></view></view><view class="nextstep" bindtap="{{f}}">下一步</view></view><view class="tabtwo" slot="tab2"><view class="tabtwo-top"><view class="color_FFFFFF fs_30">选择您的年龄断段2/6</view><view class="color_D9D9D9">个人信息仅用于推送优质内容</view></view><view class="fl_box fl_deri"><view class="agebtn agebtned">30岁以下</view><view class="agebtn">31-40岁</view><view class="agebtn">41-50岁</view><view class="agebtn">51岁以上</view></view><view class="fl_box fl_justmiddle"></view><view class="nextstep" bindtap="{{g}}">下一步</view></view><view class="tabtwo" slot="tab3"><view class="tabtwo-top"><view class="color_FFFFFF fs_30">选择您的学历3/6</view><view class="color_D9D9D9">个人信息仅用于推送优质内容</view></view><view class="eduction-content"><view class="eductionbtn eductionbtned">30岁以下</view><view class="eductionbtn">31-40岁</view><view class="eductionbtn">41-50岁</view><view class="eductionbtn">51岁以上</view></view><view class="fl_box fl_justmiddle"></view><view class="nextstep" bindtap="{{h}}">下一步</view></view></tabcontrol-vue></view>
|
128
unpackage/dist/dev/mp-weixin/pages/login/login.wxss
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
.container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(#4778ec, #002979);
|
||||
position: relative;
|
||||
}
|
||||
.login-content {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 40%;
|
||||
transform: translate(-50%, -50%);
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.login-content .logo {
|
||||
width: 266rpx;
|
||||
height: 182rpx;
|
||||
}
|
||||
.login-content .logo-title {
|
||||
font-size: 88rpx;
|
||||
color: #fff;
|
||||
width: 180rpx;
|
||||
}
|
||||
.btns {
|
||||
position: absolute;
|
||||
top: 70%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
.btns .wxlogin {
|
||||
width: 562rpx;
|
||||
height: 140rpx;
|
||||
border-radius: 70rpx;
|
||||
background-color: #13c57c;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
line-height: 140rpx;
|
||||
font-size: 70rpx;
|
||||
}
|
||||
.btns .wxaddress {
|
||||
color: #bbb;
|
||||
margin-top: 70rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.tabtwo {
|
||||
padding: 40rpx;
|
||||
}
|
||||
.tabtwo-top {
|
||||
margin: 222rpx 0 0 0;
|
||||
}
|
||||
.tabtwo-sex {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
font-size: 40rpx;
|
||||
margin: 200rpx 60rpx 0 60rpx;
|
||||
}
|
||||
.tabtwo-sex .sex-img {
|
||||
width: 184rpx;
|
||||
height: 184rpx;
|
||||
}
|
||||
.dot {
|
||||
width: 68rpx;
|
||||
height: 68rpx;
|
||||
border-radius: 50%;
|
||||
background: #d1d1d6;
|
||||
position: relative;
|
||||
}
|
||||
.dot:before {
|
||||
content: '';
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%;
|
||||
background: #1e4baa;
|
||||
}
|
||||
.doted {
|
||||
background: #13c57c;
|
||||
}
|
||||
.doted:after {
|
||||
content: '';
|
||||
width: 34rpx;
|
||||
height: 34rpx;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%;
|
||||
background: #13c57c;
|
||||
}
|
||||
.agebtn {
|
||||
width: 630rpx;
|
||||
height: 108rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #d9d9d9;
|
||||
text-align: center;
|
||||
line-height: 108rpx;
|
||||
font-size: 40rpx;
|
||||
margin-top: 50rpx;
|
||||
color: #606060;
|
||||
}
|
||||
.agebtned {
|
||||
background: #13c57c;
|
||||
color: #fff;
|
||||
}
|
||||
.nextstep {
|
||||
position: absolute;
|
||||
top: 80%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0);
|
||||
width: 630rpx;
|
||||
height: 98rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #13c57c;
|
||||
text-align: center;
|
||||
line-height: 98rpx;
|
||||
font-size: 40rpx;
|
||||
color: #fff;
|
||||
}
|
||||
.eduction-content {
|
||||
display: grid;
|
||||
}
|
12
unpackage/dist/dev/mp-weixin/pages/mine/mine.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {};
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {};
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
wx.createPage(MiniProgramPage);
|
4
unpackage/dist/dev/mp-weixin/pages/mine/mine.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "",
|
||||
"usingComponents": {}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/pages/mine/mine.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view></view>
|
0
unpackage/dist/dev/mp-weixin/pages/mine/mine.wxss
vendored
Normal file
12
unpackage/dist/dev/mp-weixin/pages/msglog/msglog.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {};
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {};
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
wx.createPage(MiniProgramPage);
|
4
unpackage/dist/dev/mp-weixin/pages/msglog/msglog.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "",
|
||||
"usingComponents": {}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/pages/msglog/msglog.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view></view>
|
0
unpackage/dist/dev/mp-weixin/pages/msglog/msglog.wxss
vendored
Normal file
30
unpackage/dist/dev/mp-weixin/project.config.json
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"description": "项目配置文件。",
|
||||
"packOptions": {
|
||||
"ignore": [],
|
||||
"include": []
|
||||
},
|
||||
"setting": {
|
||||
"urlCheck": false,
|
||||
"es6": true,
|
||||
"postcss": true,
|
||||
"minified": true,
|
||||
"newFeature": true,
|
||||
"bigPackageSizeSupport": true,
|
||||
"babelSetting": {
|
||||
"ignore": [],
|
||||
"disablePlugins": [],
|
||||
"outputPath": ""
|
||||
},
|
||||
"condition": true
|
||||
},
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "3.6.3",
|
||||
"appid": "touristappid",
|
||||
"projectname": "qingdao-employment-service",
|
||||
"condition": {},
|
||||
"editorSetting": {
|
||||
"tabIndent": "insertSpaces",
|
||||
"tabSize": 2
|
||||
}
|
||||
}
|
8
unpackage/dist/dev/mp-weixin/project.private.config.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
|
||||
"projectname": "qingdao-employment-service",
|
||||
"setting": {
|
||||
"compileHotReLoad": true,
|
||||
"autoAudits": false
|
||||
}
|
||||
}
|
BIN
unpackage/dist/dev/mp-weixin/static/icon/man.png
vendored
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
unpackage/dist/dev/mp-weixin/static/icon/woman.png
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
unpackage/dist/dev/mp-weixin/static/logo.png
vendored
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
unpackage/dist/dev/mp-weixin/static/logo2.png
vendored
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
unpackage/dist/dev/mp-weixin/static/tabbar/calendar.png
vendored
Normal file
After Width: | Height: | Size: 412 B |
BIN
unpackage/dist/dev/mp-weixin/static/tabbar/calendared.png
vendored
Normal file
After Width: | Height: | Size: 341 B |
BIN
unpackage/dist/dev/mp-weixin/static/tabbar/chat4.png
vendored
Normal file
After Width: | Height: | Size: 662 B |
BIN
unpackage/dist/dev/mp-weixin/static/tabbar/mine.png
vendored
Normal file
After Width: | Height: | Size: 677 B |
BIN
unpackage/dist/dev/mp-weixin/static/tabbar/post.png
vendored
Normal file
After Width: | Height: | Size: 509 B |
BIN
unpackage/dist/dev/mp-weixin/static/tabbar/posted.png
vendored
Normal file
After Width: | Height: | Size: 456 B |
30
unpackage/dist/dev/mp-weixin/stores/useUserStore.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../common/vendor.js");
|
||||
const useUserStore = common_vendor.defineStore("user", () => {
|
||||
const hasLogin = common_vendor.ref(false);
|
||||
const openId = common_vendor.ref("");
|
||||
const userInfo = common_vendor.ref({});
|
||||
const token = common_vendor.ref("测试token");
|
||||
const login = (value) => {
|
||||
hasLogin.value = true;
|
||||
userInfo.value = value;
|
||||
openId.value = value.wxOpenId;
|
||||
token.value = value.token;
|
||||
common_vendor.index.setStorage({
|
||||
key: "token",
|
||||
data: value.token
|
||||
});
|
||||
};
|
||||
const logOut = () => {
|
||||
hasLogin = false;
|
||||
};
|
||||
return {
|
||||
hasLogin,
|
||||
openId,
|
||||
userInfo,
|
||||
token,
|
||||
login,
|
||||
logOut
|
||||
};
|
||||
});
|
||||
exports.useUserStore = useUserStore;
|
3
unpackage/dist/dev/mp-weixin/utils/request.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
require("../common/vendor.js");
|
||||
require("../stores/useUserStore.js");
|
66
utils/request.js
Normal file
@@ -0,0 +1,66 @@
|
||||
import config from "@/config.js"
|
||||
import useUserStore from '@/stores/useUserStore';
|
||||
const request = ({
|
||||
url,
|
||||
method = 'GET',
|
||||
data = {},
|
||||
load = false,
|
||||
header = {}
|
||||
} = {}) => {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (load) {
|
||||
uni.showLoading({
|
||||
title: '请稍候',
|
||||
mask: true
|
||||
});
|
||||
}
|
||||
console.log(useUserStore())
|
||||
let Authorization = ''
|
||||
if (useUserStore().token) {
|
||||
Authorization = `${useUserStore().userInfo.token}${useUserStore().token}`
|
||||
}
|
||||
uni.request({
|
||||
url: config.baseUrl + url,
|
||||
method,
|
||||
data: data,
|
||||
header: {
|
||||
'Authorization': Authorization || '',
|
||||
...header
|
||||
},
|
||||
success: resData => {
|
||||
// 响应拦截
|
||||
if (resData.statusCode === 200) {
|
||||
const {
|
||||
code,
|
||||
data,
|
||||
message
|
||||
} = resData.data
|
||||
if (code === 200) {
|
||||
resolve(data)
|
||||
return
|
||||
}
|
||||
uni.showToast({
|
||||
title: message,
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
if (resData.data?.code === 401 || resData.data?.code === 402) {
|
||||
store.commit('logout')
|
||||
uni.clearStorageSync('userInfo')
|
||||
}
|
||||
const err = new Error('请求出现异常,请联系工作人员')
|
||||
err.error = resData
|
||||
reject(err)
|
||||
},
|
||||
fail: err => reject(err),
|
||||
complete() {
|
||||
if (load) {
|
||||
uni.hideLoading();
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export default request
|