hldy_xcx/pages/yuangongindex/searchjigou.vue

586 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container">
<!-- <view class="title-back">
<view class="left-father" @click="goBack">
<image class="back-img" src="https://www.focusnu.com/media/directive/index/left.png" />
<view style="font-size: 30rpx;">入驻机构</view>
</view>
</view> -->
<view class="title-back" :style="{height:`${uni.getStorageSync('moveHeight')+40}px`}">
<view class="left-father" @click="goBack">
<image class="back-img" src="https://www.focusnu.com/media/directive/index/left.png" />
<view style="font-size: 30rpx;">入驻机构</view>
</view>
</view>
<view :style="{height:`${uni.getStorageSync('moveHeight') + 40}px`}"></view>
<view class="zhiling-box" style="margin-top: 30rpx;height: 120rpx;justify-content: flex-start;">
<view class="input-all">
<image
style="position: absolute;left: 20rpx;top: 50%;transform: translateY(-50%);width: 40rpx;height: 40rpx;"
src="https://www.focusnu.com/media/directive/index/search.png" />
<input style="font-size: 31rpx;" type="text" v-model="supervalue" placeholder="请输入入驻护理机构名称"
@confirm="search" @input="detectinput" />
<view @click="clearvalue" v-if="supervalue"
style="position: absolute;right: 20rpx;top: 50%;transform: translateY(-50%);width: 40rpx;height: 40rpx;display: flex;justify-content: center;align-items: center;border-radius: 50%;background-color: #EBEBEB;">
<image style="width: 20rpx;height: 20rpx;"
src="https://www.focusnu.com/media/directive/index/cha.png" />
</view>
</view>
<view class="tianjia" @click="search">
检索
</view>
</view>
<view style="width: 100%;display: flex;flex-wrap: wrap;">
<view v-for="(item,index) in hulijigouArray" :key="index" class="zhiling-box-card"
:style="hulitarget===index?{border:`4rpx solid #0093FF`}:{}"
style="margin-top: 30rpx;height: 300rpx;position: relative;width: 92%;flex-direction: column;"
@click="clickCard(index)">
<!-- <view style="position: absolute;right: 0rpx;bottom: -14rpx;" v-if="hulitarget===index">
<image style="width: 60rpx;height: 60rpx;"
src="https://www.focusnu.com/media/directive/index/lemon.png" />
</view> -->
<view class="card-font">
{{item.departName}}
</view>
<view class="gray-font">
<image style="margin-left: 10rpx;height: 23rpx;width: 23rpx;margin-right: 10rpx;margin-top: 5rpx;"
src="https://www.focusnu.com/media/directive/index/ruzhu/man.png" />
{{ item.comLegalPerson }}
<view style="margin: 0 20rpx;">
|
</view>
<image style="margin-left: 10rpx;height: 23rpx;width: 23rpx;margin-right: 10rpx;margin-top: 8rpx;"
src="https://www.focusnu.com/media/directive/index/ruzhu/phone.png" />
{{ item.tel }}
</view>
<!-- <view class="applying" v-if="item.employeesApiEntity?.status===`1`">
{{ item.employeesApiEntity.applyType=='1' ? "申请中" : "待确认" }}
</view>
<view class="applysuccess" v-if="item.employeesApiEntity?.status===`2`">
{{ item.employeesApiEntity.applyType=='1' ? "申请通过" : "已接受" }}
</view>
<view class="applyfail" v-if="item.employeesApiEntity?.status===`3`">
{{ item.employeesApiEntity.applyType=='1' ? "申请驳回" : "已拒绝" }}
</view> -->
<view class="applying"
v-if="item.employeesApiEntity?.status===`1`&&item.employeesApiEntity.applyType!=`2`">
{{ item.employeesApiEntity.applyType =='0' ?`待确认`:`申请中` }}
</view>
<view class="applysuccess"
v-if="item.employeesApiEntity?.status===`2`&&item.employeesApiEntity.applyType!=`2`">
{{ item.employeesApiEntity.applyType =='0' ?`已接受`:`申请通过` }}
</view>
<view class="applyfail"
v-if="item.employeesApiEntity?.status===`3`&&item.employeesApiEntity.applyType!=`2`">
{{ item.employeesApiEntity.applyType =='0' ?`已拒绝`:`申请驳回` }}
</view>
<view class="applying"
v-if="item.employeesApiEntity?.status===`1`&&item.employeesApiEntity.applyType==`2`">
变更中
</view>
<view class="applysuccess"
v-if="item.employeesApiEntity?.status===`2`&&item.employeesApiEntity.applyType==`2`">
变更通过
</view>
<view class="applyfail"
v-if="item.employeesApiEntity?.status===`3`&&item.employeesApiEntity.applyType==`2`">
变更驳回
</view>
<view class="gray-bgc">
<image class="gray-img" src="https://www.focusnu.com/media/directive/index/ditu/bgc.png" />
<view style="color: #999999;z-index: 1;font-size: 27rpx;width: 100%;display: flex;">
<image
style="margin-left: 10rpx;height: 30rpx;width: 25rpx;margin-right: 10rpx;z-index: 1;margin-top: 8rpx"
src="https://www.focusnu.com/media/directive/index/ditu/mark.png" />
<view style="width: 630rpx;">
{{item.comRegisterAddress}}
</view>
</view>
</view>
</view>
</view>
<!-- 处理margin重叠 -->
<view style="height: 200rpx;">
</view>
<view class="button-father">
<view class="blue-button" @click="apply" v-if="buttonOpen">
申请
</view>
<view class="white-button" v-else>
申请
</view>
</view>
<u-popup v-model="popupshow" mode="bottom" border-radius="40">
<view class="popop-father">
<image style="width: 100rpx;height: 100rpx;"
src="https://www.focusnu.com/media/directive/index/tishi.png" />
<view class="popop-font">
入驻申请已提交,请到
<text style="color: #01A9FF;">
"我的-审核记录"
</text>
查看审核进度
</view>
<view class="popop-blue" @click="jumpRuzhu()">
查看
</view>
</view>
</u-popup>
</view>
</template>
<script setup lang="ts">
import {
reactive,
ref,
onMounted,
onUnmounted,
} from 'vue';
import {
onShow
} from '@dcloudio/uni-app'
import { getOrgInfo, Apply } from './api.js'
import {
getMessageList
} from '@/pages/addstaff/api/addjigou.js'
onShow((() => {
search();
}))
const hulijigouArray = ref([])
const hulitarget = ref(-1)
const popupshow = ref(false);
const supervalue = ref("");
const jumpRuzhu = () => {
popupshow.value = false
uni.navigateTo({
url: "/pages/yuangongindex/workjoin"
})
}
let inputTimer = null
const detectinput = () => {
// clear + set会在最后一次输入后 600ms 执行
if (inputTimer) clearTimeout(inputTimer)
inputTimer = setTimeout(() => {
inputTimer = null
// 这里是真正触发的逻辑
search()
}, 600) // 600ms = 0.6s
}
onUnmounted(() => {
if (inputTimer) clearTimeout(inputTimer)
})
const buttonOpen = ref(false);
const clickCard = (index : number) => {
if (hulitarget.value === index) {
hulitarget.value = -1;
buttonOpen.value = false;
} else {
hulitarget.value = index;
if (
(
(hulijigouArray.value[index].employeesApiEntity?.applyType == 0 || hulijigouArray.value[index].employeesApiEntity?.applyType == 1) &&
(hulijigouArray.value[index].employeesApiEntity.status == 1 || hulijigouArray.value[index].employeesApiEntity.status == 2)
) ||
hulijigouArray.value[index].employeesApiEntity?.applyType == 2
) {
buttonOpen.value = false;
} else {
buttonOpen.value = true;
}
}
}
const clearvalue = () => {
hulitarget.value = -1;
supervalue.value = "";
search()
}
const goBack = () => {
uni.navigateBack()
}
const search = () => {
buttonOpen.value = false;
hulitarget.value = -1;
getOrgInfo(supervalue.value).then((res : any) => {
if (res.success) {
hulijigouArray.value = res.result.records
}
})
}
const sumbit = ref(false);
const apply = () => {
// if (sumbit.value) {
// return
// }
sumbit.value = true;
// 先拿出来
let data = uni.getStorageSync('staff') || {}
// 如果是字符串需要先 parse
// let data = typeof storageData === 'string' ? JSON.parse(storageData) : { ...storageData }
// 避免污染原对象,拷贝一份
// console.log("?????",data)
data = {
...data,
dateOfBirth: data.birthDate,
marriedOrNot: data.maritalStatus,
address: data.address,
emergencyContact: data.contactName,
emergencyTel: data.contactTel,
emergencyRelationship: data.contactRelationship,
hukouNature: data.hukouType,
idCardPositive: data.cardZmPath,
idCardNegative: data.cardFmPath,
healthCertificatePositive: data.healthZmPath,
healthCertificateNegative: data.healthFmPath,
bankPositive: data.bankZmPath,
bankNegative: data.bankFmPath,
qualification: data.qualificationPath,
noCrimeCertificate: data.noCrimeCertificate,
houseAddress: data.idCardAddress,
employeeId: data.id,
id: null,
createTime: null,
updateBy: null,
updateTime: null,
orgCode: hulijigouArray.value[hulitarget.value].orgCode
}
getMessageList().then(res => {
// console.log("有啥啊",res.result)
// return
if (Array.isArray(res.result) && res.result.length === 0) {
// 这个是检测他有没有员工信息,没有的话让他去填员工信息,别忘了用完去掉
uni.setStorageSync('nostaffmessage', hulijigouArray.value[hulitarget.value].orgCode);
//表单ID
uni.setStorageSync('specicalid', "");
//表单详情
uni.setStorageSync("baddata", "")
//表单缓存
uni.setStorageSync("backhuancun", {})
uni.navigateTo({
url: `/pages/addstaff/information`
});
} else {
Apply(data).then((data : any) => {
if (data.success) {
uni.requestSubscribeMessage({
// 这里填后台申请好的 templateId 数组
tmplIds: ['cWVzXm1C-iitx1gNFn1nZdijq9R_3fCv8vLbiqs9zww'],
success: (res) => {
popupshow.value = true
setTimeout(() => search(), 1000)
},
fail: (err) => {
console.error('订阅接口调用失败:', err);
uni.showToast({
title: '订阅失败',
icon: 'none'
});
}
});
}
setTimeout(() => sumbit.value = false, 1000)
})
}
// if (res.success) {
// uni.navigateTo({
// url: `/pages/addstaff/all?element=${JSON.stringify(res.result[0])}`
// });
// }
})
}
// search()
</script>
<style lang="scss" scoped>
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
background-color: #F7F7F7;
position: relative;
}
.title-back {
background-color: #F7F7F7;
width: 100%;
height: 70rpx;
display: flex;
justify-content: space-between;
align-items: flex-end;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #cbd1d2;
position: fixed;
top: 0;
left: 0;
z-index: 9999;
}
.left-father {
display: flex;
align-items: center;
.back-img {
width: 45rpx;
height: 40rpx;
margin-left: 40rpx;
margin-right: 15rpx;
}
}
.tianjia {
width: 120rpx;
height: 70rpx;
background: linear-gradient(to bottom, #e7f4ff, #c5e5ff);
border: 2rpx solid #9AD1FF;
color: #007CFF;
display: flex;
justify-content: center;
align-items: center;
border-radius: 30rpx;
margin-left: 10rpx;
}
.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;
border: 4rpx solid #fff;
}
.input-all {
width: 500rpx;
height: 65rpx;
border-radius: 30rpx;
background-color: #F7F7F7;
padding-left: 80rpx;
margin-left: 30rpx;
display: flex;
align-items: center;
position: relative;
}
.popop-father {
width: 100%;
height: 600rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.popop-font {
margin-top: 40rpx;
width: 70%;
text-align: center;
line-height: 40rpx;
font-size: 30rpx;
margin-bottom: 100rpx;
}
.popop-blue {
display: flex;
justify-content: center;
align-items: center;
width: 80%;
display: flex;
justify-content: center;
align-items: center;
height: 90rpx;
border-radius: 35rpx;
background: linear-gradient(to bottom, #e7f4ff, #c5e5ff);
border: 2rpx solid #9AD1FF;
color: #007CFF;
font-size: 33rpx;
margin-bottom: 30rpx;
}
.button-father {
position: fixed;
bottom: 0rpx;
left: 0;
width: 100%;
display: flex;
justify-content: center;
background-color: #F7F7F7;
z-index: 9999;
}
.blue-button {
display: flex;
justify-content: center;
align-items: center;
width: 80%;
height: 90rpx;
margin: 0rpx auto;
margin-bottom: 80rpx;
margin-top: 20rpx;
background: linear-gradient(to bottom, #e7f4ff, #c5e5ff);
border: 2rpx solid #9AD1FF;
color: #007CFF;
border-radius: 35rpx;
font-size: 33rpx;
}
.white-button {
display: flex;
justify-content: center;
align-items: center;
width: 80%;
height: 90rpx;
margin: 0rpx auto;
margin-bottom: 80rpx;
margin-top: 20rpx;
// color: #fff;
background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
border-radius: 35rpx;
font-size: 33rpx;
}
.zhiling-box-card {
display: flex;
width: 92%;
margin-left: 4%;
height: 150rpx;
background-color: #fff;
border-radius: 35rpx;
font-size: 32rpx;
border: 4rpx solid #fff;
overflow: hidden;
}
.applying {
position: absolute;
right: 20rpx;
top: 0rpx;
background-color: #FFE8D3;
color: #FF7900;
width: 130rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
border-radius: 10rpx;
margin-left: 35rpx;
margin-top: 25rpx;
// margin-top: 20rpx;
// margin-bottom: 20rpx;
}
.applysuccess {
position: absolute;
right: 20rpx;
top: 0rpx;
background-color: #DEF1FF;
color: #0093FF;
width: 130rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
border-radius: 10rpx;
margin-left: 35rpx;
margin-top: 25rpx;
// margin-bottom: 20rpx;
}
.applyfail {
position: absolute;
right: 20rpx;
top: 0rpx;
background-color: #fff4f7;
color: #FC3D7F;
width: 130rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
border-radius: 10rpx;
margin-left: 35rpx;
margin-top: 20rpx;
// margin-bottom: 20rpx;
}
.card-font {
margin-left: 40rpx;
font-size: 32rpx;
margin-top: 30rpx;
word-wrap: break-word;
width: 450rpx;
font-weight: 600;
}
.gray-font {
margin-left: 40rpx;
font-size: 29rpx;
margin-top: 20rpx;
color: #B1B1B1;
width: 100%;
display: flex;
align-items: center;
}
.gray-bgc {
margin: 20rpx 40rpx;
width: 90%;
height: 90rpx;
border-radius: 10rpx;
display: flex;
align-items: center;
position: relative;
line-height: 40rpx;
.gray-img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
}
</style>