fundClaim.vue 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946
  1. <template>
  2. <div class="app-container">
  3. <div class="title-container">
  4. <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
  5. </div>
  6. <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList">
  7. <template slot="left">
  8. <PermissionButton menu-code="_views_finance_real_fund_create" class-name="filter-item" type="success"
  9. icon="el-icon-circle-plus-outline" :page-jump="false" round style="float: left"
  10. @click="createdRealFundDialog = true" />
  11. <el-input v-model="listQuery.keyword" placeholder="关键字搜索..." clearable
  12. style="margin-left: 20px;width: 500px;float: left;">
  13. </el-input>
  14. <el-date-picker style="margin-left: 20px;float: left;" v-model="payDate" type="daterange" align="center"
  15. unlink-panels range-separator="至" start-placeholder="到账时日(开始)" end-placeholder="到账时日(结束)"
  16. :picker-options="pickerOptions" value-format="yyyy-MM-dd">
  17. </el-date-picker>
  18. <el-date-picker style="margin-left: 20px;float: left;" v-model="orderDate" type="daterange" align="center"
  19. unlink-panels range-separator="至" start-placeholder="录入时间(开始)" end-placeholder="录入时间(结束)"
  20. :picker-options="pickerOptions" value-format="yyyy-MM-dd">
  21. </el-date-picker>
  22. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索
  23. </el-button>
  24. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
  25. </el-button>
  26. </template>
  27. <parentTable :data="pageData.records" slot="table" style="width: 100%;">
  28. <el-table-column label="付款方" align="center" width='200'>
  29. <template slot-scope="{row}">
  30. <span>{{ row.payer }}</span>
  31. </template>
  32. </el-table-column>
  33. <el-table-column label="付款银行" align="center" width='130'>
  34. <template slot-scope="{row}">
  35. <span>{{ row.payerBank }}</span>
  36. </template>
  37. </el-table-column>
  38. <el-table-column label="付款账号" align="center" width='200'>
  39. <template slot-scope="{row}">
  40. <span>{{ row.payerAccount }}</span>
  41. </template>
  42. </el-table-column>
  43. <el-table-column label="付款金额(元)" align="center">
  44. <template slot-scope="{row}">
  45. <span>{{ row.amount }}</span>
  46. </template>
  47. </el-table-column>
  48. <el-table-column label="到账时日" align="center">
  49. <template slot-scope="{row}">
  50. <span>{{ row.payDatetime }}</span>
  51. </template>
  52. </el-table-column>
  53. <el-table-column label="已认领(元)" align="center">
  54. <template slot-scope="{row}">
  55. <span style="color:green">{{ row.claimAmount }}</span>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="未认领(元)" align="center">
  59. <template slot-scope="{row}">
  60. <span style="color:red">{{ row.notClaimAmount }}</span>
  61. </template>
  62. </el-table-column>
  63. <el-table-column label="录入人" align="center">
  64. <template slot-scope="{row}">
  65. <span>{{ row.creator }}</span>
  66. </template>
  67. </el-table-column>
  68. <el-table-column label="录入时间" align="center" width='160'>
  69. <template slot-scope="{row}">
  70. <span>{{ row.created }}</span>
  71. </template>
  72. </el-table-column>
  73. <el-table-column label="全部认领" align="center" show-overflow-tooltip>
  74. <template slot-scope="{row}">
  75. <i v-if="row.notClaimAmount <= 0" style="font-size:20px; color:green" class="el-icon-success"></i>
  76. <i v-else style="font-size:20px; color:RGB(255,106,106)" class="el-icon-warning"></i>
  77. </template>
  78. </el-table-column>
  79. <el-table-column label="操作" align="center" width="200" fixed="right">
  80. <template slot-scope="{row}">
  81. <el-button type="text" @click="claimMajor(row)">大中型</el-button>
  82. <el-button type="text" @click="claimPersonal()">个贷</el-button>
  83. <el-button type="text" @click="claimAssets()">资产</el-button>
  84. </template>
  85. </el-table-column>
  86. </parentTable>
  87. </y-page-list-layout>
  88. <el-dialog :visible.sync="allotAmountDialog" width="45%" center custom-class="doWarehouseClass"
  89. @closed="cleanClaimDTO">
  90. <el-form v-model="claimOrders" ref="claimOrdersForm">
  91. <el-row>
  92. <el-col :xs="24" :sm="12" :lg="21" :span="6">
  93. <div style="font-size:20px;">
  94. <span>此笔实收款剩余:</span><span style="color:red;font-weight:bold">{{ notClaimAmount }}¥</span>
  95. </div>
  96. </el-col>
  97. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  98. <el-button style="float:right" type="success" @click="doClaimMajorToOrder()">确认认领</el-button>
  99. </el-col>
  100. </el-row>
  101. <el-card style="margin-top:20px" v-for="(p, id) in claimOrders" shadow="hover">
  102. <div slot="header" class="clearfix">
  103. <el-row>
  104. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  105. <el-form-item label="订单名称" prop="orderName" label-width="140px" class="postInfo-container-item">
  106. <el-input :value="p.orderName" type="text" class="filter-item" disabled readonly />
  107. </el-form-item>
  108. </el-col>
  109. </el-row>
  110. <el-row>
  111. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  112. <span class="redPoint">*</span>
  113. <el-form-item label="本次认领金额:" prop="thisTimeAmount" label-width="140px" class="postInfo-container-item">
  114. <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="p.thisTimeAmount"
  115. style="width:100%" class="filter-item" />
  116. </el-form-item>
  117. </el-col>
  118. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  119. <el-form-item label="订单号" prop="orderId" label-width="140px" class="postInfo-container-item">
  120. <el-input :value="p.orderId" type="text" class="filter-item" disabled readonly />
  121. </el-form-item>
  122. </el-col>
  123. </el-row>
  124. <el-row>
  125. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  126. <el-form-item label="已认领金额:" prop="realAmount" label-width="140px" class="postInfo-container-item">
  127. <el-input :value="p.realAmount" type="text" class="filter-item" disabled readonly>
  128. <template slot="append">元</template>
  129. </el-input>
  130. </el-form-item>
  131. </el-col>
  132. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  133. <el-form-item label="订单应收金额:" prop="shouldAmount" label-width="140px" class="postInfo-container-item">
  134. <el-input :value="p.shouldAmount" type="text" class="filter-item" disabled readonly>
  135. <template slot="append">元</template>
  136. </el-input>
  137. </el-form-item>
  138. </el-col>
  139. </el-row>
  140. </div>
  141. </el-card>
  142. </el-form>
  143. </el-dialog>
  144. <el-dialog :visible.sync="allotProdDialog" width="45%" center custom-class="doWarehouseClass" @closed="cleanClaimDTO">
  145. <el-form v-model="claimOrders" ref="claimOrdersForm">
  146. <el-row>
  147. <el-col :xs="24" :sm="12" :lg="21" :span="6">
  148. <div style="font-size:20px;">
  149. <span>此笔实收款剩余:</span><span style="color:red;font-weight:bold">{{ notClaimAmount }}¥</span>
  150. </div>
  151. </el-col>
  152. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  153. <el-button style="float:right" type="success" @click="doClaimMajor()">确认认领</el-button>
  154. </el-col>
  155. </el-row>
  156. <el-card style="margin-top:20px" v-for="(p, id) in claimOrders" shadow="hover">
  157. <div slot="header" class="clearfix">
  158. <el-row>
  159. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  160. <el-form-item label="项目名称" prop="name" label-width="140px" class="postInfo-container-item">
  161. <el-input :value="p.name" type="text" class="filter-item" disabled readonly />
  162. </el-form-item>
  163. </el-col>
  164. </el-row>
  165. <el-row>
  166. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  167. <span class="redPoint">*</span>
  168. <el-form-item label="本次认领金额:" prop="thisTimeAmount" label-width="140px" class="postInfo-container-item">
  169. <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="p.thisTimeAmount"
  170. style="width:100%" class="filter-item" />
  171. </el-form-item>
  172. </el-col>
  173. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  174. <el-form-item label="报告号" prop="reportNo" label-width="140px" class="postInfo-container-item">
  175. <el-input :value="p.reportNo" type="text" class="filter-item" disabled readonly />
  176. </el-form-item>
  177. </el-col>
  178. </el-row>
  179. <el-row>
  180. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  181. <el-form-item label="已认领金额:" prop="realAmount" label-width="140px" class="postInfo-container-item">
  182. <el-input :value="p.realAmount" type="text" class="filter-item" disabled readonly>
  183. <template slot="append">元</template>
  184. </el-input>
  185. </el-form-item>
  186. </el-col>
  187. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  188. <el-form-item label="订单应收金额:" prop="shouldAmount" label-width="140px" class="postInfo-container-item">
  189. <el-input :value="p.shouldAmount" type="text" class="filter-item" disabled readonly>
  190. <template slot="append">元</template>
  191. </el-input>
  192. </el-form-item>
  193. </el-col>
  194. </el-row>
  195. </div>
  196. </el-card>
  197. </el-form>
  198. </el-dialog>
  199. <el-dialog :visible.sync="myMajorOrderDialog" width="95%" center custom-class="doWarehouseClass" @closed="getList">
  200. <y-page-list-layout :page-list="myMajorPageData" :page-para="majorListQuery" :get-page-list="getMyMajorOrder">
  201. <template slot="left">
  202. <el-switch style="width: 270px;float: left;margin-top: 5px;" v-model="toProd" active-color="#13ce66"
  203. inactive-color="#ff4949" active-text="认领到产品" inactive-text="认领到订单">
  204. </el-switch>
  205. <el-input v-model="majorListQuery.name" placeholder="订单/项目名称" clearable style="width: 270px;float: left;">
  206. </el-input>
  207. <el-input v-model="majorListQuery.orderId" placeholder="订单号" clearable
  208. style="margin-left: 20px;width: 200px;float: left;">
  209. </el-input>
  210. <el-input v-model="majorListQuery.reportNo" placeholder="产品编号" clearable
  211. style="margin-left: 20px;width: 200px;float: left;">
  212. </el-input>
  213. <el-select v-model="majorListQuery.eDeclareResult" placeholder="评估人员申报" clearable
  214. style="margin-left: 20px;width: 150px;float: left;">
  215. <el-option value="审核通过">审核通过</el-option>
  216. <el-option value="审核中">审核中</el-option>
  217. <el-option value="未申报">未申报</el-option>
  218. <el-option value="审核拒绝">审核拒绝</el-option>
  219. </el-select>
  220. <el-select v-model="majorListQuery.mDeclareResult" placeholder="市场人员申报" clearable
  221. style="margin-left: 20px;width: 150px;float: left;">
  222. <el-option value="审核通过">审核通过</el-option>
  223. <el-option value="审核中">审核中</el-option>
  224. <el-option value="未申报">未申报</el-option>
  225. <el-option value="审核拒绝">审核拒绝</el-option>
  226. </el-select>
  227. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
  228. @click="getMajorOrderOrProd()" round>搜索
  229. </el-button>
  230. <el-button class="filter-item" style="float: left;" round type="success" @click="resetMajorOrderOrProd()">重置
  231. </el-button>
  232. <el-button style="float: left;" round type="danger" @click="openClaimDialog()">选择认领</el-button>
  233. </template>
  234. <parentTable v-show="!toProd" ref="order" :clickRowToPick="false" :data="myMajorPageData.records" slot="table"
  235. style="width: 100%;" :selectionChange="handleSelectionChange">
  236. <el-table-column align="center" type="selection" claimOrders width="100" border="true"
  237. :selectable="checkSelectable">
  238. </el-table-column>
  239. <el-table-column label="订单名称" align="center" show-overflow-tooltip>
  240. <template slot-scope="{row}">
  241. <span>{{ row.orderName }}</span>
  242. </template>
  243. </el-table-column>
  244. <el-table-column label="订单号" align="center" show-overflow-tooltip width='200'>
  245. <template slot-scope="{row}">
  246. <span>{{ row.orderId }}</span>
  247. </template>
  248. </el-table-column>
  249. <el-table-column label="委托人" align="center" show-overflow-tooltip width='100'>
  250. <template slot-scope="{row}">
  251. <span>{{ row.bailor }}</span>
  252. </template>
  253. </el-table-column>
  254. <el-table-column label="产权人" align="center" show-overflow-tooltip width='100'>
  255. <template slot-scope="{row}">
  256. <span>{{ row.owner }}</span>
  257. </template>
  258. </el-table-column>
  259. <el-table-column label="客户名称" align="center" width='120' show-overflow-tooltip>
  260. <template slot-scope="{row}">
  261. <span>{{ row.clienteleName }}</span>
  262. </template>
  263. </el-table-column>
  264. <el-table-column label="业务来源" align="center" width='120' show-overflow-tooltip>
  265. <template slot-scope="{row}">
  266. <span>{{ row.clienteleSubName }}</span>
  267. </template>
  268. </el-table-column>
  269. <el-table-column label="客户联系人" align="center" width='120' show-overflow-tooltip>
  270. <template slot-scope="{row}">
  271. <span>{{ row.clienteleContactName }}</span>
  272. </template>
  273. </el-table-column>
  274. <el-table-column label="应收款(元)" align="center" width='120'>
  275. <template slot-scope="{row}">
  276. <span>{{ row.shouldAmount }}</span>
  277. </template>
  278. </el-table-column>
  279. <el-table-column label="实收款(元)" align="center" width='120'>
  280. <template slot-scope="{row}">
  281. <span>{{ row.realAmount }}</span>
  282. </template>
  283. </el-table-column>
  284. <el-table-column align="center" width='140' label="市场人员申报提成">
  285. <template slot-scope="{row}">
  286. <el-tag :type="row.mdeclareResult ? (row.mdeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  287. row.mdeclareResult ? row.mdeclareResult : '未申报' }}</el-tag>
  288. </template>
  289. </el-table-column>
  290. <el-table-column align="center" width='140' label="评估人员申报提成">
  291. <template slot-scope="{row}">
  292. <el-tag :type="row.edeclareResult ? (row.edeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  293. row.edeclareResult ? row.edeclareResult : '未申报' }}</el-tag>
  294. </template>
  295. </el-table-column>
  296. </parentTable>
  297. <parentTable v-show="toProd" ref="prod" :clickRowToPick="false" :data="myMajorPageData.records" slot="table"
  298. style="width: 100%;" :selectionChange="handleSelectionChange">
  299. <el-table-column align="center" type="selection" claimOrders border="true" :selectable="checkSelectable">
  300. </el-table-column>
  301. <el-table-column label="金融类型" align="center" width='100'>
  302. <template slot-scope="{row}">
  303. <span>{{ row.financial == true ? '金融' : '非金融' }}</span>
  304. </template>
  305. </el-table-column>
  306. <el-table-column label="项目名称" align="center" show-overflow-tooltip>
  307. <template slot-scope="{row}">
  308. <span>{{ row.name }}</span>
  309. </template>
  310. </el-table-column>
  311. <el-table-column label="订单编号" align="center" width='160'>
  312. <template slot-scope="{row}">
  313. <span>{{ row.orderId }}</span>
  314. </template>
  315. </el-table-column>
  316. <el-table-column label="产品类型" align="center" width='80'>
  317. <template slot-scope="{row}">
  318. <span>{{ row.production }}</span>
  319. </template>
  320. </el-table-column>
  321. <el-table-column label="产品编号" align="center" width='200'>
  322. <template slot-scope="{row}">
  323. <span>{{ row.reportNo }}</span>
  324. </template>
  325. </el-table-column>
  326. <el-table-column label="客户名称" align="center" width='100'>
  327. <template slot-scope="{row}">
  328. <span>{{ row.clienteleName }}</span>
  329. </template>
  330. </el-table-column>
  331. <el-table-column label="收费标准" align="center" width='80'>
  332. <template slot-scope="{row}">
  333. <span>{{ row.standardAmount }}</span>
  334. </template>
  335. </el-table-column>
  336. <el-table-column label="订单应收款" align="center" width='100'>
  337. <template slot-scope="{row}">
  338. <span>{{ row.shouldAmount }}</span>
  339. </template>
  340. </el-table-column>
  341. <el-table-column label="实收款" align="center" width='80'>
  342. <template slot-scope="{row}">
  343. <span>{{ row.realAmount }}</span>
  344. </template>
  345. </el-table-column>
  346. <el-table-column label="市场人员" align="center" width='100'>
  347. <template slot-scope="{row}">
  348. <span>{{ row.clientManager }}</span>
  349. </template>
  350. </el-table-column>
  351. <el-table-column align="center" width='140' label="市场人员申报提成">
  352. <template slot-scope="{row}">
  353. <el-tag :type="row.mdeclareResult ? (row.mdeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  354. row.mdeclareResult ? row.mdeclareResult : '未申报' }}</el-tag>
  355. </template>
  356. </el-table-column>
  357. <el-table-column label="评估人员" align="center" width='100'>
  358. <template slot-scope="{row}">
  359. <span>{{ row.principal }}</span>
  360. </template>
  361. </el-table-column>
  362. <el-table-column align="center" width='140' label="评估人员申报提成">
  363. <template slot-scope="{row}">
  364. <el-tag :type="row.edeclareResult ? (row.edeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  365. row.edeclareResult ? row.edeclareResult : '未申报' }}</el-tag>
  366. </template>
  367. </el-table-column>
  368. </parentTable>
  369. </y-page-list-layout>
  370. </el-dialog>
  371. <el-dialog :visible.sync="myPersonalOrderDialog" width="90%" center custom-class="doWarehouseClass" @closed="getList">
  372. <y-page-list-layout :page-list="myPersonalPageData" :page-para="majorListQuery" :get-page-list="getMyPersonalOrder">
  373. <template slot="left">
  374. <el-input v-model="listQuery.name" placeholder="坐落" clearable
  375. style="margin-left: 20px;width: 270px;float: left;">
  376. </el-input>
  377. <el-input v-model="listQuery.orderId" placeholder="订单号" clearable
  378. style="margin-left: 20px;width: 200px;float: left;">
  379. </el-input>
  380. <el-input v-model="listQuery.clientManager" placeholder="客户经理" clearable
  381. style="margin-left: 20px;width: 100px;float: left;">
  382. </el-input>
  383. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList"
  384. round>搜索
  385. </el-button>
  386. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
  387. </el-button>
  388. <el-button class="filter-item" style="float: left;" round type="info" @click="downloadTemp()">下载模板
  389. </el-button>
  390. <excelImport style="float: left; margin-left: 10px; " ref="uploadControl" buttonType="danger" :limit="1"
  391. :flag="'financeClaim/personal/temp/upload/' + financeFundId" :style-type="2" title="模板认领"
  392. @fath="getMyPersonalOrder" />
  393. <!-- <input type="file" ref="fileInput" style="display: none" @change="handleFileChange" /> -->
  394. <el-button style="margin-left: 10px ;float: left;" round type="danger"
  395. @click="openClaimDialog()">选择认领</el-button>
  396. </template>
  397. <parentTable ref="table" :clickRowToPick="false" :data="myPersonalPageData.records" slot="table"
  398. style="width: 100%;" :selectionChange="handleSelectionChange">
  399. <el-table-column align="center" type="selection" claimOrders width="100" border="true">
  400. </el-table-column>
  401. <el-table-column label="坐落" align="center">
  402. <template slot-scope="{row}">
  403. <span>{{ row.orderName }}</span>
  404. </template>
  405. </el-table-column>
  406. <el-table-column label="项目编号" align="center">
  407. <template slot-scope="{row}">
  408. <span>{{ row.orderId }}</span>
  409. </template>
  410. </el-table-column>
  411. <el-table-column label="委托人" align="center" width='100'>
  412. <template slot-scope="{row}">
  413. <span>{{ row.bailorA }} {{ row.bailorB }}</span>
  414. </template>
  415. </el-table-column>
  416. <el-table-column label="客户名称" align="center" width='200'>
  417. <template slot-scope="{row}">
  418. <span>{{ row.clientName }}</span>
  419. </template>
  420. </el-table-column>
  421. <el-table-column label="业务来源" align="center">
  422. <template slot-scope="{row}">
  423. <span>{{ row.clientSubName }}</span>
  424. </template>
  425. </el-table-column>
  426. <el-table-column label="中介" align="center">
  427. <template slot-scope="{row}">
  428. <span>{{ row.agent == null ? '-' : row.agent }}</span>
  429. </template>
  430. </el-table-column>
  431. <el-table-column label="联系人" align="center">
  432. <template slot-scope="{row}">
  433. <span>{{ row.contactName }}</span>
  434. </template>
  435. </el-table-column>
  436. <el-table-column label="已认领(元)" align="center">
  437. <template slot-scope="{row}">
  438. <span style="color:red;font-weight: bold;">{{ row.realAmount ? row.realAmount : 0 }}</span>
  439. </template>
  440. </el-table-column>
  441. <el-table-column align="center" show-overflow-tooltip width='120' label="备注">
  442. <template slot-scope="{row}">
  443. <span>{{ row.remark }}</span>
  444. </template>
  445. </el-table-column>
  446. </parentTable>
  447. </y-page-list-layout>
  448. </el-dialog>
  449. <el-dialog :visible.sync="myAssetsOrderDialog" width="95%" center custom-class="doWarehouseClass" @closed="getList"
  450. @open="getMyAssetsOrder">
  451. <y-page-list-layout :page-list="myAssetsPageData" :page-para="assetsListQuery">
  452. <template slot="left">
  453. <!-- <el-switch style="width: 270px;float: left;margin-top: 5px;" v-model="toProd" active-color="#13ce66"
  454. inactive-color="#ff4949" active-text="认领到产品" inactive-text="认领到订单">
  455. </el-switch> -->
  456. <el-input v-model="assetsListQuery.name" placeholder="订单/项目名称" clearable style="width: 270px;float: left;">
  457. </el-input>
  458. <el-input v-model="assetsListQuery.orderId" placeholder="订单号" clearable
  459. style="margin-left: 20px;width: 200px;float: left;">
  460. </el-input>
  461. <el-input v-model="assetsListQuery.reportNo" placeholder="报告号" clearable
  462. style="margin-left: 20px;width: 200px;float: left;">
  463. </el-input>
  464. <el-select v-model="assetsListQuery.eDeclareResult" placeholder="评估人员申报" clearable
  465. style="margin-left: 20px;width: 150px;float: left;">
  466. <el-option value="审核通过">审核通过</el-option>
  467. <el-option value="审核中">审核中</el-option>
  468. <el-option value="未申报">未申报</el-option>
  469. <el-option value="审核拒绝">审核拒绝</el-option>
  470. </el-select>
  471. <el-select v-model="assetsListQuery.mDeclareResult" placeholder="市场人员申报" clearable
  472. style="margin-left: 20px;width: 150px;float: left;">
  473. <el-option value="审核通过">审核通过</el-option>
  474. <el-option value="审核中">审核中</el-option>
  475. <el-option value="未申报">未申报</el-option>
  476. <el-option value="审核拒绝">审核拒绝</el-option>
  477. </el-select>
  478. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="getMyAssetsOrder()"
  479. round>搜索
  480. </el-button>
  481. <el-button class="filter-item" style="float: left;" round type="success" @click="resetMajorOrderOrProd()">重置
  482. </el-button>
  483. <el-button style="float: left;" round type="danger" @click="openClaimDialog()">选择认领</el-button>
  484. </template>
  485. <parentTable ref="order" :clickRowToPick="false" :data="myAssetsPageData.records" slot="table" style="width: 100%;"
  486. :selectionChange="handleSelectionChange">
  487. <el-table-column align="center" type="selection" claimOrders width="100" border="true"
  488. :selectable="checkSelectable">
  489. </el-table-column>
  490. <el-table-column label="订单名称" align="center" width='400'>
  491. <template slot-scope="{row}">
  492. <span>{{ row.name }}</span>
  493. </template>
  494. </el-table-column>
  495. <el-table-column label="订单号" align="center" width='160'>
  496. <template slot-scope="{row}">
  497. <span>{{ row.orderId }}</span>
  498. </template>
  499. </el-table-column>
  500. <el-table-column label="报告号" align="center" width='400'>
  501. <template slot-scope="{row}">
  502. <span>{{ row.productionNo }}</span>
  503. </template>
  504. </el-table-column>
  505. <el-table-column label="报告类型" align="center">
  506. <template slot-scope="{row}">
  507. <span v-if="row.productionType === 'STATEMENT'">价值意见书</span>
  508. <span v-if="row.productionType == 'LETTER'">意见函</span>
  509. <span v-if="row.productionType == 'CONSULT'">咨询报告</span>
  510. <span v-if="row.productionType == 'REPORT'">评估报告</span>
  511. </template>
  512. </el-table-column>
  513. <el-table-column label="客户名称" align="center">
  514. <template slot-scope="{row}">
  515. <span>{{ row.clienteleName }}</span>
  516. </template>
  517. </el-table-column>
  518. <el-table-column label="订单应收款(元)" align="center" width='120'>
  519. <template slot-scope="{row}">
  520. <span>{{ row.orderShouldAmount }}</span>
  521. </template>
  522. </el-table-column>
  523. <el-table-column label="订单实收款(元)" align="center" width='120'>
  524. <template slot-scope="{row}">
  525. <span>{{ row.orderRealAmount }}</span>
  526. </template>
  527. </el-table-column>
  528. <el-table-column label="产品应收款(元)" align="center" width='120'>
  529. <template slot-scope="{row}">
  530. <span>{{ row.productionShouldAmount }}</span>
  531. </template>
  532. </el-table-column>
  533. <el-table-column label="产品实收款(元)" align="center" width='120'>
  534. <template slot-scope="{row}">
  535. <span>{{ row.productionRealAmount }}</span>
  536. </template>
  537. </el-table-column>
  538. <el-table-column label="标准收费(元)" align="center" width='120'>
  539. <template slot-scope="{row}">
  540. <span>{{ row.standardAmount }}</span>
  541. </template>
  542. </el-table-column>
  543. <el-table-column label="市场人员" align="center" width='120'>
  544. <template slot-scope="{row}">
  545. <span>{{ row.marketUser }}</span>
  546. </template>
  547. </el-table-column>
  548. <el-table-column align="center" width='140' label="市场人员申报提成">
  549. <template slot-scope="{row}">
  550. <el-tag :type="row.mdeclareResult ? (row.mdeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  551. row.mdeclareResult ? row.mdeclareResult : '未申报' }}</el-tag>
  552. </template>
  553. </el-table-column>
  554. <el-table-column label="评估人员" align="center" width='120'>
  555. <template slot-scope="{row}">
  556. <span>{{ row.evaluateUser }}</span>
  557. </template>
  558. </el-table-column>
  559. <el-table-column align="center" width='140' label="评估人员申报提成">
  560. <template slot-scope="{row}">
  561. <el-tag :type="row.edeclareResult ? (row.edeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  562. row.edeclareResult ? row.edeclareResult : '未申报' }}</el-tag>
  563. </template>
  564. </el-table-column>
  565. </parentTable>
  566. </y-page-list-layout>
  567. </el-dialog>
  568. </div>
  569. </template>
  570. <script>
  571. import YPageListLayout from '@/components/YPageListLayout'
  572. import Breadcrumb from '@/components/Breadcrumb'
  573. import excelImport from "@/components/excelImport.vue";
  574. export default {
  575. name: 'financeRealFundClaim',
  576. components: {
  577. Breadcrumb,
  578. YPageListLayout,
  579. excelImport
  580. },
  581. watch: {
  582. toProd: {
  583. handler(value) {
  584. if (value) {
  585. this.getMyMajorProd();
  586. } else {
  587. this.getMyMajorOrder();
  588. }
  589. },
  590. immediate: true
  591. }
  592. },
  593. computed: {
  594. },
  595. data() {
  596. return {
  597. pageData: { records: [] },
  598. listQuery: {
  599. page: 1,
  600. size: 10,
  601. descs: 'id',
  602. keyword: null,
  603. startDate: null,
  604. endDate: null
  605. },
  606. myPersonalOrderDialog: false,
  607. myAssetsOrderDialog: false,
  608. allotAmountDialog: false,
  609. allotProdDialog: false,
  610. realFund: {
  611. id: null,
  612. payer: null,
  613. payerBank: null,
  614. payerAccount: null,
  615. amount: null,
  616. claimAmount: null,
  617. notClaimAmount: null,
  618. payDatetime: null,
  619. remark: null,
  620. created: null,
  621. creator: null
  622. },
  623. toProd: true,
  624. myMajorOrderDialog: false,
  625. majorListQuery: {
  626. page: 1,
  627. size: 10,
  628. descs: 'id',
  629. },
  630. myMajorPageData: { records: [] },
  631. notClaimAmount: 0,
  632. notInfo: "此笔实收款剩余:",
  633. claimOrders: [],
  634. financeFundId: null,
  635. payer: null,
  636. amount: null,
  637. productionLabel: "产品",
  638. orderDate: '',
  639. payDate: '',
  640. myPersonalPageData: { records: [] },
  641. pickerOptions: {
  642. shortcuts: [{
  643. text: '最近一周',
  644. onClick(picker) {
  645. const end = new Date();
  646. const start = new Date();
  647. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  648. picker.$emit('pick', [start, end]);
  649. }
  650. }, {
  651. text: '最近一个月',
  652. onClick(picker) {
  653. const end = new Date();
  654. const start = new Date();
  655. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  656. picker.$emit('pick', [start, end]);
  657. }
  658. }, {
  659. text: '最近三个月',
  660. onClick(picker) {
  661. const end = new Date();
  662. const start = new Date();
  663. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  664. picker.$emit('pick', [start, end]);
  665. }
  666. }]
  667. },
  668. myAssetsPageData: { records: [] },
  669. assetsListQuery: {
  670. page: 1,
  671. size: 10,
  672. descs: 'id',
  673. }
  674. }
  675. },
  676. created() {
  677. this.getList();
  678. },
  679. methods: {
  680. resetSearch() {
  681. this.$router.push({ query: {} });
  682. this.orderDate = '';
  683. this.payDate = '';
  684. this.listQuery = {
  685. current: 1,
  686. size: 10,
  687. descs: 'id',
  688. }
  689. this.getList()
  690. },
  691. getMyMajorOrderResetSearch() {
  692. this.$router.push({ query: {} });
  693. this.majorListQuery = {
  694. current: 1,
  695. size: 10,
  696. descs: 'id',
  697. }
  698. this.getMyMajorOrder()
  699. },
  700. getMyMajorProdResetSearch() {
  701. this.$router.push({ query: {} });
  702. this.majorListQuery = {
  703. current: 1,
  704. size: 10,
  705. descs: 'id',
  706. }
  707. this.getMyMajorProd()
  708. },
  709. searchList() {
  710. // 重置分页
  711. this.listQuery.page = 1
  712. this.listQuery.size = 10
  713. if (this.payDate) {
  714. this.listQuery.startDate = this.payDate[0];
  715. this.listQuery.endDate = this.payDate[1];
  716. }
  717. if (this.orderDate) {
  718. this.listQuery.xStartDate = this.orderDate[0] + ' 00:00:00';
  719. this.listQuery.xEndDate = this.orderDate[1] + ' 23:59:59';
  720. }
  721. this.getList()
  722. },
  723. getList() {
  724. this.$api.financeRealFund.list(Object.assign({}, this.listQuery)).then(res => {
  725. if (res.code === 200) {
  726. this.pageData = res.data;
  727. }
  728. })
  729. },
  730. getMyMajorOrder() {
  731. this.$api.majorProduction.waitingClaim(Object.assign({}, this.majorListQuery)).then(res => {
  732. if (res.code === 200) {
  733. this.myMajorPageData = res.data;
  734. }
  735. })
  736. },
  737. getMyMajorProd() {
  738. this.$api.majorProduction.waitingClaimProd(Object.assign({}, this.majorListQuery)).then(res => {
  739. if (res.code === 200) {
  740. this.myMajorPageData = res.data;
  741. }
  742. })
  743. },
  744. cleanClaimDTO() {
  745. this.notInfo = "此笔实收款剩余:";
  746. },
  747. handleSelectionChange(val) {
  748. let pickeds = [];
  749. for (let i in val) {
  750. let picked = new Object();
  751. picked.id = val[i].id;
  752. picked.orderName = val[i].orderName;
  753. picked.name = val[i].name;
  754. picked.reportNo = val[i].reportNo;
  755. picked.orderId = val[i].orderId;
  756. picked.shouldAmount = val[i].shouldAmount;
  757. picked.orderFundId = val[i].orderFundId;
  758. picked.realAmount = val[i].realAmount;
  759. picked.financeFundId = this.financeFundId;
  760. picked.productionFundId = val[i].productionFundId;
  761. pickeds.push(picked);
  762. }
  763. this.claimOrders = pickeds;
  764. },
  765. openClaimDialog() {
  766. if (this.claimOrders.length === 0) {
  767. this.$notify({
  768. title: '提示',
  769. message: '请先选择订单,然后认领。',
  770. type: 'info',
  771. duration: 2000
  772. });
  773. return;
  774. }
  775. if (this.toProd) {
  776. this.allotProdDialog = true;
  777. } else {
  778. this.allotAmountDialog = true;
  779. }
  780. this.notInfo = this.notInfo + this.notClaimAmount + '¥'
  781. },
  782. getMyPersonalOrder() {
  783. this.$api.personal.waitingClamOrder(this.listQuery).then(res => {
  784. if (res.code === 200) {
  785. this.myPersonalPageData = res.data;
  786. }
  787. })
  788. },
  789. downloadTemp() {
  790. window.location.href = "/api/financeClaim/personal/claim/template"
  791. },
  792. doClaimMajor() {
  793. const orders = this.claimOrders;
  794. for (let i in orders) {
  795. if (!orders[i].thisTimeAmount) {
  796. this.$message.error("报告号:[" + orders[i].reportNo + "],本次认领金额不能为空。");
  797. return;
  798. }
  799. }
  800. this.$api.businessProduction.allotRealAmount(this.claimOrders).then(res => {
  801. if (res.code === 200 && res.data) {
  802. this.$notify({
  803. title: '成功',
  804. message: '实收款认领成功',
  805. type: 'success',
  806. duration: 2000
  807. });
  808. this.getMajorOrderOrProd();
  809. this.allotAmountDialog = false;
  810. this.allotProdDialog = false;
  811. } else {
  812. this.$notify({
  813. title: '失败',
  814. message: '实收款认领失败',
  815. type: 'error',
  816. duration: 2000
  817. });
  818. }
  819. })
  820. },
  821. doClaimMajorToOrder() {
  822. const orders = this.claimOrders;
  823. for (let i in orders) {
  824. if (!orders[i].thisTimeAmount) {
  825. this.$message.error("订单号:[" + orders[i].orderId + "],本次认领金额不能为空。");
  826. return;
  827. }
  828. }
  829. this.$api.businessProduction.allotRealAmountToOrder(this.claimOrders).then(res => {
  830. if (res.code === 200 && res.data) {
  831. this.$notify({
  832. title: '成功',
  833. message: '实收款认领成功',
  834. type: 'success',
  835. duration: 2000
  836. });
  837. this.getMajorOrderOrProd();
  838. this.allotAmountDialog = false;
  839. this.allotProdDialog = false;
  840. } else {
  841. this.$notify({
  842. title: '失败',
  843. message: '实收款认领失败',
  844. type: 'error',
  845. duration: 2000
  846. });
  847. }
  848. })
  849. },
  850. doClaimPersonal() {
  851. this.$api.businessProduction.personalAllotRealAmount(this.claimOrders).then(res => {
  852. if (res.code === 200 && res.data) {
  853. this.$notify({
  854. title: '成功',
  855. message: '实收款认领成功',
  856. type: 'success',
  857. duration: 2000
  858. });
  859. this.getMyPersonalOrder();
  860. this.allotAmountDialog = false;
  861. } else {
  862. this.$notify({
  863. title: '失败',
  864. message: '实收款认领失败',
  865. type: 'error',
  866. duration: 2000
  867. });
  868. }
  869. })
  870. },
  871. checkSelectable(row) {
  872. if (row.mdeclareResult === '审核通过' && row.edeclareResult === '审核通过') {
  873. return true;
  874. } else {
  875. return false;
  876. }
  877. },
  878. claimMajor(row) {
  879. this.myMajorOrderDialog = true;
  880. this.notClaimAmount = row.notClaimAmount;
  881. this.financeFundId = row.id;
  882. },
  883. claimPersonal() {
  884. this.getMyPersonalOrder();
  885. this.myPersonalOrderDialog = true;
  886. },
  887. getMajorOrderOrProd() {
  888. if (this.toProd) {
  889. this.getMyMajorProd();
  890. } else {
  891. this.getMyMajorOrder();
  892. }
  893. },
  894. resetMajorOrderOrProd() {
  895. if (this.toProd) {
  896. this.getMyMajorProdResetSearch();
  897. } else {
  898. this.getMyMajorOrderResetSearch();
  899. }
  900. },
  901. claimAssets() {
  902. this.myAssetsOrderDialog = true;
  903. },
  904. resetAssetsListQuery() {
  905. this.assetsListQuery = {
  906. page: 1,
  907. size: 10,
  908. descs: 'id',
  909. }
  910. },
  911. getMyAssetsOrder() {
  912. this.$api.assetsProduction.getMyAssetsOrder(this.assetsListQuery).then(res => {
  913. if (res.code == 200) {
  914. this.myAssetsPageData = res.data;
  915. }
  916. })
  917. }
  918. },
  919. }
  920. </script>
  921. <style lang="scss" scoped>
  922. /deep/.doWarehouseClass {
  923. border-radius: 10px;
  924. }
  925. .redPoint {
  926. color: red;
  927. position: absolute;
  928. top: 8px;
  929. left: 5px;
  930. }
  931. </style>