liupopo 2 years ago
parent
commit
70e804fbb0
  1. 2
      supervise-report-ui/.env.development
  2. 11
      supervise-report-ui/src/api/project/projectDaily.js
  3. 294
      supervise-report-ui/src/views/project/projectDaily.vue
  4. 4
      yxt-portal-ui/src/views/Home/Home.vue

2
supervise-report-ui/.env.development

@ -6,4 +6,4 @@ VUE_APP_BASE_API = '/api/service'
## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://8.130.39.13:8112"
VUE_APP_URL = "http://192.168.1.193:8112"
VUE_APP_URL = "http://192.168.1.107:8112"

11
supervise-report-ui/src/api/project/projectDaily.js

@ -34,6 +34,15 @@ export default {
baseURL: '/api',
url: '/report/projectdaily/sendMess/' + projectSid + "/" + orderDate
})
},
// 根据项目sid 获取项目账户信息
getProjectAccountBySid: function(projectSid, orderDate) {
return request({
baseURL: '/api/crm',
url: '/projectAccount/getAccountByProjectSid/' + projectSid ,
})
}
}
}

294
supervise-report-ui/src/views/project/projectDaily.vue

@ -8,9 +8,11 @@
<div v-show="isSearchShow" class="search">
<el-form :inline="true" :model="queryParams" class="tab-header">
<el-form-item label="数据日期">
<el-date-picker v-model="queryParams.params.dataDateStart" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择数据开始日期" style="width: 140px;" />
<el-date-picker v-model="queryParams.params.dataDateStart" type="date" clearable
value-format="yyyy-MM-dd" placeholder="选择数据开始日期" style="width: 140px;" />
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.dataDateEnd" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择数据结束日期" style="width: 140px;" />
<el-date-picker v-model="queryParams.params.dataDateEnd" type="date" clearable value-format="yyyy-MM-dd"
placeholder="选择数据结束日期" style="width: 140px;" />
</el-form-item>
<el-form-item label="监管项目">
<el-select v-model="queryParams.params.projectSid" placeholder="请选择" clearable style="width: 300px;">
@ -27,14 +29,8 @@
<!-- Start 项目列表头部 -->
<div class="listtop">
<div class="tit" />
<pageye
v-show="dataList.length > 0"
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
<pageye v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
</div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
@ -42,7 +38,7 @@
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%">
<el-table-column prop="orderDate" label="数据日期" align="center" width="110" />
<el-table-column prop="projectName" label="项目名称" align="center" />
<el-table-column prop="totalLoan" label="贷款总额(元)" align="center" width="140" />
<el-table-column prop="totalLoan" label="授信总额(元)" align="center" width="140" />
<el-table-column prop="accountsBalance" label="帐户余额(元)" align="center" width="140" />
<el-table-column prop="accountsReceivable" label="应收账款(元)" align="center" width="140" />
<el-table-column prop="stockAmount" label="库存货值(元)" align="center" width="140" />
@ -55,7 +51,8 @@
</el-table-column>
<el-table-column label="操作" align="center" width="130">
<template slot-scope="scope">
<el-button type="primary" icon="el-icon-chat-dot-round" size="small" @click="sendMess(scope.row)">发送通知</el-button>
<el-button type="primary" icon="el-icon-chat-dot-round" size="small"
@click="sendMess(scope.row)">发送通知</el-button>
</template>
</el-table-column>
</el-table>
@ -64,144 +61,158 @@
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<pagination
v-show="dataList.length > 0"
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
</div>
</div>
</div>
<el-dialog title="编辑项目监管报表数据" :close-on-click-modal="false" :visible.sync="dialogVisible" width="60%" :before-close="projectDailyClose">
<el-dialog title="编辑项目监管报表数据" :close-on-click-modal="false" :visible.sync="dialogVisible" width="60%"
:before-close="projectDailyClose">
<el-form ref="form_daily" :model="projectDaily" :rules="rules" label-position="right" class="formadd">
<div class="title">
<div>项目监管数据</div>
</div>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2">
<span>填报日期</span>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item prop="orderDate"> <el-date-picker v-model="projectDaily.orderDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" /></el-form-item>
<el-col :span="8" class="trightb">
<el-form-item prop="orderDate"> <el-date-picker v-model="projectDaily.orderDate" type="date"
style="width: 100%;" placeholder="选择日期" value-format="yyyy-MM-dd" /></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-col :span="4" class="tleftb2">
<span>选择监管项目</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<el-select v-model="projectDaily.projectSid" placeholder="请选择" @change="projectSelectChange()">
<el-select v-model="projectDaily.projectSid" placeholder="请选择" @change="projectSelectChange()"
style="width: 100%;">
<el-option v-for="item in projectList" :key="item.sid" :label="item.entryName" :value="item.sid" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<span>贷款总额</span>
<el-col :span="4" class="tleftb2">
<span>授信额度</span>
</el-col>
<el-col :span="18" class="trightb">
<el-col :span="8" class="trightb">
<el-form-item prop="totalLoan">
<el-input v-model="projectDaily.totalLoan" class="addinputw" clearable @blur="zyl" />
<span>{{projectDaily.totalLoan}}</span>
<!-- <el-input v-model="projectDaily.totalLoan" class="addinputw" style="width: 100%;" clearable @blur="zyl"
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" /> -->
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb2">
<span>用信总额</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item prop="accountsBalance">
<el-input v-model="projectDaily.useLimit" class="addinputw" style="width: 100%;" clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2">
<span>帐户余额</span>
</el-col>
<el-col :span="10" class="trightb">
<el-col :span="8" class="trightb">
<el-form-item prop="accountsBalance">
<el-input v-model="projectDaily.accountsBalance" class="addinputw" clearable @blur="zyl" />
<div style="display: flex;flex-direction: row;align-items: center;justify-content: space-between;">
<span>{{projectDaily.accountsBalance}}</span>
<el-button size="small" type="primary" @click="showBalance">录入</el-button>
</div>
<!-- <el-input v-model="projectDaily.accountsBalance" class="addinputw" clearable @blur="zyl" /> -->
</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="12" class="trightb2">
<el-form-item>
<!-- <el-upload class="upload-demo" :action="updateAction" :on-success="handleSuccess1" :show-file-list="false">
<el-button size="small" type="primary">上传账户余额报表</el-button>
</el-upload> -->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2">
<span>应收账款</span>
</el-col>
<el-col :span="10" class="trightb">
<el-col :span="8" class="trightb">
<el-form-item prop="accountsReceivable">
<el-input v-model="projectDaily.accountsReceivable" class="addinputw" clearable @blur="zyl" />
<el-input v-model="projectDaily.accountsReceivable" style="width: 100%;" class="addinputw" clearable
@blur="zyl"
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item />
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2">
<span>库存货值</span>
</el-col>
<el-col :span="10" class="trightb">
<el-col :span="8" class="trightb">
<el-form-item prop="stockAmount">
<el-input v-model="projectDaily.stockAmount" class="addinputw" clearable @blur="zyl" />
<el-input v-model="projectDaily.stockAmount" style="width: 100%;" class="addinputw" clearable @blur="zyl"
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item />
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2">
<span>在途货值</span>
</el-col>
<el-col :span="10" class="trightb">
<el-col :span="8" class="trightb">
<el-form-item prop="transitAmount">
<el-input v-model="projectDaily.transitAmount" class="addinputw" clearable @blur="zyl" />
<el-input v-model="projectDaily.transitAmount" style="width: 100%;" class="addinputw" clearable
@blur="zyl"
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item />
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2">
<span>预付款</span>
</el-col>
<el-col :span="10" class="trightb">
<el-col :span="8" class="trightb">
<el-form-item prop="advancePayment">
<el-input v-model="projectDaily.advancePayment" class="addinputw" clearable @blur="zyl" />
<el-input v-model="projectDaily.advancePayment" style="width: 100%;" class="addinputw" clearable
@blur="zyl"
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item />
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2" style="padding-top: 12px;padding-bottom: 5px;">
<span>备注</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item><el-input v-model="projectDaily.remarks" type="textarea" :rows="2" placeholder="" class="addinputw" clearable /></el-form-item>
<el-col :span="20" class="trightb">
<el-form-item style="padding-top: 5px;padding-bottom: 5px;"><el-input v-model="projectDaily.remarks"
style="width: 100%;" type="textarea" :rows="2" placeholder="" class="addinputw"
clearable /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2" style="padding-bottom: 10px;padding-top: 10px;">
<span>质押率</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item>{{ zhiyalv }}</el-form-item>
<el-col :span="8" class="trightb">
<el-form-item style="padding-bottom: 10px;padding-top: 10px;">{{ zhiyalv }}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<el-col :span="4" class="tleftb2" style="padding-bottom: 10px;padding-top: 10px;">
<span>上传附件</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item style="padding-bottom: 20px;">
<el-upload class="upload-demo" :action="updateAction" :on-success="handleSuccess" :on-remove="handleRemove" :file-list="uploadFileList">
<el-col :span="8" class="trightb">
<el-form-item style="padding-bottom: 10px;padding-top: 10px;">
<el-upload class="upload-demo" :action="updateAction" :on-success="handleSuccess"
:on-remove="handleRemove" :file-list="uploadFileList">
<el-button size="small" type="primary">点击上传报表文件</el-button>
</el-upload>
</el-form-item>
@ -213,6 +224,30 @@
<el-button type="primary" @click="projectDailySave()"> </el-button>
</span>
</el-dialog>
<el-dialog title="编辑账户余额数据" :close-on-click-modal="false" :visible.sync="banInfo" width="60%"
:before-close="bankInfoClose">
<el-table :data="bankList" border :header-cell-style="rowClass">
<el-table-column label="所属企业" prop="enterpriseName" align="center" />
<el-table-column label="银行账号" prop="accountNumber" align="center" />
<el-table-column label="开户银行" prop="bank" align="center" />
<el-table-column label="账户余额" wid align="center" width="220">
<template slot-scope="scope">
<el-input v-model="scope.row.balance" style="width: 100%;" class="addinputw" clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="bankInfoClose"> </el-button>
<el-button type="primary" @click="bankInfoSave()"> </el-button>
</span>
</el-dialog>
</div>
</template>
@ -233,6 +268,7 @@
},
data() {
return {
banInfo: false,
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
@ -276,12 +312,14 @@
projectSid: '', // Sid',
projectName: '', // ',
totalLoan: 0, // ',
useLimit: 0, // ',
accountsBalance: 0, // ',
accountsReceivable: 0, // ',
stockAmount: 0, // ',
transitAmount: 0, // ',
advancePayment: 0, // ',
fileList: []
fileList: [],
bankList: [],
// fileList:[{
// fileTypeId: '', // : 1=;2=;3=;4=;5=;',
@ -341,7 +379,8 @@
projectList: [],
reportFileList: [],
zhiyalv: '0',
uploadFileList: []
uploadFileList: [],
bankList: []
}
},
mounted() {
@ -352,9 +391,46 @@
this.loadList()
},
methods: {
rowClass({
rowIndex,
columnIndex
}) {
// if (rowIndex === 0) {
// if(columnIndex===7||columnIndex===8||columnIndex===9){
// return {background:'skyblue',color:'white'}
// }else{
// return {background:'#ededed'}
// }
// }
return {
background: '#0294D7',
color: '#fff'
}
},
showBalance() {
this.getProjectAccountBySid(this.projectDaily.projectSid)
this.banInfo = true
},
bankInfoClose() {
this.banInfo = false
},
bankInfoSave() {
var balance = 0
for (var i = 0; i < this.bankList.length; i++) {
var item = this.bankList[i]
balance += Number(item.balance)
}
console.log('balance:', balance)
this.projectDaily.accountsBalance = balance
this.banInfo = false
this.zyl()
},
zyl() {
const a = Number(this.projectDaily.totalLoan) - Number(this.projectDaily.accountsBalance)
const b = Number(this.projectDaily.accountsReceivable) + Number(this.projectDaily.stockAmount) + Number(this.projectDaily.transitAmount) + Number(this.projectDaily
const b = Number(this.projectDaily.accountsReceivable) + Number(this.projectDaily.stockAmount) + Number(this
.projectDaily.transitAmount) + Number(this.projectDaily
.advancePayment)
if (b === 0) {
this.zhiyalv = '0'
@ -368,7 +444,12 @@
this.projectDaily.projectSid = this.projectList[0].sid
this.projectDaily.projectName = this.projectList[0].entryName
this.projectDaily.totalLoan = Number(this.projectList[0].creditLimit)
this.projectDaily.useLimit = Number(this.projectList[0].useLimit)
this.projectDaily.accountsBalance = this.projectList[0].balance
console.log('projectList:', res)
console.log('projectList:', this.projectList[0])
console.log('projectDaily:', this.projectDaily)
}).catch(e => {
console.log('projectListAll--ee:', e)
})
@ -437,8 +518,24 @@
if (this.projectDaily.projectSid === this.projectList[i].sid) {
this.projectDaily.totalLoan = Number(this.projectList[i].creditLimit)
this.projectDaily.projectName = this.projectList[i].entryName
this.projectDaily.accountsBalance = this.projectList[i].balance
}
}
},
getProjectAccountBySid(sid) {
console.log('getProjectAccountBySid:', sid)
req.getProjectAccountBySid(sid).then(res => {
console.log('getProjectAccountBySid:', res)
this.bankList = res.data
this.banInfo = this.bankList.length > 0
}).catch(e => {
console.log('CsmCashLog-loadList-ee:', e)
})
},
projectDailyClose() {
this.projectDaily.sid = ''
@ -447,12 +544,13 @@
this.projectDaily.projectSid = this.projectList[0].sid // Sid',
this.projectDaily.projectName = this.projectList[0].entryName // ',
this.projectDaily.totalLoan = Number(this.projectList[0].creditLimit) // ',
this.projectDaily.accountsBalance = 0 // ',
// this.projectDaily.accountsBalance = Number(this.projectList[0].balance) // ',
this.projectDaily.accountsReceivable = 0 // ',
this.projectDaily.stockAmount = 0 // ',
this.projectDaily.transitAmount = 0 // ',
this.projectDaily.advancePayment = 0 // ',
this.projectDaily.fileList = []
this.projectDaily.bankList = []
this.reportFileList = []
this.uploadFileList = []
@ -462,11 +560,18 @@
this.dialogVisible = false
},
projectDailySave() {
this.$refs['form_daily'].validate((valid) => {
if (valid) {
console.log('bankList:', this.bankList)
this.projectDaily.fileList = this.reportFileList
this.projectDaily.bankList = this.bankList
req.saveDaily(this.projectDaily).then(resp => {
console.log('projectDailySave:', this.projectDaily)
this.loadList()
this.initData()
this.projectDailyClose()
}).catch(e => {
console.log('projectDailySave--e:', e)
@ -635,10 +740,10 @@
const _this = this
let delete_index = 0
for (let i = 0, len = _this.reportFileList.length; i < len; i++) {
if (file.uid === _this.reportFileList[i].fileuid) {
delete_index = i
break
}
if (file.uid === _this.reportFileList[i].fileuid) {
delete_index = i
break
}
}
_this.reportFileList.splice(delete_index, 1)
}
@ -662,4 +767,23 @@
overflow-y: auto;
overflow-x: hidden;
}
.tleftb2 {
text-align: center;
font-size: 14px;
color: #606266;
line-height: 40px !important;
font-weight: 600;
}
.tleftb3 {
display: flex;
height: 100%;
flex-direction: row;
align-items: center;
justify-content: center;
text-align: center;
font-size: 14px;
color: #666666;
}
</style>

4
yxt-portal-ui/src/views/Home/Home.vue

@ -443,7 +443,7 @@
// window.open('http://127.0.0.1:9531/#/' + '?token=' + getStorage(), '_blank')
window.open('/customer/#/' + '?token=' + getStorage(), '_blank')
} else if (index === 1) {
window.open('http://192.168.1.119:9531#/' + '?token=' + getStorage(), '_blank')
window.open('http://192.168.1.103:9531#/' + '?token=' + getStorage(), '_blank')
// window.open('/report/#/' + '?token=' + getStorage(), '_blank')
} else if (index === 2) {
window.open('/business/#/' + '?token=' + getStorage(), '_blank')
@ -460,7 +460,7 @@
window.open('http://192.168.1.102:9531/#/' + '?token=' + getStorage(), '_blank')
// window.open('/organizational/#/' + '?token=' + getStorage(), '_blank')
} else if (index === 8) {
window.open('http://192.168.1.103:9531/#/' + '?token=' + getStorage(), '_blank')
window.open('http://192.168.1.103:9532/#/' + '?token=' + getStorage(), '_blank')
// window.open('/crm/#/' + '?token=' + getStorage(), '_blank')
} else if (index === 9) {
// window.open('http://192.168.1.102:9531/#/' + '?token=' + getStorage(), '_blank')

Loading…
Cancel
Save