同步代码
This commit is contained in:
@@ -49,7 +49,7 @@
|
||||
</view>
|
||||
|
||||
<!-- 新增改版 - 协商调解类 -->
|
||||
<view class="module">
|
||||
<view class="module" style="display: none;">
|
||||
<view class="module-title">
|
||||
协商调解类
|
||||
</view>
|
||||
@@ -76,13 +76,53 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 账户管理咨询类 -->
|
||||
<view class="module" v-if="accountData.length > 0" style="display: none;">
|
||||
<view class="module-title">
|
||||
账户管理咨询类
|
||||
</view>
|
||||
<scroll-view class="law" scroll-x="true" show-scrollbar="false">
|
||||
<view class="law-label" v-for="(item, index) in accountData" :key="index" @click="onMagInfo('Account', item.id)">
|
||||
<image class="law-label-img" :src="item.cover" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
<view class="nowrap law-label-name">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="law-label-price">
|
||||
¥{{item.price}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<!-- 委托管理类 -->
|
||||
<view class="module" v-if="delegation.length > 0" style="display: none;">
|
||||
<view class="module-title">
|
||||
委托管理类
|
||||
</view>
|
||||
<scroll-view class="law" scroll-x="true" show-scrollbar="false">
|
||||
<view class="law-label" v-for="(item, index) in delegation" :key="index" @click="onMagInfo('Delegation', item.id)">
|
||||
<image class="law-label-img" :src="item.cover" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
<view class="nowrap law-label-name">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="law-label-price">
|
||||
¥{{item.price}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<!-- 新增改版 - 法律资讯类 -->
|
||||
<view class="module">
|
||||
<view class="module-title">
|
||||
法律咨询类
|
||||
企业法律顾问
|
||||
</view>
|
||||
<scroll-view class="law" scroll-x="true" show-scrollbar="false">
|
||||
<view class="law-label" @click="clickBrief">
|
||||
<!-- <view class="law-label" @click="clickBrief">
|
||||
<image class="law-label-img" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/18/f3db072ac405edf2a3dc3fd6c3aae206.png" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
<view class="law-label-name">
|
||||
@@ -95,7 +135,7 @@
|
||||
¥365.00/年
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="law-label" @click="$Router.push({name: 'StandBrief', params: {type: 2}})">
|
||||
<image class="law-label-img" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/18/d813f30a393e6d50df8cc59a36e557c8.png" mode="widthFix"></image>
|
||||
<view class="law-label-cont">
|
||||
@@ -158,7 +198,7 @@
|
||||
<!-- 新增改版 - 诉讼委托类 -->
|
||||
<view class="module">
|
||||
<view class="module-title">
|
||||
诉讼委托类
|
||||
案件诉讼委托
|
||||
</view>
|
||||
<view class="topCont-tool">
|
||||
<view class="topCont-tool-label redBlock" @click="$Router.push({name: 'EntrustBrief'})">
|
||||
@@ -187,7 +227,7 @@
|
||||
</view>
|
||||
|
||||
<!-- 新增改版 - 增收赋能类 -->
|
||||
<view class="module">
|
||||
<view class="module" style="display: none;">
|
||||
<view class="module-title">
|
||||
增收赋能类
|
||||
</view>
|
||||
@@ -349,7 +389,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { workIndex, home, articleSort, articleList } from '@/apis/interfaces/index'
|
||||
import { workIndex, home, articleSort, articleList, accountManagement, delegation } from '@/apis/interfaces/index'
|
||||
import { judgeReal, userIndex, authFollow } from '@/apis/interfaces/user'
|
||||
import { lists } from '@/apis/interfaces/empower.js'
|
||||
export default {
|
||||
@@ -377,9 +417,14 @@
|
||||
first : 1,
|
||||
layadState : '',
|
||||
layadImg : '',
|
||||
haveimg : '',
|
||||
haveimg : '',
|
||||
|
||||
// 增收赋能列表
|
||||
empowerArr : []
|
||||
empowerArr : [],
|
||||
// 账户管理类
|
||||
accountData : [],
|
||||
// 委托管理类
|
||||
delegation : []
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
@@ -403,7 +448,13 @@
|
||||
this.articleItem();
|
||||
|
||||
// 增收赋能
|
||||
this.getEmpower()
|
||||
this.getEmpower();
|
||||
|
||||
// 账户管理类
|
||||
this.getManagement();
|
||||
|
||||
// 委托管理类
|
||||
this.getDelegation();
|
||||
|
||||
if(this.$store.getters.getToken) {
|
||||
userIndex().then(res => {
|
||||
@@ -417,7 +468,40 @@
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
methods: {
|
||||
// 获取账户管理类
|
||||
getManagement(){
|
||||
accountManagement().then(res => {
|
||||
let accountData = res
|
||||
this.accountData = accountData
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
// 获取委托管理类
|
||||
getDelegation(){
|
||||
delegation().then(res => {
|
||||
let delegationData = res
|
||||
this.delegation = delegationData
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
// 查看管理类业务
|
||||
onMagInfo(type, id){
|
||||
this.$Router.push({
|
||||
name : 'Mag' + type,
|
||||
params : { id }
|
||||
})
|
||||
},
|
||||
// 增收赋能接口
|
||||
getEmpower(){
|
||||
lists().then(res => {
|
||||
@@ -579,8 +663,8 @@
|
||||
officialGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -95,8 +95,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -1,218 +1,342 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<img class="loginBack" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/5682d339246af0f44b4984c849288aa5.png">
|
||||
<img class="loginBottom" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/caa46039d88517ee8ba22b6c32dd47a1.png">
|
||||
<view class="title">
|
||||
<view class="title-name">
|
||||
用户登录
|
||||
</view>
|
||||
<view class="title-tips">
|
||||
密码登录仅适用于已注册用户
|
||||
</view>
|
||||
</view>
|
||||
<view class="info">
|
||||
<view class="info-cont">
|
||||
<!-- 输入手机号相关 -->
|
||||
<view class="inputs">
|
||||
<input type="number" placeholder="请输入手机号" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
<!-- 输入密码 -->
|
||||
<view class="inputs">
|
||||
<input type="text" :password="passwordState" placeholder="请输入密码" v-model="password" />
|
||||
<image class="inputs-see" @click="seeClick" :src="seeState ? '../../static/icon/see_active.png' : '../../static/icon/see.png'" mode="aspectFill"></image>
|
||||
</view>
|
||||
<button class="btn" type="default" @click="LoginSms" :disabled="phone == '' || password == ''">立即登录</button>
|
||||
<view class="forget">
|
||||
<view class="forget-label" @click="$Router.push({name: 'Register'})">我要注册</view>
|
||||
<view class="forget-label forget-after" @click="$Router.push({name: 'Forget'})">忘记密码?</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 用户登录注册协议 -->
|
||||
<view class="agreement">
|
||||
<checkbox-group @change="radioChange">
|
||||
<checkbox color="#da2b56" :checked="checked" style="transform: scale(.55)" class="radioGroup" />
|
||||
</checkbox-group>
|
||||
<view class="agreement-text">
|
||||
我已阅读并同意抖火法律<view @click="$Router.push({name: 'Agreement', params: {page : 3}})">《隐私协议》</view>和<view @click="$Router.push({name: 'Agreement', params: {page : 4}})">《服务协议》</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<img class="loginBack" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/5682d339246af0f44b4984c849288aa5.png">
|
||||
<img class="loginBottom" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/caa46039d88517ee8ba22b6c32dd47a1.png">
|
||||
<view class="title">
|
||||
<view class="title-name">
|
||||
用户登录
|
||||
</view>
|
||||
<view class="title-tips">
|
||||
手机验证码登录
|
||||
</view>
|
||||
</view>
|
||||
<view class="info">
|
||||
<view class="info-cont">
|
||||
<!-- 输入手机号相关 -->
|
||||
<view class="inputs">
|
||||
<input type="number" placeholder="请输入手机号" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
|
||||
<view class="captcha-inputs">
|
||||
<view class="captcha-campus-inputs campus-inputs">
|
||||
<input class="campus-form-input" type="text" placeholder="请输入图文验证码" v-model="newCaptcha" />
|
||||
</view>
|
||||
<image class="campus-form-graph" :src="captchaImg" mode="widthFix" @click="replaceClick"></image>
|
||||
</view>
|
||||
|
||||
<view class="inputs captcha-inputs">
|
||||
<input class="campus-form-input" type="number" placeholder="请输入验证码" v-model="code" maxlength="4"></input>
|
||||
<button @click="checkCaptcha" class="campus-form-code ":disabled="phone == ''" type="default" size="mini">{{getSms ? '重新发送' + smsTime + 's': '发送验证码'}}</button>
|
||||
</view>
|
||||
|
||||
<button class="btn" type="default" @click="LoginSms" :disabled="phone == '' || code == ''">立即登录</button>
|
||||
<view class="forget">
|
||||
<view class="forget-label" @click="$Router.push({name: 'Register'})">我要注册</view>
|
||||
<view class="forget-label forget-after" @click="$Router.push({name: 'PasswordLogin'})">密码登录</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 用户登录注册协议 -->
|
||||
<view class="agreement">
|
||||
<checkbox-group @change="radioChange">
|
||||
<checkbox color="#da2b56" :checked="checked" style="transform: scale(.55)" class="radioGroup" />
|
||||
</checkbox-group>
|
||||
<view class="agreement-text">
|
||||
我已阅读并同意抖火法律<view @click="$Router.push({name: 'Agreement', params: {page : 3}})">《隐私协议》</view>和<view @click="$Router.push({name: 'Agreement', params: {page : 4}})">《服务协议》</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Login } from '@/apis/interfaces/auth'
|
||||
<script>
|
||||
import { Login, Captcha, smsAuth, authSms } from '@/apis/interfaces/auth'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
phone : '', // 手机号码
|
||||
password: '', // 登录密码
|
||||
checked : false, // 勾选协议
|
||||
seeState : false, //小眼睛
|
||||
passwordState: true,
|
||||
phone : '', // 手机号码
|
||||
password : '', // 登录密码
|
||||
checked : false, // 勾选协议
|
||||
seeState : false, //小眼睛
|
||||
passwordState: true,
|
||||
disabled : false,
|
||||
code : '', // 短信验证码
|
||||
getSms : '',
|
||||
smsTime : 60,
|
||||
newCaptcha : '', // 填写图形码
|
||||
captcha : '', // 输入图形码
|
||||
captchaImg : '', // 图形码
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 用户登录
|
||||
LoginSms() {
|
||||
if(this.checked) {
|
||||
Login({
|
||||
username : this.phone,
|
||||
password : this.password
|
||||
}).then(res => {
|
||||
// 存储用户token
|
||||
this.$store.commit('setToken', res.token_type + ' ' + res.access_token)
|
||||
|
||||
// 回到首页
|
||||
this.$Router.replaceAll({name: 'Index'})
|
||||
// this.$Router.back()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '请勾选用户隐私和服务协议',
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 勾选协议
|
||||
radioChange() {
|
||||
this.checked = !this.checked
|
||||
},
|
||||
|
||||
// 查看密码
|
||||
seeClick() {
|
||||
this.seeState = !this.seeState
|
||||
this.passwordState = !this.passwordState
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
// 生命周期函数--监听页面显示
|
||||
onShow() {
|
||||
// 获取图形码
|
||||
this.captchaInfo()
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 图形码
|
||||
captchaInfo() {
|
||||
Captcha().then(res=>{
|
||||
console.log(res)
|
||||
this.captchaImg = res.img
|
||||
this.captchaKey = res.key
|
||||
}).catch(err=>{
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 看不清,换一张 - 图形码数据
|
||||
replaceClick() {
|
||||
this.captchaInfo();
|
||||
|
||||
// 清除图形码数据
|
||||
this.newCaptcha = ''
|
||||
},
|
||||
|
||||
// 需校验图形验证码
|
||||
checkCaptcha() {
|
||||
if(this.phone) {
|
||||
let outTime
|
||||
smsAuth({
|
||||
mobileNo : this.phone,
|
||||
captcha : this.newCaptcha,
|
||||
captcha_key: this.captchaKey
|
||||
}).then(res => {
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon: "none"
|
||||
})
|
||||
|
||||
this.getSms = true
|
||||
outTime = setInterval(() => {
|
||||
if (this.smsTime <= 1) {
|
||||
this.getSms = false
|
||||
this.smsTime = 60
|
||||
clearInterval('outTime')
|
||||
}
|
||||
this.smsTime -= 1
|
||||
}, 1000)
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showToast({
|
||||
title: '请输入手机号',
|
||||
icon: "none"
|
||||
})
|
||||
},
|
||||
|
||||
// 勾选协议
|
||||
radioChange() {
|
||||
this.checked = !this.checked
|
||||
},
|
||||
|
||||
// 验证码登录
|
||||
LoginSms() {
|
||||
if(this.checked) {
|
||||
authSms({
|
||||
mobileNo : this.phone,
|
||||
parent_id : '',
|
||||
code : this.code
|
||||
}).then(res => {
|
||||
// 存储用户token
|
||||
this.$store.commit('setToken', res.token_type + ' ' + res.access_token)
|
||||
|
||||
// 回到首页
|
||||
this.$Router.replaceAll({name: 'Index'})
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '请勾选用户隐私和服务协议',
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.loginBack {
|
||||
width: 35%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.loginBottom {
|
||||
width: 60%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.agreement {
|
||||
padding: $padding 0 $padding - 20 $padding - 10;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
font-size: $title-size-sm;
|
||||
width: 100%;
|
||||
line-height: 60rpx;
|
||||
color: #979797;
|
||||
.radioGroup {
|
||||
font-size: $title-size-sm;
|
||||
}
|
||||
.agreement-text {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
view {
|
||||
color: $mian-color;
|
||||
padding: 0 5rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
padding: $padding*4 $padding * 3 $padding*2;
|
||||
box-sizing: border-box;
|
||||
.title-name {
|
||||
font-size: $title-size + 10;
|
||||
margin-bottom: $margin - 10;
|
||||
}
|
||||
.title-tips {
|
||||
color: #8e8e8e;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
padding: $padding * 3 0;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
z-index: 6;
|
||||
width: 100%;
|
||||
.info-cont {
|
||||
padding: 0 $padding * 3;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.inputs {
|
||||
background-color: #f7f8fa;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
margin-bottom: $margin + 20;
|
||||
box-sizing: border-box;
|
||||
color: #868686;
|
||||
font-size: $title-size-m;
|
||||
padding: 0 $padding + 10;
|
||||
border-radius: $radius-m;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.inputs-see {
|
||||
position: absolute;
|
||||
right: $padding;
|
||||
top: $padding;
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
input {
|
||||
font-weight: normal;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
background-image: linear-gradient(to right, #da2b56, #FBAF3B);
|
||||
color: #ffffff;
|
||||
border-radius: $radius-m;
|
||||
font-size: $title-size;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
padding: 0;
|
||||
margin: $margin * 3 0 0;
|
||||
&[disabled] {
|
||||
background-image: linear-gradient(to right, #ff8da9, #ffd0a2);
|
||||
}
|
||||
}
|
||||
.forget {
|
||||
display: flex;
|
||||
line-height: 120rpx;
|
||||
font-size: $title-size-m;
|
||||
.forget-label {
|
||||
flex: 2;
|
||||
text-align: center;
|
||||
color: #7f8391;
|
||||
}
|
||||
.forget-after {
|
||||
position: relative;
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
left: 0;
|
||||
bottom: calc(50% - 15rpx);
|
||||
width: 2rpx;
|
||||
height: 30rpx;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
}
|
||||
}
|
||||
<style lang="scss" scoped>
|
||||
.loginBack {
|
||||
width: 35%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.loginBottom {
|
||||
width: 60%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.agreement {
|
||||
padding: $padding 0 $padding - 20 $padding - 10;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
font-size: $title-size-sm;
|
||||
width: 100%;
|
||||
line-height: 60rpx;
|
||||
color: #979797;
|
||||
.radioGroup {
|
||||
font-size: $title-size-sm;
|
||||
}
|
||||
.agreement-text {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
view {
|
||||
color: $mian-color;
|
||||
padding: 0 5rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
padding: $padding*4 $padding * 3 $padding*2;
|
||||
box-sizing: border-box;
|
||||
.title-name {
|
||||
font-size: $title-size + 10;
|
||||
margin-bottom: $margin - 10;
|
||||
}
|
||||
.title-tips {
|
||||
color: #8e8e8e;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
padding: $padding * 3 0;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
z-index: 6;
|
||||
width: 100%;
|
||||
.info-cont {
|
||||
padding: 0 $padding * 3;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.inputs {
|
||||
background-color: #f7f8fa;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
margin-bottom: $margin + 20;
|
||||
box-sizing: border-box;
|
||||
color: #868686;
|
||||
font-size: $title-size-m;
|
||||
padding: 0 $padding + 10;
|
||||
border-radius: $radius-m;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.inputs-see {
|
||||
position: absolute;
|
||||
right: $padding;
|
||||
top: $padding;
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
input {
|
||||
font-weight: normal;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
background-image: linear-gradient(to right, #da2b56, #FBAF3B);
|
||||
color: #ffffff;
|
||||
border-radius: $radius-m;
|
||||
font-size: $title-size;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
padding: 0;
|
||||
margin: $margin * 3 0 0;
|
||||
&[disabled] {
|
||||
background-image: linear-gradient(to right, #ff8da9, #ffd0a2);
|
||||
}
|
||||
}
|
||||
.forget {
|
||||
display: flex;
|
||||
line-height: 120rpx;
|
||||
font-size: $title-size-m;
|
||||
.forget-label {
|
||||
flex: 2;
|
||||
text-align: center;
|
||||
color: #000000;
|
||||
}
|
||||
.forget-after {
|
||||
position: relative;
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
left: 0;
|
||||
bottom: calc(50% - 15rpx);
|
||||
width: 2rpx;
|
||||
height: 30rpx;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.captcha-inputs {
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
margin-top: $margin + 20;
|
||||
.campus-form-graph {
|
||||
width: 220rpx;
|
||||
margin-top: 20rpx;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
.captcha-campus-inputs{
|
||||
flex: 1;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.campus-inputs {
|
||||
background-color: #f7f8fa;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
box-sizing: border-box;
|
||||
color: #868686;
|
||||
font-size: $title-size-m;
|
||||
padding: 0 $padding + 10;
|
||||
border-radius: $radius-m;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
input {
|
||||
font-weight: normal;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.campus-form-code{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 30rpx;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: transparent;
|
||||
font-size: 30rpx;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
color: #f25448;
|
||||
&::after{
|
||||
border: none;
|
||||
}
|
||||
&[disabled]{
|
||||
color: rgba($color: #f25448, $alpha: .5);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
220
pages/login/passwordLogin.vue
Normal file
220
pages/login/passwordLogin.vue
Normal file
@@ -0,0 +1,220 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<img class="loginBack" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/5682d339246af0f44b4984c849288aa5.png">
|
||||
<img class="loginBottom" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/caa46039d88517ee8ba22b6c32dd47a1.png">
|
||||
<view class="title">
|
||||
<view class="title-name">
|
||||
用户登录
|
||||
</view>
|
||||
<view class="title-tips">
|
||||
密码登录仅适用于已注册用户
|
||||
</view>
|
||||
</view>
|
||||
<view class="info">
|
||||
<view class="info-cont">
|
||||
<!-- 输入手机号相关 -->
|
||||
<view class="inputs">
|
||||
<input type="number" placeholder="请输入手机号" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
<!-- 输入密码 -->
|
||||
<view class="inputs">
|
||||
<input type="text" :password="passwordState" placeholder="请输入密码" v-model="password" />
|
||||
<image class="inputs-see" @click="seeClick" :src="seeState ? '../../static/icon/see_active.png' : '../../static/icon/see.png'" mode="aspectFill"></image>
|
||||
</view>
|
||||
<button class="btn" type="default" @click="LoginSms" :disabled="phone == '' || password == ''">立即登录</button>
|
||||
<view class="forget-label forget-after" style="width: 100%; text-align: center; padding-top: 15rpx; font-size: 28rpx; color: #7f8391;" @click="$Router.push({name: 'Forget'})">忘记密码?</view>
|
||||
<view class="forget">
|
||||
<view class="forget-label" @click="$Router.push({name: 'Register'})">我要注册</view>
|
||||
<view class="forget-label forget-after" @click="$Router.push({name: 'Login'})">验证码登录</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 用户登录注册协议 -->
|
||||
<view class="agreement">
|
||||
<checkbox-group @change="radioChange">
|
||||
<checkbox color="#da2b56" :checked="checked" style="transform: scale(.55)" class="radioGroup" />
|
||||
</checkbox-group>
|
||||
<view class="agreement-text">
|
||||
我已阅读并同意抖火法律<view @click="$Router.push({name: 'Agreement', params: {page : 3}})">《隐私协议》</view>和<view @click="$Router.push({name: 'Agreement', params: {page : 4}})">《服务协议》</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Login } from '@/apis/interfaces/auth'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
phone : '', // 手机号码
|
||||
password: '', // 登录密码
|
||||
checked : false, // 勾选协议
|
||||
seeState : false, //小眼睛
|
||||
passwordState: true,
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 用户登录
|
||||
LoginSms() {
|
||||
if(this.checked) {
|
||||
Login({
|
||||
username : this.phone,
|
||||
password : this.password
|
||||
}).then(res => {
|
||||
// 存储用户token
|
||||
this.$store.commit('setToken', res.token_type + ' ' + res.access_token)
|
||||
|
||||
// 回到首页
|
||||
this.$Router.replaceAll({name: 'Index'})
|
||||
// this.$Router.back()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '请勾选用户隐私和服务协议',
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 勾选协议
|
||||
radioChange() {
|
||||
this.checked = !this.checked
|
||||
},
|
||||
|
||||
// 查看密码
|
||||
seeClick() {
|
||||
this.seeState = !this.seeState
|
||||
this.passwordState = !this.passwordState
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.loginBack {
|
||||
width: 35%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.loginBottom {
|
||||
width: 60%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.agreement {
|
||||
padding: $padding 0 $padding - 20 $padding - 10;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
font-size: $title-size-sm;
|
||||
width: 100%;
|
||||
line-height: 60rpx;
|
||||
color: #979797;
|
||||
.radioGroup {
|
||||
font-size: $title-size-sm;
|
||||
}
|
||||
.agreement-text {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
view {
|
||||
color: $mian-color;
|
||||
padding: 0 5rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
padding: $padding*4 $padding * 3 $padding*2;
|
||||
box-sizing: border-box;
|
||||
.title-name {
|
||||
font-size: $title-size + 10;
|
||||
margin-bottom: $margin - 10;
|
||||
}
|
||||
.title-tips {
|
||||
color: #8e8e8e;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
padding: $padding * 3 0;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
z-index: 6;
|
||||
width: 100%;
|
||||
.info-cont {
|
||||
padding: 0 $padding * 3;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.inputs {
|
||||
background-color: #f7f8fa;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
margin-bottom: $margin + 20;
|
||||
box-sizing: border-box;
|
||||
color: #868686;
|
||||
font-size: $title-size-m;
|
||||
padding: 0 $padding + 10;
|
||||
border-radius: $radius-m;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.inputs-see {
|
||||
position: absolute;
|
||||
right: $padding;
|
||||
top: $padding;
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
input {
|
||||
font-weight: normal;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
background-image: linear-gradient(to right, #da2b56, #FBAF3B);
|
||||
color: #ffffff;
|
||||
border-radius: $radius-m;
|
||||
font-size: $title-size;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
padding: 0;
|
||||
margin: $margin * 3 0 0;
|
||||
&[disabled] {
|
||||
background-image: linear-gradient(to right, #ff8da9, #ffd0a2);
|
||||
}
|
||||
}
|
||||
.forget {
|
||||
display: flex;
|
||||
line-height: 120rpx;
|
||||
font-size: $title-size-m;
|
||||
.forget-label {
|
||||
flex: 2;
|
||||
text-align: center;
|
||||
color: #000000;
|
||||
}
|
||||
.forget-after {
|
||||
position: relative;
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
left: 0;
|
||||
bottom: calc(50% - 15rpx);
|
||||
width: 2rpx;
|
||||
height: 30rpx;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
135
pages/management/account.vue
Normal file
135
pages/management/account.vue
Normal file
@@ -0,0 +1,135 @@
|
||||
<template>
|
||||
<view class="from-content">
|
||||
<view class="from-block" v-if="pickerArr.length > 0" >
|
||||
<view class="from-block-item">
|
||||
<label>办理业务</label>
|
||||
<picker class="from-block-val" :range="pickerArr" :value="pickerIndex" range-key="title" @change="pickerIndex = $event.detail.value">
|
||||
<view class="from-block-picker nowrap">{{pickerArr[pickerIndex].title}}
|
||||
<u-icon class="from-block-picker-icon" name="arrow-down" color="#555" size="15"></u-icon>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务价格</label>
|
||||
<view class="from-block-val price">¥{{pickerArr[pickerIndex].price}}</view>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务描述</label>
|
||||
<view class="from-block-val">{{pickerArr[pickerIndex].subtitle}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="from-block">
|
||||
<view class="from-block-item">
|
||||
<label>客户姓名</label>
|
||||
<input class="from-block-val from-block-input" placeholder="请输入客户姓名" v-model="name" />
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>手机号码</label>
|
||||
<input class="from-block-val from-block-input" type="number" placeholder="请输入客户手机号码" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
</view>
|
||||
<button class="from-btn" @click="onSubmit">提交办理</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { accountManagement, accountFrom } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
pickerArr : [],
|
||||
pickerIndex : 0,
|
||||
name : '',
|
||||
phone : ''
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
accountManagement().then(res => {
|
||||
uni.hideLoading()
|
||||
this.pickerArr = res;
|
||||
this.pickerIndex = res.findIndex(val => val.id == this.$Route.query.id)
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 提交表单
|
||||
onSubmit(){
|
||||
let { name, phone, pickerArr, pickerIndex } = this
|
||||
|
||||
console.log(pickerArr[pickerIndex])
|
||||
|
||||
if(name === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户姓名',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
if(phone === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户手机号码',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: "提交中...",
|
||||
mask : true
|
||||
})
|
||||
accountFrom({
|
||||
name : name,
|
||||
mobile : phone
|
||||
}, pickerArr[pickerIndex].id).then(res => {
|
||||
let { order_type, order_id, order_no, total } = res;
|
||||
this.$Router.replace({name: 'FeePay', params: {id: order_id, orderType: order_type, price: total, payForm: 'synthesize'}})
|
||||
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.from-content{
|
||||
min-height: 100vh;
|
||||
padding: 30rpx;
|
||||
background: #f7f8f9;
|
||||
}
|
||||
.from-block{
|
||||
background: white;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 30rpx;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
.from-block-item{
|
||||
min-height: 70rpx;
|
||||
display: flex;
|
||||
font-size: 32rpx;
|
||||
border-bottom: solid 1rpx #f3f3f3;
|
||||
padding: 15rpx 0;
|
||||
|
||||
}
|
||||
.from-block-item:last-child{ border: none; }
|
||||
label{ width: 200rpx; line-height: 70rpx; }
|
||||
.from-block-val{ width: calc(100% - 200rpx); text-align: right; line-height: 70rpx;}
|
||||
.from-block-val.price{ color: #446EFE; font-weight: bold; }
|
||||
.from-block-input{ height: 70rpx; font-size: 32rpx; }
|
||||
.from-block-picker{ padding-right: 50rpx; position: relative; }
|
||||
.from-block-picker-icon{ position: absolute; right: 0; top: 50%; margin-top: -15rpx; }
|
||||
.from-btn{ width: 100%; background-color: #446EFE; color: white; line-height: 95rpx; height: 95rpx; border-radius: 45rpx; font-size: 32rpx; font-weight: bold;
|
||||
&::after{ display: none; }
|
||||
}
|
||||
</style>
|
||||
139
pages/management/delegation.vue
Normal file
139
pages/management/delegation.vue
Normal file
@@ -0,0 +1,139 @@
|
||||
<template>
|
||||
<view class="from-content">
|
||||
<view class="from-block" v-if="pickerArr.length > 0" >
|
||||
<view class="from-block-item">
|
||||
<label>办理业务</label>
|
||||
<picker class="from-block-val" :range="pickerArr" :value="pickerIndex" range-key="title" @change="pickerIndex = $event.detail.value">
|
||||
<view class="from-block-picker nowrap">{{pickerArr[pickerIndex].title}}
|
||||
<u-icon class="from-block-picker-icon" name="arrow-down" color="#555" size="15"></u-icon>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务价格</label>
|
||||
<view class="from-block-val price">¥{{pickerArr[pickerIndex].price}}</view>
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>业务描述</label>
|
||||
<view class="from-block-val">{{pickerArr[pickerIndex].subtitle}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="from-block">
|
||||
<view class="from-block-item">
|
||||
<label>客户姓名</label>
|
||||
<input class="from-block-val from-block-input" placeholder="请输入客户姓名" v-model="name" />
|
||||
</view>
|
||||
<view class="from-block-item">
|
||||
<label>手机号码</label>
|
||||
<input class="from-block-val from-block-input" type="number" placeholder="请输入客户手机号码" maxlength="11" v-model="phone" />
|
||||
</view>
|
||||
</view>
|
||||
<button class="from-btn" @click="onSubmit">提交办理</button>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { delegation, delegationFrom } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
pickerArr : [],
|
||||
pickerIndex : 0,
|
||||
name : '',
|
||||
phone : ''
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
delegation().then(res => {
|
||||
uni.hideLoading()
|
||||
this.pickerArr = res;
|
||||
this.pickerIndex = res.findIndex(val => val.id == this.$Route.query.id)
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 提交表单
|
||||
onSubmit(){
|
||||
let { name, phone, pickerArr, pickerIndex } = this
|
||||
if(name === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户姓名',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
if(phone === ''){
|
||||
uni.showToast({
|
||||
title: '请输入客户手机号码',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: "提交中...",
|
||||
mask : true
|
||||
})
|
||||
delegationFrom({
|
||||
name : name,
|
||||
mobile : phone
|
||||
}, pickerArr[pickerIndex].id).then(res => {
|
||||
let { order_type, order_id, order_no } = res;
|
||||
this.$Router.replace({
|
||||
name : 'Pay',
|
||||
params : {
|
||||
paytype : 'synthesize',
|
||||
orderId : order_id,
|
||||
orderType : order_type.replace(/\\/g, '-')
|
||||
},
|
||||
})
|
||||
}).catch(err => {
|
||||
|
||||
console.log(err)
|
||||
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.from-content{
|
||||
min-height: 100vh;
|
||||
padding: 30rpx;
|
||||
background: #f7f8f9;
|
||||
}
|
||||
.from-block{
|
||||
background: white;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 30rpx;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
.from-block-item{
|
||||
min-height: 70rpx;
|
||||
display: flex;
|
||||
font-size: 32rpx;
|
||||
border-bottom: solid 1rpx #f3f3f3;
|
||||
padding: 15rpx 0;
|
||||
|
||||
}
|
||||
.from-block-item:last-child{ border: none; }
|
||||
label{ width: 200rpx; line-height: 70rpx; }
|
||||
.from-block-val{ width: calc(100% - 200rpx); text-align: right; line-height: 70rpx;}
|
||||
.from-block-val.price{ color: #446EFE; font-weight: bold; }
|
||||
.from-block-input{ height: 70rpx; font-size: 32rpx; }
|
||||
.from-block-picker{ padding-right: 50rpx; position: relative; }
|
||||
.from-block-picker-icon{ position: absolute; right: 0; top: 50%; margin-top: -15rpx; }
|
||||
.from-btn{ width: 100%; background-color: #446EFE; color: white; line-height: 95rpx; height: 95rpx; border-radius: 45rpx; font-size: 32rpx; font-weight: bold;
|
||||
&::after{ display: none; }
|
||||
}
|
||||
</style>
|
||||
@@ -217,8 +217,9 @@
|
||||
}
|
||||
// 获取微信授权信息-获取oppid
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webWechat/index'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webWechat/index'
|
||||
url: 'https://web.douhuofalv.com/webWechat/index'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webWechat/index',
|
||||
// url: 'http://web.douhuo.demos.uzchain.tech/webWechat/index' 最新
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -1,188 +1,188 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="create-type">
|
||||
<view class="create-type-title">
|
||||
选择咨询类型
|
||||
</view>
|
||||
<block v-for="(item, index) in synthesisArr" :key="index+'synthesis'">
|
||||
<view class="create-type-item" :class="{'active': item.self_type + item.synthesis_id == businessName}" @click="onBusiness(item.self_type, item.synthesis_id)">
|
||||
<image class="create-type-icon" :src="item.cover" mode="aspectFill"></image>
|
||||
<view class="create-type-text">
|
||||
<view class="title nowrap">{{item.title || '-'}}</view>
|
||||
<view class="submit nowrap">免费咨询一次</view>
|
||||
</view>
|
||||
<image class="create-type-check" :src="item.self_type + item.synthesis_id == businessName ? '/static/icon/Check_active.png' : '/static/icon/Check.png'" mode="aspectFill"></image>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class="create-btn">
|
||||
<button size="default" @click="onNext()">下一步</button>
|
||||
</view>
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="create-type">
|
||||
<view class="create-type-title">
|
||||
选择咨询类型
|
||||
</view>
|
||||
<block v-for="(item, index) in synthesisArr" :key="index+'synthesis'">
|
||||
<view class="create-type-item" :class="{'active': item.self_type + item.synthesis_id == businessName}" @click="onBusiness(item.self_type, item.synthesis_id)">
|
||||
<image class="create-type-icon" :src="item.cover" mode="aspectFill"></image>
|
||||
<view class="create-type-text">
|
||||
<view class="title nowrap">{{item.title || '-'}}</view>
|
||||
<!-- <view class="submit nowrap">免费咨询一次</view> -->
|
||||
</view>
|
||||
<image class="create-type-check" :src="item.self_type + item.synthesis_id == businessName ? '/static/icon/Check_active.png' : '/static/icon/Check.png'" mode="aspectFill"></image>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class="create-btn">
|
||||
<button size="default" @click="onNext()">下一步</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { workIndex } from '@/apis/interfaces/index'
|
||||
import { synthList } from '@/apis/interfaces/synthesis'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
businessArr : [],
|
||||
businessType: '',
|
||||
businessName: '',
|
||||
businessId : '',
|
||||
synthesisArr: []
|
||||
};
|
||||
},
|
||||
created() {
|
||||
// 业务类型列表
|
||||
workIndex().then(res => {
|
||||
this.businessArr = res
|
||||
this.businessType= res[0].self_type
|
||||
this.businessName= res[0].self_type + res[0].business_id
|
||||
this.businessId = res[0].business_id
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
|
||||
// 综法类型列表
|
||||
synthList().then(res => {
|
||||
this.synthesisArr = res
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 选择业务类型
|
||||
onBusiness(type, id){
|
||||
this.businessName = type + id
|
||||
this.businessType = type
|
||||
this.businessId = id
|
||||
},
|
||||
|
||||
// 创建业务单
|
||||
onNext(){
|
||||
// 信用卡/贷款
|
||||
if(this.businessType == 'business') {
|
||||
let busines = this.businessArr.find(val => val.business_id === this.businessId)
|
||||
|
||||
this.$Router.replace({
|
||||
name : 'sheetBasic',
|
||||
params : {
|
||||
businessTitle : busines.title,
|
||||
businessId : busines.business_id,
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 综法
|
||||
let synthesis = this.synthesisArr.find(val => val.synthesis_id === this.businessId)
|
||||
if(synthesis.can.buy) {
|
||||
this.$Router.push({
|
||||
name : 'FeeWrite',
|
||||
params : {
|
||||
synthesisId: synthesis.synthesis_id
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$Router.replace({
|
||||
name : 'PersonBrief',
|
||||
params : {
|
||||
synthesisId: synthesis.synthesis_id,
|
||||
type: 1
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
<script>
|
||||
import { workIndex } from '@/apis/interfaces/index'
|
||||
import { synthList } from '@/apis/interfaces/synthesis'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
businessArr : [],
|
||||
businessType: '',
|
||||
businessName: '',
|
||||
businessId : '',
|
||||
synthesisArr: []
|
||||
};
|
||||
},
|
||||
created() {
|
||||
// 业务类型列表
|
||||
workIndex().then(res => {
|
||||
this.businessArr = res
|
||||
this.businessType= res[0].self_type
|
||||
this.businessName= res[0].self_type + res[0].business_id
|
||||
this.businessId = res[0].business_id
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
|
||||
// 综法类型列表
|
||||
synthList().then(res => {
|
||||
this.synthesisArr = res
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 选择业务类型
|
||||
onBusiness(type, id){
|
||||
this.businessName = type + id
|
||||
this.businessType = type
|
||||
this.businessId = id
|
||||
},
|
||||
|
||||
// 创建业务单
|
||||
onNext(){
|
||||
// 信用卡/贷款
|
||||
if(this.businessType == 'business') {
|
||||
let busines = this.businessArr.find(val => val.business_id === this.businessId)
|
||||
|
||||
this.$Router.replace({
|
||||
name : 'sheetBasic',
|
||||
params : {
|
||||
businessTitle : busines.title,
|
||||
businessId : busines.business_id,
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 综法
|
||||
let synthesis = this.synthesisArr.find(val => val.synthesis_id === this.businessId)
|
||||
if(synthesis.can.buy) {
|
||||
this.$Router.push({
|
||||
name : 'FeeWrite',
|
||||
params : {
|
||||
synthesisId: synthesis.synthesis_id
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$Router.replace({
|
||||
name : 'PersonBrief',
|
||||
params : {
|
||||
synthesisId: synthesis.synthesis_id,
|
||||
type: 1
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
padding: 50rpx;
|
||||
box-sizing: border-box;
|
||||
height: 100vh;
|
||||
// height: calc(100vh - 44px);
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
|
||||
// 选择业务类型
|
||||
.create-type{
|
||||
padding-top: 50rpx;
|
||||
.create-type-title{
|
||||
line-height: 50rpx;
|
||||
text-align: center;
|
||||
font-size: $title-size + 4;
|
||||
margin-bottom: 70rpx;
|
||||
font-weight: 600;
|
||||
text {
|
||||
font-weight: normal;
|
||||
color: gray;
|
||||
display: block;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
}
|
||||
.create-type-item{
|
||||
background: #ffffff;
|
||||
border-radius: $radius-m;
|
||||
padding: 35rpx 30rpx;
|
||||
margin-top: 30rpx;
|
||||
border:solid 1rpx #f8f8f8;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-shadow: 0 0 5rpx rgba(0, 0, 0, .05);
|
||||
position: relative;
|
||||
.create-type-icon{
|
||||
width: 88rpx;
|
||||
height: 88rpx;
|
||||
margin-right: $margin;
|
||||
background-color: white;
|
||||
border-radius: $radius;
|
||||
}
|
||||
.create-type-text{
|
||||
line-height: 50rpx;
|
||||
.title{
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.submit{
|
||||
color: gray;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
.create-type-check {
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
position: absolute;
|
||||
top: 44rpx;
|
||||
right: 30rpx;
|
||||
}
|
||||
&.active{
|
||||
border:solid 1rpx #ff9fb1;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 按钮
|
||||
.create-btn{
|
||||
margin-top: 100rpx;
|
||||
button[size="default"]{
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background: $mian-color;
|
||||
font-size: 32rpx;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
&::after{
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
padding: 50rpx;
|
||||
box-sizing: border-box;
|
||||
height: 100vh;
|
||||
// height: calc(100vh - 44px);
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
|
||||
// 选择业务类型
|
||||
.create-type{
|
||||
padding-top: 50rpx;
|
||||
.create-type-title{
|
||||
line-height: 50rpx;
|
||||
text-align: center;
|
||||
font-size: $title-size + 4;
|
||||
margin-bottom: 70rpx;
|
||||
font-weight: 600;
|
||||
text {
|
||||
font-weight: normal;
|
||||
color: gray;
|
||||
display: block;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
}
|
||||
.create-type-item{
|
||||
background: #ffffff;
|
||||
border-radius: $radius-m;
|
||||
padding: 35rpx 30rpx;
|
||||
margin-top: 30rpx;
|
||||
border:solid 1rpx #f8f8f8;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-shadow: 0 0 5rpx rgba(0, 0, 0, .05);
|
||||
position: relative;
|
||||
.create-type-icon{
|
||||
width: 88rpx;
|
||||
height: 88rpx;
|
||||
margin-right: $margin;
|
||||
background-color: white;
|
||||
border-radius: $radius;
|
||||
}
|
||||
.create-type-text{
|
||||
line-height: 50rpx;
|
||||
.title{
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.submit{
|
||||
color: gray;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
.create-type-check {
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
position: absolute;
|
||||
top: 60rpx;
|
||||
right: 30rpx;
|
||||
}
|
||||
&.active{
|
||||
border:solid 1rpx #ff9fb1;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 按钮
|
||||
.create-btn{
|
||||
margin-top: 100rpx;
|
||||
button[size="default"]{
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background: $mian-color;
|
||||
font-size: 32rpx;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
&::after{
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -94,8 +94,8 @@
|
||||
realName({
|
||||
front_card: this.frontCard.path,
|
||||
back_card : this.backCard.path,
|
||||
// redirect_url: "https://web.douhuofalv.com/sheet/authSuccess",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/sheet/authSuccess"
|
||||
redirect_url: "https://web.douhuofalv.com/sheet/authSuccess",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/sheet/authSuccess"
|
||||
}).then(res => {
|
||||
this.realData = res.certification
|
||||
this.authShortUrl = res.sign.authShortUrl
|
||||
|
||||
@@ -558,8 +558,8 @@
|
||||
// 去签约
|
||||
contractClick(id) {
|
||||
contractGo(id, {
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
// let faceUrl = encodeURIComponent(res.sign_url)
|
||||
|
||||
@@ -81,8 +81,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode',
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -289,8 +289,9 @@
|
||||
|
||||
// 获取微信授权信息-获取oppid
|
||||
authFollow({
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'http://web.douhuo.demos.uzchain.tech/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price 最新
|
||||
url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -436,8 +436,8 @@
|
||||
// 去签约
|
||||
contractClick() {
|
||||
contractGo(this.$Route.query.id, {
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
// let faceUrl = encodeURIComponent(res.sign_url)
|
||||
|
||||
@@ -231,8 +231,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -240,8 +240,8 @@
|
||||
esignUrl({
|
||||
order_id : id,
|
||||
order_type: type,
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
channel : 'h5',
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
|
||||
@@ -210,8 +210,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -219,8 +219,8 @@
|
||||
esignUrl({
|
||||
order_id : id,
|
||||
order_type: type,
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
channel : 'h5',
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
const jweixin = require('jweixin-module');
|
||||
import { Apply, Wechat, authFollow } from '@/apis/interfaces/index'
|
||||
import { ums, umsState } from '@/apis/interfaces/pay'
|
||||
import { servicePay, serviceUms, serviceDg, expandPay, expandUms, expandDg, entrustPay, entrustUms, entrustDg, synDiffPay, synDiffUms, synDiffDg } from '@/apis/interfaces/pay'
|
||||
import { servicePay, serviceUms, serviceDg, expandPay, expandUms, expandDg, entrustPay, entrustUms, entrustDg, synDiffPay, synDiffUms, synDiffDg, payWechat, payUms, payDg } from '@/apis/interfaces/pay'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -133,7 +133,7 @@
|
||||
payForm : '', // 支付类型
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
onShow() {
|
||||
this.token = this.$store.getters.getToken
|
||||
this.payPrice = this.$Route.query.price
|
||||
this.payForm = this.$Route.query.payForm
|
||||
@@ -174,6 +174,8 @@
|
||||
apiUrl = expandDg
|
||||
} else if (this.payForm == 'entrust') {
|
||||
apiUrl = entrustDg
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
apiUrl = payDg
|
||||
}
|
||||
NewUrl = apiUrl
|
||||
}
|
||||
@@ -213,6 +215,8 @@
|
||||
apiUrl = serviceUms
|
||||
} else if (this.payForm == 'expand') {
|
||||
apiUrl = expandUms
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
apiUrl = payUms
|
||||
} else {
|
||||
apiUrl = entrustUms
|
||||
}
|
||||
@@ -265,6 +269,8 @@
|
||||
apiUrl = servicePay
|
||||
} else if (this.payForm == 'expand') {
|
||||
apiUrl = expandPay
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
apiUrl = payWechat
|
||||
} else {
|
||||
apiUrl = entrustPay
|
||||
}
|
||||
@@ -307,6 +313,9 @@
|
||||
} else if (this.payForm == 'expand') {
|
||||
// 跳到拓展单
|
||||
this.$Router.replace({name: 'ExpandOrder'})
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
// 个人中心
|
||||
this.$Router.replace({name: 'User'})
|
||||
} else {
|
||||
// 跳到委托单
|
||||
this.$Router.replace({name: 'EntrustOrder'})
|
||||
@@ -329,6 +338,11 @@
|
||||
setTimeout(()=>{
|
||||
this.$Router.replace({name: 'ExpandOrder'})
|
||||
},1000)
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
// 个人中心
|
||||
setTimeout(()=>{
|
||||
this.$Router.replace({name: 'User'})
|
||||
},1000)
|
||||
} else {
|
||||
// 跳到委托单
|
||||
setTimeout(()=>{
|
||||
@@ -349,8 +363,9 @@
|
||||
|
||||
// 获取微信授权信息-获取oppid
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.orderId + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
url: 'https://web.douhuofalv.com/webWechat/index?id=' + this.$Route.query.id + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webWechat/index?id=' + this.orderId + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price
|
||||
// url: 'http://web.douhuo.demos.uzchain.tech/webWechat/index?id=' + this.orderId + '&style=' + this.$Route.query.style + '&price=' + this.$Route.query.price 最新
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
@@ -370,6 +385,9 @@
|
||||
} else if (this.payForm == 'expand') {
|
||||
// 跳到拓展单
|
||||
this.$Router.replace({name: 'ExpandOrder'})
|
||||
} else if (this.payForm == 'synthesize') {
|
||||
// 个人中心
|
||||
this.$Router.replace({name: 'User'})
|
||||
} else {
|
||||
// 跳到委托单
|
||||
this.$Router.replace({name: 'EntrustOrder'})
|
||||
|
||||
@@ -1,416 +1,425 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="top">
|
||||
<view class="top-cont">
|
||||
<view class="top-cont-name">个人法律咨询</view>
|
||||
<view class="top-cont-text">请仔细填写以下信息</view>
|
||||
</view>
|
||||
<image class="top-img" src="https://cdn.douhuofalv.com/images/2023/04/20/2ea5fc20ffc90e7feec7ba2650b81c99.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="idcardBorder">
|
||||
<!-- 表单部分 -->
|
||||
<view class="idcardAdd-block">
|
||||
<block v-for="(item, keyIndex) in paramsArr" :key="keyIndex">
|
||||
<block v-if="item.pre_key == null || isShow(item)">
|
||||
<view class="idcardAdd-block-name">
|
||||
<view class="idcardAdd-block-see">
|
||||
<text v-if="item.is_required == 1">*</text>{{item.title}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 单输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'price' || item.type === 'number' || item.type === 'text' || item.type === 'password' || item.type === 'mobile' || item.type === 'day'">
|
||||
<block v-if="item.key === 'name' || item.type === 'mobile'">
|
||||
<input class="idcardAdd-input" v-model="item.value" :placeholder="item.value_text" v-if="item.value_text">
|
||||
<mouldInput v-else class="idcardAdd-input" :blur-value="item.value" :input-type="item.type" :input-title="item.title" :input-key="item.key" @onValue="($event) => {item.value = $event}"></mouldInput>
|
||||
</block>
|
||||
<block v-else>
|
||||
<mouldInput class="idcardAdd-input" :blur-value="item.value" :input-type="item.type" :input-title="item.title" :input-key="item.key" @onValue="($event) => {item.value = $event}"></mouldInput>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 下拉框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'select'">
|
||||
<picker class="idcardAdd-picker" :range="item.options" :value="item.value" @change="item.value = $event.detail.value">
|
||||
<view class="nowrap">
|
||||
<!-- {{item.options[item.value]}} -->
|
||||
{{item.options[item.value]}}
|
||||
</view>
|
||||
<image class="idcardAdd-picke-image" src="@/static/imgs/basic_down.png" mode="aspectFill"></image>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
<!-- 多选 -->
|
||||
<view class="idcardAdd-aline" v-if="item.type === 'checkbox'">
|
||||
<checkbox-group @change="item.value = $event.detail.value">
|
||||
<label class="checkbox-item" v-for="(checkboxItem, checkboxIndex) in item.options">
|
||||
<checkbox class="checkbox-input" :value="checkboxIndex" color="#446EFE"></checkbox>{{checkboxItem}}
|
||||
</label>
|
||||
</checkbox-group>
|
||||
</view>
|
||||
|
||||
<!-- 单选 -->
|
||||
<view class="idcardAdd-aline" v-if="item.type === 'radio'">
|
||||
<radio-group @change="item.value = $event.detail.value">
|
||||
<label class="idcardAdd-aline-write" v-for="(radioItem, radioIndex) in item.options" :key="radioIndex">
|
||||
<radio :value="radioIndex" color="#446EFE" style="transform:scale(.65)" :checked="item.value === radioIndex" /><text>{{radioItem}}</text>
|
||||
</label>
|
||||
</radio-group>
|
||||
</view>
|
||||
|
||||
<!-- 描述 -->
|
||||
<view class="idcardAdd-depict-textarea" v-if="item.type === 'textarea'">
|
||||
<textarea maxlength="500" class="textarea" :placeholder="'请输入' + item.title" v-model="item.value"></textarea>
|
||||
<text>500字以内</text>
|
||||
</view>
|
||||
|
||||
<!-- 被告所在地 -->
|
||||
<block v-if="item.type === 'pro_city' && item.key === 'defendant_address'">
|
||||
<view class="idcardAdd-block-write">
|
||||
<uni-data-picker
|
||||
:localdata="cityPicker"
|
||||
:border="false"
|
||||
split="-"
|
||||
placeholder="选择城市"
|
||||
@change="defendantPicker"
|
||||
></uni-data-picker>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<!-- 目前所在地 -->
|
||||
<block v-if="item.type === 'pro_city' && item.key === 'address'">
|
||||
<view class="idcardAdd-block-write">
|
||||
<uni-data-picker
|
||||
:localdata="cityPicker"
|
||||
:border="false"
|
||||
split="-"
|
||||
placeholder="选择城市"
|
||||
@change="addressPicker"
|
||||
></uni-data-picker>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view class="idcardBtn">
|
||||
<button class="idcardBtn-go" type="default" @click="onSubmit" :disabled="disabled">{{disabled ? '数据正在提交中' : '确认提交'}}</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { synthDet, synthPost } from '@/apis/interfaces/synthesis'
|
||||
import { createCity } from '@/apis/interfaces/user'
|
||||
import mouldInput from '@/components/mould-input.vue'
|
||||
export default {
|
||||
components: {
|
||||
mouldInput
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
paramsArr : [], // 信息
|
||||
cityPicker : [], // 地址
|
||||
|
||||
// 目前所在地
|
||||
address : {},
|
||||
|
||||
disabled : false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
|
||||
// 获取综法咨询-详情
|
||||
this.getBusiness();
|
||||
|
||||
// 省市区
|
||||
createCity().then(res => {
|
||||
this.cityPicker = res;
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
computed: {
|
||||
isShow(){
|
||||
return (item) => {
|
||||
if(item.pre_key != null){
|
||||
let index = this.paramsArr.findIndex(val => val.key == item.pre_key)
|
||||
return item.pre_value == this.paramsArr[index].value
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 综法咨询-详情
|
||||
getBusiness(){
|
||||
synthDet(this.$Route.query.synthesisId).then(res => {
|
||||
let froms = res.synthesis.params
|
||||
froms.map(val => {
|
||||
if(val.type === 'checkbox'){
|
||||
val.value = []
|
||||
}else if(val.type === 'select'){
|
||||
val.value = 0
|
||||
}else{
|
||||
val.value = ""
|
||||
}
|
||||
})
|
||||
this.paramsArr = froms
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 目前所在地-选择城市
|
||||
addressPicker(e){
|
||||
let { value } = e.detail
|
||||
let dataArr = {
|
||||
province_id: value[0].value,
|
||||
city_id: value[1].value
|
||||
}
|
||||
this.address = dataArr
|
||||
},
|
||||
|
||||
// 提交订单数据
|
||||
onSubmit(){
|
||||
uni.showLoading({
|
||||
title: '提交中...',
|
||||
mask : true
|
||||
})
|
||||
|
||||
let subData = {};
|
||||
let dataArr = []
|
||||
|
||||
for(let val of this.paramsArr){
|
||||
if(val.type === 'pro_city'){
|
||||
subData[val.key] = this.address
|
||||
}else{
|
||||
subData[val.key] = val.value
|
||||
}
|
||||
}
|
||||
|
||||
for(let key in subData){
|
||||
dataArr.push({
|
||||
key,
|
||||
value: subData[key]
|
||||
})
|
||||
}
|
||||
synthPost(this.$Route.query.synthesisId, {
|
||||
data: dataArr,
|
||||
type: 'self',
|
||||
channel: 'h5',
|
||||
user_id: ''
|
||||
}).then(res => {
|
||||
this.disabled = true
|
||||
uni.showToast({
|
||||
title: '提交成功',
|
||||
icon: "none"
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.$Router.replace({name: 'FeeConfirm', params: {synthesisId: res.synthesis_order_id}})
|
||||
},3000)
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: #111e4b;
|
||||
width: 100vw;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
.top {
|
||||
position: relative;
|
||||
height: 180rpx;
|
||||
.top-img {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 30%;
|
||||
}
|
||||
.top-cont {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
padding: 40rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
.top-cont-name {
|
||||
font-weight: 600;
|
||||
font-size: 44rpx;
|
||||
background-image: linear-gradient(to right,#f1c694, #fffbf6 42%);
|
||||
-webkit-background-clip:text;
|
||||
-webkit-text-fill-color:transparent;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.top-cont-text {
|
||||
font-size: 34rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.idcardBorder {
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.idcardAdd-block {
|
||||
padding: $padding + 20 $padding;
|
||||
box-sizing: border-box;
|
||||
background-color: #ffffff;
|
||||
border-radius: $radius;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.idcardAdd-depict-textarea {
|
||||
background-color: #f7faff;
|
||||
line-height: 90rpx;
|
||||
border-radius: $radius-sm;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin-bottom: 40rpx;
|
||||
.textarea {
|
||||
width: 100%;
|
||||
padding: $padding 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
text {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
font-size: 28rpx;
|
||||
color: #999999;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.idcardAdd-block-write {
|
||||
background-color: #f7faff;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
border-radius: $radius-sm;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin-bottom: 40rpx;
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.idcardAdd-input {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.idcardAdd-picker {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.idcardAdd-picke-image {
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
position: absolute;
|
||||
top: $margin;
|
||||
right: $margin;
|
||||
}
|
||||
|
||||
.idcardAdd-block-name {
|
||||
margin-bottom: $margin;
|
||||
display: flex;
|
||||
.idcardAdd-block-see {
|
||||
color: $text-color;
|
||||
margin-right: $margin;
|
||||
font-size: 30rpx;
|
||||
text {
|
||||
color: $mian-color;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// checkbox
|
||||
.checkbox-item{
|
||||
display: inline-block;
|
||||
margin-right: 20rpx;
|
||||
color: #999999;
|
||||
line-height: 70rpx;
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
.checkbox-input{
|
||||
transform:scale(0.6);
|
||||
}
|
||||
}
|
||||
|
||||
.idcardAdd-aline {
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin-bottom: 40rpx;
|
||||
.idcardAdd-aline-write {
|
||||
margin-right: 30rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.idcardBtn {
|
||||
background-color: #111e4b;
|
||||
width: 100%;
|
||||
padding: 20rpx 60rpx 140rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
.idcardBtn-go {
|
||||
width: 100%;
|
||||
background-image: linear-gradient(to bottom, #fff2d2, #f9cd9e);
|
||||
color: #582700;
|
||||
font-weight: 600;
|
||||
font-size: 36rpx;
|
||||
border-radius: $radius * 3;
|
||||
height: 94rpx;
|
||||
line-height: 94rpx;
|
||||
box-shadow: 0 6rpx 10rpx rgba(0, 0, 0, .5);
|
||||
text-align: center;
|
||||
&[disabled] {
|
||||
background-color: #f9f9f9;
|
||||
border-color: #e2e2e2;
|
||||
color: #959595;
|
||||
}
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="top">
|
||||
<view class="top-cont">
|
||||
<view class="top-cont-name">个人法律咨询</view>
|
||||
<view class="top-cont-text">请仔细填写以下信息</view>
|
||||
</view>
|
||||
<image class="top-img" src="https://cdn.douhuofalv.com/images/2023/04/20/2ea5fc20ffc90e7feec7ba2650b81c99.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="idcardBorder">
|
||||
<!-- 表单部分 -->
|
||||
<view class="idcardAdd-block">
|
||||
<block v-for="(item, keyIndex) in paramsArr" :key="keyIndex">
|
||||
<block v-if="item.pre_key == null || isShow(item)">
|
||||
<view class="idcardAdd-block-name">
|
||||
<view class="idcardAdd-block-see">
|
||||
<text v-if="item.is_required == 1">*</text>{{item.title}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 单输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'price' || item.type === 'number' || item.type === 'text' || item.type === 'password' || item.type === 'mobile' || item.type === 'day'">
|
||||
<block v-if="item.key === 'name' || item.type === 'mobile'">
|
||||
<input class="idcardAdd-input" v-model="item.value" :placeholder="item.value_text" v-if="item.value_text">
|
||||
<mouldInput v-else class="idcardAdd-input" :blur-value="item.value" :input-type="item.type" :input-title="item.title" :input-key="item.key" @onValue="($event) => {item.value = $event}"></mouldInput>
|
||||
</block>
|
||||
<block v-else>
|
||||
<mouldInput class="idcardAdd-input" :blur-value="item.value" :input-type="item.type" :input-title="item.title" :input-key="item.key" @onValue="($event) => {item.value = $event}"></mouldInput>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 下拉框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'select'">
|
||||
<picker class="idcardAdd-picker" :range="item.options" :value="item.value" @change="item.value = $event.detail.value">
|
||||
<view class="nowrap">
|
||||
<!-- {{item.options[item.value]}} -->
|
||||
{{item.options[item.value]}}
|
||||
</view>
|
||||
<image class="idcardAdd-picke-image" src="@/static/imgs/basic_down.png" mode="aspectFill"></image>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
<!-- 多选 -->
|
||||
<view class="idcardAdd-aline" v-if="item.type === 'checkbox'">
|
||||
<checkbox-group @change="item.value = $event.detail.value">
|
||||
<label class="checkbox-item" v-for="(checkboxItem, checkboxIndex) in item.options">
|
||||
<checkbox class="checkbox-input" :value="checkboxIndex" color="#446EFE"></checkbox>{{checkboxItem}}
|
||||
</label>
|
||||
</checkbox-group>
|
||||
</view>
|
||||
|
||||
<!-- 单选 -->
|
||||
<view class="idcardAdd-aline" v-if="item.type === 'radio'">
|
||||
<radio-group @change="item.value = $event.detail.value">
|
||||
<label class="idcardAdd-aline-write" v-for="(radioItem, radioIndex) in item.options" :key="radioIndex">
|
||||
<radio :value="radioIndex" color="#446EFE" style="transform:scale(.65)" :checked="item.value === radioIndex" /><text>{{radioItem}}</text>
|
||||
</label>
|
||||
</radio-group>
|
||||
</view>
|
||||
|
||||
<!-- 描述 -->
|
||||
<view class="idcardAdd-depict-textarea" v-if="item.type === 'textarea'">
|
||||
<textarea maxlength="500" class="textarea" :placeholder="'请输入' + item.title" v-model="item.value"></textarea>
|
||||
<text>500字以内</text>
|
||||
</view>
|
||||
|
||||
<!-- 被告所在地 -->
|
||||
<block v-if="item.type === 'pro_city' && item.key === 'defendant_address'">
|
||||
<view class="idcardAdd-block-write">
|
||||
<uni-data-picker
|
||||
:localdata="cityPicker"
|
||||
:border="false"
|
||||
split="-"
|
||||
placeholder="选择城市"
|
||||
@change="defendantPicker"
|
||||
></uni-data-picker>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<!-- 目前所在地 -->
|
||||
<block v-if="item.type === 'pro_city' && item.key === 'address'">
|
||||
<view class="idcardAdd-block-write">
|
||||
<uni-data-picker
|
||||
:localdata="cityPicker"
|
||||
:border="false"
|
||||
split="-"
|
||||
placeholder="选择城市"
|
||||
@change="addressPicker"
|
||||
></uni-data-picker>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view class="idcardBtn">
|
||||
<button class="idcardBtn-go" type="default" @click="onSubmit" :disabled="disabled">{{disabled ? '数据正在提交中' : '确认提交'}}</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { synthDet, synthPost } from '@/apis/interfaces/synthesis'
|
||||
import { createCity } from '@/apis/interfaces/user'
|
||||
import mouldInput from '@/components/mould-input.vue'
|
||||
export default {
|
||||
components: {
|
||||
mouldInput
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
paramsArr : [], // 信息
|
||||
cityPicker : [], // 地址
|
||||
|
||||
// 目前所在地
|
||||
address : {},
|
||||
|
||||
disabled : false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
|
||||
// 获取综法咨询-详情
|
||||
this.getBusiness();
|
||||
|
||||
// 省市区
|
||||
createCity().then(res => {
|
||||
this.cityPicker = res;
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
computed: {
|
||||
isShow(){
|
||||
return (item) => {
|
||||
if(item.pre_key != null){
|
||||
let index = this.paramsArr.findIndex(val => val.key == item.pre_key)
|
||||
return item.pre_value == this.paramsArr[index].value
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 综法咨询-详情
|
||||
getBusiness(){
|
||||
synthDet(this.$Route.query.synthesisId).then(res => {
|
||||
let froms = res.synthesis.params
|
||||
froms.map(val => {
|
||||
if(val.type === 'checkbox'){
|
||||
val.value = []
|
||||
}else if(val.type === 'select'){
|
||||
val.value = 0
|
||||
}else{
|
||||
val.value = ""
|
||||
}
|
||||
})
|
||||
this.paramsArr = froms
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 目前所在地-选择城市
|
||||
addressPicker(e){
|
||||
let { value } = e.detail
|
||||
let dataArr = {
|
||||
province_id: value[0].value,
|
||||
city_id: value[1].value
|
||||
}
|
||||
this.address = dataArr
|
||||
},
|
||||
|
||||
// 提交订单数据
|
||||
onSubmit(){
|
||||
uni.showLoading({
|
||||
title: '提交中...',
|
||||
mask : true
|
||||
})
|
||||
|
||||
let subData = {};
|
||||
let dataArr = []
|
||||
|
||||
for(let val of this.paramsArr){
|
||||
if(val.type === 'pro_city'){
|
||||
subData[val.key] = this.address
|
||||
}else{
|
||||
subData[val.key] = val.value
|
||||
}
|
||||
}
|
||||
|
||||
for(let key in subData){
|
||||
dataArr.push({
|
||||
key,
|
||||
value: subData[key]
|
||||
})
|
||||
}
|
||||
synthPost(this.$Route.query.synthesisId, {
|
||||
data: dataArr,
|
||||
type: 'self',
|
||||
channel: 'h5',
|
||||
user_id: ''
|
||||
}).then(res => {
|
||||
this.disabled = true
|
||||
uni.showToast({
|
||||
title: '提交成功',
|
||||
icon: "none"
|
||||
})
|
||||
|
||||
// 若价格大于0,要去支付
|
||||
let number = Number(res.price)
|
||||
if(number > 0) {
|
||||
this.$Router.replace({name: 'Pay', params: {orderId: res.order_id, orderType: res.order_type}})
|
||||
return
|
||||
}
|
||||
|
||||
// 否则直接跳转详情
|
||||
setTimeout(()=>{
|
||||
this.$Router.replace({name: 'FeeConfirm', params: {synthesisId: res.synthesis_order_id}})
|
||||
},3000)
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: #111e4b;
|
||||
width: 100vw;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
.top {
|
||||
position: relative;
|
||||
height: 180rpx;
|
||||
.top-img {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 30%;
|
||||
}
|
||||
.top-cont {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
padding: 40rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
.top-cont-name {
|
||||
font-weight: 600;
|
||||
font-size: 44rpx;
|
||||
background-image: linear-gradient(to right,#f1c694, #fffbf6 42%);
|
||||
-webkit-background-clip:text;
|
||||
-webkit-text-fill-color:transparent;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.top-cont-text {
|
||||
font-size: 34rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.idcardBorder {
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.idcardAdd-block {
|
||||
padding: $padding + 20 $padding;
|
||||
box-sizing: border-box;
|
||||
background-color: #ffffff;
|
||||
border-radius: $radius;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.idcardAdd-depict-textarea {
|
||||
background-color: #f7faff;
|
||||
line-height: 90rpx;
|
||||
border-radius: $radius-sm;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin-bottom: 40rpx;
|
||||
.textarea {
|
||||
width: 100%;
|
||||
padding: $padding 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
text {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
font-size: 28rpx;
|
||||
color: #999999;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.idcardAdd-block-write {
|
||||
background-color: #f7faff;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
border-radius: $radius-sm;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin-bottom: 40rpx;
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.idcardAdd-input {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.idcardAdd-picker {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.idcardAdd-picke-image {
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
position: absolute;
|
||||
top: $margin;
|
||||
right: $margin;
|
||||
}
|
||||
|
||||
.idcardAdd-block-name {
|
||||
margin-bottom: $margin;
|
||||
display: flex;
|
||||
.idcardAdd-block-see {
|
||||
color: $text-color;
|
||||
margin-right: $margin;
|
||||
font-size: 30rpx;
|
||||
text {
|
||||
color: $mian-color;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// checkbox
|
||||
.checkbox-item{
|
||||
display: inline-block;
|
||||
margin-right: 20rpx;
|
||||
color: #999999;
|
||||
line-height: 70rpx;
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
.checkbox-input{
|
||||
transform:scale(0.6);
|
||||
}
|
||||
}
|
||||
|
||||
.idcardAdd-aline {
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin-bottom: 40rpx;
|
||||
.idcardAdd-aline-write {
|
||||
margin-right: 30rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.idcardBtn {
|
||||
background-color: #111e4b;
|
||||
width: 100%;
|
||||
padding: 20rpx 60rpx 140rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
.idcardBtn-go {
|
||||
width: 100%;
|
||||
background-image: linear-gradient(to bottom, #fff2d2, #f9cd9e);
|
||||
color: #582700;
|
||||
font-weight: 600;
|
||||
font-size: 36rpx;
|
||||
border-radius: $radius * 3;
|
||||
height: 94rpx;
|
||||
line-height: 94rpx;
|
||||
box-shadow: 0 6rpx 10rpx rgba(0, 0, 0, .5);
|
||||
text-align: center;
|
||||
&[disabled] {
|
||||
background-color: #f9f9f9;
|
||||
border-color: #e2e2e2;
|
||||
color: #959595;
|
||||
}
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -243,8 +243,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -1,226 +1,230 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="list" v-if="yearArr.length > 0">
|
||||
<view class="listItem" v-for="(item, index) in yearArr" :key="index">
|
||||
<view class="listItem-no">
|
||||
订单号:{{item.order_no}}
|
||||
</view>
|
||||
<view class="listItem-cont">
|
||||
<view class="listItem-cont-label">
|
||||
<view class="listItem-cont-name">
|
||||
订单类型
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-status">
|
||||
{{item.synthesis.title}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="listItem-cont-label">
|
||||
<view class="listItem-cont-name">
|
||||
业务联系人
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-price">
|
||||
{{item.user.parent.nickname}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="listItem-cont-label" v-if="item.lawyer">
|
||||
<view class="listItem-cont-name">
|
||||
所属律师
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-price">
|
||||
{{item.lawyer.name}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="listItem-cont-label" v-if="item.lawyer">
|
||||
<view class="listItem-cont-name">
|
||||
律师电话
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-price">
|
||||
{{item.lawyer.username}}
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="listItem-labor">
|
||||
<view class="listItem-labor-time">
|
||||
{{item.created_at}}
|
||||
</view>
|
||||
<view class="listItem-labor-btn">
|
||||
<view @click="$Router.push({name: 'FeeConfirm', params: {synthesisId: item.synthesis_order_id}})" class="listItem-labor-go yellow">
|
||||
查看详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="pack-center pages-hint" v-else>
|
||||
<image src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/7ad417d0c215db601b8e1bead05c3a5e.png"></image>
|
||||
<view>暂无订单</view>
|
||||
</view>
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="list" v-if="yearArr.length > 0">
|
||||
<view class="listItem" v-for="(item, index) in yearArr" :key="index">
|
||||
<view class="listItem-no">
|
||||
订单号:{{item.order_no}}
|
||||
</view>
|
||||
<view class="listItem-cont">
|
||||
<view class="listItem-cont-label">
|
||||
<view class="listItem-cont-name">
|
||||
订单类型
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-status">
|
||||
{{item.synthesis.title}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="listItem-cont-label">
|
||||
<view class="listItem-cont-name">
|
||||
业务联系人
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-price">
|
||||
{{item.user.parent.nickname}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="listItem-cont-label" v-if="item.lawyer">
|
||||
<view class="listItem-cont-name">
|
||||
所属律师
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-price">
|
||||
{{item.lawyer.name}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="listItem-cont-label" v-if="item.lawyer">
|
||||
<view class="listItem-cont-name">
|
||||
律师电话
|
||||
</view>
|
||||
<view class="listItem-cont-text listItem-cont-price">
|
||||
{{item.lawyer.username}}
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="listItem-labor">
|
||||
<view class="listItem-labor-time">
|
||||
{{item.created_at}}
|
||||
</view>
|
||||
<view class="listItem-labor-btn">
|
||||
<view @click="$Router.push({name: 'Pay', params: {orderId: item.order_id, orderType: item.order_type}})" class="listItem-labor-go yellow" v-if="item.can.pay">
|
||||
去支付
|
||||
</view>
|
||||
|
||||
<view @click="$Router.push({name: 'FeeConfirm', params: {synthesisId: item.synthesis_order_id}})" class="listItem-labor-go yellow" v-if="item.can.look">
|
||||
查看详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="pack-center pages-hint" v-else>
|
||||
<image src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/7ad417d0c215db601b8e1bead05c3a5e.png"></image>
|
||||
<view>暂无订单</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { seekOrder } from '@/apis/interfaces/synthesis'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
yearStatus : 0, // 0 未付款 1 2
|
||||
yearArr : [], // 咨询单列表
|
||||
page : {}, // 分页信息
|
||||
lodingStats : false, // 加载状态
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
// 获取-咨询单-列表
|
||||
this.yearServe();
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 咨询单-列表
|
||||
yearServe(page){
|
||||
seekOrder({
|
||||
status : this.yearStatus,
|
||||
page : page || 1
|
||||
}).then(res => {
|
||||
let esArr = res.data
|
||||
let list = this.yearArr,
|
||||
newData = []
|
||||
if(page == 1 || page == undefined) list = []
|
||||
newData = list.concat(esArr)
|
||||
this.yearArr = newData
|
||||
this.page = res.page
|
||||
this.lodingStats = false
|
||||
uni.stopPullDownRefresh()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 状态选择
|
||||
stateClick(state) {
|
||||
this.yearStatus = state
|
||||
|
||||
// 获取-咨询单列表
|
||||
this.yearServe();
|
||||
},
|
||||
|
||||
// 订单支付
|
||||
canClick(e) {
|
||||
// pay_status == 1可支付
|
||||
if(e.can.pay_status == 1) {
|
||||
// pay_way为1的时线上支付, 为2时线下支付
|
||||
if(e.service.pay_way == 1) {
|
||||
this.$Router.push({name: 'FeePay', params: {orderId: e.service_order_id}})
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 选择支付方式
|
||||
expressSheet(item) {
|
||||
uni.showActionSheet({
|
||||
itemList: ['微信支付', '打款凭证'],
|
||||
success: sheetRes => {
|
||||
console.log(sheetRes)
|
||||
},
|
||||
fail: sheetFail => {}
|
||||
})
|
||||
},
|
||||
|
||||
// 页面相关事件处理函数--监听用户下拉动作
|
||||
onPullDownRefresh() {
|
||||
// 获取-咨询单-列表
|
||||
this.yearServe();
|
||||
},
|
||||
|
||||
// 上拉加载
|
||||
onReachBottom(){
|
||||
this.lodingStats = true
|
||||
let pageNumber = this.page.current
|
||||
if(this.page.has_more){
|
||||
pageNumber++
|
||||
// 获取-咨询单-列表
|
||||
this.yearServe(pageNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
<script>
|
||||
import { seekOrder } from '@/apis/interfaces/synthesis'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
yearStatus : 0, // 0 未付款 1 2
|
||||
yearArr : [], // 咨询单列表
|
||||
page : {}, // 分页信息
|
||||
lodingStats : false, // 加载状态
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
// 获取-咨询单-列表
|
||||
this.yearServe();
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 咨询单-列表
|
||||
// status : this.yearStatus,
|
||||
yearServe(page){
|
||||
seekOrder({
|
||||
page : page || 1
|
||||
}).then(res => {
|
||||
let esArr = res.data
|
||||
let list = this.yearArr,
|
||||
newData = []
|
||||
if(page == 1 || page == undefined) list = []
|
||||
newData = list.concat(esArr)
|
||||
this.yearArr = newData
|
||||
this.page = res.page
|
||||
this.lodingStats = false
|
||||
uni.stopPullDownRefresh()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 状态选择
|
||||
stateClick(state) {
|
||||
this.yearStatus = state
|
||||
|
||||
// 获取-咨询单列表
|
||||
this.yearServe();
|
||||
},
|
||||
|
||||
// 订单支付
|
||||
canClick(e) {
|
||||
// pay_status == 1可支付
|
||||
if(e.can.pay_status == 1) {
|
||||
// pay_way为1的时线上支付, 为2时线下支付
|
||||
if(e.service.pay_way == 1) {
|
||||
this.$Router.push({name: 'FeePay', params: {orderId: e.service_order_id}})
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 选择支付方式
|
||||
expressSheet(item) {
|
||||
uni.showActionSheet({
|
||||
itemList: ['微信支付', '打款凭证'],
|
||||
success: sheetRes => {
|
||||
console.log(sheetRes)
|
||||
},
|
||||
fail: sheetFail => {}
|
||||
})
|
||||
},
|
||||
|
||||
// 页面相关事件处理函数--监听用户下拉动作
|
||||
onPullDownRefresh() {
|
||||
// 获取-咨询单-列表
|
||||
this.yearServe();
|
||||
},
|
||||
|
||||
// 上拉加载
|
||||
onReachBottom(){
|
||||
this.lodingStats = true
|
||||
let pageNumber = this.page.current
|
||||
if(this.page.has_more){
|
||||
pageNumber++
|
||||
// 获取-咨询单-列表
|
||||
this.yearServe(pageNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: #f7f9fa;
|
||||
overflow-y: scroll;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.list {
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
.listItem {
|
||||
background-color: #ffffff;
|
||||
border-radius: 10rpx;
|
||||
margin-bottom: 30rpx;
|
||||
.listItem-no {
|
||||
line-height: 90rpx;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 2rpx solid #eeeeee;
|
||||
}
|
||||
.listItem-cont {
|
||||
padding: 15rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
.listItem-cont-label {
|
||||
display: flex;
|
||||
line-height: 60rpx;
|
||||
color: #666666;
|
||||
font-size: 28rpx;
|
||||
.listItem-cont-name {
|
||||
flex: 1;
|
||||
}
|
||||
.listItem-cont-text {
|
||||
color: #000000;
|
||||
&.listItem-cont-status {
|
||||
color: #da2b56;
|
||||
}
|
||||
&.listItem-cont-price {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.listItem-labor {
|
||||
border-top: 2rpx solid #eeeeee;
|
||||
line-height: 50rpx;
|
||||
padding: 25rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 26rpx;
|
||||
display: flex;
|
||||
.listItem-labor-time {
|
||||
flex: 1;
|
||||
color: #999999;
|
||||
}
|
||||
.listItem-labor-go {
|
||||
display: inline-block;
|
||||
border: 2rpx solid #da2b56;
|
||||
color: #da2b56;
|
||||
border-radius: 80rpx;
|
||||
padding: 0 20rpx;
|
||||
&.active {
|
||||
border-color: #999999;
|
||||
color: #666666;
|
||||
}
|
||||
&.yellow {
|
||||
border-color: #ec7647;
|
||||
color: #ec7647;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: #f7f9fa;
|
||||
overflow-y: scroll;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.list {
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
.listItem {
|
||||
background-color: #ffffff;
|
||||
border-radius: 10rpx;
|
||||
margin-bottom: 30rpx;
|
||||
.listItem-no {
|
||||
line-height: 90rpx;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 2rpx solid #eeeeee;
|
||||
}
|
||||
.listItem-cont {
|
||||
padding: 15rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
.listItem-cont-label {
|
||||
display: flex;
|
||||
line-height: 60rpx;
|
||||
color: #666666;
|
||||
font-size: 28rpx;
|
||||
.listItem-cont-name {
|
||||
flex: 1;
|
||||
}
|
||||
.listItem-cont-text {
|
||||
color: #000000;
|
||||
&.listItem-cont-status {
|
||||
color: #da2b56;
|
||||
}
|
||||
&.listItem-cont-price {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.listItem-labor {
|
||||
border-top: 2rpx solid #eeeeee;
|
||||
line-height: 50rpx;
|
||||
padding: 25rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 26rpx;
|
||||
display: flex;
|
||||
.listItem-labor-time {
|
||||
flex: 1;
|
||||
color: #999999;
|
||||
}
|
||||
.listItem-labor-go {
|
||||
display: inline-block;
|
||||
border: 2rpx solid #da2b56;
|
||||
color: #da2b56;
|
||||
border-radius: 80rpx;
|
||||
padding: 0 20rpx;
|
||||
&.active {
|
||||
border-color: #999999;
|
||||
color: #666666;
|
||||
}
|
||||
&.yellow {
|
||||
border-color: #ec7647;
|
||||
color: #ec7647;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -268,8 +268,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
@@ -218,8 +218,8 @@
|
||||
esignUrl({
|
||||
order_id : id,
|
||||
order_type: type,
|
||||
// redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
redirect_url: "https://web.douhuofalv.com/user/index",
|
||||
// redirect_url: "https://web.douhuotest.douhuofalv.com/user/index",
|
||||
channel : 'h5',
|
||||
app_scheme : ''
|
||||
}).then(res => {
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
</view>
|
||||
<!-- 临时 style="display: none;" -->
|
||||
<view class="userTop-see" v-if="userLogin">
|
||||
<view class="userTop-label" @click="$Router.push({name: 'sheetIndex'})">
|
||||
<!-- <view class="userTop-label" @click="$Router.push({name: 'sheetIndex'})">
|
||||
<view class="userSee-name">
|
||||
协商调解类
|
||||
</view>
|
||||
@@ -46,6 +46,31 @@
|
||||
</view>
|
||||
</block>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/2823f7c9ed144df424ca8ee6c47b0ff6.png">
|
||||
</view> -->
|
||||
|
||||
<view class="userTop-label" @click="$Router.push({name: 'AccountWork'})" style="display: none;">
|
||||
<view class="userSee-name">
|
||||
账户管理资讯类
|
||||
</view>
|
||||
<view class="userSee-number">
|
||||
<!-- {{ userData.business_orders_count.all ? userData.business_orders_count.all : '0'}}<text>单</text> -->
|
||||
</view>
|
||||
<view class="userSee-tips">
|
||||
客户账户管理资讯类订单
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/2823f7c9ed144df424ca8ee6c47b0ff6.png">
|
||||
</view>
|
||||
<view class="userTop-label" @click="$Router.push({name: 'DelegationWork'})" style="display: none;">
|
||||
<view class="userSee-name">
|
||||
委托管理类
|
||||
</view>
|
||||
<view class="userSee-number">
|
||||
<!-- {{ userData.business_orders_count.all ? userData.business_orders_count.all : '0'}}<text>单</text> -->
|
||||
</view>
|
||||
<view class="userSee-tips">
|
||||
客户委托管理类订单
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/2823f7c9ed144df424ca8ee6c47b0ff6.png">
|
||||
</view>
|
||||
|
||||
<view class="userTop-label" @click="$Router.push({name: 'synthesisOrder', params: {type: 'legal'}})">
|
||||
@@ -56,7 +81,8 @@
|
||||
{{synthesisAll.legal_consulting ? synthesisAll.legal_consulting : '0'}}<text>单</text>
|
||||
</view>
|
||||
<view class="userSee-tips">
|
||||
个人、企业法律
|
||||
<!-- 个人、 -->
|
||||
企业法律
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/06/84e573c04d3dcb7fa1cccefbde9bf851.png">
|
||||
</view>
|
||||
@@ -72,7 +98,7 @@
|
||||
</view>
|
||||
<img class="userSee-icon" src="https://douhuo-storage.oss-cn-beijing.aliyuncs.com/images/2023/06/19/08e5c39f136d84e9754d4ac4d16af181.png">
|
||||
</view>
|
||||
<view class="userTop-label" @click="$Router.push({name: 'EmpowerOrder'})">
|
||||
<view class="userTop-label" @click="$Router.push({name: 'EmpowerOrder'})" style="display: none;">
|
||||
<view class="userSee-name">
|
||||
增收赋能类
|
||||
</view>
|
||||
@@ -88,7 +114,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- 临时 style="display: none;" -->
|
||||
<view class="board" v-if="userLogin">
|
||||
<view class="board" v-if="userLogin" style="display: none;">
|
||||
<view class="board-title">
|
||||
数据看板
|
||||
</view>
|
||||
|
||||
@@ -273,8 +273,8 @@
|
||||
judgeGeneral(){
|
||||
// 获取微信授权信息
|
||||
authFollow({
|
||||
// url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
url: 'https://web.douhuofalv.com/webview/webCode'
|
||||
// url: 'https://web.douhuotest.douhuofalv.com/webview/webCode'
|
||||
}).then(res => {
|
||||
window.location.href = res
|
||||
}).catch(err => {
|
||||
|
||||
319
pages/work/account.vue
Normal file
319
pages/work/account.vue
Normal file
@@ -0,0 +1,319 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- tabs -->
|
||||
<u-sticky bgColor="#FFF" zIndex="9" >
|
||||
<u-tabs
|
||||
:current="tabsCurrent"
|
||||
:list="tabs"
|
||||
keyName="value"
|
||||
lineColor="#446EFE"
|
||||
:scrollable="tabs.length > 5"
|
||||
:activeStyle="{
|
||||
color: '#111',
|
||||
fontWeight: 'bold',
|
||||
fontSize: '32rpx'
|
||||
}"
|
||||
:inactiveStyle="{
|
||||
color: '#606266',
|
||||
fontSize: '30rpx'
|
||||
}"
|
||||
@click="onTabs"
|
||||
></u-tabs>
|
||||
</u-sticky>
|
||||
<!-- 订单列表 -->
|
||||
<view class="orders" v-if="orders.length > 0">
|
||||
<view class="orders-item" v-for="(item, index) in orders" :key="index">
|
||||
<view class="orders-flex">
|
||||
<view class="no nowrap" @click="copyNo(item.order_no)">
|
||||
{{item.order_no}}
|
||||
</view>
|
||||
<view class="state">{{item.status.text}}</view>
|
||||
</view>
|
||||
<view class="orders-content">
|
||||
<view class="orders-content-item">
|
||||
<label>业务名称</label>
|
||||
<view class="nowrap">{{item.item.title}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>客户姓名</label>
|
||||
<view class="nowrap">{{item.name}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>手机号码</label>
|
||||
<view class="nowrap">{{item.mobile}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>创建时间</label>
|
||||
<view class="nowrap">{{item.created_at}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item" v-if="item.paid_at != ''">
|
||||
<label>支付时间</label>
|
||||
<view class="nowrap">{{item.paid_at}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="orders-flex">
|
||||
<view class="price">¥{{item.item.price}}</view>
|
||||
<view class="btns">
|
||||
<view class="btns-item border" v-if="item.can.cancel" @click="onCancel(item)">取消订单</view>
|
||||
<view class="btns-item" v-if="item.can.pay" @click="onPay(item)">立即支付</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</view>
|
||||
<!-- 订单是空的 -->
|
||||
<view class="order-null" v-else>
|
||||
<u-empty
|
||||
mode="order"
|
||||
icon="http://cdn.uviewui.com/uview/empty/order.png"
|
||||
text="暂无相关订单"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { accountOrder, accountCancel } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabs : [{ id: '', value: '全部' }],
|
||||
tabsCurrent : 0,
|
||||
tabsId : '',
|
||||
orders : [],
|
||||
pagesShow : false,
|
||||
page : {
|
||||
current : 1,
|
||||
has_more: false,
|
||||
},
|
||||
status : ''
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getOrder()
|
||||
},
|
||||
methods: {
|
||||
// 筛选分类
|
||||
onTabs(e){
|
||||
let { id, index } = e;
|
||||
this.tabsCurrent = index
|
||||
this.tabsId = id
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
},
|
||||
// 获取订单列表
|
||||
getOrder(){
|
||||
let { tabsId, tabs, orders, page } = this
|
||||
accountOrder({
|
||||
manager: 1,
|
||||
status : tabsId,
|
||||
page : page.current
|
||||
}).then(res => {
|
||||
let { status, lists } = res;
|
||||
this.tabs = [{ id: '', value: '全部' }].concat(status)
|
||||
this.orders = lists.page.current == 1 ? lists.data : this.orders.concat(lists.data)
|
||||
this.page = lists.page
|
||||
this.pagesShow = false
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
// 取消订单
|
||||
onCancel(e){
|
||||
let { order_id } = e;
|
||||
uni.showModal({
|
||||
title : "提示",
|
||||
content : "确认取消当前订单嘛?",
|
||||
cancelText : "取消",
|
||||
confirmColor: "#446EFE",
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
uni.showLoading({
|
||||
title: "加载中...",
|
||||
mask : true
|
||||
})
|
||||
accountCancel(order_id).then(res => {
|
||||
uni.showToast({
|
||||
title: '订单已取消',
|
||||
icon : 'none'
|
||||
})
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 复制订单号码
|
||||
copyNo(no){
|
||||
uni.setClipboardData({
|
||||
data : no,
|
||||
success : res => {
|
||||
uni.showToast({
|
||||
title: '订单号已复制',
|
||||
icon : 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去支付
|
||||
onPay(obj){
|
||||
let { order_id, order_type, paid_at } = obj
|
||||
if(paid_at == ''){
|
||||
this.$Router.replace({name: 'FeePay', params: {id: order_id, orderType: order_type, price: obj.item.price, payForm: 'synthesize'}})
|
||||
}
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.pagesShow = true;
|
||||
if(this.page.has_more){
|
||||
this.status = 'loading';
|
||||
this.page.current++
|
||||
this.getOrder()
|
||||
return
|
||||
}
|
||||
this.status = 'nomore';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.content{ background: #f7f8f9; min-height: calc(100vh - 44px); }
|
||||
// 订单列表
|
||||
.orders{
|
||||
padding: 30rpx 0 10rpx;
|
||||
.orders-item{
|
||||
margin: 0 30rpx 20rpx;
|
||||
background-color: white;
|
||||
border-radius: $radius;
|
||||
}
|
||||
.orders-content{
|
||||
padding: 20rpx 30rpx;
|
||||
.orders-content-item{
|
||||
line-height: 70rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 30rpx;
|
||||
color: #111111;
|
||||
label{
|
||||
color: #999999;
|
||||
}
|
||||
.orders-content-btn{
|
||||
color: #446EFE;
|
||||
}
|
||||
.orders-content-bottom{
|
||||
padding-right: 40rpx;
|
||||
position: relative;
|
||||
.orders-content-icon{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-type{
|
||||
text{
|
||||
margin-right: 30rpx;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
&::after{
|
||||
position: absolute;
|
||||
content: "/";
|
||||
width: 30rpx;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
top: 0;
|
||||
right: -30rpx;
|
||||
}
|
||||
&:last-child{
|
||||
margin-right: 0;
|
||||
&::after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-block{
|
||||
background: rgba(68, 110, 254, .03);
|
||||
padding: 20rpx;
|
||||
font-size: 28rpx;
|
||||
border-radius: 10rpx;
|
||||
margin: 10rpx 0;
|
||||
.item-flex{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-flex{
|
||||
border-bottom: solid 1rpx #F6F6F6;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20rpx 30rpx;
|
||||
&:last-child{
|
||||
border-top: solid 1rpx #F6F6F6;
|
||||
border-bottom: none;
|
||||
}
|
||||
.no{
|
||||
font-size: 30rpx;
|
||||
color: #111;
|
||||
line-height: 60rpx;
|
||||
width: calc(100% - 150rpx);
|
||||
}
|
||||
.state{
|
||||
color: #446EFE;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
line-height: 60rpx;
|
||||
width: 150rpx;
|
||||
text-align: right;
|
||||
}
|
||||
.price{
|
||||
font-weight: bold;
|
||||
color: #446EFE;
|
||||
}
|
||||
.btns{
|
||||
width: 400rpx;
|
||||
text-align: right;
|
||||
.btns-item{
|
||||
display: inline-block;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
background: #446EFE;
|
||||
color: white;
|
||||
border-radius: 35rpx;
|
||||
padding: 0 30rpx;
|
||||
font-size: 30rpx;
|
||||
&.border{
|
||||
border: solid 1rpx #446EFE;
|
||||
color: #446EFE;
|
||||
background: white;
|
||||
height: 68rpx;
|
||||
line-height: 68rpx;
|
||||
&::after{ display: none;}
|
||||
}
|
||||
&:last-child{ margin-left: 30rpx; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 订单为空
|
||||
.order-null{
|
||||
height: 80vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
313
pages/work/delegation.vue
Normal file
313
pages/work/delegation.vue
Normal file
@@ -0,0 +1,313 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- tabs -->
|
||||
<u-sticky bgColor="#FFF" zIndex="9" >
|
||||
<u-tabs
|
||||
:current="tabsCurrent"
|
||||
:list="tabs"
|
||||
keyName="value"
|
||||
lineColor="#446EFE"
|
||||
:scrollable="tabs.length > 5"
|
||||
:activeStyle="{
|
||||
color: '#111',
|
||||
fontWeight: 'bold',
|
||||
fontSize: '32rpx'
|
||||
}"
|
||||
:inactiveStyle="{
|
||||
color: '#606266',
|
||||
fontSize: '30rpx'
|
||||
}"
|
||||
@click="onTabs"
|
||||
></u-tabs>
|
||||
</u-sticky>
|
||||
<!-- 订单列表 -->
|
||||
<view class="orders" v-if="orders.length > 0">
|
||||
<view class="orders-item" v-for="(item, index) in orders" :key="index">
|
||||
<view class="orders-flex">
|
||||
<view class="no nowrap" @click="copyNo(item.order_no)">
|
||||
{{item.order_no}}
|
||||
</view>
|
||||
<view class="state">{{item.status.text}}</view>
|
||||
</view>
|
||||
<view class="orders-content">
|
||||
<view class="orders-content-item">
|
||||
<label>业务名称</label>
|
||||
<view class="nowrap">{{item.item.title}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>客户姓名</label>
|
||||
<view class="nowrap">{{item.name}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>手机号码</label>
|
||||
<view class="nowrap">{{item.mobile}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item">
|
||||
<label>创建时间</label>
|
||||
<view class="nowrap">{{item.created_at}}</view>
|
||||
</view>
|
||||
<view class="orders-content-item" v-if="item.paid_at != ''">
|
||||
<label>支付时间</label>
|
||||
<view class="nowrap">{{item.paid_at}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="orders-flex">
|
||||
<view class="price">¥{{item.item.price}}</view>
|
||||
<view class="btns">
|
||||
<view class="btns-item border" v-if="item.can.cancel" @click="onCancel(item)">取消订单</view>
|
||||
<view class="btns-item" v-if="item.can.pay" @click="onPay(item)">立即支付</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</view>
|
||||
<!-- 订单是空的 -->
|
||||
<view class="order-null" v-else>
|
||||
<u-empty
|
||||
mode="order"
|
||||
icon="http://cdn.uviewui.com/uview/empty/order.png"
|
||||
text="暂无相关订单"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { delegationOrder, delegationCancel } from '@/apis/interfaces/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabs : [{ id: '', value: '全部' }],
|
||||
tabsCurrent : 0,
|
||||
tabsId : '',
|
||||
orders : [],
|
||||
pagesShow : false,
|
||||
page : {
|
||||
current : 1,
|
||||
has_more: false,
|
||||
},
|
||||
status : ''
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getOrder()
|
||||
},
|
||||
methods: {
|
||||
// 筛选分类
|
||||
onTabs(e){
|
||||
let { id, index } = e;
|
||||
this.tabsCurrent = index
|
||||
this.tabsId = id
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
},
|
||||
// 获取订单列表
|
||||
getOrder(){
|
||||
let { tabsId, tabs, orders, page } = this
|
||||
delegationOrder({
|
||||
manager: 1,
|
||||
status : tabsId,
|
||||
page : page.current
|
||||
}).then(res => {
|
||||
let { status, lists } = res;
|
||||
this.tabs = [{ id: '', value: '全部' }].concat(status)
|
||||
this.orders = lists.page.current == 1 ? lists.data : this.orders.concat(lists.data)
|
||||
this.page = lists.page
|
||||
this.pagesShow = false
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
// 取消订单
|
||||
onCancel(e){
|
||||
let { order_id } = e;
|
||||
uni.showModal({
|
||||
title : "提示",
|
||||
content : "确认取消当前订单嘛?",
|
||||
cancelText : "取消",
|
||||
confirmColor: "#446EFE",
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
uni.showLoading({
|
||||
title: "加载中...",
|
||||
mask : true
|
||||
})
|
||||
delegationCancel(order_id).then(res => {
|
||||
uni.showToast({
|
||||
title: '订单已取消',
|
||||
icon : 'none'
|
||||
})
|
||||
this.page = { current: 1, has_more: false }
|
||||
this.getOrder()
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 复制订单号码
|
||||
copyNo(no){
|
||||
uni.setClipboardData({
|
||||
data : no,
|
||||
success : res => {
|
||||
uni.showToast({
|
||||
title: '订单号已复制',
|
||||
icon : 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去支付
|
||||
onPay(obj){
|
||||
let { order_id, order_type, paid_at } = obj
|
||||
if(paid_at == ''){
|
||||
this.$Router.replace({name: 'FeePay', params: {id: order_id, orderType: order_type, price: obj.item.price, payForm: 'synthesize'}})
|
||||
}
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.pagesShow = true;
|
||||
if(this.page.has_more){
|
||||
this.status = 'loading';
|
||||
this.page.current++
|
||||
this.getOrder()
|
||||
return
|
||||
}
|
||||
this.status = 'nomore';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.content{ background: #f7f8f9; min-height: calc(100vh - 44px); }
|
||||
|
||||
// 订单列表
|
||||
.orders{
|
||||
padding: 30rpx 0 10rpx;
|
||||
.orders-item{
|
||||
margin: 0 30rpx 20rpx;
|
||||
background-color: white;
|
||||
border-radius: $radius;
|
||||
}
|
||||
.orders-content{
|
||||
padding: 20rpx 30rpx;
|
||||
.orders-content-item{
|
||||
line-height: 70rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 30rpx;
|
||||
color: #111111;
|
||||
label{
|
||||
color: #999999;
|
||||
}
|
||||
.orders-content-btn{
|
||||
color: #446EFE;
|
||||
}
|
||||
&.orders-content-bottom{
|
||||
padding-right: 40rpx;
|
||||
position: relative;
|
||||
.orders-content-icon{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-type{
|
||||
text{
|
||||
margin-right: 30rpx;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
&::after{
|
||||
position: absolute;
|
||||
content: "/";
|
||||
width: 30rpx;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
top: 0;
|
||||
right: -30rpx;
|
||||
}
|
||||
&:last-child{
|
||||
margin-right: 0;
|
||||
&::after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-content-block{
|
||||
background: rgba(68, 110, 254, .03);
|
||||
padding: 20rpx;
|
||||
font-size: 28rpx;
|
||||
border-radius: 10rpx;
|
||||
margin: 10rpx 0;
|
||||
.item-flex{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orders-flex{
|
||||
border-bottom: solid 1rpx #F6F6F6;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20rpx $padding;
|
||||
&:last-child{
|
||||
border-top: solid 1rpx #F6F6F6;
|
||||
border-bottom: none;
|
||||
}
|
||||
.no{
|
||||
font-size: 30rpx;
|
||||
color: #111;
|
||||
line-height: 60rpx;
|
||||
width: calc(100% - 150rpx);
|
||||
}
|
||||
.state{
|
||||
color: #446EFE;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
line-height: 60rpx;
|
||||
width: 150rpx;
|
||||
text-align: right;
|
||||
}
|
||||
.price{
|
||||
font-weight: bold;
|
||||
color: #446EFE;
|
||||
}
|
||||
.btns{
|
||||
width: 400rpx;
|
||||
text-align: right;
|
||||
.btns-item{
|
||||
display: inline-block;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
background: #446EFE;
|
||||
color: white;
|
||||
border-radius: 35rpx;
|
||||
padding: 0 30rpx;
|
||||
font-size: 30rpx;
|
||||
&.border{ border: solid 1rpx #446EFE; color: #446EFE; background: white; height: 68rpx; &::after{ display: none; } }
|
||||
&:last-child{ margin-left: 30rpx; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 订单为空
|
||||
.order-null{
|
||||
height: 80vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user