hldy_xcx/pages/yuangongindex/index.vue

835 lines
17 KiB
Vue
Raw Normal View History

2025-09-02 16:45:54 +08:00
<template>
<view class="login-container">
2025-09-15 17:23:33 +08:00
<view class="small-ball" :style="{top:`${moveHeight}px`}" @click="clickSmallball">
2025-09-25 17:30:11 +08:00
<view class="small-dian" v-if="hong">
2025-09-15 17:23:33 +08:00
{{ hong }}
</view>
<image class="small-ball-img" src="https://www.focusnu.com/media/directive/index/ling.png" />
</view>
2025-09-02 16:45:54 +08:00
<view class="index-up">
2025-09-09 17:45:04 +08:00
<image class="index-up-img" src="https://www.focusnu.com/media/directive/index/indexgif.gif" mode="widthFix"
lazy-load="false" />
2025-09-02 16:45:54 +08:00
</view>
<model :show="show" @close="show=false" :content="content" />
2025-09-09 17:45:04 +08:00
<swiper style="width: 100%;position: fixed;bottom: 0;left: 0;" :duration="150" :style="{minHeight: `100vh`}"
:current="which" @change="swiperchange">
2025-09-02 16:45:54 +08:00
<view v-for="(item,index) in menuArray" :key="index">
<swiper-item>
<view class="white-content-father">
2025-09-25 17:30:11 +08:00
<view class="chuo-ball" @click="loadingData"
v-if="item.applyType =='1' && item.applyStatus==`1`">
2025-09-02 16:45:54 +08:00
<image class="ball-img"
:src=" `https://www.focusnu.com/media/directive/index/refresh.png`" />
</view>
2025-09-25 17:30:11 +08:00
<view class="white-content" v-if="item.applyType =='0' && item.applyStatus==`1`">
2025-09-23 17:15:17 +08:00
<image class="white-content-img" style="height: 200rpx;"
:src="`https://www.focusnu.com/media/directive/index/yuangonginvited.png`"
lazy-load="false" />
<view class="second-font" style="margin-top: 350rpx;">
<text>
{{item.comName}}
</text>
</view>
<view class="second-font">
邀请您加入
</view>
<view style="margin-top: 60rpx;color: #999999;">
{{ item.orgLeader }} | {{ item.orgLeaderPhone }}
</view>
<view class="button-double">
2025-09-25 17:30:11 +08:00
<view class="double-left" @click="changeStatus(item,false)">
2025-09-23 17:15:17 +08:00
拒绝
</view>
<view class="double-right" @click="changeStatus(item,true)">
接受
</view>
</view>
</view>
2025-09-25 17:30:11 +08:00
<view class="white-content" v-if="item.applyType =='1' && item.applyStatus==`1`">
2025-09-02 16:45:54 +08:00
<image class="white-content-img"
2025-09-10 17:23:15 +08:00
:src="`https://www.focusnu.com/media/directive/index/${statusarray[Number(item.applyStatus) - 1]}.png`"
2025-09-02 16:45:54 +08:00
lazy-load="false" />
<view class="white-font">
您提交的
2025-09-09 17:45:04 +08:00
2025-09-02 16:45:54 +08:00
</view>
<view class="second-font">
<text>
"{{item.comName}}"
</text>
</view>
<view class="second-font">
2025-09-10 17:23:15 +08:00
入驻申请
2025-09-02 16:45:54 +08:00
<text style="color: #fa8622;">
正在审核中
</text>
</view>
<view class="button-blue" @click="look(item)">
查看
</view>
</view>
2025-09-09 17:45:04 +08:00
2025-09-25 17:30:11 +08:00
<view class="white-content" v-if="item.applyType =='1' && item.applyStatus==`3`">
2025-09-02 16:45:54 +08:00
<image class="white-content-img"
2025-09-10 17:23:15 +08:00
:src="`https://www.focusnu.com/media/directive/index/${statusarray[Number(item.applyStatus) - 1]}.png`"
2025-09-02 16:45:54 +08:00
lazy-load="false" />
2025-09-09 17:45:04 +08:00
2025-09-02 16:45:54 +08:00
<view class="white-font">
您提交的
</view>
<view class="second-font">
<text>
"{{item.comName}}"
</text>
</view>
<view class="second-font">
2025-09-10 17:23:15 +08:00
入驻申请
2025-09-02 16:45:54 +08:00
<text style="color: #eb2b59;">
审核不通过
</text>
</view>
2025-09-25 17:30:11 +08:00
<view class="button-white-spec" @click="jumptolist(item.auditContent)">
驳回原因
</view>
2025-09-02 16:45:54 +08:00
<view class="button-blue-spec" @click="again(item)">
2025-09-10 17:23:15 +08:00
重新申请
2025-09-02 16:45:54 +08:00
</view>
2025-09-25 17:30:11 +08:00
2025-09-02 16:45:54 +08:00
</view>
2025-09-09 17:45:04 +08:00
2025-09-23 17:15:17 +08:00
<view style="z-index: 1;width: 100%;" v-if=" item.applyStatus==`2`">
2025-09-02 16:45:54 +08:00
<view class="zhiling-box">
<view class="">
暂无指令
</view>
<image class="zhiling-img" v-show="false"
src="https://www.focusnu.com/media/directive/index/mine/more.png" />
</view>
<view class="white-box-father">
2025-09-25 17:30:11 +08:00
<view v-for="(item0,index) in buttonArray" :key="index" class="white-box"
@click="clickButton(item,index)">
2025-09-02 16:45:54 +08:00
<image class="box-img"
2025-09-09 17:45:04 +08:00
:src="`https://www.focusnu.com/media/directive/index/addstaff/${index}.png`" />
2025-09-23 17:15:17 +08:00
<view class="box-font">{{item0}}</view>
2025-09-09 17:45:04 +08:00
2025-09-02 16:45:54 +08:00
</view>
<view class="white-box">
<view style="font-weight: 600;font-size: 80rpx;">+</view>
</view>
</view>
</view>
</view>
2025-09-25 17:30:11 +08:00
<view class="zhiling-box" v-if="item.applyType =='1' && item.applyStatus==`-1`">
2025-09-15 17:23:33 +08:00
<view class="zhiling-box">
2025-09-09 17:45:04 +08:00
<view class="">
2025-09-15 17:23:33 +08:00
暂无信息
2025-09-09 17:45:04 +08:00
</view>
2025-09-15 17:23:33 +08:00
<image class="zhiling-img" v-show="false"
src="https://www.focusnu.com/media/directive/index/mine/more.png" />
2025-09-09 17:45:04 +08:00
</view>
</view>
2025-09-02 16:45:54 +08:00
2025-09-23 17:15:17 +08:00
<view class="white-content" style="margin: 0 auto;margin-top: 0rpx;height: 740rpx;"
2025-09-10 17:23:15 +08:00
v-if="item.applyStatus==`-1`">
2025-09-09 17:45:04 +08:00
<view style="display: flex;width: 100%;margin-top: 30rpx;align-items: center;">
<view class="blue-shu"></view>
<view class="blue-font">
入驻护理机构
</view>
</view>
2025-09-02 16:45:54 +08:00
<image class="white-content-secondimg"
2025-09-10 17:23:15 +08:00
src="https://www.focusnu.com/media/directive/index/addstaff/staff.png" lazy-load="false" />
2025-09-09 17:45:04 +08:00
<view class="button-blue" @click="searchjigou()">
入驻机构
2025-09-02 16:45:54 +08:00
</view>
</view>
2025-09-09 17:45:04 +08:00
2025-09-10 17:23:15 +08:00
<view class="white-content-father-time" v-if="item.applyStatus==`2`">
2025-09-09 17:45:04 +08:00
<view class="white-content" style="background-color: transparent;">
2025-09-02 16:45:54 +08:00
<view class="white-bgc">
2025-09-15 17:23:33 +08:00
{{ item.comName }}
2025-09-02 16:45:54 +08:00
</view>
2025-09-09 17:45:04 +08:00
2025-09-02 16:45:54 +08:00
</view>
</view>
</swiper-item>
</view>
</swiper>
<view
style="z-index:999;position: fixed;bottom: 70rpx; width: 100%;display: flex;justify-content: center;margin-top: -25rpx;height: 100rpx;">
<view class="jia-box">
<view v-for="(item,index) in menuArray" :key="index" @click="changecard(index)">
<view :class="whichMenu==index? `black-box` :`gray-box`" v-if="index != menuArray.length - 1">
</view>
<view class="jia" @click="moveend" v-if="index == menuArray.length - 1">
<image class="jia-img" :src="`https://www.focusnu.com/media/directive/index/bluejia.png`" />
</view>
</view>
</view>
</view>
<downMenu :itemTarget="0" />
</view>
</template>
<script setup>
import {
reactive,
ref,
onMounted,
2025-09-25 17:30:11 +08:00
onUnmounted,
2025-09-02 16:45:54 +08:00
} from 'vue';
import {
2025-09-09 17:45:04 +08:00
onLoad,
2025-09-25 17:30:11 +08:00
onShow,
onPullDownRefresh
2025-09-02 16:45:54 +08:00
} from '@dcloudio/uni-app';
import {
getMessageList
} from '@/pages/addstaff/api/addjigou.js'
2025-09-10 17:23:15 +08:00
import {
2025-09-15 17:23:33 +08:00
getIndex,
2025-09-23 17:15:17 +08:00
isRead,
invitedConfirm
2025-09-10 17:23:15 +08:00
} from './api.js'
import request from '@/request/index.js'
2025-09-02 16:45:54 +08:00
import downMenu from '@/compontent/public/yuangongdownmenu.vue'
import model from "@/compontent/public/model.vue"
const show = ref(false);
2025-09-10 17:23:15 +08:00
2025-09-02 16:45:54 +08:00
const content = ref("");
2025-09-09 17:45:04 +08:00
2025-09-23 17:15:17 +08:00
const buttonArray = ref(["技能培训", "考勤排班", "每日工作", "信息变更", "员工功能", "员工功能", "员工功能"])
2025-09-02 16:45:54 +08:00
const statusarray = ["loading", "success", "fail"]
const which = ref(0);
2025-09-10 17:23:15 +08:00
2025-09-15 17:23:33 +08:00
const clickSmallball = () => {
2025-09-26 13:30:13 +08:00
2025-09-19 17:12:59 +08:00
uni.setStorageSync('jumpIndex', 1);
2025-09-15 17:23:33 +08:00
uni.navigateTo({
url: "/pages/yuangongindex/message"
})
}
2025-09-09 17:45:04 +08:00
const searchjigou = () => {
2025-09-19 17:12:59 +08:00
uni.requestSubscribeMessage({
// 这里填后台申请好的 templateId 数组
tmplIds: ['yvvhlRft1CAdtU-dWlCW8U63VnTwRU8w3gR0BUdqcWw'],
success: (res) => {
uni.navigateTo({
url: "/pages/yuangongindex/searchjigou"
})
},
fail: (err) => {
uni.navigateTo({
url: "/pages/yuangongindex/searchjigou"
})
}
});
2025-09-02 16:45:54 +08:00
2025-09-25 17:30:11 +08:00
}
2025-09-09 17:45:04 +08:00
const clearvalue = () => {
supervalue.value = ""
}
2025-09-02 16:45:54 +08:00
2025-09-09 17:45:04 +08:00
const changecard = (e) => {
2025-09-02 16:45:54 +08:00
which.value = e
whichMenu.value = which.value
}
const moveend = () => {
which.value = menuArray.value.length
whichMenu.value = which.value
}
const addjigou = () => {
uni.setStorageSync('specicalid', "");
uni.setStorageSync("baddata", "")
uni.setStorageSync("backhuancun", {})
uni.navigateTo({
url: `/pages/addjigou/name`
});
}
const look = (element) => {
uni.navigateTo({
2025-09-10 17:23:15 +08:00
url: `/pages/yuangongindex/workjoin`
2025-09-02 16:45:54 +08:00
});
}
const again = (item) => {
uni.navigateTo({
2025-09-10 17:23:15 +08:00
url: "/pages/yuangongindex/searchjigou"
})
2025-09-02 16:45:54 +08:00
}
const jumpTo = () => {
uni.navigateTo({
url: `/pages/login/index`
});
}
const whichMenu = ref(0);
const swiperchange = (res) => {
whichMenu.value = res.detail.current
which.value = res.detail.current
2025-09-09 17:45:04 +08:00
}
2025-09-02 16:45:54 +08:00
const gotoWindy = () => {
uni.navigateTo({
url: "/pages/selectunit/map"
});
}
const goback = () => {
uni.navigateBack()
}
2025-09-15 17:23:33 +08:00
const moveHeight = ref(0);
onMounted(() => {
// 首先尝试获取胶囊信息(返回 px
let capsule = null;
if (typeof uni.getMenuButtonBoundingClientRect === 'function') {
try {
capsule = uni.getMenuButtonBoundingClientRect();
} catch (e) {
capsule = null;
}
moveHeight.value = capsule.top
}
2025-09-02 16:45:54 +08:00
})
2025-09-10 17:23:15 +08:00
onUnmounted(() => {})
2025-09-02 16:45:54 +08:00
const menuArray = ref([])
const loadingData = () => {
uni.getStorage({
key: 'openid',
success: function(res) {
2025-09-09 17:45:04 +08:00
getIndex(res.data).then(res => {
2025-09-15 17:23:33 +08:00
menuArray.value = []
res.result.forEach((element) => {
2025-09-23 17:15:17 +08:00
menuArray.value.push(element)
2025-09-15 17:23:33 +08:00
})
2025-09-09 17:45:04 +08:00
menuArray.value.push({
2025-09-10 17:23:15 +08:00
applyStatus: `-1`
2025-09-09 17:45:04 +08:00
})
})
2025-09-25 17:30:11 +08:00
getMessageList().then(res => {
// console.log("special",res)
2025-09-10 17:23:15 +08:00
uni.setStorageSync("staff", res.result[0])
2025-09-02 16:45:54 +08:00
})
}
});
2025-09-10 17:23:15 +08:00
2025-09-02 16:45:54 +08:00
}
2025-09-15 17:23:33 +08:00
const jumpToMine = () => {
uni.navigateTo({
url: '/pages/yuangongindex/companyyaoqing'
})
}
const hong = ref(0);
2025-09-23 17:15:17 +08:00
const changeStatus = (item, status) => {
let data = {
employeeId: item.employeesId,
status: status ? 2 : 3,
orgCode: item.orgCode
}
invitedConfirm(data).then(res => {
if (res.success) {
loadingData()
}
})
}
2025-09-25 17:30:11 +08:00
const clickButton = (item, index) => {
// console.log("AAA",item)
if (index === 3) {
getMessageList(item.orgCode).then(res => {
uni.setStorageSync("changeyuangongorgCode", item.orgCode)
if (res.success) {
uni.navigateTo({
url: `/pages/addstaff/all?element=${JSON.stringify(res.result[0])}`
});
}
2025-09-23 17:15:17 +08:00
})
}
}
2025-09-25 17:30:11 +08:00
const jumptolist = (res) => {
if (res) {
content.value = res;
show.value = true
}
}
2025-09-09 17:45:04 +08:00
onShow(() => {
2025-09-15 17:23:33 +08:00
loadingData();
2025-09-25 17:30:11 +08:00
isRead().then(res => {
if (res.result) {
hong.value = res.result;
}
})
})
onPullDownRefresh(() => {
loadingData();
isRead().then(res => {
2025-09-15 17:23:33 +08:00
// console.log("aaaa",res.result)
if (res.result) {
hong.value = res.result;
}
2025-09-25 17:30:11 +08:00
})
uni.stopPullDownRefresh()
2025-09-02 16:45:54 +08:00
})
</script>
<style lang="scss" scoped>
.login-container {
display: flex;
flex-direction: column;
min-height: calc(100vh);
width: 100%;
background-color: rgb(239, 241, 252);
position: relative;
}
.index-up {
position: absolute;
top: 0rpx;
left: 0;
width: 100%;
.index-up-img {
width: 100%;
height: 20rpx;
}
}
.index-ball-father {
width: 100%;
display: flex;
justify-content: flex-end;
position: fixed;
top: 120rpx;
left: 0;
z-index: 999;
margin-top: 120rpx;
.white-ball {
width: 60rpx;
height: 60rpx;
background-color: #fff;
border-radius: 50%;
margin-right: 20rpx;
display: flex;
justify-content: center;
align-items: center;
}
.super-white-ball {
width: 70rpx;
height: 60rpx;
background-color: #fff;
border-radius: 50%;
margin-right: 40rpx;
display: flex;
justify-content: center;
align-items: center;
}
.small-img {
width: 25rpx;
height: 25rpx;
}
}
.index-smallPhoto {
width: 100%;
display: flex;
justify-content: flex-end;
margin-top: 480rpx;
margin-bottom: 50rpx;
.photo-box {
margin-right: 40rpx;
height: 180rpx;
width: 250rpx;
z-index: 2;
position: relative;
.photo-box-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
}
.white-content {
z-index: 1;
2025-09-10 17:23:15 +08:00
height: 740rpx;
2025-09-02 16:45:54 +08:00
width: 90%;
background-color: #fff;
border-radius: 30rpx;
z-index: 2;
display: flex;
align-items: center;
flex-direction: column;
position: relative;
.white-content-img {
position: absolute;
top: 110rpx;
left: 50%;
transform: translateX(-50%);
width: 200rpx;
height: 175rpx;
}
.white-content-secondimg {
position: absolute;
2025-09-09 17:45:04 +08:00
left: 50%;
top: 30%;
transform: translate(-50%, -30%);
width: 400rpx;
height: 300rpx;
2025-09-02 16:45:54 +08:00
z-index: 1;
}
.white-font {
margin-top: 330rpx;
font-size: 30rpx;
}
.second-font {
margin-top: 10rpx;
font-size: 30rpx;
padding: 0 30rpx;
}
}
.white-content-father {
width: 100%;
display: flex;
justify-content: center;
margin-top: 40vh;
z-index: 1;
position: relative;
overflow: hidden;
}
.bottom-text {
font-size: 22rpx;
}
2025-09-10 17:23:15 +08:00
2025-09-02 16:45:54 +08:00
.white-content-father-time {
width: 100%;
display: flex;
justify-content: center;
2025-09-23 17:15:17 +08:00
margin-top: 10rpx;
2025-09-02 16:45:54 +08:00
.white-bgc {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: #333333;
}
.white-content {
height: 110rpx;
width: 92%;
overflow: hidden;
background-size: 100% auto;
border-radius: 35rpx;
z-index: 2;
}
.white-shu {
height: 100%;
width: 2rpx;
background-color: #fff;
margin: 0 20rpx;
}
}
.bad-button {
width: 100%;
margin-top: 40rpx;
display: flex;
justify-content: flex-end;
.blue-button {
background: linear-gradient(to right, #00C9FF, #0076FF);
color: #fff;
font-size: 25rpx;
padding: 10rpx 20rpx;
border-radius: 35rpx;
margin-right: 40rpx;
}
}
.zhiling-box {
display: flex;
justify-content: space-around;
align-items: center;
width: 92%;
margin-left: 4%;
height: 110rpx;
background-color: #fff;
border-radius: 35rpx;
font-size: 32rpx;
.zhiling-img {
width: 25rpx;
height: 25rpx;
}
}
.white-box-father {
display: flex;
width: 100%;
flex-wrap: wrap;
margin-left: 1%;
2025-09-09 17:45:04 +08:00
2025-09-02 16:45:54 +08:00
.white-box {
margin-top: 35rpx;
width: 20.7%;
margin-left: 3%;
2025-09-25 17:30:11 +08:00
height: 230rpx;
2025-09-02 16:45:54 +08:00
background-color: #fff;
border-radius: 35rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.box-img {
width: 55rpx;
height: 55rpx;
margin-bottom: 25rpx;
}
.box-font {
font-size: 30rpx;
}
}
}
.result {
margin: 0 auto;
}
.jia-box {
position: absolute;
top: 0rpx;
left: 0;
display: flex;
height: 80rpx;
width: 100%;
justify-content: center;
}
.jia {
margin-top: -5rpx;
width: 25rpx;
height: 25rpx;
border-radius: 50%;
background-color: #fff;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 30rpx;
.jia-img {
width: 18rpx;
height: 18rpx;
z-index: 2;
}
}
.gray-box {
border-radius: 20rpx;
height: 20rpx;
width: 35rpx;
margin-right: 15rpx;
background-color: #fff;
}
.black-box {
border-radius: 20rpx;
height: 20rpx;
width: 35rpx;
margin-right: 15rpx;
background-color: black;
}
2025-09-25 17:30:11 +08:00
.button-double {
2025-09-23 17:15:17 +08:00
position: absolute;
bottom: 45rpx;
width: 100%;
display: flex;
justify-content: space-around;
align-items: center;
height: 90rpx;
border-radius: 37rpx;
font-size: 33rpx;
margin-top: 80rpx;
2025-09-25 17:30:11 +08:00
.double-left {
2025-09-23 17:15:17 +08:00
width: 30%;
height: 90rpx;
display: flex;
justify-content: center;
align-items: center;
background-color: #F7F7F7;
border-radius: 40rpx;
margin-left: 40rpx;
z-index: 999;
}
2025-09-25 17:30:11 +08:00
.double-right {
2025-09-23 17:15:17 +08:00
width: 30%;
height: 90rpx;
display: flex;
justify-content: center;
align-items: center;
// background-color: #F7F7F7;
2025-09-25 17:30:11 +08:00
background: linear-gradient(to right, #00C9FF, #0076FF);
2025-09-23 17:15:17 +08:00
color: #fff;
border-radius: 40rpx;
margin-right: 40rpx;
z-index: 999;
}
}
2025-09-25 17:30:11 +08:00
2025-09-02 16:45:54 +08:00
.button-blue {
position: absolute;
bottom: 45rpx;
width: 40%;
display: flex;
justify-content: center;
align-items: center;
height: 90rpx;
border-radius: 37rpx;
background: linear-gradient(to right, #00C9FF, #0076FF);
color: #fff;
font-size: 33rpx;
margin-top: 80rpx;
2025-09-09 17:45:04 +08:00
z-index: 999;
2025-09-02 16:45:54 +08:00
}
.button-blue-spec {
position: absolute;
2025-09-25 17:30:11 +08:00
bottom: 30rpx;
left: 8%;
2025-09-02 16:45:54 +08:00
width: 40%;
display: flex;
justify-content: center;
align-items: center;
height: 90rpx;
border-radius: 37rpx;
background: linear-gradient(to right, #00C9FF, #0076FF);
color: #fff;
font-size: 33rpx;
margin-top: 80rpx;
}
.button-white-spec {
position: absolute;
bottom: 30rpx;
right: 8%;
width: 40%;
display: flex;
justify-content: center;
align-items: center;
height: 90rpx;
border-radius: 37rpx;
background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
border: 2rpx solid #b1c0ca;
// color: #fff;
font-size: 33rpx;
margin-top: 80rpx;
}
.chuo-img {
position: absolute;
top: 72rpx;
right: 235rpx;
width: 120rpx;
height: 110rpx;
z-index: 3;
}
.chuo-ball {
position: absolute;
top: 20rpx;
right: 60rpx;
width: 60rpx;
height: 60rpx;
z-index: 3;
background-color: rgb(242, 242, 242);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
.ball-img {
width: 37rpx;
height: 37rpx;
}
}
2025-09-09 17:45:04 +08:00
.blue-shu {
width: 17rpx;
height: 35rpx;
border-radius: 17rpx;
background: linear-gradient(to right, #00C9FF, #0076FF);
margin-left: 40rpx;
margin-right: 20rpx;
}
.blue-font {
font-size: 30rpx;
color: black;
}
2025-09-15 17:23:33 +08:00
.small-ball {
2025-09-25 17:30:11 +08:00
position: fixed;
2025-09-15 17:23:33 +08:00
right: 120px;
// top: 36px;
z-index: 9999;
width: 64rpx;
height: 64rpx;
background-color: #fff;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
.small-ball-img {
width: 60%;
height: 60%;
}
.small-dian {
position: absolute;
right: 0%;
top: 0%;
width: 30rpx;
height: 30rpx;
border-radius: 50%;
background-color: #FF5757;
color: #fff;
font-size: 20rpx;
display: flex;
justify-content: center;
align-items: center;
}
}
2025-09-02 16:45:54 +08:00
</style>