应用层PC端前端服务

paymentList.vue 8.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
  4. <el-form-item label="案件编号" prop="caseNum">
  5. <el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable @keyup.enter.native="handleQuery" />
  6. </el-form-item>
  7. <el-form-item label="案件状态" prop="caseStatus">
  8. <el-select :disabled="caseStatusType" v-model="queryParams.caseStatus" placeholder="请选择案件状态" clearable @keyup.enter.native="handleQuery">
  9. <el-option v-for="dict in caseStatus" :key="dict.dictValue" :label="dict.dictLabel"
  10. :value="dict.dictValue"></el-option>
  11. </el-select>
  12. </el-form-item>
  13. <!-- <el-form-item label="是否完成" prop="selectCaseStatus">
  14. <el-select v-model="queryParams.selectCaseStatus" placeholder="请选择状态" clearable @keyup.enter.native="handleQuery">
  15. <el-option v-for="dict in selectCaseStatusList" :key="dict.value" :label="dict.label"
  16. :value="dict.value"></el-option>
  17. </el-select>
  18. </el-form-item> -->
  19. <!-- <el-form-item label="立案日期" prop="registerDate">
  20. <el-date-picker
  21. v-model="queryParams.registerDate"
  22. type="daterange"
  23. range-separator="至"
  24. start-placeholder="开始日期"
  25. end-placeholder="结束日期"
  26. >
  27. </el-date-picker>
  28. </el-form-item> -->
  29. <el-form-item>
  30. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  31. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  32. </el-form-item>
  33. </el-form>
  34. <el-col :span="24" style="margin-bottom:15px;">
  35. <el-button type="primary" plain icon="el-icon-plus" size="mini"
  36. @click="batchConfirmation"
  37. v-hasPermi="['paymentManagement:list:batchConfirma']"
  38. >批量确认缴费</el-button>
  39. </el-col>
  40. <el-table v-loading="loading" :data="dataList" style="width: 100%">
  41. <el-table-column label="序号" type="index" align="center">
  42. <template slot-scope="scope">
  43. <span>{{
  44. (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
  45. }}</span>
  46. </template>
  47. </el-table-column>
  48. <el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
  49. <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" />
  50. <el-table-column label="立案日期" align="center" prop="registerDate" :show-overflow-tooltip="true" />
  51. <!-- 缴费人 -->
  52. <!-- <el-table-column label="缴费人" align="center" prop="caseArbitrator" /> -->
  53. <el-table-column label="案件状态" align="center" prop="caseStatusName">
  54. <template slot-scope="scope">
  55. <el-tag type="warning">{{ scope.row.caseStatusName }}</el-tag>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  59. <template slot-scope="scope">
  60. <el-button size="mini" type="text" icon="el-icon-zoom-in" @click="paymentconfirmationRow(scope.row)"
  61. v-if="checkPermi(['paymentManagement:list:payconfirm']) && btnStatus&&scope.row.caseStatus==3">缴费确认</el-button>
  62. <el-button size="mini" type="text" icon="el-icon-edit" @click="viewpaymentformRow(scope.row)"
  63. v-hasPermi="['paymentManagement:list:detail']">查看缴费单</el-button>
  64. </template>
  65. </el-table-column>
  66. </el-table>
  67. <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
  68. @pagination="getList" />
  69. <!-- 缴费确认数据详情 -->
  70. <paymentdetailsDialog :openDialog="openDialog" :detailform="detailform" :title="title" :flag="flag" :getList="getList"
  71. @cancelpaymentdetails="cancelpaymentdetails"></paymentdetailsDialog>
  72. <!-- 批量确认缴费 -->
  73. <batchConfirmationPaymens @batchOperate="batchOperate" :batchVisable="batchVisable"></batchConfirmationPaymens>
  74. </div>
  75. </template>
  76. <script>
  77. import {
  78. caseApplicationList,
  79. selectCaseApplicationConfirm,
  80. casePay,
  81. } from "@/api/pay/pay";
  82. import paymentdetailsDialog from "./components/paymentdetailsDialog.vue";
  83. import batchConfirmationPaymens from "./components/batchConfirmationPaymens.vue"
  84. import { getDicts } from '@/api/system/dict/data.js'
  85. export default {
  86. name: "paymentList",
  87. // dicts: ["case_status"],
  88. components: { paymentdetailsDialog,batchConfirmationPaymens },
  89. data() {
  90. return {
  91. queryParams: {
  92. caseNum: undefined,
  93. pageNum: 1,
  94. caseStatusList: [3],
  95. registerDate: "",
  96. pageSize: 10,
  97. },
  98. // 付款二维码
  99. paySrc: "",
  100. // 遮罩层
  101. loading: false,
  102. // 总条数
  103. total: 0,
  104. // 表格数据
  105. list: [],
  106. pageNum: 1,
  107. pageSize: 10,
  108. // 弹出层标题
  109. title: "",
  110. payTitle: "",
  111. // 是否显示弹出层
  112. open: false,
  113. openPay: false,
  114. batchVisable:false,
  115. // 弹出层内容
  116. form: {},
  117. // 校验表单
  118. rules: {},
  119. dataList: [],
  120. // 支付文字
  121. payMain: "",
  122. // 支付元素显示
  123. payFlag: false,
  124. // 案件id,案件实付金额
  125. payForm: {},
  126. detailform: {}, //缴费详情数据
  127. openDialog: false, //缴费详情数据弹框
  128. flag: null,
  129. caseStatus: [],
  130. selectCaseStatusList: [
  131. {
  132. label: "待办案件",
  133. value: 0
  134. },
  135. {
  136. label: "已办案件",
  137. value: 1
  138. }
  139. ],
  140. caseStatusType:false,
  141. btnStatus:true,
  142. };
  143. },
  144. created() {
  145. getDicts("case_status").then(res => {
  146. this.caseStatus = res.data;
  147. let params = this.$route.params.status;
  148. if (params >= 0) {
  149. this.queryParams.caseStatus = params;
  150. }
  151. this.getList();
  152. })
  153. },
  154. methods: {
  155. /** 搜索按钮操作 */
  156. handleQuery() {
  157. this.queryParams.pageNum = 1;
  158. this.getList();
  159. if (this.queryParams.selectCaseStatus == 1) {
  160. this.queryParams.caseStatus = null;
  161. this.caseStatusType = true;
  162. this.btnStatus = false;
  163. } else if (this.queryParams.selectCaseStatus == 0) {
  164. this.caseStatusType = false;
  165. this.btnStatus = true;
  166. }
  167. },
  168. /** 重置按钮操作 */
  169. resetQuery() {
  170. this.resetForm("queryForm");
  171. this.handleQuery();
  172. },
  173. // 查询列表数据
  174. getList() {
  175. this.loading = true;
  176. caseApplicationList(this.queryParams).then((response) => {
  177. this.dataList = response.rows;
  178. this.dataList.forEach((item) => {
  179. if (item.caseStatus == 1) {
  180. item.caseStatusName = "待缴费";
  181. }
  182. if (item.arbitratMethod == "1") {
  183. item.arbitratMethodName = "视频仲裁";
  184. } else if (item.arbitratMethod == "2") {
  185. item.arbitratMethodName = "书面仲裁";
  186. }
  187. });
  188. this.total = response.total;
  189. this.loading = false;
  190. });
  191. },
  192. // 缴费确认
  193. paymentconfirmationRow(row) {
  194. console.log(row)
  195. // console.log("缴费确认", row);
  196. this.getDetail({ id: row.id });
  197. this.openDialog = true;
  198. this.title = "缴费确认";
  199. this.flag = 0;
  200. this.detailform = {}
  201. },
  202. // 查看缴费单
  203. viewpaymentformRow(row) {
  204. // console.log("查看缴费单", row);
  205. this.getDetail({ id: row.id });
  206. this.openDialog = true;
  207. this.title = "缴费单详情";
  208. this.flag = 1;
  209. this.detailform = {}
  210. },
  211. // 关闭弹窗
  212. cancelpaymentdetails() {
  213. this.openDialog = false;
  214. },
  215. // 批量缴费
  216. batchConfirmation(){
  217. this.batchVisable = true;
  218. },
  219. // 批量确认缴费关闭
  220. batchOperate(){
  221. this.batchVisable = false;
  222. },
  223. /** 查询详情 */
  224. getDetail(parms) {
  225. selectCaseApplicationConfirm(parms).then((res) => {
  226. // console.log(res,'resesrrsrrsrrsrsr');
  227. // if (res.data.caseStatus == 2) {
  228. // res.data.caseStatusName = "待缴费确认";
  229. // }
  230. this.detailform = res.data;
  231. });
  232. },
  233. },
  234. };
  235. </script>
  236. <style lang="scss" scoped></style>