应用层PC端前端服务

caseList.vue 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. :model="queryParams"
  5. ref="queryForm"
  6. size="small"
  7. :inline="true"
  8. label-width="68px"
  9. >
  10. <el-form-item label="案件编号" prop="caseNum">
  11. <el-input
  12. v-model="queryParams.caseNum"
  13. placeholder="请输入案件编号"
  14. clearable
  15. @keyup.enter.native="handleQuery"
  16. />
  17. </el-form-item>
  18. <el-form-item label="案件状态" prop="caseStatus">
  19. <el-select
  20. v-model="queryParams.caseStatus"
  21. placeholder="请选择案件状态"
  22. clearable
  23. @keyup.enter.native="handleQuery"
  24. >
  25. <el-option
  26. v-for="dict in dict.type.case_status"
  27. :key="dict.value"
  28. :label="dict.label"
  29. :value="dict.value"
  30. ></el-option>
  31. </el-select>
  32. </el-form-item>
  33. <!-- <el-form-item label="开庭日期" prop="hearDate">
  34. <el-date-picker
  35. v-model="queryParams.hearDate"
  36. type="daterange"
  37. range-separator="至"
  38. start-placeholder="开始日期"
  39. end-placeholder="结束日期"
  40. >
  41. </el-date-picker>
  42. </el-form-item> -->
  43. <el-form-item>
  44. <el-button
  45. type="primary"
  46. icon="el-icon-search"
  47. size="mini"
  48. @click="handleQuery"
  49. >搜索</el-button
  50. >
  51. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
  52. >重置</el-button
  53. >
  54. </el-form-item>
  55. </el-form>
  56. <el-row :gutter="10" class="mb8">
  57. <el-col :span="1.5">
  58. <el-button
  59. type="primary"
  60. plain
  61. icon="el-icon-plus"
  62. size="mini"
  63. @click="filingApplication"
  64. v-hasPermi="['monitor:job:add']"
  65. >案件录入</el-button
  66. >
  67. <el-button
  68. type="primary"
  69. plain
  70. icon="el-icon-plus"
  71. size="mini"
  72. @click="batchApplication"
  73. v-hasPermi="['monitor:job:add']"
  74. >案件批量导入</el-button
  75. >
  76. </el-col>
  77. </el-row>
  78. <el-table v-loading="loading" :data="dataList" style="width: 100%">
  79. <el-table-column label="序号" type="index" align="center">
  80. <template slot-scope="scope">
  81. <span>{{
  82. (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
  83. }}</span>
  84. </template>
  85. </el-table-column>
  86. <el-table-column
  87. label="案件编号"
  88. align="center"
  89. prop="caseNum"
  90. :show-overflow-tooltip="true"
  91. />
  92. <!-- <el-table-column
  93. label="申请人"
  94. align="center"
  95. prop="caseAffiliates[0].name"
  96. :show-overflow-tooltip="true"
  97. /> -->
  98. <el-table-column
  99. label="案件标的"
  100. align="center"
  101. prop="caseSubjectAmount"
  102. />
  103. <el-table-column
  104. label="仲裁方式"
  105. align="center"
  106. prop="arbitratMethodName"
  107. :show-overflow-tooltip="true"
  108. />
  109. <!-- 仲裁员 -->
  110. <el-table-column label="仲裁员" align="center" prop="arbitratorName" />
  111. <!-- 开庭日期 -->
  112. <el-table-column
  113. label="开庭日期"
  114. align="center"
  115. prop="hearDate"
  116. :show-overflow-tooltip="true"
  117. />
  118. <el-table-column label="案件状态" align="center" prop="caseStatusName">
  119. <template slot-scope="scope">
  120. <el-tag type="success">{{ scope.row.caseStatusName }}</el-tag>
  121. </template>
  122. </el-table-column>
  123. <el-table-column
  124. label="操作"
  125. align="center"
  126. class-name="small-padding fixed-width"
  127. >
  128. <template slot-scope="scope">
  129. <el-button
  130. size="mini"
  131. type="text"
  132. icon="el-icon-zoom-in"
  133. @click="detailRow(scope.row)"
  134. v-hasPermi="['monitor:online:forceLogout']"
  135. >详情</el-button
  136. >
  137. <el-button
  138. size="mini"
  139. type="text"
  140. icon="el-icon-edit"
  141. @click="editRow(scope.row)"
  142. v-if="scope.row.caseStatus == 0"
  143. v-hasPermi="['monitor:online:forceLogout']"
  144. >修改</el-button
  145. >
  146. <el-button
  147. size="mini"
  148. type="text"
  149. icon="el-icon-check"
  150. @click="onsubmitRow(scope.row)"
  151. v-if="scope.row.caseStatus == 0"
  152. v-hasPermi="['monitor:online:forceLogout']"
  153. >提交</el-button
  154. >
  155. <el-button
  156. size="mini"
  157. type="text"
  158. icon="el-icon-delete"
  159. @click="deleteRow(scope.row)"
  160. v-if="scope.row.caseStatus == 0"
  161. v-hasPermi="['monitor:online:forceLogout']"
  162. >删除</el-button
  163. >
  164. <el-button
  165. size="mini"
  166. type="text"
  167. icon="el-icon-view"
  168. @click="filingreviewRow(scope.row)"
  169. v-if="scope.row.caseStatus == 1"
  170. v-hasPermi="['monitor:online:forceLogout']"
  171. >立案审查</el-button
  172. >
  173. <el-button
  174. size="mini"
  175. type="text"
  176. icon="el-icon-tickets"
  177. @click="payStatus(scope.row)"
  178. v-if="scope.row.caseStatus == 2"
  179. v-hasPermi="['monitor:online:forceLogout']"
  180. >缴费</el-button
  181. >
  182. <!-- <el-button
  183. size="mini"
  184. type="text"
  185. icon="el-icon-data-analysis"
  186. @click="formationcourtRow(scope.row)"
  187. v-hasPermi="['monitor:online:forceLogout']"
  188. >组庭</el-button
  189. > -->
  190. <el-button
  191. size="mini"
  192. type="text"
  193. icon="el-icon-s-check"
  194. @click="courtconfirmationRow(scope.row)"
  195. v-if="scope.row.caseStatus == 6"
  196. v-hasPermi="['caseManagement:caseList:commit']"
  197. >组庭确认</el-button
  198. >
  199. <el-button
  200. size="mini"
  201. type="text"
  202. icon="el-icon-check"
  203. @click="courtreviewRow(scope.row)"
  204. v-if="scope.row.caseStatus == 5"
  205. v-hasPermi="['monitor:online:forceLogout']"
  206. >组庭审核</el-button
  207. >
  208. <el-button
  209. size="mini"
  210. type="text"
  211. icon="el-icon-sort"
  212. @click="choosetrialmethodRow(scope.row)"
  213. v-if="scope.row.caseStatus == 7"
  214. v-hasPermi="['monitor:online:forceLogout']"
  215. >审核仲裁方式</el-button
  216. >
  217. <el-button
  218. size="mini"
  219. type="text"
  220. icon="el-icon-edit-outline"
  221. @click="adjudicaterecordRow(scope.row)"
  222. v-if="scope.row.caseStatus == 9 && scope.row.arbitratMethod == 2"
  223. v-hasPermi="['monitor:online:forceLogout']"
  224. >书面审理</el-button
  225. >
  226. <el-button
  227. size="mini"
  228. type="text"
  229. icon="el-icon-service"
  230. @click="trialcourtRow(scope.row)"
  231. v-if="scope.row.caseStatus == 8 && scope.row.arbitratMethod == 1 "
  232. v-hasPermi="['monitor:online:forceLogout']"
  233. >开庭审理</el-button
  234. >
  235. <el-button
  236. size="mini"
  237. type="text"
  238. icon="el-icon-document"
  239. @click="generateawardRow(scope.row)"
  240. v-if="scope.row.caseStatus == 10"
  241. v-hasPermi="['monitor:online:forceLogout']"
  242. >生成裁决书</el-button
  243. >
  244. <el-button
  245. size="mini"
  246. type="text"
  247. icon="el-icon-receiving"
  248. @click="fileRow(scope.row)"
  249. v-if="scope.row.caseStatus == 16"
  250. v-hasPermi="['monitor:online:forceLogout']"
  251. >归档</el-button
  252. >
  253. </template>
  254. </el-table-column>
  255. </el-table>
  256. <pagination
  257. v-show="total > 0"
  258. :total="total"
  259. :page.sync="queryParams.pageNum"
  260. :limit.sync="queryParams.pageSize"
  261. @pagination="getcaseApply(queryParams)"
  262. />
  263. <!-- 立案申请弹框 -->
  264. <caseentryDialog
  265. :visible="visible"
  266. @cancel="cancel"
  267. :form="form"
  268. :queryParams="queryParams"
  269. :dialogtitle="dialogtitle"
  270. :getcaseApply="getcaseApply"
  271. :flag="flag"
  272. :caseAttachList="caseAttachList"
  273. :initpaymentArr="initpaymentArr"
  274. :initpaymentArr1="initpaymentArr1"
  275. ></caseentryDialog>
  276. <!-- 批量申请弹框 openbatch-->
  277. <batchDialog
  278. :openbatch="openbatch"
  279. :queryParams="queryParams"
  280. @cancelBatch="cancelBatch"
  281. :getcaseApply="getcaseApply"
  282. ></batchDialog>
  283. <!-- 立案审查页面 -->
  284. <filingreviewDialog
  285. :showfilingreview="showfilingreview"
  286. :filingreviewdata="filingreviewdata"
  287. :queryParams="queryParams"
  288. @getcaseApply="getcaseApply"
  289. @cancelFilingreview="cancelFilingreview"
  290. ></filingreviewDialog>
  291. <!-- 组庭页面---改为组庭审核 -->
  292. <formateCourtDialog
  293. :showformateCourt="showformateCourt"
  294. @cancelcourtDialog="cancelcourtDialog"
  295. :queryParams="queryParams"
  296. :formateCourtData="formateCourtData"
  297. @getcaseApply="getcaseApply"
  298. ></formateCourtDialog>
  299. <!-- 组庭审核--改组庭确认 -->
  300. <courtReviewDialog
  301. :showcourtReview="showcourtReview"
  302. :form="form"
  303. :queryParams="queryParams"
  304. @cancelcourtReview="cancelcourtReview"
  305. @getcaseApply="getcaseApply"
  306. ></courtReviewDialog>
  307. <!-- 审核仲裁方式 -->
  308. <choosetrialmethodDaiog
  309. :showchoosetrialmethod="showchoosetrialmethod"
  310. :choosetrialmethodata="choosetrialmethodata"
  311. :queryParams="queryParams"
  312. @getcaseApply="getcaseApply"
  313. @cancelshowchoosetrialMethod="cancelshowchoosetrialMethod"
  314. ></choosetrialmethodDaiog>
  315. <!-- 书面审理 -->
  316. <adjudicaterecordDialog
  317. :showadjudicaterecord="showadjudicaterecord"
  318. :form="form"
  319. :adjudicatename="adjudicatename"
  320. :queryParams="queryParams"
  321. @canceladjudicaterecord="canceladjudicaterecord"
  322. @getcaseApply="getcaseApply"
  323. ></adjudicaterecordDialog>
  324. <!-- 开庭审理 -->
  325. <trialincourtDialog
  326. :showtrialincourt="showtrialincourt"
  327. :adjudicatename="adjudicatename"
  328. :form="form"
  329. :queryParams="queryParams"
  330. @getcaseApply="getcaseApply"
  331. @canceltrialincourt="canceltrialincourt"
  332. ></trialincourtDialog>
  333. <!-- 缴费 -->
  334. <payDialog
  335. :openPay="openPay"
  336. :payTitle="payTitle"
  337. :form="form"
  338. :payForm="payForm"
  339. @getcaseApply="getcaseApply"
  340. @paycancelRow="paycancelRow"
  341. ></payDialog>
  342. </div>
  343. </template>
  344. <script>
  345. import caseentryDialog from "./components/caseentryDialog";
  346. import batchDialog from "./components/batchDialog";
  347. import formateCourtDialog from "./components/formateCourtDialog.vue";
  348. import courtReviewDialog from "./components/courtReviewDialog.vue";
  349. import choosetrialmethodDaiog from "./components/choosetrialmethodDaiog.vue";
  350. import adjudicaterecordDialog from "./components/adjudicaterecordDialog.vue";
  351. import trialincourtDialog from "./components/trialincourtDialog.vue";
  352. import payDialog from "./components/payDialog.vue";
  353. import filingreviewDialog from "./components/filingreviewDialog.vue";
  354. import { caseApplicationDetail } from "@/api/pay/pay";
  355. import {
  356. caseApply,
  357. removeCaseApply,
  358. submitCaseApply,
  359. selectCaseApply,
  360. } from "@/api/caseAccess/caseEntry";
  361. import { document } from "@/api/caseManagement/caseManagement";
  362. export default {
  363. name: "caseList",
  364. dicts: ["case_status"],
  365. components: {
  366. caseentryDialog,
  367. batchDialog,
  368. formateCourtDialog,
  369. courtReviewDialog,
  370. choosetrialmethodDaiog,
  371. adjudicaterecordDialog,
  372. trialincourtDialog,
  373. payDialog,
  374. filingreviewDialog,
  375. },
  376. data() {
  377. return {
  378. // 遮罩层
  379. loading: true,
  380. // 总条数
  381. total: 0,
  382. isapply: "申请人:",
  383. // 表格数据
  384. dataList: [],
  385. // 查询参数
  386. queryParams: {
  387. caseNum: undefined,
  388. caseStatusList: [0, 1, 2, 5, 6, 7, 8, 9, 10, 16],
  389. hearDate: "",
  390. caseStatus: null,
  391. pageNum: 1,
  392. pageSize: 10,
  393. },
  394. dialogtitle: "", //弹框标题
  395. visible: false, //申请弹框控制
  396. form: {},
  397. starttime: "", //开始时间
  398. endtime: "", //结束时间
  399. formData: {},
  400. flag: "-1",
  401. initpaymentArr: [],
  402. initpaymentArr1: [],
  403. showfilingreview: false, //立案申查弹框控制
  404. filingreviewdata: {}, //立案审查传输数据
  405. openbatch: false, // 批量申请弹框
  406. formateCourtData: {}, //组庭
  407. showformateCourt: false, //组庭界面显示
  408. showcourtReview: false, //组庭审核页面
  409. showchoosetrialmethod: false, //选择仲裁方式页面
  410. choosetrialmethodata: {},
  411. showadjudicaterecord: false, //书面审理弹框
  412. adjudicatename: {}, //书面仲裁(被)申请人姓名
  413. showtrialincourt: false, //开庭审理
  414. openPay: false, //缴费弹框
  415. payTitle: "",
  416. payForm: {},
  417. caseAttachList: [], //案件质证资料
  418. };
  419. },
  420. created() {
  421. this.getcaseApply(this.queryParams);
  422. },
  423. methods: {
  424. cancel() {
  425. this.visible = false;
  426. },
  427. cancelBatch() {
  428. this.openbatch = false;
  429. },
  430. /** 查询列表 */
  431. getcaseApply(val) {
  432. this.loading = true;
  433. caseApply(val).then((response) => {
  434. this.dataList = response.rows;
  435. // this.dataList.forEach((item) => {
  436. // if (item.arbitratMethod == 1) {
  437. // item.arbitratMethod = "视频仲裁";
  438. // }
  439. // if (item.arbitratMethod == 2) {
  440. // item.arbitratMethod = "书面仲裁";
  441. // }
  442. // });
  443. this.total = response.total;
  444. this.loading = false;
  445. });
  446. },
  447. /** 搜索按钮操作 */
  448. handleQuery() {
  449. this.queryParams.caseStatusList = [];
  450. this.queryParams.pageNum = 1;
  451. this.getcaseApply(this.queryParams);
  452. },
  453. /** 重置按钮操作 */
  454. resetQuery() {
  455. this.resetForm("queryForm");
  456. (this.queryParams.caseStatusList = [0, 1, 2, 5, 6, 7, 8, 9, 10, 16]),
  457. this.getcaseApply(this.queryParams);
  458. },
  459. // 案件录入
  460. filingApplication() {
  461. this.form = {};
  462. this.initpaymentArr = [
  463. {
  464. identityType: 1,
  465. name: "",
  466. identityNum: "",
  467. contactTelphone: "",
  468. workAddress: "",
  469. workTelphone: "",
  470. contactAddress: "",
  471. nameAgent: "",
  472. contactTelphoneAgent: "",
  473. contactAddressAgent: "",
  474. },
  475. ];
  476. this.initpaymentArr1 = [
  477. {
  478. identityType: 2,
  479. name: "",
  480. identityNum: "",
  481. contactTelphone: "",
  482. workAddress: "",
  483. workTelphone: "",
  484. contactAddress: "",
  485. nameAgent: "",
  486. contactTelphoneAgent: "",
  487. contactAddressAgent: "",
  488. },
  489. ];
  490. this.visible = true;
  491. this.dialogtitle = "立案申请";
  492. this.flag = "2";
  493. },
  494. // 批量批量录入
  495. batchApplication() {
  496. this.openbatch = true;
  497. },
  498. // 详情
  499. detailRow(row) {
  500. this.flag = "0";
  501. this.form = row;
  502. this.visible = true;
  503. this.dialogtitle = "立案详情";
  504. this.getInfo(row);
  505. },
  506. // 修改
  507. editRow(row) {
  508. this.flag = "1";
  509. this.form = row;
  510. this.visible = true;
  511. this.dialogtitle = "立案修改";
  512. this.getInfo(row);
  513. },
  514. // 列表提交立案
  515. onsubmitRow(row) {
  516. this.$modal
  517. .confirm("是否提交立案申请?")
  518. .then(function () {
  519. return submitCaseApply({ id: row.id });
  520. })
  521. .then(() => {
  522. this.getcaseApply(this.queryParams);
  523. this.$modal.msgSuccess("立案申请成功");
  524. })
  525. .catch(() => {});
  526. },
  527. // 立案审查
  528. filingreviewRow(row) {
  529. console.log(row, "立案审查");
  530. this.showfilingreview = true;
  531. this.filingreviewdata = row;
  532. },
  533. cancelFilingreview() {
  534. this.showfilingreview = false;
  535. },
  536. // 取消缴费
  537. paycancelRow(row) {
  538. this.openPay = false;
  539. },
  540. // 是否进行缴费
  541. payStatus(val) {
  542. this.getDetail({ id: val.id });
  543. this.payTitle = "缴费";
  544. this.openPay = true;
  545. },
  546. getDetail(parms) {
  547. caseApplicationDetail(parms).then((res) => {
  548. if (res.data.caseStatus == 1) {
  549. res.data.caseStatusName = "待缴费";
  550. }
  551. this.form = res.data;
  552. this.payForm.feePayable = res.data.feePayable;
  553. this.payForm.caseId = res.data.id;
  554. });
  555. },
  556. // 组庭
  557. // formationcourtRow(row) {
  558. // console.log(row, "组庭");
  559. // this.formateCourtData = row;
  560. // this.showformateCourt = true;
  561. // },
  562. // 关闭组庭页面
  563. cancelcourtDialog() {
  564. this.showformateCourt = false;
  565. },
  566. // 组庭确认
  567. courtconfirmationRow(row) {
  568. // console.log(row, "组庭确认");
  569. this.showcourtReview = true;
  570. this.form = row;
  571. },
  572. // 组庭审核
  573. courtreviewRow(row) {
  574. // console.log(row, "组庭审核");
  575. this.formateCourtData = row;
  576. this.showformateCourt = true;
  577. },
  578. cancelcourtReview() {
  579. this.showcourtReview = false;
  580. },
  581. // 选择开庭方式改为审核仲裁方式
  582. choosetrialmethodRow(row) {
  583. // console.log(row, "审核仲裁方式");
  584. this.choosetrialmethodata = row;
  585. this.showchoosetrialmethod = true;
  586. },
  587. // 关闭审核仲裁方式
  588. cancelshowchoosetrialMethod() {
  589. this.showchoosetrialmethod = false;
  590. },
  591. // 书面审理
  592. adjudicaterecordRow(row) {
  593. // console.log(row, "书面审理");
  594. this.showadjudicaterecord = true;
  595. this.form = row;
  596. this.getInfo(row);
  597. },
  598. canceladjudicaterecord() {
  599. this.showadjudicaterecord = false;
  600. },
  601. // 开庭审理
  602. trialcourtRow(row) {
  603. console.log(row, "开庭审理");
  604. this.showtrialincourt = true;
  605. this.form = row;
  606. this.getInfo(row);
  607. },
  608. canceltrialincourt() {
  609. this.showtrialincourt = false;
  610. },
  611. // 生成裁决书
  612. generateawardRow(row) {
  613. console.log(row, "生成裁决书");
  614. this.$modal
  615. .confirm("确定生成裁决书吗?")
  616. .then(function () {
  617. return document({ id: row.id });
  618. })
  619. .then((res) => {
  620. if (res.code == 200) {
  621. this.getcaseApply(this.queryParams);
  622. this.$modal.msgSuccess("裁决书生成成功");
  623. }
  624. })
  625. .catch(() => {});
  626. },
  627. // 归档
  628. fileRow(row) {
  629. console.log(row, "归档");
  630. },
  631. // 查找主体信息数据
  632. getInfo(row) {
  633. const id = row.id;
  634. selectCaseApply({ id }).then((res) => {
  635. // this.visible = true;
  636. // this.formData = res.data;
  637. this.adjudicatename = {
  638. applicantName: res.data.applicantName,
  639. respondentName: res.data.respondentName,
  640. feePayable: res.data.feePayable,
  641. hearDate: res.data.hearDate,
  642. arbitratorName: res.data.arbitratorName
  643. };
  644. this.initpaymentArr = [];
  645. this.initpaymentArr1 = [];
  646. res.data.caseAffiliates.forEach((item) => {
  647. if (item.identityType == 1) {
  648. this.initpaymentArr.push(item);
  649. } else {
  650. this.initpaymentArr1.push(item);
  651. }
  652. });
  653. this.caseAttachList = res.data.caseAttachList
  654. });
  655. },
  656. // 删除
  657. deleteRow(row) {
  658. // const id = row.id;
  659. this.$modal
  660. .confirm("是否确认删除?")
  661. .then(function () {
  662. return removeCaseApply({ id: row.id });
  663. })
  664. .then((res) => {
  665. this.getcaseApply(this.queryParams);
  666. this.$modal.msgSuccess("删除成功");
  667. })
  668. .catch(() => {});
  669. },
  670. },
  671. };
  672. </script>
  673. <style lang="scss" scoped>
  674. #formContainer {
  675. }
  676. </style>