应用层PC端前端服务

listofAwards.vue 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  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 v-model="queryParams.caseStatus" placeholder="请选择案件状态" clearable
  9. @keyup.enter.native="handleQuery">
  10. <el-option v-for="dict in dict.type.case_status" :key="dict.value" :label="dict.label"
  11. :value="dict.value"></el-option>
  12. </el-select>
  13. </el-form-item>
  14. <!-- <el-form-item label="开庭日期" prop="hearDate">
  15. <el-date-picker v-model="queryParams.hearDate" type="daterange" range-separator="至" start-placeholder="开始日期"
  16. end-placeholder="结束日期">
  17. </el-date-picker>
  18. </el-form-item> -->
  19. <el-form-item>
  20. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  21. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  22. </el-form-item>
  23. </el-form>
  24. <el-table v-loading="loading" :data="dataList" style="width: 100%">
  25. <el-table-column label="序号" type="index" align="center">
  26. <template slot-scope="scope">
  27. <span>{{
  28. (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
  29. }}</span>
  30. </template>
  31. </el-table-column>
  32. <el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
  33. <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" />
  34. <el-table-column label="开庭日期" align="center" prop="hearDate" :show-overflow-tooltip="true" />
  35. <!-- 缴费人 -->
  36. <!-- <el-table-column label="案件状态" align="center" prop="caseStatusName" /> -->
  37. <el-table-column label="案件状态" align="center" prop="caseStatusName">
  38. <template slot-scope="scope">
  39. <el-tag type="success">{{ scope.row.caseStatusName }}</el-tag>
  40. </template>
  41. </el-table-column>
  42. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  43. <template slot-scope="scope">
  44. <el-button size="mini" type="text" icon="el-icon-reading" v-if="scope.row.filearbitraUrl && scope.row.filearbitraUrl !== ''" @click="showModel(scope.row, 0)">查看裁决书</el-button>
  45. <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus == 11 && checkPermi(['awardManagement:list:check'])" @click="showModel(scope.row, 1)"
  46. >核查</el-button>
  47. <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus == 12 && checkPermi(['awardManagement:list:confirmaward'])" @click="showModel(scope.row, 2)"
  48. >确认裁决书</el-button>
  49. <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus == 13 && checkPermi(['awardManagement:list:sign'])" @click="showModel(scope.row, 3)"
  50. >签名</el-button>
  51. <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus == 14 && checkPermi(['awardManagement:list:signprint'])" @click="showaffixModel(scope.row, 4)"
  52. >用印申请</el-button>
  53. <!-- v-if="scope.row.caseStatus > 15" -->
  54. <el-button size="mini" type="text" icon="el-icon-truck" v-if="scope.row.caseStatus > 15 && checkPermi(['delivery:list:detail'])" @click="showDeliveryModel(scope.row, 4)">快递信息</el-button>
  55. <!-- v-if="scope.row.caseStatus == 15" 送达裁决书 -->
  56. <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus == 15 && checkPermi(['awardManagement:list:sendaward'])" @click="showMailaward(scope.row)"
  57. >送达裁决书</el-button>
  58. <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus == 16 && checkPermi(['awardManagement:list:file'])" @click="showCasefilingModel(scope.row, 6)"
  59. >案件归档</el-button>
  60. </template>
  61. </el-table-column>
  62. </el-table>
  63. <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
  64. @pagination="getList(queryParams)" />
  65. <!-- 弹窗 -->
  66. <paymentdetailsDialog :openDialog="openDialog" :detailform="detailform" :title="title" :flag="flag"
  67. @cancelpaymentdetails="cancelpaymentdetails" @updataList="updataList"></paymentdetailsDialog>
  68. <!-- 送达裁决书页面 -->
  69. <mailawardDialog
  70. :openMailawardDialog="openMailawardDialog"
  71. @closeMailaward="closeMailaward"
  72. @updataList="updataList"
  73. :mailawardata="mailawardata"
  74. ></mailawardDialog>
  75. <!-- 快递信息页面 -->
  76. <expressDeliveryDialog
  77. :showDelivery="showDelivery"
  78. :deliveryDataArr="deliveryDataArr"
  79. @closeDeliveryModel="closeDeliveryModel"
  80. :flagLoading="flagLoading"
  81. ></expressDeliveryDialog>
  82. </div>
  83. </template>
  84. <script>
  85. import {
  86. caseApplicationList,
  87. caseApplicationDetail,
  88. adjudicationLogistics,
  89. adjudicationCaseFile,
  90. adjudicationStamp,
  91. selectSignUrl,
  92. selectSealUrl
  93. } from "@/api/awardManagement/awardManagement";
  94. import paymentdetailsDialog from "./components/paymentdetailsDialog.vue";
  95. import mailawardDialog from './components/MailawardDialog.vue';
  96. import expressDeliveryDialog from './components/expressDeliveryDialog.vue';
  97. export default {
  98. name: "paymentList",
  99. dicts: ["case_status"],
  100. components: { paymentdetailsDialog, mailawardDialog, expressDeliveryDialog },
  101. data() {
  102. return {
  103. queryParams: {
  104. pageNum: 1,
  105. pageSize: 10,
  106. },
  107. // 遮罩层
  108. loading: false,
  109. // 总条数
  110. total: 0,
  111. // 表格数据
  112. list: [],
  113. // 弹出层标题
  114. title: "",
  115. payTitle: "",
  116. // 是否显示弹出层
  117. open: false,
  118. openPay: false,
  119. // 弹出层内容
  120. form: {},
  121. // 校验表单
  122. rules: {},
  123. dataList: [],
  124. detailform: {}, //缴费详情数据
  125. openDialog: false, //缴费详情数据弹框
  126. flag: null,
  127. openMailawardDialog: false, //送达裁决书页面
  128. mailawardata: {}, //裁决书送达界面数据
  129. showDelivery: false, //快递信息弹框
  130. deliveryDataArr: [],//快递信息数据
  131. flagLoading: true,
  132. };
  133. },
  134. created() {
  135. // 裁决书列表不显示 生成裁决书
  136. // this.queryParams.caseStatusList = [10, 11, 12, 13, 14, 15, 16]
  137. this.queryParams.caseStatusList = [11, 12, 13, 14, 15, 16]
  138. this.getList(this.queryParams);
  139. },
  140. methods: {
  141. updataList() {
  142. this.getList(this.queryParams);
  143. },
  144. /** 搜索按钮操作 */
  145. handleQuery() {
  146. this.queryParams.pageNum = 1;
  147. this.getList(this.queryParams);
  148. },
  149. /** 重置按钮操作 */
  150. resetQuery() {
  151. this.resetForm("queryForm");
  152. this.handleQuery();
  153. },
  154. // 查询列表数据
  155. getList(parms) {
  156. this.loading = true;
  157. caseApplicationList(parms).then((response) => {
  158. this.dataList = response.rows;
  159. this.total = response.total;
  160. this.loading = false;
  161. });
  162. },
  163. // model框显示
  164. showModel(row, type) {
  165. switch (type) {
  166. case 0:
  167. let url = row.filearbitraUrl;
  168. window.open(url)
  169. break;
  170. case 1:
  171. this.getDetail({ id: row.id });
  172. this.openDialog = true;
  173. this.title = "核验裁决书";
  174. this.flag = 1;
  175. break;
  176. case 2:
  177. this.getDetail({ id: row.id });
  178. this.openDialog = true;
  179. this.title = "审核裁决书";
  180. this.flag = 2;
  181. break;
  182. case 3:
  183. // this.title = "裁决书签名";
  184. // this.flag = 3;
  185. selectSignUrl({ id: row.id }).then(res => {
  186. let url = res.data.signUrl;
  187. window.open(url)
  188. })
  189. break;
  190. default:
  191. break;
  192. }
  193. },
  194. // 关闭弹窗
  195. cancelpaymentdetails() {
  196. this.openDialog = false;
  197. },
  198. // 用印申请
  199. showaffixModel(row) {
  200. this.$modal.confirm('是否进行用印申请?')
  201. .then(function () {
  202. // return adjudicationStamp({ id: row.id });
  203. selectSealUrl({ id: row.id }).then(res => {
  204. let url = res.data.sealUrl;
  205. window.open(url)
  206. })
  207. })
  208. // .then(() => {
  209. // this.getList(this.queryParams);
  210. // this.$modal.msgSuccess("用印成功!");
  211. // })
  212. .catch(function () {
  213. });
  214. },
  215. // 快递信息弹框
  216. showDeliveryModel(row) {
  217. console.log(row, '快递');
  218. this.showDelivery = true
  219. this.getadjudicationLogistics({ id: row.id })
  220. },
  221. closeDeliveryModel() {
  222. this.showDelivery = false
  223. },
  224. // 查询物流信息
  225. getadjudicationLogistics(val) {
  226. this.flagLoading = true;
  227. adjudicationLogistics(val).then((res) => {
  228. this.deliveryDataArr = res.data
  229. this.flagLoading = false
  230. })
  231. },
  232. // 案件归档
  233. showCasefilingModel(row) {
  234. this.$modal.confirm('是否确认立即进行案件扫描?').then(
  235. function () {
  236. return adjudicationCaseFile({ id: row.id })
  237. }
  238. ).then(() => {
  239. this.getList(this.queryParams);
  240. this.$modal.msgSuccess("归档成功!");
  241. }).catch(function () { })
  242. },
  243. // 送达裁决书弹框
  244. showMailaward(row) {
  245. this.mailawardata = row;
  246. this.openMailawardDialog = true
  247. },
  248. // 关闭送达裁决书弹框
  249. closeMailaward(row) {
  250. this.openMailawardDialog = false
  251. },
  252. /** 查询详情 */
  253. getDetail(parms) {
  254. caseApplicationDetail(parms).then((res) => {
  255. this.detailform = res.data;
  256. });
  257. },
  258. },
  259. };
  260. </script>
  261. <style lang="scss" scoped></style>