Преглед на файлове

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

wangh преди 1 година
родител
ревизия
506acb82ef

+ 1 - 0
src/components/OP/Groupedit.vue

@@ -357,6 +357,7 @@ export default {
                             offset:50
                         });
                         that.fullscreenLoading = false;
+                        that.$router.go(-1);
                     }else{
                         that.$message({
                             message:res.data.msg,

+ 1 - 0
src/components/OP/GroupsTaskAssignment.vue

@@ -79,6 +79,7 @@ export default {
                     that.delegationInfos = res.data.data.delegationInfos;
                     that.setData = res.data.data.setData;
                     that.user = res.data.data.user;
+                    console.log(that.setData)
                 }
             })
         },

+ 2 - 1
src/components/OP/OPgroup.vue

@@ -348,9 +348,10 @@ export default {
                             type: 'success',
                             offset:50
                         });
-                        row.tourCode=res.data.data.tourCode;
+                        row.tourCode=res.data.data;
                         // rows.splice(index, 1);
                     }else{
+                        row.tourCode=res.data.msg;
                         that.$message({
                             message:res.data.msg ,
                             type: 'warning',

+ 12 - 1
src/components/OP/OpVisaPriec.vue

@@ -12,7 +12,7 @@
                     <div style="width: 25%;">
                         <el-form-item label="团组名称:" label-width="160px">
                             <el-select v-model="OpVisaPriceData.diId" clearable filterable placeholder="团组选择"
-                                :disabled="isShow" style="width: 220px;">
+                                :disabled="isShow" style="width: 220px;" @change="DiIdSelectChange">
                                 <el-option v-for="item in delegationInfoList" :key="item.id" :label="item.teamName"
                                     :value="item.id">
                                 </el-option>
@@ -467,6 +467,17 @@ export default {
                 }
             })
         },
+        DiIdSelectChange() {
+            var that = this;
+            for (let index = 0; index < that.delegationInfoList.length; index++) {
+                if (that.delegationInfoList[index].id == that.OpVisaPriceData.diId) {
+                    that.delegationInfo = that.delegationInfoList[index];
+
+                    that.VisitDate = that.dateFormat(that.delegationInfo.visitStartDate) + '至' + that.dateFormat(that.delegationInfo.visitEndDate);
+                    break;
+                }
+            }
+        },
         payChange() {
             this.OpVisaPriceData.ctdId = '';
             this.OpVisaPriceData.bankNo = '';

+ 13 - 1
src/components/Resource/LocalGuideOperation.vue

@@ -6,6 +6,15 @@
         <template>
             <el-form :model="addData" :rules="rules" ref="addData" label-width="100px" class="demo-ruleForm">
                 <el-row>
+                    <el-col :span="8">
+                        <el-form-item label="导游地接" prop="StaffType">
+                            <el-select v-model="addData.StaffType" placeholder="导游地接">
+                                <el-option :key="0" label="公司" :value="0"></el-option>
+                                <el-option :key="1" label="个人" :value="1"></el-option>
+
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
                     <el-col :span="8">
                         <el-form-item label="服务评分" prop="Score">
                             <el-select v-model="addData.Score" placeholder="服务评分">
@@ -215,6 +224,7 @@ export default {
                 LocalAndChineseScore: 'A',
                 CreateUserId: '',
                 Remark: '',
+                StaffType: ''
             },
             unitAreas: [],
             restaurants: [],
@@ -243,7 +253,7 @@ export default {
                 }
             }).then(function (res) {
                 if (res.data.code == 200) {
-
+                    debugger
                     that.tableData = res.data.data;
                     that.tableData.forEach(function (item, index) {
                         that.unitAreas.push({
@@ -339,6 +349,7 @@ export default {
                     break;
                 }
             }
+            debugger
             this.addData.Status = 2;
             this.addData.Id = this.LocalGuideData.id;
             this.addData.UnitArea = this.LocalGuideData.unitArea;
@@ -359,6 +370,7 @@ export default {
             this.addData.LocalAndChineseScore = this.LocalGuideData.localAndChineseScore;
             this.addData.CreateUserId = this.LocalGuideData.createUserId;
             this.addData.Remark = this.LocalGuideData.remark;
+            this.addData.StaffType = parseInt(this.LocalGuideData.staffType)
         },
     },
 

+ 2 - 2
src/components/system/Payroll.vue

@@ -854,7 +854,7 @@ export default {
                                 if(jiaqininif.Ex_ItemInfo[j].SubType=="病假"){
                                     that.sickleave.push(jiaqininif.Ex_ItemInfo[j])
                                 }
-                                if(jiaqininif.Ex_ItemInfo[j].SubType=="调休假"||jiaqininif.Ex_ItemInfo[j].SubType=="年假"||jiaqininif.Ex_ItemInfo[j].SubType=="婚假"||jiaqininif.Ex_ItemInfo[j].SubType=="产假"||jiaqininif.Ex_ItemInfo[j].SubType=="陪产假"||jiaqininif.Ex_ItemInfo[j].SubType=="丧假"){
+                                if(jiaqininif.Ex_ItemInfo[j].SubType=="调休假"||jiaqininif.Ex_ItemInfo[j].SubType=="年假"||jiaqininif.Ex_ItemInfo[j].SubType=="婚假"||jiaqininif.Ex_ItemInfo[j].SubType=="产假"||jiaqininif.Ex_ItemInfo[j].SubType=="陪产假"||jiaqininif.Ex_ItemInfo[j].SubType=="丧假"||jiaqininif.Ex_ItemInfo[j].SubType=="出差"){
                                     that.transfer.push(jiaqininif.Ex_ItemInfo[j])
                                 }
                             }
@@ -1236,7 +1236,7 @@ export default {
                                 if(jiaqin.Ex_ItemInfo[j].SubType=="病假"){
                                     that.sickleave.push(jiaqin.Ex_ItemInfo[j])
                                 }
-                                if(jiaqin.Ex_ItemInfo[j].SubType=="调休假"||jiaqin.Ex_ItemInfo[j].SubType=="年假"||jiaqin.Ex_ItemInfo[j].SubType=="婚假"||jiaqin.Ex_ItemInfo[j].SubType=="产假"||jiaqin.Ex_ItemInfo[j].SubType=="陪产假"||jiaqin.Ex_ItemInfo[j].SubType=="丧假"){
+                                if(jiaqin.Ex_ItemInfo[j].SubType=="调休假"||jiaqin.Ex_ItemInfo[j].SubType=="年假"||jiaqin.Ex_ItemInfo[j].SubType=="婚假"||jiaqin.Ex_ItemInfo[j].SubType=="产假"||jiaqin.Ex_ItemInfo[j].SubType=="陪产假"||jiaqin.Ex_ItemInfo[j].SubType=="丧假"||jiaqin.Ex_ItemInfo[j].SubType=="出差"){
                                     that.transfer.push(jiaqin.Ex_ItemInfo[j])
                                 }
                             }

+ 212 - 33
src/components/system/SetWorking.vue

@@ -1,15 +1,26 @@
 <template>
     <div>
         <div class="SetWorking-all">
+            <div class="SetWorking-btn">
+                <el-button @click="SetWorkday('工作日')" type="primary">设置为工作日</el-button>
+                <el-button @click="SetWorkday('休息日')" type="success">设置为休息日</el-button>
+                <el-button @click="SetWorkday('节假日')" type="warning">设置为节假日</el-button>
+            </div>
             <div class="calendar-box">
                 <el-calendar ref="calendar" class="aaa" v-model="value">
                     <template #dateCell="{ data }">
-                      <div class="calendar-btn-box" @click="allcalendar(data)">
+                      <div :class="datearr.includes(data.day)?'is-selected':''" class="calendar-btn-box" @click="allcalendar(data)">
                         <div class="calendar-day">
                             {{ data.day.split("-").slice(2).join("-") }} 
                         </div>
-                        <div :class="datayz.includes(data.day)?'schedule-box':'schedule-boxs'">
-                            {{datayz.includes(data.day)?'工作日':'休息'}}
+                        <div v-if="datayz.includes(data.day)" class="schedule-box">
+                            工作日
+                        </div>
+                        <div v-if="datayzxx.includes(data.day)" class="schedule-boxxx">
+                            休息日
+                        </div>
+                        <div v-if="datayzjj.includes(data.day)" class="schedule-boxjj">
+                            节假日
                         </div>
                       </div>
                     </template>
@@ -22,36 +33,29 @@
 export default {
     data() {
         return {
-            datayz:[
-                '2023-11-01',
-                '2023-11-02',
-                '2023-11-03',
-                '2023-11-06',
-                '2023-11-07',
-                '2023-11-08',
-                '2023-11-09',
-                '2023-11-10',
-                '2023-11-13',
-                '2023-11-14',
-                '2023-11-15',
-                '2023-11-16',
-                '2023-11-17',
-                '2023-11-20',
-                '2023-11-21',
-                '2023-11-22',
-                '2023-11-23',
-                '2023-11-24',
-                '2023-11-27',
-                '2023-11-28',
-                '2023-11-29',
-                '2023-11-30',
-            ],
-            value:''
+            userId:'',
+            datayz:[],
+            datayzxx:[],
+            datayzjj:[],
+            datayzwsz:[],
+            value:new Date(),
+            datearr:[],
+            parametersarr:[],
+            yearMonth:"",
+            startDate:"",
+            endDate:"",
         }
     },
     methods:{
         allcalendar(data) {
-            console.log(data);
+            console.log(this.parametersarr)
+            if(this.datearr.indexOf(data.day)>-1){
+                
+                this.datearr.splice(this.datearr.indexOf(data.day),1);
+            }else{
+                this.datearr.push(data.day)
+            }
+            console.log(this.datearr)
             // const loading = this.$loading({
             //     lock: true,  //加上这个 页面点击日历的时候会莫名其妙抖动一下 因为我界面上有滚动条,所以我注释了
             //     text: "Loading",
@@ -64,20 +68,175 @@ export default {
             //     loading.close();
             // }, 500);
         },
+        //处理日期
         formattedDate(val){
             const date = new Date(val);
             const year = date.getFullYear();  
             const month = (date.getMonth() + 1).toString().padStart(2, '0');  
             const day = date.getDate().toString().padStart(2, '0');  
-            const formattedDate = `${year}-${month}-${day}`;  
+            return year+'-'+month+'-'+day
+        },
+        //处理月份
+        formattedMonth(val){
+            const date = new Date(val);
+            const year = date.getFullYear();  
+            const month = (date.getMonth() + 1).toString().padStart(2, '0');  
+            return year+'-'+month
+        },
+        //获取工作日
+        GetWageSheetMonthWorkday(startDt,endDt){
+            var dataarr=[];
+            var xxrdataarr=[];
+            var jjrdataarr=[];
+            var wszdataarr=[];
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: '/api/PersonnelModule/GetWageSheetMonthWorkdays?startDt='+startDt+'&endDt='+endDt,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    console.log(res.data.data)
+                    that.parametersarr=res.data.data;
+                    for(let a=0;a<res.data.data.length;a++){
+                        if(res.data.data[a].isWorkDay){
+                            dataarr.push(res.data.data[a].dt)
+                        }
+                        if(res.data.data[a].holiName=='休息日'){
+                            xxrdataarr.push(res.data.data[a].dt)
+                        }
+                        if(res.data.data[a].holiName=='节假日'){
+                            jjrdataarr.push(res.data.data[a].dt)
+                        }
+                        if(res.data.data[a].holiName==''){
+                            wszdataarr.push(res.data.data[a].dt)
+                        }
+                    }
+                    that.datayz=dataarr
+                    that.datayzxx=xxrdataarr
+                    that.datayzjj=jjrdataarr
+                    that.datayzwsz=wszdataarr
+                }else{
+                    
+                }
+            })
+        },
+        //获取月初月末
+        getMonthEnd(val){
+            let myDate = new Date(val);
+            let month = myDate.getMonth() + 1;
+            month = month < 10 ? "0" + month : month;   //格式化月份,补0
+            let statDateStart = new Date(myDate.getFullYear().toString() +'-'+ month +'-'+ "01"); //月初
+            let dayEnd = new Date(myDate.getFullYear(), month, 0).getDate(); //获取当月一共有多少天
+            let statDateEnd = new Date(myDate.getFullYear().toString() +'-'+ month +'-'+ dayEnd); //月末
+            // return ""+this.formattedDate(statDateStart),""+this.formattedDate(statDateEnd)
+            this.GetWageSheetMonthWorkday(this.formattedDate(statDateStart),this.formattedDate(statDateEnd))
+        },
+        //处理月初月末
+        //设置日类型
+        SetWorkday(text){
+            let datearrnew=[]
+            let myDate = new Date(this.value);
+            let month = myDate.getMonth() + 1;
+            month = month < 10 ? "0" + month : month;   //格式化月份,补0
+            let statDateStart = new Date(myDate.getFullYear().toString() +'-'+ month +'-'+ "01"); //月初
+            let dayEnd = new Date(myDate.getFullYear(), month, 0).getDate(); //获取当月一共有多少天
+            let statDateEnd = new Date(myDate.getFullYear().toString() +'-'+ month +'-'+ dayEnd); //月末
+            console.log(this.formattedDate(statDateStart),this.formattedDate(statDateEnd))
+            this.yearMonth=this.formattedMonth(this.value);
+            this.startDate=this.formattedDate(statDateStart);
+            this.endDate=this.formattedDate(statDateEnd);
+            if(text=='工作日'){
+                for(let j=0;j<this.datearr.length;j++){
+                    datearrnew.push({dt:this.datearr[j],isWorkDay:true,isHoliDay:false,holiName:text,id:0})
+                }
+                for(let m=0;m<this.parametersarr.length;m++){
+                    for(let x=0;x<datearrnew.length;x++){
+                        if(this.parametersarr[m].dt==datearrnew[x].dt){
+                            datearrnew[x].id=this.parametersarr[m].id
+                        }
+                    }
+                }
+                console.log(this.value)
+            }
+            if(text=='休息日'){
+                for(let j=0;j<this.datearr.length;j++){
+                    datearrnew.push({dt:this.datearr[j],isWorkDay:false,isHoliDay:true,holiName:text})
+                }
+                for(let m=0;m<this.parametersarr.length;m++){
+                    for(let x=0;x<datearrnew.length;x++){
+                        if(this.parametersarr[m].dt==datearrnew[x].dt){
+                            datearrnew[x].id=this.parametersarr[m].id
+                        }
+                    }
+                }
+            }
+            if(text=='节假日'){
+                for(let j=0;j<this.datearr.length;j++){
+                    datearrnew.push({dt:this.datearr[j],isWorkDay:false,isHoliDay:true,holiName:text})
+                }
+                for(let m=0;m<this.parametersarr.length;m++){
+                    for(let x=0;x<datearrnew.length;x++){
+                        if(this.parametersarr[m].dt==datearrnew[x].dt){
+                            datearrnew[x].id=this.parametersarr[m].id
+                        }
+                    }
+                }
+            }
+            // console.log(datearrnew,this.userId,this.yearMonth,this.startDate,this.endDate,);
+            this.AddOrEdit(datearrnew);
+        },
+        //设置日期API
+        AddOrEdit(arr){
+            var url = "/api/PersonnelModule/GetWageSheetMonthWorkdaysAddOrEdit"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    userId:this.userId,
+                    yearMonth:this.yearMonth,
+                    startDate:this.startDate,
+                    endDate:this.endDate,
+                    calendarInfos:arr,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.getMonthEnd(that.value)
+                    that.$message({
+                        message:res.data.msg,
+                        type: 'success'
+                    });
+                }else{
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'warning'
+                    });
+                }
+            }).catch(()=>{})
         }
     },
     watch:{
         value:{//监听月份变化
             handler(newValue,oldValue){
-                console.log(newValue,oldValue)
+                if(this.formattedMonth(newValue)!=this.formattedMonth(oldValue)){
+                    this.datearr=[]
+                    this.getMonthEnd(newValue)
+                }
             }
         }
+    },
+    mounted(){
+        this.userId=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        console.log(this.formattedMonth(this.value))
+        console.log(this.getMonthEnd(this.formattedMonth(this.value)))
     }
 }
 </script>
@@ -91,7 +250,7 @@ export default {
     min-height: 830px;
 }
 .is-selected {
-    color: #1989FA;
+    background: #d1e8ff;
 }
 .calendar-btn-box{
     text-align: center;
@@ -115,5 +274,25 @@ export default {
     font-weight: 600;
     color: #a8a4a4;
 }
-
+.schedule-boxxx{
+    font-size: 17px;
+    font-weight: 600;
+    color: #85ce61;
+}
+.schedule-boxjj{
+    font-size: 17px;
+    font-weight: 600;
+    color: #ebb563;
+}
+::v-deep .el-calendar-table:not(.is-range) td.prev,
+::v-deep .el-calendar-table:not(.is-range) td.next {
+    cursor: not-allowed;
+    pointer-events: none;
+}
+.prev>.el-calendar-day>.calendar-btn-box{
+    display: none;
+}
+.next>.el-calendar-day>.calendar-btn-box{
+    display: none;
+}
 </style>