Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into dev
This commit is contained in:
@@ -9,29 +9,39 @@
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="搜索名称" v-model="search.name" clearable
|
||||
@clear="page.current = 1,search.name = '', getTableData()"
|
||||
@clear="page.current = 1,search.name = '', getTableData()"
|
||||
v-throttle="() => {page.current = 1, getTableData()}"/>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getTableData" :col-configs="colConfigs">
|
||||
<el-table-column type="expand" slot="expand">
|
||||
<template slot-scope="{row}">
|
||||
<ai-wrapper>
|
||||
<ai-info-item labelWidth="200px" v-for="op in desConfigs" :key="op.prop" :value="row[op.prop]"
|
||||
v-bind="op"/>
|
||||
</ai-wrapper>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column slot="status" align="center" label="状态" width="150">
|
||||
<template v-slot="{ row }">
|
||||
<el-switch v-model="row.status" @change="onChange(row)" active-value="1" inactive-value="0"
|
||||
active-color="#5088FF" inactive-color="#D0D4DC"></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column slot="miniappStatus" align="center" label="状态" width="150">
|
||||
<el-table-column slot="miniappStatus" align="center" label="小程序状态" width="150">
|
||||
<template v-slot="{ row }">
|
||||
<el-switch v-model="row.miniappStatus" @change="onMiniappStatusChange(row)" active-value="1" inactive-value="0"
|
||||
<el-switch v-model="row.miniappStatus" @change="onMiniappStatusChange(row)" active-value="1"
|
||||
inactive-value="0"
|
||||
active-color="#5088FF" inactive-color="#D0D4DC"></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column slot="options" align="center" label="操作" fixed="right" width="200px">
|
||||
<el-table-column slot="options" align="center" label="操作" width="400">
|
||||
<el-row type="flex" justify="center" align="middle" slot-scope="{row}">
|
||||
<el-button type="text" @click="detail(row)">详情</el-button>
|
||||
<el-button type="text" @click="del(row)">删除</el-button>
|
||||
<el-button type="text" @click="handleSystemInfo(row.id)">系统信息</el-button>
|
||||
<el-button type="text" @click="handlePush(row.id)">推送随手拍样式</el-button>
|
||||
</el-row>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
@@ -109,11 +119,11 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="系统配置信息" prop="systemInfo">
|
||||
<el-input type="textarea" :rows="2" placeholder="请输入系统配置信息" v-model="dialogForm.systemInfo" maxlength="200"></el-input>
|
||||
<el-input type="textarea" :rows="2" placeholder="请输入系统配置信息" v-model="dialogForm.systemInfo"
|
||||
maxlength="200"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ai-dialog>
|
||||
|
||||
<ai-dialog title="地图" :visible.sync="showMap" @opened="initMap" width="800px" class="mapDialog"
|
||||
@onConfirm="selectMap">
|
||||
<div id="map"></div>
|
||||
@@ -124,7 +134,8 @@
|
||||
</el-input>
|
||||
<div id="searchPlaceOutput"/>
|
||||
</ai-dialog>
|
||||
<ai-dialog title="系统信息设置" :visible.sync="sysInfoDialog" width="600px" @onConfirm="submitSystemInfo" @closed="sysInfo={}">
|
||||
<ai-dialog title="系统信息设置" :visible.sync="sysInfoDialog" width="600px" @onConfirm="submitSystemInfo"
|
||||
@closed="sysInfo={}">
|
||||
<el-form size="small" label-width="140px">
|
||||
<el-form-item label="页签标题">
|
||||
<el-input v-model="sysInfo.title" placeholder="请输入..." clearable/>
|
||||
@@ -172,22 +183,31 @@ export default {
|
||||
...mapState(['user']),
|
||||
colConfigs() {
|
||||
return [
|
||||
{prop: "name", label: "名称", width: 150},
|
||||
{slot: 'expand'},
|
||||
{prop: "name", label: "名称"},
|
||||
{prop: "corpId", label: "企业微信ID", width: 180},
|
||||
{slot: "status",},
|
||||
{slot: "miniappStatus"},
|
||||
{prop: "createTime", label: "创建时间"},
|
||||
{slot: "options"},
|
||||
]
|
||||
},
|
||||
desConfigs() {
|
||||
let isLine = true
|
||||
return [
|
||||
{prop: "corpAddressBookSecret", label: "企业微信通讯录SECRET", width: 200},
|
||||
{prop: "corpAgentId", label: "企业微信AGENTID", width: 150},
|
||||
{prop: "corpSecret", label: "企业微信SECRET", width: 200},
|
||||
{prop: "corpSecret", label: "企业微信SECRET", isLine},
|
||||
{prop: "corpToken", label: "企业微信TOKEN", width: 150},
|
||||
{prop: "corpAeskey", label: "企业微信AESKEY", width: 150},
|
||||
{prop: "miniappAppid", label: "小程序APPID", width: 150},
|
||||
{prop: "miniappSecret", label: "小程序SECRET", width: 150},
|
||||
{prop: "areaId", label: "地区编码", width: 150, isLine},
|
||||
{prop: "lat", label: "纬度", width: 100},
|
||||
{prop: "lng", label: "经度", width: 100},
|
||||
{prop: "address", label: "中心点", width: 100},
|
||||
{slot: "status",},
|
||||
{slot: "miniappStatus",},
|
||||
{prop: "createTime", label: "创建时间", width: 150},
|
||||
{slot: "options"},
|
||||
{prop: "address", label: "中心点", width: 100, isLine},
|
||||
{prop: "webUrl", label: "管理端地址", width: 100},
|
||||
{prop: "dvcpUrl", label: "企微端地址", width: 100},
|
||||
]
|
||||
},
|
||||
rules() {
|
||||
@@ -309,7 +329,7 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
add() {
|
||||
this.dialogForm = {};
|
||||
this.dialog = true;
|
||||
@@ -388,6 +408,13 @@ export default {
|
||||
this.sysInfoDialog = false
|
||||
}
|
||||
})
|
||||
},
|
||||
handlePush(id) {
|
||||
this.instance.post("/app/appclapeventinfo/setAppWorkbench", null, {params: {id}}).then(res => {
|
||||
if (res?.code == 0) {
|
||||
this.$message.success("推送成功!")
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
{
|
||||
"AppCodeGeneration": "动态表单"
|
||||
"AppCodeGeneration": "动态表单",
|
||||
"AppGigscreenViewer": "大屏预览组件",
|
||||
"AppDesigner": "大屏设计"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<template>
|
||||
<section class="AppGroupShareholders">
|
||||
<keep-alive :include="['List']">
|
||||
<component ref="component" :is="component" :instance="instance" :params="params" :dict="dict" @change="onChange"/>
|
||||
</keep-alive>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import List from "./components/List.vue";
|
||||
import Add from "./components/Add.vue";
|
||||
|
||||
export default {
|
||||
name: "AppGroupShareholders",
|
||||
label: "集体经济股权",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
},
|
||||
components: {Add, List},
|
||||
data() {
|
||||
return {
|
||||
component: "List",
|
||||
params: {},
|
||||
include: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onChange(data) {
|
||||
if (data.type === "Add") {
|
||||
this.component = "Add";
|
||||
this.params = data.params;
|
||||
}
|
||||
|
||||
if (data.type === "List") {
|
||||
this.component = "List";
|
||||
this.params = data.params;
|
||||
|
||||
this.$nextTick(() => {
|
||||
if (data.isRefresh) {
|
||||
this.$refs.component.getTableData();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.AppGroupShareholders {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
297
project/xiushan/apps/AppGroupShareholders/components/Add.vue
Normal file
297
project/xiushan/apps/AppGroupShareholders/components/Add.vue
Normal file
@@ -0,0 +1,297 @@
|
||||
<template>
|
||||
<section class="Add">
|
||||
<ai-detail v-if="!id || isEdit==true">
|
||||
|
||||
<template #title>
|
||||
<ai-title :title="params.id ? '编辑集体经济股权登记' : '新增集体经济股权登记'" :isShowBack="true" :isShowBottomBorder="true" @onBackClick="cancel(false)"></ai-title>
|
||||
</template>
|
||||
<template #content>
|
||||
|
||||
<ai-card title="基本信息">
|
||||
<template #right v-if="params.id">
|
||||
<span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="isEdit=false">取消</span>
|
||||
<span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="confirm()">保存</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="150px">
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="集体经济组织" prop="organizationName">
|
||||
<el-input v-model="form.organizationName" placeholder="请输入集体经济组织名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="统一社会信用代码" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入统一社会信用代码" maxlength="18"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="所在地区" prop="areaId">
|
||||
<ai-area-select clearable always-show :instance="instance" @fullname="v=>form.areaName = v" v-model="form.areaId" :disabled-level="disabledLevel" :value-level="4"></ai-area-select>
|
||||
</el-form-item>
|
||||
<el-row type="flex">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="股权证编号" prop="stockCertificateCode">
|
||||
<el-input v-model="form.stockCertificateCode" placeholder="请输入股权证编号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="权证照片" prop="fileList">
|
||||
<ai-uploader v-model="form.fileList" :instance="instance" :limit="9" isShowTip/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
</ai-card>
|
||||
|
||||
<ai-card title="家庭持股情况">
|
||||
<template #right>
|
||||
<span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="!id || isEdit==true" @click="sysInfoDialog = true">+添加股权人</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getDetail" :col-configs="colConfigs" :dict="dict">
|
||||
|
||||
<el-table-column slot="options" label="操作" align="center" v-if="!id || isEdit==true">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-button type="text" @click="editBtn(row,$index)">编辑</el-button>
|
||||
<el-button type="text" @click="deleteBtn(row,$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
</ai-card>
|
||||
|
||||
</template>
|
||||
<template slot="footer" class="footer">
|
||||
<el-button class="delete-btn footer-btn" @click="cancel(false)">取消</el-button>
|
||||
<el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button>
|
||||
</template>
|
||||
</ai-detail>
|
||||
|
||||
<ai-detail class="add" v-if="params.id && !isEdit">
|
||||
<template slot="title">
|
||||
<ai-title title="集体经济股权登记详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"></ai-title>
|
||||
</template>
|
||||
<template slot="content">
|
||||
|
||||
<ai-card title="基本信息">
|
||||
<template #right>
|
||||
<span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,form=data">修改</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-wrapper>
|
||||
<ai-info-item label="集体经济组织" :value="data.organizationName"></ai-info-item>
|
||||
<ai-info-item label="统一社会信用代码" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="所在地区" :value="data.areaName"></ai-info-item>
|
||||
<ai-info-item label="股权证编号" :value="data.stockCertificateCode"></ai-info-item>
|
||||
<ai-info-item label="股权总数" :value="data.totalEquity"></ai-info-item>
|
||||
<ai-info-item label="股金总额(元)" :value="data.totalAmount"></ai-info-item>
|
||||
<ai-info-item label="权证照片" isLine>
|
||||
<ai-uploader v-model="data.fileList" :instance="instance" :limit="9" disabled/>
|
||||
</ai-info-item>
|
||||
</ai-wrapper>
|
||||
</template>
|
||||
</ai-card>
|
||||
|
||||
<ai-card title="家庭持股情况">
|
||||
<template #right>
|
||||
<span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="!id || isEdit==true" @click="sysInfoDialog = true">+添加股权人</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getDetail" :col-configs="colConfigs" :dict="dict">
|
||||
|
||||
<el-table-column slot="options" label="操作" align="center" v-if="!id || isEdit==true">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-button type="text" @click="editBtn(row, $index)">编辑</el-button>
|
||||
<el-button type="text" @click="deleteBtn(row, $index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
|
||||
</template>
|
||||
</ai-card>
|
||||
</template>
|
||||
</ai-detail>
|
||||
|
||||
<!-- 弹框 -->
|
||||
<ai-dialog title="股权结构" :visible.sync="sysInfoDialog" width="600px" @onConfirm="onConfirm"
|
||||
@closed="table={},isEditSys=false">
|
||||
<el-form size="small" label-width="140px" :rules="dialogRules" ref="dialogForm" :model="table">
|
||||
<el-form-item label="股权人姓名" prop="name">
|
||||
<el-input v-model="table.name" placeholder="请输入股权人姓名" clearable/>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idNumber">
|
||||
<el-input v-model="table.idNumber" placeholder="请输入身份证号" clearable/>
|
||||
</el-form-item>
|
||||
<el-form-item label="与户主关系" prop="householdRelation">
|
||||
<ai-select v-model="table.householdRelation" placeholder="请选择" :selectList="$dict.getDict('householdRelation')" />
|
||||
</el-form-item>
|
||||
<el-form-item label="持股数量" prop="shareholdingNumber">
|
||||
<el-input v-model="table.shareholdingNumber" placeholder="请输入持股数量" clearable/>
|
||||
</el-form-item>
|
||||
<el-form-item label="持股金额(元)" prop="shareholdingAmount">
|
||||
<el-input v-model="table.shareholdingAmount" placeholder="请输入持股金额" clearable/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ai-dialog>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapState} from 'vuex'
|
||||
export default {
|
||||
name: "Add",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function,
|
||||
params: Object,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
id: '',
|
||||
form: {
|
||||
organizationName: '',
|
||||
areaId: '',
|
||||
areaName: '',
|
||||
unifiedCode: '',
|
||||
stockCertificateCode: '',
|
||||
fileList: [],
|
||||
},
|
||||
table: {},
|
||||
isEdit: false,
|
||||
radioFrom: '',
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
disabledLevel: 3,
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
sysInfoDialog: false,
|
||||
data: {},
|
||||
isEditSys: false,
|
||||
sysIndex: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
rules() {
|
||||
return {
|
||||
organizationName: [{required: true, message: '请输入集体经济组织名称', trigger: 'blur'}],
|
||||
unifiedCode: [{required: true, message: '请输入18位统一社会信用代码', trigger: 'blur'},
|
||||
{min: 18, message: '请输入18位统一社会信用代码', trigger: 'blur'}],
|
||||
areaId: [
|
||||
{required: true, message: '请选择所在地区', trigger: 'blur'},
|
||||
{pattern: /[^0]0{0,2}$/,message:'所在地区必须选择到村',trigger: 'blur'}
|
||||
],
|
||||
stockCertificateCode: [{required: true, message: '请输入股权证编号', trigger: 'blur'}],
|
||||
fileList: [{required: true, message: '请上传图片', trigger: 'blur'}],
|
||||
}
|
||||
},
|
||||
dialogRules() {
|
||||
return {
|
||||
name: [{required: true, message: '请输入股权人姓名', trigger: 'blur'}],
|
||||
idNumber: [{required: true, message: '请输入身份证号', trigger: 'blur'}],
|
||||
householdRelation: [{required: true, message: '请选择与户主关系', trigger: 'blur'}],
|
||||
shareholdingNumber: [{required: true, message: '请输入持股数量', trigger: 'blur'}],
|
||||
}
|
||||
},
|
||||
...mapState(['user']),
|
||||
colConfigs() {
|
||||
return [
|
||||
{ prop: "name", label: '股权人姓名', align: "center", width: "150px", },
|
||||
{ prop: "householdRelation", label: '与户主关系', align: "center", width: "200px", dict: 'householdRelation'},
|
||||
{ prop: "idNumber", label: '身份证', align: "center", width: "200px", },
|
||||
{ prop: "shareholdingNumber", label: '持股数量', align: "center", width: "200px", },
|
||||
{ prop: "shareholdingAmount", label: '金额', align: "center", width: "200px", },
|
||||
{ slot: "options" ,},
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$dict.load('householdRelation')
|
||||
if (this.params && this.params.id) {
|
||||
this.id = this.params.id
|
||||
this.getDetail(this.params.id)
|
||||
}
|
||||
this.form.areaId = this.user.info.areaId
|
||||
},
|
||||
methods: {
|
||||
cancel(isRefresh) {
|
||||
this.$emit('change', {
|
||||
type: 'List',
|
||||
isRefresh: !!isRefresh,
|
||||
})
|
||||
},
|
||||
deleteBtn(row, index) {
|
||||
console.log(row);
|
||||
if(row.householdRelation == 11) {
|
||||
return '不可以删除户主'
|
||||
}
|
||||
this.tableData.splice(index, 1)
|
||||
},
|
||||
getDetail(id) {
|
||||
this.instance.post(`/appcollectiveeconomyequity/queryDetailById`,null, {
|
||||
params: {
|
||||
id: id,
|
||||
...this.page,
|
||||
}
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.data = res.data,
|
||||
this.tableData = res.data.shareholderList
|
||||
this.page.total = res.data.shareholderList.length
|
||||
}
|
||||
})
|
||||
},
|
||||
onConfirm() {
|
||||
this.$refs.dialogForm.validate((valid) => {
|
||||
if(valid) {
|
||||
if(this.isEditSys) { //编辑
|
||||
// this.tableData[this.sysIndex] = this.table
|
||||
this.tableData.splice(this.sysIndex, 1, this.table)
|
||||
}else{//新增
|
||||
this.tableData.push(this.table)
|
||||
}
|
||||
this.sysInfoDialog = false
|
||||
this.$forceUpdate()
|
||||
}
|
||||
})
|
||||
},
|
||||
confirm() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.instance.post(`/appcollectiveeconomyequity/addOrUpdate`, {
|
||||
...this.form,
|
||||
id: this.params.id || '',
|
||||
shareholderList: this.tableData,
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 600)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
editBtn(row, index) {
|
||||
console.log(index)
|
||||
this.table = JSON.parse(JSON.stringify(row))
|
||||
this.sysInfoDialog = true
|
||||
this.isEditSys = true
|
||||
this.sysIndex = index
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.Add {
|
||||
height: 100%;
|
||||
background: #f3f4f5;
|
||||
|
||||
::v-deep .ai-detail .ai-detail__footer {
|
||||
background: #FFF;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
109
project/xiushan/apps/AppGroupShareholders/components/List.vue
Normal file
109
project/xiushan/apps/AppGroupShareholders/components/List.vue
Normal file
@@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<section class="List">
|
||||
<ai-list>
|
||||
<!-- :instance="instance" isShowArea v-model="search.areaId" @change="changeArea" -->
|
||||
<ai-title slot="title" title="集体经济组织股权管理" isShowBottomBorder />
|
||||
<template #content>
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="组织名称/持证人/身份证号/股权证编号" v-model="search.executionCode" clearable @clear="page.current = 1, search.executionCode = '',getTableData()"
|
||||
suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/>
|
||||
<!-- 导入导出 -->
|
||||
<ai-import :instance="instance" :dict="dict" importUrl="/appcollectiveeconomyequity/import" url="/appcollectiveeconomyequity/downloadTemplate" name="集体经济组织股权管理信息" @success="getTableData(), $message.success('导入成功!')">
|
||||
<el-button size="small">导入</el-button>
|
||||
</ai-import>
|
||||
<ai-download :instance="instance" url="/appcollectiveeconomyequity/export" :params="search" fileName="集体经济组织股权管理信息"
|
||||
:disabled="tableData.length == 0">
|
||||
<el-button size="small">导出</el-button>
|
||||
</ai-download>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
|
||||
<el-table-column slot="options" label="操作" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button type="text" @click="toAdd(row.id)">详情</el-button>
|
||||
<el-button type="text" @click="handleDelete(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
</ai-list>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "List",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {executionCode: "",areaId:''},
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
areaId: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
colConfigs() {
|
||||
return [
|
||||
{ prop: "organizationName", label: '集体经济组织名称', align: "center", width: "200px", },
|
||||
{ prop: "name", label: '持证人(户主)', align: "center", width: "200px", },
|
||||
{ prop: "idNumber", label: '身份证号', align: "center", width: "200px", },
|
||||
{ prop: "stockCertificateCode", label: '股权编号', align: "center", width: "200px", },
|
||||
{ prop: "totalEquity", label: '股权总数', align: "center", width: "200px", },
|
||||
{ prop: "totalAmount", label: '股金总额(元)', align: "center", width: "200px", },
|
||||
{ prop: "areaName", label: '所在地区', align: "center", width: "200px", },
|
||||
{ slot: "options" ,},
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTableData()
|
||||
},
|
||||
methods: {
|
||||
getTableData() {
|
||||
this.instance.post("/appcollectiveeconomyequity/list", null, {
|
||||
params: {...this.page, ...this.search,...this.select}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.tableData = res.data?.records
|
||||
this.page.total = res.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
toAdd(id) {
|
||||
this.$emit('change', {
|
||||
type: 'Add',
|
||||
params: {
|
||||
id: id || ''
|
||||
}
|
||||
})
|
||||
},
|
||||
handleDelete(id) {
|
||||
this.$confirm("是否要删除?").then(() => {
|
||||
this.instance.post(`/appcollectiveeconomyequity/delete?ids=${id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success("删除成功")
|
||||
this.getTableData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.List {
|
||||
height: 100%;
|
||||
background: #f3f4f5;
|
||||
}
|
||||
</style>
|
||||
@@ -11,51 +11,53 @@
|
||||
<span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="confirm()">保存</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<!-- <ai-bar :title="params.id ? '编辑宅基地所有权信息' : '宅基地所有权信息'"></ai-bar> -->
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="150px">
|
||||
<el-form-item label="使用证书" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入宅基地使用证书号"></el-input>
|
||||
<el-form-item label="使用证书" prop="useCertificate">
|
||||
<el-input v-model="form.useCertificate" placeholder="请输入宅基地使用证书号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所在地区" prop="unifiedCode">
|
||||
<ai-area-select v-model="areaId" provinceAction="/api/area/queryProvinceListContainCity" always-show clearable :instance="$request" :areaLevel="5" @fullname="(name) => (this.formJobWant.employmentAreaName = name)"></ai-area-select>
|
||||
<el-form-item label="所在地区" prop="areaId">
|
||||
<ai-area-select clearable always-show :instance="instance" @fullname="v=>form.areaName = v" v-model="form.areaId" :disabled-level="disabledLevel" :value-level="4"></ai-area-select>
|
||||
</el-form-item>
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="使用人" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入使用人姓名"></el-input>
|
||||
<el-form-item label="使用人" prop="usePerson">
|
||||
<el-input v-model="form.usePerson" placeholder="请输入使用人姓名"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="家庭人口" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入使用人家庭人口"></el-input>
|
||||
<el-form-item label="家庭人口" prop="houseNumber">
|
||||
<el-input type="number" v-model="form.houseNumber" placeholder="请输入使用人家庭人口"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="身份证号" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入使用人身份证号"></el-input>
|
||||
<el-form-item label="身份证号" prop="idNumber">
|
||||
<el-input v-model="form.idNumber" placeholder="请输入使用人身份证号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="土地所有权" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地所有权人/组织名称"></el-input>
|
||||
<el-form-item label="土地所有权" prop="landOwnership">
|
||||
<el-input v-model="form.landOwnership" placeholder="请输入土地所有权人/组织名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="土地面积/㎡" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地面积"></el-input>
|
||||
<el-form-item label="土地面积/㎡" prop="landArea">
|
||||
<el-input v-model="form.landArea" placeholder="请输入土地面积"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="土地四至" prop="unifiedCode">
|
||||
<el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明宅基地的地块名称地界四至" maxlength="500" show-word-limit :rows="5" />
|
||||
<el-form-item label="土地四至" prop="landFourTo">
|
||||
<el-input type="textarea" v-model="form.landFourTo" placeholder="请说明宅基地的地块名称地界四至" maxlength="500" show-word-limit :rows="5" />
|
||||
</el-form-item>
|
||||
<el-form-item label="使用情况" prop="unifiedCode">
|
||||
<el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明宅基地的使用情况" maxlength="500" show-word-limit :rows="5" />
|
||||
<el-form-item label="使用情况" prop="useSituation">
|
||||
<el-input type="textarea" v-model="form.useSituation" placeholder="请说明宅基地的使用情况" maxlength="500" show-word-limit :rows="5" />
|
||||
</el-form-item>
|
||||
<el-form-item label="权证照片" prop="fileList">
|
||||
<ai-uploader v-model="form.fileList" :instance="instance" :limit="9" isShowTip/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
</ai-card>
|
||||
@@ -72,20 +74,22 @@
|
||||
<template slot="content">
|
||||
<ai-card title="合同信息">
|
||||
<template #right>
|
||||
<span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,forms=data">修改</span>
|
||||
<span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,form=data">修改</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-wrapper>
|
||||
<ai-info-item label="使用证书" :value="data.taxpayer"></ai-info-item>
|
||||
<ai-info-item label="所在地区" :value="data.taxpayerNumber"></ai-info-item>
|
||||
<ai-info-item label="使用人" :value="data.taxpayerNumber"></ai-info-item>
|
||||
<ai-info-item label="家庭人口" :value="data.taxYear"></ai-info-item>
|
||||
<ai-info-item label="身份证号" :value="data.taxpayerNumber"></ai-info-item>
|
||||
<ai-info-item label="土地所有权">{{ dict.getLabel('taxInfoLevel', data.taxLevel) }}</ai-info-item>
|
||||
<ai-info-item label="土地面积/㎡" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="土地四至" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="土地面积" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="使用情况" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="使用证书" :value="data.useCertificate" isLine></ai-info-item>
|
||||
<ai-info-item label="所在地区" :value="data.areaName" isLine></ai-info-item>
|
||||
<ai-info-item label="使用人" :value="data.usePerson"></ai-info-item>
|
||||
<ai-info-item label="家庭人口" :value="data.houseNumber"></ai-info-item>
|
||||
<ai-info-item label="身份证号" :value="data.idNumber"></ai-info-item>
|
||||
<ai-info-item label="土地所有权" :value="data.landOwnership">{{ dict.getLabel('landOwnership', data.landOwnership) }}</ai-info-item>
|
||||
<ai-info-item label="土地面积/㎡" :value="data.landArea"></ai-info-item>
|
||||
<ai-info-item label="土地四至" :value="data.landFourTo" isLine></ai-info-item>
|
||||
<ai-info-item label="使用情况" :value="data.useSituation" isLine></ai-info-item>
|
||||
<ai-info-item label="权证照片" isLine>
|
||||
<ai-uploader v-model="data.fileList" :instance="instance" :limit="9" disabled/>
|
||||
</ai-info-item>
|
||||
</ai-wrapper>
|
||||
</template>
|
||||
</ai-card>
|
||||
@@ -108,26 +112,51 @@ export default {
|
||||
return {
|
||||
id: '',
|
||||
form: {
|
||||
unifiedCode: '',
|
||||
useCertificate: '',
|
||||
areaId: '',
|
||||
areaName: '',
|
||||
usePerson: '',
|
||||
houseNumber: '',
|
||||
idNumber: '',
|
||||
landOwnership: '',
|
||||
landArea: '',
|
||||
landFourTo: '',
|
||||
useSituation: '',
|
||||
fileList: [],
|
||||
},
|
||||
isEdit: false,
|
||||
radioFrom: ''
|
||||
radioFrom: '',
|
||||
disabledLevel: 3,
|
||||
data: {},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
rules() {
|
||||
return {
|
||||
unifiedCode: [{required: true, message: '请输入', trigger: 'blur'}]
|
||||
useCertificate: [{required: true, message: '请输入使用证书', trigger: 'blur'}],
|
||||
areaId: [
|
||||
{required: true, message: '请选择所在地区', trigger: 'blur'},
|
||||
{pattern: /[^0]0{0,2}$/,message:'所在地区必须选择到村',trigger: 'blur'}
|
||||
],
|
||||
usePerson: [{required: true, message: '请输入使用人', trigger: 'blur'}],
|
||||
houseNumber: [{required: true, message: '请输入家庭人口', trigger: 'blur'},
|
||||
{pattern: /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/, message: '请输入正整数',trigger: 'blur'}],
|
||||
idNumber: [{required: true, message: '请输入身份证号', trigger: 'blur'}],
|
||||
landOwnership: [{required: true, message: '请输入土地所有权', trigger: 'blur'}],
|
||||
landArea: [{required: true, message: '请输入土地面积', trigger: 'blur'}],
|
||||
landFourTo: [{required: true, message: '请输入土地四至', trigger: 'blur'}],
|
||||
useSituation: [{required: true, message: '请输入使用情况', trigger: 'blur'}],
|
||||
fileList: [{required: true, message: '请上传图片', trigger: 'blur'}],
|
||||
}
|
||||
},
|
||||
...mapState(['user'])
|
||||
...mapState(['user']),
|
||||
},
|
||||
created() {
|
||||
if (this.params && this.params.id) {
|
||||
this.id = this.params.id
|
||||
this.getDetail(this.params.id)
|
||||
}
|
||||
this.areaId = this.user.info.areaId
|
||||
this.form.areaId = this.user.info.areaId
|
||||
},
|
||||
methods: {
|
||||
cancel(isRefresh) {
|
||||
@@ -137,28 +166,28 @@ export default {
|
||||
})
|
||||
},
|
||||
getDetail(id) {
|
||||
// this.instance.post(`/appcreditadminstrativelicense/queryDetailById?id=${id}`).then(res => {
|
||||
// if (res.code === 0) {
|
||||
// this.data = res.data
|
||||
// }
|
||||
// })
|
||||
this.instance.post(`/apphomesteadinfo/queryDetailById?id=${id}`).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.data = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
confirm() {
|
||||
// this.$refs.form.validate((valid) => {
|
||||
// if (valid) {
|
||||
// this.instance.post(`/appcreditadminstrativelicense/addOrUpdate`, {
|
||||
// ...this.forms,
|
||||
// id: this.params.id || '',
|
||||
// }).then(res => {
|
||||
// if (res.code == 0) {
|
||||
// this.$message.success('提交成功')
|
||||
// setTimeout(() => {
|
||||
// this.cancel(true)
|
||||
// }, 600)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.instance.post(`/apphomesteadinfo/addOrUpdate`, {
|
||||
...this.form,
|
||||
id: this.params.id || '',
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 600)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,16 +1,24 @@
|
||||
<template>
|
||||
<section class="List">
|
||||
<ai-list>
|
||||
<!-- :disabledLevel="disabledLevel" -->
|
||||
<ai-title slot="title" title="宅基地管理" isShowBottomBorder :instance="instance" isShowArea v-model="search.areaId" @change="changeArea"/>
|
||||
<!-- :instance="instance" isShowArea v-model="search.areaId" @change="changeArea" -->
|
||||
<ai-title slot="title" title="宅基地管理" isShowBottomBorder />
|
||||
<template #content>
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="查询证书号/使用人/使用人身份证" v-model="search.executionCode" clearable @clear="page.current = 1, search.executionCode = '',getTableData()"
|
||||
<el-input size="small" placeholder="查询证书号/使用人/使用人身份证" v-model="search.useCertificate" clearable @clear="page.current = 1, search.useCertificate = '',getTableData()"
|
||||
suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/>
|
||||
<!-- 导入导出 -->
|
||||
<ai-import :instance="instance" :dict="dict" importUrl="/apphomesteadinfo/import" url="/apphomesteadinfo/downloadTemplate" name="宅基地管理信息模板" @success="getTableData(), $message.success('导入成功!')">
|
||||
<el-button size="small">导入</el-button>
|
||||
</ai-import>
|
||||
<ai-download :instance="instance" url="/apphomesteadinfo/export" :params="search" fileName="宅基地管理信息"
|
||||
:disabled="tableData.length == 0">
|
||||
<el-button size="small">导出</el-button>
|
||||
</ai-download>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@@ -38,7 +46,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {executionCode: "",areaId:''},
|
||||
search: {useCertificate: ""},
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
areaId: '',
|
||||
@@ -48,25 +56,25 @@ export default {
|
||||
...mapState(['user']),
|
||||
colConfigs() {
|
||||
return [
|
||||
{ prop: "executionCode", label: '使用证书号', align: "center", width: "200px", },
|
||||
{ prop: "executionTime", label: '使用人', align: "center", width: "200px", },
|
||||
{ prop: "enterpriseName", label: '身份证号', align: "center", width: "200px", },
|
||||
{ prop: "unifiedCode", label: '家庭人口', align: "center", width: "200px", },
|
||||
{ prop: "dishonestFact", label: '面积/㎡', align: "center", width: "200px", },
|
||||
{ prop: "createTime", label: '土地四至', align: "center", width: "200px", },
|
||||
{ prop: "createUserName", label: '土地所有权', align: "center", width: "200px", },
|
||||
{ prop: "useCertificate", label: '使用证书号', align: "center", width: "200px", },
|
||||
{ prop: "usePerson", label: '使用人', align: "center", width: "200px", },
|
||||
{ prop: "idNumber", label: '身份证号', align: "center", width: "200px", },
|
||||
{ prop: "houseNumber", label: '家庭人口', align: "center", width: "200px", },
|
||||
{ prop: "landArea", label: '面积/㎡', align: "center", width: "200px", },
|
||||
{ prop: "landFourTo", label: '土地四至', align: "center", width: "200px", },
|
||||
{ prop: "landOwnership", label: '土地所有权', align: "center", width: "200px", },
|
||||
{ slot: "options" ,},
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.search.areaId = this.user.info.areaId
|
||||
// this.search.areaId = this.user.info.areaId
|
||||
this.getTableData()
|
||||
},
|
||||
methods: {
|
||||
changeArea() {},
|
||||
getTableData() {
|
||||
this.instance.post("/appcreditdishonestperson/list", null, {
|
||||
this.instance.post("/apphomesteadinfo/list", null, {
|
||||
params: {...this.page, ...this.search,...this.select}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
@@ -85,7 +93,7 @@ export default {
|
||||
},
|
||||
handleDelete(id) {
|
||||
this.$confirm("是否要删除?").then(() => {
|
||||
this.instance.post(`/appcreditdishonestperson/delete?ids=${id}`).then(res => {
|
||||
this.instance.post(`/apphomesteadinfo/delete?ids=${id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success("删除成功")
|
||||
this.getTableData()
|
||||
|
||||
@@ -51,7 +51,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.AppDishonestExecutee {
|
||||
.AppLandTransfer {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -12,109 +12,76 @@
|
||||
</template>
|
||||
<template #content>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="150px">
|
||||
<el-form-item label="土地流出方" prop="unifiedCode">
|
||||
<el-radio-group v-model="radioFrom">
|
||||
<el-radio :label="1">企业组织</el-radio>
|
||||
<el-radio :label="2">个人农户</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-row type="flex" v-if="radioFrom == 1">
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="单位名称" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地流出方单位名称"></el-input>
|
||||
<el-form-item label="土地流出方" prop="landOutflowName">
|
||||
<el-input v-model="form.landOutflowName" placeholder="请输入土地流出方名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="信用代码" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地流出方统一社会信用代码"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" v-if="radioFrom == 2">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="人员姓名" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地流出方人员姓名"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="身份证号" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地流出方身份证号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="土地承接方" prop="unifiedCode">
|
||||
<el-radio-group v-model="radioTo">
|
||||
<el-radio :label="1">企业组织</el-radio>
|
||||
<el-radio :label="2">个人农户</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-row type="flex" v-if="radioTo == 1">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="单位名称" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地承接方单位名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="信用代码" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地承接方统一社会信用代码"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" v-if="radioTo == 2">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="人员姓名" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地承接方人员姓名"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="身份证号" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入土地承接方人员身份证号"></el-input>
|
||||
<el-form-item label="土地流出方证件号码" prop="landOutflowNumber">
|
||||
<el-input v-model="form.landOutflowNumber" placeholder="请输入土地流出方证件号码"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="合同编号" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入合同编号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="土地承接方" prop="landUndertakeName">
|
||||
<el-input v-model="form.landUndertakeName" placeholder="请输入土地承接方名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="流转形式" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入流转形式"></el-input>
|
||||
<el-form-item label="土地承接方证件号码" prop="landUndertakeNumber">
|
||||
<el-input v-model="form.landUndertakeNumber" placeholder="请输入土地承接方证件号码"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="土地面积/㎡" prop="unifiedCode">
|
||||
<ai-select v-model="form.unifiedCode" placeholder="请选择" :selectList="$dict.getDict('')"></ai-select>
|
||||
<el-form-item label="合同编号" prop="contractNo">
|
||||
<el-input v-model="form.contractNo" placeholder="请输入合同编号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="每亩年租金" prop="unifiedCode">
|
||||
<el-input v-model="form.unifiedCode" placeholder="请输入"></el-input>
|
||||
<el-form-item label="流转形式" prop="circulateType">
|
||||
<ai-select v-model="form.circulateType" placeholder="请选择" :selectList="$dict.getDict('landCirculateType')"></ai-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="土地面积/㎡" prop="landArea">
|
||||
<el-input v-model="form.landArea" placeholder="请输入土地面积" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="每亩年租金(元)" prop="yearRent">
|
||||
<el-input v-model="form.yearRent" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="开始日期" prop="unifiedCode">
|
||||
<el-date-picker v-model="form.unifiedCode" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:375px">
|
||||
<el-form-item label="开始日期" prop="startDate">
|
||||
<el-date-picker v-model="form.startDate" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:410px">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="截止日期" prop="unifiedCode">
|
||||
<el-date-picker v-model="form.unifiedCode" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:375px">
|
||||
<el-form-item label="截止日期" prop="endDate">
|
||||
<el-date-picker v-model="form.endDate" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:410px">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="土地信息" prop="unifiedCode">
|
||||
<el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明土地流转的地块名称地界四至" maxlength="500" show-word-limit :rows="5" />
|
||||
<el-form-item label="土地信息" prop="landInfo">
|
||||
<el-input type="textarea" v-model="form.landInfo" placeholder="请说明土地流转的地块名称地界四至" maxlength="500" show-word-limit :rows="5" />
|
||||
</el-form-item>
|
||||
<el-form-item label="土地用途" prop="unifiedCode">
|
||||
<el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明流转土地的用途" maxlength="500" show-word-limit :rows="5" />
|
||||
<el-form-item label="土地用途" prop="landUse">
|
||||
<el-input type="textarea" v-model="form.landUse" placeholder="请说明流转土地的用途" maxlength="500" show-word-limit :rows="5" />
|
||||
</el-form-item>
|
||||
<el-form-item label="权证照片" prop="fileList">
|
||||
<ai-uploader v-model="form.fileList" :instance="instance" :limit="9" isShowTip/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
@@ -125,31 +92,29 @@
|
||||
<el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button>
|
||||
</template>
|
||||
</ai-detail>
|
||||
<ai-detail class="add" v-if="id && !isEdit">
|
||||
<ai-detail class="add" v-if="params.id && !isEdit">
|
||||
<template slot="title">
|
||||
<ai-title title="详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"></ai-title>
|
||||
</template>
|
||||
<template slot="content">
|
||||
<ai-card title="基本信息">
|
||||
<template #right>
|
||||
<span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,forms=data">修改</span>
|
||||
<span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,form=data">修改</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-wrapper>
|
||||
<ai-info-item label="土地流出方" :value="data.taxpayer"></ai-info-item>
|
||||
<ai-info-item label="信用代码" :value="data.taxpayerNumber"></ai-info-item>
|
||||
<ai-info-item label="身份证" :value="data.taxpayerNumber"></ai-info-item>
|
||||
<ai-info-item label="土地承接方" :value="data.taxYear"></ai-info-item>
|
||||
<ai-info-item label="信用代码" :value="data.taxpayerNumber"></ai-info-item>
|
||||
<ai-info-item label="身份证号">{{ dict.getLabel('taxInfoLevel', data.taxLevel) }}</ai-info-item>
|
||||
<ai-info-item label="流转形式" :value="data.enterpriseName"></ai-info-item>
|
||||
<ai-info-item label="土地面积" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="每亩年租金" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="土地面积" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="开始日期" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="截止日期" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="土地信息" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="土地用途" :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="土地流出方" :value="data.landOutflowName" ></ai-info-item>
|
||||
<ai-info-item label="土地流出方证件号码" :value="data.landOutflowNumber"></ai-info-item>
|
||||
<ai-info-item label="土地承接方" :value="data.landUndertakeName"></ai-info-item>
|
||||
<ai-info-item label="土地承接方证件号码" :value="data.contractNo"></ai-info-item>
|
||||
<ai-info-item label="合同编号" :value="data.landUndertakeNumber"></ai-info-item>
|
||||
<ai-info-item label="流转形式">{{ $dict.getLabel('landCirculateType',data.circulateType) }}</ai-info-item>
|
||||
<ai-info-item label="土地面积" :value="data.landArea"></ai-info-item>
|
||||
<ai-info-item label="每亩年租金(元)" :value="data.yearRent"></ai-info-item>
|
||||
<ai-info-item label="开始日期" :value="data.startDate"></ai-info-item>
|
||||
<ai-info-item label="截止日期" :value="data.endDate"></ai-info-item>
|
||||
<ai-info-item label="土地信息" :value="data.landInfo"></ai-info-item>
|
||||
<ai-info-item label="土地用途" :value="data.landUse"></ai-info-item>
|
||||
</ai-wrapper>
|
||||
</template>
|
||||
</ai-card>
|
||||
@@ -172,7 +137,19 @@ export default {
|
||||
radioTo: '',
|
||||
radioFrom: '',
|
||||
form: {
|
||||
unifiedCode: '',
|
||||
landOutflowName: '',
|
||||
landOutflowNumber: '',
|
||||
landUndertakeName: '',
|
||||
landUndertakeNumber: '',
|
||||
contractNo: '',
|
||||
circulateType: '',
|
||||
landArea: '',
|
||||
yearRent: '',
|
||||
startDate: '',
|
||||
endDate:'' ,
|
||||
landInfo: '',
|
||||
landUse: '',
|
||||
fileList: [],
|
||||
},
|
||||
data: {},
|
||||
isEdit: false,
|
||||
@@ -182,12 +159,25 @@ export default {
|
||||
computed: {
|
||||
rules() {
|
||||
return {
|
||||
unifiedCode: [{required: true, message: "请输入名称", trigger: "blur"}],
|
||||
landOutflowName: [{required: true, message: "请输入土地流出方名称", trigger: "blur"}],
|
||||
landOutflowNumber: [{required: true, message: "请输入土地流出方证件号码", trigger: "blur"}],
|
||||
landUndertakeName: [{required: true, message: "请输入土地承接方名称", trigger: "blur"}],
|
||||
landUndertakeNumber: [{required: true, message: "请输入土地承接方证件号码", trigger: "blur"}],
|
||||
contractNo: [{required: true, message: "请输入合同编号", trigger: "blur"}],
|
||||
circulateType: [{required: true, message: "请选择流转形式", trigger: "blur"}],
|
||||
landArea: [{required: true, message: "请输入土地面积", trigger: "blur"}],
|
||||
// yearRent: [{required: true, message: "请输入每亩年租金", trigger: "blur"}],
|
||||
startDate: [{required: true, message: "请选择开始日期", trigger: "blur"}],
|
||||
// endDate: [{required: true, message: "请选择截止日期", trigger: "blur"}],
|
||||
landInfo: [{required: true, message: "请输入土地信息", trigger: "blur"}],
|
||||
// landUse: [{required: true, message: "请输入土地用途", trigger: "blur"}],
|
||||
fileList: [{required: true, message: "请上传图片", trigger: "blur"}],
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
created() {
|
||||
this.$dict.load('landCirculateType')
|
||||
if(this.params && this.params.id) {
|
||||
this.id = this.params.id
|
||||
this.getDetail(this.params.id)
|
||||
@@ -201,28 +191,28 @@ export default {
|
||||
})
|
||||
},
|
||||
getDetail(id) {
|
||||
// this.instance.post(`/appcreditadminstrativelicense/queryDetailById?id=${id}`).then(res => {
|
||||
// if (res.code === 0) {
|
||||
// this.data = res.data
|
||||
// }
|
||||
// })
|
||||
this.instance.post(`/applandcirculateinfo/queryDetailById?id=${id}`).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.data = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
confirm() {
|
||||
// this.$refs.forms.validate((valid) => {
|
||||
// if (valid) {
|
||||
// this.instance.post(`/appcreditadminstrativelicense/addOrUpdate`, {
|
||||
// ...this.forms,
|
||||
// id: this.params.id || '',
|
||||
// }).then(res => {
|
||||
// if (res.code == 0) {
|
||||
// this.$message.success('提交成功')
|
||||
// setTimeout(() => {
|
||||
// this.cancel(true)
|
||||
// }, 600)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.instance.post(`/applandcirculateinfo/addOrUpdate`, {
|
||||
...this.form,
|
||||
id: this.params.id || '',
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 600)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -231,11 +221,14 @@ export default {
|
||||
<style lang="scss" scoped>
|
||||
.Add {
|
||||
height: 100%;
|
||||
// background: #f3f4f5;
|
||||
background: #f3f4f5;
|
||||
|
||||
.footer {
|
||||
::v-deep .footer {
|
||||
background: #FFF !important;
|
||||
}
|
||||
|
||||
background: #FFF;
|
||||
::v-deep .ai-info-item label {
|
||||
width: 130px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,17 +1,24 @@
|
||||
<template>
|
||||
<section class="List">
|
||||
<ai-list>
|
||||
<ai-title slot="title" title="土地流转经营" isShowBottomBorder :isShowArea="true" v-model="areaId"/>
|
||||
<ai-title slot="title" title="土地流转经营" isShowBottomBorder/>
|
||||
<template #content>
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button>
|
||||
<ai-select v-model="readType" @change="onChange" placeholder="流转形式" :selectList="$dict.getDict('readType')"></ai-select>
|
||||
<ai-select v-model="readType" @change="onChange" placeholder="经营状态" :selectList="$dict.getDict('readType')"></ai-select>
|
||||
<ai-select v-model="circulateType" @change="onChange" placeholder="流转形式" :selectList="$dict.getDict('landCirculateType')"></ai-select>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="查询合同编号/流出方/承接方/证件号码" v-model="search.name" clearable @clear="page.current = 1, searchObj.name = '',getTableData()"
|
||||
<el-input size="small" placeholder="查询合同编号/流出方/承接方/证件号码" v-model="search.contractNo" clearable @clear="page.current = 1, search.contractNo = '',getTableData()"
|
||||
suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/>
|
||||
<!-- 导入导出 -->
|
||||
<ai-import :instance="instance" :dict="dict" importUrl="/applandcirculateinfo/import" url="/applandcirculateinfo/downloadTemplate" name="土地流转经营信息" @success="getTableData(), $message.success('导入成功!')">
|
||||
<el-button size="small">导入</el-button>
|
||||
</ai-import>
|
||||
<ai-download :instance="instance" url="/applandcirculateinfo/export" :params="search" fileName="土地流转经营信息"
|
||||
:disabled="tableData.length == 0">
|
||||
<el-button size="small">导出</el-button>
|
||||
</ai-download>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@@ -19,7 +26,6 @@
|
||||
<el-table-column slot="options" label="操作" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button type="text" @click="toAdd(row.id)">详情</el-button>
|
||||
<el-button type="text" @click="toAdd(row.id)">编辑</el-button>
|
||||
<el-button type="text" @click="handleDelete(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -40,7 +46,8 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {name: ""},
|
||||
search: {contractNo: ""},
|
||||
select: {circulateType: ''},
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
readType:'',
|
||||
@@ -50,26 +57,26 @@ export default {
|
||||
computed: {
|
||||
colConfigs() {
|
||||
return [
|
||||
{ prop: "executionCode", label: '土地流出方', align: "center", width: "200px", },
|
||||
{ prop: "executionTime", label: '土地面积/㎡', align: "center", width: "200px", },
|
||||
{ prop: "enterpriseName", label: '流转形式', align: "center", width: "200px", },
|
||||
{ prop: "unifiedCode", label: '土地承接方', align: "center", width: "200px", },
|
||||
{ prop: "dishonestFact", label: '承接方证件号码', align: "center", width: "200px", },
|
||||
{ prop: "createTime", label: '有效期限', align: "center", width: "200px", },
|
||||
{ prop: "createUserName", label: '经营状态', align: "center", width: "200px", },
|
||||
{ prop: "landOutflowName", label: '土地流出方', align: "center", width: "200px", },
|
||||
{ prop: "landArea", label: '土地面积/㎡', align: "center", width: "200px", },
|
||||
{ prop: "circulateType", label: '流转形式', align: "center", width: "200px", dict: "landCirculateType" },
|
||||
{ prop: "landUndertakeName", label: '土地承接方', align: "center", width: "200px", },
|
||||
{ prop: "landUndertakeNumber", label: '承接方证件号码', align: "center", width: "200px", },
|
||||
{ prop: "contractNo", label: '合同编号', align: "center", width: "200px", },
|
||||
{ prop: "endDate", label: '有效期限', align: "center", width: "200px", },
|
||||
{ slot: "options" ,},
|
||||
]
|
||||
},
|
||||
...mapState(['user'])
|
||||
},
|
||||
created() {
|
||||
this.$dict.load('readType')
|
||||
this.$dict.load('landCirculateType')
|
||||
this.getTableData()
|
||||
this.areaId = this.user.info.areaId
|
||||
},
|
||||
methods: {
|
||||
getTableData() {
|
||||
this.instance.post("/appcreditdishonestperson/list", null, {
|
||||
this.instance.post("/applandcirculateinfo/list", null, {
|
||||
params: {...this.page, ...this.search,...this.select}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
@@ -78,7 +85,11 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
onChange() {},
|
||||
onChange(v) {
|
||||
this.tableData = []
|
||||
this.select.circulateType = v;
|
||||
this.getTableData()
|
||||
},
|
||||
toAdd(id) {
|
||||
this.$emit('change', {
|
||||
type: 'Add',
|
||||
@@ -89,7 +100,7 @@ export default {
|
||||
},
|
||||
handleDelete(id) {
|
||||
this.$confirm("是否要删除?").then(() => {
|
||||
this.instance.post(`/appcreditdishonestperson/delete?ids=${id}`).then(res => {
|
||||
this.instance.post(`/applandcirculateinfo/delete?ids=${id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success("删除成功")
|
||||
this.getTableData()
|
||||
|
||||
@@ -116,7 +116,8 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
detail: {},
|
||||
menuList: ['基本信息','股权结构'],
|
||||
menuList: ['基本信息'],
|
||||
// menuList: ['基本信息','股权结构'],
|
||||
index: 0,
|
||||
tableData: [],
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<template>
|
||||
<section class="AppPublicArrearage">
|
||||
<keep-alive :include="['List']">
|
||||
<component ref="component" :is="component" :instance="instance" :params="params" :dict="dict" @change="onChange"/>
|
||||
</keep-alive>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import List from "./components/List.vue";
|
||||
import Add from "./components/Add.vue";
|
||||
|
||||
export default {
|
||||
name: "AppPublicArrearage",
|
||||
label: "公共事业欠费",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
},
|
||||
components: {Add, List},
|
||||
data() {
|
||||
return {
|
||||
component: "List",
|
||||
params: {},
|
||||
include: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onChange(data) {
|
||||
if (data.type === "Add") {
|
||||
this.component = "Add";
|
||||
this.params = data.params;
|
||||
}
|
||||
|
||||
if (data.type === "List") {
|
||||
this.component = "List";
|
||||
this.params = data.params;
|
||||
|
||||
this.$nextTick(() => {
|
||||
if (data.isRefresh) {
|
||||
this.$refs.component.getTableData();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.AppPublicArrearage {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
234
project/xiushan/apps/AppPublicArrearage/components/Add.vue
Normal file
234
project/xiushan/apps/AppPublicArrearage/components/Add.vue
Normal file
@@ -0,0 +1,234 @@
|
||||
<template>
|
||||
<section class="Add">
|
||||
<ai-detail class="add" v-if="isEdit == true || !id">
|
||||
<template #title>
|
||||
<ai-title :title="params.id ? '编辑公共事业欠费信息' : '新增公共事业欠费信息'" :isShowBack="true" :isShowBottomBorder="true" @onBackClick="cancel(false)" />
|
||||
</template>
|
||||
<template slot="content">
|
||||
<ai-card title="基本信息">
|
||||
<template #right v-if="params.id">
|
||||
<span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="isEdit=false">取消</span>
|
||||
<span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="confirm()">保存</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<el-form ref="forms" :model="forms" :rules="formRules" size="small" label-width="180px">
|
||||
<el-form-item label="欠费金额(万元)" prop="executionCode">
|
||||
<el-input v-model="forms.executionCode" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="欠费类型名称" prop="executionCourt">
|
||||
<ai-select v-model="forms.executionSituation" placeholder="请选择文档类型" :selectList="$dict.getDict('dishonestPersonSituation')"></ai-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="欠费主体" prop="executionTime">
|
||||
<el-input v-model="forms.executionCode" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="失信严重程度" prop="executionSituation">
|
||||
<ai-select v-model="forms.executionSituation" placeholder="请选择文档类型" :selectList="$dict.getDict('dishonestPersonSituation')"></ai-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="统一信用代码" prop="enterpriseName">
|
||||
<el-input v-model="forms.enterpriseName" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="认定日期" prop="unifiedCode">
|
||||
<el-date-picker v-model="forms.executionTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="失信行为有效期" prop="enterpriseName">
|
||||
<el-date-picker v-model="forms.executionTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="欠费统计截止日期" prop="unifiedCode">
|
||||
<el-date-picker v-model="forms.executionTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据来源机构" prop="enterpriseName">
|
||||
<el-input v-model="forms.enterpriseName" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
</ai-card>
|
||||
</template>
|
||||
<template slot="footer" class="footer">
|
||||
<el-button class="delete-btn footer-btn" @click="cancel(false)">取消</el-button>
|
||||
<el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button>
|
||||
</template>
|
||||
</ai-detail>
|
||||
|
||||
<ai-detail class="add" v-if="id && !isEdit">
|
||||
<template slot="title">
|
||||
<ai-title title="失信被执行人信息详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"></ai-title>
|
||||
</template>
|
||||
<template slot="content">
|
||||
<ai-card title="基本信息">
|
||||
<template #right>
|
||||
<span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,forms=data">修改</span>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-wrapper>
|
||||
<ai-info-item label="执行案号" :value="data.executionCode"></ai-info-item>
|
||||
<ai-info-item label="执行法院" :value="data.executionCourt"></ai-info-item>
|
||||
<ai-info-item label="执行时间" :value="data.executionTime"></ai-info-item>
|
||||
<ai-info-item label="履行情况" :value="data.executionSituation">{{ dict.getLabel('dishonestPersonSituation',data.executionSituation) }}</ai-info-item>
|
||||
<ai-info-item label="失信被执行主体" :value="data.enterpriseName"></ai-info-item>
|
||||
<ai-info-item label="统一信用代码" isLine :value="data.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="失信事实" isLine :value="data.dishonestFact"></ai-info-item>
|
||||
</ai-wrapper>
|
||||
</template>
|
||||
</ai-card>
|
||||
</template>
|
||||
</ai-detail>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Add",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function,
|
||||
params: Object,
|
||||
},
|
||||
computed: {
|
||||
formRules() {
|
||||
return {
|
||||
executionCode: [{required: true,message:"请输入执行编号",trigger: "blur"}],
|
||||
executionCourt: [{required: true,message:"请输入执行法院",trigger: "blur"}],
|
||||
executionTime: [{required: true,message:"请输入执行时间",trigger: "blur"}],
|
||||
executionSituation: [{required: true,message:"请选择履行情况",trigger: "blur"}],
|
||||
enterpriseName: [{required: true,message:"请输入失信被执行主体",trigger: "blur"}],
|
||||
unifiedCode: [{required: true,message:"请输入统一信用代码",trigger: "blur"},
|
||||
{ min: 18, max: 18, message: '长度为18个字符', trigger: 'blur' }],
|
||||
dishonestFact: [{required: true,message:"请输入失信事实",trigger: "blur"}],
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$dict.load('dishonestPersonSituation')
|
||||
if (this.params && this.params.id) {
|
||||
this.id = this.params.id
|
||||
this.getDetail(this.params.id)
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
forms: {
|
||||
executionCode: '',
|
||||
executionCourt: '',
|
||||
executionTime: '',
|
||||
executionSituation: '',
|
||||
enterpriseName: '',
|
||||
unifiedCode: '',
|
||||
dishonestFact: '',
|
||||
},
|
||||
data: {},
|
||||
isEdit: false,
|
||||
id: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
cancel(isRefresh) {
|
||||
this.$emit('change', {
|
||||
type: 'List',
|
||||
isRefresh: !!isRefresh,
|
||||
})
|
||||
},
|
||||
getDetail(id) {
|
||||
this.instance.post(`/appcreditdishonestperson/queryDetailById?id=${id}`).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.data = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
confirm( ) {
|
||||
this.$refs.forms.validate((valid) => {
|
||||
if (valid) {
|
||||
this.instance.post(`/appcreditdishonestperson/addOrUpdate`, {
|
||||
...this.forms,
|
||||
id: this.params.id || '',
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 600)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.Add {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
background: #f2f4f6 !important;
|
||||
|
||||
.add-form__item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .el-form-item__label {
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
::v-deep .ai-detail__footer {
|
||||
background: #fff !important;
|
||||
}
|
||||
|
||||
::v-deep .ai-info-item label {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
::v-deep .ai-detail__content--active {
|
||||
padding: 20px;
|
||||
|
||||
.ai-detail__content--wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.aibar {
|
||||
padding: 0 16px;
|
||||
}
|
||||
|
||||
.el-form {
|
||||
padding: 0 96px 20px 50px;
|
||||
}
|
||||
|
||||
.add-form {
|
||||
background: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .ai-wrapper {
|
||||
align-items: inherit !important;
|
||||
}
|
||||
|
||||
.user-wrapper {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
object-fit: contain;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.footer-btn {
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
.el-form {
|
||||
padding-bottom: 80px;
|
||||
}
|
||||
::v-deep .el-form-item {
|
||||
width: 50%;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
107
project/xiushan/apps/AppPublicArrearage/components/List.vue
Normal file
107
project/xiushan/apps/AppPublicArrearage/components/List.vue
Normal file
@@ -0,0 +1,107 @@
|
||||
<template>
|
||||
<section class="List">
|
||||
<ai-list>
|
||||
<ai-title slot="title" title="公共事业欠费信息" isShowBottomBorder/>
|
||||
<template #content>
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="欠费主题/统一信用社会代码" v-model="search.executionCode" clearable @clear="page.current = 1, search.executionCode = '',getTableData()"
|
||||
suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/>
|
||||
<ai-import :instance="instance" :dict="dict" importUrl="/appcreditdishonestperson/import" url="/appcreditdishonestperson/downloadTemplate" name="失信被执行人信息" @success="getTableData(), $message.success('导入成功!')">
|
||||
<el-button size="small">导入</el-button>
|
||||
</ai-import>
|
||||
<ai-download :instance="instance" url="/appcreditdishonestperson/export" :params="search" fileName="公共事业欠费信息"
|
||||
:disabled="tableData.length == 0">
|
||||
<el-button size="small">导出</el-button>
|
||||
</ai-download>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
|
||||
<el-table-column slot="options" label="操作" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button type="text" @click="toAdd(row.id)">详情</el-button>
|
||||
<el-button type="text" @click="handleDelete(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
</ai-list>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "List",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {executionCode: ""},
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
colConfigs() {
|
||||
return [
|
||||
{ prop: "executionCode", label: '欠费主体', align: "center", width: "200px", },
|
||||
{ prop: "executionTime", label: '统一信用代码', align: "center", width: "120px", },
|
||||
{ prop: "enterpriseName", label: '欠费类型名称', align: "center", width: "120px", },
|
||||
{ prop: "unifiedCode", label: '欠费金额(万元)', align: "center", width: "100px", },
|
||||
{ prop: "dishonestFact", label: '失信严重程度', align: "center", width: "120px", },
|
||||
{ prop: "createTime", label: '认定日期', align: "center", width: "100px", },
|
||||
{ prop: "createTime", label: '更新时间', align: "center", width: "100px", },
|
||||
{ prop: "createUserName", label: '操作人', align: "center", width: "100px", },
|
||||
{ slot: "options" ,},
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTableData()
|
||||
},
|
||||
methods: {
|
||||
getTableData() {
|
||||
this.instance.post("/appcreditdishonestperson/list", null, {
|
||||
params: {...this.page, ...this.search,...this.select}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.tableData = res.data?.records
|
||||
this.page.total = res.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
toAdd(id) {
|
||||
this.$emit('change', {
|
||||
type: 'Add',
|
||||
params: {
|
||||
id: id || ''
|
||||
}
|
||||
})
|
||||
},
|
||||
handleDelete(id) {
|
||||
this.$confirm("是否要删除?").then(() => {
|
||||
this.instance.post(`/appcreditdishonestperson/delete?ids=${id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success("删除成功")
|
||||
this.getTableData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.List {
|
||||
height: 100%;
|
||||
background: #f3f4f5;
|
||||
}
|
||||
</style>
|
||||
@@ -68,9 +68,11 @@ export default {
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getInfo()
|
||||
this.getList()
|
||||
mounted() {
|
||||
this.$dict.load(['atWillReportType']).then(() => {
|
||||
this.getInfo()
|
||||
this.getList()
|
||||
});
|
||||
},
|
||||
computed: {
|
||||
colConfigs() {
|
||||
@@ -81,10 +83,12 @@ export default {
|
||||
align: 'left'
|
||||
},
|
||||
{
|
||||
prop: 'doType',
|
||||
prop: "bizType",
|
||||
label: "类型",
|
||||
width: 160,
|
||||
align: 'center',
|
||||
label: '类型',
|
||||
dict:"integralDetailType",
|
||||
formart: (bizType) =>
|
||||
this.dict.getLabel("integralDetailType", bizType),
|
||||
},
|
||||
{
|
||||
prop: 'changeIntegral',
|
||||
@@ -116,7 +120,7 @@ export default {
|
||||
getList() {
|
||||
let {id: portalUserId} = this.$route.query
|
||||
this.instance.post(`/appvillagerintegraldetail/list`, null, {
|
||||
params: {...this.page, portalUserId}
|
||||
params: {...this.page, portalUserId, bizType: this.doType}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.tableData = res.data.records
|
||||
|
||||
@@ -32,7 +32,8 @@
|
||||
<el-table-column label="操作" slot="options" fixed="right" align="center" width="180">
|
||||
<template v-slot="{row}">
|
||||
<div class="table-options">
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralfamily_detail')" title="详情"
|
||||
<!-- :disabled="!$permissions('app_appvillagerintegralfamily_detail')" -->
|
||||
<el-button type="text" title="详情"
|
||||
@click="goDetail(row)">详情
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
@@ -8,56 +8,64 @@
|
||||
<ai-search-bar bottomBorder>
|
||||
<template slot="left">
|
||||
<ai-select
|
||||
v-model="search.classification"
|
||||
@change="search.current = 1, getList()"
|
||||
placeholder="请选择分类"
|
||||
:selectList="dict.getDict('atWillReportType')">
|
||||
v-model="search.classification"
|
||||
@change="search.current = 1, getList()"
|
||||
placeholder="请选择分类"
|
||||
:selectList="dict.getDict('atWillReportType')">
|
||||
</ai-select>
|
||||
<!-- <ai-select-->
|
||||
<!-- v-model="search.integralType"-->
|
||||
<!-- @change="search.current = 1, getList()"-->
|
||||
<!-- placeholder="请选择类型"-->
|
||||
<!-- :selectList="dict.getDict('integralIntegralType')">-->
|
||||
<!-- </ai-select>-->
|
||||
<ai-select
|
||||
v-model="search.integralType"
|
||||
@change="search.current = 1, getList()"
|
||||
placeholder="请选择类型"
|
||||
:selectList="dict.getDict('integralIntegralType')">
|
||||
</ai-select>
|
||||
<ai-select
|
||||
v-model="search.ruleStatus"
|
||||
@change="search.current = 1, getList()"
|
||||
placeholder="请选择状态"
|
||||
:selectList="dict.getDict('integralRuleStatus')">
|
||||
v-model="search.ruleStatus"
|
||||
@change="search.current = 1, getList()"
|
||||
placeholder="请选择状态"
|
||||
:selectList="dict.getDict('integralRuleStatus')">
|
||||
</ai-select>
|
||||
</template>
|
||||
<template slot="right">
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-search-bar style="margin-top: 16px;">
|
||||
<template #left>
|
||||
<el-button type="primary" icon="iconfont iconAdd" @click="addRule">添加</el-button>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<!-- <ai-search-bar style="margin-top: 16px;">-->
|
||||
<!-- <template #left>-->
|
||||
<!-- <el-button type="primary" icon="iconfont iconAdd" @click="addRule">添加</el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </ai-search-bar>-->
|
||||
<ai-table
|
||||
:tableData="tableData"
|
||||
:col-configs="colConfigs"
|
||||
:total="total"
|
||||
ref="aitableex"
|
||||
:current.sync="search.current"
|
||||
:size.sync="search.size"
|
||||
@getList="getList">
|
||||
<el-table-column slot="integral" label="分值" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
:tableData="tableData"
|
||||
:col-configs="colConfigs"
|
||||
:total="total"
|
||||
ref="aitableex"
|
||||
:current.sync="search.current"
|
||||
:size.sync="search.size"
|
||||
@getList="getList">
|
||||
<el-table-column slot="integral" label="分值" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<span
|
||||
v-if="row.integralValueType == 1">
|
||||
{{ row.integralStart > 0 ? '+' + row.integralStart : row.integralStart }} ~ {{ row.integralEnd > 0 ? '+' + row.integralEnd : row.integralEnd }}
|
||||
v-if="row.integralValueType == 1">
|
||||
{{
|
||||
row.integralStart > 0 ? '+' + row.integralStart : row.integralStart
|
||||
}} ~ {{ row.integralEnd > 0 ? '+' + row.integralEnd : row.integralEnd }}
|
||||
</span>
|
||||
<span v-else>{{ row.integral > 0 ? '+' : '' }}{{ row.integral }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<span v-else>{{ row.integral > 0 ? '+' : '' }}{{ row.integral }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column slot="options" label="操作" align="center" fixed="right" width="200">
|
||||
<template slot-scope="{ row }">
|
||||
<div class="table-options">
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" @click="changeStatus(row.id, 0)" v-if="row.ruleStatus == 1">停用</el-button>
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" @click="changeStatus(row.id, 1)" v-else >启用</el-button>
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" @click="toEdit(row)">编辑</el-button>
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_del')" @click="remove(row.id)">删除</el-button>
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')"
|
||||
@click="changeStatus(row.id, 0)" v-if="row.ruleStatus == 1">停用
|
||||
</el-button>
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')"
|
||||
@click="changeStatus(row.id, 1)" v-else>启用
|
||||
</el-button>
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')"
|
||||
@click="toEdit(row)">编辑
|
||||
</el-button>
|
||||
<!-- <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_del')" @click="remove(row.id)">删除</el-button>-->
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -66,72 +74,54 @@
|
||||
</ai-list>
|
||||
|
||||
<ai-dialog
|
||||
:title="dialog.title"
|
||||
:visible.sync="dialog.visible"
|
||||
:customFooter="true"
|
||||
:destroyOnClose="true"
|
||||
@close="init('ruleForm')"
|
||||
width="520px">
|
||||
:title="dialog.title"
|
||||
:visible.sync="dialog.visible"
|
||||
:customFooter="true"
|
||||
:destroyOnClose="true"
|
||||
@close="init('ruleForm')"
|
||||
width="520px">
|
||||
<div class="form_div">
|
||||
<el-form
|
||||
ref="ruleForm"
|
||||
:model="dialogInfo"
|
||||
:rules="formRules"
|
||||
size="small"
|
||||
label-suffix=":"
|
||||
label-width="100px">
|
||||
ref="ruleForm"
|
||||
:model="dialogInfo"
|
||||
:rules="formRules"
|
||||
size="small"
|
||||
label-suffix=":"
|
||||
label-width="120px">
|
||||
<el-form-item label="类别" prop="classification">
|
||||
<ai-select
|
||||
size="small"
|
||||
v-model="dialogInfo.classification"
|
||||
placeholder="请选择..."
|
||||
:selectList="dict.getDict('atWillReportType')">
|
||||
</ai-select>
|
||||
<ai-select v-model="dialogInfo.classification" :selectList="dict.getDict('atWillReportType')"
|
||||
:disabled="!!dialogInfo.id"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="事项" prop="ruleName">
|
||||
<el-input placeholder="请输入…" v-model="dialogInfo.ruleName"></el-input>
|
||||
<el-form-item label="获得积分" prop="integral">
|
||||
<el-input placeholder="请输入自然数" v-model.number="dialogInfo.integral" clearable/>
|
||||
</el-form-item>
|
||||
<el-form-item label="规则说明" prop="ruleDescription">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
placeholder="请输入…"
|
||||
v-model="dialogInfo.ruleDescription">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="integralType">
|
||||
<el-radio-group v-model="dialogInfo.integralType">
|
||||
<el-radio label="1">加分</el-radio>
|
||||
<el-radio label="0">扣分</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="分值" prop="integralValueType">
|
||||
<el-radio-group v-model="dialogInfo.integralValueType" @change="numTypeChange">
|
||||
<el-radio label="0">固定分值</el-radio>
|
||||
<el-radio label="1">区间分值</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="积分" required v-if="dialogInfo.integralValueType == '1'">
|
||||
<el-col :span="7" style="width: 30%;">
|
||||
<el-form-item prop="integralStart">
|
||||
<el-input placeholder="请输入整数" v-model="dialogInfo.integralStart"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col class="line" :span="1" style="width: 4%;text-align:center;">-</el-col>
|
||||
<el-col :span="7" style="width: 30%;">
|
||||
<el-form-item prop="integralEnd">
|
||||
<el-input placeholder="请输入整数" v-model="dialogInfo.integralEnd"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col class="line" :span="9" style="width: 36%;"></el-col>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="积分" required v-if="dialogInfo.integralValueType == '0'">
|
||||
<el-form-item prop="integral">
|
||||
<el-input placeholder="请输入自然数" v-model="dialogInfo.integral"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="每天获取次数" prop="upperLimit">
|
||||
<el-input placeholder="请输入自然数" v-model.number="dialogInfo.upperLimit" clearable/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="事项" prop="ruleName">-->
|
||||
<!-- <el-input placeholder="请输入…" v-model="dialogInfo.ruleName"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="规则说明" prop="ruleDescription">-->
|
||||
<!-- <el-input-->
|
||||
<!-- type="textarea"-->
|
||||
<!-- :rows="3"-->
|
||||
<!-- maxlength="500"-->
|
||||
<!-- show-word-limit-->
|
||||
<!-- placeholder="请输入…"-->
|
||||
<!-- v-model="dialogInfo.ruleDescription">-->
|
||||
<!-- </el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="类型" prop="integralType">-->
|
||||
<!-- <el-radio-group v-model="dialogInfo.integralType">-->
|
||||
<!-- <el-radio label="1">加分</el-radio>-->
|
||||
<!-- <el-radio label="0">扣分</el-radio>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="积分" required v-if="dialogInfo.integralValueType == '0'">-->
|
||||
<!-- <el-form-item prop="integral">-->
|
||||
<!-- <el-input placeholder="请输入自然数" v-model="dialogInfo.integral"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
@@ -152,7 +142,7 @@ export default {
|
||||
},
|
||||
|
||||
data() {
|
||||
var integralPass = (rule, value, callback) => {
|
||||
let integralPass = (rule, value, callback) => {
|
||||
if (value) {
|
||||
if ((/(^[0-9]\d*$)/.test(value))) {
|
||||
callback();
|
||||
@@ -163,7 +153,7 @@ export default {
|
||||
callback(new Error("请输入积分"));
|
||||
}
|
||||
};
|
||||
var integralStartPass = (rule, value, callback) => {
|
||||
const integralStartPass = (rule, value, callback) => {
|
||||
if (value) {
|
||||
if ((/(^[1-9]\d*$)/.test(value))) {
|
||||
callback();
|
||||
@@ -174,7 +164,7 @@ export default {
|
||||
callback(new Error("请输入积分"));
|
||||
}
|
||||
};
|
||||
var integralEndPass = (rule, value, callback) => {
|
||||
const integralEndPass = (rule, value, callback) => {
|
||||
if (value) {
|
||||
if ((/(^[1-9]\d*$)/.test(value))) {
|
||||
if (Number(value) < Number(this.dialogInfo.integralStart)) {
|
||||
@@ -204,18 +194,9 @@ export default {
|
||||
formart: (classification) =>
|
||||
this.dict.getLabel("atWillReportType", classification),
|
||||
},
|
||||
{prop: "ruleName", label: "事项", "show-overflow-tooltip": true, width: 260},
|
||||
{prop: "ruleDescription", label: "规则说明", width: 390},
|
||||
{
|
||||
prop: "integralType",
|
||||
label: "类型",
|
||||
width: 60,
|
||||
formart: (integralType) =>
|
||||
this.dict.getLabel("integralIntegralType", integralType),
|
||||
},
|
||||
{prop: "upperLimit", label: "每天获取次数",align: 'center'},
|
||||
{slot: "integral", label: "分值", width: 70},
|
||||
{prop: "doTime", label: "最后编辑时间", width: 160},
|
||||
{prop: "doUserName", label: "操作人", width: 120},
|
||||
{
|
||||
prop: "ruleStatus",
|
||||
label: "状态",
|
||||
@@ -232,10 +213,11 @@ export default {
|
||||
);
|
||||
},
|
||||
},
|
||||
{prop: "doTime", label: "最后编辑时间", width: 160},
|
||||
{prop: "doUserName", label: "操作人", width: 120},
|
||||
{slot: "options", label: "操作", align: "center"},
|
||||
],
|
||||
tableData: [],
|
||||
|
||||
dialog: {
|
||||
title: "",
|
||||
visible: false,
|
||||
@@ -271,6 +253,9 @@ export default {
|
||||
integral: [
|
||||
{required: true, validator: integralPass, trigger: "change"},
|
||||
],
|
||||
upperLimit: [
|
||||
{required: true, message: "请输入每天获取次数"},
|
||||
],
|
||||
integralStart: [
|
||||
{required: true, validator: integralStartPass, trigger: "change"},
|
||||
],
|
||||
@@ -302,7 +287,6 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
toEdit(row) {
|
||||
this.dialog.title = "编辑积分规则";
|
||||
this.dialog.visible = true;
|
||||
@@ -311,24 +295,20 @@ export default {
|
||||
this.dialogInfo.integralEnd = Math.abs(this.dialogInfo.integralEnd)
|
||||
this.dialogInfo.integral = Math.abs(this.dialogInfo.integral)
|
||||
},
|
||||
|
||||
remove(id) {
|
||||
this.$confirm("删除后不可恢复,是否要删除该事项?", {
|
||||
type: 'error'
|
||||
}).then(() => {
|
||||
this.instance
|
||||
.post(`/app/appvillagerintegralrule/delete?ids=${id}`)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.instance.post(`/app/appvillagerintegralrule/delete?ids=${id}`).then(res => {
|
||||
if (res?.code == 0) {
|
||||
this.$message.success("删除成功!");
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
changeStatus(id, status) {
|
||||
var text = status == 1 ? '启用' : '停用'
|
||||
const text = status == 1 ? '启用' : '停用';
|
||||
this.$confirm(`确定${text}该条规则?`).then(() => {
|
||||
this.instance
|
||||
.post(`/app/appvillagerintegralrule/enableOrDisable?id=${id}`)
|
||||
|
||||
@@ -39,6 +39,12 @@
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户经理姓名" prop="bankCounterpart">
|
||||
<el-input type="text" v-model="form.bankCounterpart" placeholder="客户经理姓名" clearable maxlength="6"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户经理电话" prop="consultationTelephone">
|
||||
<el-input type="text" v-model="form.consultationTelephone" placeholder="客户经理电话" clearable maxlength="11"/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</ai-card>
|
||||
<ai-card title="适用范围">
|
||||
@@ -117,6 +123,8 @@ export default {
|
||||
applyCondition: [{required: true, message: "请输入申请条件", trigger: 'blur'}],
|
||||
needMaterial: [{required: true, message: "请输入所需材料", trigger: 'blur'}],
|
||||
productFeatures: [{required: true, message: "请输入产品特色", trigger: 'blur'}],
|
||||
bankCounterpart: [{required: true, message: "请输入客户经理姓名", trigger: 'change'}],
|
||||
consultationTelephone: [ {required: true, message: "请输入客户经理电话", trigger: 'change'}],
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-form-item label="担保方式">{{ detail.guaranteeModeLabel }}</el-form-item>
|
||||
<el-form-item label="客户经理姓名">{{ detail.bankCounterpart }}</el-form-item>
|
||||
<el-form-item label="客户经理电话">{{ detail.consultationTelephone }}</el-form-item>
|
||||
</template>
|
||||
</ai-card>
|
||||
<ai-card title="适用范围">
|
||||
|
||||
@@ -24,7 +24,7 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.dict.load("productRepaymentTimeline", "financialFundPurpose", "enterpriseAuditStatus", "financialLoanApplyStatus")
|
||||
this.dict.load("productRepaymentTimeline", "financialFundPurpose", "enterpriseAuditStatus", "financialLoanApplyStatus","financialOrganizationType")
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<el-row type="flex">
|
||||
{{ detail.enterpriseName }}
|
||||
<el-link type="primary"
|
||||
@click="$router.push({name:'973f0339e5904d99bc8afe86b8cf4e9c',query:{id:detail.enterpriseId}})">
|
||||
@click="isShow=true">
|
||||
企业详情
|
||||
</el-link>
|
||||
</el-row>
|
||||
@@ -90,6 +90,81 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ai-dialog>
|
||||
<ai-dialog
|
||||
class="dialog"
|
||||
:title="info.enterpriseName"
|
||||
:visible.sync="isShow"
|
||||
@close="isShow = false"
|
||||
@onConfirm="isShow = false"
|
||||
width="1200px">
|
||||
<div class="top">
|
||||
<div class="top-left">{{ info.subEnterpriseName }}</div>
|
||||
<div class="top-right">
|
||||
<div class="top-right__top">
|
||||
<h2>{{ info.enterpriseName }}</h2>
|
||||
<!-- <div class="right">
|
||||
<span>下载报告</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="top-right__bottom">
|
||||
<ai-wrapper
|
||||
label-width="130px">
|
||||
<ai-info-item label="法人姓名:"><span style="color: #1890FF;">{{ info.legalPersonName }}</span></ai-info-item>
|
||||
<ai-info-item label="企业类型:" :value="$dict.getLabel('enterpriseType', info.enterpriseType)"></ai-info-item>
|
||||
<ai-info-item label="统一社会信用代码:" :value="info.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="地址:" isLine :value="info.areaName + info.address"></ai-info-item>
|
||||
<ai-info-item label="经营范围:" isLine :value="info.businessScope"></ai-info-item>
|
||||
</ai-wrapper>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="tab">
|
||||
<span :class="[currIndex === 0 ? 'active' : '']" @click="currIndex = 0">行政许可</span>
|
||||
<span :class="[currIndex === 1 ? 'active' : '']" @click="currIndex = 1">行政处罚</span>
|
||||
<span :class="[currIndex === 2 ? 'active' : '']" @click="currIndex = 2">良好信息</span>
|
||||
<span :class="[currIndex === 3 ? 'active' : '']" @click="currIndex = 3">失信信息</span>
|
||||
</div>
|
||||
<div class="table">
|
||||
<ai-table
|
||||
v-show="currIndex === 0"
|
||||
:tableData="info.adminstrativeLicenseList"
|
||||
:col-configs="colConfigs1"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
<ai-table
|
||||
v-show="currIndex === 1"
|
||||
:tableData="info.administrativeSanctionList"
|
||||
:col-configs="colConfigs2"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
<ai-table
|
||||
v-show="currIndex === 2"
|
||||
:tableData="info.taxInfoList"
|
||||
:col-configs="colConfigs3"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
<ai-table
|
||||
v-show="currIndex === 3"
|
||||
:tableData="info.dishonestPersonList"
|
||||
:col-configs="colConfigs4"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
</div>
|
||||
</div>
|
||||
</ai-dialog>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
@@ -126,7 +201,43 @@ export default {
|
||||
auditLifespan: [{required: true, message: "请选择 使用期限"}],
|
||||
loanDate: [{required: true, message: "请选择 放款日期"}],
|
||||
auditDescription: [{required: true, message: "请输入 审批意见"}],
|
||||
}
|
||||
},
|
||||
info: {},
|
||||
currIndex: 0,
|
||||
isShow: false,
|
||||
colConfigs1: [
|
||||
{ prop: 'licenseCode', label: '行政许可决定文书号' },
|
||||
{ prop: 'decisionDate', align: 'center', label: '许可决定日期' },
|
||||
{ prop: 'endDate', align: 'center', label: '许可有效期至' },
|
||||
{ prop: 'licenseOrganization', align: 'center', label: '许可机关' },
|
||||
{ prop: 'licenseContent', align: 'center', label: '许可内容' },
|
||||
{ prop: 'createTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
colConfigs2: [
|
||||
{ prop: 'sanctionCode', width: '190', label: '行政处罚决定文书号' },
|
||||
{ prop: 'sanctionDate', align: 'center', label: '处罚决定日期' },
|
||||
{ prop: 'sanctionType', align: 'center', label: '处罚类型', formart: v => this.$dict.getLabel('administrativeSanctionType', v) },
|
||||
{ prop: 'sanctionContent', align: 'center', label: '处罚内容' },
|
||||
{ prop: 'sanctionBasis', align: 'center', label: '处罚依据' },
|
||||
{ prop: 'sanctionOrganization', align: 'center', label: '处罚机关' },
|
||||
{ prop: 'createTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
colConfigs3: [
|
||||
{ prop: 'taxpayer', label: '纳税人名称' },
|
||||
{ prop: 'taxpayerNumber', align: 'center', label: '纳税人识别号' },
|
||||
{ prop: 'taxLevel', align: 'center', label: '纳税人等级' },
|
||||
{ prop: 'taxYear', align: 'center', label: '年份' },
|
||||
{ prop: 'evaluationUnit', align: 'center', label: '评价单位' },
|
||||
{ prop: 'createTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
colConfigs4: [
|
||||
{ prop: 'executionCode', label: '执行案号' },
|
||||
{ prop: 'executionTime', align: 'center', label: '执行时间' },
|
||||
{ prop: 'dishonestFact', align: 'center', label: '失信事实' },
|
||||
{ prop: 'executionSituation', align: 'center', label: '履行情况', formart: v => this.$dict.getLabel('dishonestPersonSituation', v) },
|
||||
{ prop: 'executionCourt', align: 'center', label: '执行法院' },
|
||||
{ prop: 'executionTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -137,6 +248,19 @@ export default {
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.detail = res.data
|
||||
if(this.detail.enterpriseId) {
|
||||
this.getCompanyInfo()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getCompanyInfo() {
|
||||
this.instance.post(`/appportaluserenterprise/queryCreditEnterpriseDetailById?id=${this.detail.enterpriseId}`, null, {
|
||||
withoutToken: true
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.info = res.data
|
||||
this.info.subEnterpriseName = res.data.enterpriseName.substr(0, 4)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -158,7 +282,7 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.dict.load("auditStatus")
|
||||
this.dict.load("auditStatus", "productRepaymentTimeline", "financialFundPurpose", "enterpriseAuditStatus", "financialLoanApplyStatus","financialOrganizationType")
|
||||
this.getDetail()
|
||||
}
|
||||
}
|
||||
@@ -183,5 +307,115 @@ export default {
|
||||
.el-date-editor {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dialog {
|
||||
.top {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
padding: 34px 30px 16px;
|
||||
border: 1px solid #EEEEEE;
|
||||
border-radius: 4px;
|
||||
|
||||
.top-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 1;
|
||||
width: 88px;
|
||||
height: 87px;
|
||||
line-height: 1.3;
|
||||
margin-right: 31px;
|
||||
padding: 0 16px;
|
||||
text-align: justify;
|
||||
background: #8CA3CD;
|
||||
color: #FFFFFF;
|
||||
font-size: 22px;
|
||||
letter-spacing: 6px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.top-right {
|
||||
flex: 1;
|
||||
|
||||
.top-right__top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 27px;
|
||||
|
||||
h2 {
|
||||
color: #333333;
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 97px;
|
||||
height: 32px;
|
||||
background: #E8F4FF;
|
||||
border: 1px solid #A3D3FF;
|
||||
border-radius: 3px;
|
||||
color: #1890FF;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.top-right__bottom {
|
||||
padding: 16px 10px 10px 0;
|
||||
background: #F6FBFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
padding-bottom: 20px;
|
||||
border: 1px solid #DCDFE6;
|
||||
border-radius: 4px;
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 60px;
|
||||
margin-bottom: 15px;
|
||||
background: #FAFAFA;
|
||||
border-radius: 4px;
|
||||
|
||||
span {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
color: #555555;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #DCDFE6;
|
||||
border-right: 1px solid #DCDFE6;
|
||||
transition: all ease 0.3s;
|
||||
user-select: none;
|
||||
|
||||
&:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
&.active {
|
||||
border-bottom: 1px solid transparent;
|
||||
background: #fff;
|
||||
color: #1890FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
padding: 0 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,44 +1,46 @@
|
||||
<template>
|
||||
<section class="loanList">
|
||||
<ai-detail>
|
||||
<ai-title slot="title" title="贷款审核" isShowBottomBorder/>
|
||||
<template #content>
|
||||
<el-row type="flex">
|
||||
<div class="staCard fill" v-for="(op,label) in sta" :key="label">
|
||||
<h2 v-text="op"/>
|
||||
<span v-text="label"/>
|
||||
</div>
|
||||
</el-row>
|
||||
<ai-card hideTitle>
|
||||
<template #content>
|
||||
<ai-search-bar class="mar-t8">
|
||||
<template #left>
|
||||
<ai-select v-model="search.status" :selectList="dict.getDict('financialLoanApplyStatus')"
|
||||
placeholder="审批状态"
|
||||
@change="page.current=1,getTableData()"/>
|
||||
<ai-search label="申请时间">
|
||||
<el-date-picker size="small" v-model="search.applyTime" type="daterange"
|
||||
@change="handleFilterApplyTime"
|
||||
:default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd HH:mm:ss"/>
|
||||
</ai-search>
|
||||
<ai-list tabs>
|
||||
<ai-title slot="title" title="贷款审核"/>
|
||||
<template #tabs>
|
||||
<el-tabs>
|
||||
<el-tab-pane label="信贷审核">
|
||||
<ai-card hideTitle class="mar-t16">
|
||||
<template #content>
|
||||
<ai-search-bar class="mar-t8">
|
||||
<template #left>
|
||||
<ai-select placeholder="机构类型" :selectList="dict.getDict('financialOrganizationType')"
|
||||
v-model="search.organizationType" @change="page.current=1,getTableData()"/>
|
||||
<ai-select placeholder="审批状态" :selectList="dict.getDict('financialLoanApplyStatus')"
|
||||
v-model="search.status" @change="page.current=1,getTableData()"/>
|
||||
<ai-search label="申请时间">
|
||||
<el-date-picker size="small" v-model="search.applyTime" type="daterange"
|
||||
@change="handleFilterApplyTime" start-placeholder="开始时间" end-placeholder="结束时间"
|
||||
:default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd HH:mm:ss"/>
|
||||
</ai-search>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="搜索产品名称、身份证、企业、贷款机构" v-model="search.enterpriseName" clearable
|
||||
@change="page.current=1,getTableData()"/>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
|
||||
<el-table-column slot="options" label="操作" fixed="right" align="center">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="showDetail(row.id)">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="搜索产品名称、企业主体、贷款银行" v-model="search.enterpriseName" clearable
|
||||
@change="page.current=1,getTableData()"/>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
|
||||
<el-table-column slot="options" label="操作" fixed="right" align="center">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="showDetail(row.id)">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
</ai-card>
|
||||
</ai-card>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="信贷统计" lazy>
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
</ai-detail>
|
||||
</ai-list>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
@@ -53,25 +55,28 @@ export default {
|
||||
permissions: Function
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user'])
|
||||
...mapState(['user']),
|
||||
colConfigs() {
|
||||
return [
|
||||
{label: "产品名称", prop: "productName"},
|
||||
{label: "联系人", prop: "name"},
|
||||
{label: "联系方式", prop: "phone"},
|
||||
{label: "身份证号", render: (h, {row}) => h('p', this.idCardNoUtil.hideId(row.idNumber)), width: 160},
|
||||
{label: "企业主体", prop: "enterpriseName"},
|
||||
{label: "贷款金额(万)", prop: "loanAmount"},
|
||||
{label: "申请时间", prop: "createTime",width: 160},
|
||||
{label: "贷款机构", prop: "organizationName"},
|
||||
{label: "机构类型", prop: "organizationType", dict: "financialOrganizationType"},
|
||||
{label: "状态", prop: "status", align: "center", dict: "financialLoanApplyStatus"},
|
||||
{slot: "options"}
|
||||
]
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {name: ""},
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
colConfigs: [
|
||||
{label: "产品名称", prop: "productName"},
|
||||
{label: "企业主体", prop: "enterpriseName"},
|
||||
{label: "贷款金额(万)", prop: "loanAmount"},
|
||||
{label: "申请时间", prop: "createTime"},
|
||||
{label: "联系人", prop: "name"},
|
||||
{label: "联系方式", prop: "phone"},
|
||||
{label: "贷款银行", prop: "organizationName"},
|
||||
{label: "状态", prop: "status", align: "center", dict: "financialLoanApplyStatus"},
|
||||
{slot: "options"}
|
||||
],
|
||||
sta: {}
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -94,17 +99,9 @@ export default {
|
||||
this.search.applyEndDate = this.search.applyTime?.[1].substring(0, 10)
|
||||
this.getTableData()
|
||||
},
|
||||
getStaData() {
|
||||
this.instance.post("/appfinancialloanapply/staticFinancialLoanApply").then(res => {
|
||||
if (res?.data) {
|
||||
this.sta = res.data
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTableData()
|
||||
this.getStaData()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -117,14 +114,22 @@ export default {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.mar-t16 {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.staCard {
|
||||
text-align: center;
|
||||
margin: 0 8px 16px;
|
||||
margin: 0 16px 16px 0;
|
||||
box-shadow: 0 4px 6px -2px rgba(15, 15, 21, 0.15);
|
||||
border-radius: 4px;
|
||||
padding: 16px;
|
||||
box-sizing: border-box;
|
||||
background: #fff;
|
||||
|
||||
&:last-of-type {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,20 @@
|
||||
<template>
|
||||
<section class="AppFinancingNeeds">
|
||||
<component :is="currentComponent" :instance="instance" :dict="dict" :permissions="permissions"/>
|
||||
<ai-list v-if="showList">
|
||||
<template slot="title">
|
||||
<ai-title slot="title" title="融资需求" :isShowBottomBorder="false" :isShowArea="currIndex == 1 && showList" v-model="areaId" :instance="instance" @change="changeArea"/>
|
||||
</template>
|
||||
<template slot="tabs">
|
||||
<el-tabs class="tabs-page" v-model="currIndex">
|
||||
<el-tab-pane v-for="(tab,i) in tabs" :key="i" :label="tab.label" :name="String(i)">
|
||||
<component :is="tab.comp" v-if="currIndex==i" :ref="currIndex" :instance="instance" :dict="dict"
|
||||
:permissions="permissions" :listType="tab.value" @goPage="goPage"/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
</ai-list>
|
||||
<component v-if="!showList" :is="currentPage" :instance="instance" :dict="dict"
|
||||
:permissions="permissions" :row="detail" @goBack="goBack"></component>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
@@ -8,6 +22,7 @@
|
||||
|
||||
import NeedsDetail from "./needsDetail";
|
||||
import NeedsList from "./needsList";
|
||||
import NeedsStatistics from "./needsStatistics";
|
||||
|
||||
export default {
|
||||
name: "AppFinancingNeeds",
|
||||
@@ -18,13 +33,55 @@ export default {
|
||||
dict: Object,
|
||||
permissions: Function
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
need: this
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currIndex: '0',
|
||||
showList: true,
|
||||
currentPage: "",
|
||||
detail: {},
|
||||
areaId: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
currentComponent() {
|
||||
return !!this.$route.query.id ? NeedsDetail : NeedsList
|
||||
tabs() {
|
||||
return [
|
||||
{
|
||||
label: "融资需求", name: "NeedsList", value: "0", comp: NeedsList, detail: NeedsDetail,
|
||||
permission: ""
|
||||
},
|
||||
{
|
||||
label: "融资统计", name: "NeedsStatistics", value: "1", comp: NeedsStatistics,
|
||||
permission: ""
|
||||
}
|
||||
]
|
||||
},
|
||||
currentTab() {
|
||||
return this.tabs[this.currIndex] || {}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.dict.load("productRepaymentTimeline", "financialFundPurpose","financingDemandApplyType")
|
||||
this.dict.load("productRepaymentTimeline", "financialFundPurpose","financingDemandApplyType", "enterpriseType", "dishonestPersonSituation", "administrativeSanctionType")
|
||||
},
|
||||
methods: {
|
||||
goPage(obj) {
|
||||
this.currentPage = this.tabs[Number(this.currIndex)][obj.key];
|
||||
obj.row && (this.detail = obj.row)
|
||||
this.showList = false;
|
||||
},
|
||||
goBack() {
|
||||
this.showList = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs[this.currIndex][0].getTableData();
|
||||
})
|
||||
},
|
||||
changeArea() {
|
||||
this.$refs[this.currIndex][0].getTableData();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<section class="needsDetail">
|
||||
<ai-detail>
|
||||
<ai-title slot="title" title="融资详情" isShowBottomBorder isShowBack @onBackClick="back">
|
||||
<ai-title slot="title" title="融资详情" isShowBottomBorder isShowBack @onBackClick="back()">
|
||||
<template #rightBtn>
|
||||
<el-button v-if="isFinanceUser" type="primary" @click="handleGrab">抢单</el-button>
|
||||
<el-button v-else type="danger" @click="handleCancel">取消发布</el-button>
|
||||
@@ -27,7 +27,7 @@
|
||||
<el-row type="flex">
|
||||
{{ detail.enterpriseName }}
|
||||
<el-link type="primary"
|
||||
@click="$router.push({name:'973f0339e5904d99bc8afe86b8cf4e9c',query:{id:detail.enterpriseId}})">
|
||||
@click="isShow=true">
|
||||
企业详情
|
||||
</el-link>
|
||||
</el-row>
|
||||
@@ -43,7 +43,83 @@
|
||||
</template>
|
||||
</ai-card>
|
||||
</el-form>
|
||||
<ai-dialog
|
||||
class="dialog"
|
||||
:title="info.enterpriseName"
|
||||
:visible.sync="isShow"
|
||||
@close="isShow = false"
|
||||
@onConfirm="isShow = false"
|
||||
width="1200px">
|
||||
<div class="top">
|
||||
<div class="top-left">{{ info.subEnterpriseName }}</div>
|
||||
<div class="top-right">
|
||||
<div class="top-right__top">
|
||||
<h2>{{ info.enterpriseName }}</h2>
|
||||
<!-- <div class="right">
|
||||
<span>下载报告</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="top-right__bottom">
|
||||
<ai-wrapper
|
||||
label-width="130px">
|
||||
<ai-info-item label="法人姓名:"><span style="color: #1890FF;">{{ info.legalPersonName }}</span></ai-info-item>
|
||||
<ai-info-item label="企业类型:" :value="$dict.getLabel('enterpriseType', info.enterpriseType)"></ai-info-item>
|
||||
<ai-info-item label="统一社会信用代码:" :value="info.unifiedCode"></ai-info-item>
|
||||
<ai-info-item label="地址:" isLine :value="info.areaName + info.address"></ai-info-item>
|
||||
<ai-info-item label="经营范围:" isLine :value="info.businessScope"></ai-info-item>
|
||||
</ai-wrapper>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="tab">
|
||||
<span :class="[currIndex === 0 ? 'active' : '']" @click="currIndex = 0">行政许可</span>
|
||||
<span :class="[currIndex === 1 ? 'active' : '']" @click="currIndex = 1">行政处罚</span>
|
||||
<span :class="[currIndex === 2 ? 'active' : '']" @click="currIndex = 2">良好信息</span>
|
||||
<span :class="[currIndex === 3 ? 'active' : '']" @click="currIndex = 3">失信信息</span>
|
||||
</div>
|
||||
<div class="table">
|
||||
<ai-table
|
||||
v-show="currIndex === 0"
|
||||
:tableData="info.adminstrativeLicenseList"
|
||||
:col-configs="colConfigs1"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
<ai-table
|
||||
v-show="currIndex === 1"
|
||||
:tableData="info.administrativeSanctionList"
|
||||
:col-configs="colConfigs2"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
<ai-table
|
||||
v-show="currIndex === 2"
|
||||
:tableData="info.taxInfoList"
|
||||
:col-configs="colConfigs3"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
<ai-table
|
||||
v-show="currIndex === 3"
|
||||
:tableData="info.dishonestPersonList"
|
||||
:col-configs="colConfigs4"
|
||||
:isShowPagination="false"
|
||||
border
|
||||
tableSize="small"
|
||||
@getList="() => {}">
|
||||
</ai-table>
|
||||
</div>
|
||||
</div>
|
||||
</ai-dialog>
|
||||
</template>
|
||||
|
||||
</ai-detail>
|
||||
</section>
|
||||
</template>
|
||||
@@ -56,7 +132,8 @@ export default {
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function
|
||||
permissions: Function,
|
||||
row: Object,
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
@@ -67,16 +144,65 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
detail: {},
|
||||
info: {},
|
||||
currIndex: 0,
|
||||
isShow: false,
|
||||
colConfigs1: [
|
||||
{ prop: 'licenseCode', label: '行政许可决定文书号' },
|
||||
{ prop: 'decisionDate', align: 'center', label: '许可决定日期' },
|
||||
{ prop: 'endDate', align: 'center', label: '许可有效期至' },
|
||||
{ prop: 'licenseOrganization', align: 'center', label: '许可机关' },
|
||||
{ prop: 'licenseContent', align: 'center', label: '许可内容' },
|
||||
{ prop: 'createTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
colConfigs2: [
|
||||
{ prop: 'sanctionCode', width: '190', label: '行政处罚决定文书号' },
|
||||
{ prop: 'sanctionDate', align: 'center', label: '处罚决定日期' },
|
||||
{ prop: 'sanctionType', align: 'center', label: '处罚类型', formart: v => this.$dict.getLabel('administrativeSanctionType', v) },
|
||||
{ prop: 'sanctionContent', align: 'center', label: '处罚内容' },
|
||||
{ prop: 'sanctionBasis', align: 'center', label: '处罚依据' },
|
||||
{ prop: 'sanctionOrganization', align: 'center', label: '处罚机关' },
|
||||
{ prop: 'createTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
colConfigs3: [
|
||||
{ prop: 'taxpayer', label: '纳税人名称' },
|
||||
{ prop: 'taxpayerNumber', align: 'center', label: '纳税人识别号' },
|
||||
{ prop: 'taxLevel', align: 'center', label: '纳税人等级' },
|
||||
{ prop: 'taxYear', align: 'center', label: '年份' },
|
||||
{ prop: 'evaluationUnit', align: 'center', label: '评价单位' },
|
||||
{ prop: 'createTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
colConfigs4: [
|
||||
{ prop: 'executionCode', label: '执行案号' },
|
||||
{ prop: 'executionTime', align: 'center', label: '执行时间' },
|
||||
{ prop: 'dishonestFact', align: 'center', label: '失信事实' },
|
||||
{ prop: 'executionSituation', align: 'center', label: '履行情况', formart: v => this.$dict.getLabel('dishonestPersonSituation', v) },
|
||||
{ prop: 'executionCourt', align: 'center', label: '执行法院' },
|
||||
{ prop: 'executionTime', align: 'center', label: '数据更新时间' }
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getDetail() {
|
||||
let {id} = this.$route.query
|
||||
let {id} = this.row
|
||||
this.instance.post("/appfinancingdemand/queryDetailById", null, {
|
||||
params: {id}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.detail = res.data
|
||||
if(this.detail.enterpriseId) {
|
||||
this.getCompanyInfo()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getCompanyInfo() {
|
||||
this.instance.post(`/appportaluserenterprise/queryCreditEnterpriseDetailById?id=${this.detail.enterpriseId}`, null, {
|
||||
withoutToken: true
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.info = res.data
|
||||
this.info.subEnterpriseName = res.data.enterpriseName.substr(0, 4)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -103,11 +229,13 @@ export default {
|
||||
}).catch(() => 0)
|
||||
},
|
||||
back() {
|
||||
this.$router.push({query: {}})
|
||||
this.$emit('goBack')
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDetail()
|
||||
this.dict.load("productRepaymentTimeline", "financialFundPurpose","financingDemandApplyType", "enterpriseType", "dishonestPersonSituation", "administrativeSanctionType").then(() => {
|
||||
this.getDetail()
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -123,5 +251,115 @@ export default {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.dialog {
|
||||
.top {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
padding: 34px 30px 16px;
|
||||
border: 1px solid #EEEEEE;
|
||||
border-radius: 4px;
|
||||
|
||||
.top-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 1;
|
||||
width: 88px;
|
||||
height: 87px;
|
||||
line-height: 1.3;
|
||||
margin-right: 31px;
|
||||
padding: 0 16px;
|
||||
text-align: justify;
|
||||
background: #8CA3CD;
|
||||
color: #FFFFFF;
|
||||
font-size: 22px;
|
||||
letter-spacing: 6px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.top-right {
|
||||
flex: 1;
|
||||
|
||||
.top-right__top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 27px;
|
||||
|
||||
h2 {
|
||||
color: #333333;
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 97px;
|
||||
height: 32px;
|
||||
background: #E8F4FF;
|
||||
border: 1px solid #A3D3FF;
|
||||
border-radius: 3px;
|
||||
color: #1890FF;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.top-right__bottom {
|
||||
padding: 16px 10px 10px 0;
|
||||
background: #F6FBFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
padding-bottom: 20px;
|
||||
border: 1px solid #DCDFE6;
|
||||
border-radius: 4px;
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 60px;
|
||||
margin-bottom: 15px;
|
||||
background: #FAFAFA;
|
||||
border-radius: 4px;
|
||||
|
||||
span {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
color: #555555;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #DCDFE6;
|
||||
border-right: 1px solid #DCDFE6;
|
||||
transition: all ease 0.3s;
|
||||
user-select: none;
|
||||
|
||||
&:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
&.active {
|
||||
border-bottom: 1px solid transparent;
|
||||
background: #fff;
|
||||
color: #1890FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
padding: 0 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<section class="needsList">
|
||||
<ai-list>
|
||||
<ai-title slot="title" title="融资需求" isShowBottomBorder/>
|
||||
<template #content>
|
||||
<ai-search-bar>
|
||||
<template #right>
|
||||
@@ -13,7 +12,7 @@
|
||||
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
|
||||
<el-table-column slot="options" label="操作" fixed="right" align="center">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="showDetail(row.id)">详情</el-button>
|
||||
<el-button type="text" @click="goTo('detail',row)">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
@@ -63,9 +62,9 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
showDetail(id) {
|
||||
this.$router.push({query: {id}})
|
||||
}
|
||||
goTo(key = '', row) {
|
||||
this.$emit('goPage', {key, row});
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getTableData()
|
||||
|
||||
@@ -0,0 +1,455 @@
|
||||
<template>
|
||||
<section class="needsStatistics">
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<ai-select v-model="search.messageType" placeholder="金融机构" clearable :selectList="$dict.getDict('dlbResourceType')" @change="getTableData()"></ai-select>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<div class="col-row">
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>累计发布需求</p>
|
||||
<h2>20</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chart-flex">
|
||||
<div class="circle-chart chart-content">
|
||||
<div class="title">融资需求发布主体占比</div>
|
||||
<div class="cir-flex">
|
||||
<div class="total-num">
|
||||
<h2>108</h2>
|
||||
<p>总数</p>
|
||||
</div>
|
||||
<div id="circleChart"></div>
|
||||
<div class="cir-text">
|
||||
<div class="info">
|
||||
<p><span class="tips-bg" style="background: #2891FF;"></span>企业融资</p>
|
||||
<div>65</div>
|
||||
</div>
|
||||
<div class="info">
|
||||
<p><span class="tips-bg" style="background: #FFB865;"></span>个人融资</p>
|
||||
<div>65</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line-chart chart-content">
|
||||
<div class="title">交易趋势</div>
|
||||
<p class="header-title"><span class="tips-bg" style="background: #2891FF;"></span>申请笔数<span class="tips-bg" style="background: #26D52B;"></span>放款笔数</p>
|
||||
<div id="lineChart"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chart-column chart-content">
|
||||
<div class="title">机构融资对接量TOP10</div>
|
||||
<p class="header-title"><span class="tips-bg" style="background: #2891FF;"></span>申请笔数<span class="tips-bg" style="background: #26D52B;"></span>放款笔数</p>
|
||||
<div id="columnChart"></div>
|
||||
</div>
|
||||
<div class="table-content chart-content">
|
||||
<div class="title">交易记录</div>
|
||||
<ai-search-bar style="padding:20px 20px 0 20px;">
|
||||
<template #left>
|
||||
<ai-select v-model="search.messageType" placeholder="金融机构" clearable :selectList="$dict.getDict('dlbResourceType')" @change="getTableData()"></ai-select>
|
||||
<ai-search label="申请时间">
|
||||
<el-date-picker size="small" placeholder="请选择" type="daterange"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
style="width: 258px;"
|
||||
value-format="yyyy-MM-dd"
|
||||
v-model="stuTime"
|
||||
@change="page.current=1,getList()"/>
|
||||
</ai-search>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="搜索企业名称" v-model="search.messageType" clearable @change="getList()"/>
|
||||
<ai-download :instance="instance" url="/app/appcommunityhouseresident/listExport" :params="search"
|
||||
fileName="人口信息">
|
||||
<el-button icon="iconfont iconExported">导出</el-button>
|
||||
</ai-download>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getList" :col-configs="colConfigs" :dict="dict" style="padding:0 20px 20px 20px;">
|
||||
<el-table-column slot="options" label="状态" fixed="right" width="100">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapState} from "vuex";
|
||||
import * as echarts from 'echarts'
|
||||
|
||||
export default {
|
||||
name: "needsStatistics",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user'])
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {messageType: ''},
|
||||
page: {current: 1, total: 10},
|
||||
circleChart: null,
|
||||
lineChart: null,
|
||||
columnChart: null,
|
||||
tableData: [],
|
||||
colConfigs: [
|
||||
{label: "产品名称", width: '200', prop: "enterpriseName"},
|
||||
{label: "联系人", width: '100', prop: "areaName"},
|
||||
{label: "联系方式", width: '140', prop: "loanAmount"},
|
||||
{label: "身份证号", width: '180', prop: "createTime"},
|
||||
{label: "企业主体", width: '200', prop: "name"},
|
||||
{label: "贷款金额(万)", width: '120', prop: "phone"},
|
||||
{label: "申请时间", width: '180', prop: "remark"},
|
||||
{label: "贷款机构", width: '200', prop: "remark"},
|
||||
{label: "机构类型", width: '200', prop: "remark"},
|
||||
{slot: "options"}
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getTableData() {
|
||||
this.circleChartInit()
|
||||
this.lineChartInit()
|
||||
this.columnChartInit()
|
||||
this.getList()
|
||||
},
|
||||
getList() {
|
||||
this.instance.post("/appfinancingdemand/list", null, {
|
||||
params: {...this.page, ...this.search, status: 0}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.tableData = res.data?.records
|
||||
this.page.total = res.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
circleChartInit() {
|
||||
this.circleChart = echarts.init(document.getElementById('circleChart'))
|
||||
if (!this.circleChart) {
|
||||
return this.circleChart.dispose();
|
||||
}
|
||||
var option = {
|
||||
color: ['#2891FF', '#FFB865'],
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: ['80%', '90%'],
|
||||
avoidLabelOverlap: false,
|
||||
itemStyle: {
|
||||
borderRadius: 10,
|
||||
borderColor: '#fff',
|
||||
borderWidth: 2
|
||||
},
|
||||
label: {
|
||||
show: false,
|
||||
position: 'center'
|
||||
},
|
||||
emphasis: {
|
||||
label: {
|
||||
show: false,
|
||||
fontSize: '12',
|
||||
}
|
||||
},
|
||||
data: [
|
||||
{ value: 180},
|
||||
{ value: 20},
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
};
|
||||
|
||||
this.circleChart.setOption(option)
|
||||
},
|
||||
lineChartInit() {
|
||||
this.lineChart = echarts.init(document.getElementById('lineChart'))
|
||||
if (!this.lineChart) {
|
||||
return this.lineChart.dispose();
|
||||
}
|
||||
var option = option = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
grid: {
|
||||
top: '3%',
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '0%',
|
||||
containLabel: true
|
||||
},
|
||||
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: ['2020-07', '2020-08', '2020-09', '2020-10', '2020-11']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '申请笔数',
|
||||
type: 'line',
|
||||
data: [120, 132, 101, 134, 90, 230, 210],
|
||||
itemStyle: {
|
||||
normal: {
|
||||
lineStyle:{
|
||||
color:'#2891FF'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '放款笔数',
|
||||
type: 'line',
|
||||
stack: 'Total',
|
||||
data: [220, 182, 191, 234, 290, 330, 310],
|
||||
itemStyle: {
|
||||
normal: {
|
||||
lineStyle:{
|
||||
color:'#26D52B'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
};
|
||||
this.lineChart.setOption(option)
|
||||
},
|
||||
columnChartInit() {
|
||||
this.columnChart = echarts.init(document.getElementById('columnChart'))
|
||||
if (!this.columnChart) {
|
||||
return this.columnChart.dispose();
|
||||
}
|
||||
var option = {
|
||||
color: ['#2891FF', '#26D52B'],
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
top: '10%',
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '2%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
data: ['重庆银行秀山支行', '哈尔滨银行秀山支行', '重庆银行五岳广场支行', '重庆秀山北银村镇银行']
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value'
|
||||
}],
|
||||
series: [{
|
||||
name: '申请数量',
|
||||
type: 'bar',
|
||||
barGap: 0,
|
||||
data: [100, 80, 90, 100, 60],
|
||||
barWidth: 10,
|
||||
},
|
||||
{
|
||||
name: '放款数量',
|
||||
type: 'bar',
|
||||
barGap: 0,
|
||||
data: [100, 80, 90, 100, 60],
|
||||
barWidth: 10,
|
||||
}]
|
||||
};
|
||||
|
||||
this.columnChart.setOption(option)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getTableData()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .ai-list .ai-list__content--right-wrapper{
|
||||
background: none!important;
|
||||
box-shadow: none!important;
|
||||
}
|
||||
.needsStatistics {
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
.col-row{
|
||||
overflow: hidden;
|
||||
.item{
|
||||
display: inline-block;
|
||||
padding: 16px 24px;
|
||||
width: calc(25% - 15px);
|
||||
float: left;
|
||||
margin: 0 20px 20px 0;
|
||||
background: #FFF;
|
||||
box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15);
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
p{
|
||||
font-size: 16px;
|
||||
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
|
||||
font-weight: bold;
|
||||
color: #888;
|
||||
line-height: 24px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
h2{
|
||||
font-size: 24px;
|
||||
font-family: Arial-BoldMT, Arial;
|
||||
font-weight: normal;
|
||||
color: #26F;
|
||||
line-height: 32px;
|
||||
}
|
||||
}
|
||||
.item:nth-of-type(4n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
.chart-flex{
|
||||
display: flex;
|
||||
height: 280px;
|
||||
margin-bottom: 20px;
|
||||
.circle-chart{
|
||||
width: 440px;
|
||||
margin-right: 20px;
|
||||
height: 100%;
|
||||
.cir-flex{
|
||||
height: calc(100% - 56px);
|
||||
display: flex;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.total-num{
|
||||
position: absolute;
|
||||
top: 90px;
|
||||
left: 70px;
|
||||
width: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
#circleChart{
|
||||
width: calc(100% - 150px);
|
||||
height: 100%;
|
||||
}
|
||||
.cir-text{
|
||||
width: 150px;
|
||||
margin: 56px 0 0 40px;
|
||||
.info{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 8px;
|
||||
p{
|
||||
width: 100px;
|
||||
font-size: 14px;
|
||||
font-family: MicrosoftYaHei;
|
||||
color: #666;
|
||||
line-height: 22px;
|
||||
}
|
||||
div{
|
||||
width: 50px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.line-chart{
|
||||
height: 100%;
|
||||
width: calc(100% - 460px);
|
||||
#lineChart{
|
||||
height: calc(100% - 100px);
|
||||
padding-right: 20px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
.chart-column{
|
||||
margin-bottom: 20px;
|
||||
height: 320px;
|
||||
#columnChart{
|
||||
width: 100%;
|
||||
height: 220px;
|
||||
}
|
||||
}
|
||||
.table-content{
|
||||
width: 100%;
|
||||
.title{
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
}
|
||||
.tips-bg{
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.header-title{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
height: 20px;
|
||||
font-size: 12px;
|
||||
font-family: MicrosoftYaHei;
|
||||
color: #333;
|
||||
line-height: 20px;
|
||||
.tips-bg:nth-of-type(2n) {
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.chart-content{
|
||||
background: #FFF;
|
||||
box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.title{
|
||||
line-height: 56px;
|
||||
font-size: 16px;
|
||||
font-family: MicrosoftYaHeiSemibold;
|
||||
color: #222;
|
||||
padding-left: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -53,7 +53,8 @@
|
||||
<div v-for="(item, index) in applyForm" :key="index">
|
||||
<ai-title :title="index"></ai-title>
|
||||
<el-form-item v-for="e in item" :key="e.id" :label="[e.fieldName,e.fieldNameSuffix].join('')">
|
||||
<el-input :value="getFieldValue(e)" readonly style="width: 100%;" v-if="e.fieldDataType!=5"/>
|
||||
<el-input :value="getFieldValue(e)" readonly style="width: 100%;" v-if="e.fieldDataType!=5 && e.fieldDataType!=10"/>
|
||||
<el-input :value="getAreaName(e)" readonly style="width: 100%;" v-if="e.fieldDataType==10"/>
|
||||
<el-checkbox-group v-model="!e.fieldValue ? '' : String(e.fieldValue).split(',')">
|
||||
<el-checkbox :label="val.dictValue" disabled
|
||||
v-for="(val,idx) in dict.getDict(e.dictionaryCode)" :key="idx">{{val.dictName}}</el-checkbox>
|
||||
@@ -408,6 +409,9 @@ export default {
|
||||
getFieldValue(e) {
|
||||
return e.dictionaryCode ? this.dict.getLabel(e.dictionaryCode, e.fieldValue) : e.fieldValue
|
||||
},
|
||||
getAreaName(e) {
|
||||
return e.areaValue
|
||||
},
|
||||
color(status) {
|
||||
return ['#2EA222', '#2EA222', '#FF4466', '#2EA222', '#FF8822', '#2EA222', '#2EA222', '#FF4466', '#FF8822', '#FF8822'][+status]
|
||||
},
|
||||
@@ -648,7 +652,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.dict.load(['nodeType', 'approvalStatus', 'hbDepartment', 'sex', 'nation', 'marital', 'education', 'yesOrNo'])
|
||||
this.areaId = this.user.info.areaId.substring(0, 6) + '000000'
|
||||
// this.areaId = this.user.info.areaId.substring(0, 6) + '000000'
|
||||
this.searchDetail(this.detail.id);
|
||||
this.searchLog(this.currentMenu)
|
||||
},
|
||||
@@ -700,9 +704,11 @@ export default {
|
||||
background: #F7F7F7;
|
||||
border: 1px solid #DDDDDD;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
|
||||
.el-image {
|
||||
width: 100%;
|
||||
width: 100%!important;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
border: 1px solid #EEEEEE;
|
||||
@@ -1157,6 +1163,7 @@ export default {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -44,7 +44,7 @@ export default {
|
||||
tabs() {
|
||||
return [
|
||||
{label: "网上办事", name: "configList", value: "0", comp: configList, detail: addConfig, permission: ""},
|
||||
{label: "办事指南", name: "configList", value: "2", comp: configList, detail: guidance, permission: ""},
|
||||
// {label: "办事指南", name: "configList", value: "2", comp: configList, detail: guidance, permission: ""},
|
||||
]
|
||||
},
|
||||
currentTab() {
|
||||
|
||||
@@ -37,11 +37,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="name" label="是否必填">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.mustFill"
|
||||
active-value="0" inactive-value="1"
|
||||
active-color="#D0D4DC"
|
||||
inactive-color="#5088FF">
|
||||
<el-switch v-model="scope.row.mustFill"
|
||||
active-color="#5088FF" inactive-color="#D0D4DC" active-value="1" inactive-value="0">
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -38,10 +38,8 @@
|
||||
<ai-editor v-model.trim="form.needToKnow" :instance="instance"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="processDefStatus">
|
||||
<el-switch
|
||||
v-model="form.processDefStatus"
|
||||
active-color="#D0D4DC"
|
||||
inactive-color="#5088FF" active-value="0" inactive-value="1">
|
||||
<el-switch v-model="form.processDefStatus"
|
||||
active-color="#5088FF" inactive-color="#D0D4DC" active-value="1" inactive-value="0">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -49,9 +49,7 @@
|
||||
<template v-slot="{row}">
|
||||
<el-switch
|
||||
v-model="row.processDefStatus"
|
||||
@change="onChange(row)" active-value="1" inactive-value="0"
|
||||
active-color="#5088FF"
|
||||
inactive-color="#D0D4DC">
|
||||
@change="onChange(row)" active-color="#5088FF" inactive-color="#D0D4DC" active-value="1" inactive-value="0">
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
"registry": "http://192.168.1.87:4873/"
|
||||
},
|
||||
"dependencies": {
|
||||
"dvcp-ui": "^1.42.2"
|
||||
"dvcp-ui": "^1.42.2",
|
||||
"dvcp-dv-ui": "^2.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user