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

客户信息

parent 78eadc82
...@@ -25,9 +25,9 @@ ...@@ -25,9 +25,9 @@
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"decimal.js": "^10.5.0", "decimal.js": "^10.5.0",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",
"element-plus": "^2.8.8",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"echarts-liquidfill": "^3.1.0", "echarts-liquidfill": "^3.1.0",
"element-plus": "^2.8.8",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"eslint-define-config": "^2.1.0", "eslint-define-config": "^2.1.0",
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
"vite-plugin-lazy-import": "^1.0.7", "vite-plugin-lazy-import": "^1.0.7",
"vue": "^3.5.12", "vue": "^3.5.12",
"vue-router": "^4.5.0", "vue-router": "^4.5.0",
"vue3-print-nb": "^0.1.4",
"vxe-pc-ui": "^4.3.27", "vxe-pc-ui": "^4.3.27",
"vxe-table": "^4.9.23", "vxe-table": "^4.9.23",
"ws": "^8.18.0" "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 { createApp } from 'vue';
import App from './App.vue'; import App from './App.vue';
import { setupStore } from '@/stores/index'; import { setupStore } from '@/stores/index';
import router, { setupRouter } from '@/router/index'; import router, { setupRouter } from '@/router/index';
import { setupElementPlus } from '@/plugins/element-plus'; import { setupElementPlus } from '@/plugins/element-plus';
...@@ -8,10 +7,10 @@ import { setupDirectives } from '@/plugins/directives'; ...@@ -8,10 +7,10 @@ import { setupDirectives } from '@/plugins/directives';
import { setupVxeTabele } from './plugins/vxe-table'; import { setupVxeTabele } from './plugins/vxe-table';
import ProTable from '@/components/ProTable/index.vue'; import ProTable from '@/components/ProTable/index.vue';
import Tag from '@/components/Tag/index.vue'; import Tag from '@/components/Tag/index.vue';
import print from 'vue3-print-nb'
import { download } from '@/utils/http/index'; import { download } from '@/utils/http/index';
export async function bootstrapInstall() { export async function bootstrapInstall() {
const app = createApp(App); const app = createApp(App);
// 挂载状态管理 // 挂载状态管理
setupStore(app); setupStore(app);
...@@ -26,6 +25,7 @@ export async function bootstrapInstall() { ...@@ -26,6 +25,7 @@ export async function bootstrapInstall() {
// 挂载路由 // 挂载路由
setupRouter(app); setupRouter(app);
app.directive('print', print)
app.component('ProTable', ProTable); app.component('ProTable', ProTable);
app.component('Tag', Tag); app.component('Tag', Tag);
app.provide('download', download); app.provide('download', download);
......
...@@ -15,99 +15,119 @@ ...@@ -15,99 +15,119 @@
<el-button type="primary" @click="submitForm">保存</el-button> <el-button type="primary" @click="submitForm">保存</el-button>
</template> </template>
<el-button type="primary" @click="showEdit = true" v-if="currentRow">修改</el-button> <el-button type="primary" @click="showEdit = true" v-if="currentRow">修改</el-button>
<el-button type="danger" @click="delItem" v-if="currentRow">删除</el-button>
</div> </div>
<div class="w-full"> <div class="w-full">
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td class="label">贷款机构</td> <td class="label">贷款机构</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.loanPlatform" placeholder="" :disabled="!showEdit"/></td>
<td class="label">贷款所属银行名称</td> <td class="label">贷款所属银行名称</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.bank" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">网贷状态(正常/逾期)</td> <td class="label">网贷状态(正常/逾期)</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2">
<el-select v-model="form.loanStatus" class="line-input" placeholder="" :disabled="!showEdit">
<el-option
:label="item.label"
v-for="(item, index) in LoanStatus" :key="index"
:value="item.value"
/>
</el-select>
</td>
<td class="label">贷款审批额度</td> <td class="label">贷款审批额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2"><el-input class="line-input" v-model="form.quota" placeholder="" :disabled="!showEdit" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">网贷类型</td> <td class="label">网贷类型</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2"><el-input class="line-input" v-model="form.lendingType" placeholder="" :disabled="!showEdit" /></td>
<td class="label">还款方式</td> <td class="label">还款方式</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.repayType" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">欠款金额</td> <td class="label">欠款金额</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2"><el-input class="line-input" v-model="form.debt" placeholder="" :disabled="!showEdit" type="number"/></td>
<td class="label">贷款到账金额</td> <td class="label">贷款到账金额</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.receivedAmount" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">贷款期数</td> <td class="label">贷款期数</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.period" placeholder="" :disabled="!showEdit"/></td>
<td class="label">已还期数</td> <td class="label">已还期数</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="请填写每笔贷款还款情况,例如共借款一笔,已还9期,共12期,请填写9/12" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.repayPeriod" placeholder="请填写每笔贷款还款情况,例如共借款一笔,已还9期,共12期,请填写9/12" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">贷款笔数</td> <td class="label">贷款笔数</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.lendingNum" placeholder="" :disabled="!showEdit"/></td>
<td class="label">逾期数期</td> <td class="label">逾期数期</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.beOverduePeriod" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">是否被代偿或起诉</td> <td class="label">是否被代偿或起诉</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2">
<el-radio-group v-model="form.hasSue" :disabled="!showEdit">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group></td>
<td class="label">还款日</td> <td class="label">还款日</td>
<td colspan="2"> <td colspan="2">
<el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <el-input class="line-input" v-model="form.repayDate" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">代扣银行及卡号</td> <td class="label">代扣银行及卡号</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.bankCard" placeholder="" :disabled="!showEdit"/></td>
<td class="label">贷款支付密码</td> <td class="label">贷款支付密码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.payPassword" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">最后一次还款时间</td> <td class="label">最后一次还款时间</td>
<td colspan="2"><el-date-picker <td colspan="2"><el-date-picker
v-model="form.trackTime" v-model="form.lastRepaymentDate"
:disabled="!showEdit" :disabled="!showEdit"
class="line-input" style="width: 100%" class="line-input"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
type="date" type="date"
/></td> /></td>
<td class="label">最后一次还款金额</td> <td class="label">最后一次还款金额</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.lastRepaymentAmount" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">贷款担保人姓名</td> <td class="label">贷款担保人姓名</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.guarantorName" placeholder="" :disabled="!showEdit"/></td>
<td class="label">贷款担保人关系</td> <td class="label">贷款担保人关系</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">贷款担保人联系方式</td> <td class="label">贷款担保人联系方式</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.guarantorPhone" placeholder="" :disabled="!showEdit"/></td>
<td class="label">紧急联系人姓名</td> <td class="label">紧急联系人姓名</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.liaisonName" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">银行预留手机号码</td> <td class="label">银行预留手机号码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.bankPhone" placeholder="" :disabled="!showEdit"/></td>
<td class="label">催收情况</td> <td class="label">催收情况</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.collectionDesc" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">逾期后是否有过协商方案</td> <td class="label">逾期后是否有过协商方案</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="请填写有/无" :disabled="!showEdit"/></td> <td colspan="2">
<el-radio-group v-model="form.hasNegotiateCase" :disabled="!showEdit">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group></td>
<td class="label">负债情况</td> <td class="label">负债情况</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.liabilities" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">是否连续还款</td> <td class="label">是否连续还款</td>
<td colspan="5"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="5"><el-radio-group v-model="form.hasContinuousRepay" :disabled="!showEdit">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -118,11 +138,13 @@ ...@@ -118,11 +138,13 @@
<script setup name="credit"> <script setup name="credit">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { useDict } from '@/hooks/useDict';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
const showEdit = ref(false); const showEdit = ref(false);
const showModal = ref(false); const showModal = ref(false);
const emits = defineEmits(['success']); const emits = defineEmits(['success']);
const currentRow = ref(null); const currentRow = ref(null);
const { LoanStatus } = useDict("LoanStatus");
const currentIndex = ref(null); const currentIndex = ref(null);
const props = defineProps({ const props = defineProps({
mergerCase: String, mergerCase: String,
...@@ -130,13 +152,82 @@ ...@@ -130,13 +152,82 @@
returnData: Array returnData: Array
}); });
const form = ref({ const form = ref({
roleName: '', "tradeUnit": "",
roleCode: '', "tradeTime": "",
roleDesc: '', "loanPlatform": "",
"bank": "",
"loanStatus": "",
"quota": 0,
"lendingType": "",
"repayType": "",
"debt": 0,
"receivedAmount": 0,
"period": 0,
"repayPeriod": 0,
"lendingNum": 0,
"beOverduePeriod": 0,
"hasSue": "",
"repayDate": "",
"bankCard": "",
"payPassword": "",
"lastRepaymentDate": "",
"lastRepaymentAmount": 0,
"guarantorName": "",
"guarantorPhone": "",
"liaisonName": "",
"liaisonPhone": "",
"bankPhone": "",
"collectionDesc": "",
"hasNegotiateCase": "",
"liabilities": "",
"hasContinuousRepay": ""
}); });
const submitForm = async () => { const submitForm = async () => {
if(!form.value.loanPlatform && form.value.loanPlatform!== 0) {
return ElMessage.warning({
message: '请填写贷款机构',
plain: true,
});
}
if(!form.value.quota && form.value.quota!== 0) {
return ElMessage.warning({
message: '请填写贷款审批额度',
plain: true,
});
}
if(!form.value.lendingNum && form.value.lendingNum!== 0) {
return ElMessage.warning({
message: '请填写贷款笔数',
plain: true,
});
}
if(!form.value.period && form.value.period!== 0) {
return ElMessage.warning({
message: '请填写贷款期数',
plain: true,
});
}
if(!form.value.repayPeriod && form.value.repayPeriod!== 0) {
return ElMessage.warning({
message: '请填写已还期数',
plain: true,
});
}
if(!form.value.debt && form.value.debt!== 0) {
return ElMessage.warning({
message: '请填写欠款金额',
plain: true,
});
}
if(!form.value.loanStatus && form.value.loanStatus!== 0) {
return ElMessage.warning({
message: '请选择网贷状态',
plain: true,
});
}
showEdit.value = false showEdit.value = false
emits('success', currentRow.value, currentIndex.value); showModal.value = false;
emits('success', form.value, currentIndex.value);
}; };
const openModal = (row, index) => { const openModal = (row, index) => {
if (row) { if (row) {
...@@ -145,15 +236,45 @@ ...@@ -145,15 +236,45 @@
} else { } else {
showEdit.value = true showEdit.value = true
form.value = { form.value = {
roleName: '', "tradeUnit": "",
roleCode: '', "tradeTime": "",
roleDesc: '', "loanPlatform": "",
"bank": "",
"loanStatus": "",
"quota": 0,
"lendingType": "",
"repayType": "",
"debt": 0,
"receivedAmount": 0,
"period": 0,
"repayPeriod": 0,
"lendingNum": 0,
"beOverduePeriod": 0,
"hasSue": "",
"repayDate": "",
"bankCard": "",
"payPassword": "",
"lastRepaymentDate": "",
"lastRepaymentAmount": 0,
"guarantorName": "",
"guarantorPhone": "",
"liaisonName": "",
"liaisonPhone": "",
"bankPhone": "",
"collectionDesc": "",
"hasNegotiateCase": "",
"liabilities": "",
"hasContinuousRepay": ""
} }
} }
currentRow.value = row currentRow.value = row
currentIndex.value = index currentIndex.value = index
showModal.value = true; showModal.value = true;
}; };
const delItem = () => {
emits('success', form.value, currentIndex.value, 'del');
showModal.value = false;
}
defineExpose({ defineExpose({
openModal, openModal,
}); });
......
...@@ -15,16 +15,17 @@ ...@@ -15,16 +15,17 @@
<el-button type="primary" @click="submitForm">保存</el-button> <el-button type="primary" @click="submitForm">保存</el-button>
</template> </template>
<el-button type="primary" @click="showEdit = true" v-if="currentRow">修改</el-button> <el-button type="primary" @click="showEdit = true" v-if="currentRow">修改</el-button>
<el-button type="danger" @click="delItem" v-if="currentRow">删除</el-button>
</div> </div>
<div class="w-full"> <div class="w-full">
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td class="label">发卡银行</td> <td class="label">发卡银行</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.bank" placeholder="" :disabled="!showEdit"/></td>
<td class="label">开户时间</td> <td class="label">开户时间</td>
<td colspan="2"><el-date-picker <td colspan="2"><el-date-picker
v-model="form.trackTime" class="line-input" style="width: 100%" v-model="form.issuanceDate" class="line-input" style="width: 100%"
:disabled="!showEdit" :disabled="!showEdit"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
...@@ -33,43 +34,60 @@ ...@@ -33,43 +34,60 @@
</tr> </tr>
<tr> <tr>
<td class="label">卡号</td> <td class="label">卡号</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2"><el-input class="line-input" v-model="form.card" placeholder="" :disabled="!showEdit" /></td>
<td class="label">卡片状态(正常/逾期)</td> <td class="label">卡片状态(正常/逾期)</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2">
<el-select v-model="form.creditCardStatus" class="line-input" placeholder="" :disabled="!showEdit">
<el-option
:label="item.label"
v-for="(item, index) in LoanStatus" :key="index"
:value="item.value"
/>
</el-select>
</td>
</tr> </tr>
<tr> <tr>
<td class="label">授信额度</td> <td class="label">授信额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2"><el-input class="line-input" v-model="form.quota" placeholder="" :disabled="!showEdit" /></td>
<td class="label">已用额度</td> <td class="label">已用额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.usedQuota" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">近6个月平均使用额度</td> <td class="label">近6个月平均使用额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td> <td colspan="2"><el-input class="line-input" v-model="form.sixDevUsedQuota" placeholder="" :disabled="!showEdit" /></td>
<td class="label">当前欠款金额</td> <td class="label">当前欠款金额</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.debt" type="number" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">逾期期数</td> <td class="label">逾期期数</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.beOverduePeriod" placeholder="" :disabled="!showEdit"/></td>
<td class="label">逾期后是否有过协商</td> <td class="label">逾期后是否有过协商</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-radio-group v-model="form.hasNegotiate" :disabled="!showEdit">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group></td>
</tr> </tr>
<tr> <tr>
<td class="label">有无分期</td> <td class="label">有无分期</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-radio-group v-model="form.hasStages" :disabled="!showEdit">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group></td>
<td class="label">有无协商方案</td> <td class="label">有无协商方案</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="请填写有/无" :disabled="!showEdit"/></td> <td colspan="2"><el-radio-group v-model="form.hasNegotiateCase" :disabled="!showEdit">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group></td>
</tr> </tr>
<tr> <tr>
<td class="label">查询密码</td> <td class="label">查询密码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.queryPassword" placeholder="" :disabled="!showEdit"/></td>
<td class="label">最后一次还款时间</td> <td class="label">最后一次还款时间</td>
<td colspan="2"> <td colspan="2">
<el-date-picker <el-date-picker
v-model="form.trackTime" v-model="form.lastRepaymentDate"
:disabled="!showEdit" :disabled="!showEdit"
class="line-input" style="width: 100%" class="line-input"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
type="date" type="date"
...@@ -77,24 +95,27 @@ ...@@ -77,24 +95,27 @@
</tr> </tr>
<tr> <tr>
<td class="label">支付密码</td> <td class="label">支付密码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.payPassword" placeholder="" :disabled="!showEdit"/></td>
<td class="label">最后一次还款金额</td> <td class="label">最后一次还款金额</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.lastRepaymentAmount" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">是否有大额专项分期额度</td> <td class="label">是否有大额专项分期额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-radio-group v-model="form.hasBigQuotaStages" :disabled="!showEdit">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group></td>
<td class="label">大额专项分期借款种类</td> <td class="label">大额专项分期借款种类</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.bigQuotaType" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">大额专项分期额度</td> <td class="label">大额专项分期额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.bigQuotaStagesAmount" placeholder="" :disabled="!showEdit"/></td>
<td class="label">大额专项分期开立日期</td> <td class="label">大额专项分期开立日期</td>
<td colspan="2"><el-date-picker <td colspan="2"><el-date-picker
v-model="form.trackTime" v-model="form.bigQuotaStagesDate"
:disabled="!showEdit" :disabled="!showEdit"
class="line-input" style="width: 100%" class="line-input"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
type="date" type="date"
...@@ -103,27 +124,27 @@ ...@@ -103,27 +124,27 @@
<tr> <tr>
<td class="label">大额专项分期到期日期</td> <td class="label">大额专项分期到期日期</td>
<td colspan="2"><el-date-picker <td colspan="2"><el-date-picker
v-model="form.trackTime" v-model="form.bigQuotaStagesExpireDate"
:disabled="!showEdit" :disabled="!showEdit"
class="line-input" style="width: 100%" class="line-input"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
type="date" type="date"
/></td> /></td>
<td class="label">大额专项分期已还期数</td> <td class="label">大额专项分期已还期数</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.bigQuotaRepayPeriod" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">银行预留手机号码</td> <td class="label">银行预留手机号码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.phone" placeholder="" :disabled="!showEdit"/></td>
<td class="label">银行预留家庭地址</td> <td class="label">银行预留家庭地址</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.address" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
<tr> <tr>
<td class="label">银行预留紧急联系人姓名</td> <td class="label">银行预留紧急联系人姓名</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.liaisonName" placeholder="" :disabled="!showEdit"/></td>
<td class="label">银行预留紧急联系人电话</td> <td class="label">银行预留紧急联系人电话</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td> <td colspan="2"><el-input class="line-input" v-model="form.liaisonPhone" placeholder="" :disabled="!showEdit"/></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -134,9 +155,11 @@ ...@@ -134,9 +155,11 @@
<script setup name="credit"> <script setup name="credit">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { useDict } from '@/hooks/useDict';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
const showEdit = ref(false); const showEdit = ref(false);
const showModal = ref(false); const showModal = ref(false);
const { LoanStatus } = useDict("LoanStatus");
const emits = defineEmits(['success']); const emits = defineEmits(['success']);
const currentRow = ref(null); const currentRow = ref(null);
const currentIndex = ref(null); const currentIndex = ref(null);
...@@ -146,14 +169,98 @@ ...@@ -146,14 +169,98 @@
returnData: Array returnData: Array
}); });
const form = ref({ const form = ref({
roleName: '', "bank": "",
roleCode: '', "issuanceDate": "",
roleDesc: '', "card": "",
"creditCardStatus": "",
"quota": 0,
"usedQuota": 0,
"sixDevUsedQuota": 0,
"debt": 0,
"beOverduePeriod": 0,
"hasNegotiate": "",
"hasStages": "",
"hasNegotiateCase": "",
"negotiateCase": "",
"queryPassword": "",
"payPassword": "",
"lastRepaymentDate": "",
"lastRepaymentAmount": 0,
"hasBigQuotaStages": "",
"bigQuotaType": "",
"bigQuotaStagesAmount": 0,
"bigQuotaStagesDate": "",
"bigQuotaStagesExpireDate": "",
"bigQuotaRepayPeriod": 0,
"phone": "",
"address": "",
"liaisonName": "",
"liaisonPhone": ""
}); });
const submitForm = async () => { const submitForm = async () => {
if(!form.value.bank && form.value.bank !== 0) {
return ElMessage.warning({
message: '请填写发卡银行',
plain: true,
});
}
if(!form.value.quota && form.value.quota !== 0) {
return ElMessage.warning({
message: '请填写授信额度',
plain: true,
});
}
if(!form.value.usedQuota && form.value.usedQuota !== 0) {
return ElMessage.warning({
message: '请填写已用额度',
plain: true,
});
}
if(!form.value.debt && form.value.debt !== 0) {
return ElMessage.warning({
message: '请填写当前欠款金额',
plain: true,
});
}
if(!form.value.bigQuotaStagesAmount && form.value.bigQuotaStagesAmount!== 0) {
return ElMessage.warning({
message: '请填写大额专项分期额度',
plain: true,
});
}
if(!form.value.beOverduePeriod && form.value.beOverduePeriod!== 0) {
return ElMessage.warning({
message: '请填写逾期期数',
plain: true,
});
}
if(!form.value.sixDevUsedQuota&& form.value.sixDevUsedQuota!== 0) {
return ElMessage.warning({
message: '请填写近6个月平均使用额度',
plain: true,
});
}
if(!form.value.hasNegotiate&& form.value.hasNegotiate!== 0) {
return ElMessage.warning({
message: '请选择逾期后是否有过协商',
plain: true,
});
}
if(!form.value.creditCardStatus&& form.value.creditCardStatus!== 0) {
return ElMessage.warning({
message: '请选择卡片状态',
plain: true,
});
}
showEdit.value = false showEdit.value = false
emits('success', currentRow.value, currentIndex.value); showModal.value = false;
emits('success', form.value, currentIndex.value);
}; };
const delItem = () => {
emits('success', form.value, currentIndex.value, 'del');
showModal.value = false;
}
const openModal = (row, index) => { const openModal = (row, index) => {
if (row) { if (row) {
showEdit.value = false showEdit.value = false
...@@ -161,9 +268,33 @@ ...@@ -161,9 +268,33 @@
} else { } else {
showEdit.value = true showEdit.value = true
form.value = { form.value = {
roleName: '', "bank": "",
roleCode: '', "issuanceDate": "",
roleDesc: '', "card": "",
"creditCardStatus": "",
"quota": 0,
"usedQuota": 0,
"sixDevUsedQuota": 0,
"debt": 0,
"beOverduePeriod": 0,
"hasNegotiate": "",
"hasStages": "",
"hasNegotiateCase": "",
"negotiateCase": "",
"queryPassword": "",
"payPassword": "",
"lastRepaymentDate": "",
"lastRepaymentAmount": 0,
"hasBigQuotaStages": "",
"bigQuotaType": "",
"bigQuotaStagesAmount": 0,
"bigQuotaStagesDate": "",
"bigQuotaStagesExpireDate": "",
"bigQuotaRepayPeriod": 0,
"phone": "",
"address": "",
"liaisonName": "",
"liaisonPhone": ""
} }
} }
currentRow.value = row currentRow.value = row
......
<template> <template>
<div class="card table-box" style="padding: 0 40px"> <div class="card table-box" style="padding: 0 40px">
<div class="flex justify-end mt-2"> <div class="flex justify-end mt-2">
<el-button type="primary" @click="submit()" v-if="route.query.id">保存</el-button> <!-- <template> -->
<el-button type="warning" plain size="mini" v-print="printContent" id="printbtn" style="display: none"
>打印客户详情
</el-button>
<el-button type="warning" plain size="mini" id="printbtn" @click="handlePrint"
>打印客户详情
</el-button>
<!-- </template> -->
<el-button type="primary" @click="submit()">保存</el-button>
<!-- <template v-if="route.query.id"> -->
</div> </div>
<p class=" text-lg text-center mb-5">客户信息</p> <p class=" text-lg text-center mb-5">客户信息</p>
<div class=" text-xs flex justify-around"><span class=" ml-5">收单单位:</span><span class=" ml-5">收单时间:</span></div> <!-- <div class=" text-xs flex justify-around"><span class=" ml-5">收单单位:</span><span class=" ml-5">收单时间:</span></div> -->
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td class="label">录入人</td> <td class="label">录入人</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.inputUserName" placeholder="" /></td>
<td class="label">推荐人</td> <td class="label">推荐人</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.referee" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">部门</td> <td class="label">部门</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.inputOrg" placeholder="" /></td>
<td class="label">角色</td> <td class="label">角色</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.inputRole" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">姓名</td> <td class="label">姓名</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.name" placeholder="" /></td>
<td class="label">年龄</td> <td class="label">年龄</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.age" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">身份证号</td> <td class="label">身份证号</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.idCard" placeholder="" /></td>
<td class="label">属相</td> <td class="label">属相</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.zodiac" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">婚姻状况</td> <td class="label">婚姻状况</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.marriage" placeholder="" /></td>
<td class="label">电话</td> <td class="label">电话</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.phone" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">学历</td> <td class="label">学历</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.qualification" placeholder="" /></td>
<td class="label">职业</td> <td class="label">职业</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.career" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">是否为公检法系统人员、教师、医生、律师、企业法人</td> <td class="label">是否为公检法系统人员、教师、医生、律师、企业法人</td>
<td colspan="2"> <td colspan="2">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.functionary">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group></td> </el-radio-group></td>
<td class="label">如职业为企事业单位人员是否同意催收</td> <td class="label">如职业为企事业单位人员是否同意催收</td>
<td colspan="2"><el-radio-group v-model="form.status"> <td colspan="2"><el-radio-group v-model="form.collection">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group><br /> </el-radio-group><br />
企事业单位的需客户本人同意纪委联系与谈话、去单位或者给单位打电话催收</td> 企事业单位的需客户本人同意纪委联系与谈话、去单位或者给单位打电话催收</td>
</tr> </tr>
<tr> <tr>
<td class="label">电子邮箱</td> <td class="label">电子邮箱</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.email" placeholder="" /></td>
<td class="label">月收入</td> <td class="label">月收入</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.monthlyIncome" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">预留工作单位</td> <td class="label">预留工作单位</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.reserveWorkUnit" placeholder="" /></td>
<td class="label">预留家庭住址</td> <td class="label">预留家庭住址</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.reserveAddress" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">是否有起诉案件</td> <td class="label">是否有起诉案件</td>
<td colspan="2"> <td colspan="2">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.sueCaseId">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
<td class="label">案件描述</td> <td class="label">案件描述</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.caseType" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">打卡收入</td> <td class="label">打卡收入</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.checkInIncome" placeholder="" /></td>
<td class="label">打卡银行</td> <td class="label">打卡银行</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.checkInBank" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">打卡银行和借款银行是否为同一银行</td> <td class="label">打卡银行和借款银行是否为同一银行</td>
<td colspan="5"> <td colspan="5">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.borrowCheckInBank">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="label" rowspan="2">个人及夫妻名下车辆</td> <td class="label" rowspan="2">个人及夫妻名下车辆</td>
<td class="label">数量</td> <td class="label">数量</td>
<td ><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td ><el-input class="line-input" v-model="form.carNum" placeholder="" /></td>
<td class="label" rowspan="2">个人及夫妻名下房产</td> <td class="label" rowspan="2">个人及夫妻名下房产</td>
<td class="label">数量</td> <td class="label">数量</td>
<td ><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td ><el-input class="line-input" v-model="form.houseNum" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">总价值</td> <td class="label">总价值</td>
<td><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td><el-input class="line-input" v-model="form.carPrice" placeholder="" /></td>
<td class="label">总价值</td> <td class="label">总价值</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="2"><el-input class="line-input" v-model="form.housePrice" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">公积金及金额</td> <td class="label">公积金及金额</td>
<td><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td><el-input class="line-input" v-model="form.providentFund" placeholder="" /></td>
<td class="label">是否有理财型保单 、股票、基金 、大额存款</td> <td class="label">是否有理财型保单 、股票、基金 、大额存款</td>
<td> <td>
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
<td class="label">具体描述</td> <td class="label">具体描述</td>
<td><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td><el-input class="line-input" v-model="form.insurance" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">是否有营业执照</td> <td class="label">是否有营业执照</td>
<td colspan="2"> <td colspan="2">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.hasBusinessLicense">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
<td class="label">子女工作是否需要政审</td> <td class="label">子女工作是否需要政审</td>
<td colspan="2"> <td colspan="2">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.needPoliticalReview">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
</tr> </tr>
...@@ -142,9 +151,9 @@ ...@@ -142,9 +151,9 @@
<td class="label">贷款类型</td> <td class="label">贷款类型</td>
<td colspan="5" <td colspan="5"
>是否为抵押类贷款,人保贷款,公积金贷款,经营贷,担保、联名担保、保证类贷款,保险类贷款(保单贷),对应名下有理财保险,分红保险,现金分期,装修贷,网贷/信用贷/信用卡与资产相关联的(如与房、车、营业执照(法人/个体)、商铺、公积金等),先息后本、按期结息自由还本<br /> >是否为抵押类贷款,人保贷款,公积金贷款,经营贷,担保、联名担保、保证类贷款,保险类贷款(保单贷),对应名下有理财保险,分红保险,现金分期,装修贷,网贷/信用贷/信用卡与资产相关联的(如与房、车、营业执照(法人/个体)、商铺、公积金等),先息后本、按期结息自由还本<br />
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.hasLoan">
<el-radio value="enable"></el-radio> <el-radio value="Y"></el-radio>
<el-radio value="disable"></el-radio> <el-radio value="N"></el-radio>
</el-radio-group> </el-radio-group>
</td> </td>
</tr> </tr>
...@@ -156,7 +165,7 @@ ...@@ -156,7 +165,7 @@
</tr> </tr>
<tr> <tr>
<td class="label">特殊原因备注</td> <td class="label">特殊原因备注</td>
<td colspan="5"><el-input class="line-input" v-model="form.roleDesc" placeholder="" /></td> <td colspan="5"><el-input class="line-input" v-model="form.remark" placeholder="" /></td>
</tr> </tr>
<tr> <tr>
<td class="label">法务分配</td> <td class="label">法务分配</td>
...@@ -166,25 +175,28 @@ ...@@ -166,25 +175,28 @@
</table> </table>
<p class="text-center my-3 py-1" style="background: rgb(209,215,236);">信用卡网贷状况统计*<span class=" text-xs text-red-600">(涉及金额部分单位为:元)</span></p> <p class="text-center my-3 py-1" style="background: rgb(209,215,236);">信用卡网贷状况统计*<span class=" text-xs text-red-600">(涉及金额部分单位为:元)</span></p>
<div class="creditcard"> <div class="creditcard">
<ProTable <!-- <ProTable
:config="cardConfig" :config="cardConfig"
:data="cardData" :data="cardArr"
:showPagination="false" :showPagination="false"
:showToolBar="false" :showToolBar="false"
> >
<template #table_top> <template #table_top>
<div class="flex justify-between mb-3">
</template>
</ProTable> -->
<div class="flex justify-between mb-3">
<div class="flex items-center"> <div class="flex items-center">
<div class="ml-5">信用卡数量</div> <div class="ml-5">信用卡数量</div>
<div> <div>
<el-input disabled v-model="card.number" > <el-input disabled v-model="cardConfig.data.length" >
<template #append></template> <template #append></template>
</el-input> </el-input>
</div> </div>
<div class="ml-10">信用卡欠款合计</div> <div class="ml-10">信用卡欠款合计</div>
<div> <div>
<el-input disabled v-model="card.number" > <el-input disabled v-model="cardSUM" >
</el-input> </el-input>
</div> </div>
</div> </div>
...@@ -192,13 +204,12 @@ ...@@ -192,13 +204,12 @@
<el-button type="primary" @click="pushCreditcard()">新建信用卡</el-button> <el-button type="primary" @click="pushCreditcard()">新建信用卡</el-button>
</div> </div>
</div> </div>
</template> <vxe-grid v-bind="cardConfig" />
</ProTable>
</div> </div>
<div class="credit"> <div class="credit">
<ProTable <ProTable
:config="creditConfig" :config="creditConfig"
:data="creditData" :data="creditArr"
:showPagination="false" :showPagination="false"
:showToolBar="false" :showToolBar="false"
> >
...@@ -207,14 +218,14 @@ ...@@ -207,14 +218,14 @@
<div class="flex items-center"> <div class="flex items-center">
<div class="ml-5">信用贷、网贷机构数量</div> <div class="ml-5">信用贷、网贷机构数量</div>
<div> <div>
<el-input disabled v-model="card.number" > <el-input disabled v-model="creditArr.length" >
<template #append></template> <template #append></template>
</el-input> </el-input>
</div> </div>
<div class="ml-10">信用贷、网贷欠款合计</div> <div class="ml-10">信用贷、网贷欠款合计</div>
<div> <div>
<el-input disabled v-model="card.number" > <el-input disabled v-model="creditSUM" >
</el-input> </el-input>
</div> </div>
</div> </div>
...@@ -229,7 +240,7 @@ ...@@ -229,7 +240,7 @@
<tbody> <tbody>
<tr> <tr>
<td class="label">合计欠款总额</td> <td class="label">合计欠款总额</td>
<td colspan="5">5555</td> <td colspan="5">{{creditSUM + cardSUM}}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -241,32 +252,101 @@ ...@@ -241,32 +252,101 @@
ref="CreditcardRef" ref="CreditcardRef"
@success="changeCreditcard" @success="changeCreditcard"
></Creditcard> ></Creditcard>
<!-- <div style="overflow: hidden;width: 0;height: 0;"> -->
<div id="customerStatic" style="padding: 10px">
<table>
<customerPrint :data="form"></customerPrint>
<cardAndCredit :data="form"></cardAndCredit>
<!-- <productOrderDetail :workOrderTable="workOrderTable[index]" style="page-break-after:always"></productOrderDetail> -->
</table>
<!-- <div id="productOrderDetail">
<div v-for="(item, index) in productionSolutionTable" :key="'productionSolutionTable' + index">
<productOrderSpecification :productionSolutionTable="form" style="page-break-after:always"></productOrderSpecification>
<productOrderDetail :workOrderTable="workOrderTable[index]" style="page-break-after:always"></productOrderDetail>
</div>
</div> -->
</div>
</div> </div>
</template> </template>
<script setup name="Customer" lang="jsx"> <script setup name="Customer" lang="jsx">
import { useTabsStore } from '@/stores/modules/tabs'; import { useTabsStore } from '@/stores/modules/tabs';
import { ElButton, ElTag, ElMessage } from 'element-plus'; import { ElButton, ElTag, ElMessage } from 'element-plus';
import Credit from './Credit.vue'; import Credit from './Credit.vue';
import { saveCustomer, getgetByIdCustomer } from '@/api/customer';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import Creditcard from './Creditcard.vue'; import Creditcard from './Creditcard.vue';
import { ref, reactive, onBeforeMount } from 'vue'; import customerPrint from './customerPrint.vue';
import cardAndCredit from './cardAndCredit.vue';
import { ref, computed, reactive, onBeforeMount } from 'vue';
import { useDict } from '@/hooks/useDict';
const { LoanStatus } = useDict("LoanStatus");
const printContent = ref({
id: 'customerStatic',
// preview: true, // 预览工具是否启用
// previewTitle: '储能服务费结算单', // 预览页面的标题
popTitle: '',
extraHead: `<h1 style="text-align: center;font-size: 20px">客户信息收集表</h1>`,
isRetainOriginData: true, // 是否保留原始数据
preview: false, // 是否开启预览
beforeOpenCallback: () => {
console.log('开始打印之前的callback')
}
})
const form = ref({ const form = ref({
status: '' "name": "",
"age": 0,
"idCard": "",
"zodiac": "",
"marriage": "",
"phone": "",
"qualification": "",
"career": "",
"functionary": "",
"collection": "",
"email": "",
"monthlyIncome": 0,
"reserveAddress": "",
"sueCaseId": "",
"caseType": "",
"checkInIncome": 0,
"checkInBank": "",
"borrowCheckInBank": "",
"carNum": 0,
"carPrice": 0,
"houseNum": 0,
"housePrice": 0,
"providentFund": 0,
"insurance": 0,
"hasBusinessLicense": "",
"needPoliticalReview": true,
"hasLoan": "",
"remark": "",
"creditCard": [],
lending: [],
inputUserName: '',
inputUser: {},
"inputOrg": "",
"inputRole": "",
"referee": "",
"tenantId": 0,
"tenant": {
},
reserveWorkUnit: ''
}); });
const handlePrint = () => {
document.getElementById('printbtn').click()
}
const router = useRouter(); const router = useRouter();
const tabStore = useTabsStore(); const tabStore = useTabsStore();
const route = useRoute(); const route = useRoute();
const CreditRef = ref(); const CreditRef = ref();
const CreditcardRef = ref(); const CreditcardRef = ref();
const card = ref({ const creditArr = ref([]);
number: 3 const cardSUM = computed(() => cardConfig.data.reduce((pre, cur) => pre + Number(cur.debt),0));
}); const creditSUM = computed(() => creditArr.value.reduce((pre, cur) => pre + Number(cur.debt),0));
const credit = ref({
number: 3
});
const cardData = ref([]);
const creditData = ref([]);
const pushCreditcard = (row, index) => { const pushCreditcard = (row, index) => {
CreditcardRef.value.openModal(row, index CreditcardRef.value.openModal(row, index
); );
...@@ -275,28 +355,74 @@ const pushCredit = (row, index) => { ...@@ -275,28 +355,74 @@ const pushCredit = (row, index) => {
CreditRef.value.openModal(row, index CreditRef.value.openModal(row, index
); );
}; };
const changeCredit = (row) => { const changeCredit = (row, index, del) => {
if (del) {
const arr = JSON.parse(JSON.stringify(creditArr.value))
arr.splice(index, 1)
creditArr.value = arr
return
}
if (index || index === 0) {
const arr = JSON.parse(JSON.stringify(creditArr.value))
arr[index] = row
creditArr.value = arr
} else {
creditArr.value.push(row)
}
} }
const changeCreditcard = (row, index) => { const changeCreditcard = (row, index, del) => {
console.log('sss', row, index) if (del) {
const arr = JSON.parse(JSON.stringify(cardConfig.data))
arr.splice(index, 1)
cardConfig.data = arr
return
}
if (index || index === 0) {
const arr = JSON.parse(JSON.stringify(cardConfig.data))
arr[index] = row
cardConfig.data = arr
} else {
cardConfig.data.push(row)
}
} }
const submit = () => { const submit = () => {
console.log('route', route) saveCustomer({...form.value, creditCard: cardConfig.data, lending:creditArr.value}).then(res => {
tabStore.removeTabs(route.fullPath).then(res => { if (res.success) {
router.push({ ElMessage.success({
path: '/infoGather/customerGather' message: '保存成功',
plain: true,
}); });
}); tabStore.removeTabs(route.fullPath).then(res => {
router.push({
path: '/infoGather/customerGather'
});
});
}
})
} }
const query = async (type) => { const query = async (type) => {
const id = JSON.parse(route.query.id); const id = JSON.parse(route.query.id);
getgetByIdCustomer(id).then(res => {
if(res.success) {
form.value = res.result
cardConfig.data = res.result.creditCard
creditArr.value = res.result.lending
}
})
} }
onBeforeMount(async () => { onBeforeMount(async () => {
query() if (route.query.id) {
query()
}
}) })
const cardConfig = reactive({ const cardConfig = reactive({
minHeight: 200, minHeight: 250,
rowConfig: {
height: 40,
},
cellConfig: {
height: 40,
},
columns: [ columns: [
{ type: 'seq', width: 60, title: '序号', slots: { { type: 'seq', width: 60, title: '序号', slots: {
default: ({ row, rowIndex }) => { default: ({ row, rowIndex }) => {
...@@ -306,7 +432,7 @@ const cardConfig = reactive({ ...@@ -306,7 +432,7 @@ const cardConfig = reactive({
onClick={() => pushCreditcard(row, rowIndex)} onClick={() => pushCreditcard(row, rowIndex)}
className=" text-blue-400 cursor-pointer inline-block" className=" text-blue-400 cursor-pointer inline-block"
> >
{rowIndex} {rowIndex + 1}
</div> </div>
</> </>
); );
...@@ -314,55 +440,72 @@ const cardConfig = reactive({ ...@@ -314,55 +440,72 @@ const cardConfig = reactive({
} }
}, },
{ {
field: 'name', field: 'bank',
width: 100, width: 100,
title: '发卡银行', title: '发卡银行',
showOverflow: 'tooltip', showOverflow: 'tooltip',
}, },
{ {
field: 'kinship', field: 'quota',
width: 110, width: 110,
title: '授信额度', title: '授信额度',
showOverflow: 'tooltip', showOverflow: 'tooltip',
}, },
{ {
field: 'kinship', field: 'usedQuota',
width: 110, width: 110,
title: '已用额度', title: '已用额度',
showOverflow: 'tooltip', showOverflow: 'tooltip',
},{ },{
field: 'kinship', field: 'debt',
width: 110, width: 110,
title: '合计欠款金额', title: '未还金额',
showOverflow: 'tooltip', showOverflow: 'tooltip',
},{ },{
field: 'kinship', field: 'bigQuotaStagesAmount',
width: 110, width: 110,
title: '大额专项欠款金额', title: '大额专项欠款金额',
showOverflow: 'tooltip', showOverflow: 'tooltip',
},{ },{
field: 'kinship', field: 'beOverduePeriod',
width: 110, width: 110,
title: '逾期期数', title: '逾期期数',
showOverflow: 'tooltip', showOverflow: 'tooltip',
},{ },{
field: 'kinship', field: 'sixDevUsedQuota',
width: 110, width: 110,
title: '近6个月平均使用额度', title: '近6个月平均使用额度',
showOverflow: 'tooltip', showOverflow: 'tooltip',
}, },
{ {
field: 'kinship', field: 'hasNegotiate',
width: 110, width: 110,
title: '有无协商方案', title: '有无协商方案',
showOverflow: 'tooltip', showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return <ElTag>{row.hasNegotiate == 'Y' ? '是' : '否'}</ElTag>;
},
},
}, },
{ {
field: 'kinship', field: 'creditCardStatus',
title: '卡片状态(逾期/正常)', title: '卡片状态(逾期/正常)',
slots: {
default: ({ row }) => {
return (
<>
{row.creditCardStatus
? LoanStatus.value?.find((v) => v.value === row.creditCardStatus)?.label
: ''}
</>
);
},
},
showOverflow: 'tooltip', showOverflow: 'tooltip',
} }
], ],
data: [],
toolbarConfig: { enabled: false }, toolbarConfig: { enabled: false },
}); });
const creditConfig = reactive({ const creditConfig = reactive({
...@@ -376,7 +519,7 @@ const cardConfig = reactive({ ...@@ -376,7 +519,7 @@ const cardConfig = reactive({
onClick={() => pushCredit(row, rowIndex)} onClick={() => pushCredit(row, rowIndex)}
className=" text-blue-400 cursor-pointer inline-block" className=" text-blue-400 cursor-pointer inline-block"
> >
{rowIndex} {rowIndex + 1}
</div> </div>
</> </>
); );
...@@ -384,34 +527,34 @@ const cardConfig = reactive({ ...@@ -384,34 +527,34 @@ const cardConfig = reactive({
} }
}, },
{ {
field: 'name', field: 'loanPlatform',
width: 100, width: 100,
title: '贷款机构', title: '贷款机构',
showOverflow: 'tooltip', showOverflow: 'tooltip',
}, },
{ {
field: 'kinship', field: 'quota',
width: 110, width: 110,
title: '审批额度', title: '审批额度',
showOverflow: 'tooltip', showOverflow: 'tooltip',
}, },
{ {
field: 'kinship', field: 'lendingNum',
width: 110, width: 110,
title: '贷款笔数', title: '贷款笔数',
showOverflow: 'tooltip', showOverflow: 'tooltip',
},{ },{
field: 'kinship', field: 'period',
width: 110, width: 110,
title: '贷款期数', title: '贷款期数',
showOverflow: 'tooltip', showOverflow: 'tooltip',
},{ },{
field: 'kinship', field: 'repayPeriod',
width: 110, width: 110,
title: '已还期数', title: '已还期数',
showOverflow: 'tooltip', showOverflow: 'tooltip',
},{ },{
field: 'kinship', field: 'debt',
width: 110, width: 110,
title: '未还金额', title: '未还金额',
showOverflow: 'tooltip', showOverflow: 'tooltip',
...@@ -420,6 +563,17 @@ const cardConfig = reactive({ ...@@ -420,6 +563,17 @@ const cardConfig = reactive({
field: 'kinship', field: 'kinship',
title: '状态(逾期/正常)', title: '状态(逾期/正常)',
showOverflow: 'tooltip', showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return (
<>
{row.loanStatus
? LoanStatus.value?.find((v) => v.value === row.loanStatus)?.label
: ''}
</>
);
},
},
} }
], ],
toolbarConfig: { enabled: false }, toolbarConfig: { enabled: false },
...@@ -456,4 +610,15 @@ td { ...@@ -456,4 +610,15 @@ td {
// background: #e1f1d9; // background: #e1f1d9;
} }
} }
</style>
<style >
@media print {
.label {
text-align: center;
background: #f6f8ff;
font-weight: bold;
color: #909399;
}
}
</style> </style>
\ No newline at end of file
<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> <template>
<div class="table-box"> <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> <template #left_buttons>
<!-- <el-button type="primary" :disabled="!selectdList || selectdList.length < 1" @click="pushCreditcard">新建信用卡</el-button> --> <!-- <el-button type="primary" :disabled="!selectdList || selectdList.length < 1" @click="pushCreditcard">新建信用卡</el-button> -->
<!-- <el-button type="primary" @click="pushCredit">新建信用卡</el-button> <!-- <el-button type="primary" @click="pushCredit">新建信用卡</el-button>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<script setup lang="jsx" name="platformManage"> <script setup lang="jsx" name="platformManage">
import { ref, reactive, onMounted } from 'vue'; import { ref, reactive, onMounted } from 'vue';
import { Plus, Delete, Edit, Setting } from '@element-plus/icons-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 { ElMessageBox, ElMessage, ElButton, ElTag } from 'element-plus';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
...@@ -94,11 +94,11 @@ ...@@ -94,11 +94,11 @@
search: { el: 'input',labelWidth: 85, props: { clearable: true } }, 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: 'idCard', title: '身份证号', search: { labelWidth: 85, el: 'input' } },
{ field: 'name', title: '手机', search: { labelWidth: 85, el: 'input' } }, { field: 'phone', title: '手机', search: { labelWidth: 85, el: 'input' } },
{ field: 'name', title: '电子邮箱', search: { labelWidth: 85, el: 'input' } }, { field: 'email', title: '电子邮箱', search: { labelWidth: 85, el: 'input' } },
{ field: 'maxStagesNum', title: '预留工作单位', search: { labelWidth: 85, el: 'input' } }, { field: 'reserveWorkUnit', title: '预留工作单位', search: { labelWidth: 85, el: 'input' } },
{ field: 'maxStagesNum', title: '预留家庭地址', search: { labelWidth: 85, el: 'input' } }, { field: 'reserveAddress', title: '预留家庭地址', search: { labelWidth: 85, el: 'input' } },
{ field: 'remark', title: '备注', search: { labelWidth: 85, el: 'input' } }, { field: 'remark', title: '备注', search: { labelWidth: 85, el: 'input' } },
], ],
}); });
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -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 ...@@ -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: dependencies:
ms "^2.1.3" 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: deep-is@^0.1.3:
version "0.1.4" version "0.1.4"
resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
...@@ -1800,6 +1805,19 @@ eastasianwidth@^0.2.0: ...@@ -1800,6 +1805,19 @@ eastasianwidth@^0.2.0:
resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 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: ejs@^3.1.6:
version "3.1.10" version "3.1.10"
resolved "https://registry.npmmirror.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" resolved "https://registry.npmmirror.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
...@@ -4021,6 +4039,11 @@ ts-interface-checker@^0.1.9: ...@@ -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" resolved "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== 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: tslib@^2.0.3, tslib@^2.6.2:
version "2.8.1" version "2.8.1"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" resolved "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
...@@ -4211,7 +4234,14 @@ vue-router@^4.5.0: ...@@ -4211,7 +4234,14 @@ vue-router@^4.5.0:
dependencies: dependencies:
"@vue/devtools-api" "^6.6.4" "@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" version "3.5.13"
resolved "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a" resolved "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ== integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==
...@@ -4325,3 +4355,10 @@ yocto-queue@^0.1.0: ...@@ -4325,3 +4355,10 @@ yocto-queue@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 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