抖火综法
This commit is contained in:
@@ -39,19 +39,6 @@
|
||||
<image class="cover-item-add" src="@/static/icons/img_add.png" mode="aspectFill"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <view class="form-input">
|
||||
<label>打款金额</label>
|
||||
<input type="digit" maxlength="20" v-model="price" placeholder="请输入打款金额">
|
||||
</view>
|
||||
<view class="form-input">
|
||||
<label>汇款姓名</label>
|
||||
<input type="text" maxlength="8" v-model="name" placeholder="请输入打款人姓名">
|
||||
</view>
|
||||
<view class="form-input form-upd">
|
||||
<label>打款凭证</label>
|
||||
<image class="form-upd-img" @click="albumClick" :src="showpath || '/static/imgs/cover_img.png'" mode="aspectFill"></image>
|
||||
</view> -->
|
||||
<view class="idcardBtn">
|
||||
<button class="idcardBtn-go" @click="issueForm">确认提交</button>
|
||||
</view>
|
||||
@@ -182,7 +169,7 @@
|
||||
onBack(){
|
||||
uni.showModal({
|
||||
title : '提示',
|
||||
content : '打款凭证已提交,请耐心等待审核',
|
||||
content : '打款凭证已提交,请耐心等待审核,通过后请前往工作台综法订单管理中进行签约',
|
||||
showCancel : false,
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
clearInterval(outTime)
|
||||
wx.showModal({
|
||||
title : '提示',
|
||||
content : '支付成功',
|
||||
content : this.$Route.query.paytype === 'synthesize' ? '支付成功,可在工作台综法订单管理查询您的订单' : '支付成功',
|
||||
showCancel : false,
|
||||
confirmColor: '#446EFE',
|
||||
success : () => {
|
||||
|
||||
289
pages/synthesize/difference.vue
Normal file
289
pages/synthesize/difference.vue
Normal file
@@ -0,0 +1,289 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<form class="diff-from" @submit="onDiff">
|
||||
<label>补差价金额(元)</label>
|
||||
<input placeholder="输入补差价金额" name="price" type="digit" />
|
||||
<button form-type="submit">确认补差价</button>
|
||||
</form>
|
||||
<view class="diff-list">
|
||||
<view class="diff-title">补差价记录</view>
|
||||
<view class="diff-item" v-for="(item, index) in diffArr" :key="index">
|
||||
<view class="diff-info">
|
||||
<view class="diff-info-item">
|
||||
<label>差价金额:</label>
|
||||
<view class="nowrap">{{item.price}}</view>
|
||||
</view>
|
||||
<view class="diff-info-item">
|
||||
<label>订单状态:</label>
|
||||
<view class="nowrap">{{item.status.text}}</view>
|
||||
</view>
|
||||
<view class="diff-info-item">
|
||||
<label>创建时间:</label>
|
||||
<view class="nowrap">{{item.created_at}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="diff-state border-solid" v-if="item.can.pay_status != 5 && item.can.pay_status != 7">
|
||||
<view class="diff-btn" v-if="item.can.cancel" @click="onCancel(item.synthesis_diff_price_id, index)">取消订单</view>
|
||||
<view class="diff-btn in" @click="onListPay(item)" :class="{'hide': item.can.pay_status == 2 || item.can.pay_status == 4}">
|
||||
<text v-if="item.can.pay_status == 1">立即支付</text>
|
||||
<text v-if="item.can.pay_status == 2 || item.can.pay_status == 4">审核中</text>
|
||||
<text v-if="item.can.pay_status == 3 || item.can.pay_status == 6">被驳回</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { orderDiff, orderDiffList, orderDiffCancel, orderDiffInfo } from '@/apis/interfaces/synthesisOrder'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
orderId : '', // 支付ID
|
||||
orderType : '', // 支付类型
|
||||
price : '', // 支付价格
|
||||
diffArr : [], // 支付记录
|
||||
page : {}, // 分页信息
|
||||
pagesShow : false,// 是否显示分页
|
||||
status : '' // 分页状态
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 获取补差价列表
|
||||
getList(){
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
// 初始化分页
|
||||
this.page = {
|
||||
current: 1
|
||||
}
|
||||
// 获取补差价列表
|
||||
let { orderId, ordertype } = this.$Route.query
|
||||
orderDiffList(orderId, ordertype.replace(/\-/g, '\\'), this.page.current).then(res => {
|
||||
let { data, page } = res
|
||||
this.diffArr = page.current == 1 ? data: this.diffArr.concat(data)
|
||||
this.page = page
|
||||
this.pagesShow = !page.has_more
|
||||
this.status = page.has_more ? 'loading' : 'nomore'
|
||||
uni.hideLoading()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
}).finally(() => {
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
// 创建补差价订单
|
||||
onDiff(e){
|
||||
let { price } = e.detail.value
|
||||
let { orderId, ordertype } = this.$Route.query
|
||||
if( price == '' || price <= 0 ){
|
||||
uni.showToast({
|
||||
title: '金额需大于0元并不能为空',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
orderDiff(ordertype.replace(/\-/g, '\\'), orderId, price ).then(res => {
|
||||
let { synthesis_diff_price_id, order_type, can, price } = res;
|
||||
this.onPay( synthesis_diff_price_id, order_type, can, price )
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
}).finally(() => {
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
// 取消补差价
|
||||
onCancel(id, index){
|
||||
uni.showModal({
|
||||
title : '提示',
|
||||
content : '确认取消当前补差价订单吗?',
|
||||
success : res => {
|
||||
if(res.confirm){
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
orderDiffCancel(id).then(res => {
|
||||
uni.showToast({
|
||||
title: res,
|
||||
icon : 'none'
|
||||
})
|
||||
this.diffArr.splice(index, 1)
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 列表补差价
|
||||
onListPay(obj){
|
||||
let { synthesis_diff_price_id, order_type, can, price, remark, offline_pays } = obj
|
||||
if(can.pay_status == 2 || can.pay_status == 4){
|
||||
uni.showToast({
|
||||
title: '补差价信息正在审核中',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
if(can.pay_status == 3 || can.pay_status == 6){
|
||||
uni.showModal({
|
||||
title : '提示',
|
||||
content : '驳回原因:' + remark,
|
||||
showCancel : false,
|
||||
success : res => {
|
||||
if(res.confirm && can.pay_status == 3){
|
||||
this.$Router.push({
|
||||
name: 'BankPay',
|
||||
params: {
|
||||
payId : payId,
|
||||
orderId : offline_pays.offline_pay_id,
|
||||
orderType : order_type.replace(/\\/g, '-'),
|
||||
price : price,
|
||||
type : 'edit'
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
this.onPay(synthesis_diff_price_id, order_type, can, price)
|
||||
},
|
||||
// 差价支付
|
||||
onPay(id, type, can, price){
|
||||
this.orderId = id
|
||||
this.orderType = type
|
||||
this.price = price
|
||||
// 仅支持线下打款
|
||||
if(!can.online){
|
||||
this.onToBankPay()
|
||||
return
|
||||
}
|
||||
// 选择线上、下支付方式
|
||||
uni.showActionSheet({
|
||||
itemList: ['线上支付', '线下支付'],
|
||||
success: sheetRes => {
|
||||
if(sheetRes.tapIndex == 0){
|
||||
this.$Router.push({
|
||||
name: 'Pay',
|
||||
params: {
|
||||
paytype : 'synthesize',
|
||||
orderId : id,
|
||||
orderType : type.replace(/\\/g, '-')
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
this.onToBankPay()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去线下打款
|
||||
onToBankPay(){
|
||||
this.$Router.push({
|
||||
name: 'BankPay',
|
||||
params: {
|
||||
orderId : this.orderId,
|
||||
orderType : this.orderType.replace(/\\/g, '-'),
|
||||
price : this.price
|
||||
},
|
||||
})
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.pagesShow = true;
|
||||
if(this.page.has_more){
|
||||
this.page.current++
|
||||
this.getList()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content{
|
||||
background: #f8f8f8;
|
||||
min-height: 100vh;
|
||||
padding: 1rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
// 差价列表
|
||||
.diff-list{
|
||||
padding: 0 30rpx;
|
||||
.diff-title{ font-size: 30rpx; color: gray; line-height: 60rpx; margin-bottom: 20rpx; }
|
||||
.diff-item{
|
||||
background-color: white;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 30rpx;
|
||||
.diff-info{
|
||||
padding: 30rpx;
|
||||
.diff-info-item{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 60rpx;
|
||||
font-size: 30rpx;
|
||||
label{ color: gray; width: 200rpx; }
|
||||
view{ text-align: right; width: calc(100% - 200rpx); }
|
||||
}
|
||||
}
|
||||
.diff-state{
|
||||
padding: 20rpx 30rpx;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-end;
|
||||
&::after{ top: 0; }
|
||||
.diff-btn{
|
||||
border:solid 1rpx $main-color;
|
||||
color: $main-color;
|
||||
font-size: 30rpx;
|
||||
line-height: 70rpx;
|
||||
padding: 0 30rpx;
|
||||
border-radius: 36rpx;
|
||||
margin-left: 30rpx;
|
||||
&.in{
|
||||
background: $main-color;
|
||||
color: white;
|
||||
}
|
||||
&.hide{
|
||||
opacity: .7;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 创建补差价
|
||||
.diff-from{
|
||||
background: white;
|
||||
border-radius: 20rpx;
|
||||
margin: 30rpx;
|
||||
padding: 50rpx;
|
||||
display: block;
|
||||
label{ line-height: 70rpx; text-align: center; font-weight: bold; font-size: 30rpx; display: block; }
|
||||
input{ text-align: center; font-size: 40rpx; height: 100rpx; @extend .border-solid; margin: 30rpx 0 50rpx; }
|
||||
button{ background-color: $main-color; color: white; font-size: 32rpx; height: 90rpx; line-height: 90rpx; border-radius: 10rpx; }
|
||||
}
|
||||
</style>
|
||||
@@ -6,9 +6,9 @@
|
||||
<view class="title-name"><text>企业法律咨询服务包</text></view>
|
||||
<view class="title-text">legal advice</view>
|
||||
</view>
|
||||
<view class="item" :class="{active : item.service_order != null}" v-for="(item, index) in synthesisArr" :key="index">
|
||||
<view class="endedAt" v-if="item.service_order">
|
||||
<view class="endedAt-time">到期时间:{{item.service_order.ended_at}}</view>
|
||||
<view class="item" :class="{active : item.is_open}" v-for="(item, index) in synthesisArr" :key="index">
|
||||
<view class="endedAt" v-if="item.is_open">
|
||||
<view class="endedAt-time">到期时间:{{item.service_user.ended_at}}</view>
|
||||
</view>
|
||||
<view class="top">
|
||||
<view class="top-title">{{item.title}}</view>
|
||||
|
||||
@@ -78,13 +78,13 @@
|
||||
mask : true
|
||||
})
|
||||
entrustInfo(this.$Route.query.id).then(res => {
|
||||
let { entrust, params, created_at, user, order_no, price } = res;
|
||||
let { entrust, params, created_at, user, order_no, total } = res;
|
||||
this.entrust = entrust
|
||||
this.params = params
|
||||
this.createdAt = created_at
|
||||
this.user = user
|
||||
this.no = order_no
|
||||
this.price = price
|
||||
this.price = total
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
|
||||
@@ -77,13 +77,13 @@
|
||||
mask : true
|
||||
})
|
||||
expandInfo(this.$Route.query.id).then(res => {
|
||||
let { expand, params, created_at, user, order_no, price } = res;
|
||||
let { expand, params, created_at, user, order_no, total } = res;
|
||||
this.expand = expand
|
||||
this.params = params
|
||||
this.createdAt = created_at
|
||||
this.user = user
|
||||
this.no = order_no
|
||||
this.price = price
|
||||
this.price = total
|
||||
}).catch(err => {
|
||||
|
||||
console.log(err)
|
||||
|
||||
430
pages/synthesize/expandWrite.vue
Normal file
430
pages/synthesize/expandWrite.vue
Normal file
@@ -0,0 +1,430 @@
|
||||
<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'">
|
||||
<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>
|
||||
</view> -->
|
||||
<!-- 单输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'text'">
|
||||
<input class="idcardAdd-input" type="text" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'number' || item.type === 'mobile' || item.type === 'day'">
|
||||
<input class="idcardAdd-input" type="number" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
|
||||
<!-- 价格输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'price'">
|
||||
<input class="idcardAdd-input" type="digit" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
|
||||
<!-- 密码输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'password'">
|
||||
<input class="idcardAdd-input" type="safe-password" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</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">确认提交</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { expandsInfo, expandsPost } 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 : {},
|
||||
orderId : '', // 订单 ID
|
||||
orderType : '', // 订单类型
|
||||
price : '' // 订单价格
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
|
||||
uni.setNavigationBarTitle({
|
||||
title: '拓展服务-' + this.$Route.query.title
|
||||
})
|
||||
|
||||
// 获取综法咨询-详情
|
||||
this.getBusiness();
|
||||
|
||||
// 省市区
|
||||
createCity().then(res => {
|
||||
this.cityPicker = res;
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 综法咨询-详情
|
||||
getBusiness(){
|
||||
expandsInfo(this.$Route.query.entrustId).then(res => {
|
||||
let { params, price } = res;
|
||||
params.map(val => {
|
||||
if(val.type === 'checkbox'){
|
||||
val.value = []
|
||||
}else if(val.type === 'select'){
|
||||
val.value = 0
|
||||
}else{
|
||||
val.value = ""
|
||||
}
|
||||
})
|
||||
this.price = price
|
||||
this.paramsArr = params
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
}).finally(() => {
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
|
||||
// 被告所在地-选择城市
|
||||
defendantPicker(e){
|
||||
let { value } = e.detail
|
||||
let dataArr = {
|
||||
province_id: value[0].value,
|
||||
city_id: value[1].value
|
||||
}
|
||||
this.defendant = dataArr
|
||||
},
|
||||
|
||||
// 目前所在地-选择城市
|
||||
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]
|
||||
})
|
||||
}
|
||||
|
||||
expandsPost(this.$Route.query.entrustId, {
|
||||
data: dataArr,
|
||||
type: 'self',
|
||||
channel: 'app',
|
||||
user_id: ''
|
||||
}).then(res => {
|
||||
uni.hideLoading()
|
||||
this.expressSheet(res.expand_order_id, res.order_type, res.can)
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
// 选择支付方式
|
||||
expressSheet(id, type, can) {
|
||||
this.orderId = id
|
||||
this.orderType = type
|
||||
// 仅支持线下打款
|
||||
if(!can.online){
|
||||
this.onToBankPay()
|
||||
return
|
||||
}
|
||||
// 选择线上、下支付方式
|
||||
uni.showActionSheet({
|
||||
itemList: ['线上支付', '线下支付'],
|
||||
success: sheetRes => {
|
||||
if(sheetRes.tapIndex == 0){
|
||||
this.$Router.replace({
|
||||
name: 'Pay',
|
||||
params: {
|
||||
paytype : 'synthesize',
|
||||
orderId : id,
|
||||
orderType : type.replace(/\\/g, '-')
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
this.onToBankPay()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去线下打款
|
||||
onToBankPay(){
|
||||
this.$Router.replace({
|
||||
name: 'BankPay',
|
||||
params: {
|
||||
orderId : this.orderId,
|
||||
orderType : this.orderType.replace(/\\/g, '-'),
|
||||
price : this.price
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</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-block-write {
|
||||
background-color: #f7faff;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
border-radius: 20rpx;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: flex;
|
||||
font-size: 30rpx;
|
||||
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: $main-color;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.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>
|
||||
420
pages/synthesize/feeWrite.vue
Normal file
420
pages/synthesize/feeWrite.vue
Normal file
@@ -0,0 +1,420 @@
|
||||
<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 === 'text'">
|
||||
<input class="idcardAdd-input" type="text" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
<!-- 数字类型输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'number' || item.type === 'mobile' || item.type === 'day'">
|
||||
<input class="idcardAdd-input" type="number" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
<!-- 价格输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'price'">
|
||||
<input class="idcardAdd-input" type="digit" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
<!-- 密码输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'password'">
|
||||
<input class="idcardAdd-input" type="safe-password" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</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">确认提交</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 : {},
|
||||
}
|
||||
},
|
||||
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 = val.value || ''
|
||||
}
|
||||
})
|
||||
this.paramsArr = froms
|
||||
uni.hideLoading()
|
||||
}).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 : 'app',
|
||||
user_id : ''
|
||||
}).then(res => {
|
||||
uni.showModal({
|
||||
title : '提示',
|
||||
content : '个人咨询单创建成功',
|
||||
showCancel : false,
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
uni.navigateBack()
|
||||
}
|
||||
}
|
||||
})
|
||||
}).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: 40rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.idcardAdd-depict-textarea {
|
||||
background-color: #f7faff;
|
||||
line-height: 90rpx;
|
||||
border-radius: 20rpx;
|
||||
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: 20rpx;
|
||||
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: red;
|
||||
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: 50rpx;
|
||||
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>
|
||||
@@ -46,7 +46,7 @@
|
||||
<text v-if="item.button_status === 4">打款被驳回</text>
|
||||
</view>
|
||||
<!-- 到期时间 -->
|
||||
<view class="order-at" v-if="item.button_status === 1">到期时间:{{item.service_user.ended_at}}</view>
|
||||
<view class="order-at" v-if="item.is_open">到期时间:{{item.service_user.ended_at}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -56,13 +56,16 @@
|
||||
|
||||
<script>
|
||||
import { yearSynthList } from '@/apis/interfaces/synthesis'
|
||||
import { certified } from '@/apis/interfaces/user'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
synthesisArr: [],
|
||||
synthesisArr: [], // 服务单信息
|
||||
price : '' // 支付价格
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
|
||||
this.yearServe();
|
||||
},
|
||||
methods: {
|
||||
@@ -81,11 +84,13 @@
|
||||
},
|
||||
// 点击开通按钮
|
||||
onBtn(index){
|
||||
let obj = this.synthesisArr[index]
|
||||
|
||||
console.log(obj)
|
||||
|
||||
let obj = this.synthesisArr[index]
|
||||
switch (obj.button_status){
|
||||
case 2:
|
||||
let { order_id, order_type, can, price } = obj.service_order
|
||||
this.price = price
|
||||
this.expressSheet(order_id, order_type, can)
|
||||
break;
|
||||
case 3:
|
||||
uni.showToast({
|
||||
title: '打款凭证审核中,请耐心等待',
|
||||
@@ -122,6 +127,45 @@
|
||||
})
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 选择支付方式
|
||||
expressSheet(id, type, can) {
|
||||
this.orderId = id
|
||||
this.orderType = type
|
||||
// 仅支持线下打款
|
||||
if(!can.online){
|
||||
this.onToBankPay()
|
||||
return
|
||||
}
|
||||
// 选择线上、下支付方式
|
||||
uni.showActionSheet({
|
||||
itemList: ['线上支付', '线下支付'],
|
||||
success: sheetRes => {
|
||||
if(sheetRes.tapIndex == 0){
|
||||
this.$Router.push({
|
||||
name: 'Pay',
|
||||
params: {
|
||||
paytype : 'synthesize',
|
||||
orderId : id,
|
||||
orderType : type.replace(/\\/g, '-')
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
this.onToBankPay()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去线下打款
|
||||
onToBankPay(){
|
||||
this.$Router.push({
|
||||
name: 'BankPay',
|
||||
params: {
|
||||
orderId : this.orderId,
|
||||
orderType : this.orderType.replace(/\\/g, '-'),
|
||||
price : this.price
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
</view>
|
||||
</u-sticky>
|
||||
<!-- 列表 -->
|
||||
<block v-if="orderArr.length > 0">
|
||||
<view class="list" v-for="(item, index) in orderArr" :key="index">
|
||||
<view class="list" v-if="orderArr.length > 0">
|
||||
<block v-for="(item, index) in orderArr" :key="index">
|
||||
<!-- 年费单 -->
|
||||
<services-block
|
||||
v-if="$Route.query.type === 'service'"
|
||||
@@ -23,12 +23,16 @@
|
||||
:user="item.user"
|
||||
:time="item.created_at"
|
||||
:service="item.service"
|
||||
:price="item.price"
|
||||
:price="item.total"
|
||||
:lawyer="item.lawyer || {name: ''}"
|
||||
:isSelf="item.is_self"
|
||||
:payStatus="item.pay_status"
|
||||
:can="item.can"
|
||||
@info="onInfo"
|
||||
@pay="onPay"
|
||||
@sing="onSing"
|
||||
@diff="onDiff"
|
||||
@callPhone="onCallPhone"
|
||||
/>
|
||||
<!-- 咨询单 -->
|
||||
<synthesis-block
|
||||
@@ -51,13 +55,17 @@
|
||||
:user="item.user"
|
||||
:time="item.created_at"
|
||||
:status="item.status"
|
||||
:price="item.price"
|
||||
:price="item.total"
|
||||
:diff="item.need_pay_diff_prices"
|
||||
:lawyer="item.lawyer || {name: ''}"
|
||||
:isSelf="item.is_self"
|
||||
:payStatus="item.pay_status"
|
||||
:can="item.can"
|
||||
@info="onInfo"
|
||||
@pay="onPay"
|
||||
@sing="onSing"
|
||||
@diff="onDiff"
|
||||
@callPhone="onCallPhone"
|
||||
/>
|
||||
<!-- 拓展单 -->
|
||||
<expand-block
|
||||
@@ -66,34 +74,37 @@
|
||||
:user="item.user"
|
||||
:time="item.created_at"
|
||||
:expand="item.expand"
|
||||
:price="item.price"
|
||||
:price="item.total"
|
||||
:status="item.status"
|
||||
:diff="item.need_pay_diff_prices"
|
||||
:lawyer="item.lawyer || {name: ''}"
|
||||
:isSelf="item.is_self"
|
||||
:payStatus="item.pay_status"
|
||||
:can="item.can"
|
||||
@info="onInfo"
|
||||
@pay="onPay"
|
||||
@diff="onDiff"
|
||||
@callPhone="onCallPhone"
|
||||
/>
|
||||
</view>
|
||||
</block>
|
||||
<!-- 分页 -->
|
||||
<u-loadmore v-if="pagesShow" :status="status" />
|
||||
</block>
|
||||
<block v-else>
|
||||
<view class="null-pages">
|
||||
<u-empty
|
||||
mode="order"
|
||||
icon="http://cdn.uviewui.com/uview/empty/order.png"
|
||||
text="暂无相关订单"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class="null-pages" v-else>
|
||||
<u-empty
|
||||
mode="order"
|
||||
icon="http://cdn.uviewui.com/uview/empty/order.png"
|
||||
text="暂无相关订单"
|
||||
>
|
||||
</u-empty>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { certified } from '@/apis/interfaces/user.js'
|
||||
import { servicesOrder, synthesisOrder, entrustOrder, expandOrder, orderRead } from '@/apis/interfaces/synthesisOrder.js'
|
||||
import { esignUrl } from '@/apis/interfaces/synthesis.js'
|
||||
import entrustBlock from '@/components/entrustOrder.vue'
|
||||
import expandBlock from '@/components/expandOrder.vue'
|
||||
import servicesBlock from '@/components/servicesOrder.vue'
|
||||
@@ -111,6 +122,7 @@
|
||||
tabScroll : false,
|
||||
orderArr : [],
|
||||
funName : '',
|
||||
isRefresh : false, // 更新页面数据
|
||||
// 分页
|
||||
page : {
|
||||
current : 1
|
||||
@@ -175,6 +187,12 @@
|
||||
})
|
||||
this.getList()
|
||||
},
|
||||
onShow() {
|
||||
if(this.isRefresh){
|
||||
this.page = { current: 1 }
|
||||
this.getList()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 切换tab
|
||||
onTab(e) {
|
||||
@@ -185,15 +203,140 @@
|
||||
this.getList()
|
||||
}
|
||||
},
|
||||
// 签约
|
||||
onSing(no){
|
||||
let orderArr = this.orderArr
|
||||
let orderObj = orderArr.find(val => val.order_no === no)
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
certified().then(res => {
|
||||
let { e_sign } = res
|
||||
if(!e_sign){
|
||||
uni.hideLoading()
|
||||
uni.showModal({
|
||||
title : '提示',
|
||||
content : '暂未实名认证,请实名后在完成签约',
|
||||
cancelText : '稍后认证',
|
||||
confirmText : '去认证',
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
this.$Router.push({name: 'UserCertification'})
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
esignUrl({
|
||||
order_type : orderObj.order_type,
|
||||
order_id : orderObj.order_id,
|
||||
app_scheme : "doufire://",
|
||||
redirect_url: getApp().globalData.signUrl,
|
||||
channel : "app"
|
||||
}).then(signRes => {
|
||||
this.$Router.push({
|
||||
name: 'ESign',
|
||||
params: {
|
||||
url: signRes.sign_url
|
||||
}
|
||||
})
|
||||
uni.hideLoading()
|
||||
}).catch(signErr => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
// console.log(is_)
|
||||
uni.hideLoading()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
// 支付
|
||||
onPay(no){
|
||||
let orderArr = this.orderArr
|
||||
let orderObj = orderArr.find(val => val.order_no === no)
|
||||
let { can, price, order_id, order_type } = orderObj
|
||||
|
||||
console.log(orderObj)
|
||||
switch(can.pay_status){
|
||||
case 1:
|
||||
this.expressSheet(order_id, order_type, can, price)
|
||||
break;
|
||||
case 2:
|
||||
uni.showToast({
|
||||
title: '打款凭证审核中,请耐心等待',
|
||||
icon : 'none'
|
||||
})
|
||||
break;
|
||||
case 3:
|
||||
uni.showModal({
|
||||
title : '审核被驳回',
|
||||
content : '驳回原因:' + orderObj.offline_pays.remark,
|
||||
showCancel : false,
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
this.$Router.push({
|
||||
name : 'BankPay',
|
||||
params : {
|
||||
payId : orderObj.offline_pays.offline_pay_id,
|
||||
type : 'edit',
|
||||
orderId : orderObj.order_id,
|
||||
orderType : orderObj.order_type.replace(/\\/g, '-'),
|
||||
price : orderObj.price
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 选择支付方式
|
||||
expressSheet(id, type, can, price) {
|
||||
this.price = price
|
||||
this.orderId = id
|
||||
this.orderType = type
|
||||
// 仅支持线下打款
|
||||
if(!can.online){
|
||||
this.onToBankPay()
|
||||
return
|
||||
}
|
||||
// 选择线上、下支付方式
|
||||
uni.showActionSheet({
|
||||
title : '选择支付方式',
|
||||
itemList: ['线下打款', '线上支付'],
|
||||
success : res => {
|
||||
console.log(res.tapIndex)
|
||||
console.log(no)
|
||||
}
|
||||
itemList: ['线上支付', '线下支付'],
|
||||
success: sheetRes => {
|
||||
if(sheetRes.tapIndex == 0){
|
||||
this.$Router.push({
|
||||
name: 'Pay',
|
||||
params: {
|
||||
paytype : 'synthesize',
|
||||
orderId : id,
|
||||
orderType : type.replace(/\\/g, '-')
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
this.onToBankPay()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去线下打款
|
||||
onToBankPay(){
|
||||
this.$Router.push({
|
||||
name: 'BankPay',
|
||||
params: {
|
||||
orderId : this.orderId,
|
||||
orderType : this.orderType.replace(/\\/g, '-'),
|
||||
price : this.price
|
||||
},
|
||||
})
|
||||
},
|
||||
// 打开详情
|
||||
@@ -226,6 +369,18 @@
|
||||
}
|
||||
})
|
||||
},
|
||||
// 补差价
|
||||
onDiff(no){
|
||||
let orderArr = this.orderArr
|
||||
let orderObj = orderArr.find(val => val.order_no === no)
|
||||
this.$Router.push({
|
||||
name : 'Difference',
|
||||
params : {
|
||||
orderId : orderObj.order_id,
|
||||
ordertype : orderObj.order_type.replace(/\\/g, '-')
|
||||
}
|
||||
})
|
||||
},
|
||||
// 联系电话
|
||||
async onCallPhone(number){
|
||||
let result = await permision.requestAndroidPermission('android.permission.CALL_PHONE')
|
||||
@@ -279,6 +434,9 @@
|
||||
this.getList()
|
||||
return
|
||||
}
|
||||
},
|
||||
onHide() {
|
||||
this.isRefresh = true
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -288,7 +446,7 @@
|
||||
// 滑块
|
||||
.header-sticky{ padding-bottom: 12rpx; }
|
||||
// 列表
|
||||
.list{ overflow: hidden; }
|
||||
.list{ overflow: hidden; padding-top: 30rpx; }
|
||||
// 内容为空
|
||||
.null-pages{ height: 70vh; display: flex; align-items: center; justify-content: center; }
|
||||
</style>
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
<view class="list-title-trim"></view>
|
||||
</view>
|
||||
<view class="list-item">
|
||||
<view class="list-label" v-for="(item, index) in entrustArr" :key="index" @click="$Router.push({name: 'ExpandWrite', params: {entrustId: item.expand_id}})">
|
||||
<view class="list-label" v-for="(item, index) in entrustArr" :key="index">
|
||||
<view class="list-label-name">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="list-label-price"><rich-text :nodes="item.content"></rich-text></view>
|
||||
<view class="list-label-go">购买</view>
|
||||
<view class="list-label-go" @click="$Router.push({name: 'ExpandWrite', params: {entrustId: item.expand_id, title: item.title}})">购买</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -77,13 +77,13 @@
|
||||
mask : true
|
||||
})
|
||||
servicesInfo(this.$Route.query.id).then(res => {
|
||||
let { service, params, created_at, user, order_no, price } = res;
|
||||
let { service, params, created_at, user, order_no, total } = res;
|
||||
this.service = service
|
||||
this.params = params
|
||||
this.createdAt = created_at
|
||||
this.user = user
|
||||
this.no = order_no
|
||||
this.price = price
|
||||
this.price = total
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
|
||||
473
pages/synthesize/standWrite.vue
Normal file
473
pages/synthesize/standWrite.vue
Normal file
@@ -0,0 +1,473 @@
|
||||
<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">
|
||||
<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 === 'text'">
|
||||
<input class="idcardAdd-input" type="text" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'number' || item.type === 'mobile' || item.type === 'day'">
|
||||
<input class="idcardAdd-input" type="number" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
<!-- 价格输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'price'">
|
||||
<input class="idcardAdd-input" type="digit" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</view>
|
||||
<!-- 密码输入框 -->
|
||||
<view class="idcardAdd-block-write" v-if="item.type === 'password'">
|
||||
<input class="idcardAdd-input" type="safe-password" v-model="item.value" :placeholder="'请输入' + item.title" />
|
||||
</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 === '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>
|
||||
|
||||
<!-- 被告所在地 -->
|
||||
<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>
|
||||
</view>
|
||||
</view>
|
||||
<view class="idcardBtn">
|
||||
<button class="idcardBtn-go" type="default" @click="onSubmit">确认提交</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { yearSynthInfo, yearSynthPost } 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 : [], // 地址
|
||||
|
||||
// 被告所在地
|
||||
defendant : {},
|
||||
|
||||
// 目前所在地
|
||||
address : {},
|
||||
orderId : '', // 订单 ID
|
||||
orderType : '', // 订单类型
|
||||
price : ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
|
||||
// 获取综法咨询-详情
|
||||
this.getBusiness();
|
||||
|
||||
// 省市区
|
||||
createCity().then(res => {
|
||||
this.cityPicker = res;
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 综法咨询-详情
|
||||
getBusiness(){
|
||||
yearSynthInfo(this.$Route.query.serveId).then(res => {
|
||||
let { params, price } = res;
|
||||
params.map(val => {
|
||||
if(val.type === 'checkbox'){
|
||||
val.value = []
|
||||
}else if(val.type === 'select'){
|
||||
val.value = 0
|
||||
}else{
|
||||
val.value = ""
|
||||
}
|
||||
})
|
||||
this.price = price
|
||||
this.paramsArr = params
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon : 'none'
|
||||
})
|
||||
}).finally(() => {
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
|
||||
// 被告所在地-选择城市
|
||||
defendantPicker(e){
|
||||
let { value } = e.detail
|
||||
let dataArr = {
|
||||
province_id: value[0].value,
|
||||
city_id: value[1].value
|
||||
}
|
||||
this.defendant = dataArr
|
||||
},
|
||||
|
||||
// 目前所在地-选择城市
|
||||
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]
|
||||
})
|
||||
}
|
||||
yearSynthPost(this.$Route.query.serveId, {
|
||||
data: dataArr,
|
||||
type: 'self',
|
||||
channel: 'app',
|
||||
user_id: ''
|
||||
}).then(res => {
|
||||
uni.hideLoading()
|
||||
this.expressSheet(res.service_order_id, res.order_type, res.can )
|
||||
}).catch( err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 选择支付方式
|
||||
expressSheet(id, type, can) {
|
||||
this.orderId = id
|
||||
this.orderType = type
|
||||
// 仅支持线下打款
|
||||
if(!can.online){
|
||||
this.onToBankPay()
|
||||
return
|
||||
}
|
||||
// 选择线上、下支付方式
|
||||
uni.showActionSheet({
|
||||
itemList: ['线上支付', '线下支付'],
|
||||
success: sheetRes => {
|
||||
if(sheetRes.tapIndex == 0){
|
||||
this.$Router.replace({
|
||||
name: 'Pay',
|
||||
params: {
|
||||
paytype : 'synthesize',
|
||||
orderId : id,
|
||||
orderType : type.replace(/\\/g, '-')
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
this.onToBankPay()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 去线下打款
|
||||
onToBankPay(){
|
||||
this.$Router.replace({
|
||||
name: 'BankPay',
|
||||
params: {
|
||||
orderId : this.orderId,
|
||||
orderType : this.orderType.replace(/\\/g, '-'),
|
||||
price : this.price
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: #111e4b;
|
||||
width: 100vw;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
position: fixed;
|
||||
|
||||
}
|
||||
|
||||
.top {
|
||||
position: relative;
|
||||
height: 150rpx;
|
||||
.top-img {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 35%;
|
||||
}
|
||||
.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-block-write {
|
||||
background-color: #f7faff;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
border-radius: 20rpx;
|
||||
padding: 0 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
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: $main-color;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.idcardAdd-aline {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.idcardBtn {
|
||||
background-color: #111e4b;
|
||||
width: 100%;
|
||||
padding: 20rpx 60rpx 60rpx;
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 打款凭证弹出
|
||||
.voucherBack {
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 99;
|
||||
background-color: rgba(0, 0, 0, .6);
|
||||
display: none;
|
||||
&.active {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
.voucherPop {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-pack: center;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
z-index: 100;
|
||||
padding: 0 10%;
|
||||
box-sizing: border-box;
|
||||
display: none;
|
||||
&.active {
|
||||
display: -webkit-box;
|
||||
}
|
||||
.tipsWhite {
|
||||
background-color: #ffffff;
|
||||
border-radius: 20rpx;
|
||||
position: relative;
|
||||
.voucherPop-img {
|
||||
position: absolute !important;
|
||||
top: -80rpx;
|
||||
right: calc(50% - 100rpx);
|
||||
width: 200rpx;
|
||||
}
|
||||
.voucherPop-title {
|
||||
box-sizing: border-box;
|
||||
padding: 50rpx 70rpx;
|
||||
margin-top: 100rpx;
|
||||
text-align: center;
|
||||
.voucherPop-name {
|
||||
font-weight: 600;
|
||||
font-size: 38rpx;
|
||||
}
|
||||
.voucherPop-text {
|
||||
padding: 30rpx 0 35rpx;
|
||||
line-height: 44rpx;
|
||||
}
|
||||
.voucherPop-btn {
|
||||
display: flex;
|
||||
.voucherPop-go {
|
||||
flex: 2;
|
||||
text-align: center;
|
||||
border: 2rpx solid #da2b56;
|
||||
color: #da2b56;
|
||||
margin: 0 15rpx;
|
||||
line-height: 74rpx;
|
||||
border-radius: 10rpx;
|
||||
background-color: #ffffff;
|
||||
&.voucherPop-up {
|
||||
background-color: #da2b56;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -103,11 +103,14 @@
|
||||
}
|
||||
}
|
||||
synthesisObj = synthesisArr.find(val => val.synthesis_id === this.businessId)
|
||||
|
||||
if(synthesisObj.can.buy){
|
||||
console.log('提交免费咨询')
|
||||
// this.$Router.replace({
|
||||
// name: 'PersonWrite'
|
||||
// })
|
||||
this.$Router.replace({
|
||||
name : 'FeeWrite',
|
||||
params : {
|
||||
synthesisId : synthesisObj.synthesis_id
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.showModal({
|
||||
@@ -118,7 +121,7 @@
|
||||
success : modalRes => {
|
||||
if(modalRes.confirm){
|
||||
this.$Router.replace({
|
||||
name: 'PersonWrite'
|
||||
name: 'Individual'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,22 +162,22 @@
|
||||
<view class="tool-flex">
|
||||
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'service' })">
|
||||
<image class="icon" src="@/static/synthesize/icon_00.png"></image>
|
||||
<view class="number" v-if="orderCount.transfer_out > 0">{{orderCount.transfer_out}}</view>
|
||||
<view class="number" v-if="synthesisData.service.all > 0">{{synthesisData.service.all}}</view>
|
||||
<view class="text">年费订单</view>
|
||||
</view>
|
||||
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'synthesis' })">
|
||||
<image class="icon" src="@/static/synthesize/icon_01.png"></image>
|
||||
<view class="number" v-if="orderCount.transfer_in > 0">{{orderCount.transfer_in}}</view>
|
||||
<view class="number" v-if="synthesisData.synthesis.all > 0">{{synthesisData.synthesis.all}}</view>
|
||||
<view class="text">咨询订单</view>
|
||||
</view>
|
||||
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'entrust' })">
|
||||
<image class="icon" src="@/static/synthesize/icon_02.png"></image>
|
||||
<view class="number" v-if="orderCount.transfer_out > 0">{{orderCount.transfer_out}}</view>
|
||||
<view class="number" v-if="synthesisData.entrust.all > 0">{{synthesisData.entrust.all}}</view>
|
||||
<view class="text">委托订单</view>
|
||||
</view>
|
||||
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'expand' })">
|
||||
<image class="icon" src="@/static/synthesize/icon_03.png"></image>
|
||||
<view class="number" v-if="orderCount.transfer_in > 0">{{orderCount.transfer_in}}</view>
|
||||
<view class="number" v-if="synthesisData.expand.all > 0">{{synthesisData.expand.all}}</view>
|
||||
<view class="text">拓展订单</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -233,7 +233,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { index, rights, sign } from '@/apis/interfaces/work.js'
|
||||
import { index, rights, sign, synthesisCount } from '@/apis/interfaces/work.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -256,7 +256,9 @@
|
||||
sign : {
|
||||
isSign : false,
|
||||
address : ""
|
||||
}
|
||||
},
|
||||
// 综法订单管理
|
||||
synthesisData : {}
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
@@ -313,9 +315,10 @@
|
||||
title: '加载中...',
|
||||
mask : true
|
||||
})
|
||||
Promise.all([rights(), index()]).then(res => {
|
||||
let rightsData = res[0],
|
||||
indexData = res[1]
|
||||
Promise.all([rights(), index(), synthesisCount()]).then(res => {
|
||||
let rightsData = res[0],
|
||||
indexData = res[1],
|
||||
synthesisData = res[2]
|
||||
|
||||
let { nickname, avatar, business_orders_count, isCertification, certification, isManager, isAnswer, identity, sign } = indexData
|
||||
this.rightsArr = rightsData
|
||||
@@ -331,6 +334,8 @@
|
||||
this.identity = identity
|
||||
this.sign = sign
|
||||
|
||||
this.synthesisData = synthesisData
|
||||
|
||||
uni.hideLoading()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
|
||||
Reference in New Issue
Block a user