Commit 78eadc82 authored by 沈翠玲's avatar 沈翠玲

采集管理

parent 00571c88
......@@ -80,6 +80,7 @@ const closeOthersTags = () => {
// Close Current
const closeCurrentTab = () => {
if (!props.selectedTag.close) return;
console.log('props.selectedTag.path', props.selectedTag.path)
tabStore.removeTabs(props.selectedTag.path);
};
......
......@@ -302,7 +302,7 @@
height: 30px !important;
}
td {
line-height: 14px !important;
line-height: 22px !important;
}
.public-header {
position: relative;
......@@ -420,3 +420,9 @@ body {
line-height: 16px;
}
}
.line-input {
.el-input__wrapper {
box-shadow: none;
border-bottom: 1px solid rgb(204, 204, 204);
}
}
\ No newline at end of file
<template>
<vxe-modal
resize
v-model="showModal"
title="信用卡详情"
height="512"
width="1303"
show-footer
esc-closable
>
<div class="card content-box">
<span class="text"> 客户信息统计表(待完善) 🍓🍇🍈🍉</span>
<div class="mb-5 w-full flex justify-end">
<el-button type="default" @click="showModal = false">取消</el-button>
<template v-if="showEdit">
<el-button type="primary" @click="submitForm">保存</el-button>
</template>
<el-button type="primary" @click="showEdit = true" v-if="currentRow">修改</el-button>
</div>
<div class="w-full">
<table>
<tbody>
<tr>
<td class="label">发卡银行</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">开户时间</td>
<td colspan="2"><el-date-picker
v-model="form.trackTime" class="line-input" style="width: 100%"
:disabled="!showEdit"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
type="date"
/></td>
</tr>
<tr>
<td class="label">卡号</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td>
<td class="label">卡片状态(正常/逾期)</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td>
</tr>
<tr>
<td class="label">授信额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td>
<td class="label">已用额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">近6个月平均使用额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit" /></td>
<td class="label">当前欠款金额</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">逾期期数</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">逾期后是否有过协商</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">有无分期</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">有无协商方案</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="请填写有/无" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">查询密码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">最后一次还款时间</td>
<td colspan="2">
<el-date-picker
v-model="form.trackTime"
:disabled="!showEdit"
class="line-input" style="width: 100%"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
type="date"
/></td>
</tr>
<tr>
<td class="label">支付密码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">最后一次还款金额</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">是否有大额专项分期额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">大额专项分期借款种类</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">大额专项分期额度</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">大额专项分期开立日期</td>
<td colspan="2"><el-date-picker
v-model="form.trackTime"
:disabled="!showEdit"
class="line-input" style="width: 100%"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
type="date"
/></td>
</tr>
<tr>
<td class="label">大额专项分期到期日期</td>
<td colspan="2"><el-date-picker
v-model="form.trackTime"
:disabled="!showEdit"
class="line-input" style="width: 100%"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
type="date"
/></td>
<td class="label">大额专项分期已还期数</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">银行预留手机号码</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">银行预留家庭地址</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
<tr>
<td class="label">银行预留紧急联系人姓名</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
<td class="label">银行预留紧急联系人电话</td>
<td colspan="2"><el-input class="line-input" v-model="form.roleDesc" placeholder="" :disabled="!showEdit"/></td>
</tr>
</tbody>
</table>
</div>
</div>
</vxe-modal>
</template>
<script setup name="dictManage"></script>
<script setup name="credit">
import { ref, computed } from 'vue';
import { ElMessage } from 'element-plus';
const showEdit = ref(false);
const showModal = ref(false);
const emits = defineEmits(['success']);
const currentRow = ref(null);
const currentIndex = ref(null);
const props = defineProps({
mergerCase: String,
returnConfig: Array,
returnData: Array
});
const form = ref({
roleName: '',
roleCode: '',
roleDesc: '',
});
const submitForm = async () => {
showEdit.value = false
emits('success', currentRow.value, currentIndex.value);
};
const openModal = (row, index) => {
if (row) {
showEdit.value = false
form.value = JSON.parse(JSON.stringify(row))
} else {
showEdit.value = true
form.value = {
roleName: '',
roleCode: '',
roleDesc: '',
}
}
currentRow.value = row
currentIndex.value = index
showModal.value = true;
};
defineExpose({
openModal,
});
</script>
<style lang="scss" scoped>
table {
width: calc(100%);
border-collapse: collapse;
}
td {
border: 1px solid rgba(5, 5, 5, 0.06);
background: #fff;
color: #606268;
// width: 240px;
line-height: 11px;
height: 40px;
font-size: 14px;
padding-left: 5px;
&.label {
text-align: center;
background: #f6f8ff;
font-weight: bold;
width: 175px;
color: #909399;
}
}
</style>
This diff is collapsed.
......@@ -3,13 +3,14 @@
<ProTable ref="proTable" :config="config" :api="getPlatformPage" :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>
<!-- <el-button type="primary" @click="pushCredit">新建信用卡</el-button>
<el-button
type="primary"
:disabled="!selectdList || selectdList.length < 1"
@click="pushCreditcard"
>新建网贷&信用贷</el-button
>
> -->
<el-button type="primary" @click="pushCustomer()">新建客户</el-button>
<el-button type="primary">发起风控审核</el-button>
</template>
</ProTable>
......@@ -46,10 +47,10 @@
selectdList.value = [];
}
};
const pushCreditcard = () => {
const pushCustomer = (row) => {
router.push({
path: '/infoGather/customerGather/Creditcard',
query: { id: 44 }, //这里不能直接写成 query: JSON.stringify(item)
path: '/infoGather/customerGather/Customer',
query: row ? { id: row.id }: {}, //这里不能直接写成 query: JSON.stringify(item)
});
};
const pushCredit = () => {
......@@ -63,28 +64,42 @@
onCheckboxAll: onCheckboxAll,
columns: [
{ type: 'checkbox', width: 60,fixed: 'left' },
{ field: 'id', title: '客户ID' },
{ field: 'id', title: '客户ID', slots: {
default: ({ row, rowIndex }) => {
return (
<>
<div
onClick={() => pushCustomer(row)}
className=" text-blue-400 cursor-pointer inline-block"
>
{row.id}
</div>
</>
);
},
}
},
{
field: 'createTime',
title: '创建日期',
search: {
el: 'date-picker',
labelWidth: 85,
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
span: 1.5,
},
},
{
field: 'createBy',
title: '创建人',
search: { el: 'input', span: 1, props: { clearable: true } },
search: { el: 'input',labelWidth: 85, props: { clearable: true } },
},
{ field: 'name', title: '客户名称', search: { el: 'input' } },
{ field: 'name', title: '身份证号', search: { el: 'input' } },
{ field: 'name', title: '手机', search: { el: 'input' } },
{ field: 'name', title: '电子邮箱', search: { el: 'input' } },
{ field: 'maxStagesNum', title: '预留工作单位', search: { el: 'input' } },
{ field: 'maxStagesNum', title: '预留家庭地址', search: { el: 'input' } },
{ field: 'remark', title: '备注', search: { 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: 'name', title: '电子邮箱', search: { labelWidth: 85, el: 'input' } },
{ field: 'maxStagesNum', title: '预留工作单位', search: { labelWidth: 85, el: 'input' } },
{ field: 'maxStagesNum', title: '预留家庭地址', search: { labelWidth: 85, el: 'input' } },
{ field: 'remark', title: '备注', search: { labelWidth: 85, el: 'input' } },
],
});
......
<template>
<div class="card content-box">
<span class="text"> 风控审核报告(待完善) 🍓🍇🍈🍉</span>
<div class="table-box">
<div class=" bg-white pt-2 pl-2">
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane
:label="item.label"
:name="item.value"
v-for="(item, index) in tabs"
:key="index"
>
<template #label>
<div>
{{item.label}}
<span style="font-size: 20px; font-weight: bold;">{{item.msg}}</span>
</div>
</template>
</el-tab-pane>
</el-tabs>
</div>
<ProTable ref="proTable" :config="config" :api="getPlatformPage" :paramCallback="paramCallback">
</ProTable>
</div>
</template>
<script setup name="dictManage"></script>
<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 { getByStagesTotal } from '@/api/property';
import { ElMessageBox, ElMessage, ElButton, ElTag } from 'element-plus';
import { useRouter } from 'vue-router';
const tabs = ref([]);
import { useDict } from '@/hooks/useDict';
const { PhoneResultStatus, ReduceType, FlowStatus, FollowStatus, AuditStatus, CaseStatus } = useDict("PhoneResultStatus","ReduceType", "FlowStatus", "FollowStatus","AuditStatus", "CaseStatus");
const proTable = ref(null);
const selectdList = ref([]);
const onCheckboxChange = (row) => {
selectdList.value = row.records;
};
const router = useRouter();
const activeName = ref('pending');
const paramCallback = (param) => {
const obj = JSON.parse(JSON.stringify(param));
if (obj['createTime']) {
if (obj['createTime'][0]) obj['createTimeBegin'] = obj['createTime'][0];
if (obj['createTime'][1]) obj['createTimeEnd'] = obj['createTime'][1];
delete obj['createTime'];
}
setTimeout(() => {
const arr = JSON.parse(JSON.stringify(FlowStatus.value))
getByStagesTotal({...obj, flowStatus: null}).then(res => {
if (res.success) {
arr.forEach(item => {
const tt = res.result.find(v => v.flowStatus === item.value)
if (tt) {
item['msg'] = tt.number
} else {
item['msg'] = 0
}
})
tabs.value = arr
} else {
tabs.value = arr
}
}).catch(e => {
tabs.value = arr
})
}, (FlowStatus.value && FlowStatus.value.length) ? 100 : 1000)
return obj;
};
const onCheckboxAll = (flag) => {
if (flag.checked) {
selectdList.value = flag.records;
} else {
selectdList.value = [];
}
};
const pushCustomer = (row) => {
router.push({
path: '/infoGather/dangerReport/dangerReportDetail',
query: row ? { id: row.id }: {}, //这里不能直接写成 query: JSON.stringify(item)
});
};
const pushCredit = () => {
router.push({
path: '/infoGather/customerGather/Credit',
query: { id: 44 }, //这里不能直接写成 query: JSON.stringify(item)
});
};
const config = reactive({
onCheckboxChange: onCheckboxChange,
onCheckboxAll: onCheckboxAll,
columns: [
{ field: 'id', title: '客户ID', slots: {
default: ({ row, rowIndex }) => {
return (
<>
<div
onClick={() => pushCustomer(row)}
className=" text-blue-400 cursor-pointer inline-block"
>
{row.id}
</div>
</>
);
},
}
},
{
field: 'createTime',
title: '创建日期',
search: {
el: 'date-picker',
labelWidth: 85,
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
},
},
{
field: 'createBy',
title: '创建人',
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: 'remark', title: '欠款总额', search: { labelWidth: 85, el: 'input' } },
{ field: 'remark', title: '备注', search: { labelWidth: 85, el: 'input' } },
{ field: 'remark', title: '风控审核状态'},
],
});
const query = () => proTable.value?.search();
const handleClick = () => {
setTimeout(() => {
query();
}, 300);
};
onMounted(() => {
query();
});
</script>
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