settleMajor.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  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="evaluate">
  8. <y-page-list-layout :get-page-list="majorEvaluatorSettleProd" :page-list="evaluatorProd" :page-para="listQuery1">
  9. <template slot="left">
  10. <el-date-picker clearable v-model="findDate" type="daterange" align="center" unlink-panels
  11. range-separator="至" start-placeholder="统计日期(开始)" end-placeholder="统计日期(结束)" :picker-options="pickerOptions"
  12. value-format="yyyy-MM-dd" style="float: left;">
  13. </el-date-picker>
  14. <el-input v-model="listQuery1.orderId" placeholder="项目编号" clearable style="margin-left: 20px;width: 200px;float: left;">
  15. </el-input>
  16. <el-input v-model="listQuery1.reportNo" placeholder="产品号" clearable style="margin-left: 20px;width: 200px;float: left;">
  17. </el-input>
  18. <el-input v-model="listQuery1.principal" placeholder="负责人" clearable style="margin-left: 20px;width: 200px;float: left;">
  19. </el-input>
  20. <el-input v-model="listQuery1.clientManager" placeholder="客户经理" clearable style="margin-left: 20px;width: 200px;float: left;">
  21. </el-input>
  22. <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList1()" round>搜索
  23. </el-button>
  24. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch1()">重置
  25. </el-button>
  26. <el-button class="filter-item" style="float: left;" round type="info" @click="exportEvaluateSettleProd()">导出
  27. </el-button>
  28. </template>
  29. <parentTable :data="evaluatorProd.records" slot="table" style="width: 100%;">
  30. <el-table-column label="项目编号" width="110" align="center">
  31. <template slot-scope="{row}">
  32. <span>{{ row.orderId }}</span>
  33. </template>
  34. </el-table-column>
  35. <el-table-column label="产品号" width="200" align="center">
  36. <template slot-scope="{row}">
  37. <span>{{ row.reportNo }}</span>
  38. </template>
  39. </el-table-column>
  40. <el-table-column label="结算日期" width="100" align="center">
  41. <template slot-scope="{row}">
  42. <span style="color:red">{{ row.settleDate }}</span>
  43. </template>
  44. </el-table-column>
  45. <el-table-column label="认领日期" width="100" align="center">
  46. <template slot-scope="{row}">
  47. <span>{{ row.claimDate }}</span>
  48. </template>
  49. </el-table-column>
  50. <el-table-column label="归档日期" width="100" align="center">
  51. <template slot-scope="{row}">
  52. <span>{{ row.saveFileDate}}</span>
  53. </template>
  54. </el-table-column>
  55. <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
  56. <template slot-scope="{row}">
  57. <span>{{ row.name }}</span>
  58. </template>
  59. </el-table-column>
  60. <el-table-column label="客户名称" align="center">
  61. <template slot-scope="{row}">
  62. <span>{{ row.clientName }}</span>
  63. </template>
  64. </el-table-column>
  65. <el-table-column label="业务来源" align="center">
  66. <template slot-scope="{row}">
  67. <span>{{ row.clientSubName }}</span>
  68. </template>
  69. </el-table-column>
  70. <el-table-column label="委托方" width="200" align="center">
  71. <template slot-scope="{row}">
  72. <span>{{ row.bailor }}</span>
  73. </template>
  74. </el-table-column>
  75. <!-- <el-table-column label="分配产值" align="center">
  76. <template slot-scope="{row}">
  77. <span>{{ row.clientSubName }}</span>
  78. </template>
  79. </el-table-column> -->
  80. <el-table-column label="市场部" align="center">
  81. <template slot-scope="{row}">
  82. <span>{{ row.marketDepartmentName }}</span>
  83. </template>
  84. </el-table-column>
  85. <el-table-column label="评估部" align="center">
  86. <template slot-scope="{row}">
  87. <span>{{ row.evaluateDepartmentName }}</span>
  88. </template>
  89. </el-table-column>
  90. <el-table-column label="客户经理" align="center">
  91. <template slot-scope="{row}">
  92. <span>{{ row.clientManager }}</span>
  93. </template>
  94. </el-table-column>
  95. <el-table-column label="负责人" align="center">
  96. <template slot-scope="{row}">
  97. <span>{{ row.principal }}</span>
  98. </template>
  99. </el-table-column>
  100. <!-- <el-table-column label="参与人" align="center">
  101. <template slot-scope="{row}">
  102. <span>{{ row.principal }}</span>
  103. </template>
  104. </el-table-column> -->
  105. <el-table-column label="结算金额(元)" align="center">
  106. <template slot-scope="{row}">
  107. <span style="color:red;font-weight: bold;">{{ row.claimAmount }}</span>
  108. </template>
  109. </el-table-column>
  110. <el-table-column label="评估价值(万元)" align="center">
  111. <template slot-scope="{row}">
  112. <span>{{ row.evaluateAmount/10000 }}</span>
  113. </template>
  114. </el-table-column>
  115. <el-table-column label="开票日期" align="center">
  116. <template slot-scope="{row}">
  117. <span>{{ row.invoiceDate }}</span>
  118. </template>
  119. </el-table-column>
  120. <el-table-column label="开票人" align="center">
  121. <template slot-scope="{row}">
  122. <span>{{ row.invoiceUser }}</span>
  123. </template>
  124. </el-table-column>
  125. <el-table-column label="发票号" align="center">
  126. <template slot-scope="{row}">
  127. <span>{{ row.invoiceNo }}</span>
  128. </template>
  129. </el-table-column>
  130. </parentTable>
  131. </y-page-list-layout>
  132. </el-tab-pane>
  133. <el-tab-pane label="市场人员" name="market">
  134. <y-page-list-layout :get-page-list="majorMarketSettleProd" :page-list="marketProd" :page-para="listQuery2">
  135. <template slot="left">
  136. <el-date-picker clearable v-model="findDate1" type="daterange" align="center" unlink-panels
  137. range-separator="至" start-placeholder="统计日期(开始)" end-placeholder="统计日期(结束)" :picker-options="pickerOptions"
  138. value-format="yyyy-MM-dd" style="float: left;">
  139. </el-date-picker>
  140. <el-input v-model="listQuery2.orderId" placeholder="项目编号" clearable style="margin-left: 20px;width: 200px;float: left;">
  141. </el-input>
  142. <el-input v-model="listQuery2.reportNo" placeholder="产品号" clearable style="margin-left: 20px;width: 200px;float: left;">
  143. </el-input>
  144. <el-input v-model="listQuery2.principal" placeholder="负责人" clearable style="margin-left: 20px;width: 200px;float: left;">
  145. </el-input>
  146. <el-input v-model="listQuery2.clientManager" placeholder="客户经理" clearable style="margin-left: 20px;width: 200px;float: left;">
  147. </el-input>
  148. <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList2()" round>搜索
  149. </el-button>
  150. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch2()">重置
  151. </el-button>
  152. <el-button class="filter-item" style="float: left;" round type="info" @click="exportMarketSettleProd()">导出
  153. </el-button>
  154. </template>
  155. <parentTable :data="marketProd.records" slot="table" style="width: 100%;">
  156. <el-table-column label="项目编号" width="110" align="center">
  157. <template slot-scope="{row}">
  158. <span>{{ row.orderId }}</span>
  159. </template>
  160. </el-table-column>
  161. <el-table-column label="产品号" width="200" align="center">
  162. <template slot-scope="{row}">
  163. <span>{{ row.reportNo }}</span>
  164. </template>
  165. </el-table-column>
  166. <el-table-column label="结算日期" width="100" align="center">
  167. <template slot-scope="{row}">
  168. <span style="color:red">{{ row.settleDate }}</span>
  169. </template>
  170. </el-table-column>
  171. <el-table-column label="认领日期" width="100" align="center">
  172. <template slot-scope="{row}">
  173. <span>{{ row.claimDate }}</span>
  174. </template>
  175. </el-table-column>
  176. <el-table-column label="送达日期" width="100" align="center">
  177. <template slot-scope="{row}">
  178. <span>{{ row.deliveryDate}}</span>
  179. </template>
  180. </el-table-column>
  181. <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
  182. <template slot-scope="{row}">
  183. <span>{{ row.name }}</span>
  184. </template>
  185. </el-table-column>
  186. <el-table-column label="客户名称" align="center">
  187. <template slot-scope="{row}">
  188. <span>{{ row.clientName }}</span>
  189. </template>
  190. </el-table-column>
  191. <el-table-column label="业务来源" align="center">
  192. <template slot-scope="{row}">
  193. <span>{{ row.clientSubName }}</span>
  194. </template>
  195. </el-table-column>
  196. <el-table-column label="委托方" width="100" align="center">
  197. <template slot-scope="{row}">
  198. <span>{{ row.bailor }}</span>
  199. </template>
  200. </el-table-column>
  201. <!-- <el-table-column label="分配产值" align="center">
  202. <template slot-scope="{row}">
  203. <span>{{ row.clientSubName }}</span>
  204. </template>
  205. </el-table-column> -->
  206. <el-table-column label="市场部" align="center">
  207. <template slot-scope="{row}">
  208. <span>{{ row.marketDepartmentName }}</span>
  209. </template>
  210. </el-table-column>
  211. <el-table-column label="评估部" align="center">
  212. <template slot-scope="{row}">
  213. <span>{{ row.evaluateDepartmentName }}</span>
  214. </template>
  215. </el-table-column>
  216. <el-table-column label="客户经理" align="center">
  217. <template slot-scope="{row}">
  218. <span>{{ row.clientManager }}</span>
  219. </template>
  220. </el-table-column>
  221. <el-table-column label="负责人" align="center">
  222. <template slot-scope="{row}">
  223. <span>{{ row.principal }}</span>
  224. </template>
  225. </el-table-column>
  226. <!-- <el-table-column label="参与人" align="center">
  227. <template slot-scope="{row}">
  228. <span>{{ row.principal }}</span>
  229. </template>
  230. </el-table-column> -->
  231. <el-table-column label="结算金额(元)" align="center">
  232. <template slot-scope="{row}">
  233. <span style="color:red;font-weight: bold;">{{ row.claimAmount }}</span>
  234. </template>
  235. </el-table-column>
  236. <el-table-column label="评估价值(万元)" align="center">
  237. <template slot-scope="{row}">
  238. <span>{{ row.evaluateAmount/10000 }}</span>
  239. </template>
  240. </el-table-column>
  241. <el-table-column label="开票日期" align="center">
  242. <template slot-scope="{row}">
  243. <span>{{ row.invoiceDate }}</span>
  244. </template>
  245. </el-table-column>
  246. <el-table-column label="开票人" align="center">
  247. <template slot-scope="{row}">
  248. <span>{{ row.invoiceUser }}</span>
  249. </template>
  250. </el-table-column>
  251. <el-table-column label="发票号" align="center">
  252. <template slot-scope="{row}">
  253. <span>{{ row.invoiceNo }}</span>
  254. </template>
  255. </el-table-column>
  256. </parentTable>
  257. </y-page-list-layout>
  258. </el-tab-pane>
  259. </el-tabs>
  260. </div>
  261. </template>
  262. <script>
  263. import Breadcrumb from '@/components/Breadcrumb'
  264. import YPageListLayout from '@/components/YPageListLayout'
  265. export default {
  266. name: 'settleMajor',
  267. components: {
  268. Breadcrumb,
  269. YPageListLayout
  270. },
  271. data() {
  272. return {
  273. activeName: 'evaluate',
  274. listQuery1: {
  275. page: 1,
  276. size: 10,
  277. descs: 'id',
  278. startDate:'2024-05-01 00:00:00',
  279. endDate:'2024-06-01 00:00:00'
  280. },
  281. listQuery2: {
  282. page: 1,
  283. size: 10,
  284. descs: 'id',
  285. startDate:'2024-05-01 00:00:00',
  286. endDate:'2024-06-01 00:00:00'
  287. },
  288. pickerOptions: {
  289. shortcuts: [{
  290. text: '最近一周',
  291. onClick(picker) {
  292. const end = new Date();
  293. const start = new Date();
  294. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  295. picker.$emit('pick', [start, end]);
  296. }
  297. }, {
  298. text: '最近一个月',
  299. onClick(picker) {
  300. const end = new Date();
  301. const start = new Date();
  302. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  303. picker.$emit('pick', [start, end]);
  304. }
  305. }, {
  306. text: '最近三个月',
  307. onClick(picker) {
  308. const end = new Date();
  309. const start = new Date();
  310. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  311. picker.$emit('pick', [start, end]);
  312. }
  313. }]
  314. },
  315. findDate: [],
  316. findDate1: [],
  317. evaluatorProd:{
  318. records:[]
  319. },
  320. marketProd:{
  321. records:[]
  322. }
  323. }
  324. },
  325. created() {
  326. this.findDate.push(this.getDefaultStartDate());
  327. this.findDate.push(this.getDefaultEndDate());
  328. this.findDate1.push(this.getDefaultStartDate());
  329. this.findDate1.push(this.getDefaultEndDate());
  330. this.majorEvaluatorSettleProd();
  331. },
  332. methods: {
  333. getDefaultStartDate(){
  334. const currentDate = new Date();
  335. const currentYear = currentDate.getFullYear();
  336. var currentMonth = String(currentDate.getMonth()).padStart(2,"0");
  337. return currentYear+'-'+currentMonth+'-'+'23'
  338. },
  339. getDefaultEndDate(){
  340. const currentDate = new Date();
  341. const currentYear = currentDate.getFullYear();
  342. var currentMonth = String(currentDate.getMonth() + 1).padStart(2,"0");
  343. return currentYear+'-'+currentMonth+'-'+'22'
  344. },
  345. handleClick(tab, event) {
  346. if (tab.name==='market'){
  347. this.majorMarketSettleProd();
  348. }
  349. if (tab.name==='evaluate'){
  350. this.majorEvaluatorSettleProd()
  351. }
  352. },
  353. resetSearch1() {
  354. this.$router.push({ query: {} });
  355. this.findDate = '';
  356. this.listQuery1 = {
  357. current: 1,
  358. size: 10,
  359. descs: 'id',
  360. startDate:null,
  361. endDate:null,
  362. }
  363. this.majorEvaluatorSettleProd()
  364. },
  365. searchList1() {
  366. // 重置分页
  367. this.listQuery1.page = 1
  368. this.listQuery1.size = 10
  369. if (this.findDate){
  370. this.listQuery1.startDate = this.findDate[0]+' 00:00:00';
  371. this.listQuery1.endDate = this.findDate[1]+ ' 23:59:59';
  372. }
  373. this.majorEvaluatorSettleProd()
  374. },
  375. resetSearch2() {
  376. this.$router.push({ query: {} });
  377. this.findDate2 = '';
  378. this.listQuery2 = {
  379. current: 1,
  380. size: 10,
  381. descs: 'id',
  382. startDate:null,
  383. endDate:null,
  384. }
  385. this.majorMarketSettleProd()
  386. },
  387. searchList2() {
  388. // 重置分页
  389. this.listQuery2.page = 1
  390. this.listQuery2.size = 10
  391. if (this.findDate){
  392. this.listQuery2.startDate = this.findDate1[0]+' 00:00:00';
  393. this.listQuery2.endDate = this.findDate1[1]+ ' 23:59:59';
  394. }
  395. this.majorMarketSettleProd()
  396. },
  397. majorEvaluatorSettleProd(){
  398. if (this.findDate){
  399. this.listQuery1.startDate = this.findDate[0]+' 00:00:00';
  400. this.listQuery1.endDate = this.findDate[1]+ ' 23:59:59';
  401. }
  402. this.$api.financeRealFund.majorEvaluatorSettleProd(this.listQuery1).then(res=>{
  403. if (res.code === 200){
  404. this.evaluatorProd = res.data;
  405. }
  406. })
  407. },
  408. majorMarketSettleProd(){
  409. if (this.findDate1){
  410. this.listQuery2.startDate = this.findDate1[0]+' 00:00:00';
  411. this.listQuery2.endDate = this.findDate1[1]+ ' 23:59:59';
  412. }
  413. this.$api.financeRealFund.majorMarketSettleProd(this.listQuery2).then(res=>{
  414. if (res.code === 200){
  415. this.marketProd = res.data;
  416. }
  417. })
  418. },
  419. exportMarketSettleProd(){
  420. this.$utils.exportUtil(
  421. "/financeRealFund/major/market/settle/export", this.listQuery2,
  422. "导出"
  423. );
  424. },
  425. exportEvaluateSettleProd(){
  426. this.$utils.exportUtil(
  427. "/financeRealFund/major/evaluator/settle/export", this.listQuery1,
  428. "导出"
  429. );
  430. }
  431. }
  432. }
  433. </script>
  434. <style scoped lang="scss">
  435. </style>