fundWarning.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  1. <template>
  2. <div class="app-container organization-index">
  3. <div class="title-container">
  4. <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
  5. </div>
  6. <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card" style="margin-top: 10px;">
  7. <el-tab-pane label="大中型预警" name="major">
  8. <y-page-list-layout :get-page-list="getOverdueMajor" :page-list="overdueMajor" :page-para="listQuery1" :pageSizes="[10, 20, 30, 50, 100, 200, 500, 1000]">
  9. <template slot="left">
  10. <el-input v-model="listQuery1.overdueMin" placeholder="最小超期天数" clearable style="width: 150px;float: left;">
  11. </el-input>
  12. <el-input v-model="listQuery1.overdueMax" placeholder="最大超期天数" clearable
  13. style="margin-left: 20px;width: 150px;float: left;">
  14. </el-input>
  15. <el-input v-model="listQuery1.orderId" placeholder="项目编号" clearable
  16. style="margin-left: 20px;width: 200px;float: left;">
  17. </el-input>
  18. <el-input v-model="listQuery1.reportNo" placeholder="产品号" clearable
  19. style="margin-left: 20px;width: 200px;float: left;">
  20. </el-input>
  21. <el-input v-model="listQuery1.principal" placeholder="负责人" clearable
  22. style="margin-left: 20px;width: 200px;float: left;">
  23. </el-input>
  24. <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList1"
  25. round>搜索
  26. </el-button>
  27. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch1()">重置
  28. </el-button>
  29. <el-button class="filter-item" style="float: left;" round type="info" @click="exportOverdueMajor()">导出
  30. </el-button>
  31. </template>
  32. <el-table size="medium" slot="table" row-key="id" :data="overdueMajor.records" fit highlight-current-row border
  33. :header-row-style="{ color: '#333333' }"
  34. style="border-left: 1px solid #EBECED;border-right: 1px solid #EBECED;color: #333333;">
  35. <el-table-column label="超期天数" align="center">
  36. <template slot-scope="{row}">
  37. <span style="color:red;font-weight: bold;">{{ row.overdueDay }}天</span>
  38. </template>
  39. </el-table-column>
  40. <el-table-column label="分单类型" align="center">
  41. <template slot-scope="{row}">
  42. <span>{{ row.allotType }}</span>
  43. </template>
  44. </el-table-column>
  45. <el-table-column label="项目编号" width="150" align="center">
  46. <template slot-scope="{row}">
  47. <span>{{ row.orderId }}</span>
  48. </template>
  49. </el-table-column>
  50. <el-table-column label="产品号" width="200" align="center">
  51. <template slot-scope="{row}">
  52. <span>{{ row.reportNo }}</span>
  53. </template>
  54. </el-table-column>
  55. <el-table-column label="产品类型" align="center">
  56. <template slot-scope="{row}">
  57. <span>{{ row.production }}</span>
  58. </template>
  59. </el-table-column>
  60. <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
  61. <template slot-scope="{row}">
  62. <span>{{ row.name }}</span>
  63. </template>
  64. </el-table-column>
  65. <el-table-column label="客户名称" align="center">
  66. <template slot-scope="{row}">
  67. <span>{{ row.clientName }}</span>
  68. </template>
  69. </el-table-column>
  70. <el-table-column label="业务来源" align="center">
  71. <template slot-scope="{row}">
  72. <span>{{ row.clientSubName }}</span>
  73. </template>
  74. </el-table-column>
  75. <el-table-column label="客户经理" align="center">
  76. <template slot-scope="{row}">
  77. <span>{{ row.clientManager }}</span>
  78. </template>
  79. </el-table-column>
  80. <el-table-column label="负责人" align="center">
  81. <template slot-scope="{row}">
  82. <span>{{ row.principal }}</span>
  83. </template>
  84. </el-table-column>
  85. <el-table-column label="评估价值(万元)" align="center">
  86. <template slot-scope="{row}">
  87. <span>{{ row.evaluateAmount / 10000 }}</span>
  88. </template>
  89. </el-table-column>
  90. <el-table-column label="应收款(元)" align="center">
  91. <template slot-scope="{row}">
  92. <span>{{ row.shouldAmount }}</span>
  93. </template>
  94. </el-table-column>
  95. <el-table-column label="实收款(元)" align="center">
  96. <template slot-scope="{row}">
  97. <span style="color:red;font-weight: bold;">0</span>
  98. </template>
  99. </el-table-column>
  100. <el-table-column label="标准收费(元)" align="center">
  101. <template slot-scope="{row}">
  102. <span>{{ row.standardAmount }}</span>
  103. </template>
  104. </el-table-column>
  105. <el-table-column label="出库时间" width="110" align="center">
  106. <template slot-scope="{row}">
  107. <span>{{ row.repertoryOutTime }}</span>
  108. </template>
  109. </el-table-column>
  110. </el-table>
  111. </y-page-list-layout>
  112. </el-tab-pane>
  113. <el-tab-pane label="个贷预警" name="personal">
  114. <y-page-list-layout :get-page-list="getOverduePersonal" :page-list="overduePersonal" :page-para="listQuery3" :pageSizes="[10, 20, 30, 50, 100, 200, 500, 1000]">
  115. <template slot="left">
  116. <el-input v-model="listQuery3.overdueMin" placeholder="最小超期天数" clearable style="width: 150px;float: left;">
  117. </el-input>
  118. <el-input v-model="listQuery3.overdueMax" placeholder="最大超期天数" clearable
  119. style="margin-left: 20px;width: 150px;float: left;">
  120. </el-input>
  121. <el-input v-model="listQuery3.orderId" placeholder="项目编号" clearable
  122. style="margin-left: 20px;width: 200px;float: left;">
  123. </el-input>
  124. <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList3()"
  125. round>搜索
  126. </el-button>
  127. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch3()">重置
  128. </el-button>
  129. <el-button class="filter-item" style="float: left;" round type="info" @click="exportOverduePersonal()">导出
  130. </el-button>
  131. </template>
  132. <el-table size="medium" slot="table" row-key="id" :data="overduePersonal.records" fit highlight-current-row border
  133. :header-row-style="{ color: '#333333' }"
  134. style="border-left: 1px solid #EBECED;border-right: 1px solid #EBECED;color: #333333;">
  135. <el-table-column label="超期天数" align="center">
  136. <template slot-scope="{row}">
  137. <span style="color:red;font-weight: bold;">{{ row.overdueDay }}天</span>
  138. </template>
  139. </el-table-column>
  140. <el-table-column label="项目编号" align="center">
  141. <template slot-scope="{row}">
  142. <span>{{ row.orderId }}</span>
  143. </template>
  144. </el-table-column>
  145. <el-table-column label="坐落" width="200" align="center" show-overflow-tooltip>
  146. <template slot-scope="{row}">
  147. <span>{{ row.location }}</span>
  148. </template>
  149. </el-table-column>
  150. <el-table-column label="面积" align="center">
  151. <template slot-scope="{row}">
  152. <span>{{ row.acreage }}</span>
  153. </template>
  154. </el-table-column>
  155. <el-table-column label="单价" align="center">
  156. <template slot-scope="{row}">
  157. <span>{{ row.price }}</span>
  158. </template>
  159. </el-table-column>
  160. <el-table-column label="总价" align="center" >
  161. <template slot-scope="{row}">
  162. <span>{{ row.amount }}</span>
  163. </template>
  164. </el-table-column>
  165. <el-table-column label="客户名称" align="center">
  166. <template slot-scope="{row}">
  167. <span>{{ row.clientName }}</span>
  168. </template>
  169. </el-table-column>
  170. <el-table-column label="业务来源" align="center">
  171. <template slot-scope="{row}">
  172. <span>{{ row.clientSubName }}</span>
  173. </template>
  174. </el-table-column>
  175. <el-table-column label="中介" align="center">
  176. <template slot-scope="{row}">
  177. <span>{{ row.agent }}</span>
  178. </template>
  179. </el-table-column>
  180. <el-table-column label="联系人" align="center">
  181. <template slot-scope="{row}">
  182. <span>{{ row.contactName }}</span>
  183. </template>
  184. </el-table-column>
  185. <el-table-column label="联系电话" align="center">
  186. <template slot-scope="{row}">
  187. <span>{{ row.contactTel }}</span>
  188. </template>
  189. </el-table-column>
  190. <el-table-column label="委托人" align="center">
  191. <template slot-scope="{row}">
  192. <span>{{ row.bailorA }}</span>
  193. </template>
  194. </el-table-column>
  195. <el-table-column label="客户经理" align="center">
  196. <template slot-scope="{row}">
  197. <span>{{ row.clientManager }}</span>
  198. </template>
  199. </el-table-column>
  200. <el-table-column label="勘察人" align="center">
  201. <template slot-scope="{row}">
  202. <span>{{ row.outwardStaffName }}</span>
  203. </template>
  204. </el-table-column>
  205. <el-table-column label="产品内业" align="center">
  206. <template slot-scope="{row}">
  207. <span>{{ row.inwardStaffName }}</span>
  208. </template>
  209. </el-table-column>
  210. <el-table-column label="定价内业" align="center">
  211. <template slot-scope="{row}">
  212. <span>{{ row.pricingStaffName }}</span>
  213. </template>
  214. </el-table-column>
  215. <el-table-column label="出库时间" width="160" align="center">
  216. <template slot-scope="{row}">
  217. <span>{{ row.rot }}</span>
  218. </template>
  219. </el-table-column>
  220. </el-table>
  221. </y-page-list-layout>
  222. </el-tab-pane>
  223. <el-tab-pane label="资产预警" name="assets">
  224. <y-page-list-layout :get-page-list="getOverdueAssets" :page-list="overdueAssets" :page-para="listQuery2" :pageSizes="[10, 20, 30, 50, 100, 200, 500, 1000]">
  225. <template slot="left">
  226. <el-input v-model="listQuery2.overdueMin" placeholder="最小超期天数" clearable style="width: 150px;float: left;">
  227. </el-input>
  228. <el-input v-model="listQuery2.overdueMax" placeholder="最大超期天数" clearable
  229. style="margin-left: 20px;width: 150px;float: left;">
  230. </el-input>
  231. <el-input v-model="listQuery2.orderId" placeholder="项目编号" clearable
  232. style="margin-left: 20px;width: 200px;float: left;">
  233. </el-input>
  234. <el-input v-model="listQuery2.productionNo" placeholder="产品号" clearable
  235. style="margin-left: 20px;width: 200px;float: left;">
  236. </el-input>
  237. <el-input v-model="listQuery2.principal" placeholder="负责人" clearable
  238. style="margin-left: 20px;width: 200px;float: left;">
  239. </el-input>
  240. <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList2()"
  241. round>搜索
  242. </el-button>
  243. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch2()">重置
  244. </el-button>
  245. <el-button class="filter-item" style="float: left;" round type="info" @click="exportOverdueAssets()">导出
  246. </el-button>
  247. </template>
  248. <el-table size="medium" slot="table" row-key="id" :data="overdueAssets.records" fit highlight-current-row border
  249. :header-row-style="{ color: '#333333' }"
  250. style="border-left: 1px solid #EBECED;border-right: 1px solid #EBECED;color: #333333;">
  251. <el-table-column label="超期天数" align="center">
  252. <template slot-scope="{row}">
  253. <span style="color:red;font-weight: bold;">{{ row.overdueDay }}天</span>
  254. </template>
  255. </el-table-column>
  256. <el-table-column label="分单类型" align="center">
  257. <template slot-scope="{row}">
  258. <span>{{ row.allotType }}</span>
  259. </template>
  260. </el-table-column>
  261. <el-table-column label="项目编号" width="150" align="center">
  262. <template slot-scope="{row}">
  263. <span>{{ row.orderId }}</span>
  264. </template>
  265. </el-table-column>
  266. <el-table-column label="产品号" width="200" align="center">
  267. <template slot-scope="{row}">
  268. <span>{{ row.productionNo }}</span>
  269. </template>
  270. </el-table-column>
  271. <el-table-column label="产品类型" align="center">
  272. <template slot-scope="{row}">
  273. <span>{{ row.productionType }}</span>
  274. </template>
  275. </el-table-column>
  276. <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
  277. <template slot-scope="{row}">
  278. <span>{{ row.projectName }}</span>
  279. </template>
  280. </el-table-column>
  281. <el-table-column label="客户名称" align="center">
  282. <template slot-scope="{row}">
  283. <span>{{ row.clientName }}</span>
  284. </template>
  285. </el-table-column>
  286. <el-table-column label="业务来源" align="center">
  287. <template slot-scope="{row}">
  288. <span>{{ row.clientSubName }}</span>
  289. </template>
  290. </el-table-column>
  291. <el-table-column label="客户经理" align="center">
  292. <template slot-scope="{row}">
  293. <span>{{ row.clientManager }}</span>
  294. </template>
  295. </el-table-column>
  296. <el-table-column label="负责人" align="center">
  297. <template slot-scope="{row}">
  298. <span>{{ row.principal }}</span>
  299. </template>
  300. </el-table-column>
  301. <el-table-column label="评估价值(万元)" align="center">
  302. <template slot-scope="{row}">
  303. <span>{{ row.evaluateAmount }}</span>
  304. </template>
  305. </el-table-column>
  306. <el-table-column label="订单应收款(元)" align="center">
  307. <template slot-scope="{row}">
  308. <span>{{ row.shouldAmount }}</span>
  309. </template>
  310. </el-table-column>
  311. <el-table-column label="标准收费(元)" align="center">
  312. <template slot-scope="{row}">
  313. <span>{{ row.standardAmount }}</span>
  314. </template>
  315. </el-table-column>
  316. <el-table-column label="出库时间" width="160" align="center">
  317. <template slot-scope="{row}">
  318. <span>{{ row.repertoryOutTime }}</span>
  319. </template>
  320. </el-table-column>
  321. </el-table>
  322. </y-page-list-layout>
  323. </el-tab-pane>
  324. </el-tabs>
  325. </div>
  326. </template>
  327. <script>
  328. import Breadcrumb from '@/components/Breadcrumb'
  329. import YPageListLayout from '@/components/YPageListLayout'
  330. export default {
  331. name: 'fundWaning',
  332. components: {
  333. Breadcrumb,
  334. YPageListLayout
  335. },
  336. data() {
  337. return {
  338. activeName: 'major',
  339. listQuery1: {
  340. page: 1,
  341. size: 1000,
  342. descs: 'id',
  343. overdueMin: 90
  344. },
  345. listQuery2: {
  346. page: 1,
  347. size: 1000,
  348. descs: 'id',
  349. overdueMin: 90
  350. },
  351. listQuery3: {
  352. page: 1,
  353. size: 1000,
  354. descs: 'id',
  355. overdueMin: 90
  356. },
  357. overdueMajor: {
  358. records: []
  359. },
  360. overdueAssets: {
  361. records: []
  362. },
  363. overduePersonal:{
  364. records: []
  365. }
  366. }
  367. },
  368. created() {
  369. this.getOverdueMajor();
  370. },
  371. methods: {
  372. handleClick(tab, event) {
  373. if (tab.name === 'major') {
  374. this.getOverdueMajor();
  375. }
  376. if (tab.name === 'assets') {
  377. this.getOverdueAssets();
  378. }
  379. if (tab.name === 'personal'){
  380. this.getOverduePersonal();
  381. }
  382. },
  383. resetSearch1() {
  384. this.$router.push({ query: {} });
  385. this.listQuery1 = {
  386. current: 1,
  387. size: 1000,
  388. descs: 'id',
  389. overdueMin: 90
  390. }
  391. this.getOverdueMajor()
  392. },
  393. searchList1() {
  394. // 重置分页
  395. this.listQuery1.page = 1
  396. this.listQuery1.size = 1000
  397. this.getOverdueMajor()
  398. },
  399. getOverdueMajor() {
  400. let loadingInstance = this.$loading({ fullscreen: true });
  401. this.$api.financeRealFund.overdueMajor(this.listQuery1).then(res => {
  402. if (res.code === 200) {
  403. loadingInstance.close();
  404. this.overdueMajor = res.data;
  405. }
  406. })
  407. },
  408. exportOverdueMajor() {
  409. this.$utils.exportUtil(
  410. "/financeRealFund/overdue/major/export", this.listQuery1,
  411. "导出"
  412. );
  413. },
  414. resetSearch2() {
  415. this.$router.push({ query: {} });
  416. this.listQuery2 = {
  417. current: 1,
  418. size: 1000,
  419. descs: 'id',
  420. overdueMin: 90
  421. }
  422. this.getOverdueAssets();
  423. },
  424. searchList2() {
  425. // 重置分页
  426. this.listQuery2.page = 1
  427. this.listQuery2.size = 1000
  428. this.getOverdueAssets();
  429. },
  430. resetSearch3() {
  431. this.$router.push({ query: {} });
  432. this.listQuery3 = {
  433. current: 1,
  434. size: 1000,
  435. descs: 'id',
  436. overdueMin: 90
  437. }
  438. this.getOverdueAssets();
  439. },
  440. searchList3() {
  441. // 重置分页
  442. this.listQuery3.page = 1
  443. this.listQuery3.size = 1000
  444. this.getOverduePersonal();
  445. },
  446. getOverdueAssets() {
  447. let loadingInstance = this.$loading({ fullscreen: true });
  448. this.$api.financeRealFund.overdueAssets(this.listQuery2).then(res => {
  449. if (res.code === 200) {
  450. this.overdueAssets = res.data;
  451. loadingInstance.close();
  452. }
  453. })
  454. },
  455. exportOverdueAssets() {
  456. this.$utils.exportUtil(
  457. "/financeRealFund/overdue/assets/export", this.listQuery2,
  458. "导出"
  459. );
  460. },
  461. getOverduePersonal(){
  462. let loadingInstance = this.$loading({ fullscreen: true });
  463. this.$api.financeRealFund.personalOverdue(this.listQuery3).then(res=>{
  464. if (res.code === 200){
  465. this.overduePersonal = res.data;
  466. loadingInstance.close();
  467. }
  468. })
  469. },
  470. exportOverduePersonal() {
  471. this.$utils.exportUtil(
  472. "/financeRealFund/overdue/personal/export", this.listQuery3,
  473. "导出"
  474. );
  475. },
  476. }
  477. }
  478. </script>
  479. <style scoped lang="scss"></style>