瀏覽代碼

03-22 09:44 lhj

liuhj 1 年之前
父節點
當前提交
6a9f26f774

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

@@ -267,6 +267,7 @@ export default {
         },
         handleClick(tab, event) {
             this.activeName = tab.name;
+            this.tableData =[];
             this.getPostSearchGrpCreditCardPayment();
         },
         shStatus() {

+ 216 - 0
src/components/Finance/RvsReport.vue

@@ -0,0 +1,216 @@
+<template>
+    <div>
+        <div class="rvsreport-all">
+            <div class="rvsreport-haed">
+                <el-date-picker
+                @change="datechange"
+                style="width:350px"
+                v-model="value2"
+                type="daterange"
+                align="left"
+                unlink-panels
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :picker-options="pickerOptions">
+                </el-date-picker>
+                <el-button @click="Skeclick" type="primary">生 成</el-button>
+            </div>
+            <div class="hjbox">
+                应收合计:{{total_fr}} 已收合计:{{total_pr}} 余款合计:{{total_balance}}
+            </div>
+            <div class="rvsreport-table">
+                <el-table
+                :data="tableData"
+                border
+                style="width: 100%">
+                    <el-table-column
+                    prop="no"
+                    label="序号"
+                    width="50">
+                    </el-table-column>
+                    <el-table-column
+                    prop="clientUnit"
+                    label="单位"
+                    width="180">
+                    </el-table-column>
+                    <el-table-column
+                    prop="teamName"
+                    label="团组名称"
+                    width="180">
+                    </el-table-column>
+                    <el-table-column
+                    prop="visitDate"
+                    label="出访时间"
+                    width="180">
+                    </el-table-column>
+                    <el-table-column
+                    prop="frPrice"
+                    label="应收"
+                    width="180">
+                        <template slot-scope="scope">
+                            {{scope.row.frPrice+' RMB'}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    prop="prPrice"
+                    label="已收"
+                    width="180">
+                        <template slot-scope="scope">
+                            {{scope.row.prPrice+' RMB'}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    prop="balPrice"
+                    label="余款"
+                    width="180">
+                        <template slot-scope="scope">
+                            {{scope.row.balPrice+' RMB'}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    prop="prClient"
+                    label="收款单位"
+                    width="180">
+                    </el-table-column>
+                    <el-table-column
+                    prop="schedule"
+                    label="收款进度">
+                    </el-table-column>
+                    
+                </el-table>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            pickerOptions: {
+                shortcuts: [{
+                    text: '最近一周',
+                    onClick(picker) {
+                    const end = new Date();
+                    const start = new Date();
+                    start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+                    picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近一个月',
+                    onClick(picker) {
+                    const end = new Date();
+                    const start = new Date();
+                    start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+                    picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近三个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }]
+            },
+            value2: '',
+            tableData: [],
+            total_balance:'0.00',
+            total_fr:'0.00',
+            total_pr:'0.00',
+        };
+    },
+    methods:{
+        datechange(){
+            console.log(this.getdate(this.value2[0]))
+            console.log(this.getdate(this.value2[1]))
+            this.PostSyntheticalReceivableByDateRange(this.getdate(this.value2[0]),this.getdate(this.value2[1]),1)
+        },
+        getdate(val){
+            var date=new Date(val);
+            var y=date.getFullYear();
+            var m=date.getMonth()+1<10?'0'+(date.getMonth()+1):date.getMonth()+1;
+            var d=date.getDate()<10?'0'+date.getDate():date.getDate();
+            return y+'-'+m+'-'+d
+        },
+        //生成
+        Skeclick(){
+            var beginDt=this.getdate(this.value2[0]);
+            var endDt=this.getdate(this.value2[1]);
+            var requestType=2;
+
+            if(beginDt=='NaN-NaN-NaN'||endDt=='NaN-NaN-NaN'){
+                this.$message.error('请选择时间段');
+                return
+            }
+            var url = "/api/Financial/PostSyntheticalReceivableByDateRange"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data:{
+                    portType: 1,
+                    beginDt: beginDt,
+                    endDt: endDt,
+                    requestType: requestType,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                   window.open(res.data.data.url)
+                }
+            })
+        },
+        PostSyntheticalReceivableByDateRange(beginDt,endDt,requestType){
+            var url = "/api/Financial/PostSyntheticalReceivableByDateRange"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    portType: 1,
+                    beginDt: beginDt,
+                    endDt: endDt,
+                    requestType: requestType,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.tableData=res.data.data.dataList;
+                    that.total_fr=res.data.data.total_fr;
+                    that.total_pr=res.data.data.total_pr;
+                    that.total_balance=res.data.data.total_balance;
+                }
+            })
+        },
+    }
+}
+</script>
+<style>
+.rvsreport-all{
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    height: 100%;
+    min-height: 830px;
+}
+.rvsreport-haed{
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 20px;
+}
+.hjbox{
+    font-size: 14px;
+    color: #909399;
+    font-weight:600 ;
+    margin-bottom: 5px;
+}
+</style>

+ 2 - 0
src/components/OP/Customers.vue

@@ -152,6 +152,8 @@ export default {
             })
         },
         VisaSelectChange() {
+            this.tableDatas = [];
+            this.tableData = [];
             if (this.DiId != "") {
                 this.PostVisaByDiId();
             } else {

+ 58 - 5
src/components/OP/EntryDetails.vue

@@ -1,5 +1,5 @@
 <template>
-    <div>
+    <div v-loading.fullscreen.lock="fullscreenLoading">
         <div class="Entry-all">
             <div class="Entry-head">
                 <div class="Entry-head-li">
@@ -17,7 +17,23 @@
                     <el-button type="primary">计算费用</el-button>
                     <el-button type="primary">全部清空</el-button>
                     <el-button @click="storage()" type="primary">保存</el-button>
+                    <el-select style="width:202px" v-model="listvalue" placeholder="请选择">
+                        <el-option
+                          v-for="item in listvalueoptions"
+                          :key="item.id"
+                          :label="item.name"
+                          :value="item.id">
+                        </el-option>
+                      </el-select>
                     <el-button type="primary">导出所选明细表</el-button>
+                    <el-select style="width:202px" v-model="tablevalue" placeholder="请选择">
+                        <el-option
+                          v-for="item in tablevalueoptions"
+                          :key="item.id"
+                          :label="item.name"
+                          :value="item.id">
+                        </el-option>
+                      </el-select>
                     <el-button type="primary">导出下拉所选表格</el-button>
                 </div>
             </div>
@@ -479,6 +495,30 @@
 export default {
     data() {
         return {
+            fullscreenLoading:false,
+
+
+            options: [{
+            value: '选项1',
+            label: '黄金糕'
+            }, {
+            value: '选项2',
+            label: '双皮奶'
+            }, {
+            value: '选项3',
+            label: '蚵仔煎'
+            }, {
+            value: '选项4',
+            label: '龙须面'
+            }, {
+            value: '选项5',
+            label: '北京烤鸭'
+            }],
+            listvalue:'',
+            tablevalue:'',
+            listvalueoptions:[],
+            tablevalueoptions:[],
+
             //是否计算Checkbox
             choiceOne:false,//境内费用(其他费用)选择框
             choiceTwo:false,//国际旅费合计选择框
@@ -602,6 +642,8 @@ export default {
                     that.currencys=res.data.data.currencyInit;
                     that.value=res.data.data.groupNameData[0].id;
                     that.placeinif=res.data.data.nationalTravelFeeData;
+                    that.listvalueoptions=res.data.data.wordTypeData;
+                    that.tablevalueoptions=res.data.data.excelTypeData;
                     that.GetEnterExitCostInfobyDiId()
                 }
             })
@@ -635,7 +677,13 @@ export default {
         },
         GetEnterExitCostInfobyDiId(){
             //初始化数据
+            
             // this.currencys=[]
+            this.TotalAccommodationFee=0;//住宿费合计
+            this.TotalMeals=0;//伙食费合计
+            this.TotalMiscellaneous=0;//公杂费合计
+            this.trainingExpense=0;//培训费合计
+
             this.DomesticFees={
                 visafees:'',//签证费
                 visafeesDescription:'',//签证费用描述
@@ -732,6 +780,11 @@ export default {
                         that.trainingExpense+=res.data.data.trainingExpenseData[d].subTotal
                     }
                     that.storageid=res.data.data.id;
+                    that.GetNationalTravelFeeData();
+                    that.fullscreenLoading=false;
+                }else{
+                    that.fullscreenLoading=false;
+                    that.$message.error(res.data.msg);
                 }
             })
         },
@@ -820,7 +873,6 @@ export default {
         },
         //培训费费用标准值改变
         Traininginput(val){
-            console.log(val)
             var rate=0
             for(let j=0;j<this.currencys.length;j++){
                 if(this.currencys[j].currencyName==val.currencyName){
@@ -869,7 +921,7 @@ export default {
                     cost:0,
                     currency:0,
                     subTotal:0,
-                    remark:0,
+                    remark:'',
                 })
             }
             if(text=="伙食费"){
@@ -882,7 +934,7 @@ export default {
                     cost:0,
                     currency:0,
                     subTotal:0,
-                    remark:0,
+                    remark:'',
                 })
             }
             if(text=="公杂费"){
@@ -895,7 +947,7 @@ export default {
                     cost:0,
                     currency:0,
                     subTotal:0,
-                    remark:0,
+                    remark:'',
                 })
             }
             if(text=="培训费"){
@@ -1081,6 +1133,7 @@ export default {
         },
         //选择团组名称调用
         chengvalue(){
+            this.fullscreenLoading=true;
             this.GetEnterExitCostInfobyDiId()
         }
     },

+ 4 - 2
src/components/OP/InvitationOfficialActivities.vue

@@ -197,6 +197,7 @@ export default {
                 }
             }).then(function (res) {
                 if (res.data.code == 200) {
+                    console.log(res);
                     that.AirTicketResSelectData = res.data.data.groupName;
                     if(that.DiIdst==undefined||that.DiIdst!=that.DiIdst){
                         that.DiId =that.AirTicketResSelectData[0].id;
@@ -340,7 +341,8 @@ export default {
                             message: '删除成功',
                             type: 'success'
                         });
-                        that.AirTicketResSelect();
+                        // that.AirTicketResSelect();
+                        that.AirTicketResSelectChange();
                     } else {
                         that.$message.error('删除失败!');
                     }
@@ -354,7 +356,7 @@ export default {
                     type: 'info',
                     message: '操作已取消!'
                 });
-            });
+            }); 
         },
         download(index, row) {
             if (row.filePath != "") {

+ 10 - 3
src/components/child/Controltree.vue

@@ -495,9 +495,16 @@ export default {
             var url="/api/Groups/PostSearchGrpSchedule";
             var that=this;
             that.fullscreenLoading = true;
-            var data = JSON.stringify({
-                "paras": "{\"PortType\":\"1\",\"SearchType\":\"1\",\"ScheduleId\":\"24\"}"
-            });
+            var datas={
+                paras:{
+                PortType:1,
+                SearchType:1,
+                DiId:that.OPid
+                }
+            } 
+            // "paras": "{\"PortType\":\"1\",\"SearchType\":\"1\",\"DiId\":\"{this.OPid}\"}"
+            var data = JSON.stringify( {"paras": "{\"PortType\":\"1\",\"SearchType\":\"1\",\"ScheduleId\":\""+that.OPid+"\"}"});
+            console.log()
             this.$axios({
                 method: 'post',
                 url:url,

+ 3 - 2
src/components/child/Generalindex.vue

@@ -440,8 +440,8 @@ export default {
             return gstime;
         },
         handleEdit(index, row) {
-            console.log(index, row.id);
-            localStorage.setItem('OPid', row.id);
+            console.log(index, row);
+            localStorage.setItem('OPid', row.grpScheduleId);
             this.$router.push({name:'Controltree'})
         },
     },
@@ -522,6 +522,7 @@ export default {
         padding: 10px;
         border-radius: 10px;
         box-shadow: 0 0 5px #0003;
+        min-height: 520px;
     }
     .list-groups .block{
         margin-top: 20px;

+ 20 - 3
src/components/home.vue

@@ -122,8 +122,8 @@
       </el-dialog>
     </div>
     <el-container class="all">
-      <el-aside ref="haeds" class="delwh menubar">
-        <div class="user">
+      <el-aside class="delwh menubar">
+        <div  ref="haeds" class="user">
           <div class="user-box">
             <div class="user-img">
               <img src="../assets/logo2.png" />
@@ -373,7 +373,8 @@ export default {
       document.querySelector(".menubar").style.height = window.innerHeight + "px";
       document.querySelector(".all").style.height = window.innerHeight + "px";
       document.querySelector(".delwh").style.width = "";
-      console.log(this.$refs.haeds)
+      document.querySelector(".meun-ul").style.height=(window.innerHeight-(this.$refs.haeds.offsetHeight+this.$refs.avatarhaeds.offsetHeight))+'px';
+      console.log(window.innerHeight-(this.$refs.haeds.offsetHeight+this.$refs.avatarhaeds.offsetHeight))
     },
     toURLs(val, item) {
       console.log(val)
@@ -1138,7 +1139,23 @@ i.icon-tongzhi {
 .inif-li-img img {
   width: 100%;
 }
+.meun-ul{
+  overflow: auto;
+}
+.meun-ul::-webkit-scrollbar {
+  width: 5px;
+  height: 10px;
+}
+
+.meun-ul::-webkit-scrollbar-track {
+  border-radius: 10px;
+}
 
+.meun-ul::-webkit-scrollbar-thumb {
+  border-radius: 10px;
+  box-shadow: inset 0 0 0 rgba(0, 158, 255, 0.46);
+  background-color: rgba(0, 158, 255, 0.46);
+}
 /*消息*/ 
 .news-box:last-child{
   border-bottom: 1px solid #EBEEF5;

+ 8 - 0
src/router/index.js

@@ -99,6 +99,9 @@ import AssignTasks from '@/components/system/AssignTasks';
 import MyTasksinif from '@/components/system/MyTasksinif';
 import test from '@/components/child/test';
 import Statistically from '@/components/statistics/Statistically';
+import RvsReport from '@/components/Finance/RvsReport';
+
+
 
 
 Vue.use(Router)
@@ -611,6 +614,11 @@ export default new Router({
           name: 'Statistically',
           component: Statistically
         },
+        {
+          path: '/home/RvsReport',
+          name: 'RvsReport',
+          component: RvsReport
+        },
       ]
     },
     {