Browse Source

Merge branch 'master' of http://47.92.161.104:10080/shuzhan/shinestar-portal

xiao547607 4 years ago
parent
commit
9131ae83a9

+ 24 - 0
src/api/business/meetingPersonRecode.js

@@ -0,0 +1,24 @@
+import request from '@/utils/request'
+import constant from '@/constant'
+
+function shouldArriveList(formData){
+  return request.post(constant.serverUrl + "/business/meetingPersonRecode/shouldArriveList", formData);
+}
+
+function realToList(formData){
+    return request.post(constant.serverUrl + "/business/meetingPersonRecode/realToList", formData);
+}
+
+function absentList(formData){
+  return request.post(constant.serverUrl + "/business/meetingPersonRecode/absentList", formData);
+}
+
+
+
+
+
+
+
+export default {
+    shouldArriveList,realToList,absentList
+}

+ 13 - 3
src/views/base/meetingInfo-list.vue

@@ -111,7 +111,7 @@
               <el-link type="primary" @click="handleToDetail(row)">编辑</el-link>
             </el-col>
             <el-col :span="10">
-              <el-link type="primary" @click="bindDevice(row)">签到详情</el-link>
+              <el-link type="primary" @click="signDetail(row)">签到详情</el-link>
             </el-col>
           </el-row>
           <el-row>
@@ -133,9 +133,16 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
+    <meetingSignIn-list
+      v-if="showModal"
+      :businessKey="businessKey"
+      :title="modalTitle"
+      @close="onDetailModalClose"
+    ></meetingSignIn-list>
   </div>
 </template>
 <script>
+import meetingSignInList from "./meetingSignIn-list";
 import meetingInfoApi from "@/api/base/meetingInfo";
 import dataDictionaryApi from "@/api/sys/dataDictionary";
 import "nprogress/nprogress.css"; // progress bar style
@@ -259,8 +266,8 @@ export default {
       this.businessKey = "";
       this.showModal = true;
     },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
+    signDetail(record) {
+      this.modalTitle = "会议签到记录";
       this.businessKey = record.id;
       this.showModal = true;
     },
@@ -386,6 +393,9 @@ export default {
     this.changePage(1);
 
   },
+  components: {
+    "meetingSignIn-list": meetingSignInList,
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 543 - 0
src/views/base/meetingSignIn-list.vue

@@ -0,0 +1,543 @@
+
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    :title="title"
+    :modal-append-to-body="false"
+    style="text-align: left"
+    width="800px"
+    @close="closeDialog"
+    :close-on-click-modal="false"
+  >
+    <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+        <el-tab-pane :label="'应到'+tableDataCount1" name="first">
+            <el-table
+            ref="formTable"
+            :data="tableData1"
+            v-loading="loading"
+            :element-loading-text="loadingText"
+            stripe
+            :height="tableHeight"
+            @sort-change="sortChange"
+            @selection-change="handleSelectionChange"
+            >
+                <el-table-column type="index" label="序号" width="60">
+                    <template slot-scope='scope'>
+                        {{(pageIndex - 1)*pageSize + scope.$index + 1}}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="姓名" ></el-table-column>
+                <el-table-column prop="jobNumber" label="工号"></el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex"
+            :total="totalElements"
+            :page-sizes="pageSizeList"
+            @current-change="changePage"
+            @size-change="pageSizeChange"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane :label="'实到'+tableDataCount2" name="second">
+            <el-table
+            ref="formTable"
+            :data="tableData2"
+            v-loading="loading2"
+            :element-loading-text="loadingText"
+            stripe
+            :height="tableHeight"
+            @sort-change="sortChange2"
+            @selection-change="handleSelectionChange2"
+            >
+                <el-table-column type="index" label="序号" width="60">
+                    <template slot-scope='scope'>
+                        {{(pageIndex - 1)*pageSize + scope.$index + 1}}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="姓名" width="150"></el-table-column>
+                <el-table-column prop="jobNumber" label="工号" width="100"></el-table-column>
+                <el-table-column prop="startSignTime" label="会前签到时间"></el-table-column>
+                <el-table-column prop="endSignTime" label="会后签到时间"></el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex2"
+            :total="totalElements2"
+            :page-sizes="pageSizeList2"
+            @current-change="changePage2"
+            @size-change="pageSizeChange2"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <!-- <el-tab-pane label="请假" name="third">
+            <el-table
+            ref="formTable"
+            :data="tableData3"
+            v-loading="loading3"
+            :element-loading-text="loadingText"
+            stripe
+            :height="tableHeight"
+            @sort-change="sortChange3"
+            @selection-change="handleSelectionChange3"
+            >
+                <el-table-column type="index" label="序号" width="60">
+                    <template slot-scope='scope'>
+                        {{(pageIndex - 1)*pageSize + scope.$index + 1}}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="姓名" width="150"></el-table-column>
+                <el-table-column prop="jobNumber" label="工号" width="100"></el-table-column>
+                <el-table-column prop="startSignTime" label="会前签到时间"></el-table-column>
+                <el-table-column prop="endSignTime" label="会后签到时间"></el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex3"
+            :total="totalElements3"
+            :page-sizes="pageSizeList3"
+            @current-change="changePage3"
+            @size-change="pageSizeChange3"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane> -->
+        <el-tab-pane :label="'缺席'+tableDataCount4" name="fourth">
+            <el-table
+            ref="formTable"
+            :data="tableData4"
+            v-loading="loading4"
+            :element-loading-text="loadingText"
+            stripe
+            :height="tableHeight"
+            @sort-change="sortChange4"
+            @selection-change="handleSelectionChange4"
+            >
+                <el-table-column type="index" label="序号" width="60">
+                    <template slot-scope='scope'>
+                        {{(pageIndex - 1)*pageSize + scope.$index + 1}}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="姓名" ></el-table-column>
+                <el-table-column prop="jobNumber" label="工号" ></el-table-column>
+                <!-- <el-table-column prop="startSignTime" label="会前签到时间"></el-table-column>
+                <el-table-column prop="endSignTime" label="会后签到时间"></el-table-column> -->
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex4"
+            :total="totalElements4"
+            :page-sizes="pageSizeList4"
+            @current-change="changePage4"
+            @size-change="pageSizeChange4"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane :label="'迟到'+tableDataCount5" name="five">
+            <el-table
+            ref="formTable"
+            :data="tableData5"
+            v-loading="loading5"
+            :element-loading-text="loadingText"
+            stripe
+            :height="tableHeight"
+            @sort-change="sortChange5"
+            @selection-change="handleSelectionChange5"
+            >
+                <el-table-column type="index" label="序号" width="60">
+                    <template slot-scope='scope'>
+                        {{(pageIndex - 1)*pageSize + scope.$index + 1}}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="姓名" width="150"></el-table-column>
+                <el-table-column prop="jobNumber" label="工号" width="100"></el-table-column>
+                <el-table-column prop="startSignTime" label="会前签到时间"></el-table-column>
+                <el-table-column prop="endSignTime" label="会后签到时间"></el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex5"
+            :total="totalElements5"
+            :page-sizes="pageSizeList5"
+            @current-change="changePage5"
+            @size-change="pageSizeChange5"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane :label="'早退'+tableDataCount6" name="six">
+            <el-table
+            ref="formTable"
+            :data="tableData6"
+            v-loading="loading6"
+            :element-loading-text="loadingText"
+            stripe
+            :height="tableHeight"
+            @sort-change="sortChange6"
+            @selection-change="handleSelectionChange6"
+            >
+                <el-table-column type="index" label="序号" width="60">
+                    <template slot-scope='scope'>
+                        {{(pageIndex - 1)*pageSize + scope.$index + 1}}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="姓名" width="150"></el-table-column>
+                <el-table-column prop="jobNumber" label="工号" width="100"></el-table-column>
+                <el-table-column prop="startSignTime" label="会前签到时间"></el-table-column>
+                <el-table-column prop="endSignTime" label="会后签到时间"></el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex6"
+            :total="totalElements6"
+            :page-sizes="pageSizeList6"
+            @current-change="changePage6"
+            @size-change="pageSizeChange6"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+    </el-tabs>
+
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">关闭</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import meetingPersonRecodeApi from "@/api/business/meetingPersonRecode";
+
+export default {
+  props: ["businessKey", "title"],
+  data() {
+    return {
+      formModel: {},
+      showDialog: true,
+      loading: false,
+      loading2: false,
+      loading3: false,
+      loading4: false,
+      loading5: false,
+      loading6: false,
+      submitting: false,
+      activeName: 'first',
+      tableData1:[],
+      tableData2:[],
+      tableData3:[],
+      tableData4:[],
+      tableData5:[],
+      tableData6:[],
+      tableHeight:500,
+      loadingText:"加载中",
+      tableDataCount1:"",
+      tableDataCount2:"",
+      tableDataCount3:"",
+      tableDataCount4:"",
+      tableDataCount5:"",
+      tableDataCount6:"",
+
+      pageIndex: 1,
+      pageSize: 10,
+      totalPages: 0,
+      totalElements: 0,
+      field: "",
+      direction: "",
+      pageSizeList: [10, 20, 30],
+      multipleSelection: [],
+
+      pageIndex2: 1,
+      pageSize2: 10,
+      totalPages2: 0,
+      totalElements2: 0,
+      field2: "",
+      direction2: "",
+      pageSizeList2: [10, 20, 30],
+      multipleSelection2: [],
+
+      pageIndex3: 1,
+      pageSize3: 10,
+      totalPages3: 0,
+      totalElements3: 0,
+      field3: "",
+      direction3: "",
+      pageSizeList3: [10, 20, 30],
+      multipleSelection3: [],
+
+      pageIndex4: 1,
+      pageSize4: 10,
+      totalPages4: 0,
+      totalElements4: 0,
+      field4: "",
+      direction4: "",
+      pageSizeList4: [10, 20, 30],
+      multipleSelection4: [],
+
+      pageIndex5: 1,
+      pageSize5: 10,
+      totalPages5: 0,
+      totalElements5: 0,
+      field5: "",
+      direction5: "",
+      pageSizeList5: [10, 20, 30],
+      multipleSelection5: [],
+
+      pageIndex6: 1,
+      pageSize6: 10,
+      totalPages6: 0,
+      totalElements6: 0,
+      field6: "",
+      direction6: "",
+      pageSizeList6: [10, 20, 30],
+      multipleSelection6: [],
+    };
+  },
+  created() {
+
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    changePage(pageIndex) {
+        var self = this;
+
+        self.loading = true;
+        self.loadingText = "加载中...";
+
+        self.pageIndex = pageIndex;
+        var formData = new FormData();
+
+        formData.append("pageIndex", self.pageIndex);
+        formData.append("pageSize", self.pageSize);
+        formData.append("meetingId", self.businessKey);
+
+        meetingPersonRecodeApi
+            .shouldArriveList(formData)
+            .then(function(response) {
+            self.loading = false;
+            var jsonData = response.data;
+            
+            if(jsonData.result) {
+                var page = jsonData.data;
+
+                self.tableData1 = page.data;
+                self.totalPages = page.totalPages;
+                self.totalElements = page.recordsTotal;
+                self.tableDataCount1 = page.recordsTotal
+            }
+            else{
+                self.$message.warning(jsonData.message + "");
+            }
+            })
+            .catch(error => {
+            self.loading = false;
+        });
+    },
+    changePage2(pageIndex2) {
+        var self = this;
+
+        self.loading2 = true;
+        self.loadingText = "加载中...";
+
+        self.pageIndex2 = pageIndex2;
+        var formData = new FormData();
+
+        formData.append("pageIndex", self.pageIndex2);
+        formData.append("pageSize", self.pageSize2);
+        formData.append("meetingId", self.businessKey);
+        formData.append("type", "2");
+
+        meetingPersonRecodeApi
+            .realToList(formData)
+            .then(function(response) {
+            self.loading2 = false;
+            var jsonData = response.data;
+            
+            if(jsonData.result) {
+                var page = jsonData.data;
+
+                self.tableData2 = page.data;
+                self.totalPages2 = page.totalPages;
+                self.totalElements2 = page.recordsTotal;
+                self.tableDataCount2 = page.recordsTotal
+            }
+            else{
+                self.$message.warning(jsonData.message + "");
+            }
+            })
+            .catch(error => {
+            self.loading2 = false;
+        });
+    },
+    changePage3(pageIndex3) {
+        var self = this;
+
+        self.loading3 = true;
+        self.loadingText = "加载中...";
+
+        self.pageIndex3 = pageIndex3;
+        var formData = new FormData();
+
+        formData.append("pageIndex", self.pageIndex3);
+        formData.append("pageSize", self.pageSize3);
+        formData.append("meetingId", self.businessKey);
+        formData.append("type", "3");
+
+        meetingPersonRecodeApi
+            .realToList(formData)
+            .then(function(response) {
+            self.loading3 = false;
+            var jsonData = response.data;
+            
+            if(jsonData.result) {
+                var page = jsonData.data;
+
+                self.tableData3 = page.data;
+                self.totalPages3 = page.totalPages;
+                self.totalElements3 = page.recordsTotal;
+                self.tableDataCount3 = page.recordsTotal
+            }
+            else{
+                self.$message.warning(jsonData.message + "");
+            }
+            })
+            .catch(error => {
+            self.loading3 = false;
+        });
+    },
+    changePage4(pageIndex4) {
+        var self = this;
+
+        self.loading4 = true;
+        self.loadingText = "加载中...";
+
+        self.pageIndex4 = pageIndex4;
+        var formData = new FormData();
+
+        formData.append("pageIndex", self.pageIndex4);
+        formData.append("pageSize", self.pageSize4);
+        formData.append("meetingId", self.businessKey);
+
+        meetingPersonRecodeApi
+            .absentList(formData)
+            .then(function(response) {
+            self.loading4 = false;
+            var jsonData = response.data;
+            
+            if(jsonData.result) {
+                var page = jsonData.data;
+
+                self.tableData4 = page.data;
+                self.totalPages4 = page.totalPages;
+                self.totalElements4 = page.recordsTotal;
+                self.tableDataCount4 = page.recordsTotal
+            }
+            else{
+                self.$message.warning(jsonData.message + "");
+            }
+            })
+            .catch(error => {
+            self.loading4 = false;
+        });
+    },
+    changePage5(pageIndex5) {
+        var self = this;
+
+        self.loading5 = true;
+        self.loadingText = "加载中...";
+
+        self.pageIndex5 = pageIndex5;
+        var formData = new FormData();
+
+        formData.append("pageIndex", self.pageIndex5);
+        formData.append("pageSize", self.pageSize5);
+        formData.append("meetingId", self.businessKey);
+        formData.append("type", "5");
+
+        meetingPersonRecodeApi
+            .realToList(formData)
+            .then(function(response) {
+            self.loading5 = false;
+            var jsonData = response.data;
+            
+            if(jsonData.result) {
+                var page = jsonData.data;
+
+                self.tableData5 = page.data;
+                self.totalPages5 = page.totalPages;
+                self.totalElements5 = page.recordsTotal;
+                self.tableDataCount5 = page.recordsTotal
+            }
+            else{
+                self.$message.warning(jsonData.message + "");
+            }
+            })
+            .catch(error => {
+            self.loading5 = false;
+        });
+    },
+    changePage6(pageIndex6) {
+        var self = this;
+
+        self.loading6 = true;
+        self.loadingText = "加载中...";
+
+        self.pageIndex6 = pageIndex6;
+        var formData = new FormData();
+
+        formData.append("pageIndex", self.pageIndex6);
+        formData.append("pageSize", self.pageSize6);
+        formData.append("meetingId", self.businessKey);
+        formData.append("type", "6");
+
+        meetingPersonRecodeApi
+            .realToList(formData)
+            .then(function(response) {
+            self.loading6 = false;
+            var jsonData = response.data;
+            
+            if(jsonData.result) {
+                var page = jsonData.data;
+
+                self.tableData6 = page.data;
+                self.totalPages6 = page.totalPages;
+                self.totalElements6 = page.recordsTotal;
+                self.tableDataCount6 = page.recordsTotal
+            }
+            else{
+                self.$message.warning(jsonData.message + "");
+            }
+            })
+            .catch(error => {
+            self.loading6 = false;
+        });
+    },
+    handleClick(){
+
+    },
+    sortChange(data) {
+      console.log(data);
+
+      this.field = data.column.sortBy;
+      this.direction = data.order == "ascending" ? "asc" : "desc";
+
+      this.changePage(this.pageIndex);
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    handleReset(name) {
+      this.$refs[name].resetFields();
+    },
+    pageSizeChange(pageSize) {
+      this.pageSize = pageSize;
+    },
+},
+  mounted: function () {
+    var self = this;
+    self.changePage(1);
+    self.changePage2(1);
+    self.changePage3(1);
+    self.changePage4(1);
+    self.changePage5(1);
+    self.changePage6(1);
+  },
+};
+</script>