2024-04-29 23:05:04 +08:00

2501 lines
63 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="content">
<view class="heder-tips">
简单3步 享开店好礼 {{step}}
</view>
<view class="steps">
<view class="steps-li" @click="step=1">
<view class="num act">
1
</view>
<view class="" style="font-size: 28rpx;color: #35BD3E;">
添加店铺
</view>
</view>
<u-line color="#99999B" length="148rpx" style="transform: translateY(-80rpx);"></u-line>
<view class="steps-li" @click="step=2">
<view class="num" :class="{act:step>1}">
2
</view>
<view class="" style="font-size: 28rpx;" :style="{color:step>1?'#35BD3E':''}">
资质认证
</view>
</view>
<u-line color="#99999B" length="148rpx" style="transform: translateY(-80rpx);"></u-line>
<view class="steps-li" @click="step=3">
<view class="num" :class="{act:step>2}">
3
</view>
<view class="" style="font-size: 28rpx;" :style="{color:step>2?'#35BD3E':''}">
入驻审核
</view>
</view>
</view>
<view class="" style="display: flex;align-items: center;margin-top: 30rpx;">
<u--image :showLoading="true" src="/static/images/YDT.png" style="margin: 0 auto;" width="670rpx"
height="202rpx"></u--image>
</view>
<u-transition :show="step==1" mode="slide-left">
<view class="step1" v-if='step==1'>
<view class="card">
<view class="card-tit">
店铺名称
</view>
<u--input placeholder="店铺名称" :maxlength='20' style="height: 100rpx;" border="surround"
v-model="formData.mer_name">
<template slot="suffix">
{{formData.mer_name.length}}/20
</template>
</u--input>
</view>
<view class="card">
<view class="card-tit">
店铺分类
</view>
<view class="card-cont">
<view class="card-cont-li" @click="showMerchantCategoryPicker=true">
{{formData.merchant_category_name|| '请选择店铺分类'}}
<u-icon name="arrow-right" color="#444444" size="15"></u-icon>
</view>
<u-line style="margin: 28rpx 0;"></u-line>
<view class="card-cont-li" @click="showStoreType=true">
{{formData.mer_storeType||'请选择店铺类型'}}
<u-icon name="arrow-right" color="#444444" size="15"></u-icon>
</view>
</view>
</view>
</view>
</u-transition>
<u-transition :show="step==2" :mode="step==1?'slide-right':'slide-right'">
<view class="step2" v-if='step==2'>
<view class="card">
<view class="card-tit">
公司性质
</view>
<view class="card-cont">
<view class="card-cont-li" @click="showCompanyType=true">
{{formData.is_company?'对公户':'个体户'}}
<u-icon name="arrow-right" color="#444444" size="15"></u-icon>
</view>
</view>
</view>
<view class="card">
<view class="card-tit">
请上传营业执照
</view>
<view class="upload">
<view class='uploadimg' @click="handleChooseImage(1)">
<u--image v-if="formData.images[0]" :showLoading="true" :src="formData.images[0]"
width="140rpx" height="140rpx"></u--image>
<u-icon v-if='!formData.images[0]' name="plus" color="#777777"></u-icon>
<view v-if='!formData.images[0]' style="color: #777777;font-size: 20rpx;">
上传图片
</view>
</view>
</view>
</view>
<view class="card">
<view class="card-tit">
店铺资质
</view>
<view class="card-cont">
<view class="card-cont-li">
<view class="ellipsis">
详细地址 {{formData.address}}
</view>
</view>
<u-line style="margin: 28rpx 0;"></u-line>
<view class="card-cont-li">
<view class="ellipsis">
公司名称 {{formData.company_name}}
</view>
</view>
<u-line style="margin: 28rpx 0;"></u-line>
<view class="card-cont-li">
法人名称 {{formData.name}}
</view>
<u-line style="margin: 28rpx 0;"></u-line>
<view class="card-cont-li">
<view class="ellipsis">
社会信用代码 {{formData.social_credit_code}}
</view>
</view>
</view>
</view>
<view class="card">
<view class="card-tit">
其他相关资质证明
</view>
<view class="upload" style="display: flex;flex-wrap: wrap;">
<u--image v-for="(item,index) in (formData.images.filter((i,k)=>k>0 ))"
style="margin-right: 20rpx;margin-bottom: 20rpx;" :showLoading="true" :src="item"
width="140rpx" height="140rpx"></u--image>
<view class='uploadimg' @click="handleChooseImage(0)">
<u-icon name="plus" color="#777777"></u-icon>
<view class="" style="color: #777777;font-size: 20rpx;">
上传图片
</view>
</view>
</view>
</view>
<view class="card">
<view class="card-tit">
电话认证
</view>
<view class="card-cont">
<view class="card-cont-li">
联系电话 {{formData.phone}}
</view>
<u-line style="margin: 28rpx 0;"></u-line>
<view class="card-cont-li">
<view class="" style="flex: 4;display: flex;align-items: center;">
验证码 <u--input style="padding-left: 40rpx;" border="none" v-model="formData.code">
</u--input>
</view>
<view class="" style="flex: 1;">
<u-button @click="handleVerify" type="success" shape="circle" :plain="true"
:text="text"></u-button>
</view>
</view>
</view>
</view>
</view>
</u-transition>
<u-transition :show="step==3" mode="slide-right">
<view class="step3" v-if='step==3'>
<view style="font-size: 36rpx;margin: 50rpx 0 34rpx 0;text-align:center">
店铺等待审核
</view>
<view style="font-size: 32rpx;font-family: PFR;margin-bottom: 40rpx;text-align:center">
店铺已提交入驻申请
</view>
<view class="step3-card">
<view class="" style="display: flex;justify-content: space-between;font-size: 32rpx;">
<text>{{formData.mer_name}}</text>
<text style="font-family: PFR;" v-if='formData.status==0'>等待审核</text>
<text style="font-family: PFR;" v-if='formData.status==1'>审核通过</text>
<text style="font-family: PFR;" v-if='formData.status==2'>审核失败</text>
</view>
<view v-if='formData.status==2' style="color: #777;font-size: 24rpx;margin-top: 28rpx;">
原因:{{formData.create_time}}
</view>
<view class="" style="color: #777;font-size: 24rpx;margin-top: 28rpx;">
提交时间:{{formData.create_time}}
</view>
</view>
</view>
</u-transition>
<view class="agreen" v-if='step==1'>
<u-checkbox-group activeColor="#20B128" v-model="checkboxValue1" placement="column">
<u-checkbox :customStyle="{marginBottom: '8px'}" label="已阅读并同意" name="1">
</u-checkbox>
</u-checkbox-group>
<text style="color: #35BD3E;" @click="getConfig">《入驻协议》</text>
</view>
<view class="submit-btn">
<u-button text="添加店铺" @click="submit" shape='circle'
color=" linear-gradient( 132deg, #38BE41 0%, #20B128 100%)"></u-button>
</view>
<u-picker cancelColor='#3ABE40' confirmColor='#3ABE40' @cancel='showMerchantCategoryPicker=false'
@confirm='confirmCate' :show="showMerchantCategoryPicker" keyName="category_name"
:columns="MerchantCategoryColumn"></u-picker>
<u-picker cancelColor='#3ABE40' confirmColor='#3ABE40' @cancel='showStoreType=false' @confirm='confirmType'
:show="showStoreType" keyName="type_name" :columns="StoreTypeColumn">
</u-picker>
<u-picker cancelColor='#3ABE40' confirmColor='#3ABE40' @cancel='showCompanyType=false' @confirm='confirmCompany'
:show="showCompanyType" :columns="companyColumn" keyName='label'>
</u-picker>
<view class="settlementAgreement" v-if="showProtocol">
<view class="setAgCount" style="width: 656rpx;height: 458px;">
<view class="close" @click="showProtocol = false">
<u-icon name="close-circle-fill" color="#B4B1B4" size="24"></u-icon>
</view>
<div class="title">'商户入驻协议'</div>
<view class="content">
<jyf-parser :html="protocol" ref="article" :tag-style="tagStyle"></jyf-parser>
</view>
</view>
</view>
<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }"
ref="verify">
</Verify>
</view>
</template>
<script>
import {
configMap
} from "@/utils";
import {
mapGetters
} from "vuex";
import {
Toast
} from "../../../libs/uniApi";
import {
create,
verify,
merchantLicenseIdentify,
merClassifly,
getStoreTypeApi,
getIntention,
getGoodsDetails
} from '@/api/store.js';
import Verify from '@/components/verify/verify.vue';
export default {
components: {
Verify
},
data() {
return {
tagStyle: {
img: 'width:100%;display:block;'
},
disabled: false,
checkboxValue1: ['1'],
protocol: this.sys_intention_agree,
step: 1,
showProtocol: false,
showMerchantCategoryPicker: false,
showCompanyType: false,
showStoreType: false,
MerchantCategoryColumn: [],
StoreTypeColumn: [
],
companyColumn: [
[{
label: '对公户',
is_company: 1
}, {
label: '个体户',
is_company: 0
}]
],
text: '获取验证码',
formData: {
"phone": "",
"mer_name": "",
"name": "",
"code": "1212",
"company_name": "",
"address": "123号",
"invitation_code": "",
"social_credit_code": "",
"merchant_category_id": 0,
"merchant_category_name": "",
"is_company": 1,
"mer_type_id": 0,
"mer_storeType": "",
province_name: "",
mer_intention_id: "",
"city_name": "",
"area_name": "",
"street_name": "",
"village_name": '',
"is_nmsc": 0,
"images": [],
step: 1
}
}
},
computed: configMap({
sys_intention_agree: ''
}, mapGetters(['isLogin', 'viewColor', 'keyColor'])),
methods: {
splitAddress(str) {
var reg = /.+?(省|市|自治区|自治州|县|区|镇|社区|街道|街|村)/g; // 省市区的正则
let list = str.match(reg)
console.log(list)
this.formData.province_name = list[0]
this.formData.city_name = list[1]
this.formData.area_name = list[2]
this.formData.street_name = list[3]
this.formData.village_name = list[4]
},
confirmCate(e) {
console.log(e)
this.formData.merchant_category_name = e.value[0].category_name
this.formData.merchant_category_id = e.value[0].merchant_category_id
this.showMerchantCategoryPicker = false
},
confirmType(e) {
this.formData.mer_storeType = e.value[0].type_name
this.formData.mer_type_id = e.value[0].mer_type_id
this.showStoreType = false
},
confirmCompany(e) {
this.formData.is_company = e.value[0].is_company
this.showCompanyType = false
},
getConfig() {
this.showProtocol = true;
// 获取配置
this.protocol = this.sys_intention_agree;
},
// 选择图片
handleChooseImage(type = 0) {
let that = this;
that.$util.uploadImageOne({
count: 1,
url: 'upload/image'
}, function(res) {
type ? that.getInfoByImg(res.data.path) :
that.formData.images.push(res.data.path)
});
},
// 识别图片
getInfoByImg(img) {
let that = this
this.formData.images = [img]
uni.showLoading({
title: '识别中'
})
merchantLicenseIdentify({
image: img
}).then(res => {
uni.hideLoading();
if (res.status == 200) {
that.formData.address = res.data.address;
that.formData.name = res.data.legal_person;
// that.formData.social_credit_code = res.data.register_number;
that.formData.social_credit_code = '454as5455457sdfdf';
that.formData.company_name = res.data.name;
console.log(that.splitAddress(res.data.address))
} else {
that.$util.Tips({
title: "识别失败!"
})
}
}).catch((e) => {
uni.hideLoading();
that.$util.Tips({
title: "识别失败"
})
})
},
handleVerify() {
this.$refs.verify.show();
},
success(data) {
this.$refs.verify.hide();
this.code(data);
},
async code(data) {
let that = this;
await verify({
phone: that.formData.phone,
type: 'intention',
captchaType: 'blockPuzzle',
captchaVerification: data.captchaVerification
}).then(res => {
that.$util.Tips({
title: res.msg
});
that.sendCode();
}).catch(res => {
that.$util.Tips({
title: res
});
});
},
sendCode() {
if (this.disabled) return;
this.disabled = true;
let n = 60;
this.text = "剩余 " + n + "s";
const run = setInterval(() => {
n = n - 1;
if (n < 0) {
clearInterval(run);
}
this.text = "剩余 " + n + "s";
if (this.text < "剩余 " + 0 + "s") {
this.disabled = false;
this.text = "重新获取";
}
}, 1000);
},
submit() {
if (!this.checkboxValue1[0]) {
return Toast("请勾选用户协议")
}
this.formData.step = this.step
create(this.formData).then(res => {
console.log(res.data.mer_intention_id, 'res')
this.formData.mer_intention_id = res.data.mer_intention_id
this.step++
}).catch(err => {
console.log(err, 'err')
Toast(err)
})
}
},
onLoad() {
this.formData.phone = this.$store.state.app.userInfo.account
console.log(this.$store.state.app.userInfo)
merClassifly().then(res => {
this.MerchantCategoryColumn = [res.data]
})
getStoreTypeApi().then(res => {
this.StoreTypeColumn = [res.data]
})
getIntention(this.$store.state.app.userInfo.uid).then(res => {
if (Object.keys(res.data).length == 0) return
this.formData = res.data
this.step = this.formData.step
this.formData.phone = this.$store.state.app.userInfo.account
if (this.formData.step == 3) {
getGoodsDetails(this.$store.state.app.userInfo.uid)
}
})
}
}
</script>
<style lang="scss" scoped>
.content {
min-height: 100vh;
background-color: #fff;
padding: 40rpx;
box-sizing: border-box;
font-family: PF;
padding-bottom: 200rpx;
.heder-tips {
font-weight: 400;
font-size: 24rpx;
color: #20B128;
text-align: center;
margin-bottom: 50rpx;
}
.steps {
display: flex;
justify-content: center;
.num {
width: 52rpx;
height: 52rpx;
border-radius: 52rpx;
background-color: #F3F3F3;
text-align: center;
line-height: 52rpx;
margin: 0 auto;
margin-bottom: 16rpx;
}
.act {
background-color: #20B128;
color: white;
}
}
.card {
.card-tit {
font-size: 32rpx;
margin: 40rpx 0 30rpx 0;
}
.card-cont {
padding: 30rpx;
border: 1px solid #F3F3F3;
border-radius: 16rpx;
font-family: PFR;
color: #777777;
.card-cont-li {
display: flex;
justify-content: space-between;
align-items: center;
}
.ellipsis {
// background-color: red;
width: 600rpx;
white-space: nowrap;
/* 防止文本换行 */
overflow: hidden;
/* 隐藏超出容器的文本 */
text-overflow: ellipsis;
/* 使用省略号来表示被截断的文本 */
}
}
}
.agreen {
display: flex;
margin-top: 60rpx;
}
}
.uploadimg {
width: 140rpx;
height: 140rpx;
border-radius: 16rpx;
border: 2rpx solid #F1F1F1;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
box-sizing: border-box;
padding: 20rpx 0;
overflow: hidden;
}
.step3-card {
width: 670rpx;
background: #FBFBFB;
box-shadow: 0rpx 6rpx 12rpx 2rpx rgba(0, 0, 0, 0.16);
border-radius: 16rpx 16rpx 16rpx 16rpx;
padding: 50rpx;
}
.submit-btn {
position: fixed;
bottom: 50rpx;
width: 670rpx;
}
.settlementAgreement {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 12;
background: rgba(0, 0, 0, .5);
}
.settlementAgreement .setAgCount {
background: #fff;
width: 694rpx;
// height: 458px;
position: absolute;
top: 50%;
left: 50%;
padding: 28rpx;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
overflow: hidden;
.content {
height: 900rpx;
overflow-y: scroll;
/deep/ p {
font-size: 13px;
line-height: 22px;
}
/deep/ img {
max-width: 100%;
}
}
}
.settlementAgreement .setAgCount .close {
position: absolute;
top: 15rpx;
right: 15rpx;
}
.settlementAgreement .setAgCount .icon {
font-size: 42rpx;
color: #b4b1b4;
position: absolute;
top: 15rpx;
right: 15rpx;
}
.settlementAgreement .setAgCount .title {
color: #333;
font-size: 32rpx;
text-align: center;
font-weight: bold;
}
.settlementAgreement .setAgCount .content {
color: #333;
font-size: 26rpx;
line-height: 22px;
text-align: justify;
text-justify: distribute-all-lines;
overflow-y: scroll;
padding-bottom: 20rpx;
}
.settlementAgreement .setAgCount .contenta {
color: #333;
font-size: 26rpx;
line-height: 22px;
text-align: justify;
text-justify: distribute-all-lines;
height: 85%;
overflow-y: scroll;
}
.code {
position: absolute;
width: 93px;
line-height: 27px;
border: 1px solid var(--view-theme);
border-radius: 15px;
color: var(--view-theme);
text-align: center;
bottom: 8px;
right: 0;
font-size: 12px;
}
.code.on {
background-color: #bbb;
color: #fff;
border-color: #bbb;
}
</style> -->
<template>
<view class="page" :style="{'height':successful?'100vh':''}">
<!-- #ifdef MP || APP-PLUS -->
<view class="conten-top" :style="'height:'+statusBarHeight+'px'" :class="{'bar-top-bg':barBg}"
v-if="!successful">
<view class="" style="position: absolute;left: 30rpx;bottom: 15rpx;" @click="logout"><i
class="iconfont icon-xiangzuo" style="font-size: 40rpx;text-align: left;color:#fff;"></i></view>
<view class=""
style="position: absolute;bottom: 15rpx;width: 500rpx; left:50%;transform: translate(-50%);text-align: center;color:#fff;font-size: 32rpx;font-weight: bold;">
商家入驻
</view>
</view>
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="header" v-if="!successful">
<view class="title-bar" :class="{'bar-top-bg':barBg}">
<view class="title-bar-icon" @click="logout">
<i class="iconfont icon-xiangzuo"></i>
</view>
<view class="title-bar-txt">
商家入驻
</view>
</view>
</view>
<!-- #endif -->
<view v-if="!successful" :style="viewColor">
<form report-submit='true'>
<view class='merchantsSettled'>
<view class="merchantBgCount">
<image mode="widthFix" class="merchantBg"
src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/7d0f8202403160938542943.webp" alt="">
</view>
<view class="application-record" @click="jumpToList" v-if="!mer_i_id">
申请记录
<text class="iconfont icon-xiangyou"></text>
</view>
<view class='list'>
<view class="list-title">商家入驻</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">商户名称</text>
<input type="text" maxlength="30" placeholder="请输入商户名称"
v-model="merchantData.enterprise_name" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name">商户分类</text>
<picker @change="bindPickerChange" @columnchange="columnchange" mode="selector"
:value="index" :range="array" range-key="category_name">
<input placeholder="请选择商户分类" type="text" readonly disabled
v-model="mer_classification">
<view class='iconfont icon-jiantou'></view>
</picker>
</view>
</view>
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name">店铺类型</text>
<text class="iconfont wenhao" @click="getAgreement">?</text>
<picker @change="bindPickerChange1" :value="index1" :range="storeTypeArr"
range-key="type_name">
<input placeholder="请选择店铺类型" type="text" disabled readonly
v-model="mer_storeType">
<view v-if="mer_storeType" @tap.stop="mer_storeType=''"
class="iconfont icon-guanbi2"></view>
<view class='iconfont icon-jiantou'></view>
</picker>
</view>
</view>
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">店铺所在地</text>
<picker mode=multiSelector @change="bindPickerChange2" :value="index2"
:range="business" range-key="name" @columnchange="pickerColumnchange">
<view class="businessBox"
:style="{'color':(business_name == '' || business_name.length == 5)?'#B2B2B2':''}"
style="width: 400rpx;word-break: keep-all;line-height: 40rpx;font-size: 30rpx;">
{{(business_name == '' || business_name.length == 5)?'请选择商圈':business_name}}
</view>
<view class='iconfont icon-jiantou'></view>
</picker>
</view>
</view>
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name">公司性质</text>
<picker @change="natureBusinessChange" mode="selector" :value="index"
:range="companyTypeList">
<input placeholder="请选择公司性质" type="text" readonly disabled
:value="nature_business==''?'':nature_business==1?'对公户':'个体户'">
<view class='iconfont icon-jiantou'></view>
</picker>
</view>
</view>
</view>
</view>
<view class="item no-border">
<view class='acea-row row-middle'>
<text class="item-title" style="margin-right: 20rpx;">请上传营业执照</text>
<text class="item-desc">(图片格式支持JPG、PNG、JPEG)</text>
<view class="upload">
<view v-if="business_license" class='pictrue' @click='uploadpicText'>
<image :src='business_license'></image>
</view>
<view v-else class='pictrue acea-row row-center-wrapper row-column'
@click='uploadpicText'>
<text class='iconfont icon-icon25201'></text>
<view>上传图片</view>
</view>
</view>
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">详细地址</text>
<input type="text" maxlength="30" placeholder="自动识别"
v-model="merchantData.address" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">公司名称</text>
<input type="text" maxlength="30" placeholder="自动识别"
v-model="merchantData.company_name" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">法人名称</text>
<input type="text" placeholder="自动识别" v-model="merchantData.user_name"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name businessBox">社会信用代码</text>
<input type="text" maxlength="30" placeholder="自动识别"
v-model="merchantData.social_credit_code" @input="validateBtn"
placeholder-class='placeholder' />
</view>
</view>
</view>
</view>
<view class="item no-border">
<view class='acea-row row-middle'>
<text class="item-title">请上传行业相关其他资质证明图片</text>
<text class="item-desc">(图片最多可上传10张,图片格式支持JPG、PNG、JPEG)</text>
<view class="upload">
<view class='pictrue' v-for="(item,index) in pics" :key="index" :data-index="index"
@click="getPhotoClickIdx">
<image :src='item'></image>
<text class='iconfont icon-guanbi1' @click.stop='DelPic(index)'></text>
</view>
<view class='pictrue acea-row row-center-wrapper row-column' @click='uploadpic'
v-if="pics.length < 10">
<text class='iconfont icon-icon25201'></text>
<view>上传图片</view>
</view>
</view>
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">联系电话</text>
<input type="text" placeholder="请输入手机号" v-model="merchantData.phone"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<view class="item rel">
<view class="acea-row row-middle">
<text class="item-name">验证码</text>
<input type="number" maxlength="4" placeholder="填写验证码" v-model="merchantData.yanzhengma"
@input="validateBtn" class="codeIput" placeholder-class='placeholder' />
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''"
@click="handleVerify">
{{ text }}
</button>
</view>
</view>
<view class="item" v-if="isShowCode">
<view class="acea-row row-middle">
<text class="item-name">验证码</text>
<input type="number" maxlength="4" placeholder="请输入验证码" class="codeIput"
v-model="codeVal" @input="validateBtn" placeholder-class='placeholder' />
<view class="imageCode" @click="again">
<image :src="codeUrl" />
</view>
</view>
</view>
<view class="item no-border">
<checkbox-group @change='ChangeIsAgree'>
<checkbox class="checkbox" :checked="isAgree ? true : false" />已阅读并同意
</checkbox-group>
<button class="settleAgree" @click="getConfig">《入驻协议》</button>
</view>
<button class='submitBtn' :class="validate === true? 'on':''" @click="formSubmit">
提交申请
</button>
</view>
</view>
</form>
<view class="settlementAgreement" v-if="showProtocol">
<view class="setAgCount" style="width: 656rpx;height: 458px;">
<view class="close" @click="showProtocol = false">
<u-icon name="close-circle-fill" color="#B4B1B4" size="24"></u-icon>
</view>
<div class="title">{{isType ? '店铺类型说明' : '商户入驻协议'}}</div>
<view class="content">
<jyf-parser :html="protocol" ref="article" :tag-style="tagStyle"></jyf-parser>
</view>
</view>
</view>
<view class="settlementAgreement" v-if="isshow">
<view class="setAgCount" style="width: 100%;height: 100%;padding-top: 180rpx;">
<view class="" style="width: 60rpx;height: 60rpx; position: absolute;left: 30rpx; top:90rpx"
@click="recuo">
<i class="iconfont icon-xiangzuo" style="width: 60rpx;height: 60rpx;font-size: 40rpx;"></i>
</view>
<div class="title">{{detail.title}}</div>
<!-- <view style="margin: 20rpx 0;">甲方公司:{{company?company:"暂无公司信息"}}</view>
<view style="margin: 20rpx 0;">机构代码:{{organization_code?organization_code:"暂无公司信息"}}</view> -->
<view class="contenta" v-if="detail.mer_services_agree">
<jyf-parser :html="detail.mer_services_agree" ref="article" :tag-style="tagStyle"></jyf-parser>
</view>
<view class="contenta" v-else>
<jyf-parser :html="detail.mer_supply_agree" ref="article" :tag-style="tagStyle"></jyf-parser>
</view>
<view class="setAgCountbtn">
<view class="border"></view>
<button :class="num>0?'setAgCountbtnb':'setAgCountbtnc'" class="btn" :disabled="num!=0"
@click="agree">
<text v-if="num>0">请仔细阅读协议 {{num}}秒后可提交</text>
<text v-else>同意本协议</text>
</button>
</view>
</view>
</view>
<view class='loadingicon acea-row row-center-wrapper' v-if="loading">
<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>
</view>
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse">
</authorize>
<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }"
ref="verify">
</Verify>
</view>
<view class="settledSuccessMain " v-else :style="viewColor">
<view class="settledSuccessful">
<image class="image" src="../static/images/settledSuccessful.svg" alt="">
<view class="title">恭喜您的资料提交成功</view>
<view class="info">预计15个工作日内审核完毕平台客服会及时与您联系</view>
<view class="goHome" hover-class="none" @click="goHome">
返回首页
</view>
</view>
</view>
</view>
</template>
<script>
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import {
create,
verify,
merClassifly,
getCategoryList,
getGoodsDetails,
updateGoodsRecord,
getStoreTypeApi,
agreeiness,
merchantLicenseIdentify
} from '@/api/store.js';
import {
getCaptcha,
getAgreementApi,
} from "@/api/user";
import {
getStreet,
getArea,
getVillage,
getCitys
} from "@/api/article.js"
import {
mapGetters
} from "vuex";
import {
configMap
} from "@/utils";
import {
intention,
} from "@/api/product"
import parser from "@/components/jyf-parser/jyf-parser";
import authorize from '@/components/Authorize';
import Verify from '@/components/verify/verify.vue';
import {
HTTP_REQUEST_URL
} from '@/config/app';
import {
Toast
} from '../../../libs/uniApi';
const app = getApp();
export default {
components: {
"jyf-parser": parser,
authorize,
Verify
},
data() {
return {
company: '',
organization_code: '',
domain: HTTP_REQUEST_URL,
cartId: '', //购物车id
pinkId: 0, //拼团id
couponId: 0, //优惠券id
isAuto: false, //没有授权的不会自动授权
isShowAuth: false, //是否隐藏授权
text: "获取验证码",
codeUrl: "",
disabled: false,
isAgree: false,
showProtocol: false,
isShowCode: false,
loading: false,
isshow: false,
merchantData: {
enterprise_name: "",
user_name: "",
phone: "",
classification: '',
social_credit_code: '',
company_name: '',
address: '',
invitation_code: '',
},
business_license: '', //营业执照
bank_front: '', //银行卡照片
validate: false,
successful: false,
keyCode: "",
codeVal: "",
protocol: this.sys_intention_agree,
timer: "",
index: 0,
index1: 0,
index2: [0, 0, 0],
mer_classification: "",
nature_business: 0,
array: [{
category_name: '',
merchant_category_id: ''
}],
companyTypeList: ['对公户', '个体户'],
bindPickerChangeidx: [],
storeTypeArr: [{
type_name: '',
mer_type_id: ''
}],
StreetTyoeArr: [{
city_id: '',
area_id: '',
street_id: '',
village_id: ''
}],
mer_storeType: '',
city_id: '',
area_id: '',
street_id: '',
village_id: '',
isnm: false,
isnum: 0,
code1: '',
code2: '',
business_name: '',
business: [],
pics: [],
tagStyle: {
img: 'width:100%;display:block;'
},
mer_i_id: null, // 商户申请id
isType: false,
num: 10,
detail: {},
statusBarHeight: 0,
where: {
type: 1,
page: 1,
limit: 10
},
codenote: [],
barBg: false, //导航栏背景
};
},
beforeDestroy() {
clearTimeout(this.timer)
},
computed: configMap({
sys_intention_agree: ''
}, mapGetters(['isLogin', 'viewColor', 'keyColor'])),
onPageScroll(e) {
if (e.scrollTop > 50) {
this.barBg = true;
} else {
this.barBg = false;
}
},
onLoad(options) {
if (this.isLogin) {
this.getClassfication();
this.getStoreType();
} else {
this.isAuto = true;
this.isShowAuth = true
}
if (options.mer_i_id) {
this.mer_i_id = options.mer_i_id
uni.showLoading({
title: '获取数据中',
});
this.$nextTick(function() {
this.getGoodsDetails(options.mer_i_id)
})
} else this.getCity();
this.shoplist('mer_services_agree');
this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 45;
},
methods: {
//获取交易信息
codelist() {
intention(this.where).then(res => {
this.codenote = res.data.list
})
},
//退出
logout() {
uni.switchTab({
url: '/pages/user/index'
})
},
//关闭弹窗
recuo() {
if (this.num > 0) {
this.num = 10
this.isshow = false
} else {
this.num = 10
this.isshow = false
}
},
countDown() {
let {
num
} = this;
num = num > 0 ? num - 1 : "0";
setTimeout(() => {
this.num = num;
if (num == '0') {
return
}
if (this.isshow == false && this.num > 0) {
this.num = 10
return
}
this.countDown();
}, 1000);
},
//获取商户入驻申请协议
shoplist(val) {
agreeiness({
type: val
}).then(res => {
this.detail = res.data
})
},
// 获取村
getVillage(street = null) {
const self = this;
getVillage({
street_code: street
}).then(res => {
self.$set(self.business, 3, res.data);
if (self.mer_i_id && !this.business_name) {
let city = self.business[0].find(item => item.code == self.city_id)?.name;
const zero = self.business[0].findIndex(item => item.code == self.city_id);
this.index2[0] = zero;
let area = self.business[1].find(item => item.code == self.area_id)?.name;
const one = self.business[0].findIndex(item => item.code == self.area_id);
this.index2[1] = one;
let street = self.business[2].find(item => item.code == self.street_id)?.name;
const two = self.business[0].findIndex(item => item.code == self.street_id);
this.index2[2] = two;
let village = self.business[3].find(item => item.id == self.village_id)?.name;
const three = self.business[0].findIndex(item => item.code == self.village_id);
this.index2[3] = three;
this.business_name = `${city} ${area} ${street} ${village}`;
}
})
},
//获取镇
getStreet(area = null, street = null) {
const self = this;
getStreet({
area_code: area
}).then(res => {
this.business[2] = res.data;
street = street == null ? self.business[2][0].code : street;
self.getVillage(street)
})
},
//获取区
getArea(city = null, area = null, street = null) {
getArea({
city_code: city
}).then(res => {
this.business[1] = res.data;
area = area == null ? this.business[1][0].code : area;
this.getStreet(area, street)
})
},
// 获取市
getCity(city = null, area = null, street = null) {
getCitys().then(res => {
this.business[0] = res.data;
const code = this.business[0][0].code; //市 初始化
city = city == null ? code : city;
this.getArea(city, area, street);
})
},
//商圈数据变化
pickerColumnchange(e) {
if (e.detail.column === 0) { //第0列
this.getArea(this.business[0][e.detail.value].code);
this.index2[0] = e.detail.value
this.index2[1] = 0
this.index2[2] = 0
this.index2[3] = 0
} else if (e.detail.column === 1) {
this.getStreet(this.business[1][e.detail.value].code)
this.index2[1] = e.detail.value
this.index2[2] = 0
this.index2[3] = 0
} else if (e.detail.column === 2) {
this.getVillage(this.business[2][e.detail.value].code)
this.index2[2] = e.detail.value
this.index2[3] = 0
} else if (e.detail.column == 3) {
this.index2[3] = e.detail.value
}
},
getConfig() {
this.isType = false;
this.showProtocol = true;
// 获取配置
this.protocol = this.sys_intention_agree;
},
/*获取发票说明*/
getAgreement() {
let that = this
that.showProtocol = true;
that.isType = true
getAgreementApi('sys_merchant_type').then(res => {
that.protocol = res.data.sys_merchant_type
})
},
// 获取历史提交数据详情
getGoodsDetails(id) {
getGoodsDetails(id).then(res => {
let resData = res.data
this.merchantData.enterprise_name = resData.mer_name
this.merchantData.user_name = resData.name
this.merchantData.phone = resData.phone
this.merchantData.social_credit_code = resData.social_credit_code
this.merchantData.company_name = resData.company_name
this.merchantData.address = resData.address
this.merchantData.invitation_code = resData.invitation_code
this.merchantData.classification = resData.merchant_category_id
this.merchantData.mer_type = resData.mer_type_id
this.city_id = resData.city_id;
this.area_id = resData.area_id
this.street_id = resData.street_id
this.village_id = resData.village_id;
// const bankInfo = resData.financial_bank ? JSON.parse(resData.financial_bank) : '';
// this.$set(this.merchantData, 'bank_code', bankInfo.bank_code);
// this.$set(this.merchantData, 'bank_username', bankInfo.bank);
// this.$set(this.merchantData, 'bank_opening', bankInfo.bank_branch);
// this.$set(this.merchantData, 'bank_card_username', bankInfo.name);
// this.bank_front = bankInfo.bank_front[0] ? bankInfo.bank_front[0] : '';
this.nature_business = resData.is_company == 1 ? 1 : 2;
this.business_license = resData.images[0];
resData.images.shift();
this.pics = resData.images;
this.mer_classification = this.getCategoryName(resData.merchant_category_id, this.array)
this.mer_storeType = this.getStoreTypeName(resData.mer_type_id, this.storeTypeArr)
this.business_name = '';
this.getCity(this.city_id, this.area_id, this.street_id);
if (resData.mer_type_id != 12) {
this.shoplist('mer_services_agree')
} else {
this.shoplist('mer_supply_agree')
}
uni.hideLoading();
})
},
//获取商户分类名称
getCategoryName(id, arr) {
for (let i = 0; i < arr.length; i++) {
if (arr[i].merchant_category_id === id) {
return arr[i]['category_name']
}
}
},
//获取店铺类型名称
getStoreTypeName(id, arr) {
for (let i = 0; i < arr.length; i++) {
if (arr[i].mer_type_id === id) {
return arr[i]['type_name']
}
}
},
// 选择公司性质
natureBusinessChange(e) {
this.nature_business = this.companyTypeList[e.detail.value] == '个体户' ? 2 : 1;
},
bindPickerChange: function(e) {
let idx = e.target.value;
this.merchantData.classification = this.array[idx]['merchant_category_id']
this.mer_classification = this.array[idx]['category_name']
this.validateBtn()
},
columnchange(e) {
if (e.detail.column == 0) {
this.bindPickerChangeidx = this.array[e.detail.value].children;
}
},
bindPickerChange1: function(e) {
this.index1 = e.target.value
let idx = e.target.value
this.merchantData.mer_type = this.storeTypeArr[idx]['mer_type_id']
this.mer_storeType = this.storeTypeArr[idx]['type_name']
this.shoplist('mer_services_agree')
// if (this.storeTypeArr[idx]['type_code'] == 'TypeStore' && this.merchantData.mer_type) {
// this.shoplist('mer_services_agree')
// } else {
// this.shoplist('mer_supply_agree')
// }
this.validateBtn()
},
bindPickerChange2: function(e) {
this.index2 = e.detail.value
this.business_name =
`${this.business[0][this.index2[0]].name} ${this.business[1][this.index2[1]].name} ${this.business[2][this.index2[2]].name} ${this.business[3][this.index2[3]].name}`
this.city_id = this.business[0][this.index2[0]].code;
this.area_id = this.business[1][this.index2[1]].code;
this.street_id = this.business[2][this.index2[2]].code
this.village_id = this.business[3][this.index2[3]].id
},
// 获取商户分类
getClassfication: function() {
merClassifly().then(res => {
this.array = res.data
}).catch(res => {
this.$util.Tips({
title: res
});
});
},
// 获取店铺类型
getStoreType: function() {
getStoreTypeApi().then(res => {
this.storeTypeArr = res.data
// 初始化默认
this.merchantData.mer_type = this.storeTypeArr[0].mer_type_id;
this.mer_storeType = this.storeTypeArr[0].type_name;
}).catch(res => {
this.$util.Tips({
title: res
});
});
},
// 图片预览
// 获得相册 idx
getPhotoClickIdx(e) {
let _this = this;
let idx = e.currentTarget.dataset.index;
_this.imgPreview(_this.pics, idx);
},
// 图片预览
imgPreview: function(list, idx) {
// list图片 url 数组
if (list && list.length > 0) {
uni.previewImage({
current: list[idx], // 传 Number H5端出现不兼容
urls: list
});
}
},
// 授权回调
onLoadFun: function() {
this.isShowAuth = false;
},
// 授权关闭
authColse: function(e) {
this.isShowAuth = e
},
toggleTab(str) {
this.$refs[str].show();
},
// 首页
goHome() {
uni.switchTab({
url: '/pages/index/index'
});
},
again() {
this.getcaptcha()
},
// 上传文件
uploadpic: function() {
let that = this;
that.$util.uploadImageOne('upload/image', function(res) {
that.pics.push(res.data.path);
that.$set(that, 'pics', that.pics);
});
},
uploadpicBack: function() {
let that = this;
that.$util.uploadImageOne('upload/image', function(res) {
that.bank_front = res.data.path;
});
},
// 上传图片识别文字
uploadpicText: function() {
let that = this;
that.$util.uploadImageOne('upload/image', function(res) {
that.business_license = res.data.path;
uni.showLoading({
title: '识别中'
})
merchantLicenseIdentify({
image: res.data.path
}).then(res => {
uni.hideLoading();
if (res.status == 200) {
that.merchantData.address = res.data.address;
that.merchantData.user_name = res.data.legal_person;
that.merchantData.social_credit_code = res.data.register_number;
that.merchantData.company_name = res.data.name;
// that.$set('merchantData', that.merchantData);
} else {
that.$util.Tips({
title: "识别失败!"
})
}
}).catch((e) => {
uni.hideLoading();
that.$util.Tips({
title: "识别失败"
})
})
});
},
// 删除图片
DelPic: function(index) {
let that = this,
pic = this.pics[index];
that.pics.splice(index, 1);
that.$set(that, 'pics', that.pics);
},
getCode() {
let that = this
getCodeApi().then(res => {
that.keyCode = res.data.key;
}).catch(res => {
that.$util.Tips({
title: res
});
});
},
async code(data) {
let that = this;
if (!that.merchantData.phone) return that.$util.Tips({
title: '请填写手机号码'
});
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.merchantData.phone)) return that.$util.Tips({
title: '请输入正确的手机号码'
});
await verify({
phone: that.merchantData.phone,
// key: that.codeKey,
// code: that.codeVal,
type: 'intention',
captchaType: 'blockPuzzle',
captchaVerification: data.captchaVerification
}).then(res => {
that.$util.Tips({
title: res.msg
});
that.sendCode();
}).catch(res => {
that.$util.Tips({
title: res
});
});
},
getcaptcha() {
let that = this
getCaptcha().then(data => {
that.codeUrl = data.data.captcha; //图片路径
that.codeVal = data.data.code; //图片验证码
that.codeKey = data.data.key //图片验证码key
})
that.isShowCode = true;
},
sendCode() {
if (this.disabled) return;
this.disabled = true;
let n = 60;
this.text = "剩余 " + n + "s";
const run = setInterval(() => {
n = n - 1;
if (n < 0) {
clearInterval(run);
}
this.text = "剩余 " + n + "s";
if (this.text < "剩余 " + 0 + "s") {
this.disabled = false;
this.text = "重新获取";
}
}, 1000);
},
onConfirm(val) {
this.region = val.checkArr[0] + '-' + val.checkArr[1] + '-' + val.checkArr[2];
},
ChangeIsAgree: function(e) {
this.isAgree = !this.isAgree;
this.validateBtn();
},
//提交
agree() {
let that = this;
let requestData = {
phone: that.merchantData.phone,
mer_name: that.merchantData.enterprise_name,
name: that.merchantData.user_name,
code: that.merchantData.yanzhengma,
company_name: that.merchantData.company_name,
address: that.merchantData.address,
invitation_code: that.merchantData.invitation_code,
social_credit_code: that.merchantData.social_credit_code,
merchant_category_id: that.merchantData.classification,
merchant_category_name: that.mer_classification,
is_company: that.nature_business == 1 ? 1 : 0, // 是否是公司, 1是公司, 0是个体
mer_type_id: that.merchantData.mer_type,
mer_storeType: this.mer_storeType,
city_id: this.city_id,
area_id: this.area_id,
street_id: this.street_id,
village_id: this.village_id,
is_nmsc: this.isnum,
images: [this.business_license, ...that.pics],
// financial_bank: {
// // 开户信息
// bank_code: this.merchantData.bank_code,
// bank: this.merchantData.bank_username,
// bank_branch: this.merchantData.bank_opening,
// name: this.nature_business == 1 ? that.merchantData.company_name : this.merchantData
// .bank_card_username,
// bank_front: [this.bank_front]
// }
}
that.validate = false;
if (that.mer_i_id) {
updateGoodsRecord(that.mer_i_id, requestData).then(res => {
if (res.status == 200) {
title: '提交成功',
that.loading = true;
that.timer = setTimeout(() => {
that.successful = true;
that.validate = true;
}, 1000)
}
}).catch(res => {
this.isshow = false
that.validate = true;
that.$util.Tips({
title: res
});
})
} else {
create(requestData).then(data => {
if (data.status == 200) {
title: '提交成功',
that.loading = true;
this.timer = setTimeout(() => {
that.successful = true;
that.validate = true;
}, 1000)
}
}).catch(res => {
this.isshow = false
that.validate = true;
that.$util.Tips({
title: res
});
})
}
},
formSubmit() {
if (this.validateForm() && this.validate) {
if (this.merchantData.mer_type == '12') return this.agree();
if (this.codenote.length == 0) {
this.isshow = true
this.countDown()
} else {
if (this.codenote[0].status == 0) {
uni.showModal({
title: '申请正在审核中,请勿重复提交'
})
} else {
this.isshow = true
this.countDown()
}
}
}
},
validateBtn: function() {
let that = this,
value = that.merchantData;
if (value.enterprise_name && value.user_name && value.phone && /^1(3|4|5|7|8|9|6)\d{9}$/i.test(
value
.phone) &&
value.yanzhengma && that.isAgree && this.mer_classification) {
if (!that.isShowCode) {
that.validate = true;
} else {
if (that.codeVal) {
that.validate = true;
} else {
that.validate = false;
}
}
} else {
that.validate = false;
}
},
validateForm: function() {
let that = this,
value = that.merchantData;
if (!value.enterprise_name) return that.$util.Tips({
title: '请输入企业名称'
});
if (!value.social_credit_code) return that.$util.Tips({
title: '请输入统一社会信用代码'
});
if (!value.company_name) return that.$util.Tips({
title: '请输入公司名称'
});
if (!value.address) return that.$util.Tips({
title: '请输入详细地址'
});
if (!value.user_name) return that.$util.Tips({
title: '请输入姓名'
});
if (!value.phone) return that.$util.Tips({
title: '请输入手机号'
});
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(value.phone)) return that.$util.Tips({
title: '请输入正确的手机号码'
});
if (!value.yanzhengma) return that.$util.Tips({
title: '请填写验证码'
});
if (!this.mer_classification) return that.$util.Tips({
title: '请选择商户分类'
});
if (!this.nature_business) return that.$util.Tips({
title: '请选择公司性质'
})
if (!this.mer_storeType) return that.$util.Tips({
title: '请选择店铺类型'
})
if (!this.business_name) return that.$util.Tips({
title: '请选择店铺所在地'
})
if (!that.isAgree) return that.$util.Tips({
title: '请勾选并同意入驻协议'
});
if (that.isShowCode && !that.codeVal) return that.$util.Tips({
title: '请填写图片验证码'
});
if (!that.business_license) return that.$util.Tips({
title: '请上传营业执照'
});
// if (this.nature_business == 1 && !this.merchantData.bank_code) {
// return that.$util.Tips({
// title: '请输入对公账号'
// });
// }
// if (this.nature_business != 1 && !this.merchantData.bank_code) {
// return that.$util.Tips({
// title: '请输入银行卡号'
// });
// }
// if (!this.merchantData.bank_username) {
// return that.$util.Tips({
// title: '请输入开户银行'
// });
// }
// if (!this.merchantData.bank_opening) {
// return that.$util.Tips({
// title: '请输入开户网点'
// });
// }
// if (this.nature_business == 0 && !this.merchantData.bank_card_username) {
// return that.$util.Tips({
// title: '请输入持卡人姓名'
// });
// }
that.validate = true;
return true;
},
jumpToList() {
uni.navigateTo({
url: "/pages/store/applicationRecord/index"
})
},
success(data) {
this.$refs.verify.hide();
this.code(data);
},
handleVerify() {
if (!this.merchantData.phone) return this.$util.Tips({
title: '请输入手机号'
});
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(this.merchantData.phone)) return this.$util.Tips({
title: '请输入正确的手机号码'
});
if (!this.isAgree) return this.$util.Tips({
title: '请勾选并同意入驻协议'
});
this.$refs.verify.show();
}
}
}
</script>
<style scoped lang="scss">
.page {
width: 750rpx;
height: 2400rpx;
background: linear-gradient(180deg, #44AF38 0%, #72BE53 100%);
}
.header {
// height: 440rpx;
width: 100%;
text-align: center;
background-color: transparent;
// background-image: url(https://lihai001.oss-cn-chengdu.aliyuncs.com/def/96ec1202403151608564555.webp);
background-position: center;
.title-bar {
position: fixed;
top: 0;
height: 88rpx;
line-height: 88rpx;
width: 100%;
z-index: 11;
.title-bar-icon {
position: absolute;
left: 30rpx;
.icon-xiangzuo {
font-size: 40rpx;
text-align: left;
color: #fff;
}
}
.title-bar-txt {
text-align: center;
color: #fff;
}
}
}
/deep/checkbox .uni-checkbox-input.uni-checkbox-input-checked,
/deep/checkbox .wx-checkbox-input.wx-checkbox-input-checked {
border: 1px solid var(--view-theme) !important;
background-color: var(--view-theme) !important;
color: #fff !important;
}
.conten-top {
width: 100%;
text-align: center;
background-color: transparent;
position: absolute;
top: 0;
position: fixed;
z-index: 10;
}
.uni-input-placeholder {
color: #B2B2B2;
}
.bar-top-bg {
background-color: #46CC4B;
}
.item-name {
width: 190rpx;
}
.uni-list-cell {
position: relative;
.iconfont {
font-size: 14px;
color: #7a7a7a;
position: absolute;
right: 15px;
top: 7rpx;
}
.icon-guanbi2 {
right: 35px;
}
}
.merchantBgCount {
line-height: 0;
}
.merchantsSettled {
background-image: linear-gradient(var(--view-bntColor21) 0%, var(--view-bntColor22) 100%);
min-height: 3200rpx;
position: relative;
}
.merchantsSettled .merchantBg {
width: 750rpx;
width: 100%;
}
.merchantsSettled .list {
background-color: #fff;
border-radius: 12px;
padding: 22px 0;
margin: 0 15px;
position: absolute;
top: 400rpx;
width: calc(100% - 30px);
}
.list-title {
position: relative;
font-weight: 600;
font-size: 30rpx;
color: #40AE36;
text-align: center;
margin-bottom: 40rpx;
&::after {
content: "";
display: inline-block;
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 233rpx;
height: 14rpx;
background: #40AE36;
opacity: 0.36;
filter: blur(6px);
}
}
.application-record {
position: absolute;
display: flex;
align-items: center;
top: 320rpx;
right: 0;
color: #fff;
font-size: 22rpx;
background-color: rgba(0, 0, 0, 0.3);
padding: 8rpx 18rpx;
border-radius: 20px 0px 0px 20px;
}
.merchantsSettled .list .item {
padding: 50rpx 0 20rpx;
border-bottom: 1px solid #eee;
position: relative;
margin: 0 20px;
&.no-border {
border-bottom: none;
padding-left: 0;
padding-right: 0;
}
.item-title {
color: #666666;
font-size: 28rpx;
display: block;
}
.item-desc {
color: #B2B2B2;
font-size: 22rpx;
display: block;
margin-top: 9rpx;
line-height: 36rpx;
}
}
.acea-row,
.upload {
display: -webkit-box;
display: -moz-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-lines: multiple;
-moz-box-lines: multiple;
-o-box-lines: multiple;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.upload {
margin-top: 20rpx;
}
.acea-row.row-middle {
-webkit-box-align: center;
-moz-box-align: center;
-o-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
padding-left: 2px;
}
.acea-row.row-column {
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-o-box-orient: vertical;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}
.acea-row.row-center-wrapper {
-webkit-box-align: center;
-moz-box-align: center;
-o-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
-webkit-box-pack: center;
-moz-box-pack: center;
-o-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
.merchantsSettled .list .item .pictrue {
width: 130rpx;
height: 130rpx;
margin: 24rpx 22rpx 0 0;
position: relative;
font-size: 11px;
color: #bbb;
&:nth-child(4n) {
margin-right: 0;
}
&:nth-last-child(1) {
border: 0.5px solid #ddd;
box-sizing: border-box;
}
uni-image,
image {
width: 100%;
height: 100%;
border-radius: 1px;
img {
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
display: block;
position: absolute;
top: 0;
left: 0;
opacity: 0;
width: 100%;
height: 100%;
}
}
.icon-guanbi1 {
font-size: 33rpx;
position: absolute;
top: -10px;
right: -10px;
}
}
.uni-list-cell-db {
position: relative;
}
.wenhao {
width: 34rpx;
height: 34rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
border-radius: 50%;
background: #E3E3E3;
color: #ffffff !important;
margin-left: 4rpx;
position: absolute;
left: 122rpx;
}
.merchantsSettled .list .item .imageCode {
position: absolute;
top: 7px;
right: 0;
}
.merchantsSettled .list .item .icon {
font-size: 40rpx;
color: #b4b1b4;
}
.merchantsSettled .list .item input {
width: 400rpx;
font-size: 30rpx;
}
.merchantsSettled .list .item .placeholder {
color: #b2b2b2;
}
.merchantsSettled .default {
padding: 0 30rpx;
height: 90rpx;
background-color: #fff;
margin-top: 23rpx;
}
.merchantsSettled .default checkbox {
margin-right: 15rpx;
}
.merchantsSettled .acea-row uni-image {
width: 20px;
height: 20px;
display: block;
}
.merchantsSettled .list .item .codeIput {
width: 125px;
}
.uni-input-input {
display: block;
height: 100%;
background: none;
color: inherit;
opacity: 1;
-webkit-text-fill-color: currentcolor;
font: inherit;
line-height: inherit;
letter-spacing: inherit;
text-align: inherit;
text-indent: inherit;
text-transform: inherit;
text-shadow: inherit;
}
.merchantsSettled .list .item .code {
position: absolute;
width: 93px;
line-height: 27px;
border: 1px solid var(--view-theme);
border-radius: 15px;
color: var(--view-theme);
text-align: center;
bottom: 8px;
right: 0;
font-size: 12px;
}
.merchantsSettled .list .item .code.on {
background-color: #bbb;
color: #fff;
border-color: #bbb;
}
.merchantsSettled .submitBtn {
width: 588rpx;
margin: 0 auto;
height: 86rpx;
border-radius: 25px;
text-align: center;
line-height: 86rpx;
font-size: 15px;
color: #fff;
background: #E3E3E3;
margin-top: 25px;
pointer-events: none;
}
.merchantsSettled .submitBtn.on {
background: var(--view-theme);
pointer-events: all;
}
uni-checkbox-group,
.settleAgree {
display: inline-block;
font-size: 24rpx;
}
uni-checkbox-group {
color: #b2b2b2;
}
.settleAgree {
color: var(--view-theme);
position: relative;
top: 2px;
left: 8px;
}
.merchantsSettled uni-checkbox .uni-checkbox-wrapper {
width: 30rpx;
height: 30rpx;
border: 2rpx solid #C3C3C3;
border-radius: 15px;
}
.settlementAgreement {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 12;
background: rgba(0, 0, 0, .5);
}
.settlementAgreement .setAgCount {
background: #fff;
width: 694rpx;
// height: 458px;
position: absolute;
top: 50%;
left: 50%;
padding: 28rpx;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
overflow: hidden;
.content {
height: 900rpx;
overflow-y: scroll;
/deep/ p {
font-size: 13px;
line-height: 22px;
}
/deep/ img {
max-width: 100%;
}
}
}
.settlementAgreement .setAgCount .close {
position: absolute;
top: 15rpx;
right: 15rpx;
}
.settlementAgreement .setAgCount .icon {
font-size: 42rpx;
color: #b4b1b4;
position: absolute;
top: 15rpx;
right: 15rpx;
}
.settlementAgreement .setAgCount .title {
color: #333;
font-size: 32rpx;
text-align: center;
font-weight: bold;
}
.settlementAgreement .setAgCount .content {
color: #333;
font-size: 26rpx;
line-height: 22px;
text-align: justify;
text-justify: distribute-all-lines;
overflow-y: scroll;
padding-bottom: 20rpx;
}
.settlementAgreement .setAgCount .contenta {
color: #333;
font-size: 26rpx;
line-height: 22px;
text-align: justify;
text-justify: distribute-all-lines;
height: 85%;
overflow-y: scroll;
}
.setAgCountbtn {
display: flex;
justify-content: space-around;
position: relative;
.setAgCountbtna {
margin-top: 40rpx;
// width: 200rpx;
height: 74rpx;
text-align: center;
line-height: 74rpx;
border-radius: 46rpx 46rpx;
opacity: 1;
border: 2rpx solid #B3B3B3;
font-size: 25rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #737373;
}
.setAgCountbtnb {
margin-top: 40rpx;
padding-left: 20rpx;
padding-right: 20rpx;
height: 74rpx;
text-align: center;
line-height: 74rpx;
background: #cecece;
border-radius: 46rpx 46rpx;
opacity: 1;
font-size: 25rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #fff;
}
.setAgCountbtnc {
margin-top: 40rpx;
height: 74rpx;
text-align: center;
line-height: 74rpx;
background: linear-gradient(270deg, #3da834 0%, #72BE53 100%);
border-radius: 46rpx 46rpx;
opacity: 1;
font-size: 25rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #fff;
}
.border {
position: absolute;
top: 0;
left: -28rpx;
width: 100vw;
height: 100%;
border-radius: 40rpx 40rpx 0 0;
box-shadow: 0px -5px 5px -2px rgba(0, 0, 0, 0.2);
/* 在上边框添加阴影 */
}
.btn {
width: 694rpx;
font-weight: bold;
font-size: 34rpx;
}
}
.settledSuccessMain {
height: 100vh;
display: flex;
flex-direction: column;
background: #fff;
}
.settledSuccessful {
flex: 1;
width: 100%;
padding: 0 56px;
height: auto;
background: #fff;
text-align: center;
}
.settledSuccessful .image {
width: 189px;
height: 157px;
margin-top: 66px;
}
.settledSuccessful .title {
color: #333333;
font-size: 16px;
font-weight: bold;
margin-top: 35px;
}
.settledSuccessful .info {
color: #A0A0A0;
font-size: 13px;
margin-top: 12px;
}
.settledSuccessful .goHome {
margin: 60px auto 0;
line-height: 43px;
color: #282828;
font-size: 15px;
border: 1px solid #B4B4B4;
border-radius: 60px;
}
/deep/ uni-checkbox .uni-checkbox-input {
width: 15px;
height: 15px;
position: relative;
}
/deep/ uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked:before {
font-size: 14px;
}
.loadingicon {
height: 100vh;
overflow: hidden;
position: absolute;
top: 0;
left: 0;
}
.icon-xiangyou {
font-size: 22rpx;
}
// #ifdef MP
checkbox-group {
display: inline-block;
}
// #endif
.setAgCount {
/deep/ table {
border: 1px solid #DDD;
border-bottom: none;
border-right: none;
}
/deep/ td,
th {
padding: 5rpx 10rpx;
border-bottom: 1px solid #DDD;
border-right: 1px solid #DDD;
}
}
.merchantsSettled .list .items {
padding: 50rpx 0 20rpx;
border-bottom: 1px solid #eee;
position: relative;
margin: 0 20px;
.uni-list-area {
height: 50px;
display: flex;
justify-content: flex-start;
align-items: center;
.uni-list-stree {
width: 30%;
margin-left: 10px;
.mer-area {
width: 100%;
border: 1px solid #C3C3C3;
picker {
display: flex;
}
input {
width: 100%;
font-size: 30rpx;
}
}
}
}
}
</style>