Commit dad3c46aed1430c29d3a22dfb06838d7fc17e3f1

Authored by youxiw2000
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 &quot;@/store&quot;;
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 &quot;@/store&quot;;
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 &quot;@/views/activiti/task/constructsiteInfo&quot;;
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 &quot;@/views/activiti/task/constructsiteInfo&quot;;
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 &quot;@/views/activiti/task/constructsiteInfo&quot;;
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 &#39;@/components/ZcEditor&#39;;
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>