移动端
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

458 satır
13 KiB

  1. <template>
  2. <div class="app-container">
  3. <van-nav-bar title="案件" fixed placeholder />
  4. <div style="display: flex;padding: 0 3% 0.2rem;">
  5. <form action="#" style="flex: 0.75;">
  6. <van-search
  7. v-model="queryParams.caseNum"
  8. placeholder="请输入案件编号"
  9. :search="handleQuery"
  10. >
  11. </van-search>
  12. </form>
  13. <van-button type="info" @click="sheetShow = true" style="flex: 0.25;border-radius: 30PX;height: 0.95rem;">
  14. <van-icon name="../../../static/images/lawEnforcement/icon/icon_ssbt.png" size="17" style="vertical-align: middle;margin-right: 5px;" />筛选
  15. </van-button>
  16. </div>
  17. <van-row style="padding: 0.2rem 3%;" v-show="showSxtj">
  18. <van-col :span="20"><p style="line-height: 20px;font-size: 14px;color: #878787;">筛选条件:{{showType}} {{showCaseStatus}} {{showCaseProgress}}</p></van-col>
  19. <van-col :span="4" align="right"><van-icon name="close" size="20" @click="resetQuery"/></van-col>
  20. </van-row>
  21. <van-action-sheet v-model="sheetShow" title="筛选" duration="0.2" close-icon="arrow-down">
  22. <div class="sheetContent">
  23. <van-field
  24. readonly
  25. clickable
  26. name="picker"
  27. v-model="showType"
  28. label="当事人类型"
  29. placeholder="点击选择当事人类型"
  30. @click="showDsrlx = true"
  31. />
  32. <van-popup v-model="showDsrlx" position="bottom">
  33. <van-picker
  34. show-toolbar
  35. :columns="typeColumns"
  36. @confirm="onConfirmDsrlx"
  37. @cancel="showDsrlx = false"
  38. />
  39. </van-popup>
  40. <van-field
  41. readonly
  42. clickable
  43. name="picker"
  44. v-model="showCaseStatus"
  45. label="案件状态"
  46. placeholder="点击选择案件状态"
  47. @click="showAjzt = true"
  48. />
  49. <van-popup v-model="showAjzt" position="bottom">
  50. <van-picker
  51. show-toolbar
  52. :columns="caseStatusColumns"
  53. @confirm="onConfirmAjzt"
  54. @cancel="showAjzt = false"
  55. />
  56. </van-popup>
  57. <van-field
  58. readonly
  59. clickable
  60. name="picker"
  61. v-model="showCaseProgress"
  62. label="案件执法进度"
  63. placeholder="点击选择案件执法进度"
  64. @click="showAjzfjd = true"
  65. />
  66. <van-popup v-model="showAjzfjd" position="bottom">
  67. <van-picker
  68. show-toolbar
  69. :columns="caseProgressColumns"
  70. @confirm="onConfirmAjzfjd"
  71. @cancel="showAjzfjd = false"
  72. />
  73. </van-popup>
  74. <!-- <p class="sheetTitle">当事人类型</p>-->
  75. <!-- <van-row>-->
  76. <!-- <van-col :span="6"><p class="active">全部</p></van-col>-->
  77. <!-- <van-col :span="12"><p>个人/个体工商户</p></van-col>-->
  78. <!-- <van-col :span="6"><p>企业</p></van-col>-->
  79. <!-- </van-row>-->
  80. <!-- <p class="sheetTitle">案件状态</p>-->
  81. <!-- <van-row>-->
  82. <!-- <van-col :span="6"><p class="active">全部</p></van-col>-->
  83. <!-- <van-col :span="6"><p>进行中</p></van-col>-->
  84. <!-- <van-col :span="6"><p>结束</p></van-col>-->
  85. <!-- <van-col :span="6"><p>中断</p></van-col>-->
  86. <!-- </van-row>-->
  87. <!-- <p class="sheetTitle">案件执法进度</p>-->
  88. <!-- <van-row>-->
  89. <!-- <van-col :span="6"><p class="active">全部</p></van-col>-->
  90. <!-- <van-col :span="6"><p>登记</p></van-col>-->
  91. <!-- <van-col :span="6"><p>勘察</p></van-col>-->
  92. <!-- <van-col :span="6"><p>立案</p></van-col>-->
  93. <!-- </van-row>-->
  94. <!-- <van-row>-->
  95. <!-- <van-col :span="6"><p>取证</p></van-col>-->
  96. <!-- <van-col :span="6"><p>处理</p></van-col>-->
  97. <!-- <van-col :span="6"><p>裁决</p></van-col>-->
  98. <!-- <van-col :span="6"><p>执行</p></van-col>-->
  99. <!-- </van-row>-->
  100. <!-- <van-row>-->
  101. <!-- <van-col :span="6"><p>备案</p></van-col>-->
  102. <!-- <van-col :span="6"><p>结案</p></van-col>-->
  103. <!-- </van-row>-->
  104. </div>
  105. <van-row>
  106. <van-col :span="12" align="center"><van-button type="default" style="width: 90%;height: 1.2rem;border-radius: 4PX;" @click="resetQuery">重置</van-button></van-col>
  107. <van-col :span="12" align="center"><van-button type="info" style="width: 90%;height: 1.2rem;border-radius: 4PX;" @click="handleQuery">确定</van-button></van-col>
  108. </van-row>
  109. </van-action-sheet>
  110. <van-list
  111. v-model="loading"
  112. :finished="finished"
  113. finished-text="没有更多了"
  114. @load="getList"
  115. >
  116. <van-swipe-cell v-for="(item,index) in caseList" :key="index">
  117. <van-cell :title="item.caseName" :value="22222" center :to="{name:'caseDetail',query:{id:item.id,caseProgress:item.caseProgress}}">
  118. <template #icon>
  119. <van-icon name="../../../static/images/lawEnforcement/icon/icon_aj.png" size="30" color="#539FFD" style="margin-right: 10px;" />
  120. </template>
  121. <template #label>
  122. <p>{{item.caseNumPart1}}农{{item.caseNumPart2}}[{{item.caseNumPart3}}]{{item.caseNum}}号<i style="margin-right: 0.5rem;"></i>{{item.name}}</p>
  123. </template>
  124. <template #default>
  125. <p>{{item.caseStatus}}</p>
  126. <p style="color: #1D6FE9;">{{selectDictLabel(caseProgressOptions, item.caseProgress)}}</p>
  127. </template>
  128. </van-cell>
  129. </van-swipe-cell>
  130. </van-list>
  131. <law></law>
  132. </div>
  133. </template>
  134. <script>
  135. import { getTopDeptId , listCase } from "@/api/lawEnforcement/index";
  136. import law from "@/components/common/law_footer";
  137. export default {
  138. name: "index",
  139. components: {
  140. law
  141. },
  142. data() {
  143. return {
  144. value:'',
  145. radio:'',
  146. //是否显示加载
  147. loading: false,
  148. //是否滚动到底部
  149. finished: false,
  150. sheetShow: false,
  151. showDsrlx: false,
  152. showAjzt: false,
  153. showAjzfjd: false,
  154. showSxtj: false,
  155. // 查询参数
  156. queryParams: {
  157. // 分页
  158. pageNum: 1,
  159. pageSize: 10,
  160. // 查询排序
  161. orderByColumn: "id",
  162. isAsc: "desc",
  163. caseNum: null,
  164. type: null,
  165. caseStatus: null,
  166. caseProgress: null,
  167. },
  168. //新闻集合
  169. newList:[],
  170. // 案件登记表格数据
  171. caseList: [],
  172. caseStatusOptions:[],
  173. caseProgressOptions:[],
  174. typeOptions:[],
  175. typeColumns:[],
  176. caseStatusColumns:[],
  177. caseProgressColumns:[],
  178. showType : '',
  179. showCaseStatus : '',
  180. showCaseProgress : '',
  181. };
  182. },
  183. created() {
  184. this.getDicts("enforce_body_type").then(response => {
  185. this.typeOptions = response.data;
  186. for (var i = 0 ; i < response.data.length ; i++){
  187. this.typeColumns.push({text: response.data[i].dictLabel, value: response.data[i].dictValue})
  188. }
  189. });
  190. this.getDicts("case_status").then(response => {
  191. this.caseStatusOptions = response.data;
  192. for (var i = 0 ; i < response.data.length ; i++){
  193. this.caseStatusColumns.push({text: response.data[i].dictLabel, value: response.data[i].dictValue})
  194. }
  195. });
  196. this.getDicts("case_node").then(response => {
  197. this.caseProgressOptions = response.data;
  198. for (var i = 0 ; i < response.data.length ; i++){
  199. this.caseProgressColumns.push({text: response.data[i].dictLabel, value: response.data[i].dictValue})
  200. }
  201. });
  202. },
  203. methods: {
  204. getList(){
  205. this.loading = true;
  206. listCase(this.queryParams).then(response => {
  207. for (var i = 0; i < response.rows.length; i++) {
  208. response.rows[i].caseStatus = this.selectDictLabel(this.caseStatusOptions, response.rows[i].caseStatus);
  209. this.caseList.push(response.rows[i])
  210. }
  211. if(this.caseList.length >= response.total){
  212. this.finished = true;
  213. return;
  214. }
  215. this.queryParams.pageNum += 1 ;
  216. this.loading = false;
  217. });
  218. },
  219. getBanner(){
  220. this.loading = true;
  221. this.queryParams.number = 1 ;
  222. this.queryParams.pageSize = 5 ;
  223. newList(this.queryParams).then(response => {
  224. this.bannerList = response.rows;
  225. for (var i = 0; i < response.rows.length; i++) {
  226. var imgStrs = response.rows[i].content.match(/<IMG src=\"([^\"]*?)\">/gi)
  227. if (imgStrs != null && imgStrs != '') {
  228. this.bannerList[i].img = imgStrs[0].substr(10,(imgStrs[0].length-12));
  229. }
  230. }
  231. this.loading = false;
  232. });
  233. },
  234. goDetail(id){
  235. console.log(id)
  236. window.location = 'news/newDetail?id='+id;
  237. },
  238. onConfirmDsrlx(data){
  239. this.queryParams.type = data.value;
  240. this.showType = data.text;
  241. this.showDsrlx = false;
  242. },
  243. onConfirmAjzt(data){
  244. this.queryParams.caseStatus = data.value;
  245. this.showCaseStatus = data.text
  246. this.showAjzt = false;
  247. },
  248. onConfirmAjzfjd(data){
  249. this.queryParams.caseProgress = data.value;
  250. this.showCaseProgress = data.text
  251. this.showAjzfjd = false;
  252. },
  253. resetQuery(){
  254. this.queryParams = {
  255. // 分页
  256. pageNum: 1,
  257. pageSize: 10,
  258. // 查询排序
  259. orderByColumn: "id",
  260. isAsc: "desc",
  261. caseNum: null,
  262. type: null,
  263. caseStatus: null,
  264. caseProgress: null,
  265. };
  266. this.showType = '';
  267. this.showCaseStatus = '';
  268. this.showCaseProgress = '';
  269. this.showSxtj = false;
  270. this.getList()
  271. },
  272. /** 搜索按钮操作 */
  273. handleQuery() {
  274. if(this.showType != '' || this.showCaseStatus != '' || this.showCaseProgress != ''){
  275. this.showSxtj = true;
  276. }
  277. this.caseList = [];
  278. this.queryParams.pageNum = 1;
  279. this.getList();
  280. },
  281. },
  282. };
  283. </script>
  284. <style scoped lang="scss">
  285. @font-face {
  286. font-family: SourceHanSansCNBold;
  287. src: url("../../../assets/fonts/SourceHanSansCN-Bold.otf");
  288. }
  289. .app-container {
  290. padding: 0.2rem 3%;
  291. }
  292. /deep/ .van-action-sheet__content{
  293. padding-bottom: 0.5rem;
  294. }
  295. .sheetContent{
  296. padding: 10PX 1% 0;
  297. margin-bottom: 0.5rem;
  298. .sheetTitle{
  299. font-size: 0.42rem;
  300. background-color: transparent;
  301. width:auto;
  302. color: #333333;
  303. border:none;
  304. margin-bottom: 10PX;
  305. padding: 0 15px;
  306. }
  307. /deep/ .van-row{
  308. margin-bottom: 10PX;
  309. }
  310. /deep/ .van-col{
  311. text-align: center;
  312. padding: 0 15px;
  313. }
  314. .active{
  315. background-color: #1D6FE9;
  316. color: #FFFFFF;
  317. border: none;
  318. }
  319. p{
  320. font-size: 0.42rem;
  321. padding: 0.2rem 0;
  322. color: #666666;
  323. border-radius: 4PX;
  324. border: 1px solid #B4B0B0;
  325. }
  326. }
  327. /deep/ .van-action-sheet__header{
  328. border-bottom: 8PX solid #eeeeee;
  329. }
  330. /deep/.van-swipe-cell{
  331. margin-bottom: 0.2rem;
  332. border-radius: 0.2rem;
  333. overflow: hidden;
  334. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  335. }
  336. /deep/ .van-search__content{
  337. background-color: #ffffff;
  338. border-radius: 20PX;
  339. border: 1px solid #cccccc;
  340. margin-right: 2%;
  341. }
  342. /deep/ .van-search__action{
  343. background-color: #1D6FE9;
  344. border-radius: 20PX;
  345. text-align: center;
  346. color: #ffffff;
  347. }
  348. /deep/ .van-search{
  349. background-color: transparent;
  350. padding: 0;
  351. }
  352. .van-cell__title{
  353. color: #666666;
  354. }
  355. /deep/ .van-nav-bar--fixed{
  356. background: url("../../../../static/images/lawEnforcement/head_bg.png") 100%;
  357. }
  358. /deep/.van-cell__title{
  359. flex: 0.7;
  360. }
  361. /deep/.van-cell__title span{
  362. font-family: Arial;
  363. font-size: 0.4rem;
  364. font-weight: normal;
  365. }
  366. /deep/.van-cell__value{
  367. flex: 0.3;
  368. }
  369. /deep/ .van-nav-bar__title{
  370. display: flex;
  371. max-width: initial;
  372. color: #ffffff;
  373. p{
  374. line-height: 30Px;
  375. margin-left: 6Px;
  376. font-size: 21Px;
  377. color: #D60303;
  378. font-family: SourceHanSansCNBold;
  379. }
  380. }
  381. /deep/ .van-tabs__content{
  382. width: 96%;
  383. margin: 0 auto;
  384. }
  385. /deep/ van-tab__pane-wrapper{
  386. padding: 0 2%;
  387. }
  388. /deep/ .van-tab{
  389. border: none;
  390. color: #1D6FE9;
  391. }
  392. /deep/ .van-tab--active{
  393. border-radius: 30Px;
  394. box-shadow: 0px 5px 5px #ccc;
  395. background-color: #FE1313!important;
  396. }
  397. /deep/ .van-tabs--card>.van-tabs__wrap{
  398. height: 0.9rem;
  399. margin: 10Px 0;
  400. }
  401. /deep/ .van-tab__pane{
  402. background: #FFF;
  403. border-radius: 8Px;
  404. overflow: hidden;
  405. }
  406. /deep/ .van-tabs__nav--card{
  407. padding: 3Px 2%;
  408. border: none;
  409. border-radius: 1rem;
  410. height: 0.9rem;
  411. }
  412. .bannerTit{
  413. position: absolute;
  414. bottom: 10px;
  415. background: rgba(255,255,255,0.3);
  416. width: 100%;
  417. height: 0.8rem;
  418. line-height: 0.8rem;
  419. color: #fff;
  420. overflow: hidden;
  421. padding: 0 3%;
  422. font-size: 16Px;
  423. }
  424. .link{
  425. color: #000;
  426. }
  427. .my-swipe {
  428. border-radius: 8Px;
  429. }
  430. .my-swipe .van-swipe-item .van-image{
  431. width: 100%;
  432. }
  433. .van-grid-item p{
  434. margin-top: 10px;
  435. }
  436. .newTit{
  437. font-size: 0.45rem;
  438. margin: 0.4rem 0;
  439. font-family: Source Han Sans SC, Source Han Sans SC-Medium;
  440. font-weight: 500;
  441. text-align: left;
  442. color: #333333;
  443. }
  444. .newContent{
  445. display: -webkit-box;
  446. -webkit-box-orient: vertical;
  447. -webkit-line-clamp: 2;
  448. word-break: break-all;
  449. overflow: hidden;
  450. }
  451. .search-icon {
  452. line-height: inherit;
  453. margin-left: 10px;
  454. }
  455. </style>