提交 77e28f3a authored 作者: lihuihui's avatar lihuihui
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"axios": "^0.21.1", "axios": "^0.21.1",
"clipboard": "^2.0.8",
"element-ui": "^2.15.5", "element-ui": "^2.15.5",
"query-string": "^7.0.1", "query-string": "^7.0.1",
"vue": "^2.6.14", "vue": "^2.6.14",
...@@ -2244,6 +2245,16 @@ ...@@ -2244,6 +2245,16 @@
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"node_modules/clipboard": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz",
"integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==",
"dependencies": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"node_modules/co": { "node_modules/co": {
"version": "4.6.0", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
...@@ -2511,6 +2522,11 @@ ...@@ -2511,6 +2522,11 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
},
"node_modules/depd": { "node_modules/depd": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
...@@ -3589,6 +3605,14 @@ ...@@ -3589,6 +3605,14 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"dependencies": {
"delegate": "^3.1.2"
}
},
"node_modules/graceful-fs": { "node_modules/graceful-fs": {
"version": "4.2.8", "version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
...@@ -5306,6 +5330,11 @@ ...@@ -5306,6 +5330,11 @@
"get-ready": "~1.0.0" "get-ready": "~1.0.0"
} }
}, },
"node_modules/select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
},
"node_modules/semver": { "node_modules/semver": {
"version": "7.3.5", "version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
...@@ -5754,6 +5783,11 @@ ...@@ -5754,6 +5783,11 @@
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true "dev": true
}, },
"node_modules/tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
},
"node_modules/to-arraybuffer": { "node_modules/to-arraybuffer": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
...@@ -8156,6 +8190,16 @@ ...@@ -8156,6 +8190,16 @@
"readdirp": "~3.6.0" "readdirp": "~3.6.0"
} }
}, },
"clipboard": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz",
"integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==",
"requires": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"co": { "co": {
"version": "4.6.0", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
...@@ -8355,6 +8399,11 @@ ...@@ -8355,6 +8399,11 @@
"esprima": "^4.0.0" "esprima": "^4.0.0"
} }
}, },
"delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
},
"depd": { "depd": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
...@@ -9179,6 +9228,14 @@ ...@@ -9179,6 +9228,14 @@
"type-fest": "^0.20.2" "type-fest": "^0.20.2"
} }
}, },
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"requires": {
"delegate": "^3.1.2"
}
},
"graceful-fs": { "graceful-fs": {
"version": "4.2.8", "version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
...@@ -10497,6 +10554,11 @@ ...@@ -10497,6 +10554,11 @@
"get-ready": "~1.0.0" "get-ready": "~1.0.0"
} }
}, },
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
},
"semver": { "semver": {
"version": "7.3.5", "version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
...@@ -10848,6 +10910,11 @@ ...@@ -10848,6 +10910,11 @@
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true "dev": true
}, },
"tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
},
"to-arraybuffer": { "to-arraybuffer": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
}, },
"dependencies": { "dependencies": {
"axios": "^0.21.1", "axios": "^0.21.1",
"clipboard": "^2.0.8",
"element-ui": "^2.15.5", "element-ui": "^2.15.5",
"query-string": "^7.0.1", "query-string": "^7.0.1",
"vue": "^2.6.14", "vue": "^2.6.14",
......
...@@ -59,13 +59,13 @@ export default { ...@@ -59,13 +59,13 @@ export default {
.app-aside { .app-aside {
position: sticky; position: sticky;
top: 0; top: 0;
width: 240px; width: 200px;
z-index: 100; z-index: 100;
background: #fff; background: #fff;
border-right: 1px solid rgba(0, 0, 0, 0.12); border-right: 1px solid rgba(0, 0, 0, 0.12);
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
flex: 0 0 240px; flex: 0 0 200px;
} }
.nav { .nav {
margin: 20px 0; margin: 20px 0;
......
...@@ -20,10 +20,10 @@ export default { ...@@ -20,10 +20,10 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.app-breadcrumb { .app-breadcrumb {
padding: 20px 0 32px; padding: 18px 0 32px;
.el-breadcrumb { .el-breadcrumb {
font-size: 24px; font-size: 20px;
font-weight: 400; font-weight: 400;
line-height: 1; line-height: 1;
} }
......
...@@ -24,7 +24,7 @@ export default { ...@@ -24,7 +24,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-height: 100vh; min-height: 100vh;
background-color: #f4f5f7; background-color: #ededed;
} }
.app-layout-container { .app-layout-container {
flex: 1; flex: 1;
......
...@@ -27,7 +27,7 @@ export default { ...@@ -27,7 +27,7 @@ export default {
.app-main { .app-main {
position: relative; position: relative;
flex: 1; flex: 1;
padding: 24px; padding: 20px;
overflow: hidden; overflow: hidden;
} }
.app-main-inner { .app-main-inner {
......
...@@ -10,7 +10,7 @@ import beforeEnter from '@/utils/beforeEnter' ...@@ -10,7 +10,7 @@ import beforeEnter from '@/utils/beforeEnter'
// Element-UI // Element-UI
import ElementUI from 'element-ui' import ElementUI from 'element-ui'
import '@/assets/theme/style.scss' import '@/assets/theme/style.scss'
Vue.use(ElementUI) Vue.use(ElementUI, { size: 'small' })
// 注册模块 // 注册模块
modules({ router, store }) modules({ router, store })
......
import httpRequest from '@/utils/axios' import httpRequest from '@/utils/axios'
// 获取项目列表 // 获取项目列表
export function getProjectList(data) { export function getProjectList(params) {
return httpRequest.get('/api/finance/v1/projects/list', data) return httpRequest.get('/api/finance/v1/projects/list', { params })
} }
// 获取支付过滤条件 // 获取支付过滤条件
export function getCondition(data) { export function getCondition(params) {
return httpRequest.get('/api/finance/v1/payments/condition', data) return httpRequest.get('/api/finance/v1/payments/condition', { params })
} }
// 获取支付列表 // 获取支付列表
export function getPayList(data) { export function getPayList(data) {
return httpRequest.get('/api/finance/v1/payments/list', data) return httpRequest.get('/api/finance/v1/payments/list', data)
} }
// 查看支付详情
export function payDetail(params) {
return httpRequest.get('/api/finance/v1/payments/details', { params })
}
// 支付列表下载 // 支付列表下载
export function download(data) { export function download(data) {
return httpRequest.get('/api/finance//v1/payments/download', data) return httpRequest.get('/api/finance/v1/payments/download', data)
} }
// 是否允许开具发票 // 是否允许开具发票
export function allowCreate(data) { export function allowCreate(data) {
return httpRequest.post('/api/finance/v1/payments/update-can-invoice', data) return httpRequest.post('/api/finance/v1/payments/update-can-invoice', data)
...@@ -32,10 +35,6 @@ export function getTableTitle(data) { ...@@ -32,10 +35,6 @@ export function getTableTitle(data) {
export function updateTableTitle(data) { export function updateTableTitle(data) {
return httpRequest.get('/api/finance/v1/payments/update-title', data) return httpRequest.get('/api/finance/v1/payments/update-title', data)
} }
// 查看支付详情
export function payDetail(data) {
return httpRequest.get('/api/finance/v1/payments/details', data)
}
// 开具发票 // 开具发票
export function createNewTicket(data) { export function createNewTicket(data) {
return httpRequest.get('/api/finance/v1/invoices/create', data) return httpRequest.get('/api/finance/v1/invoices/create', data)
...@@ -46,17 +45,5 @@ export function cancelTicket(data) { ...@@ -46,17 +45,5 @@ export function cancelTicket(data) {
} }
// 确认(取消)单条缴费到账 // 确认(取消)单条缴费到账
export function payConfirm(data) { export function payConfirm(data) {
return httpRequest.get('/api/finance/v1/payments/details-confirm', data) return httpRequest.post('/api/finance/v1/payments/details-confirm', data)
}
// 渠道列表
export function getChannelList(data) {
return httpRequest.get('/api/finance/v1/channels/list', data)
}
// // 申请状态
// export function getApplyStatusList(data) { // 待修改
// return httpRequest.get('/api/finance/v1/channels/list', data)
// }
// 费用类型
export function getExpenseList(data) { // 待修改
return httpRequest.get('/api/finance/v1/channels/list', data)
} }
...@@ -3,41 +3,42 @@ ...@@ -3,41 +3,42 @@
<table border="1" width="1200px" cellspacing="0"> <table border="1" width="1200px" cellspacing="0">
<tr> <tr>
<th>不含税销售金额</th> <th>不含税销售金额</th>
<td>dfsvasdfc</td> <td>{{dealList.sales_amount_excluding_tax}}</td>
<th>渠道代理费提基数</th> <th>渠道代理费提基数</th>
<td>vfdvdav</td> <td>{{dealList.channel_agent_fee_base}}</td>
<th>服务费规则</th> <th>服务费规则</th>
<td>dfvdvdfav</td> <td>{{dealList.service_fee_rules}}</td>
</tr> </tr>
<tr> <tr>
<th>服务费比例</th> <th>服务费比例</th>
<td>dfdsfsef</td> <td>{{dealList.service_charge_ratio}}</td>
<th>代理服务费</th> <th>代理服务费</th>
<td>fvfdvdfv</td> <td>{{dealList.agency_service_fee}}</td>
<th>代理服务费(不含税金额)</th> <th>代理服务费(不含税金额)</th>
<td>vfadvdeafv</td> <td>{{dealList.agency_service_fee_excluding_tax}}</td>
</tr> </tr>
<tr> <tr>
<th>户名</th> <th>户名</th>
<td>dfdsfsef</td> <td>{{dealList.channel_account_name}}</td>
<th>账号</th> <th>账号</th>
<td>fvfdvdfv</td> <td>{{dealList.channel_account}}</td>
<th>开户行</th> <th>开户行</th>
<td>vfadvdeafv</td> <td>{{dealList.channel_bank_of_deposit}}</td>
</tr> </tr>
<tr> <tr>
<th>渠道税率</th> <th>渠道税率</th>
<td colspan="5">dfdsfsef</td> <td colspan="5">{{dealList.channel_tax_rate}}</td>
</tr> </tr>
</table> </table>
</template> </template>
<script> <script>
export default { export default {
prop: { props: {
payDetailList: { dealList: {
type: Array, type: Object,
default: [] // eslint-disable-next-line vue/require-valid-default-prop
default: {}
} }
} }
} }
......
...@@ -3,35 +3,36 @@ ...@@ -3,35 +3,36 @@
<table border="1" width="1200px" cellspacing="0"> <table border="1" width="1200px" cellspacing="0">
<tr> <tr>
<th>应缴金额</th> <th>应缴金额</th>
<td>dfsvasdfc</td> <td>{{dealList.bill_total}}</td>
<th>实缴金额</th> <th>实缴金额</th>
<td>vfdvdav</td> <td>{{dealList.amount_need_to_pay}}</td>
<th>缴金额</th> <th>缴金额</th>
<td>dfvdvdfav</td> <td>{{dealList.amount_waiting_for_pay}}</td>
</tr> </tr>
<tr> <tr>
<th>手续费</th> <th>手续费</th>
<td>dfdsfsef</td> <td>{{dealList.service_charge}}</td>
<th>到账金额</th> <th>到账金额</th>
<td>fvfdvdfv</td> <td>{{dealList.amount_received}}</td>
<th>待确认金额</th> <th>待确认金额</th>
<td>vfadvdeafv</td> <td>{{dealList.amount_waiting_for_confirm}}</td>
</tr> </tr>
<tr> <tr>
<th>首次缴费金额</th> <th>首次缴费时间</th>
<td></td> <td>{{dealList.first_payment_time}}</td>
<th>末次缴费金额</th> <th>末次缴费时间</th>
<td colspan="3"></td> <td colspan="3">{{dealList.final_payment_time}}</td>
</tr> </tr>
</table> </table>
</template> </template>
<script> <script>
export default { export default {
prop: { props: {
payDetailList: { dealList: {
type: Array, type: Object,
default: [] // eslint-disable-next-line vue/require-valid-default-prop
default: {}
} }
} }
} }
......
<!-- 支付详情-已确认列表 --> <!-- 支付详情-已确认列表 -->
<template> <template>
<app-card> <app-card>
<app-list v-bind="tableOptions" ref="list" @selection-change="handleSelectionChange"> <app-list v-bind="tableOptions" ref="list" >
<template v-slot:table-x> <template v-slot:table-x = "{ row }">
<el-button @click="toDetail">查看</el-button> <el-button @click="toDetail(row)">查看</el-button>
<el-button>取消到账</el-button> <el-button @click="cancelReceive(row)">取消到账</el-button>
</template> </template>
</app-list> </app-list>
</app-card> </app-card>
...@@ -13,13 +13,14 @@ ...@@ -13,13 +13,14 @@
// 组件 // 组件
import AppList from '@/components/base/AppList.vue' import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue' import AppCard from '@/components/base/AppCard.vue'
import { payDetail, payConfirm } from '../api'
// 接口 // 接口
// import { getOrderList } from '../api'
export default { export default {
prop: { props: {
payDetailList: { id: {
type: Array, type: String,
default: [] default: ''
} }
}, },
components: { AppCard, AppList }, components: { AppCard, AppList },
...@@ -32,76 +33,42 @@ export default { ...@@ -32,76 +33,42 @@ export default {
tableOptions() { tableOptions() {
return { return {
remote: { remote: {
// httpRequest: getOrderList, // 获取订单列表 httpRequest: payDetail, // 获取订单列表
params: {}, params: { id: this.id },
beforeRequest: this.beforeRequest beforeRequest: this.beforeRequest
}, },
columns: [ columns: [
{ label: '#', type: 'index', minWidth: '50px', fixed: 'left' }, { label: '#', type: 'index', minWidth: '50px', fixed: 'left' },
{ label: '支付凭证', prop: 'id', minWidth: 100 }, { label: '支付凭证', prop: 'id', minWidth: 100 },
{ label: '支付人姓名', prop: 'img', align: 'center', minWidth: 100 }, { label: '支付人姓名', prop: 'name', align: 'center', minWidth: 100 },
{ label: '支付金额', prop: 'name', align: 'center', minWidth: 100 }, { label: '支付金额', prop: 'amount', align: 'center', minWidth: 100 },
{ label: '支付时间', prop: 'standardPrice', align: 'center', minWidth: 100 }, { label: '支付时间', prop: 'payment_time', align: 'center', minWidth: 100 },
{ label: '支付方式', prop: 'num', align: 'center', minWidth: 100 }, { label: '支付方式', prop: 'payment_method', align: 'center', minWidth: 100 },
{ label: '支付状态', prop: 'payPrice', align: 'center', minWidth: 100 }, { label: '其他支付方式', prop: 'payment_method_others', align: 'center', minWidth: 100 },
{ label: '创建日期', prop: 'payPrice', align: 'center', minWidth: 100 }, { label: '交易流水号', prop: 'txn_id', align: 'center', minWidth: 100 },
{ label: '支付状态', prop: 'payment_status', align: 'center', minWidth: 100 },
{ label: '创建日期', prop: 'created_time', align: 'center', minWidth: 100 },
{ slots: 'table-x', align: 'center', minWidth: 100 } { slots: 'table-x', align: 'center', minWidth: 100 }
],
data: [
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
},
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
},
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
},
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
}
] ]
} }
} }
}, },
methods: { methods: {
beforeRequest(params, isReset) { // 查看支付详情
// 重置
if (isReset) {
params.price_min = ''
params.price_max = ''
}
params.status = this.activeName === '0' ? '' : this.activeName
params.price_zone = `${params.price_min || ''},${params.price_max || ''}`
return params
},
// 选择
handleSelectionChange(value) {
this.multipleSelection = value
},
toDetail() { toDetail() {
this.$router.push({ this.$router.push({
name: 'paydetail' name: 'paydetail',
params: {
id: this.id
}
})
},
// 取消到账
cancelReceive() {
payConfirm().then(res => {
if (res.code === 0) {
this.$parent.fetchTicketDetail()
}
}) })
} }
} }
......
...@@ -4,17 +4,15 @@ ...@@ -4,17 +4,15 @@
<table border="1" width="1200px" cellspacing="0"> <table border="1" width="1200px" cellspacing="0">
<tr> <tr>
<th>订单用户名称</th> <th>订单用户名称</th>
<td>111</td> <td>{{dealList.name}}</td>
<th>支付人姓名</th>
<td>111</td>
<td>订单编号</td> <td>订单编号</td>
<td>adad</td> <td>{{dealList.id}}</td>
<td>支付状态</td> <td>支付状态</td>
<td>sdad</td> <td>{{dealList.payment_status}}</td>
</tr> </tr>
<tr> <tr>
<th>备注</th> <th>备注</th>
<td colspan="8">21h3u</td> <td colspan="5">{{dealList.comment}}</td>
</tr> </tr>
</table> </table>
</div> </div>
...@@ -22,11 +20,14 @@ ...@@ -22,11 +20,14 @@
<script> <script>
export default { export default {
prop: { props: {
payDetailList: { dealList: {
type: Array, type: Object,
default: [] // eslint-disable-next-line vue/require-valid-default-prop
default: {}
} }
},
mounted() {
} }
} }
</script> </script>
......
...@@ -28,12 +28,13 @@ ...@@ -28,12 +28,13 @@
<script> <script>
// import QrcodeVue from 'qrcode.vue' // import QrcodeVue from 'qrcode.vue'
// import Clipboard from 'clipboard' import Clipboard from 'clipboard'
export default { export default {
// components: { QrcodeVue }, // components: { QrcodeVue },
props: { props: {
title: { type: String, default: '推广' }, title: { type: String, default: '推广' },
value: { type: String, default: '' } value: { type: String, default: '' },
id: { type: String, default: '' }
}, },
data() { data() {
return { return {
...@@ -48,18 +49,18 @@ export default { ...@@ -48,18 +49,18 @@ export default {
.toDataURL('image/png') .toDataURL('image/png')
.replace('image/png', 'image/octet-stream') .replace('image/png', 'image/octet-stream')
}, },
// initClipboard() { initClipboard() {
// if (this.clipboard) { if (this.clipboard) {
// return return
// } }
// this.clipboard = new Clipboard(this.$refs.copy.$el) this.clipboard = new Clipboard(this.$refs.copy.$el)
// this.clipboard.on('success', () => { this.clipboard.on('success', () => {
// this.$message({ message: '复制成功!', type: 'success' }) this.$message({ message: '复制成功!', type: 'success' })
// }) })
// this.clipboard.on('error', () => { this.clipboard.on('error', () => {
// this.$message({ message: '复制失败,请手动选择复制!', type: 'error' }) this.$message({ message: '复制失败,请手动选择复制!', type: 'error' })
// }) })
// }, },
handleOpened() { handleOpened() {
this.$nextTick(function () { this.$nextTick(function () {
this.initClipboard() this.initClipboard()
......
...@@ -4,19 +4,19 @@ ...@@ -4,19 +4,19 @@
<table border="1" width="1200px" cellspacing="0"> <table border="1" width="1200px" cellspacing="0">
<tr> <tr>
<th>学员姓名</th> <th>学员姓名</th>
<td>111</td> <td>{{dealList.name}}</td>
<th>报名项目</th> <th>报名项目</th>
<td>111</td> <td>{{dealList.project_name}}</td>
<td>所属班次</td> <td>所属班次</td>
<td>adad</td> <td>{{dealList.bill_customer_class}}</td>
</tr> </tr>
<tr> <tr>
<th>开学时间</th> <th>开学时间</th>
<td>21h3u</td> <td>{{dealList.bill_customer_class_start_time}}</td>
<th>学制期限</th> <th>学制期限</th>
<td>21h3u</td> <td>{{dealList.bill_customer_class_length_of_schooling}}</td>
<th>跟进人</th> <th>跟进人</th>
<td>21h3u</td> <td>{{dealList.sales_rep_user_id_name}}</td>
</tr> </tr>
</table> </table>
</div> </div>
...@@ -24,10 +24,11 @@ ...@@ -24,10 +24,11 @@
<script> <script>
export default { export default {
prop: { props: {
payDetailList: { dealList: {
type: Array, type: Object,
default: [] // eslint-disable-next-line vue/require-valid-default-prop
default: {}
} }
} }
} }
......
...@@ -2,59 +2,66 @@ ...@@ -2,59 +2,66 @@
<!-- 支付详情-发票表格 --> <!-- 支付详情-发票表格 -->
<template> <template>
<div class="ticketInfo"> <div class="ticketInfo">
<table border="1" width="1200px" cellspacing="0" v-for="(item, index) in TicketInfoList" :key="index" class="table"> fddsrf
<table border="1" width="1200px" cellspacing="0" v-for="(item, index) in invioceList" :key="index" class="table">
<tr> <tr>
<th colspan="10">{{ item.title }}</th> <th colspan="10">发票{{ item.id }}</th>
</tr> </tr>
<tr> <tr>
<th>发票</th> <th>发票</th>
<td>{{ item.ticketNum }}</td> <td>{{ item.invoice_haoma }}</td>
<th>发票代码</th> <th>发票代码</th>
<td>{{ item.code }}</td> <td>{{ item.invoice_daima }}</td>
<th>发票类型</th>
<td>{{ item.ticketType }}</td>
<th>开票人类型</th>
<td>{{ item.peopleType }}</td>
<th>开票类型</th> <th>开票类型</th>
<td>{{ item.toTicketType }}</td> <td>{{ item.invoice_color_type }}</td>
<th>抬头类型</th>
<td>{{ item.taxpayer_type }}</td>
<th>发票类型</th>
<td>{{ item.invoice_type }}</td>
</tr>
<tr v-show="item.invoice_status === 6">
<th>原发票号码</th>
<td>{{item.old_invoice_haoma}}</td>
<th>原发票代码</th>
<td>{{item.old_invoice_daima}}</td>
</tr> </tr>
<tr> <tr>
<th>含税金额</th> <th>含税金额</th>
<td>{{ item.totalPrice }}</td> <td>{{ item.invoice_total_amount }}</td>
<th>税率</th> <th>税率</th>
<td>{{ item.percent }}</td> <td>{{ item.invoice_tax_rate }}</td>
<th>税额</th> <th>税额</th>
<td>{{ item.percentPart }}</td> <td>{{ item.invoice_tax_rate_amount }}</td>
<th>不含税金额(元)</th> <th>不含税金额(元)</th>
<td>{{ item.price }}</td> <td>{{ item.invoice_excluding_tax_amount }}</td>
<th>发票申请日期</th> <th>发票申请日期</th>
<td>{{ item.applyDate }}</td> <td>{{ item.invoice_application_time }}</td>
</tr> </tr>
<tr> <tr>
<th>票据类型</th>
<td>{{ item.type }}</td>
<th>纳税人名称</th> <th>纳税人名称</th>
<td>{{ item.name }}</td> <td>{{ item.taxpayer_name }}</td>
<th>纳税人识别号</th> <th>纳税人识别号</th>
<td>{{ item.num }}</td> <td>{{ item.taxpayer_identifier }}</td>
<th>邮箱地址</th> <th>邮箱地址</th>
<td>{{ item.email }}</td> <td>{{ item.recipient_email }}</td>
<th>开票日期</th> <th>出票日期</th>
<td>{{ item.date }}</td> <td>{{ item.invoice_issuing_time }}</td>
<th>操作人</th>
<td>{{ item.created_operator_name }}</td>
</tr> </tr>
<tr> <tr>
<th>邮寄地址</th> <th>邮寄地址</th>
<td colspan="3">{{ item.address }}</td> <td colspan="3">{{ item.recipient_address }}</td>
<th>收件人姓名</th> <th>收件人姓名</th>
<td>{{ item.recipientName }}</td> <td>{{ item.recipient_name }}</td>
<th>收件人手机号</th> <th>收件人手机号</th>
<td>{{ item.recipientPhone }}</td> <td>{{ item.recipient_mobile }}</td>
<th>票据跟进人</th> <th>票据跟进人</th>
<td>{{ item.follow }}</td> <td>{{ item.sales_rep_user_id_name }}</td>
</tr> </tr>
<tr> <tr>
<th>备注</th> <th>备注</th>
<td colspan="9">{{ item.remark }}</td> <td colspan="9">{{ item.taxpayer_remark }}</td>
</tr> </tr>
</table> </table>
</div> </div>
...@@ -62,61 +69,20 @@ ...@@ -62,61 +69,20 @@
<script> <script>
export default { export default {
prop: { props: {
payDetailList: { dealList: {
type: Array, type: Object,
default: [] // eslint-disable-next-line vue/require-valid-default-prop
default: {}
} }
}, },
data() { data() {
return { return {
TicketInfoList: [ invioceList: []
{
ticketNum: 'jdaijdajk',
code: 'eqeqeq',
remark: 'eqeq',
follow: 'eqe',
recipientPhone: 'weqe',
recipientName: 'wewr',
address: 'eqweq',
date: 'qeeqe',
email: 'eqweq',
num: 'dqwdq',
name: 'uutu',
type: 'ty67u',
applyDate: 'fee3t',
price: '24424',
percentPart: '342234',
percent: '2342 3',
totalPrice: 'wr342',
toTicketType: 'dfe',
peopleType: 'cvd',
title: 'daddd'
},
{
ticketNum: 'jdaijdajk',
code: 'eqeqeq',
remark: 'eqeq',
follow: 'eqe',
recipientPhone: 'weqe',
recipientName: 'wewr',
address: 'eqweq',
date: 'qeeqe',
email: 'eqweq',
num: 'dqwdq',
name: 'uutu',
type: 'ty67u',
applyDate: 'fee3t',
price: '24424',
percentPart: '342234',
percent: '2342 3',
totalPrice: 'wr342',
toTicketType: 'dfe',
peopleType: 'cvd',
title: 'daddd'
}
]
} }
},
mounted() {
this.invioceList = this.dealList.invoices_list || []
} }
} }
</script> </script>
......
...@@ -5,27 +5,27 @@ ...@@ -5,27 +5,27 @@
<table border="1" width="720px" cellspacing="0" class="table"> <table border="1" width="720px" cellspacing="0" class="table">
<tr> <tr>
<th>客户姓名</th> <th>客户姓名</th>
<td>lisi</td> <td>{{detailList.name}}</td>
<th>k客户编号</th> <th>客户编号</th>
<td>lisi</td> <td>{{detailList.customer_id}}</td>
<th>订单编号</th> <th>订单编号</th>
<td>lisi</td> <td>{{detailList.id}}</td>
</tr> </tr>
<tr> <tr>
<th>支付状态</th> <th>支付状态</th>
<td>lisi</td> <td>{{detailList.payment_status}}</td>
<th>报名项目</th> <th>报名项目</th>
<td>lisi</td> <td>{{detailList.project_id}}</td>
<th>应缴金额</th> <th>应缴金额</th>
<td>lisi</td> <td>{{detailList.bill_total}}</td>
</tr> </tr>
<tr> <tr>
<th>实缴金额</th> <th>实缴金额</th>
<td>lisi</td> <td>{{detailList.amount_need_to_pay}}</td>
<th>交易流水号</th> <th>交易流水号</th>
<td>lisi</td> <td>{{detailList.txn_id_list}}</td>
<th>缴费时间</th> <th>缴费时间</th>
<td>lisi</td> <td>{{detailList.final_payment_time}}</td>
</tr> </tr>
</table> </table>
<el-form label-width="120px" ref="ruleForm" :model="form" :rules="rules"> <el-form label-width="120px" ref="ruleForm" :model="form" :rules="rules">
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
</el-form-item> </el-form-item>
<!-- 企业发票显示税号 --> <!-- 企业发票显示税号 -->
<el-form-item label="纳税人识别号" prop="taxpayer_identifier" v-show="form.people_type === '1'"> <el-form-item label="纳税人识别号" prop="taxpayer_identifier" v-show="form.people_type === '1'">
<el-input v-model="taxpayer_identifier"></el-input> <el-input v-model="form.taxpayer_identifier"></el-input>
</el-form-item> </el-form-item>
<div v-show="form.people_type === '1' && form.invioce_type === '3' " > <div v-show="form.people_type === '1' && form.invioce_type === '3' " >
<el-form-item label="地址" prop="taxpayer_address"> <el-form-item label="地址" prop="taxpayer_address">
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
</el-form-item> </el-form-item>
</div> </div>
<el-form-item> <el-form-item>
<el-button size="mini" @click="$emit('ticketVisible')">取消</el-button> <el-button size="mini" @click="$emit('close')">取消</el-button>
<el-button type="primary" @click="onSubmit" size="mini">提交</el-button> <el-button type="primary" @click="onSubmit" size="mini">提交</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -110,20 +110,27 @@ ...@@ -110,20 +110,27 @@
</template> </template>
<script> <script>
import { payDetail } from '../api'
export default { export default {
props: { props: {
ticketVisible: { ticketVisible: {
type: Boolean, type: Boolean,
default: false default: false
},
id: {
type: String,
default: ''
} }
}, },
data() { data() {
return { return {
detailList: {},
form: { form: {
toticket_type: '', toticket_type: '',
people_type: '', people_type: '',
ticket_type: '', ticket_type: '',
taxpayer_name: '', taxpayer_name: '',
taxpayer_identifier: '',
taxpayer_num: '', taxpayer_num: '',
address: '', address: '',
phone: '', phone: '',
...@@ -137,12 +144,12 @@ export default { ...@@ -137,12 +144,12 @@ export default {
rules: { rules: {
toticket_type: [{ required: true, message: '请选择开票类型', trigger: 'change' }], toticket_type: [{ required: true, message: '请选择开票类型', trigger: 'change' }],
people_type: [{ required: true, message: '请选择抬头类型', trigger: 'change' }], people_type: [{ required: true, message: '请选择抬头类型', trigger: 'change' }],
ticket_type: [{ required: true, message: '请选择发票类型', trigger: 'change' }], invioce_type: [{ required: true, message: '请选择发票类型', trigger: 'change' }],
taxpayer_name: [ taxpayer_name: [
{ required: true, message: '请输入纳税人名称', trigger: 'blur' }, { required: true, message: '请输入纳税人名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
], ],
taxpayer_num: [ taxpayer_identifier: [
{ required: true, message: '请输入纳税人识别号', trigger: 'blur' }, { required: true, message: '请输入纳税人识别号', trigger: 'blur' },
{ min: 3, max: 30, message: '长度在 3 到 30 个字符', trigger: 'blur' } { min: 3, max: 30, message: '长度在 3 到 30 个字符', trigger: 'blur' }
], ],
...@@ -150,7 +157,7 @@ export default { ...@@ -150,7 +157,7 @@ export default {
{ required: true, message: '请输入地址', trigger: 'blur' }, { required: true, message: '请输入地址', trigger: 'blur' },
{ min: 3, max: 30, message: '长度在 3 到 30 个字符', trigger: 'blur' } { min: 3, max: 30, message: '长度在 3 到 30 个字符', trigger: 'blur' }
], ],
phone: [ taxpayer_mobile: [
{ required: true, message: '请输入电话', trigger: 'blur' }, { required: true, message: '请输入电话', trigger: 'blur' },
{ min: 11, max: 11, message: '长度在 11 个字符', trigger: 'blur' } { min: 11, max: 11, message: '长度在 11 个字符', trigger: 'blur' }
], ],
...@@ -181,7 +188,18 @@ export default { ...@@ -181,7 +188,18 @@ export default {
} }
} }
}, },
mounted() {
this.getPayDetail()
},
methods: { methods: {
getPayDetail() {
const params = { id: this.id }
payDetail(params).then(res => {
if (res.code === 0) {
this.detailList = res.data.list[0]
}
})
},
// 提交开票信息 // 提交开票信息
onSubmit() { onSubmit() {
this.$refs.ruleForm.validate(valid => { this.$refs.ruleForm.validate(valid => {
......
<!-- 待确认列表 --> <!-- 待确认列表 -->
<template> <template>
<app-card><app-list v-bind="tableOptions" ref="list" @selection-change="handleSelectionChange"><template v-slot:table-x><el-button @click="toDeal">处理</el-button></template></app-list></app-card> <app-card>
<app-list v-bind="tableOptions" ref="list" >
<template v-slot:status-select>
<el-button @click="toDeal">处理</el-button>
</template>
</app-list>
</app-card>
</template> </template>
<script> <script>
// 组件 // 组件
import AppList from '@/components/base/AppList.vue' import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue' import AppCard from '@/components/base/AppCard.vue'
// 接口 // 接口
// import { getOrderList } from '../api' import { payDetail } from '../api'
export default { export default {
prop: { props: {
payDetailList: { id: {
type: Array, type: String,
default: [] default: ''
} }
}, },
components: { AppCard, AppList }, components: { AppCard, AppList },
...@@ -26,75 +32,27 @@ export default { ...@@ -26,75 +32,27 @@ export default {
tableOptions() { tableOptions() {
return { return {
remote: { remote: {
// httpRequest: getOrderList, // 获取订单列表 httpRequest: payDetail, // 获取订单列表
params: {}, params: {},
beforeRequest: this.beforeRequest beforeRequest: this.beforeRequest
}, },
columns: [ columns: [
{ label: '#', type: 'index', minWidth: '50px', fixed: 'left' }, { label: '#', type: 'index', minWidth: '50px', fixed: 'left' },
{ label: '支付凭证', prop: 'id', minWidth: 100 }, { label: '支付凭证', prop: 'id', minWidth: 100 },
{ label: '支付人姓名', prop: 'img', align: 'center', minWidth: 100 }, { label: '支付人姓名', prop: 'name', align: 'center', minWidth: 100 },
{ label: '支付金额', prop: 'name', align: 'center', minWidth: 100 }, { label: '支付金额', prop: 'amount', align: 'center', minWidth: 100 },
{ label: '支付时间', prop: 'standardPrice', align: 'center', minWidth: 100 }, { label: '支付时间', prop: 'payment_time', align: 'center', minWidth: 100 },
{ label: '支付方式', prop: 'num', align: 'center', minWidth: 100 }, { label: '支付方式', prop: 'payment_method', align: 'center', minWidth: 100 },
{ label: '其他支付方式', prop: 'num', align: 'center', minWidth: 100 }, { label: '其他支付方式', prop: 'payment_method_others', align: 'center', minWidth: 100 },
{ label: '交易流水号', prop: 'num', align: 'center', minWidth: 100 }, { label: '交易流水号', prop: 'txn_id', align: 'center', minWidth: 100 },
{ label: '支付状态', prop: 'payPrice', align: 'center', minWidth: 100 }, { label: '支付状态', prop: 'payment_status', align: 'center', minWidth: 100 },
{ label: '创建日期', prop: 'payPrice', align: 'center', minWidth: 100 }, { label: '创建日期', prop: 'created_time', align: 'center', minWidth: 100 },
{ slots: 'table-x', align: 'center', minWidth: 100 } { slots: 'table-x', align: 'center', minWidth: 100 }
],
data: [
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
},
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
},
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
},
{
id: 'dfSDfsdf',
img: 'FDZF',
name: 'DSZF',
standardPrice: 'FDSZF',
num: 'dsff',
payPrice: 'aefes'
}
] ]
} }
} }
}, },
methods: { methods: {
// beforeRequest(params, isReset) {
// // 重置
// if (isReset) {
// params.price_min = ''
// params.price_max = ''
// }
// params.status = this.activeName === '0' ? '' : this.activeName
// params.price_zone = `${params.price_min || ''},${params.price_max || ''}`
// return params
// },
// // 选择
// handleSelectionChange(value) {
// this.multipleSelection = value
// },
// 处理 // 处理
toDeal() { toDeal() {
console.log('111') console.log('111')
......
...@@ -3,61 +3,63 @@ ...@@ -3,61 +3,63 @@
<app-card title="支付明细信息"> <app-card title="支付明细信息">
<table border="1" width="1200px" cellspacing="0"> <table border="1" width="1200px" cellspacing="0">
<tr> <tr>
<th>支付人姓名</th> <th>支付人姓名</th>
<td>dsfrsfc</td> <td>{{confirmDetail.name}}</td>
<th>费用类型</th> <th>费用类型</th>
<td>是的v方式地方vc</td> <td>{{confirmDetail.type}}</td>
<th>支付金额</th> <th>支付金额</th>
<td>21313</td> <td>{{confirmDetail.amount}}</td>
<th>支付状态</th> <th>支付状态</th>
<td>个大哥大哥v那边</td> <td>{{confirmDetail.payment_status}}</td>
</tr> </tr>
<tr> <tr>
<th>支付方式</th> <th>支付方式</th>
<td></td> <td>{{confirmDetail.payment_method}}</td>
<th>其他支付方式</th> <th>其他支付方式</th>
<td></td> <td>{{confirmDetail.payment_method_others}} </td>
<th>支付时间</th> <th>支付时间</th>
<td colspan="3"></td> <td colspan="3">{{confirmDetail.payment_time}}</td>
</tr> </tr>
<tr> <tr>
<td></td> <td></td>
<td colspan="7">是的方式为非阿法尔</td> <td colspan="7">
<img :src="confirmDetail.payment_voucher_filename" alt="">
</td>
</tr> </tr>
<tr> <tr>
<th>项目</th> <th>项目</th>
<td></td> <td>{{project.project_id}}</td>
<th>销售</th> <th>销售</th>
<td></td> <td>{{project.sales_rep_user_id_name}}</td>
<th>渠道</th> <th>渠道</th>
<td colspan="3"></td> <td colspan="3">{{project.channel_id}}</td>
</tr> </tr>
<tr>
<th>备注</th>
<td colspan="7">dfsdfs</td>
</tr>
<tr> <tr>
<th>创建时间</th> <th>备注</th>
<td colspan="3">5</td> <td colspan="7">{{confirmDetail.taxpayer_remark}}</td>
<th>到账时间</th> </tr>
<td colspan="3"></td> <tr>
</tr> <th>创建时间</th>
<td colspan="3">{{confirmDetail.created_time}}</td>
<th>更新时间</th>
<td colspan="3">{{confirmDetail.updated_time}}</td>
</tr>
</table> </table>
</app-card> </app-card>
<app-card> <app-card>
<el-form ref="formRef" :model="form" :rules="formRules"> <el-form ref="formRef" :model="form" :rules="formRules">
<el-form-item label="支付状态" label-width="80px" prop="payStatus"> <el-form-item label="支付状态" label-width="80px" prop="payment_status">
<el-select v-model="form.payStatus"> <el-select v-model="form.payment_status">
<el-option label="已支付" :value="1"></el-option> <el-option label="已支付" :value="1"></el-option>
<el-option label="未支付" :value="2"></el-option> <el-option label="未支付" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="手续费" label-width="80px" prop="commission"> <el-form-item label="手续费" label-width="80px" prop="service_charge">
<el-input size="mini" v-model="form.commission"></el-input> <el-input size="mini" v-model="form.service_charge"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="到账时间" label-width="80px" prop="date"> <el-form-item label="到账时间" label-width="80px" prop="receiving_time">
<el-date-picker <el-date-picker
v-model="form.date" v-model="form.receiving_time"
type="datetimerange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期时间" start-placeholder="开始日期时间"
...@@ -67,21 +69,18 @@ ...@@ -67,21 +69,18 @@
style="width: 360px" style="width: 360px"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="备注" label-width="80px" prop="remark"> <el-form-item label="备注" label-width="80px" prop="taxpayer_remark">
<el-input size="mini" v-model="form.remark"> </el-input> <el-input size="mini" v-model="form.remark"> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="到账凭证" label-width="80px" prop="document"> <el-form-item label="到账凭证" label-width="80px" prop="receiving_voucher_filename">
<el-upload class="upload-demo" <el-upload class="upload-demo"
drag action="https://jsonplaceholder.typicode.com/posts/" drag
action="https://webapp-pub.oss-cn-beijing.aliyuncs.com"
multiple multiple
:file-list="fileList" show-file-list
accept=".xls,.xlsx" :file-list="form.receiving_voucher_filename">
:before-upload="beforeUpload"
:http-request="fetchFileUpload" >
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传excel文件</div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -94,29 +93,33 @@ ...@@ -94,29 +93,33 @@
<script> <script>
import AppCard from '@/components/base/AppCard.vue' import AppCard from '@/components/base/AppCard.vue'
import { payConfirm } from '../api' import { payConfirm, payDetail } from '../api'
import { splitStrLast } from '@/utils/util' // import { splitStrLast } from '@/utils/util'
export default { export default {
components: { AppCard }, components: { AppCard },
data() { data() {
return { return {
form: { form: {
commission: '', service_charge: '',
payStatus: '', payment_status: '',
date: '', receiving_time: '',
remark: '', taxpayer_remark: '',
document: '' receiving_voucher_filename: ''
}, },
rules: { rules: {
payStatus: [ payment_status: [
{ required: true, message: '请选择支付状态', trigger: 'change' } { required: true, message: '请选择支付状态', trigger: 'change' }
], ],
commission: [ service_charge: [
{ required: true, message: '请输入手续费', trigger: 'blur' }, { required: true, message: '请输入手续费', trigger: 'blur' },
{ min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' } { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
], ],
document: [ taxpayer_remark: [
{ required: true, message: '请输入备注', trigger: 'blur' },
{ min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
],
receiving_voucher_filename: [
{ required: true, message: '请上传到账凭证', trigger: 'change' } { required: true, message: '请上传到账凭证', trigger: 'change' }
] ]
}, },
...@@ -127,11 +130,11 @@ export default { ...@@ -127,11 +130,11 @@ export default {
// 列表配置 // 列表配置
tableOptions() { tableOptions() {
return { return {
remote: { // remote: {
// httpRequest: getOrderList, // 获取订单列表 // // httpRequest: getOrderList, // 获取订单列表
params: {}, // params: {},
beforeRequest: this.beforeRequest // beforeRequest: this.beforeRequest
}, // },
filters: [ filters: [
{ {
type: 'select', type: 'select',
...@@ -157,27 +160,26 @@ export default { ...@@ -157,27 +160,26 @@ export default {
} }
}, },
mounted() { mounted() {
this.dealPay() this.getPayDetail()
}, },
methods: { methods: {
beforeUpload(file) { getPayDetail() {
const suffix = splitStrLast(file.name, '.') payDetail().then(res => {
if (!['xlsx', 'xls'].includes(suffix)) { if (res.code === 0) {
this.$message.error('只能上传excel文件') this.project = res.data.list[0]
return false this.confirmDetail = res.data.list[0].confirmed_details[0]
} else { }
return true })
}
},
fetchFileUpload(data) {
const formData = new window.FormData()
formData.append('file', data.file)
this.importDisabled = true
}, },
dealPay() { dealPay() {
this.$refs.formRef.validate(valid => { this.$refs.formRef.validate(valid => {
if (valid) { if (valid) {
payConfirm().then(res => {}) payConfirm().then(res => {
if (res.code === 0) {
this.$message.success('支付已经到账')
history.go(-1)
}
})
} }
}) })
} }
......
...@@ -15,14 +15,11 @@ ...@@ -15,14 +15,11 @@
<app-card title="渠道信息"> <app-card title="渠道信息">
<Channel :dealList= "dealList" /> <Channel :dealList= "dealList" />
</app-card> </app-card>
<app-card title="商品信息">
<Commodity :dealList= "dealList" />
</app-card>
<app-card title="支付待确认记录"> <app-card title="支付待确认记录">
<Toconfirm :dealList= "dealList" /> <Toconfirm :dealList= "dealList" :id="this.id" />
</app-card> </app-card>
<app-card title="支付确认记录"> <app-card title="支付确认记录">
<Confirmed :dealList= "dealList" /> <Confirmed :dealList= "dealList" :id="this.id"/>
</app-card> </app-card>
</div> </div>
</template> </template>
...@@ -35,28 +32,29 @@ import Student from '../components/Student.vue' ...@@ -35,28 +32,29 @@ import Student from '../components/Student.vue'
import Collection from '../components/Collection.vue' import Collection from '../components/Collection.vue'
import Ticket from '../components/Ticket.vue' import Ticket from '../components/Ticket.vue'
import Channel from '../components/Channel.vue' import Channel from '../components/Channel.vue'
import Commodity from '../components/Commodity.vue'
import Toconfirm from '../components/Toconfirm.vue' import Toconfirm from '../components/Toconfirm.vue'
import Confirmed from '../components/Confirmed.vue' import Confirmed from '../components/Confirmed.vue'
import { payDetail } from '../api' import { payDetail } from '../api'
export default { export default {
components: { AppCard, Order, Student, Collection, Ticket, Channel, Commodity, Toconfirm, Confirmed }, components: { AppCard, Order, Student, Collection, Ticket, Channel, Toconfirm, Confirmed },
data() { data() {
return { return {
id: '', id: '',
detailList: {} dealList: {}
} }
}, },
created() { created() {
this.id = this.$route.params.id // 详情列表 this.id = this.$route.params.id // 详情列表
console.log(this.id + '---id')
// 获取发票详情信息 // 获取发票详情信息
this.fetchTicketDetail() this.fetchTicketDetail()
}, },
methods: { methods: {
fetchTicketDetail() { fetchTicketDetail() {
payDetail().then((res) => { const params = { id: this.id }
if (res.data === 0) { payDetail(params).then((res) => {
this.detailList = res.data if (res.code === 0) {
this.dealList = res.data.list[0]
} }
}) })
} }
......
...@@ -3,55 +3,59 @@ ...@@ -3,55 +3,59 @@
<table border="1" width="1200px" cellspacing="0"> <table border="1" width="1200px" cellspacing="0">
<tr> <tr>
<th>支付人姓名</th> <th>支付人姓名</th>
<td>额度无绯闻绯闻</td> <td>{{confirmDetail.name}}</td>
<th>费用类型</th> <th>费用类型</th>
<td>发呆发呆舒服</td> <td>{{confirmDetail.type}}</td>
<th>支付金额</th> <th>支付金额</th>
<td>发v郭德纲vb</td> <td>{{confirmDetail.amount}}</td>
<th>支付状态</th> <th>支付状态</th>
<td>发啊发恶风</td> <td>{{confirmDetail.payment_status}}</td>
</tr> </tr>
<tr> <tr>
<th>项目</th> <th>项目</th>
<td>书法色法俄吧v</td> <td>{{project.project_id}}</td>
<th>销售</th> <th>销售</th>
<td>反对党撒发色吧</td> <td>{{project.sales_rep_user_id_name}}</td>
<th>渠道</th> <th>渠道</th>
<td colspan="3">都是十分热啊</td> <td colspan="3">{{project.channel_id}}</td>
</tr> </tr>
<tr> <tr>
<th>支付方式</th> <th>支付方式</th>
<td>吧官方办法但是不管v</td> <td>{{confirmDetail.payment_method}}</td>
<th>其他支付方式</th> <th>其他支付方式</th>
<td>v地方v地方v </td> <td>{{confirmDetail.payment_method_others}} </td>
<th>支付时间</th> <th>支付时间</th>
<td colspan="3">电饭煲v地方吧</td> <td colspan="3">{{confirmDetail.payment_time}}</td>
</tr> </tr>
<tr> <tr>
<th>到账金额</th> <th>到账金额</th>
<td>发电站v博格达峰准备v</td> <td>{{confirmDetail.amount_received}}</td>
<th>手续费</th> <th>手续费</th>
<td>吧成功v不分手吧</td> <td>{{confirmDetail.service_charge}}</td>
<th>到账时间</th> <th>到账时间</th>
<td colspan="3">从v小板凳上早班v</td> <td colspan="3">{{confirmDetail.receiving_time}}</td>
</tr> </tr>
<tr> <tr>
<th>支付凭证</th> <th>支付凭证</th>
<td colspan="7">吧非常v表达方式吧 </td> <td colspan="7">
<img :src="confirmDetail.payment_voucher_filename" alt="">
</td>
</tr> </tr>
<tr> <tr>
<th>到账凭证</th> <th>到账凭证</th>
<td colspan="7">v的风格vx</td> <td colspan="7">
<img :src="confirmDetail.receiving_voucher_filename" alt="">
</td>
</tr> </tr>
<tr> <tr>
<th>备注</th> <th>备注</th>
<td colspan="7">饭店隔壁v额的烦不烦</td> <td colspan="7">{{confirmDetail.taxpayer_remark}}</td>
</tr> </tr>
<tr> <tr>
<th>创建时间</th> <th>创建时间</th>
<td colspan="3">奋斗让vv个多v</td> <td colspan="3">{{confirmDetail.created_time}}</td>
<th>更新时间</th> <th>更新时间</th>
<td colspan="3">百分之百政府公布 </td> <td colspan="3">{{confirmDetail.updated_time}}</td>
</tr> </tr>
</table> </table>
</el-card> </el-card>
...@@ -62,16 +66,23 @@ import { payDetail } from '../api' ...@@ -62,16 +66,23 @@ import { payDetail } from '../api'
export default { export default {
data() { data() {
return { return {
confirmDetail: {},
project: {},
id: ''
} }
}, },
mounted() { mounted() {
this.id = this.$route.params.id
this.getPayDetail() this.getPayDetail()
}, },
methods: { methods: {
getPayDetail() { getPayDetail() {
payDetail().then(res => { const params = { id: this.id }
payDetail(params).then(res => {
if (res.code === 0) {
this.project = res.data.list[0]
this.confirmDetail = res.data.list[0].confirmed_details[0]
}
}) })
} }
} }
...@@ -80,4 +91,4 @@ export default { ...@@ -80,4 +91,4 @@ export default {
<style> <style>
</style> </style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论