浏览代码

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

yuanrf 1 年之前
父节点
当前提交
91f2f5800b

+ 8 - 4
src/components/Finance/ExpenseReview.vue

@@ -54,11 +54,11 @@
                         label="团组类型"
                         width="150">
                     </el-table-column>
-                    <!-- <el-table-column
+                    <el-table-column
                         prop="teamLev"
                         label="级 别"
                         width="80">
-                    </el-table-column> -->
+                    </el-table-column>
                     <el-table-column
                         prop="teamName"
                         label="团队名称"
@@ -123,6 +123,7 @@
 export default {
     data() {
         return {
+            pageId:0,
             options: [
                 {
                     value: '-1',
@@ -151,7 +152,7 @@ export default {
     methods:{
         //分页api
         PostGroupPageList(){
-            var url = "/api/Groups/PostGroupPageList"
+            var url = "/api/Groups/PostExpenseAuditGroupPageItems"
             var that = this
             this.$axios({
                 method: 'post',
@@ -161,6 +162,8 @@ export default {
                 },
                 data: {
                     portType: 1,
+                    pageId:that.pageId,
+                    userId:that.userid,
                     pageIndex: that.currentPage,
                     pageSize: that.pageSize,
                     isSure: that.value,
@@ -169,7 +172,7 @@ export default {
             }).then(function (res) {
                 console.log(res)
                 if (res.data.code == 200) {
-                    that.groupDatas=res.data.data
+                    that.groupDatas=res.data.data.data
                     that.count=res.data.count
                 }
                 console.log(that.count)
@@ -208,6 +211,7 @@ export default {
     },
     mounted(){
         this.token=JSON.parse(localStorage.getItem('userinif')).token;
+        this.pageId=Number(localStorage.getItem('indexs').split('-')[1]);//页面id
         this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
         this.PostGroupPageList();
     }

+ 153 - 57
src/components/Finance/FeesPage.vue

@@ -1,28 +1,33 @@
 <template>
     <div class="fesspage-box">
         <div class="fesspage-head">
-            <el-form :inline="true" :model="formInline" class="demo-form-inline">
-                <el-form-item>
-                    <el-select v-model="formInline.Status" @change="shStatus()" placeholder="审核状态">
-                        <el-option v-for="(item, index) in AuditStatus" :key="index" :label="item.title"
-                            :value="item.id"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="团队名称:">
-                    {{ formInline.name }}
-                </el-form-item>
-                <el-form-item label="客户:">
-                    {{ formInline.clientName }}
-                </el-form-item>
-                <el-form-item label="出访国家:">
-                    {{ formInline.CountriesVisited }}
-                </el-form-item>
-                <el-form-item label="起止日期:">
-                    {{ formInline.StartTime }}
-                </el-form-item>
-                <el-form-item label="天数/人数:">
-                    {{ formInline.Days }}天 / {{ formInline.Number }}人
-                </el-form-item>
+            <el-form style="display: flex;justify-content: space-between;align-items: center;" :inline="true" :model="formInline" class="demo-form-inline">
+                <div>
+                    <el-form-item>
+                        <el-select v-model="formInline.Status" @change="shStatus()" placeholder="审核状态">
+                            <el-option v-for="(item, index) in AuditStatus" :key="index" :label="item.title"
+                                :value="item.id"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="团队名称:">
+                        {{ formInline.name }}
+                    </el-form-item>
+                    <el-form-item label="客户:">
+                        {{ formInline.clientName }}
+                    </el-form-item>
+                    <el-form-item label="出访国家:">
+                        {{ formInline.CountriesVisited }}
+                    </el-form-item>
+                    <el-form-item label="起止日期:">
+                        {{ formInline.StartTime }}
+                    </el-form-item>
+                    <el-form-item label="天数/人数:">
+                        {{ formInline.Days }}天 / {{ formInline.Number }}人
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-button size="mini" type="primary" @click="goback()">返 回</el-button>
+                </div>
             </el-form>
             <el-form v-if="formInline.Status == 0" :inline="true" :model="formInline" class="demo-form-inline">
                 <el-form-item>
@@ -31,35 +36,38 @@
                 <el-form-item>
                     <el-button type="primary" @click="PostAuditGrpCreditCardPayment(2)">拒 绝(多选)</el-button>
                 </el-form-item>
-                <el-form-item label="审核未通过原因:">
+                <!-- <el-form-item label="审核未通过原因:">
                     <el-radio-group @change="onSubmit" v-model="formInline.resource">
                         <el-radio label="1、成本太高"></el-radio>
                         <el-radio label="2、金额填写错误 "></el-radio>
                         <el-radio label="3、其他"></el-radio>
                     </el-radio-group>
-                </el-form-item>
+                </el-form-item> -->
                 <el-form-item v-show="causetrue">
                     <el-input v-model="formInline.cause"></el-input>
                 </el-form-item>
             </el-form>
+            
         </div>
         <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
-            <el-tab-pane label="所有" name="-1"></el-tab-pane>
+            <el-tab-pane v-for="(item,index) in classify" :key="index" :label="item.name" :name="item.id+''"></el-tab-pane>
+            <!-- <el-tab-pane label="所有" name="-1"></el-tab-pane>
             <el-tab-pane label="酒店预订" name="76"></el-tab-pane>
             <el-tab-pane label="车导地接" name="79"></el-tab-pane>
             <el-tab-pane label="签证" name="80"></el-tab-pane>
             <el-tab-pane label="邀请公务" name="81"></el-tab-pane>
             <el-tab-pane label="机票预订" name="85"></el-tab-pane>
-            <el-tab-pane label="团组增减款项" name="98"></el-tab-pane>
+            <el-tab-pane label="团组增减款项" name="98"></el-tab-pane> -->
         </el-tabs>
         <div>
-            <el-table ref="multipleTable" border :data="tableData" tooltip-effect="dark" style="width: 100%"
+            <el-table height="600" ref="multipleTable" border :data="tableData" tooltip-effect="dark" style="width: 100%"
                 @selection-change="handleSelectionChange">
                 <el-table-column type="selection" width="40" v-if="formInline.Status == 0">
                 </el-table-column>
-                <el-table-column prop="priceNameContent" label="费用所属" width="200">
+                <el-table-column prop="priceNameContent" label="费用名称" width="200">
                     <template slot-scope="scope">
-                        <span @click="open(scope.row.priceMsgContent)" slot="reference">{{ scope.row.priceNameContent }}</span>
+                        <el-button @click="open(scope.row.priceMsgContent,scope.row)" slot="reference" type="text">{{ scope.row.priceNameContent }}</el-button>
+                        <!-- <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>
                             <span @click="open(scope.row.priceMsgContent)" slot="reference">{{ scope.row.priceNameContent }}</span>
@@ -68,7 +76,7 @@
                 </el-table-column>
                 <el-table-column prop="priceName" label="费用模块" width="120">
                 </el-table-column>
-                <el-table-column prop="busName" label="Bus名称" show-overflow-tooltip>
+                <el-table-column v-if="activeName==79" prop="busName" label="Bus名称" show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column prop="waitPay" label="应付款金额" show-overflow-tooltip>
                 </el-table-column>
@@ -86,8 +94,10 @@
                     <template slot-scope="scope">
                         <el-button size="mini" v-if='scope.row.isAuditGM == 0 || scope.row.isAuditGM == 2'
                             @click="handleEdit(scope.$index, scope.row)">通 过</el-button>
-                        <el-button size="mini" type="danger" v-if='scope.row.isAuditGM == 0 || scope.row.isAuditGM == 1'
+                        <el-button size="mini" type="danger" v-if='scope.row.isAuditGM == 0'
                             @click="handleDelete(scope.$index, scope.row)">不通过</el-button>
+                        <el-button size="mini" type="warning" v-if='scope.row.isAuditGM == 1'
+                            @click="handleDelete(scope.$index, scope.row)">取消通过</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -99,31 +109,28 @@
             <div class="remainder"></div>
             <div class="reviewed"></div>
         </div>
-        <el-row>
-            <el-button size="mini" type="primary" @click="goback()">返 回</el-button>
-        </el-row>
     </div>
 </template>
 
 <script>
-import { co } from '@fullcalendar/core/internal-common';
 export default {
     data() {
         return {
-            activeName: '-1',
+            pageId:0,
+            activeName: 0,
             diid: '',
             token: '',
             causetrue: false,
             formInline: {
                 Status: -1,
-                name: '甘孜州州长团赴瑞士、希腊、奥地利10日团',
-                clientName: '兰卡彬真',
+                name: '',
+                clientName: '',
                 // clientPhone:'15884061115',
-                CountriesVisited: '瑞士 希腊 奥地利',
-                StartTime: ' 2023-08-20',
+                CountriesVisited: '',
+                StartTime: ' ',
                 // EndTime:'2023-08-29',
-                Number: 5,
-                Days: 10,
+                Number: 0,
+                Days: 0,
                 resource: '',
                 cause: "",
             },
@@ -150,6 +157,7 @@ export default {
             auditarr: '',
             userid: '',
             payable: '',
+            classify:[],//分类
         }
     },
     methods: {
@@ -164,8 +172,18 @@ export default {
         },
         //获取详情
         getPostSearchGrpCreditCardPayment() {
+            console.log(this.activeName)
             var url = "/api/Groups/PostSearchGrpCreditCardPayment"
             var that = this
+            var data= {
+                    portType: 1,
+                    userId: that.userid,
+                    pageId: that.pageId,
+                    diId: that.diid,
+                    label: that.activeName,
+                    auditStatus: that.formInline.Status
+                }
+                console.log(JSON.stringify(data))
             this.$axios({
                 method: 'post',
                 url: url,
@@ -173,24 +191,68 @@ export default {
                     Authorization: 'Bearer ' + that.token
                 },
                 data: {
-                    diId: 2270,
+                    portType: 1,
+                    userId: that.userid,
+                    pageId: that.pageId,
+                    diId: that.diid,
                     label: that.activeName,
                     auditStatus: that.formInline.Status
                 }
             }).then(function (res) {
                 console.log(res);
                 if (res.data.code == 200) {
+                    that.tableData = res.data.data.data.detailList;
+                    document.querySelector('.payable').innerHTML = res.data.data.data.totalStr1;
+                    document.querySelector('.payment').innerHTML = res.data.data.data.totalStr2;
+                    document.querySelector('.remainder').innerHTML = res.data.data.data.totalStr3;
+                    document.querySelector('.reviewed').innerHTML = res.data.data.data.totalStr4;
+                }
+            })
+        },
+         //获取分类
+         PostGroupDirectionalClassificationInit() {
+            var url = "/api/Business/PostGroupDirectionalClassificationInit"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+            }).then(function (res) {
+                console.log(res);
+                if (res.data.code == 200) {
+                    that.classify=res.data.data;
+                    that.activeName=res.data.data[0].id+''
+                    that.getPostSearchGrpCreditCardPayment();
+                }
+            })
+        },
+        //获取团组详情
+        PostShareGroupInfo(){
+            var url = "/api/Business/PostShareGroupInfo"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType:1,
+                    id: that.diid
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
                     that.formInline.name = res.data.data.teamName;
                     that.formInline.clientName = res.data.data.clientName;
                     that.formInline.CountriesVisited = res.data.data.visitCountry;
-                    that.formInline.StartTime = res.data.data.visitDate;
+                    that.formInline.StartTime = res.data.data.visitStartDate.split(' ')[0]+'~'+res.data.data.visitEndDate.split(' ')[0];
                     that.formInline.Days = res.data.data.visitDays;
                     that.formInline.Number = res.data.data.visitPNumber;
-                    that.tableData = res.data.data.detailList;
-                    document.querySelector('.payable').innerHTML = res.data.data.totalStr1;
-                    document.querySelector('.payment').innerHTML = res.data.data.totalStr2;
-                    document.querySelector('.remainder').innerHTML = res.data.data.totalStr3;
-                    document.querySelector('.reviewed').innerHTML = res.data.data.totalStr4;
+                }else{
+                    that.$message.error('获取数据源失败!');
                 }
             })
         },
@@ -227,19 +289,27 @@ export default {
                     Authorization: 'Bearer ' + that.token
                 },
                 data: {
+                    portType:1,
+                    userId:that.userid,
+                    pageId:that.pageId,
                     CreditIdStr: that.auditarr,
                     auditCode: val,//1审核通过,2审核未通过
-                    user: that.userid//userid
                 }
             }).then(function (res) {
                 console.log(res);
                 if (res.data.code == 200) {
                     that.$message({
                         message: res.data.msg,
-                        type: 'warning',
+                        type: 'success',
                         offset: 50
                     });
                     that.getPostSearchGrpCreditCardPayment();
+                }else{
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'warning',
+                        offset: 50
+                    });
                 }
             })
         },
@@ -248,6 +318,15 @@ export default {
             console.log(val, num)
             var url = "/api/Groups/PostAuditGrpCreditCardPayment"
             var that = this
+            var data= {
+                    portType:1,
+                    userId:that.userid,
+                    pageId:that.pageId,
+                    creditIdStr: val + '',
+                    auditCode: num,//1审核通过,2审核未通过
+                    
+                }
+                console.log(JSON.stringify(data))
             this.$axios({
                 method: 'post',
                 url: url,
@@ -255,19 +334,27 @@ export default {
                     Authorization: 'Bearer ' + that.token
                 },
                 data: {
+                    portType:1,
+                    userId:that.userid,
+                    pageId:that.pageId,
                     CreditIdStr: val + '',
                     auditCode: num,//1审核通过,2审核未通过
-                    user: that.userid//userid
                 }
             }).then(function (res) {
                 console.log(res);
                 if (res.data.code == 200) {
                     that.$message({
                         message: res.data.msg,
-                        type: 'warning',
+                        type: 'success',
                         offset: 50
                     });
                     that.getPostSearchGrpCreditCardPayment();
+                }else{
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'warning',
+                        offset: 50
+                    });
                 }
             })
         },
@@ -277,17 +364,22 @@ export default {
         ceshi() {
             console.log("tg")
         },
-        open(val) {
-            this.$alert(val, '费用所属', {
-            dangerouslyUseHTMLString: true
+        open(val,text) {
+            console.log(text)
+            this.$alert(val, '费用名称', {
+                dangerouslyUseHTMLString: true
             });
         }
     },
     mounted() {
         this.diid = this.$route.query.id;
+        console.log(this.diid)
         this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.pageId=Number(localStorage.getItem('indexs').split('-')[1]);//页面id
         this.userid = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
-        this.getPostSearchGrpCreditCardPayment();
+        this.PostGroupDirectionalClassificationInit();
+        
+        this.PostShareGroupInfo();
         // this.getTime('是否通过该条费用?',this.ceshi(),'通过') 
         // this.randomString()
         this.test();
@@ -300,6 +392,7 @@ export default {
     padding: 10px;
     box-shadow: 0 0 5px #0005;
     border-radius: 10px;
+    min-height: 840px;
 }
 
 .fesspage-head .el-form-item__label {
@@ -343,4 +436,7 @@ export default {
     margin-top: 10px;
     text-align: end;
 }
+.fesspage-box .el-table .cell{
+    text-align: center;
+}
 </style>

+ 150 - 17
src/components/Finance/Sendack.vue

@@ -13,15 +13,14 @@
                         </el-option>
                     </el-select>
                 </div>
-                <div class="sendack-head-li">
-                    <el-button @click="dialogFormVisible=true;" type="primary">新增数据</el-button>
+                <div v-if="addAuth=1" class="sendack-head-li">
+                    <el-button @click="addclick()" type="primary">新增数据</el-button>
                 </div>
             </div>
             <div class="sendack-info">
                 <div class="sendack-info-li">
                     <label>团 号:</label>
                     <span v-if="this.groupInfo.tourCode!=''">{{groupInfo=={}?'暂无':groupInfo.tourCode==""?'暂无':groupInfo.tourCode}}</span>
-                    <!-- <span>{{groupInfo?'暂无':groupInfo.tourCode}}</span> -->
                 </div>
                 <div class="sendack-info-li">
                     <label>客 户:</label>
@@ -77,10 +76,12 @@
                     <el-table-column label="操作" width="110">
                         <template slot-scope="scope">
                           <el-button
+                            v-if="scope.row.isAuditGM!=1"
                             type="text"
                             size="mini"
                             @click="Complete(scope.$index, scope.row)">编辑</el-button>
                             <el-button
+                            v-if="scope.row.isAuditGM!=1"
                             type="text"
                             size="mini"
                             @click="Delete(scope.$index, scope.row)"
@@ -90,6 +91,28 @@
                 </el-table>
             </template>
             <el-dialog width="900px" title="新增数据" :visible.sync="dialogFormVisible">
+                <div class="sendack-info">
+                    <div class="sendack-info-li">
+                        <label>团 号:</label>
+                        <span v-if="this.groupInfo.tourCode!=''">{{groupInfo=={}?'暂无':groupInfo.tourCode==""?'暂无':groupInfo.tourCode}}</span>
+                    </div>
+                    <div class="sendack-info-li">
+                        <label>客 户:</label>
+                        <span>{{groupInfo=={}?'暂无':groupInfo.clientName==""?'暂无':groupInfo.clientName}}</span>
+                    </div>
+                    <div class="sendack-info-li">
+                        <label>出访国家:</label>
+                        <span>{{groupInfo=={}?'暂无':groupInfo.visitCountry==""?'暂无':groupInfo.visitCountry}}</span>
+                    </div>
+                    <div class="sendack-info-li">
+                        <label>起止日期:</label>
+                        <span>{{groupInfo.visitStartDate|filter_time}}~{{groupInfo.visitEndDate|filter_time}}</span>
+                    </div>
+                    <div class="sendack-info-li">
+                        <label>天数/人数:</label>
+                        <span>{{groupInfo=={}?'暂无':groupInfo.visitDays+'天/'+groupInfo.visitPNumber+'人'}}</span>
+                    </div>
+                </div>
                 <el-form :model="form" :rules="rules" ref="form">
                     <div style="display: flex;flex-wrap:wrap;">
                         <el-form-item label="费用名称" prop="priceName" :label-width="formLabelWidth">
@@ -98,7 +121,10 @@
                         <el-form-item label="费用金额" prop="price" :label-width="formLabelWidth">
                             <el-input-number class="fyjeinput" :controls="false" :precision="2" v-model="form.price"></el-input-number>
                             <el-select filterable class="fyjeselect" v-model="form.currencyId" placeholder="请选择币种">
-                                <el-option v-for="(item,index) in currencyDatas" :key="index" :label="item.name" :value="item.id"></el-option>
+                                <el-option v-for="(item,index) in currencyDatas" :key="index" :label="item.currencyCode" :value="item.currencyId">
+                                    <span>{{item.currencyCode}}</span>
+                                    <span>{{item.currencyName}}</span>
+                                </el-option>
                             </el-select>
                         </el-form-item>
                         <el-form-item label="收款方" prop="payee" :label-width="formLabelWidth">
@@ -129,8 +155,8 @@
                     </el-form>
                     <div slot="footer" class="dialog-footer">
                     <el-button @click="dialogFormVisible = false">取 消</el-button>
-                    <el-button type="primary" @click="submitForm('form','保存')">确 定</el-button>
-                    <el-button type="primary" @click="submitForm('form','修改')">修 改</el-button>
+                    <el-button v-if="identify" type="primary" @click="submitForm('form','保存')">确 定</el-button>
+                    <el-button v-if="revise" type="primary" @click="submitForm('form','修改')">修 改</el-button>
                     </div>
               </el-dialog>
         </div>
@@ -140,6 +166,8 @@
 export default {
     data() {
         return {
+            cTable:0,
+            addAuth:1,
             userid:'',
             value:'',
             options:[],
@@ -189,6 +217,8 @@ export default {
             payTypeDatas:[],
             priceTypeDatas:[],
             orbitalPrivateTransferDatas:[],
+            identify:false,
+            revise:false,
         }
     },
     methods:{
@@ -213,6 +243,7 @@ export default {
                     that.value=res.data.data.groupNameData[0].id;
                     that.PostShareGroupInfo();
                     that.PostPaymentRefundAndOtherMoneyItemByDiId();
+                    that.PostGroupTeamRateByDiIdAndCTableId()
                 }else{
                     that.$message.error('获取数据源失败!');
                 }
@@ -234,7 +265,6 @@ export default {
             }).then(function (res) {
                 console.log(res)
                 if(res.data.code==200){
-                    that.currencyDatas=res.data.data.currencyDatas;
                     that.payTypeDatas=res.data.data.payTypeDatas;
                     that.priceTypeDatas=res.data.data.priceTypeDatas;
                     that.orbitalPrivateTransferDatas=res.data.data.orbitalPrivateTransferDatas;
@@ -243,6 +273,62 @@ export default {
                 }
             })
         },
+        //获取Ctable
+        PostPageLinkCTable(){
+            var url = "/api/Business/PostPageLinkCTable"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    pageId: that.pageId,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                   that.cTable=res.data.data.cTable
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
+        //获取币种数据源
+        PostGroupTeamRateByDiIdAndCTableId(){
+            console.log(this.value)
+            var url = "/api/Business/PostGroupTeamRateByDiIdAndCTableId"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType: 1,
+                    diId: that.value,
+                    cTable:that.cTable
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.currencyDatas=res.data.data.teamRates;
+                    if(res.data.data.teamRates.length==0){
+                        that.$notify({
+                            title: '警告',
+                            message: '此团组其他款项未设置币种及汇率,请前往团组汇率设置!',
+                            type: 'warning',
+                            duration:0
+                        });
+                    }
+                    that.form.currencyId=res.data.data.teamRates[0].currencyId
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
         //获取团组详情
         PostShareGroupInfo(){
             var url = "/api/Business/PostShareGroupInfo"
@@ -285,7 +371,8 @@ export default {
             }).then(function (res) {
                 console.log(res)
                 if(res.data.code==200){
-                    that.groupsendData=res.data.data.data
+                    that.groupsendData=res.data.data.data;
+                    that.addAuth=res.data.data.pageFuncAuth.addAuth;
                 }else{
                     that.$message.error('获取数据源失败!');
                 }
@@ -293,14 +380,14 @@ export default {
         },
         //保存修改
         submitForm(formName,text) {
+            console.log(this.form.currencyId)
+            console.log(this.currencyDatas)
             this.$refs[formName].validate((valid) => {
             if (valid) {
                 var status
-                var id
-                var ccpId
                 for(var i=0;i<this.currencyDatas.length;i++){
-                    if(this.currencyDatas[i].id==this.form.currencyId){
-                        this.form.currencyCode=this.currencyDatas[i].name
+                    if(this.currencyDatas[i].currencyId==this.form.currencyId){
+                        this.form.currencyCode=this.currencyDatas[i].currencyCode
                     }
                 }
                 if(text=='保存'){
@@ -324,6 +411,7 @@ export default {
             var that = this
             var data={
                     portType:1,
+                    pageId:Number(that.pageId),
                     userId:that.userid,
                     status:status,//1 添加 2 修改
                     diId:that.value,
@@ -331,7 +419,7 @@ export default {
                     ccpId:that.form.ccpId,
                     priceName:that.form.priceName,
                     price:that.form.price,
-                    currencyId:that.form.price,
+                    currencyId:that.form.currencyId,
                     currencyCode:that.form.currencyCode,
                     payee:that.form.payee,
                     payDId:that.form.payDId,
@@ -349,6 +437,7 @@ export default {
                 },
                 data:{
                     portType:1,
+                    pageId:that.pageId,
                     userId:that.userid,
                     status:status,//1 添加 2 修改
                     diId:that.value,
@@ -372,6 +461,8 @@ export default {
                         message: res.data.msg,
                         type: 'success'
                     });
+                    that.dialogFormVisible=false
+                    that.PostPaymentRefundAndOtherMoneyItemByDiId()
                 }else{
                     that.$message.error(res.data.msg);
                 }
@@ -384,6 +475,8 @@ export default {
                     this.$refs['form'].clearValidate();
                 })
             }
+            this.identify=false;
+            this.revise=true;
             //弹框
             this.dialogFormVisible=true;
             //初始化数据
@@ -417,7 +510,7 @@ export default {
             }).then(function (res) {
                 console.log(res)
                 if(res.data.code==200){
-                    formobject=res.data.data[0];
+                    formobject=res.data.data;
                     that.form.id=formobject.id;
                     that.form.ccpId=formobject.ccpId;
                     that.form.priceName=formobject.priceName;
@@ -441,7 +534,7 @@ export default {
                 cancelButtonText: '取消',
                 type: 'warning'
             }).then(() => {
-                var url = "/api/Financial/PostPaymentRefundAndOtherMoneyItemByDiId"
+                var url = "/api/Financial/PostPaymentRefundAndOtherMoneyDel"
                 var that = this
                 this.$axios({
                     method: 'post',
@@ -451,6 +544,8 @@ export default {
                     },
                     data:{
                         portType:1,
+                        userId:that.userid,
+                        pageId:that.pageId,
                         id: row.id
                     }
                 }).then(function (res) {
@@ -462,12 +557,40 @@ export default {
                         });
                         that.PostPaymentRefundAndOtherMoneyItemByDiId()
                     }else{
-                        that.$message.error('获取数据源失败!');
+                        that.$notify({
+                            title: '警告',
+                            message: res.data.msg,
+                            type: 'warning',
+                            duration:0
+                        });
+                        // that.$message.error(res.data.msg);
                     }
                 })
             })
         },
+        //新增
+        addclick(){
+            this.revise=false;
+            this.identify=true;
+            this.form={
+                id:0,
+                ccpId:0,
+                priceName:'',//费用名称
+                price:0,//费用
+                currencyId:807,//币种Id
+                currencyCode:'',//币种Code
+                payee:'',//收款方
+                payDId:72,//支付方式Id
+                orbitalPrivateTransfer:0,//费用标识
+                consumptionPatterns:'',//消费方式
+                payType:0,//费用类型 0 其他 1 退多付款
+                remark:'',//备注
+            }
+            this.dialogFormVisible=true;
+            this.PostGroupTeamRateByDiIdAndCTableId()
+        },
         changediid(){
+            console.log(this.value)
             this.PostShareGroupInfo();
             this.PostPaymentRefundAndOtherMoneyItemByDiId();
         }
@@ -486,10 +609,13 @@ export default {
     },
     mounted(){
         this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
-        this.pageId=localStorage.getItem('indexs').split('-')[1];//页面id
+        this.pageId=Number(localStorage.getItem('indexs').split('-')[1]);//页面id
         console.log(this.pageId)
+        this.PostPageLinkCTable();
         this.GetForeignReceivablesDataSources();
         this.PostPaymentRefundAndOtherMoneyInfoDataSource();
+        // setTimeout(this.PostGroupTeamRateByDiIdAndCTableId(), 3000);
+        // this.PostGroupTeamRateByDiIdAndCTableId();
     }
 }
 </script>
@@ -546,4 +672,11 @@ export default {
 .sendack-all .fyjeselect input{
     width: 100%;
 }
+.sendack-all .el-dialog__body{
+    padding-top: 10px;
+}
+.el-dialog__body .sendack-info{
+    margin-left: 25px;
+    margin-bottom: 20px;
+}
 </style>

+ 271 - 0
src/components/statistics/Groupreports.vue

@@ -0,0 +1,271 @@
+<template>
+    <div v-loading="fullscreenLoading">
+        <div class="reports-list">
+            <div class="reports-title">
+                <div>团组列表</div>
+                <div class="reports-box">
+                    <el-select v-model="value" clearable placeholder="请选择" @change="filterStatus(value)">
+                        <el-option
+                        v-for="item in options"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value">
+                        </el-option>
+                    </el-select>
+                    <el-input
+                    style="width:200px;"
+
+                    placeholder="请输入查询内容"
+                    v-model="input"
+                    clearable>
+                    </el-input>
+                    <el-button 
+                    type="primary"
+                    size=""
+                    title="查看费用清单"
+                    @click="Inquireclick()">查 询</el-button>
+                </div>
+            </div>
+            <template>
+                <el-table
+                :data="groupDatas"
+                border
+                style="width: 100%">
+                    <el-table-column
+                        prop="num"
+                        label="序 号"
+                        width="55">
+                        <template slot-scope="scope">
+                            {{(currentPage - 1) * pageSize + scope.$index + 1}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        width="100" 
+                        prop="isSure"
+                        :formatter="zhuangtai"
+                        label="团组状态">
+                    </el-table-column>
+                    <el-table-column
+                        prop="tourCode"
+                        width="100"
+                        label="团 号">
+                    </el-table-column>
+                    <el-table-column
+                        prop="teamLev"
+                        label="级 别"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="teamName"
+                        label="团队名称"
+                        >
+                    </el-table-column>
+                    <el-table-column
+                        prop="clientName"
+                        label="客户名称"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column
+                        prop="clientUnit"
+                        label="客户单位">
+                    </el-table-column>
+                    <el-table-column
+                        prop="teamType"
+                        label="团组类型"
+                        width="90">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitDate"
+                        :formatter="filteryear"
+                        label="出访时间"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitDays"
+                        label="出访天数"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitPNumber"
+                        label="出访人数"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="jietuanOperator"
+                        label="接团操作人"
+                        width="110">
+                    </el-table-column>
+                    <el-table-column
+                        prop="lastCollectionTime"
+                        :formatter="filteryear"
+                        label="收款时间"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                          <el-button Inquireclick
+                            type="primary"
+                            size="mini"
+                            title="查看费用清单"
+                            @click="handleView(scope.$index, scope.row)">查看费用清单</el-button>
+                        </template>
+                      </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' 
+                    @size-change="handleSizeChange" 
+                    @current-change="handleCurrentChange"
+                    :current-page="currentPage" 
+                    :page-sizes="[10,12,15,20]" 
+                    :page-size="pageSize" 
+                    layout="total, sizes, prev, pager, next" 
+                    :total="count">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            pageId:0,
+            options: [
+                {
+                    value: '-1',
+                    label: '全部'
+                }, {
+                    value: '0',
+                    label: '已完成'
+                }, {
+                    value: '1',
+                    label: '未完成'
+                }
+            ],
+            value: '-1',
+            groupDatas:[],
+            groupData: [],
+            groupDatass:[],
+            currentPage: 1, // 当前页码
+            pageSize: 10 ,// 每页的数据条数
+            count:0,//总数
+            input:'',
+            token:'',
+            fullscreenLoading:false,
+            userid:''
+        }
+    },
+    methods:{
+        //分页api
+        PostGroupPageList(){
+            var url = "/api/Statistics"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    pageId:that.pageId,
+                    userId:that.userid,
+                    pageIndex: that.currentPage,
+                    pageSize: that.pageSize,
+                    isSure: that.value,
+                    searchCriteria: that.input,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.data.code == 200) {
+                    that.groupDatas=res.data.data.data
+                    that.count=res.data.count
+                }
+                console.log(that.count)
+            })
+        },
+         //每页条数改变时触发 选择一页显示多少行
+         handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+            this.PostGroupPageList();
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+            this.PostGroupPageList();
+        },
+        //查看费用申请
+        handleView(index, row) {
+            this.$router.push({path: '/home/FeesPage?id=' + row.id +''});
+        },
+        //模糊查询
+        Inquireclick(){
+            this.currentPage=1;
+            this.PostGroupPageList()
+        },
+        //处理时间
+        filteryear(val){
+            let gstime=val.visitDate.split(' ')[0]
+            return gstime;
+        },
+        zhuangtai(val){
+            console.log(val)
+            if(val.isSure==1){
+                return '未完成'
+            }
+            if(val.isSure==0){
+                return '已完成'
+            }
+        },
+        //筛选状态
+        filterStatus(){
+            this.currentPage=1;
+            this.PostGroupPageList();
+        },
+    },
+    mounted(){
+        this.token=JSON.parse(localStorage.getItem('userinif')).token;
+        this.pageId=Number(localStorage.getItem('indexs').split('-')[1]);//页面id
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.PostGroupPageList();
+    }
+}
+</script>
+<style>
+    .reports-list{
+        background-color: #fff;
+        padding: 10px;
+        box-shadow: 0 0 5px #0005;
+        border-radius: 10px;
+        min-height: 840px;
+    }
+    .reports-list .block{
+        margin-top: 10px;
+    }
+    .reports-title{
+        display: flex;
+        font-size: 17px;
+        font-weight:600 ;
+        color: #555;
+        margin-top: 8px;
+        margin-bottom: 2px;
+        justify-content: space-between;
+        align-items: center;
+        margin-bottom: 10px;
+    }
+    .reports-box{
+        display: flex;
+    }
+    .reports-box>button{
+        margin-left: 10px;
+        padding: 8px 20px;
+    }
+    .reports-list .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
+        text-align: center;
+    }
+    .reports-box>.el-input{
+        margin-left: 10px;
+    }
+</style>

+ 13 - 0
src/components/statistics/Reportstbale.vue

@@ -0,0 +1,13 @@
+<template>
+    <div>
+        
+    </div>
+</template>
+<script>
+export default {
+    
+}
+</script>
+<style>
+    
+</style>

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

@@ -459,7 +459,7 @@
                     </div>
                     <div class="remark-box">
                         <el-form-item label="备注" :label-width="formLabelWidth">
-                            <el-input :rows="8" type="textarea" v-model="salaryinif.remark"></el-input>
+                            <el-input :rows="6" type="textarea" v-model="salaryinif.remark"></el-input>
                         </el-form-item>
                     </div>
                 </el-form>

+ 7 - 1
src/router/index.js

@@ -89,10 +89,12 @@ import PayReceived from '@/components/Finance/PayReceived';
 import LncomingBills from '@/components/Finance/LncomingBills';
 import GroupStatus from '@/components/Finance/GroupStatus';
 import Sendack from '@/components/Finance/Sendack';
+import Groupreports from '@/components/statistics/Groupreports';
 import Customers from '@/components/OP/Customers';
 import OpCustomers from '@/components/OP/OpCustomers';
 
 
+
 Vue.use(Router)
 
 export default new Router({
@@ -525,6 +527,11 @@ export default new Router({
           name: 'Sendack',
           component: Sendack
         },
+        {
+          path: '/home/Groupreports',
+          name: 'Groupreports',
+          component: Groupreports
+        },
         {
           path: '/home/Customers',
           name: 'Customers',
@@ -535,7 +542,6 @@ export default new Router({
           name: 'OpCustomers',
           component: OpCustomers
         },
-
       ]
     },
     {