瀏覽代碼

Merge branch 'master' of https://git.citupro.com/zhengnaiwen_citu/menduner-uniapp

lifanagju_citu 8 月之前
父節點
當前提交
33aad9fef5
共有 13 個文件被更改,包括 197 次插入43 次删除
  1. 26 0
      api/user.js
  2. 18 6
      pages.json
  3. 39 15
      pages/index/my.vue
  4. 11 0
      pagesA/interview/index.vue
  5. 41 5
      pagesA/resume/index.vue
  6. 25 0
      pagesA/seenMe/index.vue
  7. 1 0
      static/style/index.css
  8. 0 0
      static/style/index.min.css
  9. 1 0
      static/style/index.scss
  10. 14 6
      store/modal.js
  11. 16 7
      store/user.js
  12. 1 1
      utils/code.js
  13. 4 3
      utils/request.js

+ 26 - 0
api/user.js

@@ -23,4 +23,30 @@ export const getPersonResumeCv = () => {
       auth: true
     }
   })
+}
+
+// 获取收藏的招聘职位列表
+export const getJobFavoriteList = (params) => {
+  return request({
+    url: '/menduner/system/person/get/job/favorite/page',
+    method: 'GET',
+    params,
+    custom: {
+      showLoading: false,
+      auth: true
+    }
+  })
+}
+
+// 谁看过我
+export const getInterestedMePage = (params) => {
+  return request({
+    url: '/menduner/system/job-cv-rel/look/page',
+    method: 'GET',
+    params,
+    custom: {
+      showLoading: false,
+      auth: true
+    }
+  })
 }

+ 18 - 6
pages.json

@@ -1,21 +1,21 @@
 {
 	"pages": [
 		{
-			"path": "pages/index/index",
+			"path": "pages/index/my",
 			"style": {
-				"navigationBarTitleText": "门墩儿招聘"
+				"navigationBarTitleText": "我的"
 			}
 		},
 		{
-			"path": "pages/index/position",
+			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": "职位"
+				"navigationBarTitleText": "门墩儿招聘"
 			}
 		},
 		{
-			"path": "pages/index/my",
+			"path": "pages/index/position",
 			"style": {
-				"navigationBarTitleText": "我的"
+				"navigationBarTitleText": "职位"
 			}
 		},
 		{
@@ -40,6 +40,18 @@
 					"style": {
 						"navigationBarTitleText": "职位收藏"
 					}
+				},
+				{
+					"path": "interview/index",
+					"style": {
+						"navigationBarTitleText": "面试管理"
+					}
+				},
+				{
+					"path": "seenMe/index",
+					"style": {
+						"navigationBarTitleText": "谁看过我"
+					}
 				}
 			]
 		}

+ 39 - 15
pages/index/my.vue

@@ -5,14 +5,23 @@
       <view v-if="!useUserStore.isLogin" class="font-weight-bold font-size-20" @tap="handleLogin">点击登录</view>
       <view v-else class="font-weight-bold font-size-20">{{ userInfo.name || userInfo.phone }}</view>
     </view>
-    <view style="margin-top: 80rpx;">
-      <uni-grid :column="4" :show-border="false">
-        <uni-grid-item :index="0" v-for="(val, index) in grid" :key="index" class="text-center">
-          <uni-icons :type="val.icon" size="40" color="#00897B"></uni-icons>
-          <text class="font-size-13 color-999 mt-5">{{ val.title }}</text>
-        </uni-grid-item>
-      </uni-grid>
+    <view class="d-flex" style="margin-top: 80rpx;">
+        <view v-for="(item, index) in itemList" :key="index" @tap="handleToLink(item)" class="parent">
+					<view class="d-flex justify-space-between">
+						<view>
+							<view class="colors">
+								<span>查看更多</span>
+								<uni-icons color="#c8c5c4" type="right" size="15" class="ml"/>
+							</view>
+							<view class="size-16">{{ item.title }}</view>
+						</view>
+						<view>
+							<uni-icons color="#00897B" :type="item.icon" size="45"/>
+						</view>
+					</view>
+				</view>
       </view>
+
       <view style="height: 10rpx; background-color: #f8f8fa;"></view>
 
       <view class="card">
@@ -36,15 +45,11 @@ import { userStore } from '@/store/user'
 import { getUserAvatar } from '@/utils/avatar'
 
 const useUserStore = userStore()
-const userInfo = computed(() => {
-  return useUserStore.userInfo
-})
+const userInfo = computed(() => useUserStore.userInfo)
 const popup = ref()
-const grid = [
-  { title: '全部', icon: 'list' },
-  { title: '被查看', icon: 'eye-filled' },
-  { title: '面试邀约', icon: 'auth-filled' },
-  { title: '不合适', icon: 'closeempty' }
+const itemList = [
+	{ title: "面试管理", path: "/pagesA/interview/index", icon: "list" },
+	{ title:'谁看过我', path:'/pagesA/seenMe/index', icon:'staff' }
 ]
 
 const list = [
@@ -96,4 +101,23 @@ const handleLogoutConfirm = () => {
 	font-size: 32rpx !important;
 	font-weight: 500;
 }
+.colors{
+	font-size: 24rpx;
+	color: #606266;
+}
+.size-16{
+	color: #3f424f;
+	font-size: 32rpx;
+	margin: 13rpx 0 5rpx 0;
+}
+.parent{
+	width: 50%;
+	border: 1px solid #f4f4f4;
+	border-radius: 10rpx;
+	margin: 0 30rpx 20rpx 30rpx;
+	padding: 20rpx;
+}
+.parent:first-child{
+	margin: 0 0 20rpx 30rpx;
+}
 </style>

+ 11 - 0
pagesA/interview/index.vue

@@ -0,0 +1,11 @@
+<template>
+  <div>面试管理</div>
+</template>
+
+<script setup>
+// 我已投递,待接受,待面试,已完成,拒绝
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 41 - 5
pagesA/resume/index.vue

@@ -1,6 +1,17 @@
 <template>
-  <view>
-    <button class="send-button">从微信导入简历</button>
+  <view class="ss-p-b-100">
+    <view v-if="bioList.length > 0">
+			<uni-card v-for="(item, index) in bioList" :key="index" :is-shadow="true" :border='false' shadow="0px 0px 3px 1px rgba(0,0,0,0.1)">
+				<view style="font-weight: bold;">{{ item.fileName ? item.fileName : `简历${index + 1}` }}</view>
+				<view>上传时间:{{ item.createTime }}</view>
+			</uni-card>
+		</view>
+		<view v-else class="nodata-img-parent">
+			<image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" style="width: 100vw;height: 100vh;"></image>
+		</view>
+    <view class="bottom-sticky">
+      <button class="recomm-button" @click="handleUpload">从微信导入简历</button>
+    </view>
   </view>
 </template>
 
@@ -9,12 +20,37 @@ import { ref } from 'vue'
 import { getPersonResumeCv } from '@/api/user'
 
 // 获取附件
-const attachmentList = ref([])
+const bioList = ref([])
 const getList = async () => {
-  const data = await getPersonResumeCv()
-  attachmentList.value = data
+  const { data } = await getPersonResumeCv()
+  bioList.value = data
 }
 getList()
+
+const handleUpload = () => {
+  wx.chooseMessageFile({
+    count: 1,
+    type: 'file',
+    success (res) {
+      console.log(res,'res');
+      const tempFilePaths = res.tempFiles.map(item=>{
+        return item.path
+      })
+      let name = res.tempFiles[0].name
+      //效验是否为支持的文件格式
+      if(/\.(pdf|docx|doc)$/.test(name)){
+        console.log(tempFilePaths, name, '============')
+      }else{
+        uni.showToast({
+          icon: 'none',
+          title: '请上传pdf、word类型的文件',
+          duration: 2000
+        })
+        return
+      }
+    }
+  })
+}
 </script>
 
 <style scoped lang="scss">

+ 25 - 0
pagesA/seenMe/index.vue

@@ -0,0 +1,25 @@
+<template>
+  <div>看过我</div>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+import { getInterestedMePage } from '@/api/user'
+
+const queryParams = ref({
+  pageNo: 1,
+  pageSize: 10
+})
+
+const list = ref([])
+const getList = async () => {
+  const { data } = await getInterestedMePage(queryParams.value)
+  list.value = data
+}
+
+getList()
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 1 - 0
static/style/index.css

@@ -8967,6 +8967,7 @@
 }
 
 .recomm-button {
+  color: #fff;
   width: 85%;
   height: 44px;
   line-height: 44px;

文件差異過大導致無法顯示
+ 0 - 0
static/style/index.min.css


+ 1 - 0
static/style/index.scss

@@ -428,6 +428,7 @@
 
 //页面底部单个按钮
 .recomm-button {
+  color: #fff;
   width: 85%;
   height: 44px;
   line-height: 44px;

+ 14 - 6
store/modal.js

@@ -12,12 +12,20 @@ export const modalStore = defineStore({
     }
   }),
   persist: {
-    enabled: true,
-    strategies: [
-      {
-        key: 'modal-store',
-        paths: ['lastTimer', 'advHistory'],
+    // enabled: true,
+    // strategies: [
+    //   {
+    //     key: 'modal-store',
+    //     paths: ['lastTimer', 'advHistory'],
+    //   },
+    // ],
+    storage: {
+      setItem(key, value) {
+        uni.setStorageSync(key, value)
       },
-    ],
+      getItem(key) {
+        return uni.getStorageSync(key)
+      },
+    },
   },
 });

+ 16 - 7
store/user.js

@@ -111,11 +111,20 @@ export const userStore = defineStore({
     },
   },
   persist: {
-    enabled: true,
-    strategies: [
-      {
-        key: 'user-store',
+    // enabled: true,
+    // strategies: [
+    //   {
+    //     key: 'user-store'
+    //   }
+    // ]
+    storage: {
+      setItem(key, value) {
+        uni.setStorageSync(key, value)
       },
-    ],
-  },
-});
+      getItem(key) {
+        return uni.getStorageSync(key)
+      },
+    },
+
+  }
+})

+ 1 - 1
utils/code.js

@@ -2,7 +2,7 @@ import { ref } from 'vue'
 import { sendSmsCode } from '@/api/common'
 import { modalStore } from '@/store/modal'
 import dayjs from 'dayjs';
-import test from '@/utils/test'
+import test from './test'
 
 const modal = modalStore()
 // 发送验证码

+ 4 - 3
utils/request.js

@@ -8,7 +8,7 @@ import { refreshToken } from '@/api/common';
 import { userStore } from '@/store/user'
 
 const baseUrl = 'http://menduner.citupro.com:7878'
-const tenantId = '155'
+// const baseUrl = 'https://menduner.citupro.com:2443'
 const options = {
 	// 显示操作成功消息 默认不显示
 	showSuccess: false,
@@ -97,12 +97,13 @@ http.interceptors.request.use(
     // 增加 token 令牌、terminal 终端、tenant 租户的请求头
 		const token = getAccessToken();
 		if (token) {
-			config.header['Authorization'] = token;
+			config.header['Authorization'] = 'Bearer ' + token;
 		}
 		config.header['terminal'] = 'mp-weixin'
+		config.header['Accept-Language'] = 'zh_CN'
 
     config.header['Accept'] = '*/*';
-    config.header['tenant-id'] = tenantId;
+    config.header['tenant-id'] = '155';
 		return config;
 	},
 	(error) => {

部分文件因文件數量過多而無法顯示