Browse Source

Merge branch 'master' of http://132.232.92.186:3000/XinXiBu/oa-system

yuanrf 7 months ago
parent
commit
743d4c18ba

+ 1 - 0
index.html

@@ -4,6 +4,7 @@
     <meta charset="utf-8">
     <!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> -->
     <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"></meta>
     <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
     <link rel="shortcut icon" type="image/png" href="/static/logo2.png"/>
     <title>OA-泛美国际</title>

+ 4 - 0
src/components/Finance/Cost.vue

@@ -6574,6 +6574,9 @@ export default {
 }
 </style>
 <style>
+.cost-all{
+    font-size: 12px;
+}
 .cost-box {
     background-color: #fff;
     padding: 10px;
@@ -6828,5 +6831,6 @@ export default {
 
 .cost-all .el-table th.el-table__cell>.cell {
     text-align: center;
+    font-size: 12px;
 }
 </style>

+ 9 - 1
src/components/Finance/FeesPage.vue

@@ -66,7 +66,15 @@
                 </el-table-column>
                 <el-table-column prop="priceNameContent" label="费用名称">
                     <template slot-scope="scope">
-                        <el-button @click="open(scope.row.priceMsgContent,scope.row)" slot="reference" type="text">{{ scope.row.priceNameContent }}</el-button>
+                        <el-popover
+                        placement="top"
+                        width="300"
+                        trigger="hover">
+                            {{scope.row.priceNameContent}}
+                            <span style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden;cursor: pointer;color: #48a2ff;" @click="open(scope.row.priceMsgContent,scope.row)" slot="reference" type="text">{{ scope.row.priceNameContent }}</span>
+                            <!-- <span style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden;cursor: pointer;color: #48a2ff;" slot="reference">{{scope.row.reason}}</span> -->
+                        </el-popover>
+                        
                         <!-- <span @click="open(scope.row.priceMsgContent)" slot="reference">{{ scope.row.priceNameContent }}</span> -->
                         <!-- <el-popover style="white-space: pre-wrap;" placement="top-start" width="200" trigger="click">
                             <p>{{scope.row.priceMsgContent.replace(/<br\s*\/?>/,"</p><p>")}}</p>

+ 2 - 2
src/components/Finance/billUploading.vue

@@ -53,7 +53,7 @@
                 :on-success="handleSuccess"
                 :before-remove="beforeRemove"
                 multiple
-                :limit="9"
+                :limit="20"
                 :data="datas"
                 :on-exceed="handleExceed"
                 :file-list="fileList"
@@ -149,7 +149,7 @@ export default {
             this.QueryGroupModelFile();
         },
         handleExceed(files, fileList) {
-            this.$message.warning(`当前限制选择 9 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
+            this.$message.warning(`当前限制选择 20 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
         },
         beforeRemove(file, fileList) {
             return this.$confirm(`确定移除 ${ file.name }?`);

+ 98 - 10
src/components/OP/Groupedit.vue

@@ -56,8 +56,42 @@
                     <el-form-item label-width="120px" label="出访天数:" prop="numdays">
                         <el-input @blur="splicingname" el-input v-model="ruleForm.numdays"></el-input>
                     </el-form-item>
-                    <el-form-item label-width="120px" label="出访人数:" prop="numperson">
+                    <el-form-item style="position: relative;" label-width="120px" label="出访人数:" prop="numperson">
                         <el-input el-input v-model="ruleForm.numperson"></el-input>
+                        <!-- 客户名单 -->
+                        <el-popover
+                        placement="bottom"
+                        width="662"
+                        trigger="hover">
+                            <el-table max-height="600" border :data="rollcallarr">
+                                <el-table-column width="100" property="date" label="姓名">
+                                    <template slot-scope="scope">
+                                        {{ scope.row.lastName}}{{scope.row.firstName}}
+                                    </template>
+                                </el-table-column>
+                                <el-table-column width="200" property="birthDay" label="拼音">
+                                    <template slot-scope="scope">
+                                        {{ pinyingxing(scope.row.lastName) }}/{{  pinyingxing(scope.row.firstName) }}
+                                    </template>
+                                </el-table-column>
+                                <el-table-column width="50" property="sex" label="性别">
+                                    <template slot-scope="scope">
+                                        {{ scope.row.sex==0?'男':'女'}}
+                                    </template>
+                                </el-table-column>
+                                <el-table-column width="110" property="birthDay" label="生日">
+                                    <template slot-scope="scope">
+                                        {{ fgarr(scope.row.birthDay) }}
+                                    </template>
+                                </el-table-column>
+                                <el-table-column width="200"  label="身份证号码">
+                                    <template slot-scope="scope">
+                                        {{ scope.row.idCardNo==""?'-':scope.row.idCardNo }}
+                                    </template>
+                                </el-table-column>
+                            </el-table>
+                            <span v-if="editid!=undefined" slot="reference" style="cursor: pointer;position: absolute;right: -65px;color: red;">客户名单</span>
+                        </el-popover>
                     </el-form-item>
                     <el-form-item label-width="120px" label="团组名称:" prop="groupname">
                         <el-input el-input v-model="ruleForm.groupname"></el-input>
@@ -69,7 +103,7 @@
                     
                 </div>
                 <div style="display: flex;">
-                    <el-form-item style="width: 36.5%;" label-width="120px" label="是否用于投标:">
+                    <el-form-item style="width: 35%;" label-width="120px" label="是否用于投标:">
                         <el-radio-group v-model="ruleForm.radioval" @change="agreeChange">
                             <el-radio label="0">否</el-radio>
                             <el-radio label="1">是</el-radio>
@@ -188,6 +222,7 @@
 <script>
 import { el } from '@fullcalendar/core/internal-common';
 import { all } from 'q';
+import { pinyin } from 'pinyin-pro';
 export default {
     // beforeRouteLeave(to, from, next) {
     //     console.log(to);
@@ -295,10 +330,20 @@ export default {
             restaurants: [],
             restaurantss:[],
             customerunitslist:[],
-            bidbr:true
+            bidbr:true,
+            rollcallarr:[]
         };
     },
     methods: {
+        //拼音
+        pinyingxing(val){
+            return pinyin(val, { toneType: 'none' }).toUpperCase();
+        },
+        //fenge
+        fgarr(val){
+            val=val+""
+            return val.split(' ')[0]
+        },
         querySearch(queryString, cb) {
             var restaurants = this.restaurants;
             var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
@@ -559,13 +604,25 @@ export default {
             }).then(function (res) {
                 console.log(res)
                 if (res.data.code == 200) {
-                    that.$message({
-                        message: res.data.msg,
-                        type: 'success',
-                        offset: 50
-                    });
+                    if (status==2) {
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success',
+                            offset: 50
+                        });
+                        that.$confirm(res.data.msg+'是否跳转到客户名单?', '提示', {
+                            confirmButtonText: '确定',
+                            cancelButtonText: '取消',
+                        type: 'warning'
+                        }).then(() => {
+                            that.$router.push({path: '/home/PickupList?id=' +that.editid +''});
+                        }).catch(() => {
+                            that.$router.go(-1);
+                        });
+                    }else{
+                        that.$router.go(-1);
+                    }
                     that.fullscreenLoading = false;
-                    that.$router.go(-1);
                 } else {
                     that.$message({
                         message: res.data.msg,
@@ -598,7 +655,35 @@ export default {
                 this.ruleForm.opRoyaltyLv=995
                 this.commissionlevel( this.ruleForm.opRoyaltyLv)
             }
-        }
+        },
+        //获取客户名单info
+        PostTourClientListByDiId() {
+            this.rollcallarr=[];
+            if (this.editid==undefined) {
+                return
+            }
+            var that = this
+            var url = "/api/Groups/PostTourClientListByDiId"
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    diid: that.editid,
+                    pageId:104,
+                    userId:233
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.rollcallarr=res.data.data;
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
     },
     beforeRouteEnter(to, from, next) {
         next();
@@ -607,6 +692,9 @@ export default {
         this.editid = this.$route.query.id;
         this.token = JSON.parse(localStorage.getItem('userinif')).token;
         this.userid = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        setTimeout(() => {
+            this.PostTourClientListByDiId();
+        }, 500);
         this.getSalesQuoteNo();
         this.getdown();
         this.getGroupInfo();

+ 6 - 3
src/components/OP/PickupList.vue

@@ -711,10 +711,13 @@ export default {
                     portType: 1
                 }
             }).then(function (res) {
-                console.log(res)
                 if (res.data.code == 200) {
                     that.delegationInfoList = res.data.data;
-                    that.diId = that.delegationInfoList[0].id;
+                    if (that.$route.query.id!=undefined) {
+                        that.diId=Number(that.$route.query.id);
+                    }else{
+                        that.diId = that.delegationInfoList[0].id;
+                    }
                     that.PostShareGroupInfo();
                 }
             }).catch(function (error) {
@@ -1331,7 +1334,7 @@ export default {
     mounted() {
         console.log(this.tourClientListInfos)
         this.token = JSON.parse(localStorage.getItem('userinif')).token;
-        this.pageId = Number(localStorage.getItem('indexs').split('-')[1]);//页面id
+        this.pageId = 104;//页面id
         this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
         this.GetGroupNameList();
         this.PostTourClientListBasicDataInit()

+ 39 - 15
src/components/expenseMobile.vue

@@ -26,7 +26,7 @@
         </el-dialog>
         <div v-if="platejudgment==1">
             <div class="expenseMobile-top">
-                <div class="expenseMobile-title">日常付款申请</div>
+                <div class="expenseMobile-title">{{this.portType!=2?'日常付款申请':''}}</div>
                 <div class="expenseMobile-search">
                     <el-input clearable placeholder="请输入费用描述" v-model="input" class="input-with-select">
                         <el-button @click="searchbtn" slot="append" icon="el-icon-search"></el-button>
@@ -48,14 +48,14 @@
                     </div>
                 </div>
             </div>
-            <div style="padding-bottom: 65px;">
-                <div v-if="zwgd" class="expenseMobile-zwgd">暂无更多</div>
-                <div v-if="!zwgd" class="expenseMobile-zwgd">加载中!</div>
+            <div id="tshezi" style="padding-bottom: 65px;">
+                <div v-if="!zwgd" class="expenseMobile-zwgd">暂无更多</div>
+                <div v-if="zwgd" class="expenseMobile-zwgd">加载中!</div>
             </div>
         </div>
         <div v-else>
             <div class="expenseMobile-top">
-                <div class="expenseMobile-title">费用审核</div>
+                <div class="expenseMobile-title">{{this.portType!=2?'费用审核':''}}</div>
                 <div class="expenseMobile-search">
                     <el-input clearable placeholder="请输入团组名称" v-model="value" class="input-with-select">
                         <el-button @click="searchexamine" slot="append" icon="el-icon-search"></el-button>
@@ -76,6 +76,10 @@
                     </div>
                 </div>
             </div>
+            <div id="tshezi" style="padding-bottom: 65px;">
+                <div v-if="!tzzwgd" class="expenseMobile-zwgd">暂无更多</div>
+                <div v-if="tzzwgd" class="expenseMobile-zwgd">加载中!</div>
+            </div>
         </div>
         <div class="expenseMobile-tabtn">
             <div class="tabtn-box">
@@ -97,6 +101,8 @@
 export default {
     data () {
         return {
+            uid:'',
+            portType:0,
             tableData:[],
             input:'',
             expenseMobileVisible:false,
@@ -105,7 +111,8 @@ export default {
             pageIndexExamine:1,
             loadflagExamine:false,
             loadflag:false,
-            zwgd:false,
+            zwgd:true,
+            tzzwgd:true,
             platejudgment:2,
             value:'',
             groupData:[],
@@ -147,7 +154,7 @@ export default {
                     pageSize: 10,
                     companyId: -1,
                     financialAuditStatus: -1,//财务审核
-                    managerAuditStatus: -1,  //总经理审核
+                    managerAuditStatus: that.uid==21?0:-1,  //总经理审核
                     feeTypeId: -1,           //费用类型
                     feeSubTypeId: -1,       //费用子类型
                     feeDesc: that.input,    //描述
@@ -158,7 +165,7 @@ export default {
                 if (res.data.code == 200) {
                     var magarr=res.data.data.dataList;
                     if(magarr.length<10){
-                        that.zwgd=true;
+                        that.zwgd=false;
                     }
                     for(let j=0;j<magarr.length;j++){
                         that.tableData.push(magarr[j])
@@ -170,6 +177,9 @@ export default {
         },
         //审核
         PostDelDailyPaymentAudit(val1,val2){
+            if (this.uid==undefined||this.uid!=21||this.uid==22) {
+                return  this.$message.error("无审核权限");
+            }
             var url = "/api/Financial/PostDelDailyPaymentAudit"
             var that = this
             this.$axios({
@@ -180,7 +190,7 @@ export default {
                 },
                 data: {
                     id: val1,
-                    auditType:2,
+                    auditType:that.uid==21?2:1,
                     auditStatus:val2
                 }
             }).then(function (res) {
@@ -190,6 +200,10 @@ export default {
                         type: 'success',
                         offset:50
                     });
+                    that.zwgd=true;
+                    that.tableData=[];
+                    that.pageIndex=1;
+                    that.postPageDailyPaymentList()
                 }else{
                     that.$message.error(res.data.msg);
                 }
@@ -223,13 +237,14 @@ export default {
         },
         //搜索
         searchbtn(){
-            this.zwgd=false;
+            this.zwgd=true;
             this.pageIndex=1;
             this.tableData=[];
             this.postPageDailyPaymentList();
         },
         //搜索examine
         searchexamine(){
+            this.tzzwgd=true;
             this.pageIndexExamine=1;
             this.groupData=[];
             this.PostExpenseAuditGroupPageItems();
@@ -239,7 +254,7 @@ export default {
             let scrollTop=document.documentElement.scrollTop || document.body.scrollTop;
             let clientHeight=document.documentElement.clientHeight || document.body.clientHeight;
             let scrollHeight=document.documentElement.scrollHeight || document.body.scrollHeight;
-            if (scrollTop + clientHeight == scrollHeight&&this.loadflagExamine) {
+            if (Math.abs(scrollHeight-clientHeight-scrollTop) < 1&&this.loadflagExamine&&this.tzzwgd) {
                 this.PageTurningExamine()
             }
         },
@@ -247,15 +262,19 @@ export default {
             let scrollTop=document.documentElement.scrollTop || document.body.scrollTop;
             let clientHeight=document.documentElement.clientHeight || document.body.clientHeight;
             let scrollHeight=document.documentElement.scrollHeight || document.body.scrollHeight;
-            if (scrollTop + clientHeight == scrollHeight&&this.loadflag) {
+            if(Math.abs(scrollHeight-clientHeight-scrollTop) < 1&&this.loadflag&&this.zwgd){
                 this.PageTurning()
             }
+            // if (Math.floor(scrollTop + clientHeight) == scrollHeight&&this.loadflag) {
+            //     this.PageTurning()
+            // }
         },
         //日常切换
         rcbtn(){
             this.loadflag=false;
             this.platejudgment=1;
-            this.zwgd=false;
+            this.zwgd=true;
+            this.tzzwgd=true;
             this.pageIndex=1;
             this.tableData=[];
             window.addEventListener('scroll', this.scrollBottom, true);
@@ -294,6 +313,9 @@ export default {
             }).then(function (res) {
                 if (res.data.code == 200) {
                     var groupDatas=res.data.data.data;
+                    if(groupDatas.length<10){
+                        that.tzzwgd=false;
+                    }
                     for(let j=0;j<groupDatas.length;j++){
                         that.groupData.push(groupDatas[j])
                     }
@@ -303,13 +325,15 @@ export default {
         },
         //查看费用
         CheckCost(row){
-            this.$router.push({path: '/expenseMobileinfo?id=' + row.id +''});
+            this.$router.push({path: '/expenseMobileinfo?id=' + row.id +'&uid='+this.uid});
         }
     },
     watch:{
    
     },
     mounted(){
+        this.uid = this.$route.query.uid;
+        this.portType = this.$route.query.portType?this.$route.query.portType:0;
         // if(localStorage.getItem('Examinevalue')!=""){
         //     this.value=localStorage.getItem('Examinevalue');
         // }
@@ -353,7 +377,6 @@ export default {
 .examine-box{
     padding: 8px;
     padding-top: 93px;
-    padding-bottom: 65px;
 }
 .card-description{
     font-weight: 600;
@@ -436,6 +459,7 @@ export default {
     justify-content:space-between;
 }
 .dialog-info-sh div{
+    width: 50%;
     margin-bottom: 5px;
 }
 .info-sl{

+ 13 - 4
src/components/expenseMobileinfo.vue

@@ -6,7 +6,7 @@
             
         </el-dialog>
         <div class="expenseMobileinfo-top">
-            <div @click="back" class="back"><i style="font-weight:600 ;font-size: 16px;" class="el-icon-arrow-left"></i>返回</div>
+            <div @click="back" class="back"><i style="font-weight:600 ;font-size: 16px;" class="el-icon-arrow-left"></i>子项返回</div>
             <div class="expenseMobileinfo-title">费用清单</div>
         </div>
         <div class="expenseMobileinfo-box">
@@ -60,6 +60,7 @@
 export default {
     data () {
         return {
+            uid:'',
             classify:[],
             diid:'',
             GroupInfo:{},
@@ -168,7 +169,8 @@ export default {
             })
         },
         back(){
-            this.$router.push({path: '/expenseMobile'});
+            this.$router.back();
+            // this.$router.push({path: '/expenseMobile'});
         },
         passbtn(val,type){
             this.noPostAuditGrpCreditCardPayment(val,type)
@@ -178,6 +180,9 @@ export default {
         },
         //单独审批
         noPostAuditGrpCreditCardPayment(val, num) {
+            if(this.uid==undefined||this.uid!=21||this.uid==22){
+                return  this.$message.error("无审核权限");
+            }
             var url = "/api/Groups/PostAuditGrpCreditCardPayment"
             var that = this
             this.$axios({
@@ -188,7 +193,7 @@ export default {
                 },
                 data: {
                     portType:1,
-                    userId:21,
+                    userId:that.uid,
                     pageId:47,
                     CreditIdStr: val + '',
                     auditCode: num,//1审核通过,2审核未通过
@@ -220,6 +225,9 @@ export default {
                 });
                 return
             }
+            if(this.uid==undefined||this.uid!=21||this.uid==22){
+                return  this.$message.error("无审核权限");
+            }
             var url = "/api/Groups/PostAuditGrpCreditCardPayment"
             var that = this
             this.$axios({
@@ -230,7 +238,7 @@ export default {
                 },
                 data: {
                     portType:1,
-                    userId:21,
+                    userId:that.uid,
                     pageId:47,
                     CreditIdStr: that.formtypestring,
                     auditCode: val,//1审核通过,2审核未通过
@@ -268,6 +276,7 @@ export default {
     },
     mounted(){
         this.diid = this.$route.query.id;
+        this.uid = this.$route.query.uid;
         this.PostShareGroupInfo();
         this.PostGroupDirectionalClassificationInit();
         

+ 19 - 0
src/components/home.vue

@@ -730,9 +730,11 @@ export default {
 <style>
 *{
   font-family:"微软雅黑";
+  
 }
 .all-box{
   font-family:"微软雅黑";
+  font-size: 13px;
 }
 .el-menu .el-menu-item.is-active {
   color: #fff;
@@ -1223,14 +1225,31 @@ i.icon-tongzhi {
 }
 .all-box .el-table th.el-table__cell>.cell{
   text-align: center;
+  font-size: 13px;
 }
 .all-box .el-table--enable-row-transition .el-table__body td.el-table__cell{
   text-align: center;
+  font-size: 13px;
 }
 
 .gpt-dialog .el-dialog__body{
   padding: 0 20px;
   padding-bottom:10px;
 }
+.all-box .el-submenu__title{
+  font-size: 13px;
+}
+.all-box .el-menu-item{
+  font-size: 13px;
+}
+.all-box .el-button{
+  font-size: 13px;
+}
+.all-box .el-form-item__label{
+  font-size: 13px;
+}
+.all-box .el-input__inner{
+  font-size: 13px;
+}
 </style>