fundClaim.vue 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479
  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">
  39. <template slot-scope="{row}">
  40. <span>{{ row.amount }}</span>
  41. </template>
  42. </el-table-column>
  43. <el-table-column label="到账时日" align="center">
  44. <template slot-scope="{row}">
  45. <span>{{ row.payDatetime }}</span>
  46. </template>
  47. </el-table-column>
  48. <el-table-column label="已认领(元)" align="center">
  49. <template slot-scope="{row}">
  50. <span style="color:green">{{ row.claimAmount }}</span>
  51. </template>
  52. </el-table-column>
  53. <el-table-column label="未认领(元)" align="center">
  54. <template slot-scope="{row}">
  55. <span style="color:red">{{ row.notClaimAmount }}</span>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="录入人" align="center">
  59. <template slot-scope="{row}">
  60. <span>{{ row.creator }}</span>
  61. </template>
  62. </el-table-column>
  63. <el-table-column label="录入时间" align="center" width='160'>
  64. <template slot-scope="{row}">
  65. <span>{{ row.created }}</span>
  66. </template>
  67. </el-table-column>
  68. <el-table-column label="全部认领" align="center">
  69. <template slot-scope="{row}">
  70. <i v-if="row.notClaimAmount <= 0" style="font-size:20px; color:green" class="el-icon-success"></i>
  71. <i v-else style="font-size:20px; color:RGB(255,106,106)" class="el-icon-warning"></i>
  72. </template>
  73. </el-table-column>
  74. <el-table-column label="备注" align="center" width='170'>
  75. <template slot-scope="{row}">
  76. <span>{{ row.remark }}</span>
  77. </template>
  78. </el-table-column>
  79. <el-table-column label="认领" align="center" width="200" fixed="right">
  80. <template slot-scope="{row}">
  81. <el-tooltip effect="light" :disabled="!row.recommends.includes('MAJOR_BUSINESS')" class="item" content="推荐" placement="top-start">
  82. <el-button type="text" @click="claimMajor(row)" :style="row.recommends.includes('MAJOR_BUSINESS')?'color:red':''">大中型</el-button>
  83. </el-tooltip>
  84. <el-tooltip effect="light" :disabled="!row.recommends.includes('PERSONAL_BUSINESS')" class="item" content="推荐" placement="top-start">
  85. <el-button type="text" @click="claimPersonal(row)" :style="row.recommends.includes('PERSONAL_BUSINESS')?'color:red':''">个贷</el-button>
  86. </el-tooltip>
  87. <el-tooltip effect="light" :disabled="!row.recommends.includes('ASSET_BUSINESS')" class="item" content="推荐" placement="top-start">
  88. <el-button type="text" @click="claimAssets(row)" :style="row.recommends.includes('ASSET_BUSINESS')?'color:red':''">资产</el-button>
  89. </el-tooltip>
  90. </template>
  91. </el-table-column>
  92. </parentTable>
  93. </y-page-list-layout>
  94. <el-dialog :visible.sync="allotAmountDialog" width="45%" center custom-class="doWarehouseClass"
  95. @closed="cleanClaimDTO">
  96. <el-form v-model="claimOrders" ref="claimOrdersForm">
  97. <el-row>
  98. <el-col :xs="24" :sm="12" :lg="21" :span="6">
  99. <div style="font-size:20px;">
  100. <span>此笔实收款剩余:</span><span style="color:red;font-weight:bold">{{ notClaimAmount }}¥</span>
  101. </div>
  102. </el-col>
  103. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  104. <el-button style="float:right" type="success" @click="doClaimMajorToOrder()">确认认领</el-button>
  105. </el-col>
  106. </el-row>
  107. <el-card style="margin-top:20px" v-for="(p, id) in claimOrders" shadow="hover">
  108. <div slot="header" class="clearfix">
  109. <el-row>
  110. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  111. <el-form-item label="订单名称" prop="orderName" label-width="140px" class="postInfo-container-item">
  112. <el-input :value="p.orderName" type="text" class="filter-item" disabled readonly />
  113. </el-form-item>
  114. </el-col>
  115. </el-row>
  116. <el-row>
  117. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  118. <span class="redPoint">*</span>
  119. <el-form-item label="本次认领金额:" prop="thisTimeAmount" label-width="140px" class="postInfo-container-item">
  120. <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="p.thisTimeAmount"
  121. style="width:100%" class="filter-item" />
  122. </el-form-item>
  123. </el-col>
  124. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  125. <el-form-item label="订单号" prop="orderId" label-width="140px" class="postInfo-container-item">
  126. <el-input :value="p.orderId" type="text" class="filter-item" disabled readonly />
  127. </el-form-item>
  128. </el-col>
  129. </el-row>
  130. <el-row>
  131. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  132. <el-form-item label="已认领金额:" prop="realAmount" label-width="140px" class="postInfo-container-item">
  133. <el-input :value="p.realAmount" type="text" class="filter-item" disabled readonly>
  134. <template slot="append">元</template>
  135. </el-input>
  136. </el-form-item>
  137. </el-col>
  138. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  139. <el-form-item label="订单应收金额:" prop="shouldAmount" label-width="140px" class="postInfo-container-item">
  140. <el-input :value="p.shouldAmount" type="text" class="filter-item" disabled readonly>
  141. <template slot="append">元</template>
  142. </el-input>
  143. </el-form-item>
  144. </el-col>
  145. </el-row>
  146. </div>
  147. </el-card>
  148. </el-form>
  149. </el-dialog>
  150. <el-dialog :visible.sync="allotProdDialog" width="45%" center custom-class="doWarehouseClass" @closed="cleanClaimDTO">
  151. <el-form v-model="claimOrders" ref="claimOrdersForm">
  152. <el-row>
  153. <el-col :xs="24" :sm="12" :lg="21" :span="6">
  154. <div style="font-size:20px;">
  155. <span>此笔实收款剩余:</span><span style="color:red;font-weight:bold">{{ notClaimAmount }}¥</span>
  156. </div>
  157. </el-col>
  158. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  159. <el-button style="float:right" type="success" @click="doClaimMajor()">确认认领</el-button>
  160. </el-col>
  161. </el-row>
  162. <el-card style="margin-top:20px" v-for="(p, id) in claimOrders" shadow="hover">
  163. <div slot="header" class="clearfix">
  164. <el-row>
  165. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  166. <el-form-item label="项目名称" prop="name" label-width="140px" class="postInfo-container-item">
  167. <el-input :value="p.name" type="text" class="filter-item" disabled readonly />
  168. </el-form-item>
  169. </el-col>
  170. </el-row>
  171. <el-row>
  172. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  173. <span class="redPoint">*</span>
  174. <el-form-item label="本次认领金额:" prop="thisTimeAmount" label-width="140px" class="postInfo-container-item">
  175. <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="p.thisTimeAmount"
  176. style="width:100%" class="filter-item" />
  177. </el-form-item>
  178. </el-col>
  179. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  180. <el-form-item label="报告号" prop="reportNo" label-width="140px" class="postInfo-container-item">
  181. <el-input :value="p.reportNo" type="text" class="filter-item" disabled readonly />
  182. </el-form-item>
  183. </el-col>
  184. </el-row>
  185. <el-row>
  186. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  187. <el-form-item label="已认领金额:" prop="realAmount" label-width="140px" class="postInfo-container-item">
  188. <el-input :value="p.realAmount" type="text" class="filter-item" disabled readonly>
  189. <template slot="append">元</template>
  190. </el-input>
  191. </el-form-item>
  192. </el-col>
  193. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  194. <el-form-item label="应收金额:" prop="shouldAmount" label-width="140px" class="postInfo-container-item">
  195. <el-input :value="p.shouldAmount" type="text" class="filter-item" disabled readonly>
  196. <template slot="append">元</template>
  197. </el-input>
  198. </el-form-item>
  199. </el-col>
  200. </el-row>
  201. </div>
  202. </el-card>
  203. </el-form>
  204. </el-dialog>
  205. <el-dialog :visible.sync="myMajorOrderDialog" width="95%" center custom-class="doWarehouseClass" @closed="getList">
  206. <y-page-list-layout :page-list="myMajorPageData" :page-para="majorListQuery" :get-page-list="getMyMajor">
  207. <template slot="left">
  208. <!-- <el-switch style="width: 270px;float: left;margin-top: 5px;" v-model="toProd" active-color="#13ce66"
  209. inactive-color="#ff4949" active-text="认领到产品" inactive-text="认领到订单" disabled>
  210. </el-switch> -->
  211. <el-input v-model="majorListQuery.name" placeholder="订单/项目名称" clearable style="width: 200px;float: left;">
  212. </el-input>
  213. <el-input v-model="majorListQuery.orderId" placeholder="订单号" clearable
  214. style="margin-left: 20px;width: 200px;float: left;">
  215. </el-input>
  216. <el-input v-model="majorListQuery.reportNo" placeholder="产品编号" clearable
  217. style="margin-left: 20px;width: 200px;float: left;">
  218. </el-input>
  219. <el-select v-model="majorListQuery.eDeclareResult" placeholder="评估人员申报" clearable
  220. style="margin-left: 20px;width: 150px;float: left;">
  221. <el-option value="审核通过">审核通过</el-option>
  222. <el-option value="审核中">审核中</el-option>
  223. <el-option value="未申报">未申报</el-option>
  224. <el-option value="审核拒绝">审核拒绝</el-option>
  225. </el-select>
  226. <el-select v-model="majorListQuery.mDeclareResult" placeholder="市场人员申报" clearable
  227. style="margin-left: 20px;width: 150px;float: left;">
  228. <el-option value="审核通过">审核通过</el-option>
  229. <el-option value="审核中">审核中</el-option>
  230. <el-option value="未申报">未申报</el-option>
  231. <el-option value="审核拒绝">审核拒绝</el-option>
  232. </el-select>
  233. <el-select v-model="majorListQuery.hasRealAmount" placeholder="收款状态" clearable
  234. style="margin-left: 20px;width: 150px;float: left;">
  235. <el-option label="未收款" value="false"></el-option>
  236. <el-option label="已收款" value="true"></el-option>
  237. </el-select>
  238. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
  239. @click="getMajorOrderOrProd()" round>搜索
  240. </el-button>
  241. <el-button class="filter-item" style="float: left;" round type="success" @click="resetMajorOrderOrProd()">重置
  242. </el-button>
  243. <el-button style="float: left;" round type="danger" @click="openClaimDialog()">选择认领</el-button>
  244. </template>
  245. <parentTable v-show="!toProd" ref="order" :clickRowToPick="false" :data="myMajorPageData.records" slot="table"
  246. style="width: 100%; height: 50%;" :selectionChange="handleSelectionChange">
  247. <el-table-column align="center" type="selection" claimOrders width="100" border="true"
  248. :selectable="checkSelectable">
  249. </el-table-column>
  250. <el-table-column label="订单名称" align="center" show-overflow-tooltip>
  251. <template slot-scope="{row}">
  252. <span>{{ row.orderName }}</span>
  253. </template>
  254. </el-table-column>
  255. <el-table-column label="订单号" align="center" show-overflow-tooltip width='200'>
  256. <template slot-scope="{row}">
  257. <span>{{ row.orderId }}</span>
  258. </template>
  259. </el-table-column>
  260. <el-table-column label="委托人" align="center" show-overflow-tooltip width='100'>
  261. <template slot-scope="{row}">
  262. <span>{{ row.bailor }}</span>
  263. </template>
  264. </el-table-column>
  265. <el-table-column label="产权人" align="center" show-overflow-tooltip width='100'>
  266. <template slot-scope="{row}">
  267. <span>{{ row.owner }}</span>
  268. </template>
  269. </el-table-column>
  270. <el-table-column label="客户名称" align="center" width='120' show-overflow-tooltip>
  271. <template slot-scope="{row}">
  272. <span>{{ row.clienteleName }}</span>
  273. </template>
  274. </el-table-column>
  275. <el-table-column label="业务来源" align="center" width='120' show-overflow-tooltip>
  276. <template slot-scope="{row}">
  277. <span>{{ row.clienteleSubName }}</span>
  278. </template>
  279. </el-table-column>
  280. <el-table-column label="客户联系人" align="center" width='120' show-overflow-tooltip>
  281. <template slot-scope="{row}">
  282. <span>{{ row.clienteleContactName }}</span>
  283. </template>
  284. </el-table-column>
  285. <el-table-column label="应收款(¥)" align="center" width='120'>
  286. <template slot-scope="{row}">
  287. <span>{{ row.shouldAmount }}</span>
  288. </template>
  289. </el-table-column>
  290. <el-table-column label="实收款(¥)" align="center" width='120'>
  291. <template slot-scope="{row}">
  292. <span style="color:red;font-weight:bold">{{ row.realAmount==null? 0 : row.realAmount }}</span>
  293. </template>
  294. </el-table-column>
  295. <el-table-column align="center" width='140' label="市场人员申报提成">
  296. <template slot-scope="{row}">
  297. <el-tag :type="row.mdeclareResult ? (row.mdeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  298. row.mdeclareResult ? row.mdeclareResult : '未申报' }}</el-tag>
  299. </template>
  300. </el-table-column>
  301. <el-table-column align="center" width='140' label="评估人员申报提成">
  302. <template slot-scope="{row}">
  303. <el-tag :type="row.edeclareResult ? (row.edeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  304. row.edeclareResult ? row.edeclareResult : '未申报' }}</el-tag>
  305. </template>
  306. </el-table-column>
  307. </parentTable>
  308. <el-table v-show="toProd" ref="prod" :data="myMajorPageData.records" slot="table"
  309. :header-row-style="{ color: '#333333' }" style="
  310. border-left: 1px solid #ebeced;
  311. border-right: 1px solid #ebeced;
  312. color: #333333; font-size: 14px
  313. " @selection-change="handleSelectionChange" :rowClassName="tableRowClassName">
  314. <el-table-column align="center" type="selection" claimOrders border="true" :selectable="checkSelectable">
  315. </el-table-column>
  316. <el-table-column align="center" width='100'>
  317. <template slot-scope="{row}">
  318. <span style="color:red">
  319. {{ row.invoiceAmount === notClaimAmount && row.realAmount === null ? '推荐匹配' : '' }}
  320. </span>
  321. </template>
  322. </el-table-column>
  323. <el-table-column label="金融类型" align="center" width='100'>
  324. <template slot-scope="{row}">
  325. <span>{{ row.financial == true ? '金融' : '非金融' }}</span>
  326. </template>
  327. </el-table-column>
  328. <el-table-column label="项目名称" align="center" show-overflow-tooltip>
  329. <template slot-scope="{row}">
  330. <span>{{ row.name }}</span>
  331. </template>
  332. </el-table-column>
  333. <el-table-column label="订单编号" align="center" width='160'>
  334. <template slot-scope="{row}">
  335. <span>{{ row.orderId }}</span>
  336. </template>
  337. </el-table-column>
  338. <el-table-column label="产品类型" align="center" width='80'>
  339. <template slot-scope="{row}">
  340. <span>{{ row.production }}</span>
  341. </template>
  342. </el-table-column>
  343. <el-table-column label="产品编号" align="center" width='200'>
  344. <template slot-scope="{row}">
  345. <span>{{ row.reportNo }}</span>
  346. </template>
  347. </el-table-column>
  348. <el-table-column label="客户名称" align="center" width='100'>
  349. <template slot-scope="{row}">
  350. <span>{{ row.clienteleName }}</span>
  351. </template>
  352. </el-table-column>
  353. <el-table-column label="收费标准(¥)" align="center" width='100'>
  354. <template slot-scope="{row}">
  355. <span>{{ row.standardAmount }}</span>
  356. </template>
  357. </el-table-column>
  358. <el-table-column label="应收款(¥)" align="center" width='100'>
  359. <template slot-scope="{row}">
  360. <span>{{ row.shouldAmount?row.shouldAmount:row.orderShouldAmount }}</span>
  361. </template>
  362. </el-table-column>
  363. <el-table-column label="实收款(¥)" align="center" width='100'>
  364. <template slot-scope="{row}">
  365. <span style="color:red;font-weight:bold">{{ row.realAmount==null? 0 : row.realAmount }}</span>
  366. </template>
  367. </el-table-column>
  368. <el-table-column label="开票金额(¥)" align="center" width='80'>
  369. <template slot-scope="{row}">
  370. <span >{{ row.invoiceAmount?row.invoiceAmount:'--'}}</span>
  371. </template>
  372. </el-table-column>
  373. <el-table-column label="市场人员" align="center" width='100'>
  374. <template slot-scope="{row}">
  375. <span>{{ row.clientManager }}</span>
  376. </template>
  377. </el-table-column>
  378. <el-table-column align="center" width='140' label="市场人员申报提成">
  379. <template slot-scope="{row}">
  380. <el-tag :type="row.mdeclareResult ? (row.mdeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  381. row.mdeclareResult ? row.mdeclareResult : '未申报' }}</el-tag>
  382. </template>
  383. </el-table-column>
  384. <el-table-column label="评估人员" align="center" width='100'>
  385. <template slot-scope="{row}">
  386. <span>{{ row.principal }}</span>
  387. </template>
  388. </el-table-column>
  389. <el-table-column align="center" width='140' label="评估人员申报提成">
  390. <template slot-scope="{row}">
  391. <el-tag :type="row.edeclareResult ? (row.edeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  392. row.edeclareResult ? row.edeclareResult : '未申报' }}</el-tag>
  393. </template>
  394. </el-table-column>
  395. </el-table>
  396. </y-page-list-layout>
  397. </el-dialog>
  398. <el-dialog :visible.sync="myPersonalOrderDialog" width="98%" center custom-class="doWarehouseClass" @closed="getList">
  399. <y-page-list-layout :page-list="myPersonalPageData" :page-para="personalListQuery" :get-page-list="getMyPersonalOrder">
  400. <template slot="left">
  401. <el-input v-model="personalListQuery.keyword" placeholder="坐落" clearable
  402. style="margin-left: 10px;width: 200px;float: left;">
  403. </el-input>
  404. <el-input v-model="personalListQuery.orderId" placeholder="订单号" clearable
  405. style="margin-left: 10px;width: 150px;float: left;">
  406. </el-input>
  407. <el-input v-model="personalListQuery.bailor" placeholder="委托人" clearable
  408. style="margin-left: 10px;width: 150px;float: left;">
  409. </el-input>
  410. <el-input v-model="personalListQuery.clientName" placeholder="客户名称" clearable
  411. style="margin-left: 10px;width: 150px;float: left;">
  412. </el-input>
  413. <el-input v-model="personalListQuery.clientSubName" placeholder="业务来源" clearable
  414. style="margin-left: 10px;width: 150px;float: left;">
  415. </el-input>
  416. <el-input v-model="personalListQuery.shouldAmount" placeholder="应收款" clearable
  417. style="margin-left: 10px;width: 150px;float: left;">
  418. </el-input>
  419. <el-input v-model="personalListQuery.invoiceAmountCondition" placeholder="开票金额" clearable
  420. style="margin-left: 10px;width: 150px;float: left;">
  421. </el-input>
  422. <el-select v-model="personalListQuery.hasRealAmount" placeholder="收款状态" clearable
  423. style="margin-left: 20px;width: 150px;float: left;">
  424. <el-option label="未收款" value="false"></el-option>
  425. <el-option label="已收款" value="true"></el-option>
  426. </el-select>
  427. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="getMyPersonalOrder"
  428. round>搜索
  429. </el-button>
  430. <el-button class="filter-item" style="float: left;" round type="success" @click="getMyPersonalOrderResetSearch()">重置
  431. </el-button>
  432. <el-button class="filter-item" style="float: left;" round type="info" @click="downloadTemp()">下载模板
  433. </el-button>
  434. <ExcelImport style="float: left; margin-left: 10px; " ref="uploadControl" buttonType="danger" :limit="1"
  435. :flag="'financeClaim/personal/temp/upload/' + financeFundId" :style-type="2" title="模版认领"
  436. @fath="getMyPersonalOrder" />
  437. <el-button style="margin-left: 10px ;float: left;" round type="danger"
  438. @click="openPersonalOrderDialog()">选择认领</el-button>
  439. </template>
  440. <el-table ref="table" :data="myPersonalPageData.records" slot="table"
  441. :header-row-style="{ color: '#333333' }" style="
  442. border-left: 1px solid #ebeced;
  443. border-right: 1px solid #ebeced; font-size: 14px;
  444. color: #333333;" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName">
  445. <el-table-column align="center" type="selection" claimOrders width="100" border="true">
  446. </el-table-column>
  447. <el-table-column align="center" width='100'>
  448. <template slot-scope="{row}">
  449. <span style="color:red">
  450. {{ row.invoiceAmount === notClaimAmount && row.realAmount === null ? '推荐匹配' : '' }}
  451. </span>
  452. </template>
  453. </el-table-column>
  454. <el-table-column label="坐落" align="center" show-overflow-tooltip>
  455. <template slot-scope="{row}">
  456. <span>{{ row.orderName }}</span>
  457. </template>
  458. </el-table-column>
  459. <el-table-column label="项目编号" align="center">
  460. <template slot-scope="{row}">
  461. <span>{{ row.orderId }}</span>
  462. </template>
  463. </el-table-column>
  464. <el-table-column label="委托人" align="center" width='100' show-overflow-tooltip>
  465. <template slot-scope="{row}">
  466. <span>{{ row.bailorA }} {{ row.bailorB }}</span>
  467. </template>
  468. </el-table-column>
  469. <el-table-column label="客户名称" align="center" width='200'>
  470. <template slot-scope="{row}">
  471. <span>{{ row.clientName }}</span>
  472. </template>
  473. </el-table-column>
  474. <el-table-column label="业务来源" align="center">
  475. <template slot-scope="{row}">
  476. <span>{{ row.clientSubName }}</span>
  477. </template>
  478. </el-table-column>
  479. <el-table-column label="中介" align="center" show-overflow-tooltip>
  480. <template slot-scope="{row}">
  481. <span>{{ row.agent == null ? '-' : row.agent }}</span>
  482. </template>
  483. </el-table-column>
  484. <el-table-column label="联系人" align="center">
  485. <template slot-scope="{row}">
  486. <span>{{ row.contactName }}</span>
  487. </template>
  488. </el-table-column>
  489. <el-table-column label="应收款(¥)" align="center" width='100'>
  490. <template slot-scope="{row}">
  491. <span>{{ row.shouldAmount?row.shouldAmount:'--' }}</span>
  492. </template>
  493. </el-table-column>
  494. <el-table-column label="实收款(元)" align="center">
  495. <template slot-scope="{row}">
  496. <span style="color:red;font-weight: bold;">{{ row.realAmount ? row.realAmount : 0 }}</span>
  497. </template>
  498. </el-table-column>
  499. <el-table-column label="开票金额(¥)" align="center" width='100'>
  500. <template slot-scope="{row}">
  501. <span>{{ row.invoiceAmount?row.invoiceAmount:'--' }}</span>
  502. </template>
  503. </el-table-column>
  504. <el-table-column align="center" show-overflow-tooltip width='120' label="备注">
  505. <template slot-scope="{row}">
  506. <span>{{ row.remark }}</span>
  507. </template>
  508. </el-table-column>
  509. </el-table>
  510. </y-page-list-layout>
  511. </el-dialog>
  512. <el-dialog :visible.sync="myAssetsOrderDialog" width="95%" center custom-class="doWarehouseClass" @closed="getList">
  513. <y-page-list-layout :page-list="myAssetsPageData" :page-para="assetsListQuery"
  514. :get-page-list="getMyAssetsOrderOrProd">
  515. <template slot="left">
  516. <!-- <el-switch style="width: 270px;float: left;margin-top: 5px;" v-model="toAssetsProd" active-color="#13ce66"
  517. inactive-color="#ff4949" active-text="认领到产品" inactive-text="认领到订单" disabled>
  518. </el-switch> -->
  519. <el-input v-model="assetsListQuery.keyWord" placeholder="订单/项目名称" clearable style="width: 270px;float: left;">
  520. </el-input>
  521. <el-input v-model="assetsListQuery.orderId" placeholder="订单号" clearable
  522. style="margin-left: 20px;width: 200px;float: left;">
  523. </el-input>
  524. <el-input v-show="toAssetsProd" v-model="assetsListQuery.reportNo" placeholder="报告号" clearable
  525. style="margin-left: 20px;width: 200px;float: left;">
  526. </el-input>
  527. <el-select v-model="assetsListQuery.eDeclareResult" placeholder="评估人员申报" clearable
  528. style="margin-left: 20px;width: 150px;float: left;">
  529. <el-option value="审核通过">审核通过</el-option>
  530. <el-option value="审核中">审核中</el-option>
  531. <el-option value="未申报">未申报</el-option>
  532. <el-option value="审核拒绝">审核拒绝</el-option>
  533. </el-select>
  534. <el-select v-model="assetsListQuery.mDeclareResult" placeholder="市场人员申报" clearable
  535. style="margin-left: 20px;width: 150px;float: left;">
  536. <el-option value="审核通过">审核通过</el-option>
  537. <el-option value="审核中">审核中</el-option>
  538. <el-option value="未申报">未申报</el-option>
  539. <el-option value="审核拒绝">审核拒绝</el-option>
  540. </el-select>
  541. <el-select v-model="assetsListQuery.hasRealAmount" placeholder="收款状态" clearable
  542. style="margin-left: 20px;width: 150px;float: left;">
  543. <el-option label="未收款" value="false"></el-option>
  544. <el-option label="已收款" value="true"></el-option>
  545. </el-select>
  546. <el-button v-show="toAssetsProd" class="filter-item" style="margin-left: 10px;float: left;" type="primary"
  547. @click="getMyAssetsOrderProd()" round>搜索
  548. </el-button>
  549. <el-button v-show="!toAssetsProd" class="filter-item" style="margin-left: 10px;float: left;" type="primary"
  550. @click="getMyAssetsOrder()" round>搜索
  551. </el-button>
  552. <el-button v-show="toAssetsProd" class="filter-item" style="float: left;" round type="success"
  553. @click="getMyAssetsProdResetSearch()">重置
  554. </el-button>
  555. <el-button v-show="!toAssetsProd" class="filter-item" style="float: left;" round type="success"
  556. @click="getMyAssetsOrderResetSearch()">重置
  557. </el-button>
  558. <el-button style="float: left;" round type="danger" @click="openAssetsClaimDialog()">选择认领</el-button>
  559. </template>
  560. <parentTable v-show="toAssetsProd" ref="prod" :clickRowToPick="false" :data="myAssetsPageData.records"
  561. slot="table" style="width: 100%;" :selectionChange="assetsHandleSelectionChange" :isBoard=500>
  562. <el-table-column align="center" type="selection" claimOrders width="100" border="true"
  563. :selectable="checkSelectable">
  564. </el-table-column>
  565. <el-table-column align="center" width='100'>
  566. <template slot-scope="{row}">
  567. <span style="color:red">
  568. {{ row.invoiceAmount === notClaimAmount && row.orderRealAmount === null ? '推荐匹配' : '' }}
  569. </span>
  570. </template>
  571. </el-table-column>
  572. <el-table-column label="订单名称" align="center" show-overflow-tooltip>
  573. <template slot-scope="{row}">
  574. <span>{{ row.name }}</span>
  575. </template>
  576. </el-table-column>
  577. <el-table-column label="订单号" align="center" width='160'>
  578. <template slot-scope="{row}">
  579. <span>{{ row.orderId }}</span>
  580. </template>
  581. </el-table-column>
  582. <el-table-column label="报告号" align="center" width='220'>
  583. <template slot-scope="{row}">
  584. <span>{{ row.productionNo }}</span>
  585. </template>
  586. </el-table-column>
  587. <el-table-column label="报告类型" align="center" width="80">
  588. <template slot-scope="{row}">
  589. <span v-if="row.productionType === 'STATEMENT'">价值意见书</span>
  590. <span v-if="row.productionType == 'LETTER'">意见函</span>
  591. <span v-if="row.productionType == 'CONSULT'">咨询报告</span>
  592. <span v-if="row.productionType == 'REPORT'">评估报告</span>
  593. </template>
  594. </el-table-column>
  595. <el-table-column label="客户名称" align="center" width='100'>
  596. <template slot-scope="{row}">
  597. <span>{{ row.clienteleName }}</span>
  598. </template>
  599. </el-table-column>
  600. <!-- <el-table-column label="订单应收款(元)" align="center" width='120'>
  601. <template slot-scope="{row}">
  602. <span>{{ row.orderShouldAmount }}</span>
  603. </template>
  604. </el-table-column>
  605. <el-table-column label="订单实收款(元)" align="center" width='120'>
  606. <template slot-scope="{row}">
  607. <span>{{ row.orderRealAmount }}</span>
  608. </template>
  609. </el-table-column> -->
  610. <el-table-column label="应收款(元)" align="center" width='100'>
  611. <template slot-scope="{row}">
  612. <span>{{ row.productionShouldAmount }}</span>
  613. </template>
  614. </el-table-column>
  615. <el-table-column label="实收款(元)" align="center" width='100'>
  616. <template slot-scope="{row}">
  617. <span style="color:red;font-weight: bold;">{{ row.productionRealAmount }}</span>
  618. </template>
  619. </el-table-column>
  620. <el-table-column label="标准收费(元)" align="center" width='120'>
  621. <template slot-scope="{row}">
  622. <span>{{ row.standardAmount }}</span>
  623. </template>
  624. </el-table-column>
  625. <el-table-column label="开票金额(元)" align="center" width='120'>
  626. <template slot-scope="{row}">
  627. <span>{{ row.invoiceAmount?row.invoiceAmount:'--' }}</span>
  628. </template>
  629. </el-table-column>
  630. <el-table-column label="市场人员" align="center" width='100'>
  631. <template slot-scope="{row}">
  632. <span>{{ row.marketUser }}</span>
  633. </template>
  634. </el-table-column>
  635. <el-table-column align="center" width='140' label="市场人员申报提成">
  636. <template slot-scope="{row}">
  637. <el-tag :type="row.mdeclareResult ? (row.mdeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  638. row.mdeclareResult ? row.mdeclareResult : '未申报' }}</el-tag>
  639. </template>
  640. </el-table-column>
  641. <el-table-column label="评估人员" align="center" width='100'>
  642. <template slot-scope="{row}">
  643. <span>{{ row.evaluateUser }}</span>
  644. </template>
  645. </el-table-column>
  646. <el-table-column align="center" width='140' label="评估人员申报提成">
  647. <template slot-scope="{row}">
  648. <el-tag :type="row.edeclareResult ? (row.edeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  649. row.edeclareResult ? row.edeclareResult : '未申报' }}</el-tag>
  650. </template>
  651. </el-table-column>
  652. </parentTable>
  653. <parentTable v-show="!toAssetsProd" ref="order" :clickRowToPick="false" :data="myAssetsPageData.records"
  654. slot="table" style="width: 100%;" :selectionChange="assetsHandleSelectionChange">
  655. <el-table-column align="center" type="selection" claimOrders width="100" border="true"
  656. :selectable="checkSelectable">
  657. </el-table-column>
  658. <el-table-column label="订单名称" align="center" show-overflow-tooltip>
  659. <template slot-scope="{row}">
  660. <span>{{ row.name }}</span>
  661. </template>
  662. </el-table-column>
  663. <el-table-column label="订单号" align="center" width='200'>
  664. <template slot-scope="{row}">
  665. <span>{{ row.orderId }}</span>
  666. </template>
  667. </el-table-column>
  668. <el-table-column label="客户名称" align="center" width='200'>
  669. <template slot-scope="{row}">
  670. <span>{{ row.clienteleName }}</span>
  671. </template>
  672. </el-table-column>
  673. <el-table-column label="订单应收款(元)" align="center" width='200'>
  674. <template slot-scope="{row}">
  675. <span>{{ row.orderShouldAmount }}</span>
  676. </template>
  677. </el-table-column>
  678. <el-table-column label="订单实收款(元)" align="center" width='200'>
  679. <template slot-scope="{row}">
  680. <span>{{ row.orderRealAmount }}</span>
  681. </template>
  682. </el-table-column>
  683. <el-table-column label="市场人员" align="center" width='200'>
  684. <template slot-scope="{row}">
  685. <span>{{ row.marketUser }}</span>
  686. </template>
  687. </el-table-column>
  688. <el-table-column align="center" width='215' label="市场人员申报提成">
  689. <template slot-scope="{row}">
  690. <el-tag :type="row.mdeclareResult ? (row.mdeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  691. row.mdeclareResult ? row.mdeclareResult : '未申报' }}</el-tag>
  692. </template>
  693. </el-table-column>
  694. <el-table-column label="评估人员" align="center" width='200'>
  695. <template slot-scope="{row}">
  696. <span>{{ row.evaluateUser }}</span>
  697. </template>
  698. </el-table-column>
  699. <el-table-column align="center" width='215' label="评估人员申报提成">
  700. <template slot-scope="{row}">
  701. <el-tag :type="row.edeclareResult ? (row.edeclareResult === '审核通过' ? 'success' : 'info') : 'danger'">{{
  702. row.edeclareResult ? row.edeclareResult : '未申报' }}</el-tag>
  703. </template>
  704. </el-table-column>
  705. </parentTable>
  706. </y-page-list-layout>
  707. </el-dialog>
  708. <el-dialog :visible.sync="allotAssetsAmountDialog" width="45%" center custom-class="doWarehouseClass"
  709. @closed="cleanClaimDTO">
  710. <el-form v-model="claimOrders" ref="claimOrdersForm">
  711. <el-row>
  712. <el-col :xs="24" :sm="12" :lg="21" :span="6">
  713. <div style="font-size:20px;">
  714. <span>此笔实收款剩余:</span><span style="color:red;font-weight:bold">{{ notClaimAmount }}¥</span>
  715. </div>
  716. </el-col>
  717. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  718. <el-button style="float:right" type="success" @click="assetsDoAllotRealAmountToOrder()">确认认领</el-button>
  719. </el-col>
  720. </el-row>
  721. <el-card style="margin-top:20px" v-for="(p, id) in claimOrders" shadow="hover">
  722. <div slot="header" class="clearfix">
  723. <el-row>
  724. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  725. <el-form-item label="订单名称" prop="orderName" label-width="140px" class="postInfo-container-item">
  726. <el-input :value="p.name" type="text" class="filter-item" disabled readonly />
  727. </el-form-item>
  728. </el-col>
  729. </el-row>
  730. <el-row>
  731. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  732. <span class="redPoint">*</span>
  733. <el-form-item label="本次认领金额:" prop="thisTimeAmount" label-width="140px" class="postInfo-container-item">
  734. <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="p.thisTimeAmount"
  735. style="width:100%" class="filter-item" />
  736. </el-form-item>
  737. </el-col>
  738. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  739. <el-form-item label="订单号" prop="orderId" label-width="140px" class="postInfo-container-item">
  740. <el-input :value="p.orderId" type="text" class="filter-item" disabled readonly />
  741. </el-form-item>
  742. </el-col>
  743. </el-row>
  744. <el-row>
  745. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  746. <el-form-item label="已认领金额:" prop="realAmount" label-width="140px" class="postInfo-container-item">
  747. <el-input :value="p.realAmount" type="text" class="filter-item" disabled readonly>
  748. <template slot="append">元</template>
  749. </el-input>
  750. </el-form-item>
  751. </el-col>
  752. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  753. <el-form-item label="应收金额:" prop="shouldAmount" label-width="140px" class="postInfo-container-item">
  754. <el-input :value="p.shouldAmount" type="text" class="filter-item" disabled readonly>
  755. <template slot="append">元</template>
  756. </el-input>
  757. </el-form-item>
  758. </el-col>
  759. </el-row>
  760. </div>
  761. </el-card>
  762. </el-form>
  763. </el-dialog>
  764. <el-dialog :visible.sync="allotAssetsProdDialog" width="45%" center custom-class="doWarehouseClass"
  765. @closed="cleanClaimDTO">
  766. <el-form v-model="claimOrders" ref="claimOrdersForm">
  767. <el-row>
  768. <el-col :xs="24" :sm="12" :lg="21" :span="6">
  769. <div style="font-size:20px;">
  770. <span>此笔实收款剩余:</span><span style="color:red;font-weight:bold">{{ notClaimAmount }}¥</span>
  771. </div>
  772. </el-col>
  773. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  774. <el-button style="float:right" type="success" @click="assetsDoAllotRealAmountToProd()">确认认领</el-button>
  775. </el-col>
  776. </el-row>
  777. <el-card style="margin-top:20px" v-for="(p, id) in claimOrders" shadow="hover">
  778. <div slot="header" class="clearfix">
  779. <el-row>
  780. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  781. <el-form-item label="订单名称:" prop="name" label-width="140px" class="postInfo-container-item">
  782. <el-input :value="p.name" type="text" class="filter-item" disabled readonly />
  783. </el-form-item>
  784. </el-col>
  785. </el-row>
  786. <el-row>
  787. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  788. <span class="redPoint">*</span>
  789. <el-form-item label="本次认领金额:" prop="thisTimeAmount" label-width="140px" class="postInfo-container-item">
  790. <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="p.thisTimeAmount"
  791. style="width:100%" class="filter-item" />
  792. </el-form-item>
  793. </el-col>
  794. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  795. <el-form-item label="报告号:" prop="reportNo" label-width="140px" class="postInfo-container-item">
  796. <el-input :value="p.reportNo" type="text" class="filter-item" disabled readonly />
  797. </el-form-item>
  798. </el-col>
  799. </el-row>
  800. <el-row>
  801. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  802. <el-form-item label="已认领金额:" prop="realAmount" label-width="140px" class="postInfo-container-item">
  803. <el-input :value="p.realAmount" type="text" class="filter-item" disabled readonly>
  804. <template slot="append">元</template>
  805. </el-input>
  806. </el-form-item>
  807. </el-col>
  808. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  809. <el-form-item label="产品应收金额:" prop="shouldAmount" label-width="140px" class="postInfo-container-item">
  810. <el-input :value="p.shouldAmount" type="text" class="filter-item" disabled readonly>
  811. <template slot="append">元</template>
  812. </el-input>
  813. </el-form-item>
  814. </el-col>
  815. </el-row>
  816. </div>
  817. </el-card>
  818. </el-form>
  819. </el-dialog>
  820. <el-dialog :visible.sync="allotPersonalAmountDialog" width="45%" center custom-class="doWarehouseClass"
  821. @closed="cleanClaimDTO">
  822. <el-form v-model="claimOrders" ref="claimOrdersForm">
  823. <el-row>
  824. <el-col :xs="24" :sm="12" :lg="21" :span="6">
  825. <div style="font-size:20px;">
  826. <span>此笔实收款剩余:</span><span style="color:red;font-weight:bold">{{ notClaimAmount }}¥</span>
  827. </div>
  828. </el-col>
  829. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  830. <el-button style="float:right" type="success" @click="doClaimPersonal()">确认认领</el-button>
  831. </el-col>
  832. </el-row>
  833. <el-card style="margin-top:20px" v-for="(p, id) in claimOrders" shadow="hover">
  834. <div slot="header" class="clearfix">
  835. <el-row>
  836. <el-col :xs="24" :sm="12" :lg="24" :span="6">
  837. <el-form-item label="订单名称" prop="orderName" label-width="140px" class="postInfo-container-item">
  838. <el-input :value="p.orderName" type="text" class="filter-item" disabled readonly />
  839. </el-form-item>
  840. </el-col>
  841. </el-row>
  842. <el-row>
  843. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  844. <span class="redPoint">*</span>
  845. <el-form-item label="本次认领金额:" prop="thisTimeAmount" label-width="140px" class="postInfo-container-item">
  846. <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="p.thisTimeAmount"
  847. style="width:100%" class="filter-item" />
  848. </el-form-item>
  849. </el-col>
  850. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  851. <el-form-item label="订单号" prop="orderId" label-width="140px" class="postInfo-container-item">
  852. <el-input :value="p.orderId" type="text" class="filter-item" disabled readonly />
  853. </el-form-item>
  854. </el-col>
  855. </el-row>
  856. <el-row>
  857. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  858. <el-form-item label="已认领金额:" prop="realAmount" label-width="140px" class="postInfo-container-item">
  859. <el-input :value="p.realAmount" type="text" class="filter-item" disabled readonly>
  860. <template slot="append">元</template>
  861. </el-input>
  862. </el-form-item>
  863. </el-col>
  864. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  865. <el-form-item label="应收金额:" prop="shouldAmount" label-width="140px" class="postInfo-container-item">
  866. <el-input :value="p.shouldAmount" type="text" class="filter-item" disabled readonly>
  867. <template slot="append">元</template>
  868. </el-input>
  869. </el-form-item>
  870. </el-col>
  871. </el-row>
  872. </div>
  873. </el-card>
  874. </el-form>
  875. </el-dialog>
  876. </div>
  877. </template>
  878. <script>
  879. import YPageListLayout from '@/components/YPageListLayout'
  880. import Breadcrumb from '@/components/Breadcrumb'
  881. import ExcelImport from "@/components/excelImport.vue";
  882. export default {
  883. name: 'financeRealFundClaim',
  884. components: {
  885. Breadcrumb,
  886. YPageListLayout,
  887. ExcelImport
  888. },
  889. watch: {
  890. toProd: {
  891. handler(value) {
  892. if (value) {
  893. this.getMyMajorProd();
  894. } else {
  895. this.getMyMajorOrder();
  896. }
  897. },
  898. immediate: true
  899. },
  900. toAssetsProd: {
  901. handler(value) {
  902. if (value) {
  903. this.getMyAssetsOrderProd();
  904. } else {
  905. this.getMyAssetsOrder();
  906. }
  907. },
  908. immediate: true
  909. }
  910. },
  911. computed: {
  912. },
  913. data() {
  914. return {
  915. pageData: { records: [] },
  916. listQuery: {
  917. page: 1,
  918. size: 10,
  919. descs: 'id',
  920. keyword: null,
  921. startDate: null,
  922. endDate: null,
  923. notFinished:true
  924. },
  925. myPersonalOrderDialog: false,
  926. myAssetsOrderDialog: false,
  927. allotAmountDialog: false,
  928. allotProdDialog: false,
  929. allotAssetsAmountDialog: false,
  930. allotAssetsProdDialog: false,
  931. realFund: {
  932. id: null,
  933. payer: null,
  934. payerBank: null,
  935. payerAccount: null,
  936. amount: null,
  937. claimAmount: null,
  938. notClaimAmount: null,
  939. payDatetime: null,
  940. remark: null,
  941. created: null,
  942. creator: null
  943. },
  944. toProd: true,
  945. toAssetsProd: true,
  946. myMajorOrderDialog: false,
  947. majorListQuery: {
  948. page: 1,
  949. size: 10,
  950. descs: 'id',
  951. hasRealAmount: "false"
  952. },
  953. myMajorPageData: { records: [] },
  954. notClaimAmount: 0,
  955. notInfo: "此笔实收款剩余:",
  956. claimOrders: [],
  957. financeFundId: null,
  958. payer: null,
  959. amount: null,
  960. productionLabel: "产品",
  961. orderDate: '',
  962. payDate: '',
  963. myPersonalPageData: { records: [] },
  964. pickerOptions: {
  965. shortcuts: [{
  966. text: '最近一周',
  967. onClick(picker) {
  968. const end = new Date();
  969. const start = new Date();
  970. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  971. picker.$emit('pick', [start, end]);
  972. }
  973. }, {
  974. text: '最近一个月',
  975. onClick(picker) {
  976. const end = new Date();
  977. const start = new Date();
  978. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  979. picker.$emit('pick', [start, end]);
  980. }
  981. }, {
  982. text: '最近三个月',
  983. onClick(picker) {
  984. const end = new Date();
  985. const start = new Date();
  986. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  987. picker.$emit('pick', [start, end]);
  988. }
  989. }]
  990. },
  991. myAssetsPageData: { records: [] },
  992. assetsListQuery: {
  993. page: 1,
  994. size: 10,
  995. descs: 'id',
  996. hasRealAmount: "false"
  997. },
  998. personalListQuery: {
  999. page: 1,
  1000. size: 10,
  1001. descs: 'id',
  1002. hasRealAmount: "false"
  1003. },
  1004. allotPersonalAmountDialog:false,
  1005. }
  1006. },
  1007. created() {
  1008. this.getList();
  1009. },
  1010. methods: {
  1011. resetSearch() {
  1012. this.$router.push({ query: {} });
  1013. this.orderDate = '';
  1014. this.payDate = '';
  1015. this.listQuery = {
  1016. current: 1,
  1017. size: 10,
  1018. descs: 'id',
  1019. }
  1020. this.getList()
  1021. },
  1022. getMyMajor(){
  1023. if (this.toProd){
  1024. this.getMyMajorProd();
  1025. }else{
  1026. this.getMyMajorOrder();
  1027. }
  1028. },
  1029. getMyMajorOrderResetSearch() {
  1030. this.$router.push({ query: {} });
  1031. this.majorListQuery = {
  1032. current: 1,
  1033. size: 10,
  1034. descs: 'id',
  1035. hasRealAmount: "false"
  1036. }
  1037. this.getMyMajorOrder()
  1038. },
  1039. getMyMajorProdResetSearch() {
  1040. this.$router.push({ query: {} });
  1041. this.majorListQuery = {
  1042. current: 1,
  1043. size: 10,
  1044. descs: 'id',
  1045. hasRealAmount: "false"
  1046. }
  1047. this.getMyMajorProd()
  1048. },
  1049. searchList() {
  1050. // 重置分页
  1051. this.listQuery.page = 1
  1052. this.listQuery.size = 10
  1053. if (this.payDate) {
  1054. this.listQuery.startDate = this.payDate[0];
  1055. this.listQuery.endDate = this.payDate[1];
  1056. }
  1057. if (this.orderDate) {
  1058. this.listQuery.xStartDate = this.orderDate[0] + ' 00:00:00';
  1059. this.listQuery.xEndDate = this.orderDate[1] + ' 23:59:59';
  1060. }
  1061. this.getList()
  1062. },
  1063. getList() {
  1064. this.listQuery.notFinished = true;
  1065. this.claimOrders = [];
  1066. this.$api.financeRealFund.claimList(Object.assign({}, this.listQuery)).then(res => {
  1067. if (res.code === 200) {
  1068. this.pageData = res.data;
  1069. }
  1070. })
  1071. },
  1072. getMyMajorOrder() {
  1073. this.$api.majorProduction.waitingClaim(Object.assign({}, this.majorListQuery)).then(res => {
  1074. if (res.code === 200) {
  1075. this.myMajorPageData = res.data;
  1076. }
  1077. })
  1078. },
  1079. getMyMajorProd() {
  1080. this.$api.majorProduction.waitingClaimProd(Object.assign({'invoiceAmount':this.notClaimAmount}, this.majorListQuery)).then(res => {
  1081. if (res.code === 200) {
  1082. this.myMajorPageData = res.data;
  1083. }
  1084. })
  1085. },
  1086. cleanClaimDTO() {
  1087. this.notInfo = "此笔实收款剩余:";
  1088. },
  1089. handleSelectionChange(val) {
  1090. let pickeds = [];
  1091. for (let i in val) {
  1092. let picked = new Object();
  1093. picked.id = val[i].id;
  1094. picked.orderName = val[i].orderName;
  1095. picked.name = val[i].name;
  1096. picked.reportNo = val[i].reportNo;
  1097. picked.orderId = val[i].orderId;
  1098. picked.shouldAmount = val[i].shouldAmount;
  1099. picked.orderFundId = val[i].orderFundId;
  1100. picked.realAmount = val[i].realAmount;
  1101. picked.financeFundId = this.financeFundId;
  1102. picked.productionFundId = val[i].productionFundId;
  1103. pickeds.push(picked);
  1104. }
  1105. this.claimOrders = pickeds;
  1106. },
  1107. assetsHandleSelectionChange(val) {
  1108. let pickeds = [];
  1109. for (let i in val) {
  1110. let picked = new Object();
  1111. picked.id = val[i].id;
  1112. picked.orderName = val[i].name;
  1113. picked.name = val[i].name;
  1114. picked.reportNo = val[i].productionNo;
  1115. picked.orderId = val[i].orderId;
  1116. if (this.toAssetsProd) {
  1117. picked.shouldAmount = val[i].productionShouldAmount;
  1118. picked.realAmount = val[i].productionRealAmount;
  1119. } else {
  1120. picked.shouldAmount = val[i].orderShouldAmount;
  1121. picked.realAmount = val[i].orderRealAmount;
  1122. }
  1123. picked.orderFundId = val[i].orderFundId;
  1124. picked.financeFundId = this.financeFundId;
  1125. picked.productionFundId = val[i].productionFundId;
  1126. pickeds.push(picked);
  1127. }
  1128. this.claimOrders = pickeds;
  1129. },
  1130. openClaimDialog() {
  1131. if (this.claimOrders.length === 0) {
  1132. this.$notify({
  1133. title: '提示',
  1134. message: '请先选择订单,然后认领。',
  1135. type: 'info',
  1136. duration: 2000
  1137. });
  1138. return;
  1139. }
  1140. if (this.toProd) {
  1141. this.allotProdDialog = true;
  1142. } else {
  1143. this.allotAmountDialog = true;
  1144. }
  1145. this.notInfo = this.notInfo + this.notClaimAmount + '¥'
  1146. },
  1147. openAssetsClaimDialog() {
  1148. if (this.claimOrders.length === 0) {
  1149. this.$notify({
  1150. title: '提示',
  1151. message: '请先选择订单,然后认领。',
  1152. type: 'info',
  1153. duration: 2000
  1154. });
  1155. return;
  1156. }
  1157. if (this.toAssetsProd) {
  1158. this.allotAssetsProdDialog = true;
  1159. } else {
  1160. this.allotAssetsAmountDialog = true;
  1161. }
  1162. this.notInfo = this.notInfo + this.notClaimAmount + '¥'
  1163. },
  1164. getMyPersonalOrder() {
  1165. this.$api.personal.waitingClamOrder(Object.assign({'invoiceAmount':this.notClaimAmount}, this.personalListQuery)).then(res => {
  1166. if (res.code === 200) {
  1167. this.myPersonalPageData = res.data;
  1168. }
  1169. })
  1170. },
  1171. getMyPersonalOrderResetSearch() {
  1172. this.$router.push({ query: {} });
  1173. this.personalListQuery = {
  1174. current: 1,
  1175. size: 10,
  1176. descs: 'id',
  1177. hasRealAmount: "false"
  1178. }
  1179. this.getMyPersonalOrder()
  1180. },
  1181. downloadTemp() {
  1182. window.location.href = "/api/financeClaim/personal/claim/template"
  1183. },
  1184. doClaimMajor() {
  1185. const orders = this.claimOrders;
  1186. for (let i in orders) {
  1187. if (!orders[i].thisTimeAmount) {
  1188. this.$message.error("报告号:[" + orders[i].reportNo + "],本次认领金额不能为空。");
  1189. return;
  1190. }
  1191. }
  1192. this.$api.businessProduction.allotRealAmount(this.claimOrders).then(res => {
  1193. if (res.code === 200 && res.data) {
  1194. this.$notify({
  1195. title: '成功',
  1196. message: '实收款认领成功',
  1197. type: 'success',
  1198. duration: 2000
  1199. });
  1200. this.getMajorOrderOrProd();
  1201. this.allotAmountDialog = false;
  1202. this.allotProdDialog = false;
  1203. this.myMajorOrderDialog = false;
  1204. } else {
  1205. this.$notify({
  1206. title: '失败',
  1207. message: '实收款认领失败',
  1208. type: 'error',
  1209. duration: 2000
  1210. });
  1211. }
  1212. })
  1213. },
  1214. doClaimMajorToOrder() {
  1215. const orders = this.claimOrders;
  1216. for (let i in orders) {
  1217. if (!orders[i].thisTimeAmount) {
  1218. this.$message.error("订单号:[" + orders[i].orderId + "],本次认领金额不能为空。");
  1219. return;
  1220. }
  1221. }
  1222. this.$api.businessProduction.allotRealAmountToOrder(this.claimOrders).then(res => {
  1223. if (res.code === 200 && res.data) {
  1224. this.$notify({
  1225. title: '成功',
  1226. message: '实收款认领成功',
  1227. type: 'success',
  1228. duration: 2000
  1229. });
  1230. this.getMajorOrderOrProd();
  1231. this.allotAmountDialog = false;
  1232. this.allotProdDialog = false;
  1233. this.myMajorOrderDialog = false;
  1234. } else {
  1235. this.$notify({
  1236. title: '失败',
  1237. message: '实收款认领失败',
  1238. type: 'error',
  1239. duration: 2000
  1240. });
  1241. }
  1242. })
  1243. },
  1244. doClaimPersonal() {
  1245. const orders = this.claimOrders;
  1246. for (let i in orders) {
  1247. if (!orders[i].thisTimeAmount) {
  1248. this.$message.error("订单号:[" + orders[i].orderId + "],本次认领金额不能为空。");
  1249. return;
  1250. }
  1251. }
  1252. this.$api.businessProduction.personalAllotRealAmount(this.claimOrders).then(res => {
  1253. if (res.code === 200 && res.data) {
  1254. this.$notify({
  1255. title: '成功',
  1256. message: '实收款认领成功',
  1257. type: 'success',
  1258. duration: 2000
  1259. });
  1260. this.getMyPersonalOrder();
  1261. this.allotPersonalAmountDialog = false;
  1262. } else {
  1263. this.$notify({
  1264. title: '失败',
  1265. message: '实收款认领失败',
  1266. type: 'error',
  1267. duration: 2000
  1268. });
  1269. }
  1270. })
  1271. },
  1272. checkSelectable(row) {
  1273. if (row.mdeclareResult === '审核通过' && row.edeclareResult === '审核通过') {
  1274. return true;
  1275. } else {
  1276. return false;
  1277. }
  1278. },
  1279. claimMajor(row) {
  1280. this.myMajorOrderDialog = true;
  1281. this.notClaimAmount = row.notClaimAmount;
  1282. this.financeFundId = row.id;
  1283. this.getMyMajorProd();
  1284. },
  1285. claimPersonal(row) {
  1286. this.myPersonalOrderDialog = true;
  1287. this.financeFundId = row.id;
  1288. this.notClaimAmount = row.notClaimAmount;
  1289. this.getMyPersonalOrder();
  1290. },
  1291. getMajorOrderOrProd() {
  1292. if (this.toProd) {
  1293. this.getMyMajorProd();
  1294. } else {
  1295. this.getMyMajorOrder();
  1296. }
  1297. },
  1298. resetMajorOrderOrProd() {
  1299. if (this.toProd) {
  1300. this.getMyMajorProdResetSearch();
  1301. } else {
  1302. this.getMyMajorOrderResetSearch();
  1303. }
  1304. },
  1305. claimAssets(row) {
  1306. this.notClaimAmount = row.notClaimAmount;
  1307. this.myAssetsOrderDialog = true;
  1308. this.financeFundId = row.id;
  1309. this.getMyAssetsOrderProd();
  1310. },
  1311. resetAssetsListQuery() {
  1312. this.assetsListQuery = {
  1313. page: 1,
  1314. size: 10,
  1315. descs: 'id',
  1316. hasRealAmount: "false"
  1317. }
  1318. },
  1319. getMyAssetsOrderProd() {
  1320. this.$api.assetsProduction.getMyAssetsOrderProd(Object.assign({'invoiceAmount':this.notClaimAmount}, this.assetsListQuery)).then(res => {
  1321. if (res.code == 200) {
  1322. this.myAssetsPageData = res.data;
  1323. }
  1324. })
  1325. },
  1326. getMyAssetsOrder() {
  1327. this.$api.assetsProduction.getMyAssetsOrder(this.assetsListQuery).then(res => {
  1328. if (res.code == 200) {
  1329. this.myAssetsPageData = res.data;
  1330. }
  1331. })
  1332. },
  1333. getMyAssetsProdResetSearch() {
  1334. this.$router.push({ query: {} });
  1335. this.assetsListQuery = {
  1336. current: 1,
  1337. size: 10,
  1338. descs: 'id',
  1339. hasRealAmount: "false"
  1340. }
  1341. this.getMyAssetsOrderProd()
  1342. },
  1343. getMyAssetsOrderResetSearch() {
  1344. this.$router.push({ query: {} });
  1345. this.assetsListQuery = {
  1346. current: 1,
  1347. size: 10,
  1348. descs: 'id',
  1349. }
  1350. this.getMyAssetsOrder()
  1351. },
  1352. getMyAssetsOrderOrProd() {
  1353. if (this.toAssetsProd) {
  1354. this.getMyAssetsOrderProd();
  1355. } else {
  1356. this.getMyAssetsOrder();
  1357. }
  1358. },
  1359. // 资产认领实收款到 订单
  1360. assetsDoAllotRealAmountToOrder() {
  1361. const orders = this.claimOrders;
  1362. for (let i in orders) {
  1363. if (!orders[i].thisTimeAmount) {
  1364. this.$message.error("订单号:[" + orders[i].orderId + "],本次认领金额不能为空。");
  1365. return;
  1366. }
  1367. }
  1368. this.$api.businessProduction.assetsDoAllotRealAmountToOrder(this.claimOrders).then(res => {
  1369. if (res.code === 200 && res.data) {
  1370. this.$notify({
  1371. title: '成功',
  1372. message: '实收款认领成功',
  1373. type: 'success',
  1374. duration: 2000
  1375. });
  1376. this.getMyAssetsOrder();
  1377. this.allotAssetsAmountDialog = false;
  1378. this.allotAssetsProdDialog = false;
  1379. } else {
  1380. this.$notify({
  1381. title: '失败',
  1382. message: '实收款认领失败',
  1383. type: 'error',
  1384. duration: 2000
  1385. });
  1386. }
  1387. })
  1388. },
  1389. // 资产认领实收款到 产品
  1390. assetsDoAllotRealAmountToProd() {
  1391. const orders = this.claimOrders;
  1392. for (let i in orders) {
  1393. if (!orders[i].thisTimeAmount) {
  1394. this.$message.error("报告号:[" + orders[i].reportNo + "],本次认领金额不能为空。");
  1395. return;
  1396. }
  1397. }
  1398. this.$api.businessProduction.assetsDoAllotRealAmountToProd(this.claimOrders).then(res => {
  1399. if (res.code === 200 && res.data) {
  1400. this.$notify({
  1401. title: '成功',
  1402. message: '实收款认领成功',
  1403. type: 'success',
  1404. duration: 2000
  1405. });
  1406. this.getMyAssetsOrderProd();
  1407. this.allotAssetsAmountDialog = false;
  1408. this.allotAssetsProdDialog = false;
  1409. } else {
  1410. this.$notify({
  1411. title: '失败',
  1412. message: '实收款认领失败',
  1413. type: 'error',
  1414. duration: 2000
  1415. });
  1416. }
  1417. })
  1418. },
  1419. openPersonalOrderDialog(){
  1420. if (this.claimOrders.length === 0) {
  1421. this.$notify({
  1422. title: '提示',
  1423. message: '请先选择订单,然后认领。',
  1424. type: 'info',
  1425. duration: 2000
  1426. });
  1427. return;
  1428. }
  1429. this.notInfo = this.notInfo + this.notClaimAmount + '¥'
  1430. this.allotPersonalAmountDialog = true;
  1431. },
  1432. tableRowClassName({row, rowIndex}) {
  1433. if (row.invoiceAmount === this.notClaimAmount) {
  1434. return 'success-row';
  1435. }
  1436. return '';
  1437. }
  1438. },
  1439. }
  1440. </script>
  1441. <style lang="scss" scoped>
  1442. /deep/.doWarehouseClass {
  1443. border-radius: 10px;
  1444. }
  1445. .redPoint {
  1446. color: red;
  1447. position: absolute;
  1448. top: 8px;
  1449. left: 5px;
  1450. }
  1451. </style>
  1452. <style>
  1453. .el-table .success-row {
  1454. background: #f0f9eb;
  1455. }
  1456. </style>