Commit dad3c46aed1430c29d3a22dfb06838d7fc17e3f1
1 parent
cb6cea09
m
Showing
30 changed files
with
3570 additions
and
464 deletions
Too many changes to show.
To preserve performance only 30 of 57 files are displayed.
sql/daily_situation.sql
| 1 | 1 | /* |
| 2 | - Navicat Premium Data Transfer | |
| 2 | + Navicat MySQL Data Transfer | |
| 3 | 3 | |
| 4 | - Source Server : SH | |
| 5 | - Source Server Type : MySQL | |
| 6 | - Source Server Version : 80024 | |
| 4 | + Source Server : mari | |
| 5 | + Source Server Type : MariaDB | |
| 6 | + Source Server Version : 100508 | |
| 7 | 7 | Source Host : localhost:3306 |
| 8 | 8 | Source Schema : trash |
| 9 | 9 | |
| 10 | - Target Server Type : MySQL | |
| 11 | - Target Server Version : 80024 | |
| 10 | + Target Server Type : MariaDB | |
| 11 | + Target Server Version : 100508 | |
| 12 | 12 | File Encoding : 65001 |
| 13 | 13 | |
| 14 | - Date: 23/04/2023 13:25:45 | |
| 14 | + Date: 22/05/2023 14:40:08 | |
| 15 | 15 | */ |
| 16 | 16 | |
| 17 | 17 | SET NAMES utf8mb4; |
| ... | ... | @@ -22,16 +22,22 @@ SET FOREIGN_KEY_CHECKS = 0; |
| 22 | 22 | -- ---------------------------- |
| 23 | 23 | DROP TABLE IF EXISTS `daily_situation`; |
| 24 | 24 | CREATE TABLE `daily_situation` ( |
| 25 | - `id` int(0) NOT NULL AUTO_INCREMENT COMMENT '主键id', | |
| 25 | + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', | |
| 26 | 26 | `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题', |
| 27 | 27 | `operator` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人', |
| 28 | 28 | `date` date NULL DEFAULT NULL COMMENT '日期', |
| 29 | 29 | `weather` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '天气', |
| 30 | - `Consumption_site_situation` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '全市工地,消纳场开停情况', | |
| 31 | - `Number_of_vehicles` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '车辆数', | |
| 32 | - `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', | |
| 33 | - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', | |
| 30 | + `Consumption_site_situation` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '全市工地,消纳场开停情况', | |
| 31 | + `Number_of_vehicles` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '车辆数', | |
| 32 | + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', | |
| 33 | + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', | |
| 34 | + `create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', | |
| 35 | + `case_file_info` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '平台案卷', | |
| 36 | + `warning_case_file_info` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '平台报警案卷', | |
| 37 | + `desc1` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL, | |
| 38 | + `desc2` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL, | |
| 39 | + `desc3` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL, | |
| 34 | 40 | PRIMARY KEY (`id`) USING BTREE |
| 35 | -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; | |
| 41 | +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; | |
| 36 | 42 | |
| 37 | 43 | SET FOREIGN_KEY_CHECKS = 1; | ... | ... |
trash-ui/src/api/business/daywork.js
| ... | ... | @@ -17,3 +17,11 @@ export function exportDayWorkList(data) { |
| 17 | 17 | data: data |
| 18 | 18 | }) |
| 19 | 19 | } |
| 20 | + | |
| 21 | +export function exportDayWorkHistoryList(data) { | |
| 22 | + return request({ | |
| 23 | + url: '/business/threestep/exportDayWorkHistoryList', | |
| 24 | + method: 'post', | |
| 25 | + data: data | |
| 26 | + }) | |
| 27 | +} | |
| 20 | 28 | \ No newline at end of file | ... | ... |
trash-ui/src/api/dict.js
| ... | ... | @@ -51,9 +51,12 @@ export function updateEarthsites(data) { |
| 51 | 51 | }); |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 54 | 57 | export function mainworkcompany(id) { |
| 55 | 58 | return requestRemote({ |
| 56 | - url: '/api/siteservice/cs/constructionsites/mainworkcompany/' + id, | |
| 59 | + url: '/api/siteservice/cs/constructionsites/' + id, | |
| 57 | 60 | method: 'get', |
| 58 | 61 | }); |
| 59 | 62 | } | ... | ... |
trash-ui/src/router/index.js
| ... | ... | @@ -185,6 +185,12 @@ export const constantRoutes = [ |
| 185 | 185 | meta: { title: '违规预警信息' } |
| 186 | 186 | }, |
| 187 | 187 | { |
| 188 | + path: 'casefile/violationWarningInformationTable', | |
| 189 | + component: (resolve) => require(['@/views/casefile/violationWarningInformation/violationWarningInformationTable'], resolve), | |
| 190 | + name: '违规预警信息统计表', | |
| 191 | + meta: { title: '违规预警信息统计表' } | |
| 192 | + }, | |
| 193 | + { | |
| 188 | 194 | path: 'casefile/violationCaseFile', |
| 189 | 195 | component: (resolve) => require(['@/views/casefile/violationCaseFile'], resolve), |
| 190 | 196 | name: '平台违规案卷', |
| ... | ... | @@ -235,25 +241,55 @@ export const constantRoutes = [ |
| 235 | 241 | { |
| 236 | 242 | path: 'task', |
| 237 | 243 | component: (resolve) => require(['@/views/h5/task/index'], resolve), |
| 238 | - name: '待办', | |
| 239 | - meta: { title: '待办' } | |
| 244 | + name: 'taskindex', | |
| 245 | + meta: { title: 'taskindex' } | |
| 240 | 246 | } , |
| 241 | 247 | { |
| 242 | 248 | path: 'taskhistory', |
| 243 | 249 | component: (resolve) => require(['@/views/h5/taskhistory/index'], resolve), |
| 244 | - name: '经办', | |
| 245 | - meta: { title: '经办' } | |
| 250 | + name: 'taskhistory', | |
| 251 | + meta: { title: 'taskhistory' } | |
| 246 | 252 | }, |
| 247 | 253 | { |
| 248 | 254 | path: 'taskend', |
| 249 | 255 | component: (resolve) => require(['@/views/h5/taskhistory/end'], resolve), |
| 250 | - name: '已办', | |
| 251 | - meta: { title: '已办' } | |
| 256 | + name: 'end', | |
| 257 | + meta: { title: 'end' } | |
| 252 | 258 | }, |
| 253 | 259 | |
| 260 | + { | |
| 261 | + path: 'EarthSitesCredit', | |
| 262 | + component: (resolve) => require(['@/views/h5/EarthSitesCredit'], resolve), | |
| 263 | + name: 'EarthSitesCredit', | |
| 264 | + meta: { title: 'EarthSitesCredit' } | |
| 265 | + }, | |
| 266 | + { | |
| 267 | + path: 'CompanyCredit', | |
| 268 | + component: (resolve) => require(['@/views/h5/CompanyCredit'], resolve), | |
| 269 | + name: 'CompanyCredit', | |
| 270 | + meta: { title: 'CompanyCredit' } | |
| 271 | + }, | |
| 272 | + { | |
| 273 | + path: 'TruckCredit', | |
| 274 | + component: (resolve) => require(['@/views/h5/TruckCredit'], resolve), | |
| 275 | + name: 'TruckCredit', | |
| 276 | + meta: { title: 'TruckCredit' } | |
| 277 | + }, | |
| 278 | + { | |
| 279 | + path: 'DriverCredit', | |
| 280 | + component: (resolve) => require(['@/views/h5/DriverCredit'], resolve), | |
| 281 | + name: 'DriverCredit', | |
| 282 | + meta: { title: 'DriverCredit' } | |
| 283 | + }, | |
| 284 | + { | |
| 285 | + path: 'ConstructionCredit', | |
| 286 | + component: (resolve) => require(['@/views/h5/ConstructionCredit'], resolve), | |
| 287 | + name: 'ConstructionCredit', | |
| 288 | + meta: { title: 'ConstructionCredit' } | |
| 289 | + }, | |
| 254 | 290 | { |
| 255 | 291 | path: 'leaveApplication', |
| 256 | - component: (resolve) => require(['@/views/h5/office/leaveApplication'], resolve), | |
| 292 | + component: (resolve) => require(['@/views/h5/leaveApplication'], resolve), | |
| 257 | 293 | name: 'leaveApplication', |
| 258 | 294 | meta: { title: 'leaveApplication' } |
| 259 | 295 | }, |
| ... | ... | @@ -269,6 +305,33 @@ export const constantRoutes = [ |
| 269 | 305 | name: 'dayWorkReport', |
| 270 | 306 | meta: { title: 'dayWorkReport' } |
| 271 | 307 | }, |
| 308 | + { | |
| 309 | + path: 'threestep', | |
| 310 | + component: (resolve) => require(['@/views/h5/threestep'], resolve), | |
| 311 | + name: 'threestep', | |
| 312 | + meta: { title: 'threestep' } | |
| 313 | + }, | |
| 314 | + { | |
| 315 | + path: 'caseOffline', | |
| 316 | + component: (resolve) => require(['@/views/h5/caseOffline'], resolve), | |
| 317 | + name: 'caseOffline', | |
| 318 | + meta: { title: 'caseOffline' } | |
| 319 | + }, | |
| 320 | + { | |
| 321 | + path: 'violationWarningInformation', | |
| 322 | + component: (resolve) => require(['@/views/h5/violationWarningInformation'], resolve), | |
| 323 | + name: 'violationWarningInformation', | |
| 324 | + meta: { title: 'violationWarningInformation' } | |
| 325 | + }, | |
| 326 | + { | |
| 327 | + path: 'violationCaseFile', | |
| 328 | + component: (resolve) => require(['@/views/h5/violationCaseFile'], resolve), | |
| 329 | + name: 'violationCaseFile', | |
| 330 | + meta: { title: 'violationCaseFile' } | |
| 331 | + }, | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 272 | 335 | ], |
| 273 | 336 | |
| 274 | 337 | }, | ... | ... |
trash-ui/src/views/activiti/task/constructsiteInfo.vue
| 1 | 1 | <template> |
| 2 | 2 | <div v-loading="loading"> |
| 3 | 3 | |
| 4 | + <el-button @click="printBody">打印</el-button> | |
| 5 | + <div id="printItem"> | |
| 4 | 6 | <el-row style="border: 1px solid black;" type="flex" align="middle" justify="center"> |
| 5 | 7 | <el-col :span="1" class="bd_padding"> |
| 6 | 8 | 勘察人员填写 |
| ... | ... | @@ -174,7 +176,7 @@ |
| 174 | 176 | </el-row> |
| 175 | 177 | </el-col> |
| 176 | 178 | </el-row> |
| 177 | - | |
| 179 | +</div> | |
| 178 | 180 | </div> |
| 179 | 181 | </template> |
| 180 | 182 | |
| ... | ... | @@ -271,10 +273,11 @@ import store from "@/store"; |
| 271 | 273 | }, |
| 272 | 274 | created() { |
| 273 | 275 | // if(){ |
| 274 | - if(window.location.search){ | |
| 275 | - this.businessKey = window.location.search.split("=")[1]; | |
| 276 | - } | |
| 277 | - // } | |
| 276 | + if(window.location.search){ | |
| 277 | + let arr = window.location.search.split("&"); | |
| 278 | + this.businessKey = arr[0].split("=")[1]; | |
| 279 | + } | |
| 280 | + | |
| 278 | 281 | |
| 279 | 282 | |
| 280 | 283 | this.loading = true; |
| ... | ... | @@ -282,6 +285,10 @@ import store from "@/store"; |
| 282 | 285 | |
| 283 | 286 | }, |
| 284 | 287 | methods: { |
| 288 | + printBody(){ | |
| 289 | + document.body.innerHTML = document.getElementById("printItem").innerHTML; | |
| 290 | + window.print(); | |
| 291 | + }, | |
| 285 | 292 | getInfo() { |
| 286 | 293 | let id; |
| 287 | 294 | if (this.businessKey.split(":").length == 2) { | ... | ... |
trash-ui/src/views/activiti/taskhistory/end.vue
| ... | ... | @@ -5,55 +5,73 @@ |
| 5 | 5 | |
| 6 | 6 | <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> |
| 7 | 7 | |
| 8 | + <!-- 审批对话框 --> | |
| 9 | + <el-dialog :title="title" :visible.sync="open" v-if="open" width="500px" append-to-body> | |
| 10 | + | |
| 11 | + <div slot="footer" class="dialog-footer"> | |
| 12 | + <el-button type="danger" @click="submitForm(form.formData[0].controlId ,1)">驳回</el-button> | |
| 13 | + <el-button type="primary" @click="submitForm(form.formData[0].controlId ,0)">通过</el-button> | |
| 14 | + </div> | |
| 15 | + </el-dialog> | |
| 16 | + | |
| 17 | + | |
| 8 | 18 | <el-dialog :title="title" :visible.sync="open2" width="800px" append-to-body> |
| 9 | 19 | <threestepInfo :businessKey="businessKey" v-if="open2"/> |
| 10 | 20 | |
| 11 | 21 | </el-dialog> |
| 12 | 22 | <el-dialog :title="title" :visible.sync="construct" width="800px" append-to-body> |
| 13 | 23 | <constructsiteInfo :businessKey="businessKey" :signData="signData" v-if="construct" /> |
| 14 | - <div slot="footer" class="dialog-footer"> | |
| 15 | - <el-button type="danger" @click="submitForm(form.formData[0].controlId ,1)">驳回</el-button> | |
| 16 | - <el-button type="primary" @click="submitForm(form.formData[0].controlId ,0)">通过</el-button> | |
| 17 | - </div> | |
| 18 | 24 | </el-dialog> |
| 19 | 25 | <!-- 会议管理 --> |
| 20 | 26 | <el-dialog :title="title" :visible.sync="conferenceOpen" width="850px" append-to-body> |
| 21 | 27 | <conferenceInfo :idInfo="idInfo" v-if="conferenceOpen"/> |
| 22 | - <div slot="footer" class="dialog-footer"> | |
| 23 | - <div slot="footer" class="dialog-footer"> | |
| 24 | - <el-button type="danger" @click="conferenceSubmitForm(1)">驳回</el-button> | |
| 25 | - <el-button type="primary" @click="conferenceSubmitForm(0)">通过</el-button> | |
| 26 | - </div> | |
| 27 | - </div> | |
| 28 | 28 | </el-dialog> |
| 29 | 29 | |
| 30 | 30 | <!-- 请假申请 --> |
| 31 | 31 | <el-dialog :title="title" :visible.sync="leaveApplicationOpen" width="500px" append-to-body> |
| 32 | 32 | <leaveApplicationInfo :idInfo="idInfo" v-if="leaveApplicationOpen"/> |
| 33 | - <div slot="footer" class="dialog-footer"> | |
| 34 | - <div slot="footer" class="dialog-footer"> | |
| 35 | - <el-button type="danger" @click="leaveApplicationSubmitForm(1)">驳回</el-button> | |
| 36 | - <el-button type="primary" @click="leaveApplicationSubmitForm(0)">通过</el-button> | |
| 37 | - </div> | |
| 38 | - </div> | |
| 39 | 33 | </el-dialog> |
| 40 | 34 | |
| 41 | 35 | |
| 42 | 36 | <el-dialog :title="title" :visible.sync="earthsites" width="800px" append-to-body> |
| 43 | 37 | <earthsitesInfo :businessKey="businessKey" v-if="earthsites" /> |
| 44 | - <div slot="footer" class="dialog-footer"> | |
| 45 | - <el-button type="danger" @click="submitForm(form.formData[0].controlId ,1)">驳回</el-button> | |
| 46 | - <el-button type="primary" @click="submitForm(form.formData[0].controlId ,0)">通过</el-button> | |
| 47 | - </div> | |
| 48 | 38 | </el-dialog> |
| 49 | 39 | |
| 50 | 40 | <el-dialog :title="title" :visible.sync="contract" width="800px" append-to-body> |
| 51 | 41 | <contractInfo :businessKey="businessKey" v-if="contract" /> |
| 52 | - <div slot="footer" class="dialog-footer"> | |
| 53 | - <el-button type="danger" @click="submitForm(form.formData[0].controlId ,1)">驳回</el-button> | |
| 54 | - <el-button type="primary" @click="submitForm(form.formData[0].controlId ,0)">通过</el-button> | |
| 55 | - </div> | |
| 56 | 42 | </el-dialog> |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + <!-- 后勤管理 --> | |
| 47 | + <el-dialog :title="title" :visible.sync="logisticsInfoOpen" width="500px" append-to-body | |
| 48 | + :close-on-click-modal="false"> | |
| 49 | + <logisticsInfo :idInfo="idInfo" v-if="logisticsInfoOpen"/> | |
| 50 | + </el-dialog> | |
| 51 | + | |
| 52 | + <!-- 办文办事 --> | |
| 53 | + <el-dialog :title="title" :visible.sync="handleAffairsInfoOpen" width="600px" append-to-body | |
| 54 | + :close-on-click-modal="false"> | |
| 55 | + <handleInfo ref="handleAffairsInfoRef" :idInfo="idInfo" v-if="handleAffairsInfoOpen" :depts="depts" | |
| 56 | + :businessKey="definitionKey" | |
| 57 | + :controlId="controlId"/> | |
| 58 | + </el-dialog> | |
| 59 | + | |
| 60 | + <!-- 线下案卷交办 --> | |
| 61 | + <el-dialog :title="title" :visible.sync="caseOffline" width="600px" append-to-body :close-on-click-modal="false"> | |
| 62 | + <caseOfflineInfo :businessKey="businessKey" v-if="caseOffline"/> | |
| 63 | + </el-dialog> | |
| 64 | + | |
| 65 | + <!-- 平台违规信息 --> | |
| 66 | + <el-dialog :title="title" :visible.sync="violationCaseFile" width="850px" append-to-body :close-on-click-modal="false"> | |
| 67 | + <violationCaseFileInfo :idInfo="businessKey" v-if="violationCaseFile"/> | |
| 68 | + </el-dialog> | |
| 69 | + | |
| 70 | + <!-- 违规预警信息 --> | |
| 71 | + <el-dialog :title="title" :visible.sync="violationCaseFile1" width="850px" append-to-body :close-on-click-modal="false"> | |
| 72 | + <violationWarningInformationInfo :idInfo="businessKey" v-if="violationCaseFile1"/> | |
| 73 | + </el-dialog> | |
| 74 | + | |
| 57 | 75 | </div> |
| 58 | 76 | </template> |
| 59 | 77 | |
| ... | ... | @@ -68,17 +86,20 @@ |
| 68 | 86 | formDataShow |
| 69 | 87 | } from "@/api/activiti/taskhistory"; |
| 70 | 88 | |
| 89 | + import { getSignByObjId, addSign, updateSign } from "@/api/sign/sign"; | |
| 71 | 90 | import taskCard from "@/views/activiti/task/taskCard"; |
| 72 | 91 | import earthSitesForm from "@/views/workflow/earthSitesForm"; |
| 73 | 92 | import threestepInfo from "@/views/business/threestep/threestepInfo"; |
| 74 | - | |
| 75 | - | |
| 76 | -import { getSignByObjId, addSign, updateSign } from "@/api/sign/sign"; | |
| 77 | -import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; | |
| 93 | + import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; | |
| 78 | 94 | import conferenceInfo from "@/views/office/conference/conferenceInfo"; |
| 79 | 95 | import leaveApplicationInfo from "@/views/office/leaveApplication/leaveApplicationInfo"; |
| 80 | 96 | import earthsitesInfo from "@/views/activiti/task/earthsitesInfo"; |
| 81 | 97 | import contractInfo from "@/views/activiti/task/contractInfo"; |
| 98 | + import logisticsInfo from "@/views/office/logistics/logisticsInfo"; | |
| 99 | + import handleInfo from "@/views/office/handle/handleInfo"; | |
| 100 | + import caseOfflineInfo from "@/views/caseOffline/caseOffline/caseOfflineInfo"; | |
| 101 | + import violationCaseFileInfo from "@/views/casefile/violationCaseFile/violationCaseFileInfo"; | |
| 102 | + import violationWarningInformationInfo from "@/views/casefile/violationWarningInformation/violationWarningInformationInfo"; | |
| 82 | 103 | |
| 83 | 104 | |
| 84 | 105 | export default { |
| ... | ... | @@ -210,6 +231,33 @@ import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; |
| 210 | 231 | return; |
| 211 | 232 | } |
| 212 | 233 | |
| 234 | + if (this.definitionKey == "logistics") { | |
| 235 | + this.idInfo = row.businessKey.substring(row.businessKey.lastIndexOf(":") + 1); | |
| 236 | + this.logisticsInfoOpen = true; | |
| 237 | + return; | |
| 238 | + } | |
| 239 | + if (this.definitionKey == "handleAffairs" || this.definitionKey == "gongwenchuli" || this.definitionKey == "yuelan" || this.definitionKey=="yuelanxuexi") { | |
| 240 | + this.controlId = this.form.formData[0].controlId; | |
| 241 | + this.idInfo = row.businessKey.split(":")[1]; | |
| 242 | + this.handleAffairsInfoOpen = true; | |
| 243 | + return; | |
| 244 | + } | |
| 245 | + if(this.definitionKey == "workflow_caseoffline"){ | |
| 246 | + this.caseOffline = true; | |
| 247 | + return; | |
| 248 | + } | |
| 249 | + | |
| 250 | + if(this.definitionKey == "workflow_casefile"){ | |
| 251 | + this.violationCaseFile = true; | |
| 252 | + return; | |
| 253 | + } | |
| 254 | + | |
| 255 | + if(this.definitionKey == "violation_warning"){ | |
| 256 | + this.violationCaseFile1 = true; | |
| 257 | + return; | |
| 258 | + } | |
| 259 | + | |
| 260 | + | |
| 213 | 261 | }, |
| 214 | 262 | } |
| 215 | 263 | }; | ... | ... |
trash-ui/src/views/activiti/taskhistory/index.vue
| ... | ... | @@ -5,6 +5,14 @@ |
| 5 | 5 | |
| 6 | 6 | <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> |
| 7 | 7 | |
| 8 | + <!-- 审批对话框 --> | |
| 9 | + <el-dialog :title="title" :visible.sync="open" v-if="open" width="500px" append-to-body> | |
| 10 | + | |
| 11 | + <div slot="footer" class="dialog-footer"> | |
| 12 | + <el-button type="danger" @click="submitForm(form.formData[0].controlId ,1)">驳回</el-button> | |
| 13 | + <el-button type="primary" @click="submitForm(form.formData[0].controlId ,0)">通过</el-button> | |
| 14 | + </div> | |
| 15 | + </el-dialog> | |
| 8 | 16 | <el-dialog :title="title" :visible.sync="open2" width="800px" append-to-body> |
| 9 | 17 | <threestepInfo :businessKey="businessKey" v-if="open2"/> |
| 10 | 18 | </el-dialog> |
| ... | ... | @@ -25,18 +33,41 @@ |
| 25 | 33 | |
| 26 | 34 | <el-dialog :title="title" :visible.sync="earthsites" width="800px" append-to-body> |
| 27 | 35 | <earthsitesInfo :businessKey="businessKey" v-if="earthsites" /> |
| 28 | - <div slot="footer" class="dialog-footer"> | |
| 29 | - <el-button type="danger" @click="submitForm(form.formData[0].controlId ,1)">驳回</el-button> | |
| 30 | - <el-button type="primary" @click="submitForm(form.formData[0].controlId ,0)">通过</el-button> | |
| 31 | - </div> | |
| 32 | 36 | </el-dialog> |
| 33 | 37 | |
| 34 | 38 | <el-dialog :title="title" :visible.sync="contract" width="800px" append-to-body> |
| 35 | 39 | <contractInfo :businessKey="businessKey" v-if="contract" /> |
| 36 | - <div slot="footer" class="dialog-footer"> | |
| 37 | - <el-button type="danger" @click="submitForm(form.formData[0].controlId ,1)">驳回</el-button> | |
| 38 | - <el-button type="primary" @click="submitForm(form.formData[0].controlId ,0)">通过</el-button> | |
| 39 | - </div> | |
| 40 | + </el-dialog> | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + <!-- 后勤管理 --> | |
| 45 | + <el-dialog :title="title" :visible.sync="logisticsInfoOpen" width="500px" append-to-body | |
| 46 | + :close-on-click-modal="false"> | |
| 47 | + <logisticsInfo :idInfo="idInfo" v-if="logisticsInfoOpen"/> | |
| 48 | + </el-dialog> | |
| 49 | + | |
| 50 | + <!-- 办文办事 --> | |
| 51 | + <el-dialog :title="title" :visible.sync="handleAffairsInfoOpen" width="600px" append-to-body | |
| 52 | + :close-on-click-modal="false"> | |
| 53 | + <handleInfo ref="handleAffairsInfoRef" :idInfo="idInfo" v-if="handleAffairsInfoOpen" :depts="depts" | |
| 54 | + :businessKey="definitionKey" | |
| 55 | + :controlId="controlId"/> | |
| 56 | + </el-dialog> | |
| 57 | + | |
| 58 | + <!-- 线下案卷交办 --> | |
| 59 | + <el-dialog :title="title" :visible.sync="caseOffline" width="600px" append-to-body :close-on-click-modal="false"> | |
| 60 | + <caseOfflineInfo :businessKey="businessKey" v-if="caseOffline"/> | |
| 61 | + </el-dialog> | |
| 62 | + | |
| 63 | + <!-- 平台违规信息 --> | |
| 64 | + <el-dialog :title="title" :visible.sync="violationCaseFile" width="850px" append-to-body :close-on-click-modal="false"> | |
| 65 | + <violationCaseFileInfo :idInfo="businessKey" v-if="violationCaseFile"/> | |
| 66 | + </el-dialog> | |
| 67 | + | |
| 68 | + <!-- 违规预警信息 --> | |
| 69 | + <el-dialog :title="title" :visible.sync="violationCaseFile1" width="850px" append-to-body :close-on-click-modal="false"> | |
| 70 | + <violationWarningInformationInfo :idInfo="businessKey" v-if="violationCaseFile1"/> | |
| 40 | 71 | </el-dialog> |
| 41 | 72 | </div> |
| 42 | 73 | </template> |
| ... | ... | @@ -51,21 +82,20 @@ |
| 51 | 82 | formDataShow |
| 52 | 83 | } from "@/api/activiti/taskhistory"; |
| 53 | 84 | |
| 54 | - | |
| 55 | - | |
| 56 | - | |
| 85 | + import { getSignByObjId, addSign, updateSign } from "@/api/sign/sign"; | |
| 57 | 86 | import taskCard from "@/views/activiti/task/taskCard"; |
| 58 | - import leaveHistoryForm from "@/views/workflow/leaveHistoryForm"; | |
| 87 | + import earthSitesForm from "@/views/workflow/earthSitesForm"; | |
| 59 | 88 | import threestepInfo from "@/views/business/threestep/threestepInfo"; |
| 60 | - | |
| 61 | - | |
| 62 | -import { getSignByObjId, addSign, updateSign } from "@/api/sign/sign"; | |
| 63 | -import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; | |
| 64 | - | |
| 89 | + import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; | |
| 65 | 90 | import conferenceInfo from "@/views/office/conference/conferenceInfo"; |
| 66 | 91 | import leaveApplicationInfo from "@/views/office/leaveApplication/leaveApplicationInfo"; |
| 67 | 92 | import earthsitesInfo from "@/views/activiti/task/earthsitesInfo"; |
| 68 | 93 | import contractInfo from "@/views/activiti/task/contractInfo"; |
| 94 | + import logisticsInfo from "@/views/office/logistics/logisticsInfo"; | |
| 95 | + import handleInfo from "@/views/office/handle/handleInfo"; | |
| 96 | + import caseOfflineInfo from "@/views/caseOffline/caseOffline/caseOfflineInfo"; | |
| 97 | + import violationCaseFileInfo from "@/views/casefile/violationCaseFile/violationCaseFileInfo"; | |
| 98 | + import violationWarningInformationInfo from "@/views/casefile/violationWarningInformation/violationWarningInformationInfo"; | |
| 69 | 99 | |
| 70 | 100 | |
| 71 | 101 | |
| ... | ... | @@ -162,6 +192,7 @@ import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; |
| 162 | 192 | this.businessKey = row.businessKey; |
| 163 | 193 | this.id = row.id; |
| 164 | 194 | |
| 195 | + this.title = "详情"; | |
| 165 | 196 | |
| 166 | 197 | if(this.definitionKey == "conference"){ |
| 167 | 198 | this.idInfo = row.businessKey.substring(row.businessKey.indexOf(":")+1); |
| ... | ... | @@ -181,32 +212,46 @@ import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; |
| 181 | 212 | }); |
| 182 | 213 | return; |
| 183 | 214 | } |
| 215 | + if(this.definitionKey == "workflow_earthsites"){ | |
| 216 | + this.earthsites = true; | |
| 217 | + return; | |
| 218 | + } | |
| 219 | + if(this.definitionKey == "workflow_conract"){ | |
| 220 | + this.contract = true; | |
| 221 | + return; | |
| 222 | + } | |
| 223 | + | |
| 224 | + | |
| 225 | + if(this.definitionKey == "workflow_threestep"){ | |
| 226 | + this.open2 = true; | |
| 227 | + return; | |
| 228 | + } | |
| 184 | 229 | |
| 185 | - if(this.definitionKey == "workflow_constructsite"){ | |
| 186 | - getSignByObjId(this.businessKey.split(":")[1]).then(res=>{ | |
| 187 | - this.signData = res; | |
| 188 | - this.construct = true; | |
| 189 | - }); | |
| 190 | - return; | |
| 191 | - } | |
| 192 | - if(this.definitionKey == "workflow_earthsites"){ | |
| 193 | - this.earthsites = true; | |
| 194 | - return; | |
| 195 | - } | |
| 196 | - if(this.definitionKey == "workflow_conract"){ | |
| 197 | - this.contract = true; | |
| 198 | - return; | |
| 199 | - } | |
| 200 | - | |
| 201 | - | |
| 202 | - if(this.definitionKey == "workflow_threestep"){ | |
| 203 | - this.open2 = true; | |
| 204 | - return; | |
| 205 | - } | |
| 206 | - | |
| 207 | - | |
| 208 | - | |
| 209 | - | |
| 230 | + if (this.definitionKey == "logistics") { | |
| 231 | + this.idInfo = row.businessKey.substring(row.businessKey.lastIndexOf(":") + 1); | |
| 232 | + this.logisticsInfoOpen = true; | |
| 233 | + return; | |
| 234 | + } | |
| 235 | + 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]; | |
| 238 | + this.handleAffairsInfoOpen = true; | |
| 239 | + return; | |
| 240 | + } | |
| 241 | + if(this.definitionKey == "workflow_caseoffline"){ | |
| 242 | + this.caseOffline = true; | |
| 243 | + return; | |
| 244 | + } | |
| 245 | + | |
| 246 | + if(this.definitionKey == "workflow_casefile"){ | |
| 247 | + this.violationCaseFile = true; | |
| 248 | + return; | |
| 249 | + } | |
| 250 | + | |
| 251 | + if(this.definitionKey == "violation_warning"){ | |
| 252 | + this.violationCaseFile1 = true; | |
| 253 | + return; | |
| 254 | + } | |
| 210 | 255 | |
| 211 | 256 | |
| 212 | 257 | }, | ... | ... |
trash-ui/src/views/business/CompanyCredit/index.vue
| ... | ... | @@ -152,7 +152,7 @@ |
| 152 | 152 | <el-table-column label="序号" align="center" type="index" /> |
| 153 | 153 | <el-table-column label="失信时间" align="center" prop="time" width="180"> |
| 154 | 154 | <template slot-scope="scope"> |
| 155 | - <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span> | |
| 155 | + <span>{{ scope.row.time}}</span> | |
| 156 | 156 | </template> |
| 157 | 157 | </el-table-column> |
| 158 | 158 | <el-table-column label="情况说明" align="center" prop="reason" /> | ... | ... |
trash-ui/src/views/business/ConstructionCredit/index.vue
| ... | ... | @@ -140,7 +140,7 @@ |
| 140 | 140 | </div> |
| 141 | 141 | </el-dialog> |
| 142 | 142 | |
| 143 | - <el-dialog title="历史失信" :visible.sync="infoDialog" width="800px" append-to-body> | |
| 143 | + <el-dialog title="历史失信" :visible.sync="infoDialog" width="300px" append-to-body> | |
| 144 | 144 | <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> |
| 145 | 145 | <el-table-column label="序号" align="center" type="index" /> |
| 146 | 146 | <el-table-column label="失信时间" align="center" prop="time" width="180" /> | ... | ... |
trash-ui/src/views/business/DriverCredit/index.vue
| ... | ... | @@ -130,9 +130,6 @@ |
| 130 | 130 | <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> |
| 131 | 131 | <el-table-column label="序号" align="center" type="index" /> |
| 132 | 132 | <el-table-column label="失信时间" align="center" prop="time" width="180"> |
| 133 | - <template slot-scope="scope"> | |
| 134 | - <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span> | |
| 135 | - </template> | |
| 136 | 133 | </el-table-column> |
| 137 | 134 | <el-table-column label="情况说明" align="center" prop="reason" /> |
| 138 | 135 | <el-table-column label="操作历史" align="center" prop="lostCredit"> | ... | ... |
trash-ui/src/views/business/TruckCredit/index.vue
| ... | ... | @@ -133,9 +133,6 @@ |
| 133 | 133 | <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> |
| 134 | 134 | <el-table-column label="序号" align="center" type="index" /> |
| 135 | 135 | <el-table-column label="失信时间" align="center" prop="time" width="180" > |
| 136 | - <template slot-scope="scope"> | |
| 137 | - <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span> | |
| 138 | - </template> | |
| 139 | 136 | </el-table-column> |
| 140 | 137 | <el-table-column label="情况说明" align="center" prop="reason" /> |
| 141 | 138 | <el-table-column label="操作历史" align="center" prop="lostCredit"> | ... | ... |
trash-ui/src/views/business/dayWorkReport/index.vue
| ... | ... | @@ -82,7 +82,8 @@ |
| 82 | 82 | <script> |
| 83 | 83 | import { |
| 84 | 84 | dayWorkList, |
| 85 | - exportDayWorkList | |
| 85 | + exportDayWorkList, | |
| 86 | + exportDayWorkHistoryList | |
| 86 | 87 | } from "@/api/business/daywork"; |
| 87 | 88 | |
| 88 | 89 | |
| ... | ... | @@ -207,19 +208,18 @@ |
| 207 | 208 | |
| 208 | 209 | this.loading = true; |
| 209 | 210 | |
| 210 | - let query = this.queryParams; | |
| 211 | + // let query = this.queryParams; | |
| 212 | + | |
| 211 | 213 | |
| 212 | 214 | if(this.queryParams.his != tabIdx && tabIdx == 1){ |
| 215 | + this.resetQuery(); | |
| 213 | 216 | this.queryParams.his = tabIdx; |
| 214 | - query.workStartTime = "2000-01-01 00:00:00"; | |
| 215 | - query.workEndTime = "2999-01-01 00:00:00"; | |
| 216 | 217 | }else if(tabIdx==0){ |
| 218 | + this.resetQuery(); | |
| 217 | 219 | this.queryParams.his = null; |
| 218 | - query.workStartTime = null; | |
| 219 | - query.workEndTime = null; | |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | - dayWorkList(query).then(response => { | |
| 222 | + dayWorkList(this.queryParams).then(response => { | |
| 223 | 223 | |
| 224 | 224 | this.threestepList = response.rows; |
| 225 | 225 | |
| ... | ... | @@ -229,6 +229,8 @@ |
| 229 | 229 | this.threestepList[i].place = this.getAreaName(this.threestepList[i].place); |
| 230 | 230 | if(this.outside.indexOf(this.threestepList[i].place) > -1){ |
| 231 | 231 | if(this.threestepList[i].status == "开工"){ |
| 232 | + this.threestepList[i].estatus = "开工"; | |
| 233 | + this.threestepList[i].eselfCheckTime = this.threestepList[i].selfCheckTime; | |
| 232 | 234 | this.threestepList[i].descript = "开工"; |
| 233 | 235 | } |
| 234 | 236 | } |
| ... | ... | @@ -269,7 +271,20 @@ |
| 269 | 271 | str = ""; |
| 270 | 272 | } |
| 271 | 273 | |
| 272 | - this.dayWorkCount = str + "长沙市工地开工数量:" + count + " " + str +"长沙市消纳场开工数量:" + count1; | |
| 274 | + let area = "长沙市"; | |
| 275 | + let area1 = "长沙市"; | |
| 276 | + | |
| 277 | + if(this.queryParams.place){ | |
| 278 | + area = this.getAreaName(this.queryParams.place) | |
| 279 | + } | |
| 280 | + | |
| 281 | + | |
| 282 | + if(this.queryParams.subReason){ | |
| 283 | + area1 = this.getAreaName(this.queryParams.subReason) | |
| 284 | + } | |
| 285 | + | |
| 286 | + | |
| 287 | + this.dayWorkCount = str + area +"工地开工数量:" + count + " " + str + area1 +"消纳场开工数量:" + count1; | |
| 273 | 288 | this.loading = false; |
| 274 | 289 | }); |
| 275 | 290 | |
| ... | ... | @@ -456,11 +471,12 @@ |
| 456 | 471 | handleExport() { |
| 457 | 472 | |
| 458 | 473 | let data = []; |
| 474 | + let index = 1; | |
| 459 | 475 | for(let i in this.threestepList){ |
| 460 | 476 | |
| 461 | 477 | |
| 462 | 478 | let obj = { |
| 463 | - id:this.threestepList[i].id, | |
| 479 | + id:index, | |
| 464 | 480 | name:this.threestepList[i].name, |
| 465 | 481 | createTime:this.threestepList[i].createTime, |
| 466 | 482 | selfCheckTime:this.threestepList[i].selfCheckTime, |
| ... | ... | @@ -476,19 +492,32 @@ |
| 476 | 492 | } |
| 477 | 493 | |
| 478 | 494 | data.push(obj); |
| 495 | + index += 1; | |
| 479 | 496 | |
| 497 | + } | |
| 498 | + if(this.queryParams.his ==1){ | |
| 499 | + this.$confirm('是否确认导出所有开工报表数据项?', "警告", { | |
| 500 | + confirmButtonText: "确定", | |
| 501 | + cancelButtonText: "取消", | |
| 502 | + type: "warning" | |
| 503 | + }).then(function() { | |
| 504 | + return exportDayWorkHistoryList(data); | |
| 505 | + }).then(response => { | |
| 506 | + this.download(response.message); | |
| 507 | + }) | |
| 508 | + }else{ | |
| 509 | + this.$confirm('是否确认导出所有开工报表数据项?', "警告", { | |
| 510 | + confirmButtonText: "确定", | |
| 511 | + cancelButtonText: "取消", | |
| 512 | + type: "warning" | |
| 513 | + }).then(function() { | |
| 514 | + return exportDayWorkList(data); | |
| 515 | + }).then(response => { | |
| 516 | + this.download(response.message); | |
| 517 | + }) | |
| 518 | + } | |
| 480 | 519 | |
| 481 | 520 | |
| 482 | - } | |
| 483 | - this.$confirm('是否确认导出所有开工报表数据项?', "警告", { | |
| 484 | - confirmButtonText: "确定", | |
| 485 | - cancelButtonText: "取消", | |
| 486 | - type: "warning" | |
| 487 | - }).then(function() { | |
| 488 | - return exportDayWorkList(data); | |
| 489 | - }).then(response => { | |
| 490 | - this.download(response.message); | |
| 491 | - }) | |
| 492 | 521 | } |
| 493 | 522 | } |
| 494 | 523 | }; | ... | ... |
trash-ui/src/views/business/threestep/index.vue
| ... | ... | @@ -87,12 +87,11 @@ |
| 87 | 87 | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| 88 | 88 | <template slot-scope="scope"> |
| 89 | 89 | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" |
| 90 | - v-hasPermi="['business:threestep:edit']" v-if="queryParams.pageStatus==1 && scope.row.status==1">抽查</el-button> | |
| 90 | + v-hasPermi="['business:threestep:edit']" v-if="queryParams.pageStatus==1 && scope.row.status==1 && scope.row.checkEndTime == null">抽查</el-button> | |
| 91 | 91 | <el-button size="mini" type="text" icon="el-icon-edit" @click="reSub(scope.row)" |
| 92 | 92 | v-hasPermi="['business:threestep:add']" v-if="scope.row.status==2">被驳回</el-button> |
| 93 | 93 | |
| 94 | - <el-button size="mini" type="text" @click="handleUpdate(scope.row)" | |
| 95 | - v-hasPermi="['business:threestep:edit']">查看详情</el-button> | |
| 94 | + <el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['business:threestep:edit']">查看详情</el-button> | |
| 96 | 95 | </template> |
| 97 | 96 | </el-table-column> |
| 98 | 97 | </el-table> |
| ... | ... | @@ -154,18 +153,18 @@ |
| 154 | 153 | </el-form-item> |
| 155 | 154 | </el-col> |
| 156 | 155 | </el-row> |
| 157 | - <el-row type="flex" justify="center" v-if="form.type == 0"> | |
| 158 | - <el-col :span="12"> | |
| 156 | + <el-row type="flex" justify="center" v-if="form.type == 0" > | |
| 157 | + <el-col :span="12" > | |
| 159 | 158 | <el-form-item label="运输企业" prop="companys"> |
| 160 | - <el-select v-model="form.companys" filterable multiple @change="checkCompany"> | |
| 159 | + <el-select v-model="form.companys" filterable multiple @change="checkCompany" > | |
| 161 | 160 | <el-option v-for="item in companyList" :label="item.name" :value="item.name" :key="item.id" |
| 162 | 161 | /> |
| 163 | 162 | </el-select> |
| 164 | 163 | </el-form-item> |
| 165 | 164 | </el-col> |
| 166 | - <el-col :span="12"> | |
| 167 | - <el-form-item label="运输车辆" prop="companyTrucks"> | |
| 168 | - <el-select v-model="form.companyTrucks" filterable multiple reserve-keyword> | |
| 165 | + <el-col :span="12" > | |
| 166 | + <el-form-item label="运输车辆" prop="companyTrucks" > | |
| 167 | + <el-select v-model="form.companyTrucks" filterable multiple reserve-keyword > | |
| 169 | 168 | <el-option v-for="item in truckList" :label="item.licenseplateNo" :value="item.id" :key="item.id" |
| 170 | 169 | v-if="form.companys && (form.companys.indexOf(item.companyName) > -1)"></el-option> |
| 171 | 170 | </el-select> |
| ... | ... | @@ -281,7 +280,7 @@ |
| 281 | 280 | |
| 282 | 281 | <el-form ref="form" :model="form" :rules="rules" label-width="100px" v-if="this.queryParams.pageStatus==1"> |
| 283 | 282 | <el-form-item label="补充说明"> |
| 284 | - <el-input type="textarea" v-model="form.subSubReason" ></el-input> | |
| 283 | + <el-input type="textarea" v-model="form.subSubReason" maxlength="100"></el-input> | |
| 285 | 284 | </el-form-item> |
| 286 | 285 | |
| 287 | 286 | <el-row type="flex" justify="center"> |
| ... | ... | @@ -301,8 +300,6 @@ |
| 301 | 300 | <p v-for="img,index in form.attchItem3">{{img.split("/")[img.split("/").length -1]}}<a @click="removeAttchItem(3,img)" style="color:red"> x</a></p> |
| 302 | 301 | </el-col> |
| 303 | 302 | </el-row> |
| 304 | - | |
| 305 | - | |
| 306 | 303 | </el-form> |
| 307 | 304 | |
| 308 | 305 | <div slot="footer" class="dialog-footer"> |
| ... | ... | @@ -436,6 +433,9 @@ |
| 436 | 433 | }, |
| 437 | 434 | // 表单参数 |
| 438 | 435 | form: { |
| 436 | + companys:null, | |
| 437 | + companyTrucks:null, | |
| 438 | + | |
| 439 | 439 | }, |
| 440 | 440 | picIndex: null, |
| 441 | 441 | // 表单校验 |
| ... | ... | @@ -450,11 +450,6 @@ |
| 450 | 450 | message: '请填写完整', |
| 451 | 451 | trigger: 'change' |
| 452 | 452 | }, ], |
| 453 | - companys: [{ | |
| 454 | - required: true, | |
| 455 | - message: '请填写完整', | |
| 456 | - trigger: 'change' | |
| 457 | - }, ], | |
| 458 | 453 | objectId: [{ |
| 459 | 454 | required: true, |
| 460 | 455 | message: '请填写完整', |
| ... | ... | @@ -470,8 +465,13 @@ |
| 470 | 465 | message: '请填写完整', |
| 471 | 466 | trigger: 'change' |
| 472 | 467 | }, ], |
| 468 | + companys: [{ | |
| 469 | + required: false, | |
| 470 | + message: '请填写完整', | |
| 471 | + trigger: 'change' | |
| 472 | + }, ], | |
| 473 | 473 | companyTrucks: [{ |
| 474 | - required: true, | |
| 474 | + required: false, | |
| 475 | 475 | message: '请填写完整', |
| 476 | 476 | trigger: 'change' |
| 477 | 477 | }, ], |
| ... | ... | @@ -520,30 +520,31 @@ |
| 520 | 520 | } |
| 521 | 521 | }); |
| 522 | 522 | |
| 523 | - let query = { | |
| 524 | - 'page':1, | |
| 525 | - 'size':9999, | |
| 526 | - } | |
| 523 | + // let query = { | |
| 524 | + // 'page':1, | |
| 525 | + // 'size':9999, | |
| 526 | + // } | |
| 527 | 527 | |
| 528 | - companyList(query).then(response => { | |
| 528 | + // companyList(query).then(response => { | |
| 529 | 529 | |
| 530 | - let companys = response.result.list; | |
| 531 | - this.companyList = companys; | |
| 532 | - let ids = []; | |
| 530 | + // let companys = response.result.list; | |
| 531 | + // this.companyList = companys; | |
| 532 | + // let ids = []; | |
| 533 | 533 | |
| 534 | - for(let i = 0 ;i<companys.length;i++){ | |
| 535 | - ids.push(companys[i].id); | |
| 536 | - } | |
| 537 | - query.companyID = ids + ""; | |
| 538 | - query.valid = 0; | |
| 534 | + // for(let i = 0 ;i<companys.length;i++){ | |
| 535 | + // ids.push(companys[i].id); | |
| 536 | + // } | |
| 537 | + // query.companyID = ids + ""; | |
| 538 | + // query.valid = 0; | |
| 539 | 539 | |
| 540 | - truckList(query).then(res=>{ | |
| 541 | - this.truckList = res.result.list; | |
| 542 | - }); | |
| 543 | - }); | |
| 540 | + // truckList(query).then(res=>{ | |
| 541 | + // this.truckList = res.result.list; | |
| 542 | + // }); | |
| 543 | + // }); | |
| 544 | 544 | |
| 545 | 545 | |
| 546 | 546 | this.getList(0); |
| 547 | + | |
| 547 | 548 | }, |
| 548 | 549 | methods: { |
| 549 | 550 | conractCheck(item){ |
| ... | ... | @@ -626,58 +627,44 @@ |
| 626 | 627 | 'size':9999, |
| 627 | 628 | } |
| 628 | 629 | |
| 629 | - companyList(query).then(response => { | |
| 630 | + this.companyList = []; | |
| 631 | + this.truckList = []; | |
| 630 | 632 | |
| 631 | - let companys = response.result.list; | |
| 632 | - this.companyList = companys; | |
| 633 | - let ids = []; | |
| 633 | + mainworkcompany(item.id).then(response => { | |
| 634 | 634 | |
| 635 | - for(let i = 0 ;i<companys.length;i++){ | |
| 636 | - ids.push(companys[i].id); | |
| 637 | - } | |
| 638 | - query.companyID = ids + ""; | |
| 639 | - query.valid = 0; | |
| 640 | - | |
| 641 | - truckList(query).then(res=>{ | |
| 642 | - this.truckList = res.result.list; | |
| 643 | - }); | |
| 644 | - }); | |
| 635 | + this.companyList.push({id:item.transportCompanyId , name: item.transportCompany}); | |
| 645 | 636 | |
| 646 | - // mainworkcompany(item.id).then(response => { | |
| 637 | + let query = { | |
| 638 | + 'page':1, | |
| 639 | + 'size':9999, | |
| 640 | + 'creditStatus':0 | |
| 641 | + } | |
| 647 | 642 | |
| 648 | - // let companys = response.result.list; | |
| 649 | - // this.companyList = companys; | |
| 650 | - // let ids = []; | |
| 643 | + let ids = []; | |
| 651 | 644 | |
| 652 | - // for(let i = 0 ;i<companys.length;i++){ | |
| 653 | - // ids.push(companys[i].id); | |
| 654 | - // } | |
| 645 | + ids.push(item.transportCompanyId); | |
| 655 | 646 | |
| 656 | - // let query = { | |
| 657 | - // 'page':1, | |
| 658 | - // 'size':9999, | |
| 659 | - // 'creditStatus':0 | |
| 660 | - // } | |
| 647 | + query.companyID = ids; | |
| 648 | + query.valid = 0; | |
| 661 | 649 | |
| 662 | - // query.companyID = ids + ""; | |
| 663 | - // query.valid = 0; | |
| 650 | + getConstructionTruck(item.id).then(res=>{ | |
| 651 | + for(let i in res.result){ | |
| 664 | 652 | |
| 665 | - // getConstructionTruck(item.id).then(res=>{ | |
| 666 | - // for(let i in res.result){ | |
| 653 | + this.companyList.push({id:res.result[i].companyId , name: res.result[i].companyName}); | |
| 667 | 654 | |
| 668 | - // this.companyList.push({id:res.result[i].companyId , name: res.result[i].companyName}); | |
| 655 | + query.companyID += "," + res.result[i].companyId; | |
| 669 | 656 | |
| 670 | - // ids.push(res.result[i].companyId); | |
| 657 | + query.companyID = query.companyID.substring(0,query.companyID.length -1); | |
| 671 | 658 | |
| 672 | - // truckList(query).then(res=>{ | |
| 673 | - // this.truckList = res.result.list; | |
| 674 | - // }); | |
| 659 | + truckList(query).then(res=>{ | |
| 660 | + this.truckList = res.result.list; | |
| 661 | + }); | |
| 675 | 662 | |
| 676 | - // } | |
| 677 | - // }); | |
| 663 | + } | |
| 664 | + }); | |
| 678 | 665 | |
| 679 | 666 | |
| 680 | - // }); | |
| 667 | + }); | |
| 681 | 668 | |
| 682 | 669 | |
| 683 | 670 | } |
| ... | ... | @@ -716,6 +703,7 @@ |
| 716 | 703 | this.filterContract.push(obj); |
| 717 | 704 | } |
| 718 | 705 | |
| 706 | + | |
| 719 | 707 | for(let j in this.bindData){ |
| 720 | 708 | |
| 721 | 709 | this.bindData[j].show = false; |
| ... | ... | @@ -731,11 +719,7 @@ |
| 731 | 719 | } |
| 732 | 720 | |
| 733 | 721 | } |
| 734 | - | |
| 735 | - | |
| 736 | 722 | } |
| 737 | - | |
| 738 | - | |
| 739 | 723 | }, |
| 740 | 724 | getEarthsiteId(item) { |
| 741 | 725 | this.form.earthsitesName = item.name; |
| ... | ... | @@ -770,8 +754,6 @@ |
| 770 | 754 | this.form[target].push(res); |
| 771 | 755 | return; |
| 772 | 756 | } |
| 773 | - | |
| 774 | - | |
| 775 | 757 | let target = "img" + this.picIndex; |
| 776 | 758 | |
| 777 | 759 | if (!this.form[target]) { |
| ... | ... | @@ -807,6 +789,9 @@ |
| 807 | 789 | this.fileList = []; |
| 808 | 790 | }, |
| 809 | 791 | selectType(value) { |
| 792 | + | |
| 793 | + this.rules.companys[0].required = false; | |
| 794 | + this.rules.companyTrucks[0].required = false; | |
| 810 | 795 | if (value == "0") { |
| 811 | 796 | this.labelName = "工地名称"; |
| 812 | 797 | this.labelName2 = "绑定消纳场"; |
| ... | ... | @@ -836,11 +821,14 @@ |
| 836 | 821 | for(let i in this.bindData){ |
| 837 | 822 | this.bindData[i].show = true; |
| 838 | 823 | } |
| 824 | + this.rules.companys[0].required = true; | |
| 825 | + this.rules.companyTrucks[0].required = true; | |
| 839 | 826 | } else { |
| 840 | 827 | this.remoteData = res.result.list; |
| 841 | 828 | } |
| 842 | 829 | }); |
| 843 | 830 | |
| 831 | + | |
| 844 | 832 | }, |
| 845 | 833 | |
| 846 | 834 | getAreaName(code){ |
| ... | ... | @@ -896,9 +884,6 @@ |
| 896 | 884 | this.threestepList[i].place = this.getAreaName(this.threestepList[i].place); |
| 897 | 885 | } |
| 898 | 886 | }); |
| 899 | - | |
| 900 | - | |
| 901 | - | |
| 902 | 887 | }, |
| 903 | 888 | // 取消按钮 |
| 904 | 889 | cancel() { |
| ... | ... | @@ -995,7 +980,16 @@ |
| 995 | 980 | }, |
| 996 | 981 | |
| 997 | 982 | checkEndSuccess(){ |
| 998 | - this.form.checkEndTime = new Date(); | |
| 983 | + | |
| 984 | + let year = new Date().getFullYear(); | |
| 985 | + let month = (new Date().getMonth() + 1) < 10 ? "0" + (new Date().getMonth() + 1) : (new Date().getMonth() + 1); | |
| 986 | + let date = new Date().getDate() < 10 ? "0" + new Date().getDate() : new Date().getDate(); | |
| 987 | + let hour = new Date().getHours() < 10 ? "0" + new Date().getHours() : new Date().getHours(); | |
| 988 | + let minute = new Date().getMinutes() < 10 ? "0" + new Date().getMinutes() : new Date().getMinutes(); | |
| 989 | + let second = new Date().getSeconds() < 10 ? "0" + new Date().getSeconds() : new Date().getSeconds(); | |
| 990 | + | |
| 991 | + | |
| 992 | + this.form.checkEndTime = year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second; | |
| 999 | 993 | this.form.id = this.businessKey; |
| 1000 | 994 | for (let i = 1; i < 4; i++) { |
| 1001 | 995 | if (this.form["attchItem" + i]) { |
| ... | ... | @@ -1020,11 +1014,11 @@ |
| 1020 | 1014 | this.msgSuccess("提交成功"); |
| 1021 | 1015 | this.open = false; |
| 1022 | 1016 | this.open2 = false; |
| 1017 | + this.info = false; | |
| 1023 | 1018 | this.getList(); |
| 1024 | 1019 | this.loading = false; |
| 1025 | 1020 | },error=>{ |
| 1026 | 1021 | this.loading = false; |
| 1027 | - console.log(this.form); | |
| 1028 | 1022 | this.form.companys = this.form.companys.split(","); |
| 1029 | 1023 | this.form.companyTrucks = this.form.companyTrucks.split(","); |
| 1030 | 1024 | |
| ... | ... | @@ -1048,6 +1042,7 @@ |
| 1048 | 1042 | this.msgSuccess("修改成功"); |
| 1049 | 1043 | this.open = false; |
| 1050 | 1044 | this.open2 = false; |
| 1045 | + this.info = false; | |
| 1051 | 1046 | this.getList(); |
| 1052 | 1047 | this.loading = false; |
| 1053 | 1048 | },error=>{ | ... | ... |
trash-ui/src/views/business/threestep/threestepInfo.vue
| ... | ... | @@ -294,7 +294,7 @@ |
| 294 | 294 | </el-row> |
| 295 | 295 | <el-row v-if="infoData.sub_img6" > |
| 296 | 296 | <el-col :span="4"> |
| 297 | - {{form.type==0?"摄像头视频截图2":"雾炮机"}} | |
| 297 | + {{infoData.type==0?"摄像头视频截图2":"雾炮机"}} | |
| 298 | 298 | </el-col> |
| 299 | 299 | <el-col :span="20"> |
| 300 | 300 | <el-row v-for="img,index in infoData.sub_img6.split(',')" style="margin-bottom:10px;"> |
| ... | ... | @@ -304,7 +304,7 @@ |
| 304 | 304 | </el-row> |
| 305 | 305 | <el-row v-if="infoData.sub_img7" > |
| 306 | 306 | <el-col :span="4"> |
| 307 | - {{form.type==0?"摄像头视频截图3":"裸露黄土覆盖照片"}} | |
| 307 | + {{infoData.type==0?"摄像头视频截图3":"裸露黄土覆盖照片"}} | |
| 308 | 308 | </el-col> |
| 309 | 309 | <el-col :span="20"> |
| 310 | 310 | <el-row v-for="img,index in infoData.sub_img7.split(',')" style="margin-bottom:10px;"> | ... | ... |
trash-ui/src/views/caseOffline/caseOffline/index.vue
| ... | ... | @@ -246,22 +246,26 @@ export default { |
| 246 | 246 | |
| 247 | 247 | if(window.location.search){ |
| 248 | 248 | let businessKey = window.location.search.split("=")[1]; |
| 249 | - let id; | |
| 250 | - if(businessKey.split(":").length == 2){ | |
| 251 | - id = businessKey.split(":")[1]; | |
| 252 | - }else{ | |
| 253 | - id = businessKey; | |
| 254 | - } | |
| 249 | + debugger; | |
| 250 | + if(window.location.search.split("=")[0] == "?businessKey"){ | |
| 251 | + let id; | |
| 252 | + if(businessKey.split(":").length == 2){ | |
| 253 | + id = businessKey.split(":")[1]; | |
| 254 | + }else{ | |
| 255 | + id = businessKey; | |
| 256 | + } | |
| 255 | 257 | |
| 256 | - getThreestep(id).then(response => { | |
| 257 | - let data = response.data; | |
| 258 | + getThreestep(id).then(response => { | |
| 259 | + let data = response.data; | |
| 258 | 260 | |
| 259 | - this.handleAdd(); | |
| 261 | + this.handleAdd(); | |
| 262 | + | |
| 263 | + this.form.siteType = data.type + ""; | |
| 264 | + this.form.siteName = data.name; | |
| 265 | + this.form.place = Number(data.place); | |
| 266 | + }); | |
| 267 | + } | |
| 260 | 268 | |
| 261 | - this.form.siteType = data.type + ""; | |
| 262 | - this.form.siteName = data.name; | |
| 263 | - this.form.place = Number(data.place); | |
| 264 | - }); | |
| 265 | 269 | } |
| 266 | 270 | |
| 267 | 271 | ... | ... |
trash-ui/src/views/casefile/violationCaseFile/index.vue
| ... | ... | @@ -56,16 +56,6 @@ |
| 56 | 56 | v-hasPermi="['casefile:violationCaseFile:add']" |
| 57 | 57 | >新增</el-button> |
| 58 | 58 | </el-col> |
| 59 | - <el-col :span="1.5"> | |
| 60 | - <el-button | |
| 61 | - type="success" | |
| 62 | - icon="el-icon-edit" | |
| 63 | - size="mini" | |
| 64 | - :disabled="single" | |
| 65 | - @click="handleUpdate" | |
| 66 | - v-hasPermi="['casefile:violationCaseFile:edit']" | |
| 67 | - >修改</el-button> | |
| 68 | - </el-col> | |
| 69 | 59 | <!-- <el-col :span="1.5">--> |
| 70 | 60 | <!-- <el-button--> |
| 71 | 61 | <!-- type="danger"--> | ... | ... |
trash-ui/src/views/casefile/violationWarningInformation/index.vue
| ... | ... | @@ -48,16 +48,6 @@ |
| 48 | 48 | v-hasPermi="['casefile:violationWarningInformation:add']" |
| 49 | 49 | >新增</el-button> |
| 50 | 50 | </el-col> |
| 51 | - <el-col :span="1.5"> | |
| 52 | - <el-button | |
| 53 | - type="success" | |
| 54 | - icon="el-icon-edit" | |
| 55 | - size="mini" | |
| 56 | - :disabled="single" | |
| 57 | - @click="handleUpdate" | |
| 58 | - v-hasPermi="['casefile:violationWarningInformation:edit']" | |
| 59 | - >修改</el-button> | |
| 60 | - </el-col> | |
| 61 | 51 | <!-- <el-col :span="1.5">--> |
| 62 | 52 | <!-- <el-button--> |
| 63 | 53 | <!-- type="danger"--> | ... | ... |
trash-ui/src/views/daily/situation/index.vue
| ... | ... | @@ -151,7 +151,7 @@ |
| 151 | 151 | <editor v-model="form.desc2" :min-height="192"/> |
| 152 | 152 | </el-form-item> |
| 153 | 153 | |
| 154 | - <el-form-item label="特发时间处置等其他情况" prop="desc3"> | |
| 154 | + <el-form-item label="突发事件处置等其他情况" prop="desc3"> | |
| 155 | 155 | <editor v-model="form.desc3" :min-height="192"/> |
| 156 | 156 | </el-form-item> |
| 157 | 157 | ... | ... |
trash-ui/src/views/h5/CompanyCredit/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="app-container"> | |
| 3 | + <el-row :gutter="10" class="mb8"> | |
| 4 | + <el-col :span="1.5"> | |
| 5 | + <el-button :class="{'el-button':true, 'el-button--primary':this.queryParams.status==0}" size="mini" @click="getData(1);" >失信企业</el-button> | |
| 6 | + </el-col> | |
| 7 | + <el-col :span="1.5"> | |
| 8 | + <el-button :class="{'el-button':true,'el-button--primary':this.queryParams.status==1}" size="mini" @click="getHistoryData(1);">历史失信企业</el-button> | |
| 9 | + </el-col> | |
| 10 | + </el-row> | |
| 11 | + | |
| 12 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> | |
| 13 | + | |
| 14 | + <el-form-item label="运输企业" prop="name"> | |
| 15 | + <el-select v-model="queryParams.name" | |
| 16 | + filterable | |
| 17 | + reserve-keyword | |
| 18 | + placeholder="运输企业" | |
| 19 | + | |
| 20 | + size="small" | |
| 21 | + :loading="loading"> | |
| 22 | + <el-option | |
| 23 | + v-for="item in dictNames" | |
| 24 | + :label="item" | |
| 25 | + :value="item"> | |
| 26 | + </el-option> | |
| 27 | + </el-select> | |
| 28 | + </el-form-item> | |
| 29 | + | |
| 30 | + <el-form-item label="所属区域" prop="place"> | |
| 31 | + <el-select v-model="queryParams.place" placeholder="所属区域" | |
| 32 | + filterable | |
| 33 | + reserve-keyword | |
| 34 | + | |
| 35 | + size="small" | |
| 36 | + :loading="loading"> | |
| 37 | + <el-option | |
| 38 | + v-for="item in dictPlaces" | |
| 39 | + :label="item" | |
| 40 | + :value="item"> | |
| 41 | + </el-option> | |
| 42 | + </el-select> | |
| 43 | + </el-form-item> | |
| 44 | + | |
| 45 | + <el-form-item label="失信日期" prop="time" v-show="queryParams.status==0"> | |
| 46 | + <el-date-picker size="small" style="width: 200px" v-model="queryParams.time" type="date" | |
| 47 | + value-format="yyyy-MM-dd" placeholder="失信日期"> | |
| 48 | + </el-date-picker> | |
| 49 | + </el-form-item> | |
| 50 | + | |
| 51 | + </el-form> | |
| 52 | + | |
| 53 | + <el-row :gutter="10" class="mb8"> | |
| 54 | + <el-col :span="1.5"> | |
| 55 | + <el-button type="primary" size="mini" @click="handleAdd" v-hasPermi="['Company:credit:add']" v-if="queryParams.status==0">新增</el-button> | |
| 56 | + </el-col> | |
| 57 | + <el-col :span="1.5"> | |
| 58 | + <el-button size="mini" @click="handleExport" v-hasPermi="['Company:credit:export']">导出</el-button> | |
| 59 | + </el-col> | |
| 60 | + <el-col :span="1.5"> | |
| 61 | + <el-button type="primary" size="mini" @click="handleQuery">查询</el-button> | |
| 62 | + </el-col> | |
| 63 | + <el-col :span="1.5"> | |
| 64 | + <el-button size="mini" @click="resetQuery">重置</el-button> | |
| 65 | + </el-col> | |
| 66 | + </el-row> | |
| 67 | + | |
| 68 | + | |
| 69 | + <el-card class="box-card" v-for="item in creditList" style="margin-bottom: 10px;" | |
| 70 | + > | |
| 71 | + <el-row class="card_row"> | |
| 72 | + <el-col :span="24" class="card_grid"> | |
| 73 | + <div class="card_title" style="font-weight: bold;">运输企业:{{ item.name }}</div> | |
| 74 | + </el-col> | |
| 75 | + </el-row> | |
| 76 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 77 | + <el-col :span="24"> | |
| 78 | + <span >失信时间:{{ item.time }}</span> | |
| 79 | + </el-col> | |
| 80 | + </el-row> | |
| 81 | + | |
| 82 | + <el-row class="card_row"> | |
| 83 | + <el-col :span="24"> | |
| 84 | + <span >所属区域:{{item.place}}</span> | |
| 85 | + </el-col> | |
| 86 | + </el-row> | |
| 87 | + <el-row class="card_row"> | |
| 88 | + <el-col :span="24"> | |
| 89 | + <span >失信原因:{{item.reason}}</span> | |
| 90 | + </el-col> | |
| 91 | + </el-row> | |
| 92 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==0">撤销失信</el-button> | |
| 93 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="getDataInfo(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==1">查看</el-button> | |
| 94 | + </el-card> | |
| 95 | + | |
| 96 | + <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> | |
| 97 | + | |
| 98 | + <!-- 添加或修改工地对话框 --> | |
| 99 | + <el-dialog :title="title" :visible.sync="open" width="300px" append-to-body v-loading="loading"> | |
| 100 | + <el-form ref="form" :model="form" :rules="rules" label-width="80px" v-if="open"> | |
| 101 | + <el-form-item label="运输企业" prop="name"> | |
| 102 | + <el-select | |
| 103 | + v-model="form.name" | |
| 104 | + filterable | |
| 105 | + reserve-keyword | |
| 106 | + placeholder="运输企业"> | |
| 107 | + <el-option | |
| 108 | + @click.native="getObjId(item)" | |
| 109 | + v-for="item in companyList" | |
| 110 | + :key="item.id" | |
| 111 | + :label="item.name" | |
| 112 | + :value="item.name" | |
| 113 | + v-if="item.dishonestState == 0"> | |
| 114 | + </el-option> | |
| 115 | + </el-select> | |
| 116 | + </el-form-item> | |
| 117 | + | |
| 118 | + <el-form-item label="所属区域" prop="place"> | |
| 119 | + <el-input | |
| 120 | + v-model="form.place" | |
| 121 | + placeholder="所属区域" disabled /> | |
| 122 | + </el-form-item> | |
| 123 | + <el-form-item label="失信原因" prop="reason"> | |
| 124 | + <el-input v-model="form.reason" placeholder="失信原因" /> | |
| 125 | + </el-form-item> | |
| 126 | + <el-input v-model="form.lostCredit" value="1" type="hidden" /> | |
| 127 | + <el-input v-model="form.objectId" type="hidden" /> | |
| 128 | + </el-form> | |
| 129 | + <div slot="footer" class="dialog-footer"> | |
| 130 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 131 | + <el-button @click="cancel">退出</el-button> | |
| 132 | + </div> | |
| 133 | + </el-dialog> | |
| 134 | + | |
| 135 | + | |
| 136 | + <el-dialog title="撤销失信" :visible.sync="isEdit" width="300px" append-to-body v-loading="loading"> | |
| 137 | + <el-form ref="updateForm" :model="updateForm" :rules="rules2" label-width="80px" v-if="updateForm" > | |
| 138 | + <el-form-item label="情况说明" prop="reason" > | |
| 139 | + <el-input v-model="updateForm.reason" type="textarea" maxlength="200" show-word-limit/> | |
| 140 | + </el-form-item> | |
| 141 | + </el-form> | |
| 142 | + <div slot="footer" class="dialog-footer"> | |
| 143 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 144 | + <el-button @click="cancel">退出</el-button> | |
| 145 | + </div> | |
| 146 | + </el-dialog> | |
| 147 | + | |
| 148 | + <el-dialog title="历史失信" :visible.sync="infoDialog" width="300px" append-to-body center="true"> | |
| 149 | + <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> | |
| 150 | + <el-table-column label="序号" align="center" type="index" /> | |
| 151 | + <el-table-column label="失信时间" align="center" prop="time" width="100"> | |
| 152 | + </el-table-column> | |
| 153 | + <el-table-column label="情况说明" align="center" prop="reason" /> | |
| 154 | + <el-table-column label="操作历史" align="center" prop="lostCredit"> | |
| 155 | + <template slot-scope="scope"> | |
| 156 | + <span>{{ scope.row.lostCredit== 0 ? "撤销失信" : scope.row.lostCredit == 1 ? "失信" : "保密" }}</span> | |
| 157 | + </template> | |
| 158 | + </el-table-column> | |
| 159 | + </el-table> | |
| 160 | + </el-dialog> | |
| 161 | + </div> | |
| 162 | +</template> | |
| 163 | + | |
| 164 | +<script> | |
| 165 | + import { | |
| 166 | + listCredit, | |
| 167 | + getCredit, | |
| 168 | + delCredit, | |
| 169 | + addCredit, | |
| 170 | + updateCredit, | |
| 171 | + exportCredit, | |
| 172 | + getNames, | |
| 173 | + getPlaces, | |
| 174 | + historyCredit | |
| 175 | + } from "@/api/business/company"; | |
| 176 | + | |
| 177 | + import { | |
| 178 | + companyList, | |
| 179 | + updateCompany, | |
| 180 | + } from "@/api/dict"; | |
| 181 | + | |
| 182 | + import pagination from '../Pagination'; | |
| 183 | + | |
| 184 | + | |
| 185 | + export default { | |
| 186 | + name: "Credit", | |
| 187 | + components: {pagination}, | |
| 188 | + data() { | |
| 189 | + return { | |
| 190 | + // 遮罩层 | |
| 191 | + loading: true, | |
| 192 | + // 选中数组 | |
| 193 | + ids: [], | |
| 194 | + // 非单个禁用 | |
| 195 | + single: true, | |
| 196 | + // 非多个禁用 | |
| 197 | + multiple: true, | |
| 198 | + // 显示搜索条件 | |
| 199 | + showSearch: true, | |
| 200 | + infoDialog :false, | |
| 201 | + // 总条数 | |
| 202 | + total: 0, | |
| 203 | + // 工地表格数据 | |
| 204 | + creditList: [], | |
| 205 | + creditListInfo: [], | |
| 206 | + companyList:[], | |
| 207 | + dictNames:[], | |
| 208 | + dictPlaces:[], | |
| 209 | + // 弹出层标题 | |
| 210 | + title: "", | |
| 211 | + // 是否显示弹出层 | |
| 212 | + open: false, | |
| 213 | + isEdit:false, | |
| 214 | + // 查询参数 | |
| 215 | + queryParams: { | |
| 216 | + pageNum: 1, | |
| 217 | + pageSize: 10, | |
| 218 | + name: null, | |
| 219 | + time: null, | |
| 220 | + place: null, | |
| 221 | + reason: null, | |
| 222 | + status: 0, | |
| 223 | + lostCredit: 1 | |
| 224 | + }, | |
| 225 | + // 表单参数 | |
| 226 | + form: {}, | |
| 227 | + updateForm:{}, | |
| 228 | + // 表单校验 | |
| 229 | + rules: { | |
| 230 | + name: [ | |
| 231 | + { required: true, message: '请选择运输企业', trigger: 'change' }, | |
| 232 | + ], | |
| 233 | + reason: [ | |
| 234 | + { required: true, message: '请填写原因', trigger: 'change' }, | |
| 235 | + ], | |
| 236 | + }, | |
| 237 | + rules2: { | |
| 238 | + reason: [ | |
| 239 | + { required: true, message: '请填写原因', trigger: 'change' }, | |
| 240 | + ], | |
| 241 | + }, | |
| 242 | + }; | |
| 243 | + }, | |
| 244 | + created() { | |
| 245 | + this.init(); | |
| 246 | + }, | |
| 247 | + methods: { | |
| 248 | + init(){ | |
| 249 | + this.resetQuery(); | |
| 250 | + this.getList(); | |
| 251 | + getNames(this.queryParams).then(response => { | |
| 252 | + this.dictNames = response; | |
| 253 | + }); | |
| 254 | + getPlaces(this.queryParams).then(response => { | |
| 255 | + this.dictPlaces = response; | |
| 256 | + }); | |
| 257 | + | |
| 258 | + let query = { | |
| 259 | + 'page':1, | |
| 260 | + 'size':9999, | |
| 261 | + 'creditStatus':0 | |
| 262 | + } | |
| 263 | + companyList(query).then(response => { | |
| 264 | + | |
| 265 | + this.companyList = response.result.list; | |
| 266 | + }); | |
| 267 | + }, | |
| 268 | + getDataInfo(row){ | |
| 269 | + let param ={"objectId":row.objectId} | |
| 270 | + | |
| 271 | + listCredit(param).then(response => { | |
| 272 | + this.creditListInfo = response.rows; | |
| 273 | + this.infoDialog = true; | |
| 274 | + }); | |
| 275 | + | |
| 276 | + }, | |
| 277 | + getData(stauts){ | |
| 278 | + this.queryParams.status=0; | |
| 279 | + this.queryParams.lostCredit=stauts; | |
| 280 | + this.getList(); | |
| 281 | + }, | |
| 282 | + getHistoryData(){ | |
| 283 | + this.queryParams.status=1; | |
| 284 | + this.getList(); | |
| 285 | + }, | |
| 286 | + colStyle(obj){ | |
| 287 | + if(obj.column.property == "id"){ | |
| 288 | + return {background:"#f8f8f9"} | |
| 289 | + } | |
| 290 | + }, | |
| 291 | + getObjId(a){ | |
| 292 | + this.form.objectId = a.id; | |
| 293 | + this.form.place = a.areaName; | |
| 294 | + }, | |
| 295 | + getList() { | |
| 296 | + this.loading = true; | |
| 297 | + if(this.queryParams.status==0){ | |
| 298 | + listCredit(this.queryParams).then(response => { | |
| 299 | + this.creditList = response.rows; | |
| 300 | + this.total = response.total; | |
| 301 | + this.loading = false; | |
| 302 | + }); | |
| 303 | + } | |
| 304 | + if(this.queryParams.status==1){ | |
| 305 | + historyCredit(this.queryParams).then(response => { | |
| 306 | + this.creditList = response.rows; | |
| 307 | + this.total = response.total; | |
| 308 | + this.loading = false; | |
| 309 | + }); | |
| 310 | + } | |
| 311 | + | |
| 312 | + }, | |
| 313 | + // 取消按钮 | |
| 314 | + cancel() { | |
| 315 | + this.open = false; | |
| 316 | + this.isEdit = false; | |
| 317 | + this.reset(); | |
| 318 | + }, | |
| 319 | + // 表单重置 | |
| 320 | + reset() { | |
| 321 | + this.form = { | |
| 322 | + id: null, | |
| 323 | + name: null, | |
| 324 | + time: null, | |
| 325 | + place: null, | |
| 326 | + reason: null, | |
| 327 | + lostCredit: null, | |
| 328 | + objectId: null, | |
| 329 | + }; | |
| 330 | + this.resetForm("form"); | |
| 331 | + }, | |
| 332 | + /** 搜索按钮操作 */ | |
| 333 | + handleQuery() { | |
| 334 | + this.queryParams.pageNum = 1; | |
| 335 | + this.getList(); | |
| 336 | + }, | |
| 337 | + /** 重置按钮操作 */ | |
| 338 | + resetQuery() { | |
| 339 | + this.resetForm("queryForm"); | |
| 340 | + console.log(this.queryParams); | |
| 341 | + this.handleQuery(); | |
| 342 | + }, | |
| 343 | + // 多选框选中数据 | |
| 344 | + handleSelectionChange(selection) { | |
| 345 | + this.ids = selection.map(item => item.id) | |
| 346 | + this.single = selection.length !== 1 | |
| 347 | + this.multiple = !selection.length | |
| 348 | + }, | |
| 349 | + /** 新增按钮操作 */ | |
| 350 | + handleAdd() { | |
| 351 | + this.reset(); | |
| 352 | + this.open = true; | |
| 353 | + this.title = "企业信息录入"; | |
| 354 | + }, | |
| 355 | + /** 修改按钮操作 */ | |
| 356 | + handleUpdate(row) { | |
| 357 | + this.reset(); | |
| 358 | + const id = row.id || this.ids | |
| 359 | + getCredit(id).then(response => { | |
| 360 | + this.form = response.data; | |
| 361 | + this.isEdit = true; | |
| 362 | + }); | |
| 363 | + }, | |
| 364 | + /** 提交按钮 */ | |
| 365 | + submitForm() { | |
| 366 | + if(this.isEdit){ | |
| 367 | + this.$refs["updateForm"].validate(valid => { | |
| 368 | + if (valid) { | |
| 369 | + this.loading = true; | |
| 370 | + this.form.lostCredit = 0; | |
| 371 | + this.updateForm.id = this.form.id; | |
| 372 | + let data = [{id:this.form.objectId,dishonestState:this.form.lostCredit}]; | |
| 373 | + updateCompany(data).then(res=>{ | |
| 374 | + updateCredit(this.updateForm).then(response => { | |
| 375 | + this.msgSuccess("撤销成功"); | |
| 376 | + this.isEdit = false; | |
| 377 | + this.updateForm = {}; | |
| 378 | + this.init(); | |
| 379 | + }); | |
| 380 | + }); | |
| 381 | + } | |
| 382 | + }); | |
| 383 | + }else{ | |
| 384 | + this.$refs["form"].validate(valid => { | |
| 385 | + if (valid) { | |
| 386 | + this.loading = true; | |
| 387 | + this.form.lostCredit = 1; | |
| 388 | + let data = [{id:this.form.objectId,dishonestState:this.form.lostCredit}]; | |
| 389 | + updateCompany(data).then(res=>{ | |
| 390 | + addCredit(this.form).then(response => { | |
| 391 | + this.msgSuccess("新增成功"); | |
| 392 | + this.open = false; | |
| 393 | + this.init(); | |
| 394 | + }); | |
| 395 | + }); | |
| 396 | + } | |
| 397 | + }); | |
| 398 | + } | |
| 399 | + }, | |
| 400 | + handleExport() { | |
| 401 | + const queryParams = this.queryParams; | |
| 402 | + this.$confirm('是否确认导出所有企业数据项?', "警告", { | |
| 403 | + confirmButtonText: "确定", | |
| 404 | + cancelButtonText: "取消", | |
| 405 | + type: "warning" | |
| 406 | + }).then(function() { | |
| 407 | + return exportCredit(queryParams); | |
| 408 | + }).then(response => { | |
| 409 | + this.download(response.message); | |
| 410 | + }) | |
| 411 | + } | |
| 412 | + } | |
| 413 | + }; | |
| 414 | +</script> | ... | ... |
trash-ui/src/views/h5/ConstructionCredit/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="app-container"> | |
| 3 | + <el-row :gutter="10" class="mb8"> | |
| 4 | + <el-col :span="1.5"> | |
| 5 | + <el-button :class="{'el-button':true, 'el-button--primary':this.queryParams.status==0}" size="mini" | |
| 6 | + @click="getData(1);">失信工地</el-button> | |
| 7 | + </el-col> | |
| 8 | + <el-col :span="1.5"> | |
| 9 | + <el-button :class="{'el-button':true,'el-button--primary':this.queryParams.status==1}" size="mini" | |
| 10 | + @click="getHistoryData(1);">历史失信工地</el-button> | |
| 11 | + </el-col> | |
| 12 | + </el-row> | |
| 13 | + | |
| 14 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> | |
| 15 | + <el-row type="flex" justify="center"> | |
| 16 | + <el-col> | |
| 17 | + <el-form-item label="工地名称" prop="name" style="float:right;"> | |
| 18 | + <el-select v-model="queryParams.name" filterable reserve-keyword placeholder="工地名称" size="small" | |
| 19 | + :loading="loading"> | |
| 20 | + <el-option v-for="item in dictNames" :label="item" :value="item" :key="item"> | |
| 21 | + </el-option> | |
| 22 | + </el-select> | |
| 23 | + </el-form-item> | |
| 24 | + </el-col> | |
| 25 | + | |
| 26 | + <el-col> | |
| 27 | + <el-form-item label="所属区域" prop="place"> | |
| 28 | + <el-select v-model="queryParams.place" filterable reserve-keyword placeholder="所属区域" size="small" | |
| 29 | + :loading="loading"> | |
| 30 | + <el-option v-for="item in dictPlaces" :label="item" :value="item" :key="item"> | |
| 31 | + </el-option> | |
| 32 | + </el-select> | |
| 33 | + </el-form-item> | |
| 34 | + </el-col> | |
| 35 | + </el-row> | |
| 36 | + <el-row type="flex" justify="center"> | |
| 37 | + <el-col> | |
| 38 | + <el-form-item label="垃圾类型" prop="type" style="float:right;"> | |
| 39 | + <el-select v-model="queryParams.type" filterable reserve-keyword placeholder="建筑垃圾类型" size="small" | |
| 40 | + :loading="loading"> | |
| 41 | + <el-option v-for="item in dictTypes" :label="item" :value="item" :key="item"> | |
| 42 | + </el-option> | |
| 43 | + </el-select> | |
| 44 | + </el-form-item> | |
| 45 | + </el-col> | |
| 46 | + <el-col> | |
| 47 | + <el-form-item label="失信日期" prop="time" v-show="queryParams.status==0"> | |
| 48 | + <el-date-picker size="small" style="width: 200px" v-model="queryParams.time" type="date" | |
| 49 | + value-format="yyyy-MM-dd" placeholder="失信日期"> | |
| 50 | + </el-date-picker> | |
| 51 | + </el-form-item> | |
| 52 | + </el-col> | |
| 53 | + </el-row> | |
| 54 | + </el-form> | |
| 55 | + | |
| 56 | + <el-row :gutter="10" class="mb8"> | |
| 57 | + <el-col :span="1.5"> | |
| 58 | + <el-button type="primary" size="mini" @click="handleAdd" v-hasPermi="['business:ConstructionCredit:add']" | |
| 59 | + v-if="queryParams.status==0">新增</el-button> | |
| 60 | + </el-col> | |
| 61 | + <el-col :span="1.5"> | |
| 62 | + <el-button size="mini" @click="handleExport" v-hasPermi="['business:ConstructionCredit:export']">导出</el-button> | |
| 63 | + </el-col> | |
| 64 | + <el-col :span="1.5"> | |
| 65 | + <el-button type="primary" size="mini" @click="handleQuery">查询</el-button> | |
| 66 | + </el-col> | |
| 67 | + <el-col :span="1.5"> | |
| 68 | + <el-button size="mini" @click="resetQuery">重置</el-button> | |
| 69 | + </el-col> | |
| 70 | + </el-row> | |
| 71 | + | |
| 72 | + <el-card class="box-card" v-for="item in creditList" style="margin-bottom: 10px;" | |
| 73 | + > | |
| 74 | + <el-row class="card_row"> | |
| 75 | + <el-col :span="24" class="card_grid"> | |
| 76 | + <div class="card_title" style="font-weight: bold;">工地名称:{{ item.name }}</div> | |
| 77 | + </el-col> | |
| 78 | + </el-row> | |
| 79 | + | |
| 80 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 81 | + <el-col :span="24"> | |
| 82 | + <span >建筑垃圾类型:{{ item.type }}</span> | |
| 83 | + </el-col> | |
| 84 | + </el-row> | |
| 85 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 86 | + <el-col :span="24"> | |
| 87 | + <span >失信时间:{{ item.time }}</span> | |
| 88 | + </el-col> | |
| 89 | + </el-row> | |
| 90 | + | |
| 91 | + <el-row class="card_row"> | |
| 92 | + <el-col :span="24"> | |
| 93 | + <span >所属区域:{{item.place}}</span> | |
| 94 | + </el-col> | |
| 95 | + </el-row> | |
| 96 | + <el-row class="card_row"> | |
| 97 | + <el-col :span="24"> | |
| 98 | + <span >失信原因:{{item.reason}}</span> | |
| 99 | + </el-col> | |
| 100 | + </el-row> | |
| 101 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==0">撤销失信</el-button> | |
| 102 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="getDataInfo(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==1">查看</el-button> | |
| 103 | + </el-card> | |
| 104 | + | |
| 105 | + <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" | |
| 106 | + @pagination="getList" /> | |
| 107 | + | |
| 108 | + <!-- 添加或修改工地对话框 --> | |
| 109 | + <el-dialog :title="title" :visible.sync="open" width="300px" append-to-body v-loading="loading"> | |
| 110 | + <el-form ref="form" :model="form" :rules="rules" label-width="80px" v-if="open"> | |
| 111 | + <el-form-item label="工地名称" prop="name"> | |
| 112 | + <el-select v-model="form.name" filterable reserve-keyword placeholder="工地名称"> | |
| 113 | + <el-option @click.native="getObjId(item)" v-for="item in constructionList" :key="item.id" :label="item.name" | |
| 114 | + :value="item.name" v-if="item.creditStatus==0"> | |
| 115 | + </el-option> | |
| 116 | + </el-select> | |
| 117 | + </el-form-item> | |
| 118 | + | |
| 119 | + <el-form-item label="建筑垃圾类型" prop="type"> | |
| 120 | + <el-input v-model="form.type" disabled /> | |
| 121 | + </el-form-item> | |
| 122 | + <el-form-item label="所属区域" prop="place"> | |
| 123 | + <el-input v-model="form.place" disabled /> | |
| 124 | + </el-form-item> | |
| 125 | + <el-form-item label="失信原因" prop="reason"> | |
| 126 | + <el-input v-model="form.reason" placeholder="失信原因" /> | |
| 127 | + </el-form-item> | |
| 128 | + </el-form> | |
| 129 | + | |
| 130 | + <el-input v-model="form.lostCredit" value="1" type="hidden" /> | |
| 131 | + <el-input v-model="form.objectId" type="hidden" /> | |
| 132 | + <div slot="footer" class="dialog-footer"> | |
| 133 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 134 | + <el-button @click="cancel">退出</el-button> | |
| 135 | + </div> | |
| 136 | + | |
| 137 | + </el-dialog> | |
| 138 | + | |
| 139 | + | |
| 140 | + <el-dialog title="撤销失信" :visible.sync="isEdit" width="300px" append-to-body v-loading="loading"> | |
| 141 | + <el-form ref="form" :model="updateForm" :rules="rules" label-width="80px" v-if="isEdit"> | |
| 142 | + <el-form-item label="情况说明" prop="reason"> | |
| 143 | + <el-input v-model="updateForm.reason" type="textarea" maxlength="200" show-word-limit /> | |
| 144 | + </el-form-item> | |
| 145 | + </el-form> | |
| 146 | + <div slot="footer" class="dialog-footer"> | |
| 147 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 148 | + <el-button @click="cancel">退出</el-button> | |
| 149 | + </div> | |
| 150 | + </el-dialog> | |
| 151 | + | |
| 152 | + <el-dialog title="历史失信" :visible.sync="infoDialog" width="300px" append-to-body> | |
| 153 | + <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> | |
| 154 | + <el-table-column label="序号" align="center" type="index" /> | |
| 155 | + <el-table-column label="失信时间" align="center" prop="time" width="100" /> | |
| 156 | + <el-table-column label="情况说明" align="center" prop="reason" /> | |
| 157 | + <el-table-column label="操作历史" align="center" prop="lostCredit"> | |
| 158 | + <template slot-scope="scope"> | |
| 159 | + <span>{{ scope.row.lostCredit== 0 ? "撤销失信" : "失信" }}</span> | |
| 160 | + </template> | |
| 161 | + </el-table-column> | |
| 162 | + </el-table> | |
| 163 | + </el-dialog> | |
| 164 | + </div> | |
| 165 | +</template> | |
| 166 | + | |
| 167 | +<script> | |
| 168 | + import { | |
| 169 | + listCredit, | |
| 170 | + getCredit, | |
| 171 | + delCredit, | |
| 172 | + addCredit, | |
| 173 | + updateCredit, | |
| 174 | + exportCredit, | |
| 175 | + getNames, | |
| 176 | + getTypes, | |
| 177 | + getPlaces, | |
| 178 | + historyCredit | |
| 179 | + } from "@/api/business/constructionsites"; | |
| 180 | + | |
| 181 | +import pagination from '../Pagination'; | |
| 182 | + | |
| 183 | + import { | |
| 184 | + constructionsitesList, | |
| 185 | + getDict, | |
| 186 | + getArea, | |
| 187 | + updateConstructionsites | |
| 188 | + } from "@/api/dict"; | |
| 189 | + | |
| 190 | + export default { | |
| 191 | + name: "ConstructionCredit", | |
| 192 | + components: {pagination}, | |
| 193 | + data() { | |
| 194 | + return { | |
| 195 | + // 遮罩层 | |
| 196 | + loading: true, | |
| 197 | + // 选中数组 | |
| 198 | + ids: [], | |
| 199 | + // 非单个禁用 | |
| 200 | + single: true, | |
| 201 | + // 非多个禁用 | |
| 202 | + multiple: true, | |
| 203 | + // 显示搜索条件 | |
| 204 | + showSearch: true, | |
| 205 | + infoDialog: false, | |
| 206 | + // 总条数 | |
| 207 | + total: 0, | |
| 208 | + // 工地表格数据 | |
| 209 | + creditList: [], | |
| 210 | + creditListInfo: [], | |
| 211 | + dictNames: [], | |
| 212 | + dictTypes: [], | |
| 213 | + dictPlaces: [], | |
| 214 | + // 弹出层标题 | |
| 215 | + title: "", | |
| 216 | + // 是否显示弹出层 | |
| 217 | + open: false, | |
| 218 | + isEdit: false, | |
| 219 | + // 查询参数 | |
| 220 | + queryParams: { | |
| 221 | + pageNum: 1, | |
| 222 | + pageSize: 10, | |
| 223 | + name: null, | |
| 224 | + type: null, | |
| 225 | + time: null, | |
| 226 | + place: null, | |
| 227 | + reason: null, | |
| 228 | + status: 0, | |
| 229 | + lostCredit: 1, | |
| 230 | + }, | |
| 231 | + // 表单参数 | |
| 232 | + form: { | |
| 233 | + }, | |
| 234 | + updateForm: {}, | |
| 235 | + //建筑垃圾类型集合 | |
| 236 | + trashTypes: [], | |
| 237 | + constructionList: [], | |
| 238 | + // 表单校验 | |
| 239 | + rules: { | |
| 240 | + name: [{ | |
| 241 | + required: true, | |
| 242 | + message: '请选择工地', | |
| 243 | + trigger: 'change' | |
| 244 | + }, ], | |
| 245 | + reason: [{ | |
| 246 | + required: true, | |
| 247 | + message: '请填写原因', | |
| 248 | + trigger: 'change' | |
| 249 | + }, ] | |
| 250 | + }, | |
| 251 | + areas:[], | |
| 252 | + }; | |
| 253 | + | |
| 254 | + | |
| 255 | + }, | |
| 256 | + created() { | |
| 257 | + | |
| 258 | + getArea().then(res => { | |
| 259 | + this.areas = res.result; | |
| 260 | + }); | |
| 261 | + | |
| 262 | + getDict({'type': 'CSDisSiteDisposalType'}).then(response => { | |
| 263 | + this.trashTypes = response.result; | |
| 264 | + }); | |
| 265 | + | |
| 266 | + this.init(); | |
| 267 | + | |
| 268 | + }, | |
| 269 | + methods: { | |
| 270 | + init(){ | |
| 271 | + this.reset(); | |
| 272 | + this.resetQuery(); | |
| 273 | + this.getList(); | |
| 274 | + this.getNamesData(); | |
| 275 | + this.getTypesData(); | |
| 276 | + this.getPlacesData(); | |
| 277 | + | |
| 278 | + let query = { | |
| 279 | + 'page': 1, | |
| 280 | + 'size': 9999, | |
| 281 | + 'creditStatus': 0 | |
| 282 | + }; | |
| 283 | + constructionsitesList(query).then(response => { | |
| 284 | + this.constructionList = response.result.list | |
| 285 | + }); | |
| 286 | + }, | |
| 287 | + getList() { | |
| 288 | + this.loading = true; | |
| 289 | + if (this.queryParams.status == 0) { | |
| 290 | + listCredit(this.queryParams).then(response => { | |
| 291 | + this.creditList = response.rows; | |
| 292 | + this.total = response.total; | |
| 293 | + this.loading = false; | |
| 294 | + }); | |
| 295 | + } | |
| 296 | + if (this.queryParams.status == 1) { | |
| 297 | + historyCredit(this.queryParams).then(response => { | |
| 298 | + this.creditList = response.rows; | |
| 299 | + this.total = response.total; | |
| 300 | + this.loading = false; | |
| 301 | + }); | |
| 302 | + } | |
| 303 | + }, | |
| 304 | + getDataInfo(row) { | |
| 305 | + let param = { | |
| 306 | + "objectId": row.objectId | |
| 307 | + } | |
| 308 | + listCredit(param).then(response => { | |
| 309 | + this.creditListInfo = response.rows; | |
| 310 | + this.infoDialog = true; | |
| 311 | + }); | |
| 312 | + }, | |
| 313 | + getNamesData() { | |
| 314 | + getNames(this.queryParams).then(response => { | |
| 315 | + this.dictNames = response; | |
| 316 | + }); | |
| 317 | + }, | |
| 318 | + getTypesData() { | |
| 319 | + getTypes(this.queryParams).then(response => { | |
| 320 | + this.dictTypes = response; | |
| 321 | + }); | |
| 322 | + }, | |
| 323 | + getPlacesData() { | |
| 324 | + getPlaces(this.queryParams).then(response => { | |
| 325 | + this.dictPlaces = response; | |
| 326 | + }); | |
| 327 | + }, | |
| 328 | + getData(stauts) { | |
| 329 | + this.queryParams.status = 0; | |
| 330 | + this.queryParams.lostCredit = stauts; | |
| 331 | + this.init(); | |
| 332 | + }, | |
| 333 | + getHistoryData() { | |
| 334 | + this.queryParams.status = 1; | |
| 335 | + this.init(); | |
| 336 | + }, | |
| 337 | + colStyle(obj) { | |
| 338 | + if (obj.column.property == "id") { | |
| 339 | + return { | |
| 340 | + background: "#f8f8f9" | |
| 341 | + } | |
| 342 | + } | |
| 343 | + }, | |
| 344 | + getObjId(object) { | |
| 345 | + | |
| 346 | + this.form.objectId = object.id; | |
| 347 | + | |
| 348 | + for(let i in this.areas){ | |
| 349 | + if(this.areas[i].code == Number(object.areaCode)){ | |
| 350 | + this.form.place = this.areas[i].name; | |
| 351 | + break; | |
| 352 | + } | |
| 353 | + } | |
| 354 | + for(let i in this.trashTypes){ | |
| 355 | + if(this.trashTypes[i].code == Number(object.cargoId)){ | |
| 356 | + this.form.type = this.trashTypes[i].name; | |
| 357 | + break; | |
| 358 | + } | |
| 359 | + } | |
| 360 | + }, | |
| 361 | + // 取消按钮 | |
| 362 | + cancel() { | |
| 363 | + this.open = false; | |
| 364 | + this.isEdit = false; | |
| 365 | + this.reset(); | |
| 366 | + }, | |
| 367 | + // 表单重置 | |
| 368 | + reset() { | |
| 369 | + this.form = { | |
| 370 | + id: null, | |
| 371 | + name: null, | |
| 372 | + type: null, | |
| 373 | + time: null, | |
| 374 | + place: null, | |
| 375 | + reason: null, | |
| 376 | + lostCredit: null, | |
| 377 | + objectId: null, | |
| 378 | + }; | |
| 379 | + this.updateForm = { | |
| 380 | + reason:null, | |
| 381 | + }; | |
| 382 | + this.resetForm("updateForm"); | |
| 383 | + this.resetForm("form"); | |
| 384 | + }, | |
| 385 | + /** 搜索按钮操作 */ | |
| 386 | + handleQuery() { | |
| 387 | + this.queryParams.pageNum = 1; | |
| 388 | + this.getList(); | |
| 389 | + }, | |
| 390 | + /** 重置按钮操作 */ | |
| 391 | + resetQuery() { | |
| 392 | + this.resetForm("queryForm"); | |
| 393 | + console.log(this.queryParams); | |
| 394 | + this.handleQuery(); | |
| 395 | + }, | |
| 396 | + // 多选框选中数据 | |
| 397 | + handleSelectionChange(selection) { | |
| 398 | + this.ids = selection.map(item => item.id) | |
| 399 | + this.single = selection.length !== 1 | |
| 400 | + this.multiple = !selection.length | |
| 401 | + }, | |
| 402 | + /** 新增按钮操作 */ | |
| 403 | + handleAdd() { | |
| 404 | + this.reset(); | |
| 405 | + this.open = true; | |
| 406 | + this.title = "添加工地"; | |
| 407 | + }, | |
| 408 | + /** 修改按钮操作 */ | |
| 409 | + handleUpdate(row) { | |
| 410 | + this.reset(); | |
| 411 | + const id = row.id || this.ids | |
| 412 | + getCredit(id).then(response => { | |
| 413 | + this.form = response.data; | |
| 414 | + this.isEdit = true; | |
| 415 | + }); | |
| 416 | + }, | |
| 417 | + /** 提交按钮 */ | |
| 418 | + submitForm() { | |
| 419 | + this.$refs["form"].validate(valid => { | |
| 420 | + if (valid) { | |
| 421 | + this.loading = true; | |
| 422 | + if (this.form.id != null) { | |
| 423 | + this.form.lostCredit = 0; | |
| 424 | + let data = [{creditStatus:this.form.lostCredit,objectId:this.form.objectId}]; | |
| 425 | + | |
| 426 | + updateConstructionsites(data).then(response=>{ | |
| 427 | + this.updateForm.id = this.form.id; | |
| 428 | + updateCredit(this.updateForm).then(response => { | |
| 429 | + this.msgSuccess("撤销成功"); | |
| 430 | + this.isEdit = false; | |
| 431 | + this.init(); | |
| 432 | + }); | |
| 433 | + }); | |
| 434 | + } else { | |
| 435 | + this.form.lostCredit = 1; | |
| 436 | + let data = [{creditStatus:this.form.lostCredit,objectId:this.form.objectId}]; | |
| 437 | + updateConstructionsites(data).then(response=>{ | |
| 438 | + addCredit(this.form).then(response => { | |
| 439 | + this.msgSuccess("新增成功"); | |
| 440 | + this.open = false; | |
| 441 | + this.init(); | |
| 442 | + }); | |
| 443 | + }); | |
| 444 | + } | |
| 445 | + } | |
| 446 | + }); | |
| 447 | + }, | |
| 448 | + handleExport() { | |
| 449 | + const queryParams = this.queryParams; | |
| 450 | + this.$confirm('是否确认导出所有工地数据项?', "警告", { | |
| 451 | + confirmButtonText: "确定", | |
| 452 | + cancelButtonText: "取消", | |
| 453 | + type: "warning" | |
| 454 | + }).then(function() { | |
| 455 | + return exportCredit(queryParams); | |
| 456 | + }).then(response => { | |
| 457 | + this.download(response.message); | |
| 458 | + }) | |
| 459 | + } | |
| 460 | + } | |
| 461 | + }; | |
| 462 | +</script> | ... | ... |
trash-ui/src/views/h5/DriverCredit/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="app-container"> | |
| 3 | + <el-row :gutter="10" class="mb8"> | |
| 4 | + <el-col :span="1.5"> | |
| 5 | + <el-button :class="{'el-button':true, 'el-button--primary':this.queryParams.status==0}" size="mini" @click="getData(1);" >失信驾驶员</el-button> | |
| 6 | + </el-col> | |
| 7 | + <el-col :span="1.5"> | |
| 8 | + <el-button :class="{'el-button':true,'el-button--primary':this.queryParams.status==1}" size="mini" @click="getHistoryData(1);">历史驾驶员</el-button> | |
| 9 | + </el-col> | |
| 10 | + </el-row> | |
| 11 | + | |
| 12 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> | |
| 13 | + <el-row type="flex" justify="center"> | |
| 14 | + <el-col> | |
| 15 | + <el-form-item label="驾驶员姓名" prop="name" | |
| 16 | + style="float:right;"> | |
| 17 | + <el-select v-model="queryParams.name" | |
| 18 | + filterable | |
| 19 | + | |
| 20 | + reserve-keyword | |
| 21 | + placeholder="驾驶员姓名" | |
| 22 | + size="small" | |
| 23 | + :loading="loading"> | |
| 24 | + <el-option | |
| 25 | + v-for="item in dictNames" | |
| 26 | + :label="item" | |
| 27 | + :value="item"> | |
| 28 | + </el-option> | |
| 29 | + </el-select> | |
| 30 | + </el-form-item> | |
| 31 | + </el-col> | |
| 32 | + | |
| 33 | + <el-col> | |
| 34 | + <el-form-item label="失信日期" prop="time" v-show="queryParams.status==0"> | |
| 35 | + <el-date-picker size="small" style="width: 200px" v-model="queryParams.time" type="date" | |
| 36 | + value-format="yyyy-MM-dd" placeholder="失信日期"> | |
| 37 | + </el-date-picker> | |
| 38 | + </el-form-item> | |
| 39 | + </el-col> | |
| 40 | + </el-row> | |
| 41 | + | |
| 42 | + </el-form> | |
| 43 | + | |
| 44 | + <el-row :gutter="10" class="mb8"> | |
| 45 | + <el-col :span="1.5"> | |
| 46 | + <el-button type="primary" size="mini" @click="handleAdd" v-hasPermi="['driver:credit:add']" v-if="queryParams.status==0">新增</el-button> | |
| 47 | + </el-col> | |
| 48 | + <el-col :span="1.5"> | |
| 49 | + <el-button size="mini" @click="handleExport" v-hasPermi="['driver:credit:export']">导出</el-button> | |
| 50 | + </el-col> | |
| 51 | + <el-col :span="1.5"> | |
| 52 | + <el-button type="primary" size="mini" @click="handleQuery">查询</el-button> | |
| 53 | + </el-col> | |
| 54 | + <el-col :span="1.5"> | |
| 55 | + <el-button size="mini" @click="resetQuery">重置</el-button> | |
| 56 | + </el-col> | |
| 57 | + </el-row> | |
| 58 | + | |
| 59 | + <el-card class="box-card" v-for="item in creditList" style="margin-bottom: 10px;" | |
| 60 | + > | |
| 61 | + <el-row class="card_row"> | |
| 62 | + <el-col :span="24" class="card_grid"> | |
| 63 | + <div class="card_title" style="font-weight: bold;">驾驶员姓名:{{ item.name }}</div> | |
| 64 | + </el-col> | |
| 65 | + </el-row> | |
| 66 | + | |
| 67 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 68 | + <el-col :span="24"> | |
| 69 | + <span >证件号码:{{item.idNumber}}</span> | |
| 70 | + </el-col> | |
| 71 | + </el-row> | |
| 72 | + <el-row class="card_row" > | |
| 73 | + <el-col :span="24"> | |
| 74 | + <span >失信时间:{{ item.time }}</span> | |
| 75 | + </el-col> | |
| 76 | + </el-row> | |
| 77 | + | |
| 78 | + <el-row class="card_row"> | |
| 79 | + <el-col :span="24"> | |
| 80 | + <span >失信原因:{{item.reason}}</span> | |
| 81 | + </el-col> | |
| 82 | + </el-row> | |
| 83 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==0">撤销失信</el-button> | |
| 84 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="getDataInfo(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==1">查看</el-button> | |
| 85 | + </el-card> | |
| 86 | + | |
| 87 | + <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" | |
| 88 | + @pagination="getList" /> | |
| 89 | + | |
| 90 | + <!-- 添加或修改工地对话框 --> | |
| 91 | + <el-dialog :title="title" :visible.sync="open" width="300px" append-to-body v-loading="loading"> | |
| 92 | + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | |
| 93 | + <el-form-item label="驾驶员姓名" prop="name"> | |
| 94 | + <el-select | |
| 95 | + v-model="form.name" | |
| 96 | + filterable | |
| 97 | + reserve-keyword | |
| 98 | + placeholder="驾驶员姓名"> | |
| 99 | + <el-option | |
| 100 | + @click.native="getObjId(item)" | |
| 101 | + v-for="item in driverList" | |
| 102 | + :key="item.id" | |
| 103 | + :label="item.name" | |
| 104 | + :value="item.name"> | |
| 105 | + </el-option> | |
| 106 | + </el-select> | |
| 107 | + </el-form-item> | |
| 108 | + | |
| 109 | + <el-form-item label="证件号码" prop="idNumber"> | |
| 110 | + <el-input v-model="form.idNumber" placeholder="证件号码" disabled/> | |
| 111 | + </el-form-item> | |
| 112 | + <el-form-item label="失信原因" prop="reason"> | |
| 113 | + <el-input v-model="form.reason" placeholder="失信原因" /> | |
| 114 | + </el-form-item> | |
| 115 | + <el-input v-model="form.lostCredit" value="1" type="hidden" /> | |
| 116 | + <el-input v-model="form.objectId" type="hidden" /> | |
| 117 | + </el-form> | |
| 118 | + <div slot="footer" class="dialog-footer"> | |
| 119 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 120 | + <el-button @click="cancel">退出</el-button> | |
| 121 | + </div> | |
| 122 | + </el-dialog> | |
| 123 | + | |
| 124 | + | |
| 125 | + <el-dialog title="撤销失信" :visible.sync="isEdit" width="300px" append-to-body v-loading="loading"> | |
| 126 | + <el-form ref="form" :model="updateForm" :rules="rules" label-width="80px"> | |
| 127 | + <el-form-item label="情况说明" prop="reason"> | |
| 128 | + <el-input v-model="updateForm.reason" type="textarea" maxlength="200" show-word-limit/> | |
| 129 | + </el-form-item> | |
| 130 | + </el-form> | |
| 131 | + <div slot="footer" class="dialog-footer"> | |
| 132 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 133 | + <el-button @click="cancel">退出</el-button> | |
| 134 | + </div> | |
| 135 | + </el-dialog> | |
| 136 | + | |
| 137 | + <el-dialog title="历史失信" :visible.sync="infoDialog" width="300px" append-to-body> | |
| 138 | + <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> | |
| 139 | + <el-table-column label="序号" align="center" type="index" /> | |
| 140 | + <el-table-column label="失信时间" align="center" prop="time" width="100"> | |
| 141 | + </el-table-column> | |
| 142 | + <el-table-column label="情况说明" align="center" prop="reason" /> | |
| 143 | + <el-table-column label="操作历史" align="center" prop="lostCredit"> | |
| 144 | + <template slot-scope="scope"> | |
| 145 | + <span>{{ scope.row.lostCredit== 0 ? "撤销失信" : "失信" }}</span> | |
| 146 | + </template> | |
| 147 | + </el-table-column> | |
| 148 | + </el-table> | |
| 149 | + </el-dialog> | |
| 150 | + </div> | |
| 151 | +</template> | |
| 152 | + | |
| 153 | +<script> | |
| 154 | +import { | |
| 155 | + listCredit, | |
| 156 | + getCredit, | |
| 157 | + delCredit, | |
| 158 | + addCredit, | |
| 159 | + updateCredit, | |
| 160 | + exportCredit, | |
| 161 | + getNames, | |
| 162 | + historyCredit | |
| 163 | +} from "@/api/business/driver"; | |
| 164 | + | |
| 165 | +import { | |
| 166 | + companyList, | |
| 167 | + driverList | |
| 168 | +} from "@/api/dict"; | |
| 169 | + | |
| 170 | +import pagination from '../Pagination'; | |
| 171 | +export default { | |
| 172 | + name: "ConstructionCredit", | |
| 173 | + components: {pagination}, | |
| 174 | + data() { | |
| 175 | + return { | |
| 176 | + // 遮罩层 | |
| 177 | + loading: true, | |
| 178 | + // 选中数组 | |
| 179 | + ids: [], | |
| 180 | + // 非单个禁用 | |
| 181 | + single: true, | |
| 182 | + // 非多个禁用 | |
| 183 | + multiple: true, | |
| 184 | + // 显示搜索条件 | |
| 185 | + showSearch: true, | |
| 186 | + infoDialog :false, | |
| 187 | + // 总条数 | |
| 188 | + total: 0, | |
| 189 | + // 工地表格数据 | |
| 190 | + creditList: [], | |
| 191 | + creditListInfo: [], | |
| 192 | + dictNames:[], | |
| 193 | + dictTypes:[], | |
| 194 | + dictPlaces:[], | |
| 195 | + driverList:[], | |
| 196 | + names:[], | |
| 197 | + idNumbers:[], | |
| 198 | + places:[], | |
| 199 | + // 弹出层标题 | |
| 200 | + title: "", | |
| 201 | + // 是否显示弹出层 | |
| 202 | + open: false, | |
| 203 | + isEdit:false, | |
| 204 | + // 查询参数 | |
| 205 | + queryParams: { | |
| 206 | + pageNum: 1, | |
| 207 | + pageSize: 10, | |
| 208 | + name: null, | |
| 209 | + idNumber: null, | |
| 210 | + time: null, | |
| 211 | + reason: null, | |
| 212 | + status: 0, | |
| 213 | + lostCredit: 1 | |
| 214 | + }, | |
| 215 | + // 表单参数 | |
| 216 | + form: {}, | |
| 217 | + updateForm:{}, | |
| 218 | + // 表单校验 | |
| 219 | + rules: {name: [ | |
| 220 | + { required: true, message: '请选择驾驶员', trigger: 'change' }, | |
| 221 | + ],reason: [ | |
| 222 | + { required: true, message: '请填写原因', trigger: 'change' }, | |
| 223 | + ]} | |
| 224 | + }; | |
| 225 | + }, | |
| 226 | + created() { | |
| 227 | + this.init(); | |
| 228 | + }, | |
| 229 | + methods: { | |
| 230 | + init(){ | |
| 231 | + this.reset(); | |
| 232 | + | |
| 233 | + this.resetQuery(); | |
| 234 | + this.getList(); | |
| 235 | + this.getNamesData(); | |
| 236 | + | |
| 237 | + let query = { | |
| 238 | + 'page':1, | |
| 239 | + 'size':9999, | |
| 240 | + 'creditStatus':0 | |
| 241 | + } | |
| 242 | + | |
| 243 | + companyList(query).then(response => { | |
| 244 | + | |
| 245 | + let companys = response.result.list; | |
| 246 | + | |
| 247 | + let ids = []; | |
| 248 | + | |
| 249 | + for(let i = 0 ;i<companys.length;i++){ | |
| 250 | + ids.push(companys[i].id); | |
| 251 | + } | |
| 252 | + query.companyIds = ids + ""; | |
| 253 | + query.status = 3; | |
| 254 | + | |
| 255 | + driverList(query).then(res=>{ | |
| 256 | + | |
| 257 | + this.driverList = res.result; | |
| 258 | + | |
| 259 | + }); | |
| 260 | + | |
| 261 | + }); | |
| 262 | + }, | |
| 263 | + getDataInfo(row){ | |
| 264 | + let param ={"objectId":row.objectId} | |
| 265 | + listCredit(param).then(response => { | |
| 266 | + this.creditListInfo = response.rows; | |
| 267 | + this.infoDialog = true; | |
| 268 | + }); | |
| 269 | + | |
| 270 | + }, | |
| 271 | + getNamesData(){ | |
| 272 | + getNames(this.queryParams).then(response => { | |
| 273 | + this.dictNames = response; | |
| 274 | + }); | |
| 275 | + }, | |
| 276 | + getData(stauts){ | |
| 277 | + this.queryParams.status=0; | |
| 278 | + this.queryParams.lostCredit=stauts; | |
| 279 | + this.getList(); | |
| 280 | + }, | |
| 281 | + getHistoryData(){ | |
| 282 | + this.queryParams.status=1; | |
| 283 | + this.init(); | |
| 284 | + }, | |
| 285 | + colStyle(obj){ | |
| 286 | + if(obj.column.property == "id"){ | |
| 287 | + return {background:"#f8f8f9"} | |
| 288 | + } | |
| 289 | + }, | |
| 290 | + getObjId(a){ | |
| 291 | + this.form.objectId = a.id; | |
| 292 | + this.form.idNumber = a.identityNo; | |
| 293 | + }, | |
| 294 | + getList() { | |
| 295 | + this.loading = true; | |
| 296 | + if(this.queryParams.status==0){ | |
| 297 | + listCredit(this.queryParams).then(response => { | |
| 298 | + this.creditList = response.rows; | |
| 299 | + this.total = response.total; | |
| 300 | + this.loading = false; | |
| 301 | + }); | |
| 302 | + } | |
| 303 | + if(this.queryParams.status==1){ | |
| 304 | + historyCredit(this.queryParams).then(response => { | |
| 305 | + this.creditList = response.rows; | |
| 306 | + this.total = response.total; | |
| 307 | + this.loading = false; | |
| 308 | + }); | |
| 309 | + } | |
| 310 | + | |
| 311 | + }, | |
| 312 | + // 取消按钮 | |
| 313 | + cancel() { | |
| 314 | + this.open = false; | |
| 315 | + this.isEdit = false; | |
| 316 | + this.reset(); | |
| 317 | + }, | |
| 318 | + // 表单重置 | |
| 319 | + reset() { | |
| 320 | + this.form = { | |
| 321 | + id: null, | |
| 322 | + name: null, | |
| 323 | + idNumber: null, | |
| 324 | + time: null, | |
| 325 | + reason: null, | |
| 326 | + lostCredit: null, | |
| 327 | + objectId: null, | |
| 328 | + }; | |
| 329 | + this.updateForm = {}; | |
| 330 | + this.resetForm("form"); | |
| 331 | + }, | |
| 332 | + /** 搜索按钮操作 */ | |
| 333 | + handleQuery() { | |
| 334 | + this.queryParams.pageNum = 1; | |
| 335 | + this.getList(); | |
| 336 | + }, | |
| 337 | + /** 重置按钮操作 */ | |
| 338 | + resetQuery() { | |
| 339 | + this.resetForm("queryForm"); | |
| 340 | + console.log(this.queryParams); | |
| 341 | + this.handleQuery(); | |
| 342 | + }, | |
| 343 | + // 多选框选中数据 | |
| 344 | + handleSelectionChange(selection) { | |
| 345 | + this.ids = selection.map(item => item.id) | |
| 346 | + this.single = selection.length !== 1 | |
| 347 | + this.multiple = !selection.length | |
| 348 | + }, | |
| 349 | + /** 新增按钮操作 */ | |
| 350 | + handleAdd() { | |
| 351 | + this.reset(); | |
| 352 | + this.open = true; | |
| 353 | + this.title = "添加驾驶员"; | |
| 354 | + }, | |
| 355 | + /** 修改按钮操作 */ | |
| 356 | + handleUpdate(row) { | |
| 357 | + this.reset(); | |
| 358 | + const id = row.id || this.ids | |
| 359 | + getCredit(id).then(response => { | |
| 360 | + this.form = response.data; | |
| 361 | + this.isEdit = true; | |
| 362 | + }); | |
| 363 | + }, | |
| 364 | + /** 提交按钮 */ | |
| 365 | + submitForm() { | |
| 366 | + if(this.open){ | |
| 367 | + this.updateForm.reason = "1"; | |
| 368 | + } | |
| 369 | + this.$refs["form"].validate(valid => { | |
| 370 | + if (valid) { | |
| 371 | + | |
| 372 | + this.loading = true; | |
| 373 | + if (this.form.id != null) { | |
| 374 | + this.updateForm.id = this.form.id; | |
| 375 | + updateCredit(this.updateForm).then(response => { | |
| 376 | + this.msgSuccess("撤销成功"); | |
| 377 | + this.isEdit = false; | |
| 378 | + this.init(); | |
| 379 | + }); | |
| 380 | + } else { | |
| 381 | + this.form.lostCredit = 1; | |
| 382 | + addCredit(this.form).then(response => { | |
| 383 | + this.msgSuccess("新增成功"); | |
| 384 | + this.open = false; | |
| 385 | + this.init(); | |
| 386 | + }); | |
| 387 | + } | |
| 388 | + } | |
| 389 | + }); | |
| 390 | + }, | |
| 391 | + handleExport() { | |
| 392 | + const queryParams = this.queryParams; | |
| 393 | + this.$confirm('是否确认导出所有驾驶员数据项?', "警告", { | |
| 394 | + confirmButtonText: "确定", | |
| 395 | + cancelButtonText: "取消", | |
| 396 | + type: "warning" | |
| 397 | + }).then(function() { | |
| 398 | + return exportCredit(queryParams); | |
| 399 | + }).then(response => { | |
| 400 | + this.download(response.message); | |
| 401 | + }) | |
| 402 | + } | |
| 403 | + } | |
| 404 | +}; | |
| 405 | +</script> | ... | ... |
trash-ui/src/views/h5/EarthSitesCredit/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="app-container"> | |
| 3 | + <el-row :gutter="10" class="mb8"> | |
| 4 | + <el-col :span="1.5"> | |
| 5 | + <el-button :class="{'el-button':true, 'el-button--primary':this.queryParams.status==0}" size="mini" | |
| 6 | + @click="getData(1);">失信消纳场</el-button> | |
| 7 | + </el-col> | |
| 8 | + <el-col :span="1.5"> | |
| 9 | + <el-button :class="{'el-button':true,'el-button--primary':this.queryParams.status==1}" size="mini" | |
| 10 | + @click="getHistoryData(1);">历史失信消纳场</el-button> | |
| 11 | + </el-col> | |
| 12 | + </el-row> | |
| 13 | + | |
| 14 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> | |
| 15 | + <el-row type="flex" justify="center"> | |
| 16 | + <el-col> | |
| 17 | + <el-form-item label="消纳场名称" prop="name" style="float:right;"> | |
| 18 | + <el-select v-model="queryParams.name" filterable reserve-keyword placeholder="消纳场名称" size="small" | |
| 19 | + :loading="loading"> | |
| 20 | + <el-option v-for="item in dictNames" :label="item" :value="item" :key="item"> | |
| 21 | + </el-option> | |
| 22 | + </el-select> | |
| 23 | + </el-form-item> | |
| 24 | + </el-col> | |
| 25 | + | |
| 26 | + <el-col> | |
| 27 | + <el-form-item label="所属区域" prop="place"> | |
| 28 | + <el-select v-model="queryParams.place" filterable reserve-keyword placeholder="所属区域" size="small" > | |
| 29 | + <el-option v-for="item in dictPlaces" :label="item" :value="item" :key="item"> | |
| 30 | + </el-option> | |
| 31 | + </el-select> | |
| 32 | + </el-form-item> | |
| 33 | + </el-col> | |
| 34 | + </el-row> | |
| 35 | + <el-row type="flex" justify="center"> | |
| 36 | + <el-col> | |
| 37 | + <el-form-item label="消纳场类型" prop="type" style="float:right;"> | |
| 38 | + <el-select v-model="queryParams.type" filterable reserve-keyword placeholder="消纳场类型" size="small" | |
| 39 | + :loading="loading"> | |
| 40 | + <el-option v-for="item in dictTypes" :label="item" :value="item" :key="item"> | |
| 41 | + </el-option> | |
| 42 | + </el-select> | |
| 43 | + </el-form-item> | |
| 44 | + </el-col> | |
| 45 | + <el-col> | |
| 46 | + <el-form-item label="失信日期" prop="time" v-show="queryParams.status==0"> | |
| 47 | + <el-date-picker size="small" style="width: 200px" v-model="queryParams.time" type="date" | |
| 48 | + value-format="yyyy-MM-dd" placeholder="失信日期"> | |
| 49 | + </el-date-picker> | |
| 50 | + </el-form-item> | |
| 51 | + </el-col> | |
| 52 | + </el-row> | |
| 53 | + </el-form> | |
| 54 | + | |
| 55 | + <el-row :gutter="10" class="mb8"> | |
| 56 | + <el-col :span="1.5"> | |
| 57 | + <el-button type="primary" size="mini" @click="handleAdd" v-hasPermi="['EarthSites:credit:add']" v-if="queryParams.status==0">新增</el-button> | |
| 58 | + </el-col> | |
| 59 | + <el-col :span="1.5"> | |
| 60 | + <el-button size="mini" @click="handleExport" v-hasPermi="['EarthSites:credit:export']">导出</el-button> | |
| 61 | + </el-col> | |
| 62 | + | |
| 63 | + <el-col :span="1.5"> | |
| 64 | + <el-button type="primary" size="mini" @click="handleQuery">查询</el-button> | |
| 65 | + </el-col> | |
| 66 | + <el-col :span="1.5"> | |
| 67 | + <el-button size="mini" @click="resetQuery">重置</el-button> | |
| 68 | + </el-col> | |
| 69 | + </el-row> | |
| 70 | + | |
| 71 | + | |
| 72 | + <el-card class="box-card" v-for="item in creditList" style="margin-bottom: 10px;" | |
| 73 | + > | |
| 74 | + <el-row class="card_row"> | |
| 75 | + <el-col :span="24" class="card_grid"> | |
| 76 | + <div class="card_title" style="font-weight: bold;">消纳场名称:{{ item.name }}</div> | |
| 77 | + </el-col> | |
| 78 | + </el-row> | |
| 79 | + | |
| 80 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 81 | + <el-col :span="24"> | |
| 82 | + <span >消纳场类型:{{ item.type }}</span> | |
| 83 | + </el-col> | |
| 84 | + </el-row> | |
| 85 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 86 | + <el-col :span="24"> | |
| 87 | + <span >失信时间:{{ item.time }}</span> | |
| 88 | + </el-col> | |
| 89 | + </el-row> | |
| 90 | + | |
| 91 | + <el-row class="card_row"> | |
| 92 | + <el-col :span="24"> | |
| 93 | + <span >所属区域:{{item.place}}</span> | |
| 94 | + </el-col> | |
| 95 | + </el-row> | |
| 96 | + <el-row class="card_row"> | |
| 97 | + <el-col :span="24"> | |
| 98 | + <span >失信原因:{{item.reason}}</span> | |
| 99 | + </el-col> | |
| 100 | + </el-row> | |
| 101 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==0">撤销失信</el-button> | |
| 102 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="getDataInfo(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==1">查看</el-button> | |
| 103 | + </el-card> | |
| 104 | + | |
| 105 | + <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" | |
| 106 | + @pagination="getList" /> | |
| 107 | + | |
| 108 | + <!-- 添加或修改工地对话框 --> | |
| 109 | + <el-dialog :title="title" :visible.sync="open" width="300px" append-to-body v-loading="loading"> | |
| 110 | + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | |
| 111 | + <el-form-item label="消纳场名称" prop="name"> | |
| 112 | + <el-select | |
| 113 | + v-model="form.name" | |
| 114 | + filterable | |
| 115 | + reserve-keyword | |
| 116 | + placeholder="消纳场名称"> | |
| 117 | + <el-option | |
| 118 | + @click.native="getObjId(item)" | |
| 119 | + v-for="item in earthsitesList" | |
| 120 | + :key="item.id" | |
| 121 | + :label="item.name" | |
| 122 | + :value="item.name" | |
| 123 | + v-if="item.creditStatus==0"> | |
| 124 | + </el-option> | |
| 125 | + </el-select> | |
| 126 | + </el-form-item> | |
| 127 | + | |
| 128 | + <el-form-item label="消纳场类型" prop="type"> | |
| 129 | + | |
| 130 | + <el-input v-model="form.type" disabled/> | |
| 131 | + </el-form-item> | |
| 132 | + <el-form-item label="所属区域" prop="place"> | |
| 133 | + <el-input v-model="form.place" disabled/> | |
| 134 | + </el-form-item> | |
| 135 | + <el-form-item label="失信原因" prop="reason"> | |
| 136 | + <el-input v-model="form.reason" placeholder="失信原因" /> | |
| 137 | + </el-form-item> | |
| 138 | + <el-input v-model="form.lostCredit" value="1" type="hidden" /> | |
| 139 | + <el-input v-model="form.objectId" type="hidden" /> | |
| 140 | + </el-form> | |
| 141 | + <div slot="footer" class="dialog-footer"> | |
| 142 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 143 | + <el-button @click="cancel">退出</el-button> | |
| 144 | + </div> | |
| 145 | + </el-dialog> | |
| 146 | + | |
| 147 | + | |
| 148 | + <el-dialog title="撤销失信" :visible.sync="isEdit" width="300px" append-to-body v-loading="loading"> | |
| 149 | + <el-form ref="form" :model="updateForm" :rules="rules" label-width="80px"> | |
| 150 | + <el-form-item label="情况说明" prop="reason"> | |
| 151 | + <el-input v-model="updateForm.reason" type="textarea" maxlength="200" show-word-limit/> | |
| 152 | + </el-form-item> | |
| 153 | + </el-form> | |
| 154 | + <div slot="footer" class="dialog-footer"> | |
| 155 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 156 | + <el-button @click="cancel">退出</el-button> | |
| 157 | + </div> | |
| 158 | + </el-dialog> | |
| 159 | + | |
| 160 | + <el-dialog title="历史失信" :visible.sync="infoDialog" width="300px" append-to-body> | |
| 161 | + <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> | |
| 162 | + <el-table-column label="序号" align="center" type="index" /> | |
| 163 | + <el-table-column label="失信时间" align="center" prop="time" width="100" /> | |
| 164 | + <el-table-column label="情况说明" align="center" prop="reason" /> | |
| 165 | + <el-table-column label="操作历史" align="center" prop="lostCredit"> | |
| 166 | + <template slot-scope="scope"> | |
| 167 | + <span>{{ scope.row.lostCredit== 0 ? "撤销失信" : "失信" }}</span> | |
| 168 | + </template> | |
| 169 | + </el-table-column> | |
| 170 | + </el-table> | |
| 171 | + </el-dialog> | |
| 172 | + </div> | |
| 173 | +</template> | |
| 174 | + | |
| 175 | +<script> | |
| 176 | +import { | |
| 177 | + listCredit, | |
| 178 | + getCredit, | |
| 179 | + delCredit, | |
| 180 | + addCredit, | |
| 181 | + updateCredit, | |
| 182 | + exportCredit, | |
| 183 | + getNames, | |
| 184 | + getTypes, | |
| 185 | + getPlaces, | |
| 186 | + historyCredit | |
| 187 | +} from "@/api/business/earthsites"; | |
| 188 | + | |
| 189 | +import { | |
| 190 | + earthsitesList, | |
| 191 | + updateEarthsites | |
| 192 | +} from "@/api/dict"; | |
| 193 | + | |
| 194 | +import requestRemote from '@/utils/requestRemote' | |
| 195 | + | |
| 196 | +import pagination from '../Pagination'; | |
| 197 | +export default { | |
| 198 | + name: "EarthSitesCredit", | |
| 199 | + components: {pagination}, | |
| 200 | + data() { | |
| 201 | + return { | |
| 202 | + // 遮罩层 | |
| 203 | + loading: true, | |
| 204 | + // 选中数组 | |
| 205 | + ids: [], | |
| 206 | + // 非单个禁用 | |
| 207 | + single: true, | |
| 208 | + // 非多个禁用 | |
| 209 | + multiple: true, | |
| 210 | + // 显示搜索条件 | |
| 211 | + showSearch: true, | |
| 212 | + infoDialog :false, | |
| 213 | + // 总条数 | |
| 214 | + total: 0, | |
| 215 | + // 工地表格数据 | |
| 216 | + creditList: [], | |
| 217 | + creditListInfo: [], | |
| 218 | + earthsitesList:[], | |
| 219 | + dictNames:[], | |
| 220 | + dictTypes:[], | |
| 221 | + dictPlaces:[], | |
| 222 | + names:[], | |
| 223 | + // 弹出层标题 | |
| 224 | + title: "", | |
| 225 | + // 是否显示弹出层 | |
| 226 | + open: false, | |
| 227 | + isEdit:false, | |
| 228 | + // 查询参数 | |
| 229 | + queryParams: { | |
| 230 | + pageNum: 1, | |
| 231 | + pageSize: 10, | |
| 232 | + name: null, | |
| 233 | + type: null, | |
| 234 | + time: null, | |
| 235 | + place: null, | |
| 236 | + reason: null, | |
| 237 | + status: 0, | |
| 238 | + lostCredit: 1 | |
| 239 | + }, | |
| 240 | + // 表单参数 | |
| 241 | + form: {}, | |
| 242 | + updateForm:{}, | |
| 243 | + // 表单校验 | |
| 244 | + rules: {name: [ | |
| 245 | + { required: true, message: '请选择消纳场', trigger: 'change' }, | |
| 246 | + ],reason: [ | |
| 247 | + { required: true, message: '请填写原因', trigger: 'change' }, | |
| 248 | + ]} | |
| 249 | + }; | |
| 250 | + }, | |
| 251 | + created() { | |
| 252 | + this.init(); | |
| 253 | + }, | |
| 254 | + methods: { | |
| 255 | + init(){ | |
| 256 | + this.resetQuery(); | |
| 257 | + this.reset(); | |
| 258 | + this.getList(); | |
| 259 | + this.getNamesData(); | |
| 260 | + this.getTypesData(); | |
| 261 | + this.getPlacesData(); | |
| 262 | + | |
| 263 | + let query = { | |
| 264 | + 'page': 1, | |
| 265 | + 'size': 9999, | |
| 266 | + 'creditStatus': 0 | |
| 267 | + }; | |
| 268 | + earthsitesList(query).then(response => { | |
| 269 | + this.earthsitesList = response.result.list | |
| 270 | + }); | |
| 271 | + }, | |
| 272 | + getDataInfo(row){ | |
| 273 | + let param ={"objectId":row.objectId} | |
| 274 | + listCredit(param).then(response => { | |
| 275 | + this.creditListInfo = response.rows; | |
| 276 | + this.infoDialog = true; | |
| 277 | + }); | |
| 278 | + | |
| 279 | + }, | |
| 280 | + getNamesData(){ | |
| 281 | + getNames(this.queryParams).then(response => { | |
| 282 | + this.dictNames = response; | |
| 283 | + }); | |
| 284 | + }, | |
| 285 | + getTypesData() { | |
| 286 | + getTypes(this.queryParams).then(response => { | |
| 287 | + this.dictTypes = response; | |
| 288 | + }); | |
| 289 | + }, | |
| 290 | + getPlacesData() { | |
| 291 | + getPlaces(this.queryParams).then(response => { | |
| 292 | + this.dictPlaces = response; | |
| 293 | + }); | |
| 294 | + }, | |
| 295 | + getData(stauts){ | |
| 296 | + this.queryParams.status=0; | |
| 297 | + this.queryParams.lostCredit=stauts; | |
| 298 | + this.init(); | |
| 299 | + }, | |
| 300 | + getHistoryData(){ | |
| 301 | + this.queryParams.status=1; | |
| 302 | + this.init(); | |
| 303 | + }, | |
| 304 | + colStyle(obj){ | |
| 305 | + if(obj.column.property == "id"){ | |
| 306 | + return {background:"#f8f8f9"} | |
| 307 | + } | |
| 308 | + }, | |
| 309 | + getObjId(a){ | |
| 310 | + this.form.objectId = a.id; | |
| 311 | + this.form.place = a.areaName; | |
| 312 | + this.form.type = a.typeName; | |
| 313 | + }, | |
| 314 | + getList() { | |
| 315 | + this.loading = true; | |
| 316 | + if(this.queryParams.status==0){ | |
| 317 | + listCredit(this.queryParams).then(response => { | |
| 318 | + this.creditList = response.rows; | |
| 319 | + this.total = response.total; | |
| 320 | + this.loading = false; | |
| 321 | + }); | |
| 322 | + } | |
| 323 | + if(this.queryParams.status==1){ | |
| 324 | + historyCredit(this.queryParams).then(response => { | |
| 325 | + this.creditList = response.rows; | |
| 326 | + this.total = response.total; | |
| 327 | + this.loading = false; | |
| 328 | + }); | |
| 329 | + } | |
| 330 | + | |
| 331 | + }, | |
| 332 | + // 取消按钮 | |
| 333 | + cancel() { | |
| 334 | + this.open = false; | |
| 335 | + this.isEdit = false; | |
| 336 | + this.reset(); | |
| 337 | + }, | |
| 338 | + // 表单重置 | |
| 339 | + reset() { | |
| 340 | + this.form = { | |
| 341 | + id: null, | |
| 342 | + name: null, | |
| 343 | + type: null, | |
| 344 | + time: null, | |
| 345 | + place: null, | |
| 346 | + reason: null, | |
| 347 | + lostCredit: null, | |
| 348 | + objectId: null, | |
| 349 | + }; | |
| 350 | + this.updateForm = {}; | |
| 351 | + this.resetForm("form"); | |
| 352 | + }, | |
| 353 | + /** 搜索按钮操作 */ | |
| 354 | + handleQuery() { | |
| 355 | + this.queryParams.pageNum = 1; | |
| 356 | + this.getList(); | |
| 357 | + }, | |
| 358 | + /** 重置按钮操作 */ | |
| 359 | + resetQuery() { | |
| 360 | + this.resetForm("queryForm"); | |
| 361 | + console.log(this.queryParams); | |
| 362 | + this.handleQuery(); | |
| 363 | + }, | |
| 364 | + // 多选框选中数据 | |
| 365 | + handleSelectionChange(selection) { | |
| 366 | + this.ids = selection.map(item => item.id) | |
| 367 | + this.single = selection.length !== 1 | |
| 368 | + this.multiple = !selection.length | |
| 369 | + }, | |
| 370 | + /** 新增按钮操作 */ | |
| 371 | + handleAdd() { | |
| 372 | + this.reset(); | |
| 373 | + this.open = true; | |
| 374 | + this.title = "添加消纳场"; | |
| 375 | + }, | |
| 376 | + /** 修改按钮操作 */ | |
| 377 | + handleUpdate(row) { | |
| 378 | + this.reset(); | |
| 379 | + const id = row.id || this.ids | |
| 380 | + getCredit(id).then(response => { | |
| 381 | + this.form = response.data; | |
| 382 | + this.isEdit = true; | |
| 383 | + }); | |
| 384 | + }, | |
| 385 | + /** 提交按钮 */ | |
| 386 | + submitForm() { | |
| 387 | + if(this.open){ | |
| 388 | + this.updateForm.reason = "1"; | |
| 389 | + } | |
| 390 | + | |
| 391 | + this.$refs["form"].validate(valid => { | |
| 392 | + if (valid) { | |
| 393 | + this.loading = true; | |
| 394 | + if (this.form.id != null) { | |
| 395 | + this.form.lostCredit = 0; | |
| 396 | + let data = [{creditStatus:this.form.lostCredit,objectId:this.form.objectId}]; | |
| 397 | + updateEarthsites(data).then(res=>{ | |
| 398 | + this.updateForm.id = this.form.id; | |
| 399 | + updateCredit(this.updateForm).then(response => { | |
| 400 | + this.msgSuccess("撤销成功"); | |
| 401 | + this.isEdit = false; | |
| 402 | + | |
| 403 | + this.init(); | |
| 404 | + }); | |
| 405 | + }); | |
| 406 | + } else { | |
| 407 | + this.form.lostCredit = 1; | |
| 408 | + let data = [{creditStatus:this.form.lostCredit,objectId:this.form.objectId}]; | |
| 409 | + updateEarthsites(data).then(res=>{ | |
| 410 | + addCredit(this.form).then(response => { | |
| 411 | + this.msgSuccess("新增成功"); | |
| 412 | + this.open = false; | |
| 413 | + | |
| 414 | + this.init(); | |
| 415 | + }); | |
| 416 | + }); | |
| 417 | + | |
| 418 | + } | |
| 419 | + } | |
| 420 | + }); | |
| 421 | + }, | |
| 422 | + handleExport() { | |
| 423 | + const queryParams = this.queryParams; | |
| 424 | + this.$confirm('是否确认导出所有消纳场数据项?', "警告", { | |
| 425 | + confirmButtonText: "确定", | |
| 426 | + cancelButtonText: "取消", | |
| 427 | + type: "warning" | |
| 428 | + }).then(function() { | |
| 429 | + return exportCredit(queryParams); | |
| 430 | + }).then(response => { | |
| 431 | + this.download(response.message); | |
| 432 | + }) | |
| 433 | + } | |
| 434 | + } | |
| 435 | +}; | |
| 436 | +</script> | ... | ... |
trash-ui/src/views/h5/Pagination/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div :class="{'hidden':hidden}" class="pagination-container"> | |
| 3 | + <el-pagination | |
| 4 | + :background="background" | |
| 5 | + :current-page.sync="currentPage" | |
| 6 | + :page-size.sync="pageSize" | |
| 7 | + :layout="layout" | |
| 8 | + :page-sizes="pageSizes" | |
| 9 | + :total="total" | |
| 10 | + v-bind="$attrs" | |
| 11 | + @size-change="handleSizeChange" | |
| 12 | + @current-change="handleCurrentChange" | |
| 13 | + /> | |
| 14 | + </div> | |
| 15 | +</template> | |
| 16 | + | |
| 17 | +<script> | |
| 18 | +import { scrollTo } from '@/utils/scroll-to' | |
| 19 | + | |
| 20 | +export default { | |
| 21 | + name: 'Pagination', | |
| 22 | + props: { | |
| 23 | + total: { | |
| 24 | + required: true, | |
| 25 | + type: Number | |
| 26 | + }, | |
| 27 | + page: { | |
| 28 | + type: Number, | |
| 29 | + default: 1 | |
| 30 | + }, | |
| 31 | + limit: { | |
| 32 | + type: Number, | |
| 33 | + default: 20 | |
| 34 | + }, | |
| 35 | + pageSizes: { | |
| 36 | + type: Array, | |
| 37 | + default() { | |
| 38 | + return [10, 20, 30, 50] | |
| 39 | + } | |
| 40 | + }, | |
| 41 | + layout: { | |
| 42 | + type: String, | |
| 43 | + default: 'prev, pager, next' | |
| 44 | + }, | |
| 45 | + background: { | |
| 46 | + type: Boolean, | |
| 47 | + default: true | |
| 48 | + }, | |
| 49 | + autoScroll: { | |
| 50 | + type: Boolean, | |
| 51 | + default: true | |
| 52 | + }, | |
| 53 | + hidden: { | |
| 54 | + type: Boolean, | |
| 55 | + default: false | |
| 56 | + } | |
| 57 | + }, | |
| 58 | + computed: { | |
| 59 | + currentPage: { | |
| 60 | + get() { | |
| 61 | + return this.page | |
| 62 | + }, | |
| 63 | + set(val) { | |
| 64 | + this.$emit('update:page', val) | |
| 65 | + } | |
| 66 | + }, | |
| 67 | + pageSize: { | |
| 68 | + get() { | |
| 69 | + return this.limit | |
| 70 | + }, | |
| 71 | + set(val) { | |
| 72 | + this.$emit('update:limit', val) | |
| 73 | + } | |
| 74 | + } | |
| 75 | + }, | |
| 76 | + methods: { | |
| 77 | + handleSizeChange(val) { | |
| 78 | + this.$emit('pagination', { page: this.currentPage, limit: val }) | |
| 79 | + if (this.autoScroll) { | |
| 80 | + scrollTo(0, 800) | |
| 81 | + } | |
| 82 | + }, | |
| 83 | + handleCurrentChange(val) { | |
| 84 | + this.$emit('pagination', { page: val, limit: this.pageSize }) | |
| 85 | + if (this.autoScroll) { | |
| 86 | + scrollTo(0, 800) | |
| 87 | + } | |
| 88 | + } | |
| 89 | + } | |
| 90 | +} | |
| 91 | +</script> | |
| 92 | + | |
| 93 | +<style scoped> | |
| 94 | +.pagination-container { | |
| 95 | + background: #fff; | |
| 96 | + padding: 32px 16px; | |
| 97 | +} | |
| 98 | +.pagination-container.hidden { | |
| 99 | + display: none; | |
| 100 | +} | |
| 101 | +</style> | ... | ... |
trash-ui/src/views/h5/TruckCredit/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="app-container"> | |
| 3 | + <el-row :gutter="10" class="mb8"> | |
| 4 | + <el-col :span="1.5"> | |
| 5 | + <el-button :class="{'el-button':true, 'el-button--primary':this.queryParams.status==0}" size="mini" | |
| 6 | + @click="getData(1);">失信车辆</el-button> | |
| 7 | + </el-col> | |
| 8 | + <el-col :span="1.5"> | |
| 9 | + <el-button :class="{'el-button':true,'el-button--primary':this.queryParams.status==1}" size="mini" | |
| 10 | + @click="getHistoryData(1);">历史失信车辆</el-button> | |
| 11 | + </el-col> | |
| 12 | + </el-row> | |
| 13 | + | |
| 14 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> | |
| 15 | + <el-form-item label="车牌号码" prop="licensePlate"> | |
| 16 | + <el-select v-model="queryParams.licensePlate" filterable reserve-keyword placeholder="车牌号码" | |
| 17 | + size="small" :loading="loading"> | |
| 18 | + <el-option v-for="item in dictNames" :label="item" :value="item"> | |
| 19 | + </el-option> | |
| 20 | + </el-select> | |
| 21 | + </el-form-item> | |
| 22 | + <el-form-item label="运输企业" prop="companyId"> | |
| 23 | + <el-select v-model="queryParams.companyId" filterable reserve-keyword placeholder="运输企业" | |
| 24 | + size="small" :loading="loading"> | |
| 25 | + <el-option v-for="item in dictCompanys" :label="item" :value="item"> | |
| 26 | + </el-option> | |
| 27 | + </el-select> | |
| 28 | + </el-form-item> | |
| 29 | + <el-form-item label="失信日期" prop="time" v-show="queryParams.status==0"> | |
| 30 | + <el-date-picker size="small" style="width: 200px" v-model="queryParams.time" type="date" | |
| 31 | + value-format="yyyy-MM-dd" placeholder="失信日期"> | |
| 32 | + </el-date-picker> | |
| 33 | + </el-form-item> | |
| 34 | + </el-row> | |
| 35 | + | |
| 36 | + </el-form> | |
| 37 | + | |
| 38 | + <el-row :gutter="10" class="mb8"> | |
| 39 | + <el-col :span="1.5"> | |
| 40 | + <el-button type="primary" size="mini" @click="handleAdd" v-hasPermi="['truck:credit:add']" | |
| 41 | + v-if="queryParams.status==0">新增</el-button> | |
| 42 | + </el-col> | |
| 43 | + <el-col :span="1.5"> | |
| 44 | + <el-button size="mini" @click="handleExport" v-hasPermi="['truck:credit:export']">导出</el-button> | |
| 45 | + </el-col> | |
| 46 | + <el-col :span="1.5"> | |
| 47 | + <el-button type="primary" size="mini" @click="handleQuery">查询</el-button> | |
| 48 | + </el-col> | |
| 49 | + <el-col :span="1.5"> | |
| 50 | + <el-button size="mini" @click="resetQuery">重置</el-button> | |
| 51 | + </el-col> | |
| 52 | + </el-row> | |
| 53 | + | |
| 54 | + <el-card class="box-card" v-for="item in creditList" style="margin-bottom: 10px;"> | |
| 55 | + <el-row class="card_row"> | |
| 56 | + <el-col :span="24" class="card_grid"> | |
| 57 | + <div class="card_title" style="font-weight: bold;">运输企业:{{ item.companyId }}</div> | |
| 58 | + </el-col> | |
| 59 | + </el-row> | |
| 60 | + | |
| 61 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 62 | + <el-col :span="24"> | |
| 63 | + <span >车牌号码:{{ item.licensePlate }}</span> | |
| 64 | + </el-col> | |
| 65 | + </el-row> | |
| 66 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 67 | + <el-col :span="24"> | |
| 68 | + <span >失信时间:{{ item.time }}</span> | |
| 69 | + </el-col> | |
| 70 | + </el-row> | |
| 71 | + | |
| 72 | + <el-row class="card_row"> | |
| 73 | + <el-col :span="24"> | |
| 74 | + <span >失信原因:{{item.reason}}</span> | |
| 75 | + </el-col> | |
| 76 | + </el-row> | |
| 77 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==0">撤销失信</el-button> | |
| 78 | + <el-button size="mini" type="text" icon="el-icon-edit" @click="getDataInfo(item)" v-hasPermi="['Company:credit:edit']" v-if="queryParams.status==1">查看</el-button> | |
| 79 | + </el-card> | |
| 80 | + | |
| 81 | + | |
| 82 | + <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" | |
| 83 | + @pagination="getList" /> | |
| 84 | + | |
| 85 | + <!-- 添加或修改工地对话框 --> | |
| 86 | + <el-dialog :title="title" :visible.sync="open" width="300px" append-to-body v-loading="loading"> | |
| 87 | + <el-form ref="form" :model="form" :rules="rules" label-width="80px" v-if="open"> | |
| 88 | + <el-form-item label="运输企业" prop="companyId"> | |
| 89 | + <el-select v-model="form.companyId" filterable reserve-keyword placeholder="运输企业"> | |
| 90 | + <el-option v-for="item in companyList" @click.native="form.licensePlate=null;" :key="item.name" :label="item.name" :value="item.name"> | |
| 91 | + </el-option> | |
| 92 | + </el-select> | |
| 93 | + </el-form-item> | |
| 94 | + <el-form-item label="车牌号码" prop="licensePlate"> | |
| 95 | + <el-select v-model="form.licensePlate" filterable reserve-keyword placeholder="车牌号码"> | |
| 96 | + <el-option @click.native="getObjId(item)" v-for="item in truckList" :key="item.id" :label="item.licenseplateNo" :value="item.licenseplateNo" v-if="!form.companyId || form.companyId==item.companyName"> | |
| 97 | + </el-option> | |
| 98 | + </el-select> | |
| 99 | + </el-form-item> | |
| 100 | + <el-form-item label="失信原因" prop="reason"> | |
| 101 | + <el-input v-model="form.reason" placeholder="失信原因" /> | |
| 102 | + </el-form-item> | |
| 103 | + <el-input v-model="form.lostCredit" value="1" type="hidden" /> | |
| 104 | + <el-input v-model="form.objectId" type="hidden" /> | |
| 105 | + </el-form> | |
| 106 | + <div slot="footer" class="dialog-footer"> | |
| 107 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 108 | + <el-button @click="cancel">退出</el-button> | |
| 109 | + </div> | |
| 110 | + </el-dialog> | |
| 111 | + | |
| 112 | + | |
| 113 | + <el-dialog title="撤销失信" :visible.sync="isEdit" width="300px" append-to-body v-loading="loading"> | |
| 114 | + <el-form ref="updateForm" :model="updateForm" :rules="rules2" label-width="80px" v-if="isEdit"> | |
| 115 | + <el-form-item label="情况说明" prop="reason"> | |
| 116 | + <el-input v-model="updateForm.reason" type="textarea" maxlength="200" show-word-limit /> | |
| 117 | + </el-form-item> | |
| 118 | + </el-form> | |
| 119 | + <div slot="footer" class="dialog-footer"> | |
| 120 | + <el-button type="primary" @click="submitForm">保存</el-button> | |
| 121 | + <el-button @click="cancel">退出</el-button> | |
| 122 | + </div> | |
| 123 | + </el-dialog> | |
| 124 | + | |
| 125 | + <el-dialog title="历史失信" :visible.sync="infoDialog" width="300px" append-to-body center="true"> | |
| 126 | + <el-table v-loading="loading" :data="creditListInfo" :cell-style="colStyle" border> | |
| 127 | + <el-table-column label="序号" align="center" type="index" /> | |
| 128 | + <el-table-column label="失信时间" align="center" prop="time" width="100" > | |
| 129 | + </el-table-column> | |
| 130 | + <el-table-column label="情况说明" align="center" prop="reason" /> | |
| 131 | + <el-table-column label="操作历史" align="center" prop="lostCredit"> | |
| 132 | + <template slot-scope="scope"> | |
| 133 | + <span>{{ scope.row.lostCredit== 0 ? "撤销失信" : scope.row.lostCredit == 1 ? "失信" : "保密" }}</span> | |
| 134 | + </template> | |
| 135 | + </el-table-column> | |
| 136 | + </el-table> | |
| 137 | + </el-dialog> | |
| 138 | + </div> | |
| 139 | +</template> | |
| 140 | + | |
| 141 | +<script> | |
| 142 | + import { | |
| 143 | + listCredit, | |
| 144 | + getCredit, | |
| 145 | + delCredit, | |
| 146 | + addCredit, | |
| 147 | + updateCredit, | |
| 148 | + exportCredit, | |
| 149 | + getNames, | |
| 150 | + getCompanys, | |
| 151 | + historyCredit | |
| 152 | + } from "@/api/business/truck"; | |
| 153 | + | |
| 154 | + | |
| 155 | + import { | |
| 156 | + companyList, | |
| 157 | + truckList, | |
| 158 | + updateTruck | |
| 159 | + } from "@/api/dict"; | |
| 160 | + | |
| 161 | + export default { | |
| 162 | + name: "Credit", | |
| 163 | + data() { | |
| 164 | + return { | |
| 165 | + // 遮罩层 | |
| 166 | + loading: true, | |
| 167 | + // 选中数组 | |
| 168 | + ids: [], | |
| 169 | + // 非单个禁用 | |
| 170 | + single: true, | |
| 171 | + // 非多个禁用 | |
| 172 | + multiple: true, | |
| 173 | + // 显示搜索条件 | |
| 174 | + showSearch: true, | |
| 175 | + infoDialog: false, | |
| 176 | + // 总条数 | |
| 177 | + total: 0, | |
| 178 | + // 工地表格数据 | |
| 179 | + creditList: [], | |
| 180 | + creditListInfo: [], | |
| 181 | + dictNames: [], | |
| 182 | + dictCompanys: [], | |
| 183 | + companyList:[], | |
| 184 | + truckList: [], | |
| 185 | + // 弹出层标题 | |
| 186 | + title: "", | |
| 187 | + // 是否显示弹出层 | |
| 188 | + open: false, | |
| 189 | + isEdit: false, | |
| 190 | + // 查询参数 | |
| 191 | + queryParams: { | |
| 192 | + pageNum: 1, | |
| 193 | + pageSize: 10, | |
| 194 | + companyId: null, | |
| 195 | + licensePlate: null, | |
| 196 | + time: null, | |
| 197 | + reason: null, | |
| 198 | + status: 0, | |
| 199 | + lostCredit: 1 | |
| 200 | + }, | |
| 201 | + // 表单参数 | |
| 202 | + form: {}, | |
| 203 | + updateForm: {}, | |
| 204 | + // 表单校验 | |
| 205 | + rules: { | |
| 206 | + companyId: [{ | |
| 207 | + required: true, | |
| 208 | + message: '请选择运输公司', | |
| 209 | + trigger: 'change' | |
| 210 | + }, ], | |
| 211 | + reason: [{ | |
| 212 | + required: true, | |
| 213 | + message: '请填写原因', | |
| 214 | + trigger: 'change' | |
| 215 | + }, ], | |
| 216 | + licensePlate: [{ | |
| 217 | + required: true, | |
| 218 | + message: '请选择车辆', | |
| 219 | + trigger: 'change' | |
| 220 | + }], | |
| 221 | + }, | |
| 222 | + rules2: { | |
| 223 | + reason: [{ | |
| 224 | + required: true, | |
| 225 | + message: '请填写原因', | |
| 226 | + trigger: 'change' | |
| 227 | + }, ], | |
| 228 | + } | |
| 229 | + }; | |
| 230 | + }, | |
| 231 | + created() { | |
| 232 | + this.init(); | |
| 233 | + }, | |
| 234 | + methods: { | |
| 235 | + | |
| 236 | + init() { | |
| 237 | + this.resetQuery(); | |
| 238 | + this.getList(); | |
| 239 | + getNames(this.queryParams).then(response => { | |
| 240 | + this.dictNames = response; | |
| 241 | + }); | |
| 242 | + | |
| 243 | + getCompanys(this.queryParams).then(response => { | |
| 244 | + this.dictCompanys = response; | |
| 245 | + }); | |
| 246 | + | |
| 247 | + let query = { | |
| 248 | + 'page':1, | |
| 249 | + 'size':9999, | |
| 250 | + 'dishonestState':0 | |
| 251 | + } | |
| 252 | + companyList(query).then(response => { | |
| 253 | + | |
| 254 | + let companys = response.result.list; | |
| 255 | + this.companyList = companys; | |
| 256 | + let ids = []; | |
| 257 | + | |
| 258 | + for(let i = 0 ;i<companys.length;i++){ | |
| 259 | + ids.push(companys[i].id); | |
| 260 | + } | |
| 261 | + query.companyID = ids + ""; | |
| 262 | + query.valid = 0; | |
| 263 | + | |
| 264 | + truckList(query).then(res=>{ | |
| 265 | + this.truckList = res.result.list; | |
| 266 | + }); | |
| 267 | + | |
| 268 | + }); | |
| 269 | + | |
| 270 | + | |
| 271 | + }, | |
| 272 | + getDataInfo(row) { | |
| 273 | + console.log(row); | |
| 274 | + | |
| 275 | + let param = { | |
| 276 | + "objectId": row.objectId | |
| 277 | + } | |
| 278 | + | |
| 279 | + listCredit(param).then(response => { | |
| 280 | + this.creditListInfo = response.rows; | |
| 281 | + this.infoDialog = true; | |
| 282 | + }); | |
| 283 | + | |
| 284 | + }, | |
| 285 | + getData(stauts) { | |
| 286 | + this.queryParams.status = 0; | |
| 287 | + this.queryParams.lostCredit = stauts; | |
| 288 | + this.init(); | |
| 289 | + }, | |
| 290 | + getHistoryData() { | |
| 291 | + this.queryParams.status = 1; | |
| 292 | + this.init(); | |
| 293 | + }, | |
| 294 | + colStyle(obj) { | |
| 295 | + if (obj.column.property == "id") { | |
| 296 | + return { | |
| 297 | + background: "#f8f8f9" | |
| 298 | + } | |
| 299 | + } | |
| 300 | + }, | |
| 301 | + getObjId(a) { | |
| 302 | + this.form.companyId = a.companyName; | |
| 303 | + this.form.objectId = a.id; | |
| 304 | + }, | |
| 305 | + getList() { | |
| 306 | + this.loading = true; | |
| 307 | + if (this.queryParams.status == 0) { | |
| 308 | + listCredit(this.queryParams).then(response => { | |
| 309 | + this.creditList = response.rows; | |
| 310 | + this.total = response.total; | |
| 311 | + this.loading = false; | |
| 312 | + }); | |
| 313 | + } | |
| 314 | + if (this.queryParams.status == 1) { | |
| 315 | + historyCredit(this.queryParams).then(response => { | |
| 316 | + this.creditList = response.rows; | |
| 317 | + this.total = response.total; | |
| 318 | + this.loading = false; | |
| 319 | + }); | |
| 320 | + } | |
| 321 | + | |
| 322 | + }, | |
| 323 | + // 取消按钮 | |
| 324 | + cancel() { | |
| 325 | + this.open = false; | |
| 326 | + this.isEdit = false; | |
| 327 | + this.reset(); | |
| 328 | + }, | |
| 329 | + // 表单重置 | |
| 330 | + reset() { | |
| 331 | + this.form = { | |
| 332 | + id: null, | |
| 333 | + companyId: null, | |
| 334 | + licensePlate: null, | |
| 335 | + time: null, | |
| 336 | + reason: null, | |
| 337 | + status: null, | |
| 338 | + lostCredit: null | |
| 339 | + }; | |
| 340 | + this.resetForm("form"); | |
| 341 | + }, | |
| 342 | + /** 搜索按钮操作 */ | |
| 343 | + handleQuery() { | |
| 344 | + this.queryParams.pageNum = 1; | |
| 345 | + this.getList(); | |
| 346 | + }, | |
| 347 | + /** 重置按钮操作 */ | |
| 348 | + resetQuery() { | |
| 349 | + this.resetForm("queryForm"); | |
| 350 | + console.log(this.queryParams); | |
| 351 | + this.handleQuery(); | |
| 352 | + }, | |
| 353 | + // 多选框选中数据 | |
| 354 | + handleSelectionChange(selection) { | |
| 355 | + this.ids = selection.map(item => item.id) | |
| 356 | + this.single = selection.length !== 1 | |
| 357 | + this.multiple = !selection.length | |
| 358 | + }, | |
| 359 | + /** 新增按钮操作 */ | |
| 360 | + handleAdd() { | |
| 361 | + this.reset(); | |
| 362 | + this.open = true; | |
| 363 | + this.title = "车辆失信录入"; | |
| 364 | + }, | |
| 365 | + /** 修改按钮操作 */ | |
| 366 | + handleUpdate(row) { | |
| 367 | + this.reset(); | |
| 368 | + const id = row.id || this.ids | |
| 369 | + getCredit(id).then(response => { | |
| 370 | + this.form = response.data; | |
| 371 | + this.isEdit = true; | |
| 372 | + }); | |
| 373 | + }, | |
| 374 | + /** 提交按钮 */ | |
| 375 | + submitForm() { | |
| 376 | + if(this.isEdit){ | |
| 377 | + this.$refs["updateForm"].validate(valid => { | |
| 378 | + if (valid) { | |
| 379 | + this.loading = true; | |
| 380 | + this.form.lostCredit = 0; | |
| 381 | + this.updateForm.id = this.form.id; | |
| 382 | + let data = [{creditStatus:this.form.lostCredit,id:this.form.objectId}]; | |
| 383 | + updateTruck(data).then(res=>{ | |
| 384 | + updateCredit(this.updateForm).then(response => { | |
| 385 | + this.msgSuccess("撤销成功"); | |
| 386 | + this.isEdit = false; | |
| 387 | + this.updateForm = {}; | |
| 388 | + this.init(); | |
| 389 | + }); | |
| 390 | + }); | |
| 391 | + } | |
| 392 | + }); | |
| 393 | + }else{ | |
| 394 | + this.$refs["form"].validate(valid => { | |
| 395 | + if (valid) { | |
| 396 | + this.loading = true; | |
| 397 | + this.form.lostCredit = 1; | |
| 398 | + this.form.createType = 0; | |
| 399 | + let data = [{creditStatus:this.form.lostCredit,id:this.form.objectId}]; | |
| 400 | + updateTruck(data).then(res=>{ | |
| 401 | + addCredit(this.form).then(response => { | |
| 402 | + this.msgSuccess("新增成功"); | |
| 403 | + this.open = false; | |
| 404 | + this.init(); | |
| 405 | + }); | |
| 406 | + }); | |
| 407 | + } | |
| 408 | + }); | |
| 409 | + } | |
| 410 | + }, | |
| 411 | + handleExport() { | |
| 412 | + const queryParams = this.queryParams; | |
| 413 | + this.$confirm('是否确认导出所有车辆数据项?', "警告", { | |
| 414 | + confirmButtonText: "确定", | |
| 415 | + cancelButtonText: "取消", | |
| 416 | + type: "warning" | |
| 417 | + }).then(function() { | |
| 418 | + return exportCredit(queryParams); | |
| 419 | + }).then(response => { | |
| 420 | + this.download(response.message); | |
| 421 | + }) | |
| 422 | + } | |
| 423 | + } | |
| 424 | + }; | |
| 425 | +</script> | ... | ... |
trash-ui/src/views/h5/caseOffline/caseOfflineInfo.vue
0 → 100644
| 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/caseOffline/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="app-container"> | |
| 3 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> | |
| 4 | + <el-form-item label="案卷类型" prop="type"> | |
| 5 | + <el-select v-model="queryParams.type" placeholder="请选择案卷类型" size="small"> | |
| 6 | + <el-option v-for="item in caseType" :label="item.name" :value="item.code" /> | |
| 7 | + </el-select> | |
| 8 | + </el-form-item> | |
| 9 | + <el-form-item label="所属区域" prop="place"> | |
| 10 | + <el-select v-model="queryParams.place" placeholder="请选择案卷类型" size="small"> | |
| 11 | + <el-option v-for="item in areas" :label="item.name" :value="item.code" /> | |
| 12 | + </el-select> | |
| 13 | + </el-form-item> | |
| 14 | + <el-form-item label="时间" prop="createTime"> | |
| 15 | + <el-date-picker size="small" style="width: 200px" | |
| 16 | + v-model="queryParams.createTime" | |
| 17 | + type="date" | |
| 18 | + value-format="yyyy-MM-dd" | |
| 19 | + placeholder="选择时间"> | |
| 20 | + </el-date-picker> | |
| 21 | + </el-form-item> | |
| 22 | + <el-form-item> | |
| 23 | + <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | |
| 24 | + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | |
| 25 | + </el-form-item> | |
| 26 | + </el-form> | |
| 27 | + | |
| 28 | + <el-row :gutter="10" class="mb8"> | |
| 29 | + <el-col :span="1.5"> | |
| 30 | + <el-button | |
| 31 | + type="primary" | |
| 32 | + icon="el-icon-plus" | |
| 33 | + size="mini" | |
| 34 | + @click="handleAdd" | |
| 35 | + v-hasPermi="['caseOffline:caseOffline:add']" | |
| 36 | + >新增</el-button> | |
| 37 | + </el-col> | |
| 38 | + <el-col :span="1.5"> | |
| 39 | + <el-button | |
| 40 | + type="warning" | |
| 41 | + icon="el-icon-download" | |
| 42 | + size="mini" | |
| 43 | + @click="handleExport" | |
| 44 | + v-hasPermi="['caseOffline:caseOffline:export']" | |
| 45 | + >导出</el-button> | |
| 46 | + </el-col> | |
| 47 | + </el-row> | |
| 48 | + | |
| 49 | + <a @click="handleUpdate(item)" v-for="item in caseOfflineList"> | |
| 50 | + <el-card class="box-card" style="margin-bottom: 10px;" | |
| 51 | + > | |
| 52 | + <el-row class="card_row"> | |
| 53 | + <el-col :span="24" class="card_grid"> | |
| 54 | + <div class="card_title" style="font-weight: bold;">案卷编号:{{item.number}}</div> | |
| 55 | + </el-col> | |
| 56 | + </el-row> | |
| 57 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 58 | + <el-col :span="24"> | |
| 59 | + <span >案卷类型:{{item.type}}</span> | |
| 60 | + </el-col> | |
| 61 | + </el-row> | |
| 62 | + <el-row class="card_row"> | |
| 63 | + <el-col :span="24" class="card_grid" > | |
| 64 | + <span >所属区域:{{item.place}}</span> | |
| 65 | + </el-col> | |
| 66 | + | |
| 67 | + </el-row> | |
| 68 | + <el-row class="card_row"> | |
| 69 | + <el-col :span="24" class="card_grid" > | |
| 70 | + <div>时间:{{item.createTime}}</div> | |
| 71 | + </el-col> | |
| 72 | + </el-row> | |
| 73 | + <span>{{item.status == 0 ?"审批中" : (item.status == 2 ?"驳回" :"审批完成")}}</span> | |
| 74 | + | |
| 75 | + </el-card> | |
| 76 | +</a> | |
| 77 | + | |
| 78 | + | |
| 79 | + <pagination | |
| 80 | + v-show="total>0" | |
| 81 | + :total="total" | |
| 82 | + :page.sync="queryParams.pageNum" | |
| 83 | + :limit.sync="queryParams.pageSize" | |
| 84 | + @pagination="getList" | |
| 85 | + /> | |
| 86 | + | |
| 87 | + <!-- 添加或修改线下交办案卷对话框 --> | |
| 88 | + <el-dialog :title="title" :visible.sync="open" width="300px" append-to-body> | |
| 89 | + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | |
| 90 | + <el-form-item label="案卷类型" prop="type"> | |
| 91 | + <el-select v-model="form.type" placeholder="请选择案卷类型"> | |
| 92 | + <el-option v-for="item in caseType" :label="item.name" :value="item.code" /> | |
| 93 | + </el-select> | |
| 94 | + </el-form-item> | |
| 95 | + <el-form-item label="所属区域" prop="place"> | |
| 96 | + <el-select v-model="form.place" placeholder="请输入所属区域" size="small"> | |
| 97 | + <el-option v-for="item in areas" :label="item.name" :value="item.code" /> | |
| 98 | + </el-select> | |
| 99 | + </el-form-item> | |
| 100 | + <el-form-item label="类型" prop="siteType"> | |
| 101 | + <el-select v-model="form.siteType" placeholder="请选择类型"> | |
| 102 | + <el-option label="工地" value="0" /> | |
| 103 | + <el-option label="消纳场" value="1" /> | |
| 104 | + </el-select> | |
| 105 | + </el-form-item> | |
| 106 | + <el-form-item :label="form.siteType==0?'工地名称':'消纳场名称'" prop="siteName"> | |
| 107 | + <el-select v-model="form.siteName" placeholder="请选择类型"> | |
| 108 | + <el-option v-for="item in data[form.siteType]" :label="item.name" :value="item.name" @native.click="getSite(item)"/> | |
| 109 | + </el-select> | |
| 110 | + </el-form-item> | |
| 111 | + <el-form-item label="问题描述" prop="caseDec"> | |
| 112 | + <el-input v-model="form.caseDec" placeholder="请输入问题描述" type="text" maxlength="200" :rows="3"/> | |
| 113 | + </el-form-item> | |
| 114 | + <el-form-item label="位置描述" prop="locationDec"> | |
| 115 | + <el-input v-model="form.locationDec" placeholder="请输入问题描述" type="text" maxlength="100" :rows="3"/> | |
| 116 | + </el-form-item> | |
| 117 | + <el-form-item label="案卷编号" prop="number"> | |
| 118 | + <el-input v-model="form.number" placeholder="请输入案卷编号" disabled/> | |
| 119 | + </el-form-item> | |
| 120 | + | |
| 121 | + <el-form-item label="附件" prop="attach"> | |
| 122 | + <a style="color:blue;font-size: 12px;" @click="uploadImageDialog=true;">选择附件</a> | |
| 123 | + <el-input v-model="form.attach" type="hidden"></el-input> | |
| 124 | + <a @click="downloadFile(img);" style="color: blue;" v-for="img,index in form.attach">附件 - {{index+1}}</a> | |
| 125 | + </el-form-item> | |
| 126 | + | |
| 127 | + </el-form> | |
| 128 | + <div slot="footer" class="dialog-footer"> | |
| 129 | + <el-button type="primary" @click="submitForm">确 定</el-button> | |
| 130 | + <el-button @click="cancel">取 消</el-button> | |
| 131 | + </div> | |
| 132 | + </el-dialog> | |
| 133 | + | |
| 134 | + | |
| 135 | + <el-dialog title="查看详情" :visible.sync="open2" width="300px" append-to-body> | |
| 136 | + <caseOfflineInfo :businessKey="businessKey" v-if="open2" /> | |
| 137 | + <div slot="footer" class="dialog-footer"> | |
| 138 | + <el-button @click="cancel">取 消</el-button> | |
| 139 | + </div> | |
| 140 | + </el-dialog> | |
| 141 | + | |
| 142 | + | |
| 143 | + <el-dialog title="附件" :visible.sync="uploadImageDialog" append-to-body :beforeClose="handleClose" width="300px"> | |
| 144 | + <el-upload multiple :headers="upload.headers" :action="upload.url" :file-list="fileList" | |
| 145 | + :on-success="uploadSuccess" :before-upload="beforeUpload"> | |
| 146 | + <el-button size="small" type="primary">选择附件</el-button> | |
| 147 | + <div slot="tip" class="el-upload__tip">只能上传不超过 20MB 的jpg pdf word文件</div> | |
| 148 | + </el-upload> | |
| 149 | + <div style="height: 40px;width:100%;"> | |
| 150 | + <el-button type="primary" style="margin-top: 20px;float:right;" @click="handleClose">关闭</el-button> | |
| 151 | + </div> | |
| 152 | + </el-dialog> | |
| 153 | + </div> | |
| 154 | +</template> | |
| 155 | + | |
| 156 | +<script> | |
| 157 | +import { listCaseOffline, getCaseOffline, delCaseOffline, addCaseOffline, updateCaseOffline, exportCaseOffline } from "@/api/caseOffline/caseOffline"; | |
| 158 | + | |
| 159 | +import caseOfflineInfo from "@/views/h5/caseOffline/caseOfflineInfo"; | |
| 160 | + | |
| 161 | +import { | |
| 162 | + getArea, | |
| 163 | + earthsitesList, | |
| 164 | + constructionsitesList, | |
| 165 | + getDict, | |
| 166 | + } from "@/api/dict"; | |
| 167 | + | |
| 168 | +import { | |
| 169 | + getThreestep, | |
| 170 | + } from "@/api/business/threestep"; | |
| 171 | + | |
| 172 | +import { | |
| 173 | + getToken | |
| 174 | + } from "@/utils/auth"; | |
| 175 | + | |
| 176 | + import pagination from '../Pagination'; | |
| 177 | + | |
| 178 | +export default { | |
| 179 | + name: "CaseOffline", | |
| 180 | + | |
| 181 | + components: { | |
| 182 | + caseOfflineInfo, | |
| 183 | + pagination | |
| 184 | + }, | |
| 185 | + data() { | |
| 186 | + return { | |
| 187 | + // 遮罩层 | |
| 188 | + loading: true, | |
| 189 | + // 选中数组 | |
| 190 | + ids: [], | |
| 191 | + // 非单个禁用 | |
| 192 | + single: true, | |
| 193 | + // 非多个禁用 | |
| 194 | + multiple: true, | |
| 195 | + // 显示搜索条件 | |
| 196 | + showSearch: true, | |
| 197 | + // 总条数 | |
| 198 | + total: 0, | |
| 199 | + // 线下交办案卷表格数据 | |
| 200 | + caseOfflineList: [], | |
| 201 | + // 弹出层标题 | |
| 202 | + title: "", | |
| 203 | + // 是否显示弹出层 | |
| 204 | + open: false, | |
| 205 | + open2:false, | |
| 206 | + // 查询参数 | |
| 207 | + queryParams: { | |
| 208 | + pageNum: 1, | |
| 209 | + pageSize: 10, | |
| 210 | + type: null, | |
| 211 | + place: null, | |
| 212 | + createTime: null, | |
| 213 | + }, | |
| 214 | + uploadImageDialog:false, | |
| 215 | + // 表单参数 | |
| 216 | + form: {}, | |
| 217 | + // 表单校验 | |
| 218 | + rules: { | |
| 219 | + }, | |
| 220 | + caseType:[ | |
| 221 | + {code:0,name:"渣土处置工地(含消纳场)的渣土运输车辆出场车身不洁,车轮带泥"}, | |
| 222 | + {code:1,name:"未洗车出场或者出场清洁不彻底"}, | |
| 223 | + {code:2,name:"渣土运输车辆货箱顶盖未按规定关闭到位或未按规定和标准装载渣土出场"}, | |
| 224 | + {code:3,name:"非核准车辆进入渣土处置工地运输渣土"}, | |
| 225 | + {code:4,name:"渣土处置工地未按规定时间开停工"}, | |
| 226 | + {code:5,name:"渣土处置工地洗车设施等破损、未正常使用及措施不到位的"}, | |
| 227 | + {code:6,name:"渣土处置工地、消纳场(含回填场)出入口两侧50米范围内出现渣土污染、污水外排等现象"}, | |
| 228 | + {code:7,name:"其他1"}, | |
| 229 | + {code:8,name:"其他2"}, | |
| 230 | + {code:9,name:"其他3"} | |
| 231 | + ], | |
| 232 | + areas:null, | |
| 233 | + fileList:[], | |
| 234 | + areas: [], | |
| 235 | + upload: { | |
| 236 | + // 是否显示弹出层(用户导入) | |
| 237 | + open: false, | |
| 238 | + // 弹出层标题(用户导入) | |
| 239 | + title: "", | |
| 240 | + // 是否禁用上传 | |
| 241 | + isUploading: false, | |
| 242 | + // 设置上传的请求头部 | |
| 243 | + headers: { | |
| 244 | + Authorization: "Bearer " + getToken() | |
| 245 | + }, | |
| 246 | + // 上传的地址 | |
| 247 | + url: process.env.VUE_APP_BASE_API + "/business/threestep/upload", | |
| 248 | + }, | |
| 249 | + data:{}, | |
| 250 | + objId:null | |
| 251 | + }; | |
| 252 | + }, | |
| 253 | + created() { | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + this.getList(); | |
| 258 | + | |
| 259 | + if(window.location.search){ | |
| 260 | + let businessKey = window.location.search.split("=")[1]; | |
| 261 | + let id; | |
| 262 | + if(businessKey.split(":").length == 2){ | |
| 263 | + id = businessKey.split(":")[1]; | |
| 264 | + }else{ | |
| 265 | + id = businessKey; | |
| 266 | + } | |
| 267 | + | |
| 268 | + getThreestep(id).then(response => { | |
| 269 | + let data = response.data; | |
| 270 | + | |
| 271 | + this.handleAdd(); | |
| 272 | + | |
| 273 | + this.form.siteType = data.type + ""; | |
| 274 | + this.form.siteName = data.name; | |
| 275 | + this.form.place = Number(data.place); | |
| 276 | + }); | |
| 277 | + } | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + let remoteQueryData = { | |
| 282 | + "page": 1, | |
| 283 | + "size": 9999 | |
| 284 | + } | |
| 285 | + | |
| 286 | + constructionsitesList(remoteQueryData).then(res => { | |
| 287 | + this.data[0]= res.result.list; | |
| 288 | + }); | |
| 289 | + | |
| 290 | + earthsitesList(remoteQueryData).then(res => { | |
| 291 | + this.data[1]= res.result.list; | |
| 292 | + }); | |
| 293 | + }, | |
| 294 | + methods: { | |
| 295 | + getSite(item){ | |
| 296 | + this.form.objectId = item.id; | |
| 297 | + }, | |
| 298 | + /** 查询线下交办案卷列表 */ | |
| 299 | + getList() { | |
| 300 | + this.loading = true; | |
| 301 | + listCaseOffline(this.queryParams).then(response => { | |
| 302 | + this.caseOfflineList = response.rows; | |
| 303 | + | |
| 304 | + for(let i in this.caseOfflineList){ | |
| 305 | + this.caseOfflineList[i].type = this.getCaseType(this.caseOfflineList[i].type); | |
| 306 | + | |
| 307 | + } | |
| 308 | + | |
| 309 | + getArea().then(res => { | |
| 310 | + this.areas = res.result; | |
| 311 | + for(let i =0;i< this.caseOfflineList.length;i++){ | |
| 312 | + this.caseOfflineList[i].place = this.getAreaName(this.caseOfflineList[i].place); | |
| 313 | + } | |
| 314 | + }); | |
| 315 | + | |
| 316 | + this.total = response.total; | |
| 317 | + this.loading = false; | |
| 318 | + }); | |
| 319 | + }, | |
| 320 | + // 取消按钮 | |
| 321 | + cancel() { | |
| 322 | + this.open = false; | |
| 323 | + this.open2 = false; | |
| 324 | + this.reset(); | |
| 325 | + }, | |
| 326 | + // 表单重置 | |
| 327 | + reset() { | |
| 328 | + this.form = { | |
| 329 | + id: null, | |
| 330 | + type: null, | |
| 331 | + siteName: null, | |
| 332 | + locationDec: null, | |
| 333 | + caseDec: null, | |
| 334 | + status: 0, | |
| 335 | + place: null, | |
| 336 | + number: null, | |
| 337 | + siteType: null, | |
| 338 | + objectId: null, | |
| 339 | + createTime: null, | |
| 340 | + createBy: null, | |
| 341 | + advice1: null, | |
| 342 | + advice2: null, | |
| 343 | + advice3: null, | |
| 344 | + advice4: null, | |
| 345 | + attach:[] | |
| 346 | + }; | |
| 347 | + this.resetForm("form"); | |
| 348 | + }, | |
| 349 | + /** 搜索按钮操作 */ | |
| 350 | + handleQuery() { | |
| 351 | + this.queryParams.pageNum = 1; | |
| 352 | + this.getList(); | |
| 353 | + }, | |
| 354 | + /** 重置按钮操作 */ | |
| 355 | + resetQuery() { | |
| 356 | + this.resetForm("queryForm"); | |
| 357 | + this.handleQuery(); | |
| 358 | + }, | |
| 359 | + // 多选框选中数据 | |
| 360 | + handleSelectionChange(selection) { | |
| 361 | + this.ids = selection.map(item => item.id) | |
| 362 | + this.single = selection.length!==1 | |
| 363 | + this.multiple = !selection.length | |
| 364 | + }, | |
| 365 | + getAreaName(code){ | |
| 366 | + for(let i =0;i<this.areas.length;i++){ | |
| 367 | + if(Number(code) == this.areas[i].code){ | |
| 368 | + return this.areas[i].name; | |
| 369 | + break; | |
| 370 | + } | |
| 371 | + } | |
| 372 | + return code; | |
| 373 | + }, | |
| 374 | + getCaseType(type){ | |
| 375 | + for(let i in this.caseType){ | |
| 376 | + | |
| 377 | + | |
| 378 | + if(this.caseType[i].code==type) | |
| 379 | + return this.caseType[i].name | |
| 380 | + } | |
| 381 | + }, | |
| 382 | + /** 新增按钮操作 */ | |
| 383 | + handleAdd() { | |
| 384 | + this.reset(); | |
| 385 | + this.open = true; | |
| 386 | + this.title = "添加线下交办案卷"; | |
| 387 | + | |
| 388 | + let date = new Date(); | |
| 389 | + | |
| 390 | + | |
| 391 | + this.form.number = date.getFullYear() | |
| 392 | + +""+((date.getMonth()+1) < 10 ? "0" + (date.getMonth()+1) : (date.getMonth()+1)) | |
| 393 | + +""+ ((date.getDate()) < 10 ? "0" + (date.getDate()) : (date.getDate())) | |
| 394 | + +""+ ((date.getHours()) < 10 ? "0" + (date.getHours()) : (date.getHours())) | |
| 395 | + +""+ ((date.getMinutes()) < 10 ? "0" + (date.getMinutes()) : (date.getMinutes())) | |
| 396 | + +""+ ((date.getSeconds()) < 10 ? "0" + (date.getSeconds()*1000) : (date.getSeconds()*1000)) | |
| 397 | + }, | |
| 398 | + /** 修改按钮操作 */ | |
| 399 | + handleUpdate(row) { | |
| 400 | + this.reset(); | |
| 401 | + this.businessKey =row.id + ""; | |
| 402 | + this.open2 = true; | |
| 403 | + }, | |
| 404 | + /** 提交按钮 */ | |
| 405 | + submitForm() { | |
| 406 | + this.$refs["form"].validate(valid => { | |
| 407 | + if (valid) { | |
| 408 | + this.form.attach = this.form.attach +""; | |
| 409 | + if (this.form.id != null) { | |
| 410 | + updateCaseOffline(this.form).then(response => { | |
| 411 | + this.msgSuccess("修改成功"); | |
| 412 | + this.open = false; | |
| 413 | + this.getList(); | |
| 414 | + }); | |
| 415 | + } else { | |
| 416 | + addCaseOffline(this.form).then(response => { | |
| 417 | + this.msgSuccess("新增成功"); | |
| 418 | + this.open = false; | |
| 419 | + this.getList(); | |
| 420 | + }); | |
| 421 | + } | |
| 422 | + } | |
| 423 | + }); | |
| 424 | + }, | |
| 425 | + /** 删除按钮操作 */ | |
| 426 | + handleDelete(row) { | |
| 427 | + const ids = row.id || this.ids; | |
| 428 | + this.$confirm('是否确认删除线下交办案卷编号为"' + ids + '"的数据项?', "警告", { | |
| 429 | + confirmButtonText: "确定", | |
| 430 | + cancelButtonText: "取消", | |
| 431 | + type: "warning" | |
| 432 | + }).then(function() { | |
| 433 | + return delCaseOffline(ids); | |
| 434 | + }).then(() => { | |
| 435 | + this.getList(); | |
| 436 | + this.msgSuccess("删除成功"); | |
| 437 | + }) | |
| 438 | + }, | |
| 439 | + /** 导出按钮操作 */ | |
| 440 | + handleExport() { | |
| 441 | + const queryParams = this.queryParams; | |
| 442 | + this.$confirm('是否确认导出所有线下交办案卷数据项?', "警告", { | |
| 443 | + confirmButtonText: "确定", | |
| 444 | + cancelButtonText: "取消", | |
| 445 | + type: "warning" | |
| 446 | + }).then(function() { | |
| 447 | + return exportCaseOffline(queryParams); | |
| 448 | + }).then(response => { | |
| 449 | + this.download(response.message); | |
| 450 | + }) | |
| 451 | + }, | |
| 452 | + removeAttchItem(index, img) { | |
| 453 | + this.form.attach.splice(this.form.attach.indexOf(img), 1); | |
| 454 | + this.$forceUpdate(); | |
| 455 | + }, | |
| 456 | + uploadSuccess(res, file, fileList) { | |
| 457 | + if(res.code){ | |
| 458 | + this.$message(res.message); | |
| 459 | + return; | |
| 460 | + } | |
| 461 | + if(!this.form.attach){ | |
| 462 | + this.form.attach = []; | |
| 463 | + } | |
| 464 | + this.form.attach.push(res); | |
| 465 | + }, | |
| 466 | + showFileUpload(i) { | |
| 467 | + this.uploadImageDialog = true; | |
| 468 | + this.picIndex = i; | |
| 469 | + }, | |
| 470 | + beforeUpload(file) { | |
| 471 | + let isRightSize = file.size / 1024 / 1024 < 20 | |
| 472 | + if (!isRightSize) { | |
| 473 | + this.$message.error('文件大小超过 20MB') | |
| 474 | + return isRightSize; | |
| 475 | + } | |
| 476 | + let isAccept = false; | |
| 477 | + if (file.name.indexOf('.docx') > -1 || file.name.indexOf(".jpg") > -1 || file.name.indexOf('.doc') > -1 || file | |
| 478 | + .name.indexOf('.pdf') > -1) { | |
| 479 | + isAccept = true; | |
| 480 | + } | |
| 481 | + if (!isAccept) { | |
| 482 | + this.$message.error('应该选择PDF、JPG、WORD类型的文件') | |
| 483 | + return isAccept; | |
| 484 | + } | |
| 485 | + }, | |
| 486 | + downloadFile(path) { | |
| 487 | + window.location.href = process.env.VUE_APP_BASE_API + "/business/threestep/download?path=" + encodeURI(path); | |
| 488 | + }, | |
| 489 | + handleClose() { | |
| 490 | + this.uploadImageDialog = false; | |
| 491 | + this.fileList = []; | |
| 492 | + }, | |
| 493 | + } | |
| 494 | +}; | |
| 495 | +</script> | |
| 496 | + | |
| 497 | +<style scope> | |
| 498 | + .el-select-dropdown__item{ | |
| 499 | + width:300px; | |
| 500 | + } | |
| 501 | +</style> | ... | ... |
trash-ui/src/views/h5/dayWorkReport/index.vue
| 1 | 1 | <template> |
| 2 | 2 | <div class="app-container"> |
| 3 | + <el-row :gutter="10" class="mb8"> | |
| 4 | + <el-col :span="1.5"> | |
| 5 | + <el-button :class="{'el-button':true, 'el-button--primary':this.queryParams.pageStatus==0}" size="mini" | |
| 6 | + @click="getList(0);">报工记录</el-button> | |
| 7 | + </el-col> | |
| 8 | + <el-col :span="1.5"> | |
| 9 | + <el-button :class="{'el-button':true,'el-button--primary':this.queryParams.pageStatus==1}" size="mini" | |
| 10 | + @click="getList(1);">历史报工记录</el-button> | |
| 11 | + </el-col> | |
| 12 | + </el-row> | |
| 3 | 13 | |
| 14 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px"> | |
| 15 | + <el-form-item label="工地名称" prop="name"> | |
| 16 | + <el-input v-model="queryParams.name" placeholder="请输入项目名称" size="small" | |
| 17 | + /> | |
| 18 | + </el-form-item> | |
| 19 | + <el-form-item label="消纳场名称" prop="earthsitesName"> | |
| 20 | + <el-input v-model="queryParams.earthsitesName" placeholder="请输入消纳场名称" size="small" | |
| 21 | + /> | |
| 22 | + </el-form-item> | |
| 23 | + <el-form-item label="工地区属" prop="place"> | |
| 24 | + <el-select v-model="queryParams.place" placeholder="工地所属区域 " size="small"> | |
| 25 | + <el-option v-for="item in areas" :label="item.name" :value="item.code" /> | |
| 26 | + </el-select> | |
| 27 | + </el-form-item> | |
| 28 | + | |
| 29 | + <el-form-item label="消纳场区属" prop="subReason"> | |
| 30 | + <el-select v-model="queryParams.subReason" placeholder="工地所属区域 " size="small"> | |
| 31 | + <el-option v-for="item in areas" :label="item.name" :value="item.code" /> | |
| 32 | + </el-select> | |
| 33 | + </el-form-item> | |
| 34 | + <el-form-item label="开始时间" prop="workStartTime" v-if="this.queryParams.his==1"> | |
| 35 | + <el-date-picker size="small" style="width: 200px" v-model="queryParams.workStartTime" type="date" | |
| 36 | + value-format="yyyy-MM-dd" placeholder="开始时间"> | |
| 37 | + </el-date-picker> | |
| 38 | + </el-form-item> | |
| 39 | + <el-form-item label="结束时间" prop="workEndTime" v-if="this.queryParams.his==1"> | |
| 40 | + <el-date-picker size="small" style="width: 200px" v-model="queryParams.workEndTime" type="date" | |
| 41 | + value-format="yyyy-MM-dd" placeholder="结束时间"> | |
| 42 | + </el-date-picker> | |
| 43 | + </el-form-item> | |
| 4 | 44 | |
| 5 | - <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> | |
| 6 | - <el-row> | |
| 7 | - <el-col :span="12"> | |
| 8 | - <el-input v-model="queryParams.name" placeholder="请输入项目名称" /> | |
| 9 | - </el-col> | |
| 10 | - <el-col :span="12"> | |
| 11 | - <el-select v-model="queryParams.place" placeholder="工地所属区域 " size="small"> | |
| 12 | - <el-option v-for="item in areas" :label="item.name" :value="item.code" /> | |
| 13 | - </el-select> | |
| 14 | - </el-col> | |
| 15 | - </el-row> | |
| 16 | - <el-row> | |
| 17 | - <el-col :span="12"> | |
| 18 | - <el-date-picker size="small" style="width: 150px" v-model="queryParams.workStartTime" type="date" | |
| 19 | - value-format="yyyy-MM-dd" placeholder="开始时间"> | |
| 20 | - </el-date-picker> | |
| 21 | - </el-col> | |
| 22 | - <el-col :span="12"> | |
| 23 | - <el-date-picker size="small" style="width: 150px" v-model="queryParams.workEndTime" type="date" | |
| 24 | - value-format="yyyy-MM-dd" placeholder="结束时间"> | |
| 25 | - </el-date-picker> | |
| 26 | - </el-col> | |
| 27 | - </el-row> | |
| 28 | 45 | <el-form-item> |
| 29 | 46 | <el-button type="primary" size="mini" @click="handleQuery">搜索</el-button> |
| 30 | 47 | <el-button size="mini" @click="resetQuery">重置</el-button> |
| 31 | 48 | </el-form-item> |
| 32 | 49 | </el-form> |
| 33 | 50 | |
| 51 | + | |
| 52 | + <p> {{dayWorkCount}}</p> | |
| 53 | + | |
| 54 | + | |
| 34 | 55 | <el-row :gutter="10" class="mb8"> |
| 35 | 56 | <el-col :span="1.5"> |
| 36 | 57 | <el-button size="mini" @click="handleExport" v-hasPermi="['business:threestep:export']">导出</el-button> |
| ... | ... | @@ -38,18 +59,47 @@ |
| 38 | 59 | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| 39 | 60 | </el-row> |
| 40 | 61 | |
| 41 | - <el-table v-loading="loading" :data="threestepList" @selection-change="handleSelectionChange"> | |
| 42 | - <el-table-column label="序号" align="center" type="index" /> | |
| 43 | - <el-table-column label="工地名称" align="center" prop="name" /> | |
| 44 | - <el-table-column label="项目类型" align="center" prop="type" /> | |
| 45 | - <el-table-column label="管辖区" align="center" prop="place" /> | |
| 46 | - <el-table-column label="审查意见" align="center" prop="sub_reason" width="180" /> | |
| 47 | - <el-table-column label="消纳场名称" align="center" prop="ename" width="180" /> | |
| 48 | - <el-table-column label="消纳场类型" align="center" prop="etype" width="180"/> | |
| 49 | - <el-table-column label="管辖区" align="center" prop="eplace" /> | |
| 50 | - <el-table-column label="审查意见" align="center" prop="esub_reason" width="180" /> | |
| 51 | - <el-table-column label="开工状态" align="center" prop="estatus" class-name="small-padding fixed-width"/> | |
| 52 | - </el-table> | |
| 62 | + <el-card class="box-card" v-for="item in threestepList" style="margin-bottom: 10px;"> | |
| 63 | + <p>{{item.createTime}} {{item.descript}}</p> | |
| 64 | + <el-row class="card_row"> | |
| 65 | + <el-col :span="24" class="card_grid"> | |
| 66 | + <div class="card_title" style="font-weight: bold;">工地名称:{{item.name}}</div> | |
| 67 | + </el-col> | |
| 68 | + </el-row> | |
| 69 | + <el-row class="card_row"> | |
| 70 | + <el-col :span="12" class="card_grid" > | |
| 71 | + <span >所属区:{{item.place}}</span> | |
| 72 | + </el-col> | |
| 73 | + <el-col :span="12" class="card_grid" > | |
| 74 | + <span >开工状态:{{item.status}}</span> | |
| 75 | + </el-col> | |
| 76 | + </el-row> | |
| 77 | + <el-row class="card_row" > | |
| 78 | + <el-col :span="24"> | |
| 79 | + <div>申请开工时间:{{item.selfCheckTime}}</div> | |
| 80 | + </el-col> | |
| 81 | + </el-row> | |
| 82 | + <el-row class="card_row" style="margin-top: 10px;"> | |
| 83 | + <el-col :span="24" class="card_grid"> | |
| 84 | + <div class="card_title" style="font-weight: bold;">消纳场名称:{{item.ename}}</div> | |
| 85 | + </el-col> | |
| 86 | + </el-row> | |
| 87 | + <el-row class="card_row"> | |
| 88 | + <el-col :span="12" class="card_grid" > | |
| 89 | + <span >所属区:{{item.eplace}}</span> | |
| 90 | + </el-col> | |
| 91 | + <el-col :span="12" class="card_grid" > | |
| 92 | + <span >开工状态:{{item.estatus}}</span> | |
| 93 | + </el-col> | |
| 94 | + </el-row> | |
| 95 | + <el-row class="card_row" style="margin-top: 5px;"> | |
| 96 | + <el-col :span="24"> | |
| 97 | + <div>申请开工时间:{{item.eselfCheckTime}}</div> | |
| 98 | + </el-col> | |
| 99 | + </el-row> | |
| 100 | + | |
| 101 | + </el-card> | |
| 102 | + | |
| 53 | 103 | |
| 54 | 104 | <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" |
| 55 | 105 | @pagination="getList" /> |
| ... | ... | @@ -60,7 +110,7 @@ |
| 60 | 110 | <script> |
| 61 | 111 | import { |
| 62 | 112 | dayWorkList, |
| 63 | - exportDayWorkList, | |
| 113 | + exportDayWorkList | |
| 64 | 114 | } from "@/api/business/daywork"; |
| 65 | 115 | |
| 66 | 116 | |
| ... | ... | @@ -78,8 +128,11 @@ |
| 78 | 128 | getArea |
| 79 | 129 | } from "@/api/dict"; |
| 80 | 130 | |
| 131 | +import pagination from '../Pagination'; | |
| 132 | + | |
| 81 | 133 | export default { |
| 82 | 134 | name: "dayWorkReport", |
| 135 | + components: {pagination}, | |
| 83 | 136 | data() { |
| 84 | 137 | return { |
| 85 | 138 | // 遮罩层 |
| ... | ... | @@ -103,7 +156,7 @@ |
| 103 | 156 | showSearch: true, |
| 104 | 157 | // 总条数 |
| 105 | 158 | total: 0, |
| 106 | - // 日开工报表表格数据 | |
| 159 | + // 开工报表表格数据 | |
| 107 | 160 | threestepList: [], |
| 108 | 161 | fileList: [], |
| 109 | 162 | // 弹出层标题 |
| ... | ... | @@ -139,7 +192,7 @@ |
| 139 | 192 | bindname:null, |
| 140 | 193 | projectTypes:null, |
| 141 | 194 | earthsitesTypes:null, |
| 142 | - | |
| 195 | + dayWorkCount:null, | |
| 143 | 196 | outside:["长沙县","望城区","浏阳市","宁乡市","株洲市","湘潭市","汩罗市","湘阴县"], |
| 144 | 197 | }; |
| 145 | 198 | }, |
| ... | ... | @@ -180,19 +233,36 @@ |
| 180 | 233 | this.uploadImageDialog = false; |
| 181 | 234 | this.fileList = []; |
| 182 | 235 | }, |
| 183 | - /** 查询日开工报表列表 */ | |
| 236 | + /** 查询开工报表列表 */ | |
| 184 | 237 | getList(tabIdx) { |
| 185 | 238 | |
| 186 | - | |
| 187 | 239 | this.loading = true; |
| 188 | 240 | |
| 189 | - dayWorkList(this.queryParams).then(response => { | |
| 241 | + let query = this.queryParams; | |
| 242 | + | |
| 243 | + if(this.queryParams.his != tabIdx && tabIdx == 1){ | |
| 244 | + this.queryParams.his = tabIdx; | |
| 245 | + query.workStartTime = "2000-01-01 00:00:00"; | |
| 246 | + query.workEndTime = "2999-01-01 00:00:00"; | |
| 247 | + }else if(tabIdx==0){ | |
| 248 | + this.queryParams.his = null; | |
| 249 | + query.workStartTime = null; | |
| 250 | + query.workEndTime = null; | |
| 251 | + } | |
| 252 | + | |
| 253 | + dayWorkList(query).then(response => { | |
| 254 | + | |
| 190 | 255 | this.threestepList = response.rows; |
| 191 | 256 | |
| 192 | 257 | getArea().then(res => { |
| 193 | 258 | this.areas = res.result; |
| 194 | 259 | for(let i =0;i< this.threestepList.length;i++){ |
| 195 | 260 | this.threestepList[i].place = this.getAreaName(this.threestepList[i].place); |
| 261 | + if(this.outside.indexOf(this.threestepList[i].place) > -1){ | |
| 262 | + if(this.threestepList[i].status == "开工"){ | |
| 263 | + this.threestepList[i].descript = "开工"; | |
| 264 | + } | |
| 265 | + } | |
| 196 | 266 | |
| 197 | 267 | } |
| 198 | 268 | }); |
| ... | ... | @@ -201,7 +271,18 @@ |
| 201 | 271 | |
| 202 | 272 | constructionsitesList(this.remoteQueryData).then(res => { |
| 203 | 273 | this.constructionsitesList = res.result.list; |
| 274 | + | |
| 275 | + let count = 0; | |
| 276 | + let count1 = 0; | |
| 277 | + | |
| 204 | 278 | for(let i =0;i< this.threestepList.length;i++){ |
| 279 | + | |
| 280 | + if(this.threestepList[i].status == "开工"){ | |
| 281 | + count += 1; | |
| 282 | + } | |
| 283 | + if(this.threestepList[i].estatus == "开工"){ | |
| 284 | + count1 += 1; | |
| 285 | + } | |
| 205 | 286 | for(let j =0;j<this.constructionsitesList.length;j++){ |
| 206 | 287 | if(this.threestepList[i].objectId == this.constructionsitesList[j].id){ |
| 207 | 288 | for(let x in this.projectTypes){ |
| ... | ... | @@ -212,30 +293,31 @@ |
| 212 | 293 | } |
| 213 | 294 | } |
| 214 | 295 | } |
| 296 | + | |
| 297 | + | |
| 298 | + let str = "今日"; | |
| 299 | + if(this.queryParams.his){ | |
| 300 | + str = ""; | |
| 301 | + } | |
| 302 | + | |
| 303 | + this.dayWorkCount = str + "长沙市工地开工数量:" + count + " " + str +"长沙市消纳场开工数量:" + count1; | |
| 304 | + this.loading = false; | |
| 215 | 305 | }); |
| 216 | 306 | |
| 217 | 307 | earthsitesList(this.remoteQueryData).then(res => { |
| 218 | 308 | this.earthsitesList = res.result.list; |
| 219 | 309 | for(let i =0;i< this.threestepList.length;i++){ |
| 220 | 310 | for(let j =0;j<this.earthsitesList.length;j++){ |
| 221 | - console.log(this.threestepList[i].eid + "==" + this.earthsitesList[j].id); | |
| 222 | 311 | if(this.threestepList[i].eid == this.earthsitesList[j].id){ |
| 223 | 312 | this.threestepList[i].etype = this.earthsitesList[j].typeName; |
| 224 | 313 | this.threestepList[i].eplace = this.earthsitesList[j].areaName; |
| 225 | - | |
| 226 | - if(this.outside.indexOf(this.threestepList[i].eplace) > -1){ | |
| 227 | - if(this.threestepList[i].status == "开工"){ | |
| 228 | - this.threestepList[i].descript = "开工"; | |
| 229 | - } | |
| 230 | - } | |
| 231 | - | |
| 232 | 314 | } |
| 233 | 315 | } |
| 234 | 316 | } |
| 317 | + this.loading = false; | |
| 235 | 318 | }); |
| 236 | 319 | |
| 237 | 320 | this.total = response.total; |
| 238 | - this.loading = false; | |
| 239 | 321 | }); |
| 240 | 322 | |
| 241 | 323 | |
| ... | ... | @@ -390,7 +472,7 @@ |
| 390 | 472 | /** 删除按钮操作 */ |
| 391 | 473 | handleDelete(row) { |
| 392 | 474 | const ids = row.id || this.ids; |
| 393 | - this.$confirm('是否确认删除日开工报表编号为"' + ids + '"的数据项?', "警告", { | |
| 475 | + this.$confirm('是否确认删除开工报表编号为"' + ids + '"的数据项?', "警告", { | |
| 394 | 476 | confirmButtonText: "确定", |
| 395 | 477 | cancelButtonText: "取消", |
| 396 | 478 | type: "warning" |
| ... | ... | @@ -405,11 +487,12 @@ |
| 405 | 487 | handleExport() { |
| 406 | 488 | |
| 407 | 489 | let data = []; |
| 490 | + let index = 1; | |
| 408 | 491 | for(let i in this.threestepList){ |
| 409 | 492 | |
| 410 | 493 | |
| 411 | 494 | let obj = { |
| 412 | - id:this.threestepList[i].id, | |
| 495 | + id:index, | |
| 413 | 496 | name:this.threestepList[i].name, |
| 414 | 497 | createTime:this.threestepList[i].createTime, |
| 415 | 498 | selfCheckTime:this.threestepList[i].selfCheckTime, |
| ... | ... | @@ -423,13 +506,14 @@ |
| 423 | 506 | eselfCheckTime:this.threestepList[i].eselfCheckTime, |
| 424 | 507 | descript:this.threestepList[i].descript, |
| 425 | 508 | } |
| 509 | + | |
| 426 | 510 | data.push(obj); |
| 427 | 511 | |
| 512 | + index += 1; | |
| 428 | 513 | |
| 429 | 514 | |
| 430 | 515 | } |
| 431 | - | |
| 432 | - this.$confirm('是否确认导出所有日开工报表数据项?', "警告", { | |
| 516 | + this.$confirm('是否确认导出所有开工报表数据项?', "警告", { | |
| 433 | 517 | confirmButtonText: "确定", |
| 434 | 518 | cancelButtonText: "取消", |
| 435 | 519 | type: "warning" | ... | ... |
trash-ui/src/views/h5/office/leaveApplication/index.vue renamed to trash-ui/src/views/h5/leaveApplication/index.vue
| ... | ... | @@ -10,11 +10,12 @@ |
| 10 | 10 | |
| 11 | 11 | /> |
| 12 | 12 | </el-form-item> |
| 13 | - <el-form-item label="申请部门" prop="deptId"> | |
| 14 | - <el-select v-model="queryParams.deptId" placeholder="请选择部门" size="small"> | |
| 15 | - <el-option label="请选择字典生成" value=""/> | |
| 16 | - </el-select> | |
| 17 | - </el-form-item> | |
| 13 | +<!-- <el-form-item label="申请部门" prop="deptName">--> | |
| 14 | +<!-- <el-select v-model="queryParams.deptName" placeholder="请选择部门" size="small">--> | |
| 15 | +<!-- <el-option label="全部" value=""/>--> | |
| 16 | +<!-- <el-option v-for="item in depts" :label="item.name" :value="item.name" :key="item.code"/>--> | |
| 17 | +<!-- </el-select>--> | |
| 18 | +<!-- </el-form-item>--> | |
| 18 | 19 | <el-form-item label="请假类型" prop="type"> |
| 19 | 20 | <el-select v-model="queryParams.type" placeholder="请选择请假类型" size="small"> |
| 20 | 21 | <el-option label="事假" value="事假"/> |
| ... | ... | @@ -79,57 +80,45 @@ |
| 79 | 80 | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| 80 | 81 | </el-row> |
| 81 | 82 | |
| 82 | - <el-table v-loading="loading" :data="leaveApplicationList" @selection-change="handleSelectionChange"> | |
| 83 | - <el-table-column type="selection" width="55" align="center"/> | |
| 84 | - <el-table-column label="申请人" align="center" prop="applicant"/>> | |
| 85 | - <el-table-column label="联系方式" align="center" prop="phone"/> | |
| 86 | - <el-table-column label="请假类型" align="center" prop="type"/> | |
| 87 | - <el-table-column label="请假开始时间" align="center" prop="beginDate" width="180"> | |
| 88 | - <template slot-scope="scope"> | |
| 89 | - <span>{{ parseTime(scope.row.beginDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> | |
| 90 | - </template> | |
| 91 | - </el-table-column> | |
| 92 | - <el-table-column label="请假结束时间" align="center" prop="endDate" width="180"> | |
| 93 | - <template slot-scope="scope"> | |
| 94 | - <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> | |
| 95 | - </template> | |
| 96 | - </el-table-column> | |
| 97 | - <el-table-column label="请假天数" align="center" prop="numberDays"/> | |
| 98 | - <el-table-column label="审批状态" align="center" prop="status"> | |
| 99 | - <template slot-scope="scope"> | |
| 100 | - <span>{{ parseStatus(scope.row.status) }}</span> | |
| 101 | - </template> | |
| 102 | - </el-table-column> | |
| 103 | - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | |
| 104 | - <template slot-scope="scope"> | |
| 105 | - <el-button | |
| 106 | - size="mini" | |
| 107 | - type="text" | |
| 108 | - icon="el-icon-view" | |
| 109 | - @click="handleInfo(scope.row)" | |
| 110 | - v-hasPermi="['office:leaveApplication:edit']" | |
| 111 | - >详情 | |
| 112 | - </el-button> | |
| 113 | - <el-button | |
| 114 | - size="mini" | |
| 115 | - type="text" | |
| 116 | - icon="el-icon-edit" | |
| 117 | - @click="handleUpdate(scope.row)" | |
| 118 | - v-if="scope.row.status==2" | |
| 119 | - v-hasPermi="['office:leaveApplication:edit']" | |
| 120 | - >修改 | |
| 121 | - </el-button> | |
| 122 | -<!-- <el-button--> | |
| 123 | -<!-- size="mini"--> | |
| 124 | -<!-- type="text"--> | |
| 125 | -<!-- icon="el-icon-delete"--> | |
| 126 | -<!-- @click="handleDelete(scope.row)"--> | |
| 127 | -<!-- v-hasPermi="['office:leaveApplication:remove']"--> | |
| 128 | -<!-- >删除--> | |
| 129 | -<!-- </el-button>--> | |
| 130 | - </template> | |
| 131 | - </el-table-column> | |
| 132 | - </el-table> | |
| 83 | + | |
| 84 | + <a @click="handleInfo(item)" v-for="item in leaveApplicationList"> | |
| 85 | + <el-card class="box-card" style="margin-bottom: 10px;" | |
| 86 | + > | |
| 87 | + <el-row class="card_row"> | |
| 88 | + <el-col :span="24" class="card_grid"> | |
| 89 | + <div class="card_title" style="font-weight: bold;">申请人:{{item.applicant}}</div> | |
| 90 | + </el-col> | |
| 91 | + </el-row> | |
| 92 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 93 | + <el-col :span="24"> | |
| 94 | + <span >请假开始时间:{{ parseTime(item.beginDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> | |
| 95 | + </el-col> | |
| 96 | + </el-row> | |
| 97 | + | |
| 98 | + <el-row class="card_row" style="margin-top:10px;margin-bottom:10px;"> | |
| 99 | + <el-col :span="24"> | |
| 100 | + <span >请假结束时间:{{ parseTime(item.endDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> | |
| 101 | + </el-col> | |
| 102 | + </el-row> | |
| 103 | + | |
| 104 | + | |
| 105 | + <el-row class="card_row"> | |
| 106 | + <el-col :span="16"> | |
| 107 | + <span >联系方式:{{item.phone}}</span> | |
| 108 | + </el-col> | |
| 109 | + <el-col :span="8" class="card_grid" > | |
| 110 | + <span >请假天数:{{item.numberDays}}</span> | |
| 111 | + </el-col> | |
| 112 | + </el-row> | |
| 113 | + | |
| 114 | + <el-row class="card_row"> | |
| 115 | + <el-col :span="24"> | |
| 116 | + <span >审批状态:{{ parseStatus(item.status) }}</span> | |
| 117 | + </el-col> | |
| 118 | + </el-row> | |
| 119 | + </el-card> | |
| 120 | + </a> | |
| 121 | + | |
| 133 | 122 | |
| 134 | 123 | <pagination |
| 135 | 124 | v-show="total>0" |
| ... | ... | @@ -225,7 +214,7 @@ |
| 225 | 214 | </div> |
| 226 | 215 | </el-dialog> |
| 227 | 216 | |
| 228 | - <el-dialog :title="title" :visible.sync="openInfo" width="500px" append-to-body :close-on-click-modal="false"> | |
| 217 | + <el-dialog :title="title" :visible.sync="openInfo" width="300px" append-to-body :close-on-click-modal="false"> | |
| 229 | 218 | <leaveApplicationInfo :idInfo="idInfo" v-if="openInfo"/> |
| 230 | 219 | <div slot="footer" class="dialog-footer"> |
| 231 | 220 | <el-button @click="cancel">取 消</el-button> |
| ... | ... | @@ -247,9 +236,12 @@ import Editor from '@/components/ZcEditor'; |
| 247 | 236 | import leaveApplicationInfo from './leaveApplicationInfo'; |
| 248 | 237 | import {getDict} from "@/api/dict"; |
| 249 | 238 | |
| 239 | + | |
| 240 | + import pagination from '../Pagination'; | |
| 241 | + | |
| 250 | 242 | export default { |
| 251 | 243 | name: "LeaveApplication", |
| 252 | - components: {Editor, leaveApplicationInfo}, | |
| 244 | + components: {Editor, leaveApplicationInfo,pagination}, | |
| 253 | 245 | data() { |
| 254 | 246 | return { |
| 255 | 247 | // 遮罩层 | ... | ... |
trash-ui/src/views/h5/office/leaveApplication/leaveApplicationInfo.vue renamed to trash-ui/src/views/h5/leaveApplication/leaveApplicationInfo.vue
trash-ui/src/views/h5/office/conference/conferenceInfo.vue deleted
100644 → 0
| 1 | -<template> | |
| 2 | - <el-form ref="form" :model="form" label-width="80px"> | |
| 3 | - <el-row :gutter="2"> | |
| 4 | - <el-col :span="11"> | |
| 5 | - <el-form-item label="会议时间" prop="conferenceTime"> | |
| 6 | - <el-date-picker size="small" style="width: 100%" | |
| 7 | - v-model="form.conferenceTime" | |
| 8 | - type="datetime" | |
| 9 | - value-format="yyyy-MM-dd HH:mm:ss" | |
| 10 | - :disabled="true" | |
| 11 | - placeholder="选择会议时间"> | |
| 12 | - </el-date-picker> | |
| 13 | - </el-form-item> | |
| 14 | - </el-col> | |
| 15 | - <el-col :span="11"> | |
| 16 | - <el-form-item label="会议地点" prop="conferenceSite"> | |
| 17 | - <el-input v-model="form.conferenceSite" placeholder="请输入会议地点" :disabled="true"/> | |
| 18 | - </el-form-item> | |
| 19 | - </el-col> | |
| 20 | - </el-row> | |
| 21 | - <el-row :gutter="2"> | |
| 22 | - <el-col :span="22"> | |
| 23 | - <el-form-item label="参会人员" prop="staff"> | |
| 24 | - <el-input type="textarea" v-model="form.staff" placeholder="请输入参会人员" :rows="4" :disabled="true"/> | |
| 25 | - </el-form-item> | |
| 26 | - </el-col> | |
| 27 | - </el-row> | |
| 28 | - <el-row :gutter="2"> | |
| 29 | - <el-col :span="22"> | |
| 30 | - <el-form-item label="会议议程" prop="content"> | |
| 31 | - <el-input type="textarea" v-model="form.content" placeholder="请输入会议议程" :rows="4" :disabled="true"/> | |
| 32 | - </el-form-item> | |
| 33 | - </el-col> | |
| 34 | - </el-row> | |
| 35 | - <el-row :gutter="2"> | |
| 36 | - <el-col :span="22"> | |
| 37 | - <el-form-item label="会议要求" prop="requirement"> | |
| 38 | - <el-input type="textarea" v-model="form.requirement" placeholder="请输入会议要求" :rows="4" :disabled="true"/> | |
| 39 | - </el-form-item> | |
| 40 | - </el-col> | |
| 41 | - </el-row> | |
| 42 | - <el-row> | |
| 43 | - <el-table :data="fileEntityList"> | |
| 44 | - <el-table-column property="name" label="附件名称" header-align="center" align="center"></el-table-column> | |
| 45 | - <el-table-column label="操作" class-name="small-padding fixed-width" header-align="center" align="center"> | |
| 46 | - <template slot-scope="scope"> | |
| 47 | - <el-button | |
| 48 | - size="small" type="success" | |
| 49 | - icon="el-icon-download" | |
| 50 | - @click="downloadFA(scope.row)" | |
| 51 | - v-hasPermi="['office:management:edit']" | |
| 52 | - v-if="form.id!=null" | |
| 53 | - round>下载 | |
| 54 | - </el-button> | |
| 55 | - </template> | |
| 56 | - </el-table-column> | |
| 57 | - </el-table> | |
| 58 | - </el-row> | |
| 59 | - </el-form> | |
| 60 | -</template> | |
| 61 | - | |
| 62 | -<script> | |
| 63 | -import {getConference} from "@/api/office/conference"; | |
| 64 | -import Editor from '@/components/ZcEditor'; | |
| 65 | -export default { | |
| 66 | - name: "conferenceInfo", | |
| 67 | - components: {Editor}, | |
| 68 | - props: { | |
| 69 | - businessKey: { | |
| 70 | - type: String | |
| 71 | - }, | |
| 72 | - idInfo: { | |
| 73 | - type: String | |
| 74 | - } | |
| 75 | - }, | |
| 76 | - data() { | |
| 77 | - return { | |
| 78 | - form: {}, | |
| 79 | - fileEntityList:[] | |
| 80 | - } | |
| 81 | - }, | |
| 82 | - created() { | |
| 83 | - this.init(); | |
| 84 | - }, | |
| 85 | - methods:{ | |
| 86 | - init(){ | |
| 87 | - getConference(this.idInfo).then(response => { | |
| 88 | - this.form = response.data.conference; | |
| 89 | - let files = JSON.stringify(response.data.uploadFiles); | |
| 90 | - this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")) | |
| 91 | - }); | |
| 92 | - }, | |
| 93 | - /** 文件下载 */ | |
| 94 | - downloadFA(row) { | |
| 95 | - let name = row.name; | |
| 96 | - let url = row.url; | |
| 97 | - const a = document.createElement('a') | |
| 98 | - a.setAttribute('download', name) | |
| 99 | - a.setAttribute('target', '_blank') | |
| 100 | - a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | |
| 101 | - a.click() | |
| 102 | - }, | |
| 103 | - } | |
| 104 | -} | |
| 105 | -</script> | |
| 106 | - | |
| 107 | -<style scoped> | |
| 108 | - | |
| 109 | -</style> |