Commit ac78a234 authored by 沈翠玲's avatar 沈翠玲

客户信息

parent 78eadc82
......@@ -25,9 +25,9 @@
"date-fns": "^4.1.0",
"decimal.js": "^10.5.0",
"dotenv": "^16.4.5",
"element-plus": "^2.8.8",
"echarts": "^5.5.1",
"echarts-liquidfill": "^3.1.0",
"element-plus": "^2.8.8",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-define-config": "^2.1.0",
......@@ -64,6 +64,7 @@
"vite-plugin-lazy-import": "^1.0.7",
"vue": "^3.5.12",
"vue-router": "^4.5.0",
"vue3-print-nb": "^0.1.4",
"vxe-pc-ui": "^4.3.27",
"vxe-table": "^4.9.23",
"ws": "^8.18.0"
......
import request from '@/utils/http/index';
// 客户列表
export const getCustomerPage = (params) => {
return request.get('/customer/page', params);
};
// 保存客户
export const saveCustomer = (data) => {
return request.post('/customer/save', data);
};
// 根据id获取客户详情
export const getgetByIdCustomer = (id) => {
return request.get('/customer/getById?id=', id);
};
\ No newline at end of file
import { createApp } from 'vue';
import App from './App.vue';
import { setupStore } from '@/stores/index';
import router, { setupRouter } from '@/router/index';
import { setupElementPlus } from '@/plugins/element-plus';
......@@ -8,10 +7,10 @@ import { setupDirectives } from '@/plugins/directives';
import { setupVxeTabele } from './plugins/vxe-table';
import ProTable from '@/components/ProTable/index.vue';
import Tag from '@/components/Tag/index.vue';
import print from 'vue3-print-nb'
import { download } from '@/utils/http/index';
export async function bootstrapInstall() {
const app = createApp(App);
// 挂载状态管理
setupStore(app);
......@@ -26,6 +25,7 @@ export async function bootstrapInstall() {
// 挂载路由
setupRouter(app);
app.directive('print', print)
app.component('ProTable', ProTable);
app.component('Tag', Tag);
app.provide('download', download);
......
<template>
<tr>
<td colspan="10" style="background: #bdd6ec;color: #db0039;text-align:left">信用卡网贷状况统计*(涉及金额部分单位为:元)</td>
</tr>
<tr>
<td>信用卡数量</td>
<td colspan="9"></td>
</tr>
<tr>
<td>序号</td>
<td>发卡银行</td>
<td>授信额度</td>
<td>已用额度</td>
<td>合计欠款金额</td>
<td>大额专项<br/>欠款金额</td>
<td>逾期期数</td>
<td>近6个月<br/>平均使用额度</td>
<td>有无<br/>协商方案</td>
<td>卡片状态<br/>逾期/正常</td>
</tr>
<tr>
<td>第1张</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>信用卡欠款合计</td>
<td colspan="9"></td>
</tr>
<tr>
<td>信用贷、网贷机构数量</td>
<td colspan="9"></td>
</tr>
<tr>
<td rowspan="2">序号</td>
<td rowspan="2" colspan="2">贷款机构</td>
<td rowspan="2" colspan="2">审批额度</td>
<td rowspan="2">贷款笔数</td>
<td rowspan="2">贷款期数</td>
<td rowspan="2">已还期数</td>
<td rowspan="2">未还金额</td>
<td>状态</td>
</tr>
<tr>
<td>逾期/正常</td>
</tr>
<tr>
<td>第1家</td>
<td colspan="2"></td>
<td colspan="2"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>信用贷、网贷欠款合计</td>
<td colspan="9"></td>
</tr>
<tr>
<td>合计欠款总额</td>
<td colspan="9"></td>
</tr>
<tr>
<td>服务费金额</td>
<td colspan="2"></td>
<td colspan="2">分期服务费金额</td>
<td colspan="2"></td>
<td>收款人</td>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="10" style="text-align:left">以上所诉个人信息均为本人填写且确认真实准确               签字按手印:
</td>
</tr>
</template>
<script setup lang="jsx" name="caseDetail">
const props = defineProps({
data: Object
})
</script>
<style lang="scss" scoped>
table {
width: calc(100%);
border-collapse: collapse;
}
td {
border: 1px solid #000;
background: #fff;
width: 240px;
line-height: 11px;
height: 40px;
font-size: 14px;
padding-left: 5px;
color: #000;
text-align: center;
-webkit-print-color-adjust: exact;
&.label {
-webkit-print-color-adjust: exact;
background-color: rgb(222, 233, 244);
font-weight: 400 !important;
}
}
</style>
\ No newline at end of file
<template>
<tr>
<td class="label" colspan="3">收单单位</td>
<td colspan="4"></td>
<td class="label">收单时间</td>
<td colspan="2"></td>
</tr>
<tr>
<td class="label" colspan="3">录入人</td>
<td colspan="3">{{form.inputUserName}}</td>
<td class="label">推荐人</td>
<td colspan="3">{{form.referee}}</td>
</tr>
<tr>
<td class="label" colspan="3">部门</td>
<td colspan="3">{{form.referee}}</td>
<td class="label">角色</td>
<td colspan="3">{{form.inputRole}}</td>
</tr>
<tr>
<td class="label" colspan="3">姓名</td>
<td class="label">年龄</td>
<td colspan="2" class="label">身份证号</td>
<td class="label">属相</td>
<td class="label">婚姻状况</td>
<td colspan="2" class="label">电话</td>
</tr>
<tr>
<td colspan="3">{{form.name}}</td>
<td>{{form.age}}</td>
<td colspan="2">{{form.idCard}}</td>
<td>{{form.zodiac}}</td>
<td>{{form.marriage}}</td>
<td colspan="2">{{form.phone}}</td>
</tr>
<tr>
<td class="label" colspan="3">学历</td>
<td class="label">职业</td>
<td colspan="2" class="label">电子邮箱</td>
<td class="label">月收入</td>
<td class="label">预留工作单位</td>
<td colspan="2" class="label">预留家庭住址</td>
</tr>
<tr>
<td colspan="3">{{form.qualification}}</td>
<td>{{form.career}}</td>
<td colspan="2">{{form.email}}</td>
<td>{{form.monthlyIncome}}</td>
<td>{{form.reserveWorkUnit}}</td>
<td colspan="2">{{form.reserveAddress}}</td>
</tr>
<tr>
<td rowspan="2" class="label" colspan="3">起诉案件</td>
<td rowspan="2" class="label">案件类型</td>
<td rowspan="2" class="label">打卡收入</td>
<td rowspan="2" class="label">打卡银行</td>
<td colspan="2" class="label"></td>
<td colspan="2" class="label">夫妻房产</td>
</tr>
<tr>
<td class="label">数量</td>
<td class="label">市值</td>
<td class="label">数量(套)</td>
<td class="label">市值</td>
</tr>
<tr>
<td colspan="3">{{form.sueCaseId}}</td>
<td>{{form.caseType}}</td>
<td>{{form.checkInIncome}}</td>
<td>{{form.checkInBank}}</td>
<td>{{form.carNum}}</td>
<td>{{form.carPrice}}</td>
<td>{{form.houseNum}}</td>
<td>{{form.housePrice}}</td>
</tr>
<tr>
<td class="label" colspan="3">公积金及金额</td>
<td colspan="2" class="label">理财型保单 、股票 、基金 、大额存款</td>
<td class="label">是否有营业执照</td>
<td class="label">子女工作是否需要政审</td>
<td class="label">贷款类型</td>
<td class="label" colspan="2">备注<br />(个人情况说明)</td>
</tr>
<tr>
<td colspan="3">{{form.providentFund}}</td>
<td colspan="2">{{form.insurance}}</td>
<td>{{form.hasBusinessLicense}}</td>
<td>{{form.needPoliticalReview}}</td>
<td>{{form.hasLoan}}</td>
<td colspan="2">{{form.remark}}</td>
</tr>
</template>
<script setup lang="jsx" name="caseDetail">
const props = defineProps({
data: Object
})
</script>
<style lang="scss" scoped>
table {
width: calc(100%);
border-collapse: collapse;
}
td {
border: 1px solid #000;
background: #fff;
width: 240px;
line-height: 11px;
height: 40px;
font-size: 14px;
padding-left: 5px;
color: #000;
&.label {
text-align: center;
-webkit-print-color-adjust: exact;
background-color: rgb(222, 233, 244);
font-weight: 400 !important;
}
}
</style>
\ No newline at end of file
<template>
<div class="table-box">
<ProTable ref="proTable" :config="config" :api="getPlatformPage" :paramCallback="paramCallback" :selectdList="selectdList">
<ProTable ref="proTable" :config="config" :api="getCustomerPage" :paramCallback="paramCallback" :selectdList="selectdList">
<template #left_buttons>
<!-- <el-button type="primary" :disabled="!selectdList || selectdList.length < 1" @click="pushCreditcard">新建信用卡</el-button> -->
<!-- <el-button type="primary" @click="pushCredit">新建信用卡</el-button>
......@@ -20,7 +20,7 @@
<script setup lang="jsx" name="platformManage">
import { ref, reactive, onMounted } from 'vue';
import { Plus, Delete, Edit, Setting } from '@element-plus/icons-vue';
import { getPlatformPage, deletePlatforms } from '@/api/platform';
import { getCustomerPage } from '@/api/customer';
import { ElMessageBox, ElMessage, ElButton, ElTag } from 'element-plus';
import { useRouter } from 'vue-router';
......@@ -94,11 +94,11 @@
search: { el: 'input',labelWidth: 85, props: { clearable: true } },
},
{ field: 'name', title: '客户名称', search: { labelWidth: 85, el: 'input' } },
{ field: 'name', title: '身份证号', search: { labelWidth: 85, el: 'input' } },
{ field: 'name', title: '手机', search: { labelWidth: 85, el: 'input' } },
{ field: 'name', title: '电子邮箱', search: { labelWidth: 85, el: 'input' } },
{ field: 'maxStagesNum', title: '预留工作单位', search: { labelWidth: 85, el: 'input' } },
{ field: 'maxStagesNum', title: '预留家庭地址', search: { labelWidth: 85, el: 'input' } },
{ field: 'idCard', title: '身份证号', search: { labelWidth: 85, el: 'input' } },
{ field: 'phone', title: '手机', search: { labelWidth: 85, el: 'input' } },
{ field: 'email', title: '电子邮箱', search: { labelWidth: 85, el: 'input' } },
{ field: 'reserveWorkUnit', title: '预留工作单位', search: { labelWidth: 85, el: 'input' } },
{ field: 'reserveAddress', title: '预留家庭地址', search: { labelWidth: 85, el: 'input' } },
{ field: 'remark', title: '备注', search: { labelWidth: 85, el: 'input' } },
],
});
......
......@@ -1654,6 +1654,11 @@ debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3
dependencies:
ms "^2.1.3"
decimal.js@^10.5.0:
version "10.5.0"
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22"
integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
......@@ -1800,6 +1805,19 @@ eastasianwidth@^0.2.0:
resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
echarts-liquidfill@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/echarts-liquidfill/-/echarts-liquidfill-3.1.0.tgz#4ec70f3697382d0404c95fff9f3e8dd85c8377da"
integrity sha512-5Dlqs/jTsdTUAsd+K5LPLLTgrbbNORUSBQyk8PSy1Mg2zgHDWm83FmvA4s0ooNepCJojFYRITTQ4GU1UUSKYLw==
echarts@^5.5.1:
version "5.6.0"
resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6"
integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
dependencies:
tslib "2.3.0"
zrender "5.6.1"
ejs@^3.1.6:
version "3.1.10"
resolved "https://registry.npmmirror.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
......@@ -4021,6 +4039,11 @@ ts-interface-checker@^0.1.9:
resolved "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
tslib@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tslib@^2.0.3, tslib@^2.6.2:
version "2.8.1"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
......@@ -4211,7 +4234,14 @@ vue-router@^4.5.0:
dependencies:
"@vue/devtools-api" "^6.6.4"
vue@^3.5.12, vue@^3.5.13:
vue3-print-nb@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz#11ee3ef8857c34b403fb782da722e82ab7e20952"
integrity sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==
dependencies:
vue "^3.0.5"
vue@^3.0.5, vue@^3.5.12, vue@^3.5.13:
version "3.5.13"
resolved "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==
......@@ -4325,3 +4355,10 @@ yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zrender@5.6.1:
version "5.6.1"
resolved "https://registry.yarnpkg.com/zrender/-/zrender-5.6.1.tgz#e08d57ecf4acac708c4fcb7481eb201df7f10a6b"
integrity sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==
dependencies:
tslib "2.3.0"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment