2025-04-01 09:03:51 +08:00

1488 lines
48 KiB
Vue
Raw Permalink 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="backImg flex flex-column align-items">
<view class="box flex flex-column align-items">
<!-- -1未申请 0待审核 1审核通过 2审核失败 -->
<span class="reason" style="color: red;" v-if="status == 2">
审核失败:{{reason}}
</span>
<span class="reason flex align-items justify-center" style="color: #00D90E;" v-if="status == 0">
审核中
</span>
<span class="title">基本信息</span>
<view class="first flex flex-column align-items justify-start" v-if="status == -1 || status == 2">
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items">机构/个人 <span style="color: #FF2323;">*</span></span>
<view class="row-right flex align-items" @click="cutShow()">
<span>{{form.cut}}</span>
<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
</view>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items" v-if="form.cut == '机构'">机构名称 <span
style="color: #FF2323;">*</span></span>
<span class="label flex align-items" v-if="form.cut == '个人'">教师名称 <span
style="color: #FF2323;">*</span></span>
<span class="row-right">
<input type="text" placeholder="请填写名称" class="input" v-model="form.name"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items flex-column">联系电话
<span style="color: #FF2323; font-size: 14rpx;">*请注意接听来电</span>
</span>
<span class="row-right">
<input class="input" type="text" placeholder="请填写电话" v-model="form.tel"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="form.cut == '机构'"></span>
<view class="row flex align-items" style="margin-top: 25rpx;" v-if="form.cut == '机构'">
<span class="label flex align-items ">成立时间
</span>
<span class="row-right" @click="dateShowHidden()">
<input type="text" placeholder="请填写成立时间" class="input" disabled="true" v-model="form.date"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="form.cut == '机构'"></span>
<view class="row flex align-items" style="margin-top: 25rpx;" v-if="form.cut == '机构'">
<span class="label flex align-items ">员工人数
</span>
<span class="row-right">
<input type="text" placeholder="请填写人数" class="input" v-model="form.people"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items" v-if="form.cut == '机构'">机构地址 <span
style="color: #FF2323;">*</span></span>
<span class="label flex align-items" v-if="form.cut == '个人'">授课地址 <span
style="color: #FF2323;">*</span></span>
<span class="row-right" @click='institutionShow = true' style="width: 80%;">
<input type="text" placeholder="请选择地址" disabled="true" class="input" v-model="form.institution"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx; ">
<span class="label flex align-items">地址
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right" @click="choose()" style="width:80%;">
<input class="input" type="text" disabled="true" placeholder="请填写地址" v-model="form.address"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items ">详细位置
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right">
<input type="text" placeholder="请填写详细位置" class="input" v-model="form.address_detail"
placeholder-class="plasty" />
</span>
</view>
</view>
<!-- 禁止查看 -->
<view class="first flex flex-column align-items justify-start" v-else>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items">机构/个人 <span style="color: #FF2323;">*</span></span>
<view class="row-right flex align-items">
<span>{{State == 2 ? '机构' : '个人'}}</span>
</view>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items" v-if="State == '2'">机构名称 <span
style="color: #FF2323;">*</span></span>
<span class="label flex align-items" v-if="State == '1'">教师名称 <span
style="color: #FF2323;">*</span></span>
<span class="row-right">
<input type="text" placeholder="请填写名称" disabled="true" class="input" v-model="apply_info.name"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items flex-column">联系电话
<span style="color: #FF2323; font-size: 14rpx;">*请注意接听来电</span>
</span>
<span class="row-right">
<input class="input" type="number" disabled="true" placeholder="请填写电话" v-model="apply_info.tel"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="State == '2'"></span>
<view class="row flex align-items" style="margin-top: 25rpx; " v-if="State == '2'">
<span class="label flex align-items flex-column">成立时间
</span>
<span class="row-right">
<input class="input" type="text" disabled="true"
:placeholder="apply_info.auth_time | formatTimestamp" placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="State == '2'"></span>
<view class="row flex align-items" style="margin-top: 25rpx; " v-if="State == '2'">
<span class="label flex align-items flex-column">员工人数
</span>
<span class="row-right">
<input class="input" type="text" disabled="true" placeholder="请填写地址" v-model="apply_info.people"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items flex-column" v-if="State == '2'">机构地址</span>
<span class="label flex align-items flex-column" v-if="State == '1'">授课地址</span>
<span class="row-right" style="width: 80%;">
<input class="input" type="text" disabled="true" placeholder="请填写地址"
v-model="apply_info.address_city" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx; ">
<span class="label flex align-items flex-column">地址
</span>
<span class="row-right">
<input class="input" type="text" disabled="true" placeholder="请填写地址"
v-model="apply_info.address" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items flex-column">详细位置
</span>
<span class="row-right" style="width: 80%;">
<input class="input" type="text" disabled="true" placeholder="请填写地址"
v-model="apply_info.address_detail" placeholder-class="plasty" />
</span>
</view>
</view>
<!-- <span class="title" v-if="form.cut == '机构'">法人/委托人信息</span>
<span class="title" v-if="form.cut == '个人'">个人信息</span>
<view class="first flex flex-column align-items justify-start" v-if="status == -1 || status == 2">
<view class="row flex align-items" style="margin-top: 25rpx;" v-if="form.cut == '机构'">
<span class="label flex align-items ">机构法人/委托人
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right">
<input type="text" placeholder="请填写姓名" class="input" v-model="form.legalEntity"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="form.cut == '机构'"></span>
<view class="row flex align-items" style="margin-top: 25rpx;" v-if="form.cut == '机构'">
<span class="label flex align-items ">社会统一信用代码
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right">
<input type="text" placeholder="请填写社会统一信用代码" class="input" v-model="form.yyzzdm"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="form.cut == '机构'"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">性别
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right" @click="sexShow = true">
<input type="text" placeholder="请填写性别" class="input" disabled="true" v-model="form.sex"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">民族
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right">
<input type="text" placeholder="请填写民族" class="input" v-model="form.nation"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">政治面貌
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right" @click="outLookShow = true">
<input type="text" placeholder="请填写政治面貌" class="input" disabled="true" v-model="form.outlook"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">出生日期
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right" @click="birthShowHidden()">
<input type="text" placeholder="请填写出生日期" class="input" disabled="true" v-model="form.birth"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">籍贯
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right">
<input type="text" placeholder="请填写籍贯" class="input" v-model="form.nativePlace"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">身份证号码
<span style="color: #FF2323;">*</span>
</span>
<span class="row-right">
<input type="text" placeholder="请填写身份证号码" class="input" v-model="form.cardNumber"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">学历
</span>
<span class="row-right" @click="diplomaShow = true">
<input type="text" placeholder="请填写学历" class="input" disabled="true" v-model="form.diploma"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">职务
</span>
<span class="row-right">
<input type="text" placeholder="请填写职务" class="input" v-model="form.post"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items ">社会职务
</span>
<span class="row-right">
<input type="text" placeholder="请填写社会职务" class="input" v-model="form.socialPosition"
placeholder-class="plasty" />
</span>
</view>
</view> -->
<!-- // 禁止查看 -->
<!-- <view class="first flex flex-column align-items justify-start" v-else>
<view class="row flex align-items" style="margin-top: 25rpx;" v-if="State == '2'">
<span class="label flex align-items">机构法人/委托人 <span style="color: #FF2323;">*</span></span>
<span class="row-right">
<input type="text" placeholder="请填写名称" disabled="true" class="input"
v-model="apply_info.legal_entity" placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="State == '2'"></span>
<view class="row flex align-items" style="margin-top: 25rpx;" v-if="State == '2'">
<span class="label flex align-items">社会统一信用代码 <span style="color: #FF2323;">*</span></span>
<span class="row-right">
<input type="text" placeholder="请填写社会统一信用代码" disabled="true" class="input"
v-model="apply_info.yyzzdm" placeholder-class="plasty" />
</span>
</view>
<span class="line-row" v-if="State == '2'"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items flex-column">性别
</span>
<span class="row-right">
<input class="input" type="text" disabled="true"
:placeholder="apply_info.gender === 0 ? '女' : '男'" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">民族
</span>
<span class="row-right">
<input type="text" placeholder="请填写民族" class="input" disabled="true" v-model="apply_info.nation"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">政治面貌
</span>
<span class="row-right">
<input type="text" placeholder="请填写政治面貌" class="input" disabled="true"
v-model="apply_info.out_look" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">出生日期
</span>
<span class="row-right">
<input type="text" :placeholder="apply_info.birthtime | formatTimestamp" class="input"
disabled="true" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">籍贯
</span>
<span class="row-right">
<input type="text" placeholder="请填写籍贯" class="input" disabled="true"
v-model="apply_info.native_place" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">身份证号码
</span>
<span class="row-right">
<input type="text" placeholder="请填写身份证号码" class="input" disabled="true"
v-model="apply_info.card_number" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">学历
</span>
<span class="row-right">
<input type="text" placeholder="请填写学历" class="input" disabled="true"
v-model="apply_info.diploma" placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">职务
</span>
<span class="row-right">
<input type="text" placeholder="请填写职务" class="input" disabled="true" v-model="apply_info.post"
placeholder-class="plasty" />
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items ">社会职务
</span>
<span class="row-right">
<input type="text" placeholder="请填写社会职务" class="input" disabled="true"
v-model="apply_info.social_position" placeholder-class="plasty" />
</span>
</view>
</view> -->
<view class="second" v-if="status == -1 || status == 2">
<u--textarea v-model="form.desc" count maxlength="1000" placeholder="请填写申请备注"
height="170"></u--textarea>
</view>
<view class="second" v-else>
<u--textarea v-model="apply_info.desc" disabled="true" count maxlength="1000" placeholder="请填写申请备注"
height="170"></u--textarea>
</view>
<!-- <view class="third flex flex-column" v-if="status == -1 || status == 2">
<view class="flex flex-column ji" v-if="form.cut == '机构'" style="align-items: flex-start;">
<span class="header">机构门头照片
<span style="color: #FF2323;">*</span>
</span>
<u-upload :fileList="fileList1" @afterRead="afterRead" :previewFullImage="true" @delete="deletePic"
@oversize="oversize" name="1" multiple :maxSize="2*1024*1024" :maxCount="1">
<image src="../../static/index/mentou.png" mode="widthFix"
style="width: 690rpx;height: 450rpx;">
</u-upload>
<span class="header">机构内部环境照片 <span style="color: #FF2323;">*</span></span>
<u-upload :fileList="fileList2" @afterRead="afterRead" :previewFullImage="true" @delete="deletePic"
@oversize="oversize" name="2" multiple :maxSize="2*1024*1024" :maxCount="1">
<image src="../../static/index/neibu.png" mode="widthFix" style="width: 690rpx;height: 450rpx;">
</u-upload>
<span class="header">机构外部环境照片 <span style="color: #FF2323;">*</span></span>
<u-upload :fileList="fileList3" @afterRead="afterRead" :previewFullImage="true" @delete="deletePic"
@oversize="oversize" name="3" multiple :maxSize="2*1024*1024" :maxCount="1">
<image src="../../static/index/waibu.png" mode="widthFix" style="width: 690rpx;height: 450rpx;">
</u-upload>
<span class="header">营业执照 <span style="color: #FF2323;">*</span></span>
<u-upload :fileList="fileList4" @afterRead="afterRead" :previewFullImage="true" @delete="deletePic"
@oversize="oversize" name="4" multiple :maxSize="2*1024*1024" :maxCount="1">
<image src="../../static/index/yingye.png" mode="widthFix"
style="width: 690rpx;height: 450rpx;">
</u-upload>
</view>
<span class="header" v-if="form.cut == '机构'">法人身份证 <span style="color: #FF2323;">*</span></span>
<span class="header" v-if="form.cut == '个人'">个人身份证 <span style="color: #FF2323;">*</span></span>
<view class="shenfen flex align-items flex-column">
<u-upload :fileList="fileList5" :previewFullImage="true" :maxSize="2*1024*1024"
@afterRead="afterRead" @delete="deletePic" @oversize="oversize" name="5" multiple :maxCount="1">
<image src="../../static/index/zheng.png" mode="widthFix" style="width: 690rpx;height: 450rpx;">
</u-upload>
<u-upload :fileList="fileList6" :previewFullImage="true" :maxSize="2*1024*1024"
@afterRead="afterRead" @delete="deletePic" @oversize="oversize" name="6" multiple :maxCount="1">
<image src="../../static/index/bei.png" mode="widthFix"
style="width: 690rpx;height: 450rpx;margin: 24rpx 0 0 0;">
</u-upload>
</view>
</view> -->
<!-- <view class="third flex flex-column" v-else style="margin-bottom: 50rpx;">
<view class="flex flex-column ji" v-if="State == '2'" style="align-items: flex-start;">
<span class="header">机构门头照片</span>
<u--image :showLoading="true" :src="apply_info.images[0]" width="690rpx" height="450rpx"></u--image>
<span class="header">机构内部环境照片</span>
<u--image :showLoading="true" :src="apply_info.images[1]" width="690rpx" height="450rpx"></u--image>
<span class="header">机构外部环境照片</span>
<u--image :showLoading="true" :src="apply_info.images[2]" width="690rpx" height="450rpx"></u--image>
<span class="header">营业执照</span>
<u--image :showLoading="true" :src="apply_info.yyzz_images[0]" width="690rpx"
height="450rpx"></u--image>
</view>
<span class="header" v-if="State == '2'">法人身份证</span>
<span class="header" v-if="State == '1'">个人身份证</span>
<view class="shenfen flex align-items flex-column">
<u--image :showLoading="true" :src="apply_info.front_idcard_image" width="690rpx"
height="450rpx"></u--image>
<u--image :showLoading="true" :src="apply_info.reverse_idcard_image" width="690rpx"
height="450rpx"></u--image>
</view>
</view> -->
</view>
<span @click="show = true" style="margin: 30rpx 0 135rpx 0; width: 750rpx;" v-if="status == -1 || status == 2">
<cc-protocolBox :agree="agree" :protocolArr="protocolArr" @click="agree = false"
@protocolClick="protocolClick"></cc-protocolBox>
</span>
<view class="bottom flex align-items justify-center" v-if="status == -1 || status == 2">
<span class="flex align-items justify-center" @click="apply()" v-if="agree == true">申请入驻</span>
<span class="flex align-items justify-center" v-if="agree == false"
style="background: #b2c9dcab;">申请入驻</span>
</view>
<!-- 入驻 -->
<u-popup @touchmove.native.stop.prevent :closeable="true" :show="show" :round="10" mode="center" @close="close"
@open="open" :custom-style="popupStyle">
<span style="font-size: 42rpx;font-weight: 800;margin: 12rpx 0 24rpx 0;height: 120rpx;">《机构入驻协议》</span>
<scroll-view ref="scrollView" :scroll-top="scrollTop" :show-scrollbar='true' @scrolltolower="handleScroll"
scroll-y="true" style="height: 800rpx;margin-bottom: 24rpx;">
<view class="popup flex align-items flex-column">
<rich-text :nodes="Negotiate"></rich-text>
</view>
</scroll-view>
<view class="popup-footer">
<span class="zhixiao" v-if="agreeShow == false">我已知晓</span>
<span class="zhixiao" style="background-color: #008CFF;" v-if="agreeShow == true"
@click="change">我已知晓</span>
</view>
</u-popup>
<!-- 机构/个人 -->
<u-picker :show="showCut" :columns="columns" @cancel="cancel" @confirm="confirm"></u-picker>
<!-- 机构地址 -->
<u-picker :show="institutionShow" :columns="institutionList" keyName="name" @cancel="institutioncancel"
@confirm="institutionconfirm"></u-picker>
<!-- 性别 -->
<u-picker :show="sexShow" :columns="sexList" @cancel="sexCancel" @confirm="sexConfirm"></u-picker>
<!-- 政治面貌 -->
<u-picker :show="outLookShow" :columns="outlookList" @cancel="outlookCancel"
@confirm="outlookConfirm"></u-picker>
<!-- 学历 -->
<u-picker :show="diplomaShow" :columns="diplomaList" @cancel="diplomaCancel"
@confirm="diplomaConfirm"></u-picker>
<!-- 成立时间 -->
<u-datetime-picker @cancel="datecel" ref="dateRef" :minDate="minDate" @confirm="datefirm" :show="dateShow"
v-model="date" mode="date"></u-datetime-picker>
<!-- 出生日期 -->
<u-datetime-picker @cancel="birthCancel" ref="birthRef" :minDate="minDate" @confirm="birthConfirm"
:show="birthShow" v-model="date" mode="date"></u-datetime-picker>
</view>
</template>
<script>
export default {
data() {
return {
institutionShow: false, // 区域弹窗
sexShow: false, // 性别弹窗
outLookShow: false, //政治面貌弹窗
birthShow: false, // 出生日期弹窗
diplomaShow: false, //学历弹窗
value: false,
scrollTop: 0,
minDate: new Date('1940-01-01').getTime(),
old: {
scrollTop: 0
},
status: -1,
reason: '',
showCut: false,
dateShow: false,
show: false,
State: '',
Negotiate: null, // 入驻协议
agree: false,
agreeShow: false,
protocolArr: ["<入驻协议>"],
form: {
cut: '机构',
yyzzdm: '',
name: '',
tel: '',
desc: '',
address: '',
latitude: '',
longitude: '',
date: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd'), //成立时间
establish_time: Math.floor(Date.now() / 1000), // 成立时间 秒
people: "", // 员工人数
institution: '', //机构地址
institutionCode: '', //机构地址
address_detail: '', //详细位置
legalEntity: '', //法人
sex: '', //性别
nation: '', //民族
outlook: '', //政治面貌
birth: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd'), //出生日期
birthtime: Math.floor(Date.now() / 1000), // 出生日期 秒
nativePlace: '', //籍贯
cardNumber: '', //身份证号码
diploma: '', //学历
post: '', //职务
socialPosition: '' //社会职务
},
apply_info: {},
popupStyle: {
width: '642rpx',
padding: '24rpx 24rpx 42rpx 24rpx',
height: '984rpx',
margin: '0 auto', // 水平居中
display: 'flex',
justifyContent: 'start',
alignItems: 'center',
flexColumn: 'column'
},
scrollViewHeight: 820, // scroll-view 的高度
scrollViewContentHeight: 0, // scroll-view 内容的高度
columns: [
['机构', '个人']
],
diplomaList: [
['‌小学', '初中', '高中', '‌大专', '‌大学本科', '‌硕士研究生', '‌博士研究生']
],
sexList: [
['男', '女', ]
],
outlookList: [
['‌中共党员', '中共预备党员', '共青团员', '‌民革党员', '‌民盟盟员', '‌民建会员', '‌民进会员', '‌农工党党员', '‌致公党党员', '‌‌九三学社社员',
'‌‌台盟盟员', '‌无党派人士‌', '‌群众',
]
],
institutionList: [],
images: '',
upPicUrl: 'https://testy.hschool.com.cn//api/common/upload',
yyzz_images: [],
fileList1: [], // 用于存储第一个上传组件的文件列表
fileList2: [], // 用于存储第二个上传组件的文件列表
fileList3: [], // 用于存储第三个上传组件的文件列表
fileList4: [], // 用于存储第四个上传组件的文件列表
fileList5: [], // 用于存储第四个上传组件的文件列表
fileList6: [], // 用于存储第四个上传组件的文件列表
list1: '', // 存储第一个上传组件的图片URL最多3张
list2: '', // 存储第二个上传组件的图片URL1张
list3: '', // 存储第三个上传组件的图片URL1张
list4: '', // 存储第四个上传组件的图片URL1张
list5: '', // 存储第四个上传组件的图片URL1张
list6: '' // 存储第四个上传组件的图片URL1张
};
},
onLoad() {
this.searchStatus()
this.getAgreement()
this.getAreaList()
},
// filters: {
// filtersRichText(html) { //控制小程序中图片大小
// let newContent = html.replace(/<img[^>]*>/gi, (match, capture) => {
// match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
// match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
// match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
// return match;
// });
// newContent = newContent.replace(/style="[^"]+"/gi, (match, capture) => {
// match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi,
// 'max-width:100%;');
// return match;
// });
// newContent = newContent.replace(/<br[^>]*\/>/gi, '');
// newContent = newContent.replace(/\<img/gi,
// '<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"');
// return newContent;
// }
// },
filters: {
formatTimestamp(value) {
if (!value) return '';
const date = new Date(value * 1000); // 将秒转换为毫秒
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始需要加1并补零
const day = String(date.getDate()).padStart(2, '0'); // 补零
return `${year}-${month}-${day}`;
}
},
methods: {
//同意
handleScroll() {
this.agreeShow = true
},
getTime() {
const currentDate = new Date();
const year = currentDate.getFullYear();
const month = String(currentDate.getMonth() + 1).padStart(2, '0'); // 月份从0开始需要加1
const day = String(currentDate.getDate()).padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;
return formattedDate;
},
dateShowHidden() {
this.dateShow = true
this.$refs.dateRef.innerValue = new Date(this.getTime()).getTime()
},
birthShowHidden() {
this.birthShow = true
this.$refs.birthRef.innerValue = new Date(this.getTime()).getTime()
},
// 成立时间
datefirm(e) {
console.log(e)
this.form.date = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
this.form.establish_time = Math.floor(new Date(e.value).getTime() / 1000);
this.dateShow = false
},
datecel(e) {
this.dateShow = false
},
// 出生日期
birthConfirm(e) {
this.form.birth = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
this.form.birthtime = Math.floor(new Date(e.value).getTime() / 1000);
this.birthShow = false
},
birthCancel() {
this.birthShow = false
},
close() {
this.show = false
},
cutShow() {
this.showCut = true
console.log('this.showCut', this.showCut)
},
open() {
this.show = true
},
change() {
this.agree = true
this.show = false
},
// 选择机构地址
protocolClick(tag) {
this.show = true
},
// 获取位置信息
getAreaList() {
uni.$u.http.get('/api/index/get_area', {
params: {
city: 410300
}
}).then(res => {
if (res.code == 1) {
this.institutionList[0] = res.data.map(area => ({
name: area.label,
value: area.value
}));
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
// 获取入驻协议文章
getAgreement() {
uni.$u.http.get('/api/index/agreement', {
params: {
}
}).then(res => {
if (res.code == 1) {
this.Negotiate = (res.data.entry_agreement).replace(/\<img/gi,
'<img style="max-width:100%;height:auto" ');
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
choose() {
console.log(11111)
const that = this
uni.chooseLocation({
success: function(res) {
console.log(res)
that.form.address = res.name
// that.form.address_detail = res.address
that.form.latitude = res.latitude
that.form.longitude = res.longitude
},
fail: function(rot) {
console.log(rot)
}
});
},
// 回调参数为包含columnIndex、value、values
confirm(e) {
console.log('confirm', e.value)
this.form.cut = e.value[0]
this.showCut = false
this.fileList1 = [],
this.fileList2 = [],
this.fileList3 = [],
this.fileList4 = [],
this.fileList5 = [],
this.fileList6 = [],
this.list1 = '',
this.list2 = '',
this.list3 = '',
this.list4 = '',
this.list5 = '',
this.list6 = ''
this.name = ''
},
cancel(e) {
this.showCut = false
},
// 性别
sexCancel(e) {
this.sexShow = false
},
sexConfirm(e) {
this.form.sex = e.value[0]
this.sexShow = false
},
// 政治面貌
outlookCancel(e) {
this.outLookShow = false
},
outlookConfirm(e) {
console.log(e.value)
this.form.outlook = e.value[0]
this.outLookShow = false
},
// 学历
diplomaCancel() {
this.diplomaShow = false
},
diplomaConfirm(e) {
this.form.diploma = e.value[0]
this.diplomaShow = false
},
// 机构地址
institutioncancel(e) {
this.institutionShow = false
},
institutionconfirm(e) {
this.form.institution = e.value[0].name
this.form.institutionCode = e.value[0].value
this.institutionShow = false
},
oversize(e) {
this.$u.toast("请传2MB以内大小的图片");
return false;
},
// 删除图片
deletePic(event) {
console.log(event);
const {
name,
index
} = event;
if (index >= 0 && index < this[`fileList${name}`].length) {
this[`fileList${name}`].splice(index, 1);
// 更新对应的 list 字段
// if (name === '1') {
// this.list1 = this.fileList1.map(item => item.url).join(',');
// console.log('Updated list1:', this.list1);
// } else
if (name === '1') {
this.list1 = this.fileList1.length > 0 ? this.fileList1[0].url : '';
console.log('Updated list1:', this.list1);
} else if (name === '2') {
this.list2 = this.fileList2.length > 0 ? this.fileList2[0].url : '';
console.log('Updated list2:', this.list2);
} else if (name === '3') {
this.list3 = this.fileList3.length > 0 ? this.fileList3[0].url : '';
console.log('Updated list3:', this.list3);
} else if (name === '4') {
this.list4 = this.fileList4.length > 0 ? this.fileList4[0].url : '';
console.log('Updated list4:', this.list4);
} else if (name === '5') {
this.list5 = this.fileList5.length > 0 ? this.fileList5[0].url : '';
console.log('Updated list5:', this.list4);
} else if (name === '6') {
this.list6 = this.fileList6.length > 0 ? this.fileList6[0].url : '';
console.log('Updated list6:', this.list6);
}
// 确保对应的 list 字段是一个数组
let list = this[`list${name}`];
if (!Array.isArray(list)) {
console.warn(`list${name} is not an array, skipping splice operation`);
} else {
list.splice(index, 1);
console.log(`Updated list${name}:`, list);
}
} else {
console.error('Invalid index');
}
},
// 新增图片
async afterRead(event) {
let lists = [].concat(event.file);
let fileListLen = this[`fileList${event.name}`].length;
let categoryMap = [{
category: 'user'
},
{
category: 'user'
},
{
category: 'user'
},
{
category: 'cert'
},
{
category: 'cert'
},
{
category: 'cert'
},
];
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
status: 'uploading',
message: '上传中'
});
});
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url, categoryMap[event.name - 1].category);
let item = this[`fileList${event.name}`][fileListLen];
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
status: 'success',
message: '',
url: result
}));
console.log(this[`fileList${event.name}`], ` this[\`fileList${event.name}\`]`)
fileListLen++;
// 更新对应的list字段
if (event.name === '1') {
this.list1 = this.fileList1[0]?.url || '';
} else if (event.name === '2') {
this.list2 = this.fileList2[0]?.url || '';
} else if (event.name === '3') {
this.list3 = this.fileList3[0]?.url || '';
} else if (event.name === '4') {
this.list4 = this.fileList4[0]?.url || '';
} else if (event.name === '5') {
this.list5 = this.fileList5[0]?.url || '';
} else if (event.name === '6') {
this.list6 = this.fileList6[0]?.url || '';
}
}
},
uploadFilePromise(url, category) {
console.log('category', category)
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: 'https://testy.hschool.com.cn//api/common/upload', // 仅为示例,非真实的接口地址
filePath: url,
name: 'file',
formData: {
user: 'test',
category: category
},
header: {
"token": uni.getStorageSync("token")
},
success: (res) => {
resolve(JSON.parse(res.data).data.fullurl);
},
fail: (err) => {
reject(err);
}
});
});
},
// 查询状态
// -1未申请 0待审核 1审核通过 2审核失败
searchStatus() {
uni.$u.http.get('/api/school/shop/auth_info', {
params: {}
}).then(res => {
if (res.code == 1) {
this.apply_info = res.data.apply_info
this.State = res.data.type
console.log(res.data.type)
if (res.data.auth_status == 2) {
this.status = 2
this.reason = res.data.reason
} else if (res.data.auth_status == 0) {
this.status = 0
} else if (res.data.auth_status == 1) {
this.status = 1
}
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
// 验证电话号码格式的方法
validateTel(tel) {
// 这里使用一个简单的正则表达式来验证电话号码格式
const telRegex = /^1[3-9]\d{9}$/; // 假设是中国大陆的手机号码格式
return telRegex.test(tel);
},
apply() {
let url = ''
let params = {}
let usciRegex = /^[0-9A-Z]{18}$/;
let _IDRe18 =
/^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
let _IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
if (!this.form.tel || !this.validateTel(this.form.tel)) {
// 提示电话号码不对
uni.showToast({
title: '请输入正确的电话号码!',
icon: 'none',
duration: 2000
});
return;
}
// 校验身份证:
// if (_IDRe18.test(this.form.cardNumber) || _IDre15.test(this.form.cardNumber)) {
// console.log(' 验证通过 ')
// } else {
// uni.showToast({
// title: '请输入正确的身份证号!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// 校验性别
// if (this.form.sex == '') {
// uni.showToast({
// title: '请输入性别!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// 校验详细地址
if (this.form.address_detail == '') {
uni.showToast({
title: '请输入详细地址!',
icon: 'none',
duration: 2000
});
return;
}
// 校验民族
// if (this.form.nation == '') {
// uni.showToast({
// title: '请输入民族!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// 校验出生日期
// if (this.form.birth == '') {
// uni.showToast({
// title: '请输入出生日期!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// 校验籍贯
// if (this.form.nativePlace == '') {
// uni.showToast({
// title: '请输入籍贯!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// 校验政治面貌
// if (this.form.outlook == '') {
// uni.showToast({
// title: '请选择政治面貌!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// 校验位置
if (this.form.address == '') {
uni.showToast({
title: '请选择位置!',
icon: 'none',
duration: 2000
});
return;
}
if (this.form.cut == '机构') {
url = '/api/school/shop/shopapply'
params = {
name: this.form.name,
yyzzdm: this.form.yyzzdm,
tel: this.form.tel,
desc: this.form.desc,
front_idcard_image: this.list5,
reverse_idcard_image: this.list6,
images: [this.list1, this.list2, this.list3].join(","),
yyzz_images: this.list4,
longitude: this.form.longitude,
latitude: this.form.latitude,
address: this.form.address,
address_detail: this.form.address_detail,
province: '410000',
city: '410300',
district: this.form.institutionCode,
establish_time: this.form.establish_time,
people: this.form.people,
legal_entity: this.form.legalEntity,
gender: this.form.sex == '男' ? 1 : 0,
nation: this.form.nation,
out_look: this.form.outlook,
birthtime: this.form.birthtime,
native_place: this.form.nativePlace,
card_number: this.form.cardNumber,
diploma: this.form.diploma,
post: this.form.post,
social_position: this.form.socialPosition
}
// if (this.list1 == '') {
// uni.showToast({
// title: '请上传机构门头照片!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// if (this.list2 == '') {
// uni.showToast({
// title: '请上传机构内部环境照片!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// if (this.list3 == '') {
// uni.showToast({
// title: '请上传机构外部环境照片!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// if (this.form.legalEntity == '') {
// uni.showToast({
// title: '请输入机构法人/委托人!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// if (this.form.institutionCode == '') {
// uni.showToast({
// title: '请选择县区!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
// if (usciRegex.test(this.form.yyzzdm)) {
// console.log('验证通过');
// } else {
// uni.showToast({
// title: '请输入正确的社会统一信用代码!',
// icon: 'none',
// duration: 2000
// });
// return;
// }
} else {
url = '/api/school/shop/userapply'
params = {
name: this.form.name,
tel: this.form.tel,
desc: this.form.desc,
front_idcard_image: this.list5,
reverse_idcard_image: this.list6,
longitude: this.form.longitude,
latitude: this.form.latitude,
address: this.form.address,
address_detail: this.form.address_detail,
province: '410000',
city: '410300',
district: this.form.institutionCode,
establish_time: this.form.establish_time,
people: this.form.people,
legal_entity: this.form.legalEntity,
gender: this.form.sex == '男' ? 1 : 0,
nation: this.form.nation,
out_look: this.form.outlook,
birthtime: this.form.birthtime,
native_place: this.form.nativePlace,
card_number: this.form.cardNumber,
diploma: this.form.diploma,
post: this.form.post,
social_position: this.form.socialPosition
}
}
console.log(params)
uni.$u.http.post(url, params).then(res => {
if (res.code == 1) {
uni.showToast({
title: '申请提交成功!',
icon: 'none',
duration: 2000,
complete: function() {
setTimeout(function() {
uni.switchTab({
url: "/pages/my/index"
})
}, 2000);
}
});
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
}
}
}
</script>
<style lang="scss" scoped>
.backImg {
background: linear-gradient(to bottom, #F1F2F8 0%, #F1F2F8 50%, #FFFFFF 100%);
}
.w-100 {
width: 100%;
}
.flex {
display: flex;
}
.justify-center {
justify-content: center;
}
.space-between {
justify-content: space-between;
}
.align-items {
align-items: center;
}
.flex-column {
flex-flow: column;
}
.justify-start {
justify-content: start;
}
.mar-top-30 {
margin-top: 30rpx;
}
.box {
width: 690rpx;
.title {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 32rpx;
color: #C0C0C0;
margin: 42rpx 0 24rpx 0;
}
.reason {
width: 100%;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-top: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 36rpx;
color: #343434;
line-height: 36rpx;
padding: 30rpx;
width: 630rpx;
letter-spacing: 4.5rpx;
}
.first {
width: 100%;
// height: 266rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
// margin-top: 32rpx;
.row {
width: 642rpx;
margin-top: 7rpx;
justify-content: space-between;
.label {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #343434;
line-height: 32rpx;
}
.row-right {}
}
.line-row {
margin-top: 25rpx;
width: 642rpx;
height: 1rpx;
background: #F1F2F8;
border-radius: 0rpx 0rpx 0rpx 0rpx;
}
}
/deep/.plasty {
text-align: right;
}
.second {
width: 690rpx;
// height: 340rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-top: 32rpx;
margin-bottom: 32rpx;
}
.third {
width: 690rpx;
.header {
margin: 42rpx 0 24rpx 0;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #343434;
line-height: 32rpx;
}
}
}
/deep/ .u-textarea {
height: 100%;
}
.ji /deep/ .u-upload .u-upload__wrap__preview__image {
width: 690rpx !important;
height: 450rpx !important;
}
.shenfen /deep/ .u-upload .u-upload__wrap__preview__image {
width: 690rpx !important;
height: 450rpx !important;
}
.bottom {
width: 750rpx;
height: 122rpx;
background: #FFFFFF;
box-shadow: 0rpx -6rpx 12rpx 0rpx rgba(111, 190, 255, 0.1);
border-radius: 0rpx 0rpx 0rpx 0rpx;
position: fixed;
bottom: 0;
z-index: 999;
span {
width: 642rpx;
height: 80rpx;
background: #008CFF;
border-radius: 401rpx 401rpx 401rpx 401rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 34rpx;
color: #FFFFFF;
line-height: 32rpx;
}
}
.input {
text-align: right;
font-family: PingFang SC, PingFang SC;
font-size: 28rpx;
color: #343434;
line-height: 32rpx;
}
.shenfen /deep/ .u-transition.data-v-39e33bf2.vue-ref.u-fade-enter-to.u-fade-enter-active:not(:first-child) {
margin-top: 20rpx;
}
.popup {
// width: 690rpx;
height: 950rpx;
margin-top: 40rpx;
}
.popup-footer {
display: flex;
justify-content: center;
align-items: center;
// margin: 30rpx 0;
height: 146rpx;
}
.zhixiao {
width: 642rpx;
height: 80rpx;
background: #E8E8E8;
border-radius: 401rpx 401rpx 401rpx 401rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 34rpx;
color: #FFFFFF;
line-height: 32rpx;
display: flex;
justify-content: center;
align-items: center;
}
// 滚动条样式
/deep/ ::-webkit-scrollbar {
/*滚动条整体样式*/
width: 4px !important;
height: 1px !important;
overflow: auto !important;
background: #ccc !important;
-webkit-appearance: auto !important;
display: block;
}
/deep/ ::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
border-radius: 10px !important;
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
background: #7b7979 !important;
}
/deep/ ::-webkit-scrollbar-track {
/*滚动条里面轨道*/
// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
// border-radius: 10px !important;
background: #FFFFFF !important;
}
</style>