应用层PC端前端服务

caseList.vue 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677
  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="arbitratMethod"
  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-check"
  133. @click="onsubmitRow(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-zoom-in"
  141. @click="detailRow(scope.row)"
  142. v-hasPermi="['monitor:online:forceLogout']"
  143. >详情</el-button
  144. >
  145. <el-button
  146. size="mini"
  147. type="text"
  148. icon="el-icon-edit"
  149. @click="editRow(scope.row)"
  150. v-if="scope.row.caseStatus == 0"
  151. v-hasPermi="['monitor:online:forceLogout']"
  152. >修改</el-button
  153. >
  154. <el-button
  155. size="mini"
  156. type="text"
  157. icon="el-icon-edit"
  158. @click="onsubmitRow(scope.row)"
  159. v-if="scope.row.caseStatus == 0"
  160. v-hasPermi="['monitor:online:forceLogout']"
  161. >提交</el-button
  162. >
  163. <el-button
  164. size="mini"
  165. type="text"
  166. icon="el-icon-delete"
  167. @click="deleteRow(scope.row)"
  168. v-if="scope.row.caseStatus == 0"
  169. v-hasPermi="['monitor:online:forceLogout']"
  170. >删除</el-button
  171. >
  172. <el-button
  173. size="mini"
  174. type="text"
  175. icon="el-icon-view"
  176. @click="filingreviewRow(scope.row)"
  177. v-if="scope.row.caseStatus == 1"
  178. v-hasPermi="['monitor:online:forceLogout']"
  179. >立案审查</el-button
  180. >
  181. <el-popconfirm title="是否进行缴费" @confirm="payStatus(scope.row)">
  182. <el-button
  183. size="mini"
  184. type="text"
  185. slot="reference"
  186. icon="el-icon-tickets"
  187. v-if="scope.row.caseStatus == 2"
  188. v-hasPermi="['monitor:online:forceLogout']"
  189. >缴费</el-button
  190. >
  191. </el-popconfirm>
  192. <!-- <el-button
  193. size="mini"
  194. type="text"
  195. icon="el-icon-data-analysis"
  196. @click="formationcourtRow(scope.row)"
  197. v-hasPermi="['monitor:online:forceLogout']"
  198. >组庭</el-button
  199. > -->
  200. <el-button
  201. size="mini"
  202. type="text"
  203. icon="el-icon-s-check"
  204. @click="courtconfirmationRow(scope.row)"
  205. v-if="scope.row.caseStatus == 6"
  206. v-hasPermi="['monitor:online:forceLogout']"
  207. >组庭确认</el-button
  208. >
  209. <el-button
  210. size="mini"
  211. type="text"
  212. icon="el-icon-check"
  213. @click="courtreviewRow(scope.row)"
  214. v-if="scope.row.caseStatus == 5"
  215. v-hasPermi="['monitor:online:forceLogout']"
  216. >组庭审核</el-button
  217. >
  218. <el-button
  219. size="mini"
  220. type="text"
  221. icon="el-icon-sort"
  222. @click="choosetrialmethodRow(scope.row)"
  223. v-if="scope.row.caseStatus == 7"
  224. v-hasPermi="['monitor:online:forceLogout']"
  225. >审核仲裁方式</el-button
  226. >
  227. <el-button
  228. size="mini"
  229. type="text"
  230. icon="el-icon-edit-outline"
  231. @click="adjudicaterecordRow(scope.row)"
  232. v-if="scope.row.caseStatus == 9"
  233. v-hasPermi="['monitor:online:forceLogout']"
  234. >书面审理</el-button
  235. >
  236. <el-button
  237. size="mini"
  238. type="text"
  239. icon="el-icon-service"
  240. @click="trialcourtRow(scope.row)"
  241. v-if="scope.row.caseStatus == 8"
  242. v-hasPermi="['monitor:online:forceLogout']"
  243. >开庭审理</el-button
  244. >
  245. <el-button
  246. size="mini"
  247. slot="reference"
  248. type="text"
  249. icon="el-icon-document"
  250. @click="generateawardRow(scope.row)"
  251. v-if="scope.row.caseStatus == 10"
  252. v-hasPermi="['monitor:online:forceLogout']"
  253. >生成裁决书</el-button
  254. >
  255. <el-button
  256. size="mini"
  257. type="text"
  258. icon="el-icon-receiving"
  259. @click="fileRow(scope.row)"
  260. v-if="scope.row.caseStatus == 16"
  261. v-hasPermi="['monitor:online:forceLogout']"
  262. >归档</el-button
  263. >
  264. </template>
  265. </el-table-column>
  266. </el-table>
  267. <pagination
  268. v-show="total > 0"
  269. :total="total"
  270. :page.sync="queryParams.pageNum"
  271. :limit.sync="queryParams.pageSize"
  272. @pagination="getcaseApply(queryParams)"
  273. />
  274. <!-- 立案申请弹框 -->
  275. <caseentryDialog
  276. :visible="visible"
  277. @cancel="cancel"
  278. :form="form"
  279. :queryParams="queryParams"
  280. :dialogtitle="dialogtitle"
  281. :getcaseApply="getcaseApply"
  282. :flag="flag"
  283. :initpaymentArr="initpaymentArr"
  284. :initpaymentArr1="initpaymentArr1"
  285. ></caseentryDialog>
  286. <!-- 批量申请弹框 openbatch-->
  287. <batchDialog
  288. :openbatch="openbatch"
  289. :queryParams="queryParams"
  290. @cancelBatch="cancelBatch"
  291. :getcaseApply="getcaseApply"
  292. ></batchDialog>
  293. <!-- 立案审查页面 -->
  294. <filingreviewDialog
  295. :showfilingreview="showfilingreview"
  296. :filingreviewdata="filingreviewdata"
  297. :queryParams="queryParams"
  298. @getcaseApply="getcaseApply"
  299. @cancelFilingreview="cancelFilingreview"
  300. ></filingreviewDialog>
  301. <!-- 组庭页面---改为组庭审核 -->
  302. <formateCourtDialog
  303. :showformateCourt="showformateCourt"
  304. @cancelcourtDialog="cancelcourtDialog"
  305. :queryParams="queryParams"
  306. :formateCourtData="formateCourtData"
  307. @getcaseApply="getcaseApply"
  308. ></formateCourtDialog>
  309. <!-- 组庭审核--改组庭确认 -->
  310. <courtReviewDialog
  311. :showcourtReview="showcourtReview"
  312. :form="form"
  313. :queryParams="queryParams"
  314. @cancelcourtReview="cancelcourtReview"
  315. @getcaseApply="getcaseApply"
  316. ></courtReviewDialog>
  317. <!-- 审核仲裁方式 -->
  318. <choosetrialmethodDaiog
  319. :showchoosetrialmethod="showchoosetrialmethod"
  320. :choosetrialmethodata="choosetrialmethodata"
  321. :queryParams="queryParams"
  322. @getcaseApply="getcaseApply"
  323. @cancelshowchoosetrialMethod="cancelshowchoosetrialMethod"
  324. ></choosetrialmethodDaiog>
  325. <!-- 书面审理 -->
  326. <adjudicaterecordDialog
  327. :showadjudicaterecord="showadjudicaterecord"
  328. :form="form"
  329. :adjudicatename="adjudicatename"
  330. :queryParams="queryParams"
  331. @canceladjudicaterecord="canceladjudicaterecord"
  332. @getcaseApply="getcaseApply"
  333. ></adjudicaterecordDialog>
  334. <!-- 开庭审理 -->
  335. <trialincourtDialog
  336. :showtrialincourt="showtrialincourt"
  337. :adjudicatename="adjudicatename"
  338. :form="form"
  339. :queryParams="queryParams"
  340. @getcaseApply="getcaseApply"
  341. @canceltrialincourt="canceltrialincourt"
  342. ></trialincourtDialog>
  343. <!-- 缴费 -->
  344. <payDialog
  345. :openPay="openPay"
  346. :payTitle="payTitle"
  347. :form="form"
  348. :payForm="payForm"
  349. @paycancelRow="paycancelRow"
  350. ></payDialog>
  351. </div>
  352. </template>
  353. <script>
  354. import caseentryDialog from "./components/caseentryDialog";
  355. import batchDialog from "./components/batchDialog";
  356. import formateCourtDialog from "./components/formateCourtDialog.vue";
  357. import courtReviewDialog from "./components/courtReviewDialog.vue";
  358. import choosetrialmethodDaiog from "./components/choosetrialmethodDaiog.vue";
  359. import adjudicaterecordDialog from "./components/adjudicaterecordDialog.vue";
  360. import trialincourtDialog from "./components/trialincourtDialog.vue";
  361. import payDialog from "./components/payDialog.vue";
  362. import filingreviewDialog from "./components/filingreviewDialog.vue";
  363. import { caseApplicationDetail } from "@/api/pay/pay";
  364. import {
  365. caseApply,
  366. removeCaseApply,
  367. submitCaseApply,
  368. selectCaseApply,
  369. } from "@/api/caseAccess/caseEntry";
  370. export default {
  371. name: "caseList",
  372. dicts: ["case_status"],
  373. components: {
  374. caseentryDialog,
  375. batchDialog,
  376. formateCourtDialog,
  377. courtReviewDialog,
  378. choosetrialmethodDaiog,
  379. adjudicaterecordDialog,
  380. trialincourtDialog,
  381. payDialog,
  382. filingreviewDialog,
  383. },
  384. data() {
  385. return {
  386. // 遮罩层
  387. loading: true,
  388. // 总条数
  389. total: 0,
  390. isapply: "申请人:",
  391. // 表格数据
  392. dataList: [],
  393. // 查询参数
  394. queryParams: {
  395. caseNum: undefined,
  396. caseStatusList: [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16],
  397. hearDate: "",
  398. caseStatus: null,
  399. pageNum: 1,
  400. pageSize: 10,
  401. },
  402. dialogtitle: "", //弹框标题
  403. visible: false, //申请弹框控制
  404. form: {},
  405. starttime: "", //开始时间
  406. endtime: "", //结束时间
  407. formData: {},
  408. flag: "-1",
  409. initpaymentArr: [],
  410. initpaymentArr1: [],
  411. showfilingreview: false, //立案申查弹框控制
  412. filingreviewdata: {}, //立案审查传输数据
  413. openbatch: false, // 批量申请弹框
  414. formateCourtData: {}, //组庭
  415. showformateCourt: false, //组庭界面显示
  416. showcourtReview: false, //组庭审核页面
  417. showchoosetrialmethod: false, //选择仲裁方式页面
  418. choosetrialmethodata: {},
  419. showadjudicaterecord: false, //书面审理弹框
  420. adjudicatename: {}, //书面仲裁(被)申请人姓名
  421. showtrialincourt: false, //开庭审理
  422. openPay: false, //缴费弹框
  423. payTitle: "",
  424. payForm: {},
  425. };
  426. },
  427. created() {
  428. this.getcaseApply(this.queryParams);
  429. },
  430. methods: {
  431. cancel() {
  432. this.visible = false;
  433. },
  434. cancelBatch() {
  435. this.openbatch = false;
  436. },
  437. /** 查询列表 */
  438. getcaseApply(val) {
  439. this.loading = true;
  440. caseApply(val).then((response) => {
  441. this.dataList = response.rows;
  442. this.dataList.forEach((item) => {
  443. item.arbitratMethod =
  444. item.arbitratMethod == 1 ? "视频仲裁" : "书面仲载";
  445. });
  446. this.total = response.total;
  447. this.loading = false;
  448. });
  449. },
  450. /** 搜索按钮操作 */
  451. handleQuery() {
  452. this.queryParams.caseStatusList = [];
  453. this.queryParams.pageNum = 1;
  454. this.getcaseApply(this.queryParams);
  455. },
  456. /** 重置按钮操作 */
  457. resetQuery() {
  458. this.resetForm("queryForm");
  459. (this.queryParams.caseStatusList = [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16]),
  460. this.getcaseApply(this.queryParams);
  461. },
  462. // 案件录入
  463. filingApplication() {
  464. this.form = {};
  465. this.paymentArr = [
  466. {
  467. identityType: 1,
  468. name: "",
  469. identityNum: "",
  470. contactTelphone: "",
  471. workAddress: "",
  472. workTelphone: "",
  473. contactAddress: "",
  474. nameAgent: "",
  475. contactTelphoneAgent: "",
  476. contactAddressAgent: "",
  477. },
  478. ];
  479. this.paymentArr1 = [
  480. {
  481. identityType: 2,
  482. name: "",
  483. identityNum: "",
  484. contactTelphone: "",
  485. workAddress: "",
  486. workTelphone: "",
  487. contactAddress: "",
  488. nameAgent: "",
  489. contactTelphoneAgent: "",
  490. contactAddressAgent: "",
  491. },
  492. ];
  493. this.visible = true;
  494. this.dialogtitle = "立案申请";
  495. this.flag = "2";
  496. },
  497. // 批量批量录入
  498. batchApplication() {
  499. this.openbatch = true;
  500. },
  501. // 详情
  502. detailRow(row) {
  503. this.flag = "0";
  504. this.form = row;
  505. this.visible = true;
  506. this.dialogtitle = "立案详情";
  507. this.getInfo(row);
  508. },
  509. // 修改
  510. editRow(row) {
  511. this.flag = "1";
  512. this.form = row;
  513. this.visible = true;
  514. this.dialogtitle = "立案修改";
  515. this.getInfo(row);
  516. },
  517. // 列表提交立案
  518. onsubmitRow(row) {
  519. this.$modal
  520. .confirm("是否提交立案申请?")
  521. .then(function () {
  522. return submitCaseApply({ id: row.id });
  523. })
  524. .then(() => {
  525. this.getcaseApply(this.queryParams);
  526. this.$modal.msgSuccess("立案申请成功");
  527. })
  528. .catch(() => {});
  529. },
  530. // 立案审查
  531. filingreviewRow(row) {
  532. console.log(row, "立案审查");
  533. this.showfilingreview = true;
  534. this.filingreviewdata = row;
  535. },
  536. cancelFilingreview() {
  537. this.showfilingreview = false;
  538. },
  539. // 取消缴费
  540. paycancelRow(row) {
  541. this.openPay = false;
  542. },
  543. payStatus(val) {
  544. this.getDetail({ id: val.id });
  545. this.openPay = true;
  546. this.payTitle = "缴费";
  547. },
  548. getDetail(parms) {
  549. caseApplicationDetail(parms).then((res) => {
  550. if (res.data.caseStatus == 1) {
  551. res.data.caseStatusName = "待缴费";
  552. }
  553. this.form = res.data;
  554. this.payForm.feePayable = res.data.feePayable;
  555. this.payForm.caseId = res.data.id;
  556. });
  557. },
  558. // 组庭
  559. // formationcourtRow(row) {
  560. // console.log(row, "组庭");
  561. // this.formateCourtData = row;
  562. // this.showformateCourt = true;
  563. // },
  564. // 关闭组庭页面
  565. cancelcourtDialog() {
  566. this.showformateCourt = false;
  567. },
  568. // 组庭确认
  569. courtconfirmationRow(row) {
  570. // console.log(row, "组庭确认");
  571. this.showcourtReview = true;
  572. this.form = row;
  573. },
  574. // 组庭审核
  575. courtreviewRow(row) {
  576. // console.log(row, "组庭审核");
  577. this.formateCourtData = row;
  578. this.showformateCourt = true;
  579. },
  580. cancelcourtReview() {
  581. this.showcourtReview = false;
  582. },
  583. // 选择开庭方式改为审核仲裁方式
  584. choosetrialmethodRow(row) {
  585. // console.log(row, "审核仲裁方式");
  586. this.choosetrialmethodata = row;
  587. this.showchoosetrialmethod = true;
  588. },
  589. // 关闭审核仲裁方式
  590. cancelshowchoosetrialMethod() {
  591. this.showchoosetrialmethod = false;
  592. },
  593. // 书面审理
  594. adjudicaterecordRow(row) {
  595. // console.log(row, "书面审理");
  596. this.showadjudicaterecord = true;
  597. this.form = row;
  598. this.getInfo(row);
  599. },
  600. canceladjudicaterecord() {
  601. this.showadjudicaterecord = false;
  602. },
  603. // 开庭审理
  604. trialcourtRow(row) {
  605. console.log(row, "开庭审理");
  606. this.showtrialincourt = true;
  607. this.form = row;
  608. this.getInfo(row);
  609. },
  610. canceltrialincourt() {
  611. this.showtrialincourt = false;
  612. },
  613. // 生成裁决书
  614. generateawardRow(row) {
  615. console.log(row, "生成裁决书");
  616. this.$modal
  617. .confirm("确定生成裁决书吗?")
  618. .then(function () {})
  619. .then((res) => {})
  620. .catch(() => {});
  621. },
  622. // 归档
  623. fileRow(row) {
  624. console.log(row, "归档");
  625. },
  626. // 查找主体信息数据
  627. getInfo(row) {
  628. const id = row.id;
  629. selectCaseApply({ id }).then((res) => {
  630. // this.visible = true;
  631. // this.formData = res.data;
  632. this.adjudicatename = {
  633. applicantName: res.data.applicantName,
  634. respondentName: res.data.respondentName,
  635. feePayable: res.data.feePayable,
  636. hearDate: res.data.hearDate,
  637. };
  638. this.initpaymentArr = [];
  639. this.initpaymentArr1 = [];
  640. res.data.caseAffiliates.forEach((item) => {
  641. if (item.identityType == 1) {
  642. this.initpaymentArr.push(item);
  643. } else {
  644. this.initpaymentArr1.push(item);
  645. }
  646. });
  647. });
  648. },
  649. // 删除
  650. deleteRow(row) {
  651. // const id = row.id;
  652. this.$modal
  653. .confirm("是否确认删除?")
  654. .then(function () {
  655. return removeCaseApply({ id: row.id });
  656. })
  657. .then((res) => {
  658. this.getcaseApply(this.queryParams);
  659. this.$modal.msgSuccess("删除成功");
  660. })
  661. .catch(() => {});
  662. },
  663. },
  664. };
  665. </script>
  666. <style lang="scss" scoped>
  667. #formContainer {
  668. }
  669. </style>