Commit 3ab2d79f922af05b5633fab54ff8adef921dec90
1 parent
bad78422
m
Showing
22 changed files
with
370 additions
and
695 deletions
trash-activiti/src/main/java/com/trash/activiti/controller/TaskHistoryController.java
| @@ -33,14 +33,38 @@ public class TaskHistoryController extends BaseController { | @@ -33,14 +33,38 @@ public class TaskHistoryController extends BaseController { | ||
| 33 | public TableDataInfo getTasks() { | 33 | public TableDataInfo getTasks() { |
| 34 | PageDomain pageDomain = TableSupport.buildPageRequest(); | 34 | PageDomain pageDomain = TableSupport.buildPageRequest(); |
| 35 | Page<ActTaskDTO> hashMaps = actTaskService.selectRuntimeTaskHistoryDefinitionList(pageDomain); | 35 | Page<ActTaskDTO> hashMaps = actTaskService.selectRuntimeTaskHistoryDefinitionList(pageDomain); |
| 36 | - return getDataTable(hashMaps); | 36 | + |
| 37 | + List<ActTaskDTO> list = hashMaps.getResult(); | ||
| 38 | + | ||
| 39 | + TableDataInfo info = getDataTable(hashMaps); | ||
| 40 | + | ||
| 41 | + if(list.size() > pageDomain.getPageNum() * pageDomain.getPageSize()){ | ||
| 42 | + list = list.subList((pageDomain.getPageNum()-1), pageDomain.getPageNum()* pageDomain.getPageSize()); | ||
| 43 | + }else{ | ||
| 44 | + list = list.subList((pageDomain.getPageNum()-1), list.size()); | ||
| 45 | + } | ||
| 46 | + info.setRows(list); | ||
| 47 | + | ||
| 48 | + return info; | ||
| 37 | } | 49 | } |
| 38 | 50 | ||
| 39 | @GetMapping(value = "/listend") | 51 | @GetMapping(value = "/listend") |
| 40 | public TableDataInfo getEndTasks() { | 52 | public TableDataInfo getEndTasks() { |
| 41 | PageDomain pageDomain = TableSupport.buildPageRequest(); | 53 | PageDomain pageDomain = TableSupport.buildPageRequest(); |
| 42 | Page<ActTaskDTO> hashMaps = actTaskService.selectTaskEndHistoryDefinitionList(pageDomain); | 54 | Page<ActTaskDTO> hashMaps = actTaskService.selectTaskEndHistoryDefinitionList(pageDomain); |
| 43 | - return getDataTable(hashMaps); | 55 | + |
| 56 | + List<ActTaskDTO> list = hashMaps.getResult(); | ||
| 57 | + TableDataInfo info = getDataTable(hashMaps); | ||
| 58 | + | ||
| 59 | + if(list.size() > pageDomain.getPageNum() * pageDomain.getPageSize()){ | ||
| 60 | + list = list.subList((pageDomain.getPageNum()-1), pageDomain.getPageNum()* pageDomain.getPageSize()); | ||
| 61 | + }else{ | ||
| 62 | + list = list.subList((pageDomain.getPageNum()-1), list.size()); | ||
| 63 | + } | ||
| 64 | + info.setRows(list); | ||
| 65 | + | ||
| 66 | + | ||
| 67 | + return info; | ||
| 44 | } | 68 | } |
| 45 | 69 | ||
| 46 | 70 |
trash-activiti/src/main/java/com/trash/activiti/service/impl/ActTaskServiceImpl.java
| @@ -123,7 +123,7 @@ public class ActTaskServiceImpl implements IActTaskService { | @@ -123,7 +123,7 @@ public class ActTaskServiceImpl implements IActTaskService { | ||
| 123 | @Override | 123 | @Override |
| 124 | public Page<ActTaskDTO> selectTaskEndHistoryDefinitionList(PageDomain pageDomain) { | 124 | public Page<ActTaskDTO> selectTaskEndHistoryDefinitionList(PageDomain pageDomain) { |
| 125 | Page<ActTaskDTO> list = new Page<ActTaskDTO>(); | 125 | Page<ActTaskDTO> list = new Page<ActTaskDTO>(); |
| 126 | - | 126 | + |
| 127 | ProcessEngine pes = ProcessEngines.getDefaultProcessEngine(); | 127 | ProcessEngine pes = ProcessEngines.getDefaultProcessEngine(); |
| 128 | HistoryService historyService = pes.getHistoryService(); | 128 | HistoryService historyService = pes.getHistoryService(); |
| 129 | 129 | ||
| @@ -150,6 +150,11 @@ public class ActTaskServiceImpl implements IActTaskService { | @@ -150,6 +150,11 @@ public class ActTaskServiceImpl implements IActTaskService { | ||
| 150 | } | 150 | } |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | + list.setPageNum(pageDomain.getPageNum()); | ||
| 154 | + list.setPageSize(pageDomain.getPageSize()); | ||
| 155 | + | ||
| 156 | + list.setTotal(list.size()); | ||
| 157 | + | ||
| 153 | return list; | 158 | return list; |
| 154 | } | 159 | } |
| 155 | 160 | ||
| @@ -177,6 +182,11 @@ public class ActTaskServiceImpl implements IActTaskService { | @@ -177,6 +182,11 @@ public class ActTaskServiceImpl implements IActTaskService { | ||
| 177 | 182 | ||
| 178 | } | 183 | } |
| 179 | } | 184 | } |
| 185 | + | ||
| 186 | + list.setPageNum(pageDomain.getPageNum()); | ||
| 187 | + list.setPageSize(pageDomain.getPageSize()); | ||
| 188 | + | ||
| 189 | + list.setTotal(list.size()); | ||
| 180 | return list; | 190 | return list; |
| 181 | } | 191 | } |
| 182 | 192 |
trash-admin/src/main/resources/application.yml
| @@ -16,7 +16,7 @@ spring: | @@ -16,7 +16,7 @@ spring: | ||
| 16 | acks: all | 16 | acks: all |
| 17 | consumer: | 17 | consumer: |
| 18 | enable-auto-commit: true | 18 | enable-auto-commit: true |
| 19 | - group-id: trash | 19 | + group-id: trash123 |
| 20 | key-serializer: org.apache.kafka.common.serialization.StringSerializer | 20 | key-serializer: org.apache.kafka.common.serialization.StringSerializer |
| 21 | value-serializer: org.apache.kafka.common.serialization.StringSerializer | 21 | value-serializer: org.apache.kafka.common.serialization.StringSerializer |
| 22 | 22 |
trash-common/src/main/java/com/trash/common/core/page/PageDomain.java
| @@ -20,8 +20,21 @@ public class PageDomain | @@ -20,8 +20,21 @@ public class PageDomain | ||
| 20 | 20 | ||
| 21 | /** 排序的方向desc或者asc */ | 21 | /** 排序的方向desc或者asc */ |
| 22 | private String isAsc = "asc"; | 22 | private String isAsc = "asc"; |
| 23 | + | ||
| 24 | + /** 排序的方向desc或者asc */ | ||
| 25 | + private String his; | ||
| 26 | + | ||
| 27 | + | ||
| 28 | + | ||
| 29 | + public String getHis() { | ||
| 30 | + return his; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public void setHis(String his) { | ||
| 34 | + this.his = his; | ||
| 35 | + } | ||
| 23 | 36 | ||
| 24 | - public String getOrderBy() | 37 | + public String getOrderBy() |
| 25 | { | 38 | { |
| 26 | if (StringUtils.isEmpty(orderByColumn)) | 39 | if (StringUtils.isEmpty(orderByColumn)) |
| 27 | { | 40 | { |
trash-ui/src/layout/index5.vue renamed to trash-ui/src/layout/index66.vue
trash-ui/src/router/index.js
| @@ -245,16 +245,16 @@ export const constantRoutes = [ | @@ -245,16 +245,16 @@ export const constantRoutes = [ | ||
| 245 | meta: { title: 'taskindex' } | 245 | meta: { title: 'taskindex' } |
| 246 | } , | 246 | } , |
| 247 | { | 247 | { |
| 248 | - path: 'taskhistory', | 248 | + path: 'tasking', |
| 249 | component: (resolve) => require(['@/views/h5/taskhistory/index'], resolve), | 249 | component: (resolve) => require(['@/views/h5/taskhistory/index'], resolve), |
| 250 | - name: 'taskhistory', | ||
| 251 | - meta: { title: 'taskhistory' } | 250 | + name: 'tasking', |
| 251 | + meta: { title: 'tasking' } | ||
| 252 | }, | 252 | }, |
| 253 | { | 253 | { |
| 254 | path: 'taskend', | 254 | path: 'taskend', |
| 255 | component: (resolve) => require(['@/views/h5/taskhistory/end'], resolve), | 255 | component: (resolve) => require(['@/views/h5/taskhistory/end'], resolve), |
| 256 | - name: 'end', | ||
| 257 | - meta: { title: 'end' } | 256 | + name: 'taskend', |
| 257 | + meta: { title: 'taskend' } | ||
| 258 | }, | 258 | }, |
| 259 | 259 | ||
| 260 | { | 260 | { |
trash-ui/src/views/activiti/task/index.vue
| @@ -733,14 +733,12 @@ export default { | @@ -733,14 +733,12 @@ export default { | ||
| 733 | }); | 733 | }); |
| 734 | }); | 734 | }); |
| 735 | } else { | 735 | } else { |
| 736 | - updateThreestep(this.form).then(res => { | ||
| 737 | formDataSave(this.id, this.form.formData).then(response => { | 736 | formDataSave(this.id, this.form.formData).then(response => { |
| 738 | this.msgSuccess("审批成功"); | 737 | this.msgSuccess("审批成功"); |
| 739 | this.open2 = false; | 738 | this.open2 = false; |
| 740 | this.taskList = []; | 739 | this.taskList = []; |
| 741 | this.getList(); | 740 | this.getList(); |
| 742 | }); | 741 | }); |
| 743 | - }); | ||
| 744 | } | 742 | } |
| 745 | return; | 743 | return; |
| 746 | } | 744 | } |
trash-ui/src/views/business/dayWorkReport/index.vue
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | <el-col :span="6"> | 32 | <el-col :span="6"> |
| 33 | <el-form-item label="消纳场区属" > | 33 | <el-form-item label="消纳场区属" > |
| 34 | <el-select v-model="queryParams.subReason" placeholder="工地所属区域 " size="small"> | 34 | <el-select v-model="queryParams.subReason" placeholder="工地所属区域 " size="small"> |
| 35 | - <el-option v-for="item in areas" :label="item.name" :value="item.code" /> | 35 | + <el-option v-for="item in areas" :label="item.name" :value="item.name" /> |
| 36 | </el-select> | 36 | </el-select> |
| 37 | </el-form-item> | 37 | </el-form-item> |
| 38 | </el-col> | 38 | </el-col> |
| @@ -149,6 +149,10 @@ | @@ -149,6 +149,10 @@ | ||
| 149 | pageSize: 10, | 149 | pageSize: 10, |
| 150 | workStartTime:null, | 150 | workStartTime:null, |
| 151 | workEndTime:null, | 151 | workEndTime:null, |
| 152 | + name:null, | ||
| 153 | + earthsitesName:null, | ||
| 154 | + place:null, | ||
| 155 | + subReason:null, | ||
| 152 | }, | 156 | }, |
| 153 | // 表单参数 | 157 | // 表单参数 |
| 154 | form: { | 158 | form: { |
trash-ui/src/views/business/threestep/index.vue
| @@ -530,18 +530,15 @@ | @@ -530,18 +530,15 @@ | ||
| 530 | }, | 530 | }, |
| 531 | methods: { | 531 | methods: { |
| 532 | conractCheck(value){ | 532 | conractCheck(value){ |
| 533 | - | ||
| 534 | let item | 533 | let item |
| 535 | - for(let i in this.filterContract){ | ||
| 536 | - for(let i in this.filterContract){ | ||
| 537 | - if(this.filterContract[i].name == value){ | ||
| 538 | - item = this.filterContract[i]; | 534 | + for(let i in this.contractList){ |
| 535 | + if(this.contractList[i].contractNo == value){ | ||
| 536 | + item = this.contractList[i]; | ||
| 539 | break; | 537 | break; |
| 540 | } | 538 | } |
| 541 | - } | ||
| 542 | } | 539 | } |
| 543 | - | ||
| 544 | - | 540 | + |
| 541 | + | ||
| 545 | if(new Date(item.endTime).getTime() < new Date().getTime()){ | 542 | if(new Date(item.endTime).getTime() < new Date().getTime()){ |
| 546 | this.form.contract = null; | 543 | this.form.contract = null; |
| 547 | this.$message("合同已过期"); | 544 | this.$message("合同已过期"); |
| @@ -618,6 +615,11 @@ | @@ -618,6 +615,11 @@ | ||
| 618 | break; | 615 | break; |
| 619 | } | 616 | } |
| 620 | } | 617 | } |
| 618 | + this.form.earthsitesName = null; | ||
| 619 | + this.form.earthsitesId = null; | ||
| 620 | + this.form.contract = null; | ||
| 621 | + this.form.contractId = null; | ||
| 622 | + this.bindname = null; | ||
| 621 | 623 | ||
| 622 | 624 | ||
| 623 | 625 | ||
| @@ -676,16 +678,12 @@ | @@ -676,16 +678,12 @@ | ||
| 676 | cId = this.form.earthsitesId; | 678 | cId = this.form.earthsitesId; |
| 677 | eId = this.form.objectId; | 679 | eId = this.form.objectId; |
| 678 | } | 680 | } |
| 681 | + | ||
| 679 | this.filterContract = []; | 682 | this.filterContract = []; |
| 680 | for(let i in this.contractList){ | 683 | for(let i in this.contractList){ |
| 681 | - | ||
| 682 | let obj = this.contractList[i]; | 684 | let obj = this.contractList[i]; |
| 683 | let canId = true; | 685 | let canId = true; |
| 684 | 686 | ||
| 685 | - if(!cId && !eId){ | ||
| 686 | - this.filterContract = this.contractList; | ||
| 687 | - return; | ||
| 688 | - } | ||
| 689 | 687 | ||
| 690 | //constructionSiteID //earthSiteID | 688 | //constructionSiteID //earthSiteID |
| 691 | if(cId && cId != obj.constructionSiteID){ | 689 | if(cId && cId != obj.constructionSiteID){ |
| @@ -718,6 +716,14 @@ | @@ -718,6 +716,14 @@ | ||
| 718 | } | 716 | } |
| 719 | }, | 717 | }, |
| 720 | getEarthsiteId(value) { | 718 | getEarthsiteId(value) { |
| 719 | + | ||
| 720 | + this.form.name = null; | ||
| 721 | + this.form.objectId = null; | ||
| 722 | + this.form.contract = null; | ||
| 723 | + this.form.contractId = null; | ||
| 724 | + this.name = null; | ||
| 725 | + | ||
| 726 | + | ||
| 721 | let item; | 727 | let item; |
| 722 | for(let i in this.bindData){ | 728 | for(let i in this.bindData){ |
| 723 | if(this.bindDate[i].name == value){ | 729 | if(this.bindDate[i].name == value){ |
trash-ui/src/views/business/truckActivate/index.vue
| @@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
| 21 | </el-form-item> | 21 | </el-form-item> |
| 22 | <el-form-item label="所属企业" prop="company"> | 22 | <el-form-item label="所属企业" prop="company"> |
| 23 | <el-select v-model="form.projectName" :filterable="true" :remote-method="ConpanyNameLoadOptions" :loading="isLoading" placeholder="请输入项目名称" style="width: 100%;"> | 23 | <el-select v-model="form.projectName" :filterable="true" :remote-method="ConpanyNameLoadOptions" :loading="isLoading" placeholder="请输入项目名称" style="width: 100%;"> |
| 24 | - <el-option v-for="item in truckActivateList" :key="item.company" :label="item.company" :value="item.company"></el-option> | 24 | + <el-option v-for="item in truckActivateList" :label="item.company" :value="item.company"></el-option> |
| 25 | </el-select> | 25 | </el-select> |
| 26 | </el-form-item> | 26 | </el-form-item> |
| 27 | <el-form-item label="激活状态" prop="activateStatus"> | 27 | <el-form-item label="激活状态" prop="activateStatus"> |
| @@ -95,8 +95,8 @@ | @@ -95,8 +95,8 @@ | ||
| 95 | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> | 95 | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| 96 | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | 96 | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| 97 | <el-form-item label="所属工地" prop="construction"> | 97 | <el-form-item label="所属工地" prop="construction"> |
| 98 | - <el-select v-model="form.construction" placeholder="请选择所属工地"> | ||
| 99 | - <el-option v-for="item in constList" @click.native="getCompany(item)" :label="item.name" :value="item.name" :key="item.id"></el-option> | 98 | + <el-select v-model="form.construction" placeholder="请选择所属工地" @change="getCompany"> |
| 99 | + <el-option v-for="item in constList" :label="item.name" :value="item.name" ></el-option> | ||
| 100 | </el-select> | 100 | </el-select> |
| 101 | </el-form-item> | 101 | </el-form-item> |
| 102 | <el-form-item label="所属企业" prop="company"> | 102 | <el-form-item label="所属企业" prop="company"> |
| @@ -105,13 +105,11 @@ | @@ -105,13 +105,11 @@ | ||
| 105 | </el-select> | 105 | </el-select> |
| 106 | </el-form-item> | 106 | </el-form-item> |
| 107 | <el-form-item label="车牌号" prop="licensePlate"> | 107 | <el-form-item label="车牌号" prop="licensePlate"> |
| 108 | - <el-select v-model="form.licensePlate" placeholder="请选择车辆"> | 108 | + <el-select v-model="form.licensePlate" placeholder="请选择车辆" multiple filterable> |
| 109 | <el-option v-if="!form.company || form.company.indexOf(item.id) == -1" | 109 | <el-option v-if="!form.company || form.company.indexOf(item.id) == -1" |
| 110 | v-for="item in truckList" | 110 | v-for="item in truckList" |
| 111 | :label="item.licenseplateNo" | 111 | :label="item.licenseplateNo" |
| 112 | - :value="item.licenseplateNo" | ||
| 113 | - :key="item.id" | ||
| 114 | - @click.native="getTruck(item)"/> | 112 | + :value="item.id"/> |
| 115 | </el-select> | 113 | </el-select> |
| 116 | </el-form-item> | 114 | </el-form-item> |
| 117 | </el-form> | 115 | </el-form> |
| @@ -136,7 +134,8 @@ import { listTruckActivate, getTruckActivate, delTruckActivate, addTruckActivate | @@ -136,7 +134,8 @@ import { listTruckActivate, getTruckActivate, delTruckActivate, addTruckActivate | ||
| 136 | import { | 134 | import { |
| 137 | mainworkcompany, | 135 | mainworkcompany, |
| 138 | getConstructionTruck, | 136 | getConstructionTruck, |
| 139 | - constructionById | 137 | + constructionById, |
| 138 | + truckList | ||
| 140 | } from "@/api/dict"; | 139 | } from "@/api/dict"; |
| 141 | 140 | ||
| 142 | export default { | 141 | export default { |
| @@ -242,7 +241,19 @@ export default { | @@ -242,7 +241,19 @@ export default { | ||
| 242 | }); | 241 | }); |
| 243 | 242 | ||
| 244 | }, | 243 | }, |
| 245 | - getCompany(obj){ | 244 | + getCompany(value){ |
| 245 | + let obj; | ||
| 246 | + | ||
| 247 | + for(let i in this.constList){ | ||
| 248 | + if(this.constList[i].name == value){ | ||
| 249 | + this.construction = this.constList[i]; | ||
| 250 | + obj = this.construction; | ||
| 251 | + } | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + | ||
| 255 | + this.companyList = []; | ||
| 256 | + this.truckList = []; | ||
| 246 | 257 | ||
| 247 | constructionById(obj.objectId).then(res=>{ | 258 | constructionById(obj.objectId).then(res=>{ |
| 248 | 259 | ||
| @@ -254,14 +265,14 @@ export default { | @@ -254,14 +265,14 @@ export default { | ||
| 254 | let query = { | 265 | let query = { |
| 255 | 'page':1, | 266 | 'page':1, |
| 256 | 'size':9999, | 267 | 'size':9999, |
| 257 | - 'creditStatus':0 | 268 | + 'dishonestState':0 |
| 258 | } | 269 | } |
| 259 | 270 | ||
| 260 | let ids = []; | 271 | let ids = []; |
| 261 | 272 | ||
| 262 | ids.push(res.result.transportCompanyId); | 273 | ids.push(res.result.transportCompanyId); |
| 263 | 274 | ||
| 264 | - query.companyID = ids; | 275 | + query.companyID = ids + ""; |
| 265 | query.valid = 0; | 276 | query.valid = 0; |
| 266 | 277 | ||
| 267 | getConstructionTruck(obj.objectId).then(res=>{ | 278 | getConstructionTruck(obj.objectId).then(res=>{ |
| @@ -269,14 +280,11 @@ export default { | @@ -269,14 +280,11 @@ export default { | ||
| 269 | 280 | ||
| 270 | this.companyList.push({id:res.result[i].companyId , name: res.result[i].companyName}); | 281 | this.companyList.push({id:res.result[i].companyId , name: res.result[i].companyName}); |
| 271 | query.companyID += "," + res.result[i].companyId; | 282 | query.companyID += "," + res.result[i].companyId; |
| 272 | - | ||
| 273 | - query.companyID = query.companyID.substring(0,query.companyID.length -1); | ||
| 274 | - | ||
| 275 | - truckList(query).then(res=>{ | ||
| 276 | - this.truckList = res.result.list; | ||
| 277 | - }); | ||
| 278 | - | ||
| 279 | } | 283 | } |
| 284 | + | ||
| 285 | + truckList(query).then(res=>{ | ||
| 286 | + this.truckList = res.result.list; | ||
| 287 | + }); | ||
| 280 | }); | 288 | }); |
| 281 | }); | 289 | }); |
| 282 | 290 | ||
| @@ -348,17 +356,35 @@ export default { | @@ -348,17 +356,35 @@ export default { | ||
| 348 | submitForm() { | 356 | submitForm() { |
| 349 | this.$refs["form"].validate(valid => { | 357 | this.$refs["form"].validate(valid => { |
| 350 | if (valid) { | 358 | if (valid) { |
| 351 | - this.form.objectId = this.truck.id; | ||
| 352 | - this.form.company = this.company.name; | ||
| 353 | - this.form.earthsite = this.construction.earthsitesName; | ||
| 354 | - this.form.status = 0; | ||
| 355 | - this.form.activateTime = new Date(); | ||
| 356 | - | ||
| 357 | - addTruckActivate(this.form).then(response => { | ||
| 358 | - this.msgSuccess("新增成功"); | ||
| 359 | - this.open = false; | ||
| 360 | - this.getList(); | ||
| 361 | - }); | 359 | + |
| 360 | + for(var i in this.form.licensePlate){ | ||
| 361 | + for(let j in this.truckList){ | ||
| 362 | + if(this.form.licensePlate[i] == this.truckList[j].id){ | ||
| 363 | + | ||
| 364 | + let data = { | ||
| 365 | + objectId:this.form.licensePlate[i], | ||
| 366 | + licensePlate:this.truckList[j].licenseplateNo, | ||
| 367 | + construction:this.construction.name, | ||
| 368 | + earthsite : this.construction.earthsitesName, | ||
| 369 | + status : 0, | ||
| 370 | + company:this.form.company, | ||
| 371 | + } | ||
| 372 | + | ||
| 373 | + | ||
| 374 | + addTruckActivate(data).then(response => { | ||
| 375 | + this.msgSuccess("新增成功"); | ||
| 376 | + this.open = false; | ||
| 377 | + this.getList(); | ||
| 378 | + }); | ||
| 379 | + | ||
| 380 | + | ||
| 381 | + } | ||
| 382 | + } | ||
| 383 | + } | ||
| 384 | + | ||
| 385 | + | ||
| 386 | + | ||
| 387 | + | ||
| 362 | } | 388 | } |
| 363 | }); | 389 | }); |
| 364 | }, | 390 | }, |
| @@ -388,21 +414,7 @@ export default { | @@ -388,21 +414,7 @@ export default { | ||
| 388 | }).then(response => { | 414 | }).then(response => { |
| 389 | this.download(response.message); | 415 | this.download(response.message); |
| 390 | }) | 416 | }) |
| 391 | - }, | ||
| 392 | - ConpanyNameLoadOptions(query) { | ||
| 393 | - // 根据输入的关键字query异步加载选项数据 | ||
| 394 | - this.isLoading = true | ||
| 395 | - setTimeout(() => { | ||
| 396 | - // 模拟异步加载数据 | ||
| 397 | - const data = [ | ||
| 398 | - { name:'项目1' }, | ||
| 399 | - { name:'项目2' }, | ||
| 400 | - { name:'项目3' } | ||
| 401 | - ].filter(item => item.name.includes(query)) | ||
| 402 | - this.projectNameList = data | ||
| 403 | - this.isLoading = false | ||
| 404 | - }, 200) | ||
| 405 | - }, | 417 | + } |
| 406 | } | 418 | } |
| 407 | }; | 419 | }; |
| 408 | </script> | 420 | </script> |
trash-ui/src/views/h5/task/SupervisionInfo.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div style="border:1px solid black;"> | ||
| 3 | + <el-row class="bd_bottom"> | ||
| 4 | + <el-col :span="4" class="bd_right bd_padding">名称</el-col> | ||
| 5 | + <el-col :span="8" class="bd_padding">{{ infoData.name }}</el-col> | ||
| 6 | + <el-col :span="4" class="bd_left bd_right bd_padding">所属区域</el-col> | ||
| 7 | + <el-col :span="8" class="bd_padding">{{ infoData.areaCodeName }}</el-col> | ||
| 8 | + </el-row> | ||
| 9 | + <el-row class="bd_bottom"> | ||
| 10 | + <el-col :span="4" class="bd_right bd_padding">督察类型</el-col> | ||
| 11 | + <el-col :span="8" class="bd_padding">{{ infoData.typeName }}</el-col> | ||
| 12 | + <el-col :span="4" class="bd_left bd_right bd_padding">督察结果</el-col> | ||
| 13 | + <el-col :span="8" class="bd_padding">{{ infoData.supervisionResultName }}</el-col> | ||
| 14 | + </el-row> | ||
| 15 | + | ||
| 16 | + | ||
| 17 | + <el-row class="bd_bottom"> | ||
| 18 | + <el-col :span="4" class="bd_right bd_padding">督察状态</el-col> | ||
| 19 | + <el-col :span="8" class="bd_padding">{{ infoData.supervisionStatus == 0 ? "未督察" : "已督察" }}</el-col> | ||
| 20 | + <el-col :span="4" class="bd_left bd_right bd_padding">督察时间</el-col> | ||
| 21 | + <el-col :span="8" class="bd_padding">{{ infoData.supervisionAt }}</el-col> | ||
| 22 | + </el-row> | ||
| 23 | + <el-row class="bd_bottom"> | ||
| 24 | + <el-col :span="4" class="bd_right bd_padding">创建时间</el-col> | ||
| 25 | + <el-col :span="20" class="bd_padding">{{ infoData.createAt }}</el-col> | ||
| 26 | + </el-row> | ||
| 27 | + </div> | ||
| 28 | +</template> | ||
| 29 | + | ||
| 30 | +<script> | ||
| 31 | + | ||
| 32 | + | ||
| 33 | +export default { | ||
| 34 | + name: "SupervisionInfo", | ||
| 35 | + props: { | ||
| 36 | + infoData: { | ||
| 37 | + type: Object | ||
| 38 | + }, | ||
| 39 | + }, | ||
| 40 | + data() { | ||
| 41 | + return {} | ||
| 42 | + }, | ||
| 43 | + created() { | ||
| 44 | + | ||
| 45 | + }, | ||
| 46 | + methods: {} | ||
| 47 | + | ||
| 48 | +} | ||
| 49 | +</script> |
trash-ui/src/views/h5/task/caseOfflineInfo.vue deleted
100644 → 0
| 1 | -<template> | ||
| 2 | - | ||
| 3 | - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||
| 4 | - <el-form-item label="案卷类型" prop="type"> | ||
| 5 | - <el-input v-model="form.type" type="textarea" :rows="3" disabled /> | ||
| 6 | - </el-form-item> | ||
| 7 | - <el-form-item label="所属区域" prop="place"> | ||
| 8 | - <el-select v-model="form.place" placeholder="请输入所属区域" size="small" disabled> | ||
| 9 | - <el-option v-for="item in areas" :label="item.name" :value="item.code" /> | ||
| 10 | - </el-select> | ||
| 11 | - </el-form-item> | ||
| 12 | - <el-form-item label="类型" prop="siteType"> | ||
| 13 | - <el-select v-model="form.siteType" placeholder="请选择类型" disabled> | ||
| 14 | - <el-option label="工地" value="0" /> | ||
| 15 | - <el-option label="消纳场" value="1" /> | ||
| 16 | - </el-select> | ||
| 17 | - </el-form-item> | ||
| 18 | - <el-form-item :label="form.siteType==0?'工地名称':'消纳场名称'" prop="siteName"> | ||
| 19 | - <el-select v-model="form.siteName" placeholder="请选择类型" disabled> | ||
| 20 | - <el-option v-for="item in data[form.siteType]" :label="item.name" :value="item.name" @native.click="getSite(item)" disabled/> | ||
| 21 | - </el-select> | ||
| 22 | - </el-form-item> | ||
| 23 | - <el-form-item label="问题描述" prop="caseDec"> | ||
| 24 | - <el-input v-model="form.caseDec" type="textarea" maxlength="200" :rows="3" disabled/> | ||
| 25 | - </el-form-item> | ||
| 26 | - <el-form-item label="位置描述" prop="locationDec"> | ||
| 27 | - <el-input v-model="form.locationDec" type="textarea" maxlength="100" :rows="3" disabled/> | ||
| 28 | - </el-form-item> | ||
| 29 | - <el-form-item label="审批意见" prop="advice1"> | ||
| 30 | - <el-input v-model="form.advice1" type="textarea" :rows="3" disabled/> | ||
| 31 | - </el-form-item> | ||
| 32 | - | ||
| 33 | - <el-form-item label="案卷编号" prop="number"> | ||
| 34 | - <el-input v-model="form.number" disabled/> | ||
| 35 | - </el-form-item> | ||
| 36 | - | ||
| 37 | - <el-form-item label="附件" prop="attach"> | ||
| 38 | - <el-input v-model="form.attach" type="hidden"></el-input> | ||
| 39 | - <a @click="downloadFile(img);" style="color: blue;" v-for="img,index in form.attach">附件 - {{index+1}}</a> | ||
| 40 | - </el-form-item> | ||
| 41 | - | ||
| 42 | - | ||
| 43 | - <el-table :data="adviceList" v-if="adviceList != null"> | ||
| 44 | - <el-table-column label="用户" width="55" align="center" prop="name"/> | ||
| 45 | - <el-table-column label="审批内容" align="center" prop="text" /> | ||
| 46 | - <el-table-column label="时间" align="center" prop="time" /> | ||
| 47 | - </el-table> | ||
| 48 | - | ||
| 49 | - | ||
| 50 | - </el-form> | ||
| 51 | -</template> | ||
| 52 | - | ||
| 53 | -<script> | ||
| 54 | -import { listCaseOffline, getCaseOffline,getAdviceList } from "@/api/caseOffline/caseOffline"; | ||
| 55 | - import { | ||
| 56 | - getArea, | ||
| 57 | - earthsitesList, | ||
| 58 | - constructionsitesList, | ||
| 59 | - getDict, | ||
| 60 | - | ||
| 61 | - } from "@/api/dict"; | ||
| 62 | - import { | ||
| 63 | - getThreestep, | ||
| 64 | - } from "@/api/business/threestep"; | ||
| 65 | - | ||
| 66 | - | ||
| 67 | - | ||
| 68 | - import { | ||
| 69 | - getToken | ||
| 70 | - } from "@/utils/auth"; | ||
| 71 | -export default { | ||
| 72 | - name: "CaseOffline", | ||
| 73 | - props: { | ||
| 74 | - businessKey: { | ||
| 75 | - type: String | ||
| 76 | - } | ||
| 77 | - }, | ||
| 78 | - data() { | ||
| 79 | - return { | ||
| 80 | - // 遮罩层 | ||
| 81 | - loading: true, | ||
| 82 | - // 选中数组 | ||
| 83 | - ids: [], | ||
| 84 | - // 非单个禁用 | ||
| 85 | - single: true, | ||
| 86 | - // 非多个禁用 | ||
| 87 | - multiple: true, | ||
| 88 | - // 显示搜索条件 | ||
| 89 | - showSearch: true, | ||
| 90 | - // 总条数 | ||
| 91 | - total: 0, | ||
| 92 | - // 线下交办案卷表格数据 | ||
| 93 | - caseOfflineList: [], | ||
| 94 | - // 弹出层标题 | ||
| 95 | - title: "", | ||
| 96 | - // 是否显示弹出层 | ||
| 97 | - open: false, | ||
| 98 | - open2:false, | ||
| 99 | - // 查询参数 | ||
| 100 | - queryParams: { | ||
| 101 | - pageNum: 1, | ||
| 102 | - pageSize: 10, | ||
| 103 | - type: null, | ||
| 104 | - place: null, | ||
| 105 | - createTime: null, | ||
| 106 | - }, | ||
| 107 | - uploadImageDialog:false, | ||
| 108 | - // 表单参数 | ||
| 109 | - form: {}, | ||
| 110 | - // 表单校验 | ||
| 111 | - rules: { | ||
| 112 | - }, | ||
| 113 | - caseType:[ | ||
| 114 | - {code:1,name:"渣土处置工地(含消纳场)的渣土运输车辆出场车身不洁,车轮带泥"}, | ||
| 115 | - {code:2,name:"未洗车出场或者出场清洁不彻底"}, | ||
| 116 | - {code:3,name:"渣土运输车辆货箱顶盖未按规定关闭到位或未按规定和标准装载渣土出场"}, | ||
| 117 | - {code:4,name:"非核准车辆进入渣土处置工地运输渣土"}, | ||
| 118 | - {code:5,name:"渣土处置工地未按规定时间开停工"}, | ||
| 119 | - {code:6,name:"渣土处置工地洗车设施等破损、未正常使用及措施不到位的"}, | ||
| 120 | - {code:7,name:"渣土处置工地、消纳场(含回填场)出入口两侧50米范围内出现渣土污染、污水外排等现象"} | ||
| 121 | - ], | ||
| 122 | - areas:null, | ||
| 123 | - fileList:[], | ||
| 124 | - areas: [], | ||
| 125 | - upload: { | ||
| 126 | - // 是否显示弹出层(用户导入) | ||
| 127 | - open: false, | ||
| 128 | - // 弹出层标题(用户导入) | ||
| 129 | - title: "", | ||
| 130 | - // 是否禁用上传 | ||
| 131 | - isUploading: false, | ||
| 132 | - // 设置上传的请求头部 | ||
| 133 | - headers: { | ||
| 134 | - Authorization: "Bearer " + getToken() | ||
| 135 | - }, | ||
| 136 | - // 上传的地址 | ||
| 137 | - url: process.env.VUE_APP_BASE_API + "/business/threestep/upload", | ||
| 138 | - | ||
| 139 | - }, | ||
| 140 | - workflow:"workflow_caseoffline", | ||
| 141 | - data:{}, | ||
| 142 | - adviceList:[], | ||
| 143 | - }; | ||
| 144 | - }, | ||
| 145 | - created() { | ||
| 146 | - this.handleUpdate(); | ||
| 147 | - }, | ||
| 148 | - methods: { | ||
| 149 | - getSite(item){ | ||
| 150 | - this.form.objectId = item.id; | ||
| 151 | - }, | ||
| 152 | - getAreaName(code){ | ||
| 153 | - for(let i =0;i<this.areas.length;i++){ | ||
| 154 | - if(Number(code) == this.areas[i].code){ | ||
| 155 | - return this.areas[i].name; | ||
| 156 | - break; | ||
| 157 | - } | ||
| 158 | - } | ||
| 159 | - return code; | ||
| 160 | - }, | ||
| 161 | - getCaseType(type){ | ||
| 162 | - for(let i in this.caseType){ | ||
| 163 | - | ||
| 164 | - | ||
| 165 | - if(this.caseType[i].code==type) | ||
| 166 | - return this.caseType[i].name | ||
| 167 | - } | ||
| 168 | - }, | ||
| 169 | - /** 修改按钮操作 */ | ||
| 170 | - handleUpdate() { | ||
| 171 | - let id; | ||
| 172 | - if(this.businessKey.split(":").length == 2){ | ||
| 173 | - id = this.businessKey.split(":")[1]; | ||
| 174 | - }else{ | ||
| 175 | - id = this.businessKey; | ||
| 176 | - } | ||
| 177 | - | ||
| 178 | - getCaseOffline(id).then(response => { | ||
| 179 | - this.form = response.data; | ||
| 180 | - if(this.form.attach && this.form.attach != "") | ||
| 181 | - this.form.attach = this.form.attach.split(","); | ||
| 182 | - | ||
| 183 | - this.form.siteType = this.form.siteType + ""; | ||
| 184 | - this.form.type = this.getCaseType(this.form.type); | ||
| 185 | - this.form.place = this.getAreaName(this.form.place); | ||
| 186 | - | ||
| 187 | - getAdviceList(this.workflow+":"+id).then(res=>{ | ||
| 188 | - if(res.data){ | ||
| 189 | - if(res.data.advice1){ | ||
| 190 | - this.adviceList.push({name: res.data.advice1.create_by ,time:res.data.advice1.create_time,text:this.form.advice1}) | ||
| 191 | - } | ||
| 192 | - if(res.data.advice2){ | ||
| 193 | - this.adviceList.push({name: res.data.advice2.create_by ,time:res.data.advice2.create_time,text:this.form.advice2}) | ||
| 194 | - } | ||
| 195 | - if(res.data.advice3){ | ||
| 196 | - this.adviceList.push({name: res.data.advice3.create_by ,time:res.data.advice3.create_time,text:this.form.advice3}) | ||
| 197 | - } | ||
| 198 | - if(res.data.advice4){ | ||
| 199 | - this.adviceList.push({name: res.data.advice4.create_by ,time:res.data.advice4.create_time,text:this.form.advice4}) | ||
| 200 | - } | ||
| 201 | - | ||
| 202 | - } | ||
| 203 | - }); | ||
| 204 | - | ||
| 205 | - | ||
| 206 | - this.open2 = true; | ||
| 207 | - }); | ||
| 208 | - | ||
| 209 | - | ||
| 210 | - }, | ||
| 211 | - } | ||
| 212 | -}; | ||
| 213 | -</script> |
trash-ui/src/views/h5/task/index.vue
| @@ -331,6 +331,13 @@ | @@ -331,6 +331,13 @@ | ||
| 331 | </div> | 331 | </div> |
| 332 | </el-dialog> | 332 | </el-dialog> |
| 333 | 333 | ||
| 334 | + <el-dialog :title="title" :visible.sync="supervisionOpen" width="300px" append-to-body :close-on-click-modal="false"> | ||
| 335 | + <supervisionInfo :infoData="supervisionData"/> | ||
| 336 | + <div slot="footer" class="dialog-footer"> | ||
| 337 | + <el-button type="danger" @click="submitForm(form.formData[0].controlId,1)">驳回</el-button> | ||
| 338 | + <el-button type="primary" @click="submitForm(form.formData[0].controlId,0)">通过</el-button> | ||
| 339 | + </div> | ||
| 340 | + </el-dialog> | ||
| 334 | 341 | ||
| 335 | </div> | 342 | </div> |
| 336 | </template> | 343 | </template> |
| @@ -370,20 +377,21 @@ import {updateHandleAffairs} from "@/api/office/handle"; | @@ -370,20 +377,21 @@ import {updateHandleAffairs} from "@/api/office/handle"; | ||
| 370 | import Treeselect from "@riophae/vue-treeselect"; | 377 | import Treeselect from "@riophae/vue-treeselect"; |
| 371 | import '@riophae/vue-treeselect/dist/vue-treeselect.css' | 378 | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| 372 | 379 | ||
| 373 | - | 380 | +import pagination from '../Pagination'; |
| 374 | 381 | ||
| 375 | import threestepInfo from "@/views/h5/task/threestepInfo"; | 382 | import threestepInfo from "@/views/h5/task/threestepInfo"; |
| 376 | import taskCard from "@/views/h5/task/taskCard"; | 383 | import taskCard from "@/views/h5/task/taskCard"; |
| 377 | import conferenceInfo from "@/views/h5/task/conferenceInfo"; | 384 | import conferenceInfo from "@/views/h5/task/conferenceInfo"; |
| 378 | -import leaveApplicationInfo from "@/views/h5/task/leaveApplicationInfo"; | 385 | +import leaveApplicationInfo from "@/views/h5/leaveApplication/leaveApplicationInfo"; |
| 379 | import constructsiteInfo from "@/views/h5/task/constructsiteInfo"; | 386 | import constructsiteInfo from "@/views/h5/task/constructsiteInfo"; |
| 380 | import earthsitesInfo from "@/views/h5/task/earthsitesInfo"; | 387 | import earthsitesInfo from "@/views/h5/task/earthsitesInfo"; |
| 381 | import contractInfo from "@/views/h5/task/contractInfo"; | 388 | import contractInfo from "@/views/h5/task/contractInfo"; |
| 382 | import logisticsInfo from "@/views/h5/task/logisticsInfo"; | 389 | import logisticsInfo from "@/views/h5/task/logisticsInfo"; |
| 383 | import handleInfo from "@/views/h5/task/handleInfo"; | 390 | import handleInfo from "@/views/h5/task/handleInfo"; |
| 384 | -import caseOfflineInfo from "@/views/h5/task/caseOfflineInfo"; | 391 | +import caseOfflineInfo from "@/views/h5/caseOffline/caseOfflineInfo"; |
| 385 | import violationCaseFileInfo from "@/views/h5/task/violationCaseFileInfo"; | 392 | import violationCaseFileInfo from "@/views/h5/task/violationCaseFileInfo"; |
| 386 | import violationWarningInformationInfo from "@/views/h5/task/violationWarningInformationInfo"; | 393 | import violationWarningInformationInfo from "@/views/h5/task/violationWarningInformationInfo"; |
| 394 | +import supervisionInfo from "./SupervisionInfo"; | ||
| 387 | 395 | ||
| 388 | export default { | 396 | export default { |
| 389 | name: "task", | 397 | name: "task", |
| @@ -400,7 +408,10 @@ export default { | @@ -400,7 +408,10 @@ export default { | ||
| 400 | contractInfo, | 408 | contractInfo, |
| 401 | caseOfflineInfo, | 409 | caseOfflineInfo, |
| 402 | violationCaseFileInfo, | 410 | violationCaseFileInfo, |
| 403 | - violationWarningInformationInfo | 411 | + violationWarningInformationInfo, |
| 412 | + supervisionInfo, | ||
| 413 | + | ||
| 414 | + pagination, | ||
| 404 | }, | 415 | }, |
| 405 | data() { | 416 | data() { |
| 406 | return { | 417 | return { |
| @@ -564,6 +575,12 @@ export default { | @@ -564,6 +575,12 @@ export default { | ||
| 564 | this.construct = false; | 575 | this.construct = false; |
| 565 | this.logisticsInfoOpen = false; | 576 | this.logisticsInfoOpen = false; |
| 566 | this.handleAffairsInfoOpen = false; | 577 | this.handleAffairsInfoOpen = false; |
| 578 | + this.earthsites=false; | ||
| 579 | + this.contract=false; | ||
| 580 | + this.caseOffline=false; | ||
| 581 | + this.violationCaseFile=false; | ||
| 582 | + this.violationCaseFile1=false; | ||
| 583 | + | ||
| 567 | this.reset(); | 584 | this.reset(); |
| 568 | }, | 585 | }, |
| 569 | // 表单重置 | 586 | // 表单重置 |
| @@ -667,6 +684,21 @@ export default { | @@ -667,6 +684,21 @@ export default { | ||
| 667 | this.violationCaseFile1 = true; | 684 | this.violationCaseFile1 = true; |
| 668 | return; | 685 | return; |
| 669 | } | 686 | } |
| 687 | + if(this.definitionKey.indexOf("supervision")>-1){ | ||
| 688 | + const params = { | ||
| 689 | + id: row.businessKey.split(":")[1], | ||
| 690 | + } | ||
| 691 | + getSupervision(params).then(res=>{ | ||
| 692 | + console.log(res) | ||
| 693 | + if(res.result==null){ | ||
| 694 | + this.$message.error("获取纪检督察详情失败!请重试") | ||
| 695 | + return; | ||
| 696 | + } | ||
| 697 | + this.supervisionData = res.result; | ||
| 698 | + this.supervisionOpen = true; | ||
| 699 | + }) | ||
| 700 | + return; | ||
| 701 | + } | ||
| 670 | this.open = true; | 702 | this.open = true; |
| 671 | this.title = "审批"; | 703 | this.title = "审批"; |
| 672 | }); | 704 | }); |
| @@ -706,14 +738,12 @@ export default { | @@ -706,14 +738,12 @@ export default { | ||
| 706 | }); | 738 | }); |
| 707 | }); | 739 | }); |
| 708 | } else { | 740 | } else { |
| 709 | - updateThreestep(this.form).then(res => { | ||
| 710 | formDataSave(this.id, this.form.formData).then(response => { | 741 | formDataSave(this.id, this.form.formData).then(response => { |
| 711 | this.msgSuccess("审批成功"); | 742 | this.msgSuccess("审批成功"); |
| 712 | this.open2 = false; | 743 | this.open2 = false; |
| 713 | this.taskList = []; | 744 | this.taskList = []; |
| 714 | this.getList(); | 745 | this.getList(); |
| 715 | }); | 746 | }); |
| 716 | - }); | ||
| 717 | } | 747 | } |
| 718 | return; | 748 | return; |
| 719 | } | 749 | } |
trash-ui/src/views/h5/task/leaveApplicationInfo.vue deleted
100644 → 0
| 1 | -<template> | ||
| 2 | - <el-form ref="form" :model="form" label-width="80px"> | ||
| 3 | - | ||
| 4 | - <el-form-item label="联系方式" prop="phone"> | ||
| 5 | - <el-input v-model="form.phone" placeholder="请输入联系方式" :maxlength="11" show-word-limit :disabled="true"/> | ||
| 6 | - </el-form-item> | ||
| 7 | - | ||
| 8 | - <el-form-item label="请假类型" prop="type"> | ||
| 9 | - <el-select v-model="form.type" placeholder="请选择请假类型" style="width: 100%" :disabled="true"> | ||
| 10 | - <el-option label="事假" value="事假"/> | ||
| 11 | - <el-option label="病假" value="病假"/> | ||
| 12 | - <el-option label="年假" value="年假"/> | ||
| 13 | - <el-option label="婚假" value="婚假"/> | ||
| 14 | - <el-option label="产假" value="产假"/> | ||
| 15 | - <el-option label="丧假" value="丧假"/> | ||
| 16 | - <el-option label="探亲假" value="探亲假"/> | ||
| 17 | - <el-option label="护理假" value="护理假"/> | ||
| 18 | - </el-select> | ||
| 19 | - </el-form-item> | ||
| 20 | - | ||
| 21 | - <el-form-item label="请假天数" prop="numberDays"> | ||
| 22 | - <el-input v-model="form.numberDays" placeholder="请输入请假天数" :disabled="true"/> | ||
| 23 | - </el-form-item> | ||
| 24 | - | ||
| 25 | - <el-form-item label="开始时间" prop="beginDate"> | ||
| 26 | - <el-date-picker size="small" style="width: 100%" | ||
| 27 | - v-model="form.beginDate" | ||
| 28 | - type="datetime" | ||
| 29 | - value-format="yyyy-MM-dd HH:mm:ss" | ||
| 30 | - :disabled="true" | ||
| 31 | - placeholder="选择请假开始时间"> | ||
| 32 | - </el-date-picker> | ||
| 33 | - </el-form-item> | ||
| 34 | - <el-form-item label="结束时间" prop="endDate"> | ||
| 35 | - <el-date-picker size="small" style="width: 100%" | ||
| 36 | - v-model="form.endDate" | ||
| 37 | - type="datetime" | ||
| 38 | - value-format="yyyy-MM-dd HH:mm:ss" | ||
| 39 | - :disabled="true" | ||
| 40 | - placeholder="选择请假结束时间"> | ||
| 41 | - </el-date-picker> | ||
| 42 | - </el-form-item> | ||
| 43 | - <el-form-item label="请假事由"> | ||
| 44 | - <el-input v-model="form.content" type="textarea" :rows="4" :disabled="true"/> | ||
| 45 | - </el-form-item> | ||
| 46 | - <el-table :data="fileEntityList"> | ||
| 47 | - <el-table-column property="name" label="附件名称" header-align="center" align="center"></el-table-column> | ||
| 48 | - <el-table-column label="操作" class-name="small-padding fixed-width" header-align="center" align="center"> | ||
| 49 | - <template slot-scope="scope"> | ||
| 50 | - <el-button | ||
| 51 | - size="small" type="success" | ||
| 52 | - icon="el-icon-download" | ||
| 53 | - @click="downloadFA(scope.row)" | ||
| 54 | - v-hasPermi="['office:management:edit']" | ||
| 55 | - v-if="form.id!=null" | ||
| 56 | - round>下载 | ||
| 57 | - </el-button> | ||
| 58 | - </template> | ||
| 59 | - </el-table-column> | ||
| 60 | - </el-table> | ||
| 61 | - </el-form> | ||
| 62 | -</template> | ||
| 63 | - | ||
| 64 | -<script> | ||
| 65 | -import {getLeaveApplication} from "@/api/office/leaveApplication"; | ||
| 66 | -import Editor from '@/components/ZcEditor'; | ||
| 67 | -export default { | ||
| 68 | - name: "leaveApplicationInfo", | ||
| 69 | - components: { Editor }, | ||
| 70 | - props: { | ||
| 71 | - businessKey: { | ||
| 72 | - type: String | ||
| 73 | - }, | ||
| 74 | - idInfo: { | ||
| 75 | - type: String | ||
| 76 | - } | ||
| 77 | - }, | ||
| 78 | - data() { | ||
| 79 | - return { | ||
| 80 | - form: {}, | ||
| 81 | - fileEntityList: [], | ||
| 82 | - } | ||
| 83 | - }, | ||
| 84 | - created() { | ||
| 85 | - this.init(); | ||
| 86 | - }, | ||
| 87 | - methods:{ | ||
| 88 | - init(){ | ||
| 89 | - getLeaveApplication(this.idInfo).then(response => { | ||
| 90 | - this.form = response.data.leaveApplication; | ||
| 91 | - let files = JSON.stringify(response.data.uploadFiles); | ||
| 92 | - this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); | ||
| 93 | - }); | ||
| 94 | - }, | ||
| 95 | - /** 文件下载 */ | ||
| 96 | - downloadFA(row) { | ||
| 97 | - let name = row.name; | ||
| 98 | - let url = row.url; | ||
| 99 | - const a = document.createElement('a') | ||
| 100 | - a.setAttribute('download', name) | ||
| 101 | - a.setAttribute('target', '_blank') | ||
| 102 | - a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | ||
| 103 | - a.click() | ||
| 104 | - }, | ||
| 105 | - } | ||
| 106 | -} | ||
| 107 | -</script> | ||
| 108 | - | ||
| 109 | -<style scoped> | ||
| 110 | - | ||
| 111 | -</style> |
trash-ui/src/views/h5/taskhistory/end.vue
| 1 | <template> | 1 | <template> |
| 2 | - <div class="app-container"> | ||
| 3 | - | ||
| 4 | - <taskCard :task="task" v-for="task in taskList" @sendToParent="showTask"/> | ||
| 5 | - | ||
| 6 | - <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> | ||
| 7 | - | ||
| 8 | - | ||
| 9 | - <el-dialog :title="title" :visible.sync="open2" width="800px" append-to-body> | ||
| 10 | - <threestepInfo :businessKey="businessKey" v-if="open2"/> | ||
| 11 | - | ||
| 12 | - </el-dialog> | ||
| 13 | - <el-dialog :title="title" :visible.sync="construct" width="800px" append-to-body> | ||
| 14 | - <constructsiteInfo :businessKey="businessKey" :signData="signData" v-if="construct" /> | ||
| 15 | - </el-dialog> | ||
| 16 | - <!-- 会议管理 --> | ||
| 17 | - <el-dialog :title="title" :visible.sync="conferenceOpen" width="300px" append-to-body> | ||
| 18 | - <conferenceInfo :idInfo="idInfo" v-if="conferenceOpen"/> | ||
| 19 | - </el-dialog> | ||
| 20 | - | ||
| 21 | - <!-- 请假申请 --> | ||
| 22 | - <el-dialog :title="title" :visible.sync="leaveApplicationOpen" width="300px" append-to-body> | ||
| 23 | - <leaveApplicationInfo :idInfo="idInfo" v-if="leaveApplicationOpen"/> | ||
| 24 | - </el-dialog> | ||
| 25 | - | ||
| 26 | - | ||
| 27 | - <el-dialog :title="title" :visible.sync="earthsites" width="300px" append-to-body> | ||
| 28 | - <earthsitesInfo :businessKey="businessKey" v-if="earthsites" /> | ||
| 29 | - </el-dialog> | ||
| 30 | - | ||
| 31 | - <el-dialog :title="title" :visible.sync="contract" width="300px" append-to-body> | ||
| 32 | - <contractInfo :businessKey="businessKey" v-if="contract" /> | ||
| 33 | - </el-dialog> | ||
| 34 | - | ||
| 35 | - | ||
| 36 | - | ||
| 37 | - <!-- 后勤管理 --> | ||
| 38 | - <el-dialog :title="title" :visible.sync="logisticsInfoOpen" width="300px" append-to-body | ||
| 39 | - :close-on-click-modal="false"> | ||
| 40 | - <logisticsInfo :idInfo="idInfo" v-if="logisticsInfoOpen"/> | ||
| 41 | - </el-dialog> | ||
| 42 | - | ||
| 43 | - <!-- 办文办事 --> | ||
| 44 | - <el-dialog :title="title" :visible.sync="handleAffairsInfoOpen" width="300px" append-to-body | ||
| 45 | - :close-on-click-modal="false"> | ||
| 46 | - <handleInfo ref="handleAffairsInfoRef" :idInfo="idInfo" v-if="handleAffairsInfoOpen" :depts="depts" | ||
| 47 | - :businessKey="definitionKey" | ||
| 48 | - :controlId="controlId"/> | ||
| 49 | - </el-dialog> | ||
| 50 | - | ||
| 51 | - <!-- 线下案卷交办 --> | ||
| 52 | - <el-dialog :title="title" :visible.sync="caseOffline" width="300px" append-to-body :close-on-click-modal="false"> | ||
| 53 | - <caseOfflineInfo :businessKey="businessKey" v-if="caseOffline"/> | ||
| 54 | - </el-dialog> | ||
| 55 | - | ||
| 56 | - <!-- 平台违规信息 --> | ||
| 57 | - <el-dialog :title="title" :visible.sync="violationCaseFile" width="300px" append-to-body :close-on-click-modal="false"> | ||
| 58 | - <violationCaseFileInfo :idInfo="businessKey" v-if="violationCaseFile"/> | ||
| 59 | - </el-dialog> | ||
| 60 | - | ||
| 61 | - <!-- 违规预警信息 --> | ||
| 62 | - <el-dialog :title="title" :visible.sync="violationCaseFile1" width="300px" append-to-body :close-on-click-modal="false"> | ||
| 63 | - <violationWarningInformationInfo :idInfo="businessKey" v-if="violationCaseFile1"/> | ||
| 64 | - </el-dialog> | ||
| 65 | - | ||
| 66 | - </div> | 2 | + <history :type="1"/> |
| 67 | </template> | 3 | </template> |
| 68 | 4 | ||
| 69 | - | ||
| 70 | -<style> | ||
| 71 | - @import '../../../assets/css/task.css' | ||
| 72 | -</style> | ||
| 73 | - | ||
| 74 | <script> | 5 | <script> |
| 75 | - import { | ||
| 76 | - listEndTask, | ||
| 77 | - formDataShow | ||
| 78 | - } from "@/api/activiti/taskhistory"; | ||
| 79 | - | ||
| 80 | - import { getSignByObjId, addSign, updateSign } from "@/api/sign/sign"; | ||
| 81 | - | ||
| 82 | - import threestepInfo from "@/views/h5/task/threestepInfo"; | ||
| 83 | - import taskCard from "@/views/h5/task/taskCard"; | ||
| 84 | - import conferenceInfo from "@/views/h5/task/conferenceInfo"; | ||
| 85 | - import leaveApplicationInfo from "@/views/h5/task/leaveApplicationInfo"; | ||
| 86 | - import constructsiteInfo from "@/views/h5/task/constructsiteInfo"; | ||
| 87 | - import earthsitesInfo from "@/views/h5/task/earthsitesInfo"; | ||
| 88 | - import contractInfo from "@/views/h5/task/contractInfo"; | ||
| 89 | - import logisticsInfo from "@/views/h5/task/logisticsInfo"; | ||
| 90 | - import handleInfo from "@/views/h5/task/handleInfo"; | ||
| 91 | - import caseOfflineInfo from "@/views/h5/task/caseOfflineInfo"; | ||
| 92 | - import violationCaseFileInfo from "@/views/h5/task/violationCaseFileInfo"; | ||
| 93 | - import violationWarningInformationInfo from "@/views/h5/task/violationWarningInformationInfo"; | ||
| 94 | - | ||
| 95 | - | ||
| 96 | - export default { | ||
| 97 | - name: "taskHistory", | ||
| 98 | - components: { | ||
| 99 | - taskCard, | ||
| 100 | - threestepInfo, | ||
| 101 | - conferenceInfo, | ||
| 102 | - leaveApplicationInfo, | ||
| 103 | - logisticsInfo, | ||
| 104 | - handleInfo, | ||
| 105 | - constructsiteInfo, | ||
| 106 | - Treeselect, | ||
| 107 | - earthsitesInfo, | ||
| 108 | - contractInfo, | ||
| 109 | - caseOfflineInfo, | ||
| 110 | - violationCaseFileInfo, | ||
| 111 | - violationWarningInformationInfo | ||
| 112 | - }, | ||
| 113 | - data() { | ||
| 114 | - return { | ||
| 115 | - id: '', | ||
| 116 | - definitionKey: '', | ||
| 117 | - businessKey: '', | ||
| 118 | - // 遮罩层 | ||
| 119 | - loading: true, | ||
| 120 | - // 选中数组 | ||
| 121 | - ids: [], | ||
| 122 | - // 非单个禁用 | ||
| 123 | - single: true, | ||
| 124 | - // 非多个禁用 | ||
| 125 | - multiple: true, | ||
| 126 | - // 显示搜索条件 | ||
| 127 | - showSearch: true, | ||
| 128 | - // 总条数 | ||
| 129 | - total: 0, | ||
| 130 | - // 请假表格数据 | ||
| 131 | - taskList: [], | ||
| 132 | - // 弹出层标题 | ||
| 133 | - title: "", | ||
| 134 | - // 是否显示弹出层 | ||
| 135 | - open: false, | ||
| 136 | - // 查询参数 | ||
| 137 | - queryParams: { | ||
| 138 | - pageNum: 1, | ||
| 139 | - pageSize: 10, | ||
| 140 | - }, | ||
| 141 | - | ||
| 142 | - open2:false, | ||
| 143 | - // 表单参数 | ||
| 144 | - form: { | ||
| 145 | - formData: [] | ||
| 146 | - }, | ||
| 147 | - needShow:false, | ||
| 148 | - // 表单校验 | ||
| 149 | - rules: {}, | ||
| 150 | - | ||
| 151 | - uploadImageDialog: false, | ||
| 152 | - conferenceOpen: false, | ||
| 153 | - construct:false, | ||
| 154 | - idInfo:null, | ||
| 155 | - leaveApplicationOpen:false, | ||
| 156 | - signData:null, | ||
| 157 | - earthsites:false, | ||
| 158 | - contract:false, | ||
| 159 | - }; | ||
| 160 | - }, | ||
| 161 | - created() { | ||
| 162 | - this.getList(); | ||
| 163 | - }, | ||
| 164 | - methods: { | ||
| 165 | - /** 查询请假列表 */ | ||
| 166 | - getList() { | ||
| 167 | - this.loading = true; | ||
| 168 | - listEndTask(this.queryParams).then(response => { | ||
| 169 | - this.taskList = response.rows; | ||
| 170 | - this.total = response.total; | ||
| 171 | - this.loading = false; | ||
| 172 | - }); | ||
| 173 | - }, | ||
| 174 | - | ||
| 175 | - // 取消按钮 | ||
| 176 | - cancel() { | ||
| 177 | - this.open = false; | ||
| 178 | - this.reset(); | ||
| 179 | - }, | ||
| 180 | - // 表单重置 | ||
| 181 | - reset() { | ||
| 182 | - this.definitionKey = '', | ||
| 183 | - this.businessKey = '', | ||
| 184 | - this.form = { | ||
| 185 | - formData: [], | ||
| 186 | - }; | ||
| 187 | - this.resetForm("form"); | ||
| 188 | - }, | ||
| 189 | - showTask(row) { | ||
| 190 | - | ||
| 191 | - this.needShow = false; | ||
| 192 | - this.reset(); | ||
| 193 | - this.definitionKey = row.definitionKey; | ||
| 194 | - this.businessKey = row.businessKey; | ||
| 195 | - this.id = row.id; | ||
| 196 | - | ||
| 197 | - this.title = "详情"; | ||
| 198 | - | ||
| 199 | - if(this.definitionKey == "conference"){ | ||
| 200 | - this.idInfo = row.businessKey.substring(row.businessKey.indexOf(":")+1); | ||
| 201 | - this.conferenceOpen = true; | ||
| 202 | - return; | ||
| 203 | - } | ||
| 204 | - if(this.definitionKey == "workflow_leave"){ | ||
| 205 | - this.idInfo = row.businessKey.substring(row.businessKey.lastIndexOf(":")+1); | ||
| 206 | - this.leaveApplicationOpen = true; | ||
| 207 | - return; | ||
| 208 | - } | ||
| 209 | - | ||
| 210 | - if(this.definitionKey == "workflow_constructsite"){ | ||
| 211 | - getSignByObjId(this.businessKey.split(":")[1]).then(res=>{ | ||
| 212 | - this.signData = res; | ||
| 213 | - this.construct = true; | ||
| 214 | - }); | ||
| 215 | - return; | ||
| 216 | - } | ||
| 217 | - if(this.definitionKey == "workflow_earthsites"){ | ||
| 218 | - this.earthsites = true; | ||
| 219 | - return; | ||
| 220 | - } | ||
| 221 | - if(this.definitionKey == "workflow_conract"){ | ||
| 222 | - this.contract = true; | ||
| 223 | - return; | ||
| 224 | - } | ||
| 225 | - | ||
| 226 | - | ||
| 227 | - if(this.definitionKey == "workflow_threestep"){ | ||
| 228 | - this.open2 = true; | ||
| 229 | - return; | ||
| 230 | - } | ||
| 231 | - | ||
| 232 | - if (this.definitionKey == "logistics") { | ||
| 233 | - this.idInfo = row.businessKey.substring(row.businessKey.lastIndexOf(":") + 1); | ||
| 234 | - this.logisticsInfoOpen = true; | ||
| 235 | - return; | ||
| 236 | - } | ||
| 237 | - if (this.definitionKey == "handleAffairs" || this.definitionKey == "gongwenchuli" || this.definitionKey == "yuelan" || this.definitionKey=="yuelanxuexi") { | ||
| 238 | - this.controlId = this.form.formData[0].controlId; | ||
| 239 | - this.idInfo = row.businessKey.split(":")[1]; | ||
| 240 | - this.handleAffairsInfoOpen = true; | ||
| 241 | - return; | ||
| 242 | - } | ||
| 243 | - if(this.definitionKey == "workflow_caseoffline"){ | ||
| 244 | - this.caseOffline = true; | ||
| 245 | - return; | ||
| 246 | - } | ||
| 247 | - | ||
| 248 | - if(this.definitionKey == "workflow_casefile"){ | ||
| 249 | - this.violationCaseFile = true; | ||
| 250 | - return; | ||
| 251 | - } | ||
| 252 | 6 | ||
| 253 | - if(this.definitionKey == "violation_warning"){ | ||
| 254 | - this.violationCaseFile1 = true; | ||
| 255 | - return; | ||
| 256 | - } | 7 | +import history from "@/views/h5/taskhistory/index"; |
| 257 | 8 | ||
| 9 | + export default { | ||
| 10 | + name: "historyend", | ||
| 11 | + components: { | ||
| 12 | + history | ||
| 13 | + }, | ||
| 14 | + } | ||
| 258 | 15 | ||
| 259 | - }, | ||
| 260 | - } | ||
| 261 | - }; | ||
| 262 | </script> | 16 | </script> |
trash-ui/src/views/h5/taskhistory/index.vue
| @@ -6,42 +6,42 @@ | @@ -6,42 +6,42 @@ | ||
| 6 | <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> | 6 | <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> |
| 7 | 7 | ||
| 8 | 8 | ||
| 9 | - <el-dialog :title="title" :visible.sync="open2" width="800px" append-to-body> | 9 | + <el-dialog :title="title" :visible.sync="open2" width="300px" append-to-body> |
| 10 | <threestepInfo :businessKey="businessKey" v-if="open2"/> | 10 | <threestepInfo :businessKey="businessKey" v-if="open2"/> |
| 11 | </el-dialog> | 11 | </el-dialog> |
| 12 | 12 | ||
| 13 | - <el-dialog :title="title" :visible.sync="construct" width="800px" append-to-body> | 13 | + <el-dialog :title="title" :visible.sync="construct" width="300px" append-to-body> |
| 14 | <constructsiteInfo :businessKey="businessKey" :signData="signData" v-if="construct" /> | 14 | <constructsiteInfo :businessKey="businessKey" :signData="signData" v-if="construct" /> |
| 15 | </el-dialog> | 15 | </el-dialog> |
| 16 | <!-- 会议管理 --> | 16 | <!-- 会议管理 --> |
| 17 | - <el-dialog :title="title" :visible.sync="conferenceOpen" width="850px" append-to-body> | 17 | + <el-dialog :title="title" :visible.sync="conferenceOpen" width="300px" append-to-body> |
| 18 | <conferenceInfo :idInfo="idInfo" v-if="conferenceOpen"/> | 18 | <conferenceInfo :idInfo="idInfo" v-if="conferenceOpen"/> |
| 19 | </el-dialog> | 19 | </el-dialog> |
| 20 | 20 | ||
| 21 | <!-- 请假申请 --> | 21 | <!-- 请假申请 --> |
| 22 | - <el-dialog :title="title" :visible.sync="leaveApplicationOpen" width="500px" append-to-body> | 22 | + <el-dialog :title="title" :visible.sync="leaveApplicationOpen" width="300px" append-to-body> |
| 23 | <leaveApplicationInfo :idInfo="idInfo" v-if="leaveApplicationOpen"/> | 23 | <leaveApplicationInfo :idInfo="idInfo" v-if="leaveApplicationOpen"/> |
| 24 | </el-dialog> | 24 | </el-dialog> |
| 25 | 25 | ||
| 26 | 26 | ||
| 27 | - <el-dialog :title="title" :visible.sync="earthsites" width="800px" append-to-body> | 27 | + <el-dialog :title="title" :visible.sync="earthsites" width="300px" append-to-body> |
| 28 | <earthsitesInfo :businessKey="businessKey" v-if="earthsites" /> | 28 | <earthsitesInfo :businessKey="businessKey" v-if="earthsites" /> |
| 29 | </el-dialog> | 29 | </el-dialog> |
| 30 | 30 | ||
| 31 | - <el-dialog :title="title" :visible.sync="contract" width="800px" append-to-body> | 31 | + <el-dialog :title="title" :visible.sync="contract" width="300px" append-to-body> |
| 32 | <contractInfo :businessKey="businessKey" v-if="contract" /> | 32 | <contractInfo :businessKey="businessKey" v-if="contract" /> |
| 33 | </el-dialog> | 33 | </el-dialog> |
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | 36 | ||
| 37 | <!-- 后勤管理 --> | 37 | <!-- 后勤管理 --> |
| 38 | - <el-dialog :title="title" :visible.sync="logisticsInfoOpen" width="500px" append-to-body | 38 | + <el-dialog :title="title" :visible.sync="logisticsInfoOpen" width="300px" append-to-body |
| 39 | :close-on-click-modal="false"> | 39 | :close-on-click-modal="false"> |
| 40 | <logisticsInfo :idInfo="idInfo" v-if="logisticsInfoOpen"/> | 40 | <logisticsInfo :idInfo="idInfo" v-if="logisticsInfoOpen"/> |
| 41 | </el-dialog> | 41 | </el-dialog> |
| 42 | 42 | ||
| 43 | <!-- 办文办事 --> | 43 | <!-- 办文办事 --> |
| 44 | - <el-dialog :title="title" :visible.sync="handleAffairsInfoOpen" width="600px" append-to-body | 44 | + <el-dialog :title="title" :visible.sync="handleAffairsInfoOpen" width="300px" append-to-body |
| 45 | :close-on-click-modal="false"> | 45 | :close-on-click-modal="false"> |
| 46 | <handleInfo ref="handleAffairsInfoRef" :idInfo="idInfo" v-if="handleAffairsInfoOpen" :depts="depts" | 46 | <handleInfo ref="handleAffairsInfoRef" :idInfo="idInfo" v-if="handleAffairsInfoOpen" :depts="depts" |
| 47 | :businessKey="definitionKey" | 47 | :businessKey="definitionKey" |
| @@ -49,17 +49,17 @@ | @@ -49,17 +49,17 @@ | ||
| 49 | </el-dialog> | 49 | </el-dialog> |
| 50 | 50 | ||
| 51 | <!-- 线下案卷交办 --> | 51 | <!-- 线下案卷交办 --> |
| 52 | - <el-dialog :title="title" :visible.sync="caseOffline" width="600px" append-to-body :close-on-click-modal="false"> | 52 | + <el-dialog :title="title" :visible.sync="caseOffline" width="300px" append-to-body :close-on-click-modal="false"> |
| 53 | <caseOfflineInfo :businessKey="businessKey" v-if="caseOffline"/> | 53 | <caseOfflineInfo :businessKey="businessKey" v-if="caseOffline"/> |
| 54 | </el-dialog> | 54 | </el-dialog> |
| 55 | 55 | ||
| 56 | <!-- 平台违规信息 --> | 56 | <!-- 平台违规信息 --> |
| 57 | - <el-dialog :title="title" :visible.sync="violationCaseFile" width="850px" append-to-body :close-on-click-modal="false"> | 57 | + <el-dialog :title="title" :visible.sync="violationCaseFile" width="300px" append-to-body :close-on-click-modal="false"> |
| 58 | <violationCaseFileInfo :idInfo="businessKey" v-if="violationCaseFile"/> | 58 | <violationCaseFileInfo :idInfo="businessKey" v-if="violationCaseFile"/> |
| 59 | </el-dialog> | 59 | </el-dialog> |
| 60 | 60 | ||
| 61 | <!-- 违规预警信息 --> | 61 | <!-- 违规预警信息 --> |
| 62 | - <el-dialog :title="title" :visible.sync="violationCaseFile1" width="850px" append-to-body :close-on-click-modal="false"> | 62 | + <el-dialog :title="title" :visible.sync="violationCaseFile1" width="300px" append-to-body :close-on-click-modal="false"> |
| 63 | <violationWarningInformationInfo :idInfo="businessKey" v-if="violationCaseFile1"/> | 63 | <violationWarningInformationInfo :idInfo="businessKey" v-if="violationCaseFile1"/> |
| 64 | </el-dialog> | 64 | </el-dialog> |
| 65 | </div> | 65 | </div> |
| @@ -68,32 +68,37 @@ | @@ -68,32 +68,37 @@ | ||
| 68 | 68 | ||
| 69 | <script> | 69 | <script> |
| 70 | import { | 70 | import { |
| 71 | - | ||
| 72 | listEndTask, | 71 | listEndTask, |
| 73 | listTask, | 72 | listTask, |
| 74 | formDataShow | 73 | formDataShow |
| 75 | } from "@/api/activiti/taskhistory"; | 74 | } from "@/api/activiti/taskhistory"; |
| 76 | 75 | ||
| 77 | - import { getSignByObjId, addSign, updateSign } from "@/api/sign/sign"; | 76 | + import Treeselect from "@riophae/vue-treeselect"; |
| 77 | + import '@riophae/vue-treeselect/dist/vue-treeselect.css' | ||
| 78 | 78 | ||
| 79 | + import { getSignByObjId, addSign, updateSign } from "@/api/sign/sign"; | ||
| 80 | + import pagination from '../Pagination'; | ||
| 79 | 81 | ||
| 80 | import threestepInfo from "@/views/h5/task/threestepInfo"; | 82 | import threestepInfo from "@/views/h5/task/threestepInfo"; |
| 81 | import taskCard from "@/views/h5/task/taskCard"; | 83 | import taskCard from "@/views/h5/task/taskCard"; |
| 82 | import conferenceInfo from "@/views/h5/task/conferenceInfo"; | 84 | import conferenceInfo from "@/views/h5/task/conferenceInfo"; |
| 83 | - import leaveApplicationInfo from "@/views/h5/task/leaveApplicationInfo"; | 85 | + import leaveApplicationInfo from "@/views/h5/leaveApplication/leaveApplicationInfo"; |
| 84 | import constructsiteInfo from "@/views/h5/task/constructsiteInfo"; | 86 | import constructsiteInfo from "@/views/h5/task/constructsiteInfo"; |
| 85 | import earthsitesInfo from "@/views/h5/task/earthsitesInfo"; | 87 | import earthsitesInfo from "@/views/h5/task/earthsitesInfo"; |
| 86 | import contractInfo from "@/views/h5/task/contractInfo"; | 88 | import contractInfo from "@/views/h5/task/contractInfo"; |
| 87 | import logisticsInfo from "@/views/h5/task/logisticsInfo"; | 89 | import logisticsInfo from "@/views/h5/task/logisticsInfo"; |
| 88 | import handleInfo from "@/views/h5/task/handleInfo"; | 90 | import handleInfo from "@/views/h5/task/handleInfo"; |
| 89 | - import caseOfflineInfo from "@/views/h5/task/caseOfflineInfo"; | 91 | + import caseOfflineInfo from "@/views/h5/caseOffline/caseOfflineInfo"; |
| 90 | import violationCaseFileInfo from "@/views/h5/task/violationCaseFileInfo"; | 92 | import violationCaseFileInfo from "@/views/h5/task/violationCaseFileInfo"; |
| 91 | import violationWarningInformationInfo from "@/views/h5/task/violationWarningInformationInfo"; | 93 | import violationWarningInformationInfo from "@/views/h5/task/violationWarningInformationInfo"; |
| 92 | 94 | ||
| 93 | - | ||
| 94 | - | ||
| 95 | export default { | 95 | export default { |
| 96 | name: "taskHistory", | 96 | name: "taskHistory", |
| 97 | + props: { | ||
| 98 | + type: { | ||
| 99 | + type: Number | ||
| 100 | + } | ||
| 101 | + }, | ||
| 97 | components: { | 102 | components: { |
| 98 | taskCard, | 103 | taskCard, |
| 99 | threestepInfo, | 104 | threestepInfo, |
| @@ -107,6 +112,7 @@ | @@ -107,6 +112,7 @@ | ||
| 107 | contractInfo, | 112 | contractInfo, |
| 108 | caseOfflineInfo, | 113 | caseOfflineInfo, |
| 109 | violationCaseFileInfo, | 114 | violationCaseFileInfo, |
| 115 | + pagination, | ||
| 110 | violationWarningInformationInfo | 116 | violationWarningInformationInfo |
| 111 | }, | 117 | }, |
| 112 | data() { | 118 | data() { |
| @@ -154,6 +160,12 @@ | @@ -154,6 +160,12 @@ | ||
| 154 | signData:null, | 160 | signData:null, |
| 155 | earthsites:false, | 161 | earthsites:false, |
| 156 | contract:false, | 162 | contract:false, |
| 163 | + supervisionOpen:false, | ||
| 164 | + logisticsInfoOpen: false, | ||
| 165 | + handleAffairsInfoOpen: false, | ||
| 166 | + caseOffline: false, | ||
| 167 | + violationCaseFile: false, | ||
| 168 | + violationCaseFile1: false, | ||
| 157 | }; | 169 | }; |
| 158 | }, | 170 | }, |
| 159 | created() { | 171 | created() { |
| @@ -163,16 +175,37 @@ | @@ -163,16 +175,37 @@ | ||
| 163 | /** 查询请假列表 */ | 175 | /** 查询请假列表 */ |
| 164 | getList() { | 176 | getList() { |
| 165 | this.loading = true; | 177 | this.loading = true; |
| 166 | - listTask(this.queryParams).then(response => { | ||
| 167 | - this.taskList = response.rows; | ||
| 168 | - this.total = response.total; | ||
| 169 | - this.loading = false; | ||
| 170 | - }); | 178 | + |
| 179 | + if(this.type == 1){ | ||
| 180 | + listEndTask(this.queryParams).then(response => { | ||
| 181 | + this.taskList = response.rows; | ||
| 182 | + this.total = response.total; | ||
| 183 | + this.loading = false; | ||
| 184 | + }); | ||
| 185 | + }else{ | ||
| 186 | + listTask(this.queryParams).then(response => { | ||
| 187 | + this.taskList = response.rows; | ||
| 188 | + this.total = response.total; | ||
| 189 | + this.loading = false; | ||
| 190 | + }); | ||
| 191 | + } | ||
| 192 | + | ||
| 193 | + | ||
| 171 | }, | 194 | }, |
| 172 | 195 | ||
| 173 | // 取消按钮 | 196 | // 取消按钮 |
| 174 | cancel() { | 197 | cancel() { |
| 175 | this.open = false; | 198 | this.open = false; |
| 199 | + this.leaveApplicationOpen = false; | ||
| 200 | + this.conferenceOpen = false; | ||
| 201 | + this.construct = false; | ||
| 202 | + this.logisticsInfoOpen = false; | ||
| 203 | + this.handleAffairsInfoOpen = false; | ||
| 204 | + this.earthsites=false; | ||
| 205 | + this.contract=false; | ||
| 206 | + this.caseOffline=false; | ||
| 207 | + this.violationCaseFile=false; | ||
| 208 | + this.violationCaseFile1=false; | ||
| 176 | this.reset(); | 209 | this.reset(); |
| 177 | }, | 210 | }, |
| 178 | // 表单重置 | 211 | // 表单重置 |
| @@ -233,7 +266,6 @@ | @@ -233,7 +266,6 @@ | ||
| 233 | return; | 266 | return; |
| 234 | } | 267 | } |
| 235 | if (this.definitionKey == "handleAffairs" || this.definitionKey == "gongwenchuli" || this.definitionKey == "yuelan" || this.definitionKey=="yuelanxuexi") { | 268 | if (this.definitionKey == "handleAffairs" || this.definitionKey == "gongwenchuli" || this.definitionKey == "yuelan" || this.definitionKey=="yuelanxuexi") { |
| 236 | - this.controlId = this.form.formData[0].controlId; | ||
| 237 | this.idInfo = row.businessKey.split(":")[1]; | 269 | this.idInfo = row.businessKey.split(":")[1]; |
| 238 | this.handleAffairsInfoOpen = true; | 270 | this.handleAffairsInfoOpen = true; |
| 239 | return; | 271 | return; |
| @@ -252,7 +284,20 @@ | @@ -252,7 +284,20 @@ | ||
| 252 | this.violationCaseFile1 = true; | 284 | this.violationCaseFile1 = true; |
| 253 | return; | 285 | return; |
| 254 | } | 286 | } |
| 255 | - | 287 | + if(this.definitionKey.indexOf("supervision")>-1){ |
| 288 | + const params = { | ||
| 289 | + id: row.businessKey.split(":")[1], | ||
| 290 | + } | ||
| 291 | + getSupervision(params).then(res=>{ | ||
| 292 | + if(res.result==null){ | ||
| 293 | + this.$message.error("获取纪检督察详情失败!请重试") | ||
| 294 | + return; | ||
| 295 | + } | ||
| 296 | + this.supervisionData = res.result; | ||
| 297 | + this.supervisionOpen = true; | ||
| 298 | + }) | ||
| 299 | + return; | ||
| 300 | + } | ||
| 256 | 301 | ||
| 257 | }, | 302 | }, |
| 258 | 303 |
trash-workFlow/src/main/java/com/trash/business/controller/SupervisionThreestepController.java
| @@ -81,13 +81,27 @@ public class SupervisionThreestepController extends BaseController | @@ -81,13 +81,27 @@ public class SupervisionThreestepController extends BaseController | ||
| 81 | Integer pageNum = pageDomain.getPageNum(); | 81 | Integer pageNum = pageDomain.getPageNum(); |
| 82 | Integer pageSize = pageDomain.getPageSize(); | 82 | Integer pageSize = pageDomain.getPageSize(); |
| 83 | 83 | ||
| 84 | + if("430100".equals(supervisionThreestep.getPlace())){ | ||
| 85 | + supervisionThreestep.setPlace(null); | ||
| 86 | + } | ||
| 87 | + if("长沙市".equals(supervisionThreestep.getSubReason())){ | ||
| 88 | + supervisionThreestep.setSubReason(null); | ||
| 89 | + } | ||
| 90 | + | ||
| 84 | List<Map<String,String>> list = supervisionThreestepService.selectDayWorkList(supervisionThreestep); | 91 | List<Map<String,String>> list = supervisionThreestepService.selectDayWorkList(supervisionThreestep); |
| 85 | 92 | ||
| 93 | + TableDataInfo info = getDataTable(list); | ||
| 94 | + | ||
| 86 | if(list.size() > (pageNum)*pageSize){ | 95 | if(list.size() > (pageNum)*pageSize){ |
| 87 | list = list.subList((pageNum -1)*pageSize, (pageNum)*pageSize); | 96 | list = list.subList((pageNum -1)*pageSize, (pageNum)*pageSize); |
| 97 | + }else{ | ||
| 98 | + list = list.subList((pageNum -1)*pageSize, list.size()); | ||
| 88 | } | 99 | } |
| 89 | 100 | ||
| 90 | - return getDataTable(list); | 101 | + info.setRows(list); |
| 102 | + | ||
| 103 | + | ||
| 104 | + return info; | ||
| 91 | } | 105 | } |
| 92 | 106 | ||
| 93 | 107 |
trash-workFlow/src/main/java/com/trash/business/domain/SupervisionThreestep.java
| 1 | package com.trash.business.domain; | 1 | package com.trash.business.domain; |
| 2 | 2 | ||
| 3 | import java.util.Date; | 3 | import java.util.Date; |
| 4 | + | ||
| 5 | +import com.alibaba.druid.sql.visitor.functions.If; | ||
| 4 | import com.fasterxml.jackson.annotation.JsonFormat; | 6 | import com.fasterxml.jackson.annotation.JsonFormat; |
| 5 | import org.apache.commons.lang3.builder.ToStringBuilder; | 7 | import org.apache.commons.lang3.builder.ToStringBuilder; |
| 6 | import org.apache.commons.lang3.builder.ToStringStyle; | 8 | import org.apache.commons.lang3.builder.ToStringStyle; |
| @@ -132,8 +134,17 @@ public class SupervisionThreestep extends BaseEntity | @@ -132,8 +134,17 @@ public class SupervisionThreestep extends BaseEntity | ||
| 132 | private Date workStartTime; | 134 | private Date workStartTime; |
| 133 | private Date workEndTime; | 135 | private Date workEndTime; |
| 134 | 136 | ||
| 137 | + private String his; | ||
| 135 | 138 | ||
| 136 | 139 | ||
| 140 | + public String getHis() { | ||
| 141 | + return his; | ||
| 142 | +} | ||
| 143 | + | ||
| 144 | + public void setHis(String his) { | ||
| 145 | + this.his = his; | ||
| 146 | + } | ||
| 147 | + | ||
| 137 | public String getContractId() { | 148 | public String getContractId() { |
| 138 | return contractId; | 149 | return contractId; |
| 139 | } | 150 | } |
trash-workFlow/src/main/java/com/trash/business/domain/TruckActivate.java
| @@ -18,6 +18,7 @@ public class TruckActivate extends BaseEntity | @@ -18,6 +18,7 @@ public class TruckActivate extends BaseEntity | ||
| 18 | private static final long serialVersionUID = 1L; | 18 | private static final long serialVersionUID = 1L; |
| 19 | 19 | ||
| 20 | /** 序号 */ | 20 | /** 序号 */ |
| 21 | + @Excel(name = "序号") | ||
| 21 | private Long id; | 22 | private Long id; |
| 22 | 23 | ||
| 23 | /** 所属工地 */ | 24 | /** 所属工地 */ |
| @@ -37,14 +38,11 @@ public class TruckActivate extends BaseEntity | @@ -37,14 +38,11 @@ public class TruckActivate extends BaseEntity | ||
| 37 | @JsonFormat(pattern = "yyyy-MM-dd") | 38 | @JsonFormat(pattern = "yyyy-MM-dd") |
| 38 | private Date time; | 39 | private Date time; |
| 39 | 40 | ||
| 40 | - /** 状态 0当前 1历史 */ | ||
| 41 | - @Excel(name = "激活状态", readConverterExp = "1=未激活,0=已激活") | ||
| 42 | - private Long status; | ||
| 43 | - | ||
| 44 | /** 消纳场 */ | 41 | /** 消纳场 */ |
| 45 | @Excel(name = "消纳场") | 42 | @Excel(name = "消纳场") |
| 46 | private String earthsite; | 43 | private String earthsite; |
| 47 | 44 | ||
| 45 | + | ||
| 48 | /** 基础数据ID */ | 46 | /** 基础数据ID */ |
| 49 | private String objectId; | 47 | private String objectId; |
| 50 | 48 | ||
| @@ -55,6 +53,9 @@ public class TruckActivate extends BaseEntity | @@ -55,6 +53,9 @@ public class TruckActivate extends BaseEntity | ||
| 55 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | 53 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 56 | @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") | 54 | @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") |
| 57 | private Date activateTime; | 55 | private Date activateTime; |
| 56 | + /** 状态 0当前 1历史 */ | ||
| 57 | + @Excel(name = "激活状态", readConverterExp = "1=未激活,0=已激活") | ||
| 58 | + private Long status; | ||
| 58 | 59 | ||
| 59 | private String isAct; | 60 | private String isAct; |
| 60 | 61 |
trash-workFlow/src/main/java/com/trash/business/service/impl/SupervisionThreestepServiceImpl.java
| @@ -208,15 +208,33 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | @@ -208,15 +208,33 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | ||
| 208 | e.printStackTrace(); | 208 | e.printStackTrace(); |
| 209 | } | 209 | } |
| 210 | } | 210 | } |
| 211 | + if(supervisionThreestep.getHis().equals("1")){ | ||
| 212 | + try { | ||
| 213 | + supervisionThreestep.setWorkStartTime(dateTime.parse("2000-01-01 00:00:00")); | ||
| 214 | + supervisionThreestep.setWorkEndTime(dateTime.parse("2100-01-01 00:00:00")); | ||
| 215 | + } catch (ParseException e) { | ||
| 216 | + // TODO Auto-generated catch block | ||
| 217 | + e.printStackTrace(); | ||
| 218 | + } | ||
| 219 | + } | ||
| 220 | + | ||
| 221 | + | ||
| 211 | 222 | ||
| 212 | List<SupervisionThreestep> allList = supervisionThreestepMapper.selectDayWorkList(supervisionThreestep); | 223 | List<SupervisionThreestep> allList = supervisionThreestepMapper.selectDayWorkList(supervisionThreestep); |
| 213 | 224 | ||
| 214 | - System.out.println(allList.size()); | ||
| 215 | 225 | ||
| 216 | List<SupervisionThreestep> constructions = new ArrayList<>(); | 226 | List<SupervisionThreestep> constructions = new ArrayList<>(); |
| 217 | List<SupervisionThreestep> earthsites = new ArrayList<>(); | 227 | List<SupervisionThreestep> earthsites = new ArrayList<>(); |
| 218 | 228 | ||
| 219 | for(SupervisionThreestep s: allList){ | 229 | for(SupervisionThreestep s: allList){ |
| 230 | + | ||
| 231 | + if(supervisionThreestep.getHis().equals("1")){ | ||
| 232 | + if(yearFomat.format(s.getSelfCheckTime()).equals(yearFomat.format(new Date()))){ | ||
| 233 | + continue; | ||
| 234 | + } | ||
| 235 | + | ||
| 236 | + } | ||
| 237 | + | ||
| 220 | if(s.getType() == 0){ | 238 | if(s.getType() == 0){ |
| 221 | constructions.add(s); | 239 | constructions.add(s); |
| 222 | }else{ | 240 | }else{ |
| @@ -238,6 +256,11 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | @@ -238,6 +256,11 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | ||
| 238 | map.put("type", ""); | 256 | map.put("type", ""); |
| 239 | 257 | ||
| 240 | for(SupervisionThreestep e:earthsites){ | 258 | for(SupervisionThreestep e:earthsites){ |
| 259 | + | ||
| 260 | + if(s.getEarthsitesId() == null || e.getEarthsitesId() == null){ | ||
| 261 | + continue; | ||
| 262 | + } | ||
| 263 | + | ||
| 241 | if(s.getEarthsitesId().equals(e.getObjectId()) && yearFomat.format(s.getCreateTime()).equals(yearFomat.format(e.getCreateTime()))){ | 264 | if(s.getEarthsitesId().equals(e.getObjectId()) && yearFomat.format(s.getCreateTime()).equals(yearFomat.format(e.getCreateTime()))){ |
| 242 | 265 | ||
| 243 | if(s.getStatus() != 1 && e.getStatus() != 1){ | 266 | if(s.getStatus() != 1 && e.getStatus() != 1){ |
| @@ -274,11 +297,10 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | @@ -274,11 +297,10 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | ||
| 274 | map2.put("size", 1); | 297 | map2.put("size", 1); |
| 275 | map2.put("page", 1); | 298 | map2.put("page", 1); |
| 276 | 299 | ||
| 277 | - JSONArray earthList = RemoteServerUtils.getEarthSitesList(map2); | 300 | + JSONObject earthList = RemoteServerUtils.getEarthSitesInfo( s.getEarthsitesId()); |
| 278 | 301 | ||
| 279 | if(earthList != null && earthList.size() > 0){ | 302 | if(earthList != null && earthList.size() > 0){ |
| 280 | - earthList.get(0); | ||
| 281 | - map.put("eplace",((JSONObject)earthList.get(0)).getString("areaCode")); | 303 | + map.put("eplace",((JSONObject)earthList).getString("areaName")); |
| 282 | } | 304 | } |
| 283 | 305 | ||
| 284 | map.put("eid", s.getEarthsitesId()); | 306 | map.put("eid", s.getEarthsitesId()); |
| @@ -316,7 +338,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | @@ -316,7 +338,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | ||
| 316 | map.put("createTime", yearFomat.format(e.getCreateTime())); | 338 | map.put("createTime", yearFomat.format(e.getCreateTime())); |
| 317 | map.put("name", e.getEarthsitesName()); | 339 | map.put("name", e.getEarthsitesName()); |
| 318 | map.put("place", con.getString("areaCode")); | 340 | map.put("place", con.getString("areaCode")); |
| 319 | - map.put("status", "开工"); | 341 | + map.put("status", "未开工"); |
| 320 | map.put("objectId", e.getEarthsitesId()); | 342 | map.put("objectId", e.getEarthsitesId()); |
| 321 | map.put("eid", e.getObjectId()); | 343 | map.put("eid", e.getObjectId()); |
| 322 | map.put("etype", ""); | 344 | map.put("etype", ""); |
| @@ -354,12 +376,12 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | @@ -354,12 +376,12 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | ||
| 354 | 376 | ||
| 355 | for(Map<String,String> map:list){ | 377 | for(Map<String,String> map:list){ |
| 356 | if(place != null){ | 378 | if(place != null){ |
| 357 | - if(!map.get("place").equals(place)){ | 379 | + if(!place.equals(map.get("place"))){ |
| 358 | continue; | 380 | continue; |
| 359 | } | 381 | } |
| 360 | } | 382 | } |
| 361 | if(eplace != null){ | 383 | if(eplace != null){ |
| 362 | - if(!map.get("eplace").equals(eplace)){ | 384 | + if(!eplace.equals(map.get("eplace"))){ |
| 363 | continue; | 385 | continue; |
| 364 | } | 386 | } |
| 365 | } | 387 | } |
| @@ -410,7 +432,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | @@ -410,7 +432,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer | ||
| 410 | // TODO Auto-generated catch block | 432 | // TODO Auto-generated catch block |
| 411 | e.printStackTrace(); | 433 | e.printStackTrace(); |
| 412 | } | 434 | } |
| 413 | - | 435 | + |
| 414 | 436 | ||
| 415 | 437 | ||
| 416 | List<Map> map = supervisionThreestepMapper.selectDayWorkListByType(supervisionThreestep); | 438 | List<Map> map = supervisionThreestepMapper.selectDayWorkListByType(supervisionThreestep); |
trash-workFlow/src/main/java/com/trash/business/service/impl/TruckActivateServiceImpl.java
| @@ -112,9 +112,15 @@ public class TruckActivateServiceImpl implements ITruckActivateService | @@ -112,9 +112,15 @@ public class TruckActivateServiceImpl implements ITruckActivateService | ||
| 112 | 112 | ||
| 113 | threestep = threestepMapper.selectThreestepByTruckDate(threestep); | 113 | threestep = threestepMapper.selectThreestepByTruckDate(threestep); |
| 114 | 114 | ||
| 115 | - if(threestep.getName().equals(truckActivate.getConstruction()) && threestep.getEarthsitesName().equals(truckActivate.getEarthsite())){ | 115 | + if(threestep == null){ |
| 116 | + truckActivate.setId(oldDate.getId()); | ||
| 117 | + return truckActivateMapper.updateTruckActivate(truckActivate); | ||
| 118 | + | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + if(threestep.getName().equals(truckActivate.getConstruction())){ | ||
| 116 | truckActivate.setId(oldDate.getId()); | 122 | truckActivate.setId(oldDate.getId()); |
| 117 | - truckActivateMapper.updateTruckActivate(truckActivate); | 123 | + return truckActivateMapper.updateTruckActivate(truckActivate); |
| 118 | }else{ | 124 | }else{ |
| 119 | Long threeId = threestep.getId(); | 125 | Long threeId = threestep.getId(); |
| 120 | String trucks = threestep.getCompanyTrucks(); | 126 | String trucks = threestep.getCompanyTrucks(); |
| @@ -193,8 +199,7 @@ public class TruckActivateServiceImpl implements ITruckActivateService | @@ -193,8 +199,7 @@ public class TruckActivateServiceImpl implements ITruckActivateService | ||
| 193 | return truckActivateMapper.insertTruckActivate(truckActivate); | 199 | return truckActivateMapper.insertTruckActivate(truckActivate); |
| 194 | } | 200 | } |
| 195 | 201 | ||
| 196 | - | ||
| 197 | - return 0; | 202 | + |
| 198 | 203 | ||
| 199 | } | 204 | } |
| 200 | 205 |
trash-workFlow/src/main/resources/mapper/SupervisionThreestepMapper.xml
| @@ -180,6 +180,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | @@ -180,6 +180,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||
| 180 | select * from supervision_threestep | 180 | select * from supervision_threestep |
| 181 | <where> | 181 | <where> |
| 182 | and self_check_time BETWEEN #{workStartTime} and #{workEndTime} | 182 | and self_check_time BETWEEN #{workStartTime} and #{workEndTime} |
| 183 | + | ||
| 183 | </where> | 184 | </where> |
| 184 | ORDER BY create_time DESC | 185 | ORDER BY create_time DESC |
| 185 | 186 |