|
@@ -0,0 +1,307 @@
|
|
|
|
+<template>
|
|
|
|
+ <div>
|
|
|
|
+ <common @asynCallBack="asynCallBack"></common>
|
|
|
|
+ <top-header :pageTitle="pageTitle" :routeName="'Master'"></top-header>
|
|
|
|
+
|
|
|
|
+ <div class="mui-content ">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <NullList :remark="'暂无抄送记录'" v-if="!recordList.length"></NullList>
|
|
|
|
+
|
|
|
|
+ <div v-if="recordList.length" id="slider" class="mui-slider vongi-over">
|
|
|
|
+
|
|
|
|
+ <div class="mui-slider-group">
|
|
|
|
+
|
|
|
|
+ <div class="mui-slider-item mui-control-content">
|
|
|
|
+ <div class="mui-scroll-wrapper vongi-over-hei">
|
|
|
|
+ <div class="mui-scroll">
|
|
|
|
+ <form class="mui-input-group ">
|
|
|
|
+ <div v-for="(item,index) in recordList" :key="'s0_'+item.id">
|
|
|
|
+ <div class="mui-content-padded" style="margin: 12px 12px !important;" >
|
|
|
|
+
|
|
|
|
+ <ul class="mui-table-view fyy-view" @click="detail(item.id)">
|
|
|
|
+ <li class="mui-table-view-cell" >
|
|
|
|
+ <label>公文标题:</label>
|
|
|
|
+ <span>{{item.docTitle}}<span class="mui-pull-right " :class="statusColor[item.docStatus]">{{status[item.docStatus]}}</span></span>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="mui-table-view-cell" >
|
|
|
|
+ <label>公文类型:</label>
|
|
|
|
+ <span>{{item.typeName}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="mui-table-view-cell" >
|
|
|
|
+ <label>提交时间:</label>
|
|
|
|
+ <span>{{item.createTime}}</span>
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </ul>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <!-- <router-link :to="{name:'MasterAttendanceVerifyInfo',query:{id:item.id}}" class="mui-navigate-right">
|
|
|
|
+ <div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
|
|
|
|
+ <div class="mui-media-body">
|
|
|
|
+ {{item.personName}}
|
|
|
|
+ <p class='mui-ellipsis'><span class="colorfe616c" v-text="item.typeN"></span>申请</p>
|
|
|
|
+ <p class='mui-ellipsis' v-if="item.type=='1' && item.address">打卡位置:{{item.address}}</p>
|
|
|
|
+ <p class='mui-ellipsis' v-if="item.type=='2' && item.content">申请理由:{{item.content}}</p>
|
|
|
|
+ <h5 class="vongi-bksp-time" v-text="item.createTime.substr(5)"></h5>
|
|
|
|
+ </div>
|
|
|
|
+ </router-link> -->
|
|
|
|
+
|
|
|
|
+<!-- <input name="checkbox" v-model="selectIdList" :value="item.id" type="checkbox">
|
|
|
|
+ --> </div>
|
|
|
|
+ </form>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <loading :visible="isLoading"></loading>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+ import * as API from '@/apis/Oa/doc'
|
|
|
|
+ import Common from '@/components/Common.vue'
|
|
|
|
+ import Loading from '@/components/Loading.vue'
|
|
|
|
+ import TopHeader from '@/components/TopHeader.vue'
|
|
|
|
+ import isReachBottom from '@/utils/isReachBottom'
|
|
|
|
+ import NullList from '@/components/NullList.vue'
|
|
|
|
+ import {
|
|
|
|
+ mapGetters,
|
|
|
|
+ mapMutations
|
|
|
|
+ } from 'vuex'
|
|
|
|
+ export default {
|
|
|
|
+ name: 'MasterAttendanceVerifyList',
|
|
|
|
+ components: {
|
|
|
|
+ Common,
|
|
|
|
+ Loading,
|
|
|
|
+ TopHeader,
|
|
|
|
+ NullList
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ pageTitle: '公文抄送',
|
|
|
|
+
|
|
|
|
+ isLoading: false,
|
|
|
|
+
|
|
|
|
+ listForm: {
|
|
|
|
+ pageIndex: 1,
|
|
|
|
+ pageSize: 20,
|
|
|
|
+ totalPage: 1,
|
|
|
|
+ type: 9,
|
|
|
|
+ },
|
|
|
|
+ recordList: [],
|
|
|
|
+ selectIdList: [],
|
|
|
|
+ allSelect: [],
|
|
|
|
+ status: ['待审核', '已通过', '未通过', '已撤销'],
|
|
|
|
+ statusColor: ['classFF8400', 'class389E0D', 'classFF6666','classA5A5A5'],
|
|
|
|
+
|
|
|
|
+ subForm: {
|
|
|
|
+ ids: '',
|
|
|
|
+ content: '',
|
|
|
|
+ status: ''
|
|
|
|
+ },
|
|
|
|
+ //审批内容弹窗显示
|
|
|
|
+ openFromVisible: false,
|
|
|
|
+ firstRecordsTotal: 0,
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ detail(id) {
|
|
|
|
+ this.$router.push({
|
|
|
|
+ name: 'OaDocumentVerifyInfo',
|
|
|
|
+ query: {
|
|
|
|
+ id: id
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //获取列表
|
|
|
|
+ getList() {
|
|
|
|
+ this.isLoading = true;
|
|
|
|
+ API.checkPageList(this.listForm).then(response => {
|
|
|
|
+ if (response) {
|
|
|
|
+ if (this.listForm.pageIndex == 1) {
|
|
|
|
+ this.recordList = response.data;
|
|
|
|
+ this.listForm.pageIndex = response.pageNumber;
|
|
|
|
+ this.listForm.totalPage = response.totalPage;
|
|
|
|
+ } else {
|
|
|
|
+ this.recordList = [
|
|
|
|
+ ...this.recordList,
|
|
|
|
+ ...response.data
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (this.listForm.type == 0) {
|
|
|
|
+ this.firstRecordsTotal = response.recordsTotal;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.listForm.pageIndex++;
|
|
|
|
+ this.isLoading = false;
|
|
|
|
+ }).catch(error => {
|
|
|
|
+ this.isLoading = false;
|
|
|
|
+ mui.toast(error);
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //下拉事件
|
|
|
|
+ handleScrool() {
|
|
|
|
+ if (isReachBottom()) {
|
|
|
|
+ console.log('到达底部')
|
|
|
|
+ if (this.listForm.pageIndex <= this.listForm.totalPage && this.isLoading == false) {
|
|
|
|
+ this.getList();
|
|
|
|
+ } else {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //切换
|
|
|
|
+ reloadList(status) {
|
|
|
|
+ this.listForm.type = status;
|
|
|
|
+ this.listForm.pageIndex = 1;
|
|
|
|
+ this.getList();
|
|
|
|
+ },
|
|
|
|
+ //选择所有
|
|
|
|
+ selectAll() {
|
|
|
|
+ if (this.allSelect.length) {
|
|
|
|
+ this.selectIdList = [];
|
|
|
|
+ } else {
|
|
|
|
+ var selectIdList = [];
|
|
|
|
+ this.recordList.forEach(function(item, index) {
|
|
|
|
+ selectIdList.push(item.id);
|
|
|
|
+ })
|
|
|
|
+ this.selectIdList = selectIdList;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //显示内容表单
|
|
|
|
+ openFrom(status) {
|
|
|
|
+ if (!this.selectIdList.length) {
|
|
|
|
+ mui.toast('请选择要处理的信息');
|
|
|
|
+ } else {
|
|
|
|
+ this.subForm.status = status;
|
|
|
|
+ this.subForm.content = status == 1 ? '同意' : '拒绝';
|
|
|
|
+ this.openFromVisible = true;
|
|
|
|
+ //直接点击处理,不需要弹窗理由框,又需要弹窗理由框了
|
|
|
|
+ //this.doAction();
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //检测表单
|
|
|
|
+ checkForm() {
|
|
|
|
+ if (!this.subForm.ids) {
|
|
|
|
+ mui.toast('请选择要处理的信息');
|
|
|
|
+ return false;
|
|
|
|
+ } else {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //同意拒绝
|
|
|
|
+ doAction() {
|
|
|
|
+ this.subForm.ids = this.selectIdList.join(',');
|
|
|
|
+ if (this.checkForm()) {
|
|
|
|
+ this.isLoading = true;
|
|
|
|
+ API_Attendance.doVerify(this.subForm).then(response => {
|
|
|
|
+ this.isLoading = false;
|
|
|
|
+
|
|
|
|
+ this.openFromVisible = false;
|
|
|
|
+ this.listForm.pageIndex = 1;
|
|
|
|
+ this.getList();
|
|
|
|
+ }).catch(error => {
|
|
|
|
+ this.isLoading = false;
|
|
|
|
+ mui.toast(error);
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ asynCallBack() {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+ this.getList();
|
|
|
|
+ //监控下拉加载事件
|
|
|
|
+ var _this = this;
|
|
|
|
+ window.addEventListener('scroll', _this.handleScrool);
|
|
|
|
+ },
|
|
|
|
+ destroyed() {
|
|
|
|
+ //销毁监听事件
|
|
|
|
+ var _this = this;
|
|
|
|
+ window.removeEventListener('scroll', _this.handleScrool);
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ ...mapGetters({
|
|
|
|
+ openId: 'wx_openid',
|
|
|
|
+ token: 'token',
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ //本页面监听到路由(参数)改变
|
|
|
|
+ /* '$route': function(to, from) {
|
|
|
|
+ this.reloadList(to.query.status ? to.query.status : 0)
|
|
|
|
+ } */
|
|
|
|
+ },
|
|
|
|
+ //keepalive监控判断
|
|
|
|
+ beforeRouteLeave(to, from, next) {
|
|
|
|
+ console.log(to.name);
|
|
|
|
+ if (['MasterAttendanceVerifyInfo'].indexOf(to.name) > -1) {
|
|
|
|
+ this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', ['MasterAttendanceVerifyList'])
|
|
|
|
+ } else {
|
|
|
|
+ this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', [])
|
|
|
|
+ }
|
|
|
|
+ next()
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped src="@/assets/css/xpwyfyy-oa.css"></style>
|
|
|
|
+<style src="@/assets/css/iconfont.css"></style>
|
|
|
|
+<style scoped>
|
|
|
|
+ .status_r {
|
|
|
|
+ color: #fe616c !important;
|
|
|
|
+ border: 1px solid #fe616c !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .status_a {
|
|
|
|
+ color: #05c8af !important;
|
|
|
|
+ border: 1px solid #05c8af !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .mui-segmented-control {
|
|
|
|
+ position: fixed;
|
|
|
|
+ top: 44px;
|
|
|
|
+ z-index: 99;
|
|
|
|
+ background-color: #eee;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .mui-fullscreen {
|
|
|
|
+ position: unset;
|
|
|
|
+ margin-top: 45px;
|
|
|
|
+ }
|
|
|
|
+</style>
|
|
|
|
+
|
|
|
|
+<style scoped >
|
|
|
|
+ .classFF8400 {
|
|
|
|
+ color: #FF8400 ;
|
|
|
|
+ }
|
|
|
|
+ .class389E0D {
|
|
|
|
+ color: #389E0D ;
|
|
|
|
+ }
|
|
|
|
+ .classFF6666 {
|
|
|
|
+ color: #FF6666 ;
|
|
|
|
+ }
|
|
|
|
+ .classA5A5A5 {
|
|
|
|
+ color: #A5A5A5 ;
|
|
|
|
+ }
|
|
|
|
+</style>
|