抖火综法

This commit is contained in:
唐明明
2023-05-23 17:20:12 +08:00
parent f7824e3e86
commit 9b00b0fe4a
22 changed files with 2092 additions and 102 deletions

View File

@@ -80,6 +80,45 @@ const oderinfo = (order_id, order_type) => {
}) })
} }
// 创建补差价订单
const orderDiff = (order_type, order_id, price) => {
return request({
url : 'synthesis/diff_prices/create',
data : {
order_type,
order_id,
price
},
method : 'POST'
})
}
// 补差价列表
const orderDiffList = (order_id, order_type) => {
return request({
url : 'synthesis/diff_prices',
data : {
order_type,
order_id,
}
})
}
// 取消补差价
const orderDiffCancel = (diff_price_id) => {
return request({
url : 'synthesis/diff_prices/' + diff_price_id,
method : 'DELETE'
})
}
// 补差价详情
const orderDiffInfo = (diff_price_id) => {
return request({
url : 'synthesis/diff_prices/' + diff_price_id,
})
}
export { export {
servicesOrder, servicesOrder,
synthesisOrder, synthesisOrder,
@@ -89,5 +128,9 @@ export {
synthesisInfo, synthesisInfo,
entrustInfo, entrustInfo,
expandInfo, expandInfo,
oderinfo oderinfo,
orderDiff,
orderDiffList,
orderDiffCancel,
orderDiffInfo
} }

View File

@@ -29,8 +29,19 @@ const sign = () => {
}) })
} }
// 获取综法订单统计
const synthesisCount = () => {
return request({
url : 'synthesis/data/orders_count',
data : {
channel : 'manage'
}
})
}
export { export {
index, index,
rights, rights,
sign sign,
synthesisCount
} }

View File

@@ -29,7 +29,14 @@
</view> </view>
</view> </view>
<view class="order-btns"> <view class="order-btns">
<button class="btn-cancel" @click="onOPay(no)">支付</button> <button class="btn-cancel" @click="onPhone(user.username)">联系TA</button>
<button class="btn-cancel" @click="onSing(no)" v-if="can.sign && isSelf">签约</button>
<button class="btn-cancel" :class="{'in': can.pay_status == 3}" v-if="can.pay_status == 1 || can.pay_status == 2 || can.pay_status == 3" @click="onOPay(no)">
<text v-if="can.pay_status == 1">支付</text>
<text v-if="can.pay_status == 2">审核中</text>
<text v-if="can.pay_status == 3">被驳回</text>
</button>
<button class="btn-cancel" v-if="can.diff_price" @click="onDiff(no)">补差价</button>
<button class="btn-sign" @click="onInfo(no)">查看</button> <button class="btn-sign" @click="onInfo(no)">查看</button>
</view> </view>
</view> </view>
@@ -45,6 +52,10 @@
}; };
}, },
props: { props: {
isSelf: {
type : Boolean,
default : false
},
no : { no : {
type : String, type : String,
default : '' default : ''
@@ -84,14 +95,34 @@
default : () => { default : () => {
return { name: '' } return { name: '' }
} }
},
can: {
typeof: Object,
default : () => {
return {}
}
} }
}, },
methods: { methods: {
// 订单签约
onSing(id){
this.$emit('sing', id)
},
// 订单详情
onInfo(id){ onInfo(id){
this.$emit('info', id) this.$emit('info', id)
}, },
// 联系客户
onPhone(mobile){ onPhone(mobile){
this.$emit('callPhone', mobile) this.$emit('callPhone', mobile)
},
// 补差价支付
onDiff(id){
this.$emit('diff', id)
},
// 支付
onOPay(id){
this.$emit('pay', id)
} }
} }
} }
@@ -101,7 +132,7 @@
// 列表模块 // 列表模块
.order-block{ .order-block{
background: white; background: white;
margin: 30rpx; margin: 0 30rpx 30rpx 30rpx;
border-radius: 10rpx; border-radius: 10rpx;
&-header{ &-header{
border-bottom: solid 1rpx #eee; border-bottom: solid 1rpx #eee;
@@ -112,7 +143,7 @@
align-items: center; align-items: center;
line-height: 70rpx; line-height: 70rpx;
.order-no{ font-size: 28rpx; color: #111; } .order-no{ font-size: 28rpx; color: #111; }
.order-state{ color: #353EF4; font-weight: bold; font-size: 30rpx; } .order-state{ color: #446EFE; font-weight: bold; font-size: 30rpx; }
} }
&-content{ &-content{
padding: 30rpx; padding: 30rpx;
@@ -142,10 +173,11 @@
padding-top: 30rpx; padding-top: 30rpx;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
button{ margin: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 150rpx; font-size: 30rpx; } button{ margin: 0; padding: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 135rpx; font-size: 30rpx; }
button::after{ display: none; } button::after{ display: none; }
button.btn-cancel{ margin-right: 20rpx; color: #353EF4; border:solid 1rpx #353EF4; background: white; line-height: 68rpx; box-sizing: border-box; } button.btn-cancel{ margin-right: 20rpx; color: #446EFE; border:solid 1rpx #446EFE; background: white; line-height: 68rpx; box-sizing: border-box; }
button.btn-sign{ background: #353EF4; color: white; } button.btn-cancel.in{ opacity: .8; }
button.btn-sign{ background: #446EFE; color: white; }
} }
} }
} }

View File

@@ -29,7 +29,13 @@
</view> </view>
</view> </view>
<view class="order-btns"> <view class="order-btns">
<button class="btn-cancel" @click="onOPay(no)">支付</button> <button class="btn-cancel" @click="onPhone(user.username)">联系TA</button>
<button class="btn-cancel" :class="{'in': can.pay_status == 3}" v-if="can.pay_status == 1 || can.pay_status == 2 || can.pay_status == 3" @click="onOPay(no)">
<text v-if="can.pay_status == 1">支付</text>
<text v-if="can.pay_status == 2">审核中</text>
<text v-if="can.pay_status == 3">被驳回</text>
</button>
<button class="btn-cancel" v-if="can.diff_price" @click="onDiff(no)">补差价</button>
<button class="btn-sign" @click="onInfo(no)">查看</button> <button class="btn-sign" @click="onInfo(no)">查看</button>
</view> </view>
</view> </view>
@@ -79,6 +85,12 @@
type : Number, type : Number,
default : 0 default : 0
}, },
can: {
type : Object,
default : () => {
return { }
}
},
lawyer: { lawyer: {
type : Object, type : Object,
default : () => { default : () => {
@@ -87,11 +99,21 @@
} }
}, },
methods: { methods: {
// 订单详情
onInfo(id){ onInfo(id){
this.$emit('info', id) this.$emit('info', id)
}, },
// 联系客户
onPhone(mobile){ onPhone(mobile){
this.$emit('callPhone', mobile) this.$emit('callPhone', mobile)
},
// 补差价支付
onDiff(id){
this.$emit('diff', id)
},
// 支付
onOPay(id){
this.$emit('pay', id)
} }
} }
} }
@@ -101,7 +123,7 @@
// 列表模块 // 列表模块
.order-block{ .order-block{
background: white; background: white;
margin: 30rpx; margin: 0 30rpx 30rpx 30rpx;
border-radius: 10rpx; border-radius: 10rpx;
&-header{ &-header{
border-bottom: solid 1rpx #eee; border-bottom: solid 1rpx #eee;
@@ -112,7 +134,7 @@
align-items: center; align-items: center;
line-height: 70rpx; line-height: 70rpx;
.order-no{ font-size: 28rpx; color: #111; } .order-no{ font-size: 28rpx; color: #111; }
.order-state{ color: #353EF4; font-weight: bold; font-size: 30rpx; } .order-state{ color: #446EFE; font-weight: bold; font-size: 30rpx; }
} }
&-content{ &-content{
padding: 30rpx; padding: 30rpx;
@@ -142,10 +164,11 @@
padding-top: 30rpx; padding-top: 30rpx;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
button{ margin: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 150rpx; font-size: 30rpx; } button{ margin: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 135rpx; font-size: 30rpx; padding: 0; }
button::after{ display: none; } button::after{ display: none; }
button.btn-cancel{ margin-right: 20rpx; color: #353EF4; border:solid 1rpx #353EF4; background: white; line-height: 68rpx; box-sizing: border-box; } button.btn-cancel{ margin-right: 20rpx; color: #446EFE; border:solid 1rpx #446EFE; background: white; line-height: 68rpx; box-sizing: border-box; }
button.btn-sign{ background: #353EF4; color: white; } button.btn-cancel.in{ opacity: .8; }
button.btn-sign{ background: #446EFE; color: white; }
} }
} }
} }

View File

@@ -29,7 +29,14 @@
</view> </view>
</view> </view>
<view class="order-btns"> <view class="order-btns">
<button class="btn-cancel" @click="onOPay(no)">支付</button> <button class="btn-cancel" @click="onPhone(user.username)">联系TA</button>
<button class="btn-cancel" @click="onSing(no)" v-if="can.sign && isSelf">签约</button>
<button class="btn-cancel" :class="{'in': can.pay_status == 3}" v-if="can.pay_status == 1 || can.pay_status == 2 || can.pay_status == 3" @click="onOPay(no)">
<text v-if="can.pay_status == 1">支付</text>
<text v-if="can.pay_status == 2">审核中</text>
<text v-if="can.pay_status == 3">被驳回</text>
</button>
<button class="btn-cancel" v-if="can.diff_price" @click="onDiff(no)">补差价</button>
<button class="btn-sign" @click="onInfo(no)">查看</button> <button class="btn-sign" @click="onInfo(no)">查看</button>
</view> </view>
</view> </view>
@@ -45,6 +52,10 @@
}; };
}, },
props: { props: {
isSelf: {
type : Boolean,
default : false,
},
no : { no : {
type : String, type : String,
default : '' default : ''
@@ -80,12 +91,32 @@
default : () => { default : () => {
return { name: '' } return { name: '' }
} }
},
can: {
type : Object,
default : () => {
return { }
}
} }
}, },
methods: { methods: {
// 订单签约
onSing(id){
this.$emit('sing', id)
},
// 订单详情
onInfo(id){ onInfo(id){
this.$emit('info', id) this.$emit('info', id)
}, },
// 联系客户
onPhone(mobile){
this.$emit('callPhone', mobile)
},
// 补差价支付
onDiff(id){
this.$emit('diff', id)
},
// 支付
onOPay(id){ onOPay(id){
this.$emit('pay', id) this.$emit('pay', id)
} }
@@ -97,7 +128,7 @@
// 列表模块 // 列表模块
.order-block{ .order-block{
background: white; background: white;
margin: 30rpx; margin: 0 30rpx 30rpx 30rpx;
border-radius: 10rpx; border-radius: 10rpx;
&-header{ &-header{
border-bottom: solid 1rpx #eee; border-bottom: solid 1rpx #eee;
@@ -108,7 +139,7 @@
align-items: center; align-items: center;
line-height: 70rpx; line-height: 70rpx;
.order-no{ font-size: 28rpx; color: #111; } .order-no{ font-size: 28rpx; color: #111; }
.order-state{ color: #353EF4; font-weight: bold; font-size: 30rpx; } .order-state{ color: #446EFE; font-weight: bold; font-size: 30rpx; }
} }
&-content{ &-content{
padding: 30rpx; padding: 30rpx;
@@ -138,10 +169,10 @@
padding-top: 30rpx; padding-top: 30rpx;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
button{ margin: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 150rpx; font-size: 30rpx; } button{ margin: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 135rpx; font-size: 30rpx; }
button::after{ display: none; } button::after{ display: none; }
button.btn-cancel{ margin-right: 20rpx; color: #353EF4; border:solid 1rpx #353EF4; background: white; line-height: 68rpx; box-sizing: border-box; } button.btn-cancel{ margin-right: 20rpx; color: #446EFE; border:solid 1rpx #446EFE; background: white; line-height: 68rpx; box-sizing: border-box; }
button.btn-sign{ background: #353EF4; color: white; } button.btn-sign{ background: #446EFE; color: white; }
} }
} }
} }

View File

@@ -20,7 +20,7 @@
</view> </view>
</view> </view>
<view class="order-btns"> <view class="order-btns">
<button class="btn-cancel" @click="onOPay(no)">支付</button> <button class="btn-cancel" @click="onPhone(user)">联系TA</button>
<button class="btn-sign" @click="onInfo(no)">查看</button> <button class="btn-sign" @click="onInfo(no)">查看</button>
</view> </view>
</view> </view>
@@ -72,7 +72,12 @@
this.$emit('info', id) this.$emit('info', id)
}, },
onPhone(mobile){ onPhone(mobile){
console.log(mobile)
this.$emit('callPhone', mobile) this.$emit('callPhone', mobile)
},
onSing(id){
this.$emit('info', id)
} }
} }
} }
@@ -82,7 +87,7 @@
// 列表模块 // 列表模块
.order-block{ .order-block{
background: white; background: white;
margin: 30rpx; margin: 0 30rpx 30rpx 30rpx;
border-radius: 10rpx; border-radius: 10rpx;
&-header{ &-header{
border-bottom: solid 1rpx #eee; border-bottom: solid 1rpx #eee;
@@ -119,10 +124,10 @@
padding-top: 30rpx; padding-top: 30rpx;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
button{ margin: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 150rpx; font-size: 30rpx; } button{ margin: 0; height: 70rpx; line-height: 70rpx; border-radius: 35rpx; min-width: 135rpx; padding: 0; font-size: 30rpx; }
button::after{ display: none; } button::after{ display: none; }
button.btn-cancel{ margin-right: 20rpx; color: #353EF4; border:solid 1rpx #353EF4; background: white; line-height: 68rpx; box-sizing: border-box; } button.btn-cancel{ margin-right: 20rpx; color: #446EFE; border:solid 1rpx #446EFE; background: white; line-height: 68rpx; box-sizing: border-box; }
button.btn-sign{ background: #353EF4; color: white; } button.btn-sign{ background: #446EFE; color: white; }
} }
} }
} }

View File

@@ -701,10 +701,46 @@
"name": "EntrustWrite", "name": "EntrustWrite",
"auth": true, "auth": true,
"style": { "style": {
"navigationBarTitleText": "案件委托-服务包", "navigationBarTitleText": "案件委托-",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"backgroundColor": "#FFF" "backgroundColor": "#FFF"
} }
}, {
"path": "pages/synthesize/standWrite",
"name": "StandWrite",
"auth": true,
"style": {
"navigationBarTitleText": "企业全年法律-购买",
"enablePullDownRefresh": false,
"backgroundColor": "#FFF"
}
}, {
"path": "pages/synthesize/expandWrite",
"name": "ExpandWrite",
"auth": true,
"style": {
"navigationBarTitleText": "拓展服务-",
"enablePullDownRefresh": false,
"backgroundColor": "#FFF"
}
}, {
"path": "pages/synthesize/difference",
"name": "Difference",
"auth": true,
"style": {
"navigationBarTitleText": "订单补差价",
"enablePullDownRefresh": false
}
}, {
"path": "pages/synthesize/feeWrite",
"name": "FeeWrite",
"auth": true,
"style": {
"navigationBarTitleText": "个人法律咨询",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#FFF"
}
}], }],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",

View File

@@ -39,19 +39,6 @@
<image class="cover-item-add" src="@/static/icons/img_add.png" mode="aspectFill"></image> <image class="cover-item-add" src="@/static/icons/img_add.png" mode="aspectFill"></image>
</view> </view>
</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"> <view class="idcardBtn">
<button class="idcardBtn-go" @click="issueForm">确认提交</button> <button class="idcardBtn-go" @click="issueForm">确认提交</button>
</view> </view>
@@ -182,7 +169,7 @@
onBack(){ onBack(){
uni.showModal({ uni.showModal({
title : '提示', title : '提示',
content : '打款凭证已提交,请耐心等待审核', content : '打款凭证已提交,请耐心等待审核,通过后请前往工作台综法订单管理中进行签约',
showCancel : false, showCancel : false,
success : modalRes => { success : modalRes => {
if(modalRes.confirm){ if(modalRes.confirm){

View File

@@ -241,7 +241,7 @@
clearInterval(outTime) clearInterval(outTime)
wx.showModal({ wx.showModal({
title : '提示', title : '提示',
content : '支付成功', content : this.$Route.query.paytype === 'synthesize' ? '支付成功,可在工作台综法订单管理查询您的订单' : '支付成功',
showCancel : false, showCancel : false,
confirmColor: '#446EFE', confirmColor: '#446EFE',
success : () => { success : () => {

View 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>

View File

@@ -6,9 +6,9 @@
<view class="title-name"><text>企业法律咨询服务包</text></view> <view class="title-name"><text>企业法律咨询服务包</text></view>
<view class="title-text">legal advice</view> <view class="title-text">legal advice</view>
</view> </view>
<view class="item" :class="{active : item.service_order != null}" v-for="(item, index) in synthesisArr" :key="index"> <view class="item" :class="{active : item.is_open}" v-for="(item, index) in synthesisArr" :key="index">
<view class="endedAt" v-if="item.service_order"> <view class="endedAt" v-if="item.is_open">
<view class="endedAt-time">到期时间{{item.service_order.ended_at}}</view> <view class="endedAt-time">到期时间{{item.service_user.ended_at}}</view>
</view> </view>
<view class="top"> <view class="top">
<view class="top-title">{{item.title}}</view> <view class="top-title">{{item.title}}</view>

View File

@@ -78,13 +78,13 @@
mask : true mask : true
}) })
entrustInfo(this.$Route.query.id).then(res => { 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.entrust = entrust
this.params = params this.params = params
this.createdAt = created_at this.createdAt = created_at
this.user = user this.user = user
this.no = order_no this.no = order_no
this.price = price this.price = total
}).catch(err => { }).catch(err => {
uni.showToast({ uni.showToast({
title: err.message, title: err.message,

View File

@@ -77,13 +77,13 @@
mask : true mask : true
}) })
expandInfo(this.$Route.query.id).then(res => { 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.expand = expand
this.params = params this.params = params
this.createdAt = created_at this.createdAt = created_at
this.user = user this.user = user
this.no = order_no this.no = order_no
this.price = price this.price = total
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)

View 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>

View 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>

View File

@@ -46,7 +46,7 @@
<text v-if="item.button_status === 4">打款被驳回</text> <text v-if="item.button_status === 4">打款被驳回</text>
</view> </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> </view>
</view> </view>
@@ -56,13 +56,16 @@
<script> <script>
import { yearSynthList } from '@/apis/interfaces/synthesis' import { yearSynthList } from '@/apis/interfaces/synthesis'
import { certified } from '@/apis/interfaces/user'
export default { export default {
data() { data() {
return { return {
synthesisArr: [], synthesisArr: [], // 服务单信息
price : '' // 支付价格
} }
}, },
onShow() { onShow() {
this.yearServe(); this.yearServe();
}, },
methods: { methods: {
@@ -81,11 +84,13 @@
}, },
// 点击开通按钮 // 点击开通按钮
onBtn(index){ onBtn(index){
let obj = this.synthesisArr[index] let obj = this.synthesisArr[index]
console.log(obj)
switch (obj.button_status){ 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: case 3:
uni.showToast({ uni.showToast({
title: '打款凭证审核中,请耐心等待', title: '打款凭证审核中,请耐心等待',
@@ -122,6 +127,45 @@
}) })
break; 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
},
})
} }
} }
} }

View File

@@ -13,8 +13,8 @@
</view> </view>
</u-sticky> </u-sticky>
<!-- 列表 --> <!-- 列表 -->
<block v-if="orderArr.length > 0"> <view class="list" v-if="orderArr.length > 0">
<view class="list" v-for="(item, index) in orderArr" :key="index"> <block v-for="(item, index) in orderArr" :key="index">
<!-- 年费单 --> <!-- 年费单 -->
<services-block <services-block
v-if="$Route.query.type === 'service'" v-if="$Route.query.type === 'service'"
@@ -23,12 +23,16 @@
:user="item.user" :user="item.user"
:time="item.created_at" :time="item.created_at"
:service="item.service" :service="item.service"
:price="item.price" :price="item.total"
:lawyer="item.lawyer || {name: ''}" :lawyer="item.lawyer || {name: ''}"
:isSelf="item.is_self" :isSelf="item.is_self"
:payStatus="item.pay_status" :payStatus="item.pay_status"
:can="item.can"
@info="onInfo" @info="onInfo"
@pay="onPay" @pay="onPay"
@sing="onSing"
@diff="onDiff"
@callPhone="onCallPhone"
/> />
<!-- 咨询单 --> <!-- 咨询单 -->
<synthesis-block <synthesis-block
@@ -51,13 +55,17 @@
:user="item.user" :user="item.user"
:time="item.created_at" :time="item.created_at"
:status="item.status" :status="item.status"
:price="item.price" :price="item.total"
:diff="item.need_pay_diff_prices" :diff="item.need_pay_diff_prices"
:lawyer="item.lawyer || {name: ''}" :lawyer="item.lawyer || {name: ''}"
:isSelf="item.is_self" :isSelf="item.is_self"
:payStatus="item.pay_status" :payStatus="item.pay_status"
:can="item.can"
@info="onInfo" @info="onInfo"
@pay="onPay" @pay="onPay"
@sing="onSing"
@diff="onDiff"
@callPhone="onCallPhone"
/> />
<!-- 拓展单 --> <!-- 拓展单 -->
<expand-block <expand-block
@@ -66,34 +74,37 @@
:user="item.user" :user="item.user"
:time="item.created_at" :time="item.created_at"
:expand="item.expand" :expand="item.expand"
:price="item.price" :price="item.total"
:status="item.status" :status="item.status"
:diff="item.need_pay_diff_prices" :diff="item.need_pay_diff_prices"
:lawyer="item.lawyer || {name: ''}" :lawyer="item.lawyer || {name: ''}"
:isSelf="item.is_self" :isSelf="item.is_self"
:payStatus="item.pay_status" :payStatus="item.pay_status"
:can="item.can"
@info="onInfo" @info="onInfo"
@pay="onPay" @pay="onPay"
@diff="onDiff"
@callPhone="onCallPhone"
/> />
</view> </block>
<!-- 分页 --> <!-- 分页 -->
<u-loadmore v-if="pagesShow" :status="status" /> <u-loadmore v-if="pagesShow" :status="status" />
</block> </view>
<block v-else> <view class="null-pages" v-else>
<view class="null-pages"> <u-empty
<u-empty mode="order"
mode="order" icon="http://cdn.uviewui.com/uview/empty/order.png"
icon="http://cdn.uviewui.com/uview/empty/order.png" text="暂无相关订单"
text="暂无相关订单" >
> </u-empty>
</u-empty> </view>
</view>
</block>
</view> </view>
</template> </template>
<script> <script>
import { certified } from '@/apis/interfaces/user.js'
import { servicesOrder, synthesisOrder, entrustOrder, expandOrder, orderRead } from '@/apis/interfaces/synthesisOrder.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 entrustBlock from '@/components/entrustOrder.vue'
import expandBlock from '@/components/expandOrder.vue' import expandBlock from '@/components/expandOrder.vue'
import servicesBlock from '@/components/servicesOrder.vue' import servicesBlock from '@/components/servicesOrder.vue'
@@ -111,6 +122,7 @@
tabScroll : false, tabScroll : false,
orderArr : [], orderArr : [],
funName : '', funName : '',
isRefresh : false, // 更新页面数据
// 分页 // 分页
page : { page : {
current : 1 current : 1
@@ -175,6 +187,12 @@
}) })
this.getList() this.getList()
}, },
onShow() {
if(this.isRefresh){
this.page = { current: 1 }
this.getList()
}
},
methods: { methods: {
// 切换tab // 切换tab
onTab(e) { onTab(e) {
@@ -185,15 +203,140 @@
this.getList() 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){ 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({ uni.showActionSheet({
title : '选择支付方式', itemList: ['线上支付', '线下支付'],
itemList: ['线下打款', '线上支付'], success: sheetRes => {
success : res => { if(sheetRes.tapIndex == 0){
console.log(res.tapIndex) this.$Router.push({
console.log(no) 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){ async onCallPhone(number){
let result = await permision.requestAndroidPermission('android.permission.CALL_PHONE') let result = await permision.requestAndroidPermission('android.permission.CALL_PHONE')
@@ -279,6 +434,9 @@
this.getList() this.getList()
return return
} }
},
onHide() {
this.isRefresh = true
} }
} }
</script> </script>
@@ -288,7 +446,7 @@
// 滑块 // 滑块
.header-sticky{ padding-bottom: 12rpx; } .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; } .null-pages{ height: 70vh; display: flex; align-items: center; justify-content: center; }
</style> </style>

View File

@@ -8,12 +8,12 @@
<view class="list-title-trim"></view> <view class="list-title-trim"></view>
</view> </view>
<view class="list-item"> <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"> <view class="list-label-name">
{{item.title}} {{item.title}}
</view> </view>
<view class="list-label-price"><rich-text :nodes="item.content"></rich-text></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> </view>
</view> </view>

View File

@@ -77,13 +77,13 @@
mask : true mask : true
}) })
servicesInfo(this.$Route.query.id).then(res => { 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.service = service
this.params = params this.params = params
this.createdAt = created_at this.createdAt = created_at
this.user = user this.user = user
this.no = order_no this.no = order_no
this.price = price this.price = total
}).catch(err => { }).catch(err => {
uni.showToast({ uni.showToast({
title: err.message, title: err.message,

View 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>

View File

@@ -103,11 +103,14 @@
} }
} }
synthesisObj = synthesisArr.find(val => val.synthesis_id === this.businessId) synthesisObj = synthesisArr.find(val => val.synthesis_id === this.businessId)
if(synthesisObj.can.buy){ if(synthesisObj.can.buy){
console.log('提交免费咨询') this.$Router.replace({
// this.$Router.replace({ name : 'FeeWrite',
// name: 'PersonWrite' params : {
// }) synthesisId : synthesisObj.synthesis_id
}
})
return return
} }
uni.showModal({ uni.showModal({
@@ -118,7 +121,7 @@
success : modalRes => { success : modalRes => {
if(modalRes.confirm){ if(modalRes.confirm){
this.$Router.replace({ this.$Router.replace({
name: 'PersonWrite' name: 'Individual'
}) })
} }
} }

View File

@@ -162,22 +162,22 @@
<view class="tool-flex"> <view class="tool-flex">
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'service' })"> <view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'service' })">
<image class="icon" src="@/static/synthesize/icon_00.png"></image> <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 class="text">年费订单</view>
</view> </view>
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'synthesis' })"> <view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'synthesis' })">
<image class="icon" src="@/static/synthesize/icon_01.png"></image> <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 class="text">咨询订单</view>
</view> </view>
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'entrust' })"> <view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'entrust' })">
<image class="icon" src="@/static/synthesize/icon_02.png"></image> <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 class="text">委托订单</view>
</view> </view>
<view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'expand' })"> <view class="tool-flex-item" @click="onNav('SynthesizeOrder', { type: 'expand' })">
<image class="icon" src="@/static/synthesize/icon_03.png"></image> <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 class="text">拓展订单</view>
</view> </view>
</view> </view>
@@ -233,7 +233,7 @@
</template> </template>
<script> <script>
import { index, rights, sign } from '@/apis/interfaces/work.js' import { index, rights, sign, synthesisCount } from '@/apis/interfaces/work.js'
export default { export default {
data() { data() {
return { return {
@@ -256,7 +256,9 @@
sign : { sign : {
isSign : false, isSign : false,
address : "" address : ""
} },
// 综法订单管理
synthesisData : {}
}; };
}, },
onShow() { onShow() {
@@ -313,9 +315,10 @@
title: '加载中...', title: '加载中...',
mask : true mask : true
}) })
Promise.all([rights(), index()]).then(res => { Promise.all([rights(), index(), synthesisCount()]).then(res => {
let rightsData = res[0], let rightsData = res[0],
indexData = res[1] indexData = res[1],
synthesisData = res[2]
let { nickname, avatar, business_orders_count, isCertification, certification, isManager, isAnswer, identity, sign } = indexData let { nickname, avatar, business_orders_count, isCertification, certification, isManager, isAnswer, identity, sign } = indexData
this.rightsArr = rightsData this.rightsArr = rightsData
@@ -331,6 +334,8 @@
this.identity = identity this.identity = identity
this.sign = sign this.sign = sign
this.synthesisData = synthesisData
uni.hideLoading() uni.hideLoading()
}).catch(err => { }).catch(err => {
uni.showToast({ uni.showToast({