miaofuhao hace 1 día
padre
commit
ac048f7bfa

BIN
bigScreen3/1223big.zip


BIN
web/0110dist.zip


BIN
web/1223web.zip


+ 279 - 0
web/src/views/system/CheckInRecord/index.vue

@@ -0,0 +1,279 @@
1
+<template>
2
+  <div class="app-container"
3
+       style="height:100%;"
4
+       v-loading="loadingopt"
5
+       element-loading-text="操作执行中"
6
+       element-loading-spinner="el-icon-loading">
7
+    <div class="head-container">
8
+      <div style="width:100%;">
9
+        <el-row :gutter="24">
10
+          <el-col :span="24">
11
+            <!-- 搜索 -->
12
+            <div style="display: inline-block; width: 380px; margin-right: 10px;">
13
+              <date-range-picker v-model="searchDate" @change="getList" type="datetimerange" class="date-item" style="width: 100% !important;" />
14
+            </div>
15
+            <el-input  v-model="selectparameter.fRealname" clearable size="small" placeholder="姓名搜索" style="width: 300px;" class="filter-item" />
16
+            <span>
17
+    <el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="btnsearch" >搜索</el-button>
18
+    <el-button  class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="btnreset" >重置</el-button>
19
+        </span>
20
+          </el-col>
21
+        </el-row>
22
+      </div>
23
+    </div>
24
+    <el-row :gutter="24">
25
+      <!-- 列表 -->
26
+      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
27
+        <el-card class="box-card box-cardh map-container" shadow="never" style="overflow:auto;">
28
+          <!--表格渲染-->
29
+          <el-table
30
+            v-loading="loadinglist"
31
+            element-loading-text="数据加载中"
32
+            element-loading-spinner="el-icon-loading"
33
+            :data="tableData"
34
+            @selection-change="selectionLineChangeHandle"
35
+            style="width: 100%;" >
36
+            <el-table-column :selectable="checkboxT" type="selection" width="55" />
37
+            <el-table-column :show-overflow-tooltip="true" prop="fRealname" label="打卡人" />
38
+            <el-table-column :show-overflow-tooltip="true" label="打卡类型">
39
+              <template slot-scope="scope">
40
+                {{ scope.row.fWorktype === 1 ? '上班打卡' : scope.row.fWorktype === 2 ? '下班打卡' : '' }}
41
+              </template>
42
+            </el-table-column>
43
+            <el-table-column :show-overflow-tooltip="true" prop="fExpand2" label="所属公园"/>
44
+            <el-table-column :show-overflow-tooltip="true" prop="fExpand1" label="打卡地点"/>
45
+            <el-table-column :show-overflow-tooltip="true" prop="fWorktime" align="center" sortable label="打卡时间" />
46
+          </el-table>
47
+          <!--分页组件-->
48
+          <el-pagination
49
+            @size-change="handleSizeChange"
50
+            @current-change="handleCurrentChange"
51
+            :current-page="currentPage"
52
+            :page-sizes="[10, 20, 50, 100]"
53
+            :page-size="10"
54
+            layout="total, sizes, prev, pager, next, jumper"
55
+            :total="totals"
56
+          ></el-pagination>
57
+        </el-card>
58
+      </el-col>
59
+    </el-row>
60
+    <el-dialog append-to-body
61
+               width="50%"
62
+               :close-on-click-modal="false"
63
+               :destroy-on-close="true"
64
+               :before-close="dialogClose"
65
+               :title="`${dialogTitle}`"
66
+               :visible.sync="dialogFormVisible">
67
+      <el-scrollbar
68
+        v-loading="loadingdialog"
69
+        element-loading-text="数据保存中"
70
+        element-loading-spinner="el-icon-loading"
71
+        style="height:280px">
72
+        <el-form ref="form" :model="dialogModel" label-width="100px" size="small" style="width:80%">
73
+          <el-row :gutter="20">
74
+            <el-col :span="24">
75
+            </el-col>
76
+          </el-row>
77
+        </el-form>
78
+      </el-scrollbar>
79
+      <div slot="footer" class="dialog-footer">
80
+        <el-button @click="dialogClose" style="border:0px ">取 消</el-button>
81
+      </div>
82
+    </el-dialog>
83
+  </div>
84
+</template>
85
+
86
+<script>
87
+  import request from '@/utils/request'
88
+  import DateRangePicker from '@/components/DateRangePicker'
89
+  import { downloadFile, downloadFileByPath } from '@/utils/index'
90
+  export default {
91
+    name: 'CheckInRecord',
92
+    components: { DateRangePicker },
93
+    data() {
94
+      return {
95
+        dialogFormVisible: false,
96
+        dialogTitle: '',
97
+        dialogModel: {
98
+          id: null
99
+        },
100
+        loadingopt: false,
101
+        loadinglist: false,
102
+        loadingdialog: false,
103
+        downloadLoading: false,
104
+        parklist: [],
105
+        pickerOptions: {
106
+          shortcuts: [
107
+            {
108
+              text: '当日',
109
+              onClick(picker) {
110
+                picker.$emit('pick', [new Date(), new Date()])
111
+              }
112
+            },
113
+            {
114
+              text: '本月',
115
+              onClick(picker) {
116
+                picker.$emit('pick', [moment(new Date()).format('YYYY-MM-' + '01'), new Date()])
117
+              }
118
+            },
119
+            {
120
+              text: '今年至今',
121
+              onClick(picker) {
122
+                const end = new Date()
123
+                const start = new Date(new Date().getFullYear(), 0)
124
+                picker.$emit('pick', [start, end])
125
+              }
126
+            },
127
+            {
128
+              text: '最近六个月',
129
+              onClick(picker) {
130
+                const end = new Date()
131
+                const start = new Date()
132
+                start.setMonth(start.getMonth() - 6)
133
+                picker.$emit('pick', [start, end])
134
+              }
135
+            }
136
+          ]
137
+        },
138
+        //  表格 数据
139
+        tableData: [],
140
+        dataonLineListSelections: [],
141
+        bldeleteselect: true,
142
+        // 分页 : 第1页
143
+        currentPage: 1,
144
+        // 总数
145
+        totals: 0,
146
+        searchDate: [],
147
+        // 列表传参
148
+        selectparameter: {
149
+          current: 1,
150
+          size: 10,
151
+          fRealname: '',
152
+          workStartTime: null,
153
+          workwEndTime: null
154
+        }
155
+      }
156
+    },
157
+    created() {
158
+      // 获取 列表
159
+      this.getList()
160
+    },
161
+    methods: {
162
+      dialogClose() {
163
+        this.dialogFormVisible = false
164
+        this.dialogModel = {
165
+          id: null
166
+        }
167
+      },
168
+      btnsearch() {
169
+        // 获取 列表
170
+        this.getList()
171
+      },
172
+      btnreset() {
173
+        this.searchDate = []
174
+        this.selectparameter = {
175
+          current: 1,
176
+          size: 10,
177
+          fRealname: '',
178
+          workStartTime: null,
179
+          workwEndTime: null
180
+        }
181
+        this.btnsearch()
182
+      },
183
+      // 请求列表
184
+      getList() {
185
+        this.loadinglist = true
186
+        if (this.searchDate !== null) {
187
+          if (this.searchDate.length > 0) {
188
+            this.selectparameter.workStartTime = this.searchDate[0]
189
+            this.selectparameter.workwEndTime = this.searchDate[1]
190
+          }
191
+        }
192
+        request({
193
+          url: '/tbaseemployeeworkrecords/selectEmployeeworkrecordsByPageList',
194
+          method: 'post',
195
+          data: this.selectparameter
196
+        })
197
+          .then(res => {
198
+            this.loadinglist = false
199
+            if (res.status === 200) {
200
+              this.tableData = res.data.data
201
+              this.totals = res.data.total
202
+            } else {
203
+              this.$message.error('加载失败:' + res.data)
204
+            }
205
+          })
206
+          .catch(err => {
207
+            this.loadinglist = false
208
+            this.$message.error(err || '加载失败')
209
+          })
210
+      },
211
+      checkboxT(row, rowIndex) {
212
+        return row.id !== 1
213
+      },
214
+      // 分页功能
215
+      handleSizeChange(val) {
216
+        this.selectparameter.size = val
217
+        this.getList()
218
+      },
219
+      handleCurrentChange(val) {
220
+        this.selectparameter.current = val
221
+        // this.currentPage=val;
222
+        this.getList()
223
+      },
224
+      selectionLineChangeHandle(val) {
225
+        this.dataonLineListSelections = val
226
+        if (this.dataonLineListSelections.length > 0) {
227
+          this.bldeleteselect = false
228
+        } else {
229
+          this.bldeleteselect = true
230
+        }
231
+      }
232
+    }
233
+  }
234
+</script>
235
+<style rel="stylesheet/scss" lang="scss">
236
+  .el-dialog__header {
237
+    padding: 10px;
238
+    padding-bottom: 10px;
239
+  }
240
+  .el-dialog__headerbtn {
241
+    position: absolute;
242
+    top: 10px;
243
+    right: 10px;
244
+    padding: 0;
245
+    background: transparent;
246
+    border: none;
247
+    outline: none;
248
+    cursor: pointer;
249
+    font-size: 16px;
250
+  }
251
+  .el-dialog__body {
252
+    padding: 15px 10px;
253
+    color: #606266;
254
+    font-size: 14px;
255
+    word-break: break-all;
256
+  }
257
+  .el-card__body {
258
+    padding: 0px;
259
+    height: 100%;
260
+  }
261
+
262
+  .box-cardh {
263
+    height: calc(100vh - 170px);
264
+  }
265
+  .el-scrollbar__wrap{
266
+    overflow-x: hidden;
267
+  }
268
+  .custom-tree-node {
269
+    flex: 1;
270
+    display: flex;
271
+    align-items: center;
272
+    justify-content: space-between;
273
+    font-size: 14px;
274
+    padding-right: 8px;
275
+  }
276
+  .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
277
+    background-color: #e7faf0;
278
+  }
279
+</style>

+ 1 - 4
web/src/views/system_manage/logs/loginloglist.vue

@@ -9,10 +9,7 @@
9 9
         <el-row :gutter="24">
10 10
           <el-col :span="24">
11 11
             <!-- 搜索 -->
12
-            <date-range-picker v-model="searchDate"
13
-                               @change="getList"
14
-                               type="datetimerange"
15
-                               class="date-item" />
12
+            <date-range-picker v-model="searchDate" @change="getList" type="datetimerange" class="date-item" />
16 13
             <el-input  v-model="selectparameter.fLoginname" clearable size="small" placeholder="姓名搜索" style="width: 150px;" class="filter-item" />
17 14
             <span>
18 15
     <el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="btnsearch" >搜索</el-button>

+ 10 - 8
wxproject/packageA/pages/recordDetail/recordDetail.js

@@ -61,8 +61,8 @@ Page({
61 61
     var data = {
62 62
       size: 15,
63 63
       current: that.data.pageNum,
64
-      startTime: that.data.time3,
65
-      endTime: that.data.time4,
64
+      workStartTime: that.data.time3,
65
+      workEndTime: that.data.time4,
66 66
       fExpand2: that.data.objectName,
67 67
       fRealname: that.data.directorName,
68 68
       fExpandint1: that.data.fUserid,
@@ -164,29 +164,31 @@ Page({
164 164
   // 筛选日期(开始)
165 165
   bindDateChange3(e) {
166 166
     let val = e.detail.value;
167
-    let times = new Date(val + ' 00:00:00').getTime();
167
+    let timeStr = val + ' 00:00:00';
168
+    let times = new Date(timeStr).getTime();
168 169
     if (this.data.time4) {
169
-      if (times >= this.data.time4) {
170
+      if (times >= new Date(this.data.time4).getTime()) {
170 171
         return app.toast('不能大于结束时间');
171 172
       }
172 173
     }
173 174
     this.setData({
174 175
       date3: val,
175
-      time3: times,
176
+      time3: timeStr,
176 177
     });
177 178
   },
178 179
   // 筛选日期(结束)
179 180
   bindDateChange4(e) {
180 181
     let val = e.detail.value;
181
-    let times = new Date(val + ' 23:59:59').getTime();
182
+    let timeStr = val + ' 23:59:59';
183
+    let times = new Date(timeStr).getTime();
182 184
     if (this.data.time3) {
183
-      if (times <= this.data.time3) {
185
+      if (times <= new Date(this.data.time3).getTime()) {
184 186
         return app.toast('不能小于开始时间');
185 187
       }
186 188
     }
187 189
     this.setData({
188 190
       date4: val,
189
-      time4: times,
191
+      time4: timeStr,
190 192
     });
191 193
   },
192 194