缴费
This commit is contained in:
@@ -78,3 +78,11 @@ export function updateBooking(data) {
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 查询按钮列表
|
||||
export function queryCaseFlowInfo(data) {
|
||||
return request({
|
||||
'url': `/case/flow/queryCaseFlowInfo`,
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/** 获取支付二维码 */
|
||||
export function casePay(data) {
|
||||
return request({
|
||||
'url': '/pay/casePay',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
/**确认缴费*/
|
||||
export function confirmPayment(data) {
|
||||
return request({
|
||||
'url': '/pay/confirmPayment',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
@@ -3,10 +3,14 @@ import App from './App'
|
||||
import store from './store' // store
|
||||
import plugins from './plugins' // plugins
|
||||
import './permission' // permission
|
||||
import {
|
||||
checkPermi
|
||||
} from '@/utils/permission'
|
||||
Vue.use(plugins)
|
||||
|
||||
Vue.config.productionTip = false
|
||||
Vue.prototype.$store = store
|
||||
Vue.prototype.checkPermi = checkPermi
|
||||
|
||||
App.mpType = 'app'
|
||||
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"moment": "^2.29.4"
|
||||
"moment": "^2.29.4",
|
||||
"qrcodejs2": "0.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
+7
-2
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"pages": [
|
||||
{
|
||||
"pages": [{
|
||||
"path": "pages/switchSystem",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
@@ -99,6 +98,12 @@
|
||||
"navigationBarTitleText": "案件信息"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/handlecase/component/payList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "缴费详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/handlecase/component/evidenceList",
|
||||
"style": {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="list" @tap="caseDetail">
|
||||
<view class="list">
|
||||
<view class="listItem">
|
||||
<view class="lable">
|
||||
案件编号:
|
||||
@@ -40,21 +40,27 @@
|
||||
{{defalutVal.caseStatusName}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="btn">
|
||||
<button class="btnItem" type="primary" size="mini" @tap="uploadEvidence" v-if="defalutVal.caseStatus == 3">上传证据</button>
|
||||
<button class="btnItem" type="primary" size="mini" @tap="confirmationEvidence" v-if="defalutVal.caseStatus == 4">确认证据</button> -->
|
||||
<!-- <button class="btnItem" type="primary" size="mini" @tap="isAssignrbitrators" v-if="defalutVal.caseStatus == 5">是否指派仲裁员</button> -->
|
||||
<!-- <button class="btnItem" type="primary" size="mini" @tap="isAssignrbitrators">是否指派仲裁员</button>
|
||||
<button class="btnItem" type="primary" size="mini" @tap="chooseMethod" v-if="defalutVal.caseStatus == 9">选择仲裁方式</button>
|
||||
</view> -->
|
||||
<view class="btn" v-if="sysType == 2">
|
||||
<!-- <button class="btnItem" type="primary" size="mini" @tap="clickPay">申请人缴费</button>
|
||||
<button class="btnItem" type="primary" size="mini" @tap="caseDetail">选择调解员</button> -->
|
||||
<button class="btnItem" type="primary" size="mini" v-for="(item) in buttonList" :key="item.id"
|
||||
v-if="item.id == defalutVal.caseFlowId && checkPermi([item.buttonAuthFlag])">{{ item.nodeName }}</button>
|
||||
<!-- <button class="btnItem" type="primary" size="mini" @tap="confirmationEvidence">确认证据</button>
|
||||
<button class="btnItem" type="primary" size="mini" @tap="isAssignrbitrators">是否指派仲裁员</button>
|
||||
<button class="btnItem" type="primary" size="mini" @tap="isAssignrbitrators">是否指派仲裁员</button>
|
||||
<button class="btnItem" type="primary" size="mini" @tap="chooseMethod">选择仲裁方式</button> -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
queryCaseFlowInfo
|
||||
} from '@/api/handlecase/index.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
buttonList: []
|
||||
}
|
||||
},
|
||||
props: {
|
||||
@@ -73,30 +79,28 @@
|
||||
uni.navigateTo({
|
||||
url: `/pages/handlecase/component/uploadEvidence?id=${this.defalutVal.id}`
|
||||
})
|
||||
},
|
||||
clickPay() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/handlecase/component/payList?id=${this.defalutVal.id}`
|
||||
})
|
||||
},
|
||||
/**查询按钮列表 */
|
||||
getButtonList() {
|
||||
queryCaseFlowInfo({
|
||||
pageNum: 1,
|
||||
pageSize: 100000
|
||||
}).then(res => {
|
||||
res.rows.forEach(item => {
|
||||
if (item.id != 11 && item.id != 17) {
|
||||
this.buttonList.push(item)
|
||||
}
|
||||
// isAssignrbitrators(){
|
||||
// uni.navigateTo({
|
||||
// url:`/pages/handlecase/component/assignrbitrators?id=${this.defalutVal.id}`
|
||||
// })
|
||||
// },
|
||||
// // 上传证据
|
||||
// uploadEvidence(){
|
||||
// uni.navigateTo({
|
||||
// url:`/pages/handlecase/component/uploadEvidence?id=${this.defalutVal.id}`
|
||||
// })
|
||||
// },
|
||||
// // 确认证据
|
||||
// confirmationEvidence(){
|
||||
// uni.navigateTo({
|
||||
// url:`/pages/handlecase/component/confirmationEvidence?id=${this.defalutVal.id}`
|
||||
// })
|
||||
// },
|
||||
// // 选择仲裁方式
|
||||
// chooseMethod(){
|
||||
// uni.navigateTo({
|
||||
// url:`/pages/handlecase/component/chooseMethod?id=${this.defalutVal.id}`
|
||||
// })
|
||||
// }
|
||||
});
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getButtonList()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -130,6 +134,7 @@
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.btnItem {
|
||||
height: 50rpx;
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
<template>
|
||||
<view class="from">
|
||||
<uni-forms ref="form" :modelValue="formData" :rules="rules">
|
||||
<view class="box">
|
||||
<uni-forms-item label="案件编号:" name="caseNum" label-width="120px" required>
|
||||
<uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.caseNum" placeholder="" />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="申请人:" name="applicantName" label-width="120px" required>
|
||||
<uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.applicantName"
|
||||
placeholder="" />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="被申请人:" name="respondentName" label-width="120px" required>
|
||||
<uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.respondentName"
|
||||
placeholder="" />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="案件标的:" name="caseSubjectAmount" label-width="120px" required>
|
||||
<uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.caseSubjectAmount"
|
||||
placeholder="" />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="应缴费用:" name="feePayable" label-width="120px" required>
|
||||
<uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.feePayable" placeholder="" />
|
||||
</uni-forms-item>
|
||||
</view>
|
||||
</uni-forms>
|
||||
<uni-forms-item label="缴费方式">
|
||||
<uni-data-checkbox v-model="payType" :localdata="payTypes" @change="changeType" />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="缴费平台">
|
||||
<uni-data-checkbox v-model="payPlatform" :localdata="payPlatforms" @change="changePayType" />
|
||||
</uni-forms-item>
|
||||
<div class="payImg" v-if="payType == 0">
|
||||
<canvas canvas-id="qrcode" v-show="qrShow" style="width: 300rpx;margin: 0 auto;" />
|
||||
</div>
|
||||
<div class="payTitle" v-if="payType == 0">{{ payMain }}</div>
|
||||
<uni-forms-item label="上传证据" name="headImage">
|
||||
<uni-file-picker ref="files" :auto-upload="false" return-type='object' v-model="fileList"
|
||||
file-mediatype="all" @select="select" :limit='1' />
|
||||
</uni-forms-item>
|
||||
<button type="primary" @click="submitPay">确认提交</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
selectById
|
||||
} from '../../../api/handlecase/index.js'
|
||||
import {
|
||||
casePay,
|
||||
confirmPayment
|
||||
} from '../../../api/pay/index.js'
|
||||
import moment from 'moment'
|
||||
import uQRCode from '../../common/uqrcode.js'
|
||||
import {
|
||||
getToken
|
||||
} from '@/utils/auth'
|
||||
import config from '@/config'
|
||||
const baseUrl = config.baseUrlTJ
|
||||
const app = getApp()
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
formData: {},
|
||||
selectFlag: false,
|
||||
rules: {},
|
||||
payPlatforms: [{
|
||||
text: '微信',
|
||||
value: 0
|
||||
}, {
|
||||
text: '支付宝',
|
||||
value: 1
|
||||
}, ],
|
||||
payPlatform: null,
|
||||
payType: 1,
|
||||
payTypes: [{
|
||||
text: '线上缴费',
|
||||
value: 0
|
||||
}, {
|
||||
text: '线下缴费',
|
||||
value: 1
|
||||
}, ],
|
||||
payMain: '',
|
||||
qrShow: false,
|
||||
tempFilePaths: null,
|
||||
fileList: {},
|
||||
submitForm: {
|
||||
payType: 1,
|
||||
payOrderList: [],
|
||||
caseId: null
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**获取案件缴费信息*/
|
||||
getData(parms) {
|
||||
selectById(parms).then(res => {
|
||||
this.formData = res.data
|
||||
})
|
||||
},
|
||||
/**生成二维码*/
|
||||
qrcode(url) {
|
||||
this.qrShow = true
|
||||
uQRCode.make({
|
||||
canvasId: 'qrcode',
|
||||
componentInstance: this,
|
||||
text: url,
|
||||
size: 150,
|
||||
margin: 0,
|
||||
backgroundColor: '#ffffff',
|
||||
foregroundColor: '#000000',
|
||||
fileType: 'jpg',
|
||||
errorCorrectLevel: uQRCode.errorCorrectLevel.H,
|
||||
success: res => {}
|
||||
})
|
||||
},
|
||||
/**选择缴费方式*/
|
||||
changeType(val) {
|
||||
this.submitForm.payType = val;
|
||||
},
|
||||
/**文件上传*/
|
||||
select(e) {
|
||||
this.tempFilePaths = e.tempFilePaths;
|
||||
// loading
|
||||
uni.showLoading({
|
||||
title: '上传中'
|
||||
});
|
||||
uni.uploadFile({
|
||||
url: baseUrl + '/common/upload',
|
||||
filePath: this.tempFilePaths[0],
|
||||
header: {
|
||||
Authorization: getToken() || '',
|
||||
},
|
||||
formData: {
|
||||
annexType: 4,
|
||||
id: this.formData.id
|
||||
},
|
||||
name: 'file',
|
||||
success: (res) => {
|
||||
let {
|
||||
data
|
||||
} = res
|
||||
data = JSON.parse(data);
|
||||
this.submitForm.payOrderList.push({
|
||||
annexId: data.annexId,
|
||||
annexName: data.fileName
|
||||
});
|
||||
// console.log(this.submitForm, "OOOOOOOOOOOOOOOOOOOOOOOOO");
|
||||
uni.showToast({
|
||||
title: '上传成功',
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
})
|
||||
uni.hideLoading();
|
||||
},
|
||||
fail: (err) => {
|
||||
uni.showToast({
|
||||
title: '上传失败',
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
})
|
||||
uni.hideLoading()
|
||||
}
|
||||
})
|
||||
},
|
||||
/**选择缴费平台*/
|
||||
changePayType(val) {
|
||||
if (this.formData.feePayable == 0 || !this.formData.feePayable) {
|
||||
uni.showToast({
|
||||
title: '此案件无需缴费',
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
})
|
||||
return;
|
||||
}
|
||||
let payType = "";
|
||||
if (val.detail.value == 0) {
|
||||
payType = "wxpay";
|
||||
this.payMain = "请使用微信扫二维码支付";
|
||||
} else if (val.detail.value == 1) {
|
||||
payType = "alipay";
|
||||
this.payMain = "请使用支付宝扫二维码支付";
|
||||
}
|
||||
casePay({
|
||||
totalFee: this.formData.feePayable * 100,
|
||||
caseId: this.formData.id,
|
||||
tradeType: "native",
|
||||
platform: payType,
|
||||
}).then((res) => {
|
||||
this.qrcode(res.data.code_url);
|
||||
});
|
||||
},
|
||||
confirmPaymentFn(data) {
|
||||
confirmPayment(data).then(res => {
|
||||
uni.showToast({
|
||||
title: '确认成功',
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
});
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
})
|
||||
},
|
||||
/**确认缴费*/
|
||||
submitPay() {
|
||||
this.submitForm.caseId = this.formData.id;
|
||||
this.submitForm.caseFlowId = this.formData.caseFlowId;
|
||||
this.confirmPaymentFn(this.submitForm);
|
||||
}
|
||||
},
|
||||
onLoad(data) {
|
||||
this.getData({
|
||||
id: data.id
|
||||
});
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.from {
|
||||
padding: 20rpx;
|
||||
}
|
||||
|
||||
.payImg,
|
||||
.payTitle {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.select-picker {
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
border: 1px solid #DCDFE6;
|
||||
border-radius: 8rpx;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0 24rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
</style>
|
||||
@@ -559,7 +559,6 @@
|
||||
// TODO
|
||||
// 调解提交
|
||||
if (this.mediatorList.length > 3) {
|
||||
debugger
|
||||
uni.showToast({
|
||||
title: '最多选择三个调解员',
|
||||
icon: 'none',
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
<view class="" v-if="sysType == 2">
|
||||
<button type="primary" @tap="newlyAddedCases">新增案件</button>
|
||||
</view>
|
||||
<List class="caseList" v-for="(item,index) in caseList" :defalutVal='item' :key="index"
|
||||
v-if="item.pendingStatus == 0" :sysType='sysType'>
|
||||
<List class="caseList" v-for="(item,index) in caseList" :defalutVal='item' :key="index" :sysType='sysType'>
|
||||
</List>
|
||||
<view class="emptyBox" v-if="caseList.length == 0">
|
||||
<luanqing-empty :show="true" textColor="#000"></luanqing-empty>
|
||||
@@ -29,7 +28,8 @@
|
||||
caseList: [],
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
sysType: null
|
||||
sysType: null,
|
||||
total: null,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -38,7 +38,7 @@
|
||||
respondentList(parms).then(res => {
|
||||
// this.caseList = res.rows;
|
||||
if (res.data) {
|
||||
this.caseList = res.data;
|
||||
this.caseList = [...this.caseList, ...res.data];
|
||||
} else {
|
||||
this.caseList = []
|
||||
}
|
||||
@@ -102,9 +102,9 @@
|
||||
} else if (this.sysType == 2) {
|
||||
parms.miniProgressFlag = 1;
|
||||
caseApplicationTj(parms).then(res => {
|
||||
// this.caseList = res.rows;
|
||||
this.total = res.total;
|
||||
if (res.rows) {
|
||||
this.caseList = res.rows;
|
||||
this.caseList = [...this.caseList, ...res.rows];
|
||||
} else {
|
||||
this.caseList = []
|
||||
}
|
||||
@@ -122,13 +122,35 @@
|
||||
onReachBottom() {
|
||||
if (this.caseList.length < 1) {
|
||||
return
|
||||
} else if (this.total == this.caseList.length) {
|
||||
uni.showToast({
|
||||
title: '没有数据啦',
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
})
|
||||
return
|
||||
} else if (this.caseList.length < 10) {
|
||||
uni.showToast({
|
||||
title: '没有数据啦',
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
})
|
||||
return
|
||||
}
|
||||
let obj = {
|
||||
this.pageNum++;
|
||||
let obj = {};
|
||||
if (this.sysType == 1) {
|
||||
obj = {
|
||||
pageNum: this.pageNum,
|
||||
pageSize: this.pageSize,
|
||||
caseStatus: 4
|
||||
}
|
||||
obj.pageNum = obj.pageNum + 1
|
||||
} else if (this.sysType == 2) {
|
||||
obj = {
|
||||
pageNum: this.pageNum,
|
||||
pageSize: this.pageSize,
|
||||
}
|
||||
}
|
||||
this.getList(obj)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2498,11 +2498,13 @@ button.cuIcon.lg {
|
||||
.cu-modal.drawer-modal.show .cu-dialog {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
.cu-modal .cu-dialog>.cu-bar:first-child .action {
|
||||
min-width: 100rpx;
|
||||
margin-right: 0;
|
||||
min-height: 100rpx;
|
||||
}
|
||||
|
||||
/* ==================
|
||||
轮播
|
||||
==================== */
|
||||
@@ -2932,11 +2934,13 @@ scroll-view.cu-steps .cu-item {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.grid.grid-square>view.bg-img image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.grid.col-1.grid-square>view {
|
||||
padding-bottom: 100%;
|
||||
height: 0;
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+2
@@ -6,8 +6,10 @@
|
||||
"pages/work/index",
|
||||
"pages/handlecase/index",
|
||||
"pages/handlecase/component/uploadEvidence",
|
||||
"pages/handlecase/component/payList",
|
||||
"pages/handlecase/component/evidenceList",
|
||||
"pages/handlecase/component/obligations",
|
||||
"pages/handlecase/component/newlyAddedCase",
|
||||
"pages/expressDelivery/index",
|
||||
"pages/expressDelivery/component/expressDelivery",
|
||||
"pages/signature/index",
|
||||
|
||||
+20
-14
@@ -1,8 +1,7 @@
|
||||
{
|
||||
"description": "项目配置文件。",
|
||||
"packOptions": {
|
||||
"ignore": [],
|
||||
"include": []
|
||||
"ignore": []
|
||||
},
|
||||
"setting": {
|
||||
"urlCheck": false,
|
||||
@@ -10,21 +9,28 @@
|
||||
"postcss": true,
|
||||
"minified": true,
|
||||
"newFeature": true,
|
||||
"bigPackageSizeSupport": true,
|
||||
"babelSetting": {
|
||||
"ignore": [],
|
||||
"disablePlugins": [],
|
||||
"outputPath": ""
|
||||
},
|
||||
"condition": false
|
||||
"bigPackageSizeSupport": true
|
||||
},
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "3.1.1",
|
||||
"libVersion": "",
|
||||
"appid": "wx91cb8459dca561b4",
|
||||
"projectname": "智慧仲裁",
|
||||
"condition": {},
|
||||
"editorSetting": {
|
||||
"tabIndent": "insertSpaces",
|
||||
"tabSize": 2
|
||||
"condition": {
|
||||
"search": {
|
||||
"current": -1,
|
||||
"list": []
|
||||
},
|
||||
"conversation": {
|
||||
"current": -1,
|
||||
"list": []
|
||||
},
|
||||
"game": {
|
||||
"current": -1,
|
||||
"list": []
|
||||
},
|
||||
"miniprogram": {
|
||||
"current": -1,
|
||||
"list": []
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
|
||||
"projectname": "若依移动端",
|
||||
"projectname": "miniapp",
|
||||
"setting": {
|
||||
"compileHotReLoad": true,
|
||||
"urlCheck": true
|
||||
"urlCheck": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user