浏览代码

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

yuanrf 1 年之前
父节点
当前提交
6f7d68d55e

+ 1 - 1
src/components/Enroll.vue

@@ -393,7 +393,7 @@ export default {
         createUserId:0,
         cnName:that.ruleForm.mandarinName,
         enName:that.ruleForm.eflName,
-        email:that.ruleForm.email,
+        email:that.ruleForm.email+'@pan-american-intl.com',
         sex:that.sxechuli(that.ruleForm.sex),
         phone:that.ruleForm.phone,
         urgencyPhone:that.ruleForm.urgentphone,

+ 48 - 151
src/components/Finance/ExpenseReview.vue

@@ -14,16 +14,21 @@
                     </el-select>
                     <el-input
                     style="width:200px;"
-                    @input="Inquireclick()"
+
                     placeholder="请输入查询内容"
                     v-model="input"
                     clearable>
                     </el-input>
+                    <el-button 
+                    type="primary"
+                    size=""
+                    title="查看费用清单"
+                    @click="Inquireclick()">查 询</el-button>
                 </div>
             </div>
             <template>
                 <el-table
-                :data="groupDatas.slice((currentPage-1)*pageSize,currentPage*pageSize)"
+                :data="groupDatas"
                 border
                 style="width: 100%">
                     <el-table-column
@@ -91,7 +96,7 @@
                     </el-table-column>
                     <el-table-column label="操作">
                         <template slot-scope="scope">
-                          <el-button
+                          <el-button Inquireclick
                             type="primary"
                             size="mini"
                             title="查看费用清单"
@@ -108,7 +113,7 @@
                     :page-sizes="[10,12,15,20]" 
                     :page-size="pageSize" 
                     layout="total, sizes, prev, pager, next" 
-                    :total="groupDatas.length">
+                    :total="count">
                 </el-pagination>
             </div>
         </div>
@@ -120,22 +125,23 @@ export default {
         return {
             options: [
                 {
-                    value: '0',
+                    value: '-1',
                     label: '全部'
                 }, {
-                    value: '1',
+                    value: '0',
                     label: '已完成'
                 }, {
-                    value: '2',
+                    value: '1',
                     label: '未完成'
                 }
             ],
-            value: '0',
+            value: '-1',
             groupDatas:[],
             groupData: [],
             groupDatass:[],
             currentPage: 1, // 当前页码
-            pageSize: 12 ,// 每页的数据条数
+            pageSize: 10 ,// 每页的数据条数
+            count:0,//总数
             input:'',
             token:'',
             fullscreenLoading:false,
@@ -143,14 +149,42 @@ export default {
         }
     },
     methods:{
+        //分页api
+        PostGroupPageList(){
+            var url = "/api/Groups/PostGroupPageList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    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
+                    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) {
@@ -158,106 +192,8 @@ export default {
         },
         //模糊查询
         Inquireclick(){
-            var newarr=[];
-            if(this.input==""){
-                if(this.value=="0"){
-                    newarr=this.groupData;
-                }else{
-                    newarr=this.groupDatass;
-                }
-            }else{
-                for(var i=0;i<this.groupDatas.length;i++){
-                    if(this.groupDatas[i].clientName.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].clientUnit.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].jietuanOperator.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].salesQuoteNo.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].teamLev.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].teamName.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].teamType.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].tourCode.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }else if(this.groupDatas[i].visitDate.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                }
-            }
             this.currentPage=1;
-            this.groupDatas=newarr;
-        },
-        //获取列表
-        Grouplist(){
-            var url="/api/Groups/GetGroupList"
-            var that=this
-            that.fullscreenLoading = true;
-            this.$axios({
-                method: 'post',
-                url:url,
-                headers:{
-                    Authorization:'Bearer '+this.token
-                },
-                data:{
-                    portType: 1,
-                }
-            }).then(function(res){
-                if(res.data.code==200){
-                    that.groupData=res.data.data
-                    that.groupData.forEach(item=>{
-                        if(item.clientName==null){
-                            item.clientName = ''
-                        } 
-                        if(item.clientUnit==null){
-                            item.clientUnit = ''
-                        } 
-                        if(item.id==null){
-                            item.id = ''
-                        } 
-                        if(item.isSure==null){
-                            item.isSure = ''
-                        } 
-                        if(item.jietuanOperator==null){
-                            item.jietuanOperator = ''
-                        } 
-                        if(item.salesQuoteNo==null){
-                            item.salesQuoteNo = ''
-                        } 
-                        if(item.teamName==null){
-                            item.teamName = ''
-                        } 
-                        if(item.teamType==null){
-                            item.teamType = ''
-                        } 
-                        if(item.tourCode==null){
-                            item.tourCode = ''
-                        } 
-                        if(item.visitDate==null){
-                            item.visitDate = ''
-                        } 
-                        if(item.visitDays==null){
-                            item.visitDays = ''
-                        } 
-                        if(item.visitPNumber==null){
-                            item.visitPNumber = ''
-                        } 
-                    })
-                    that.groupDatas=that.groupData;
-                    console.log(that.groupData)
-                    that.fullscreenLoading = false;
-                }
-            })
+            this.PostGroupPageList()
         },
         //处理时间
         filteryear(val){
@@ -265,54 +201,15 @@ export default {
             return gstime;
         },
         //筛选状态
-        filterStatus(val){
-            var newgroup=[];
-            if(this.input==""){
-                if(val=="0"||val==""){
-                    newgroup=this.groupData;
-                }else if(val=="1"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==1){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }else if(val=="2"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==0){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }
-                this.currentPage=1;
-                this.groupDatas=newgroup
-                this.groupDatass=newgroup 
-            }else{
-                if(val=="0"||val==""){
-                    newgroup=this.groupData
-                }else if(val=="1"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==1){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }else if(val=="2"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==0){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }
-                this.currentPage=1;
-                this.groupDatas=newgroup
-                this.groupDatass=newgroup 
-                this.Inquireclick()
-            }
+        filterStatus(){
+            this.currentPage=1;
+            this.PostGroupPageList();
         },
     },
     mounted(){
         this.token=JSON.parse(localStorage.getItem('userinif')).token;
         this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
-        this.Grouplist();
+        this.PostGroupPageList();
     }
 }
 </script>

+ 274 - 0
src/components/Finance/GroupStatus.vue

@@ -0,0 +1,274 @@
+<template>
+    <div>
+        <div class="groupstatus-all">
+            <div class="groupstatus-box">
+                <div>
+                    <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 @click="Inquireclick()" type="primary">查 询</el-button>
+                </div>
+            </div>
+            <div class="groupstatus-title">
+                <div>团组列表</div>
+            </div>
+            <template>
+                <el-table
+                :data="groupData"
+                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
+                        prop="tourCode"
+                        width="100"
+                        label="团 号">
+                    </el-table-column>
+                    <el-table-column
+                        width="100" 
+                        prop="salesQuoteNo"
+                        label="销售报价号">
+                    </el-table-column>
+                    <el-table-column
+                        prop="teamType"
+                        label="团组类型"
+                        width="150">
+                    </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="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 label="操作" width="110">
+                        <template slot-scope="scope">
+                          <el-button
+                            v-if="scope.row.isSure=0"
+                            type="primary"
+                            size="mini"
+                            @click="Complete(scope.$index, scope.row)">操作完成</el-button>
+                            <el-button
+                            v-if="scope.row.isSure=1"
+                            type="primary"
+                            size="mini"
+                           >已完成</el-button>
+                          <!-- <el-button
+                            size="mini"
+                            title="删除"
+                            type="danger"
+                            @click="handleDelete(scope.$index, scope.row,groupDatas)"><i class="el-icon-delete"></i></el-button>
+                            <el-button v-if="scope.row.tourCode==''" size="mini" title="确认出团" type="primary" @click="confirmDeparture(scope.$index, scope.row)"><i class="el-icon-check"></i></el-button>
+                            <el-button
+                            v-if="scope.row.tourCode!=''"
+                            size="mini"
+                            title="已出团"
+                            ><i class="el-icon-check"></i></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>
+import { el } from '@fullcalendar/core/internal-common'
+export default {
+    data() {
+        return {
+            token:'',
+            userid:'',
+            value:'-1',
+            options: [
+                {
+                    value: '-1',
+                    label: '全部'
+                }, {
+                    value: '0',
+                    label: '未完成'
+                }, {
+                    value: '1',
+                    label: '已完成'
+                }
+            ],
+            groupData:[],
+            count:0,//总条数
+            currentPage: 1, // 当前页码
+            pageSize: 10 ,// 每页的数据条数
+            input:'',
+        }
+    },
+    methods:{
+        //分页api
+        PostGroupStatusPageList(){
+            var url = "/api/Groups/PostGroupStatusPageList"
+            var that = this
+            console.log(that.value)
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    pageIndex: that.currentPage,
+                    pageSize: that.pageSize,
+                    isSure: that.value,
+                    searchCriteria: that.input,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.data.code == 200) {
+                    that.groupData=res.data.data
+                    console.log(that.groupData)
+                    
+                    that.count=res.data.count
+                }else{
+
+                }
+            })
+        },
+         //每页条数改变时触发 选择一页显示多少行
+         handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+            this.PostGroupStatusPageList()
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+            this.PostGroupStatusPageList()
+        },
+        filteryear(val){
+            let gstime=val.visitDate.split(' ')[0]
+            return gstime;
+        },
+        //模糊查询
+        Inquireclick(){
+            this.currentPage=1;
+            this.PostGroupStatusPageList()
+        },
+        //筛选状态
+        filterStatus(){
+            this.currentPage=1;
+            this.PostGroupStatusPageList();
+        },
+        //操作完成
+        Complete(index, row){
+            console.log(index, row.id)
+            var url = "/api/Groups/PostGroupStatusSetOperationComplete"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    id:row.id
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    console.log(res)
+                    that.$message({
+                        message: '操作成功',
+                        type: 'success'
+                    });
+                    that.PostGroupStatusPageList();
+                }else{
+                    that.$message.error('操作失败');
+                }
+            })
+        }
+    },
+    mounted(){
+        this.token=JSON.parse(localStorage.getItem('userinif')).token;
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.PostGroupStatusPageList();
+    }
+}
+</script>
+<style>
+.groupstatus-all{
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    height: 100%;
+    min-height: 840px;
+}
+.groupstatus-title{
+    display: flex;
+    font-size: 17px;
+    font-weight:600 ;
+    color: #555;
+    margin-top: 10px;
+    margin-bottom: 8px;
+    justify-content: space-between;
+    align-items: center;
+}
+.groupstatus-box{
+    display: flex;
+    justify-content: space-between;
+}
+.groupstatus-all .block{
+    margin-top: 10px;
+}
+</style>

+ 407 - 0
src/components/Finance/LncomingBills.vue

@@ -0,0 +1,407 @@
+<template>
+    <div>
+        <div class="lncomingbill-all">
+            <div class="lncomingbill-head">
+                <div class="lncomingbill-head-li">
+                    <label>团组名称:</label>
+                    <el-select @change="changediid()" v-model="value" filterable placeholder="请选择">
+                        <el-option
+                        v-for="item in options"
+                        :key="item.id"
+                        :label="item.groupName"
+                        :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="lncomingbill-head-li">
+                    <el-button @click="Saveition()" type="primary">保存数据</el-button>
+                    <el-button type="primary">生成收款单(四川)</el-button>
+                    <el-button type="primary">生成收款单(北京)</el-button>
+                    <el-button type="primary">汇款账单</el-button>
+                </div>
+            </div>
+            <div class="lncomingbill-info">
+                <div class="lncomingbill-info-li">
+                    <label>团 号:</label>
+                    <span>{{groupInfo.tourCode}}</span>
+                </div>
+                <div class="lncomingbill-info-li">
+                    <label>客 户:</label>
+                    <span>{{groupInfo.clientName}}</span>
+                </div>
+                <div class="lncomingbill-info-li">
+                    <label>出访国家:</label>
+                    <span>{{groupInfo.visitCountry|filter_city}}</span>
+                </div>
+                <div class="lncomingbill-info-li">
+                    <label>起止日期:</label>
+                    <span>{{groupInfo.tontractTime|filter_time}}~{{groupInfo.visitDate|filter_time}}</span>
+                </div>
+                <div class="lncomingbill-info-li">
+                    <label>天数/人数:</label>
+                    <span>{{groupInfo.visitDays}}天/{{groupInfo.visitPNumber}}人</span>
+                </div>
+            </div>
+            <div class="lncomingbill-checked">
+                <div class="checked-label">收款账单</div>
+                <el-button @click="addition" type="primary">添加一行</el-button>
+            </div>
+            <div class="lncomingbill-form">
+                <el-table
+                :border="true"
+                ref="multipleTable"
+                :data="tableData"
+                style="width: 100%;"
+                >
+                    <el-table-column
+                    prop="addingModeName"
+                    label="增加方式"
+                    width="100">
+                    </el-table-column>
+                    <el-table-column
+                    prop="createTime"
+                    label="时间"
+                    width="100">
+                    </el-table-column>
+                    <el-table-column
+                    label="费用名称"
+                    width="240">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.priceName"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="单 价"
+                    width="140">
+                        <template slot-scope="scope">
+                            <el-input-number :controls="false" :precision="2" class="editNum" v-model="scope.row.price"></el-input-number>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="数 量"
+                    width="80">
+                        <template slot-scope="scope">
+                            <el-input  v-model="scope.row.count"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="单 位"
+                    width="90">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.unit"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="币 种"
+                    width="100">
+                        <template slot-scope="scope">
+                            <el-select v-model="scope.row.currency">
+                                <el-option
+                                        v-for="item in currencyoptions"
+                                        :key="item.id"
+                                        :label="item.name"
+                                        :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="汇 率"
+                    width="100">
+                        <template slot-scope="scope">
+                            <el-input-number  :controls="false" :precision="2" v-model="scope.row.rate"></el-input-number>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="应收金额"
+                    width="120">
+                    <template slot-scope="scope">
+                        <div class="sub-box">{{scope.row.itemSumPrice=(scope.row.price*scope.row.count*scope.row.rate).toFixed(2)}}</div>
+                    </template>
+                    </el-table-column>
+                    <el-table-column    
+                    prop="remark"
+                    label="备注">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.remark" placeholder="请输入内容"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    prop="name"
+                    label="操 作"
+                    width="100">
+                        <template slot-scope="scope">
+                            <el-button
+                            size="mini"
+                            type="danger"
+                            @click="handleDelete(scope.$index, scope.row,tableData)"><i class="el-icon-delete"></i></el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            userid:'',
+            value:"",
+            options:[],
+            tableData:[
+                {
+                    addingModeName:"",
+                    createTime:"",
+                    priceName:"",
+                    price:"",
+                    count:"",
+                    unit:"",
+                    currency:"",
+                    rate:"",
+                    itemSumPrice:"",
+                    remark:"",
+                }
+            ],
+            currencyoptions:[],
+            groupInfo:{},
+
+        }
+    },
+    methods:{
+        //获取团组
+        GetForeignReceivablesDataSources(){
+            var url = "/api/Financial/GetForeignReceivablesDataSources"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+            }).then(function (res) {
+                console.log(res)
+                that.options=res.data.data.groupNameData;
+                that.currencyoptions=res.data.data.currencyData;
+                that.typeoptions=res.data.data.remittanceMethodData;
+                that.value=res.data.data.groupNameData[0].id;
+                that.PostGroupReceivablesInfoByDiId();
+            })
+        },
+        //获取收款账单详情
+        PostGroupReceivablesInfoByDiId(){
+            var url = "/api/Financial/PostGroupReceivablesInfoByDiId"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType: 1,
+                    diId: that.value
+                }
+            }).then(function (res) {
+                console.log(res)
+                that.tableData=res.data.data.groupCollectionStatementData
+                that.groupInfo=res.data.data.groupInfo
+            })
+        },
+        //切换团组
+        changediid(){
+            this.PostGroupReceivablesInfoByDiId()
+        },
+        //添加一行
+        addition(){
+            var newinif={
+                id: 0,
+                priceName: "",//费用名称
+                price: 0,//费用
+                count: 0,//数量
+                unit:'',//单位
+                itemSumPrice:0,// 单项总和
+                rate:1,// 汇率
+                currency:836,//币种
+                addingWay:0,//添加方式
+                remark:""//备注
+            }
+            var url = "/api/Financial/PostReceivablesOperate"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    portType: 1,
+                    diId: that.value,
+                    userId:that.userid,
+                    foreignReceivablesInfos:[newinif]
+                }
+            }).then(function (res) {
+                if(res.data.code==200){
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'success'
+                    });
+                    console.log(res)
+                    that.PostGroupReceivablesInfoByDiId()
+                }else{
+                    that.$message.error('添加失败!数据异常');
+                }
+            })
+        },
+        //对外收款账单删除
+        handleDelete(index, row,rows) {
+            this.$confirm('此操作将删除此条数据,是否确认删除?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Financial/PostGroupReceivablesDel"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data:{
+                        userId:that.userid,
+                        id:row.id
+                    }
+                }).then(function (res) {
+                    if(res.data.code==200){
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success'
+                        });
+                        rows.splice(index, 1);
+                    }else{
+                        that.$message.error('删除失败!数据异常');
+                    }
+                })
+            })
+        },
+        //保存收款单
+        Saveition(){
+            console.log(this.tableData)
+            //提取参数
+            var arrnew = this.tableData.map((item,index) => {
+                return Object.assign({},{
+                    'id':item.id,
+                    'priceName':item.priceName,
+                    'price':item.price,
+                    'count':item.count,
+                    'unit':item.unit,
+                    'itemSumPrice':item.itemSumPrice,
+                    'rate':item.rate,
+                    'currency':item.currency,
+                    'addingWay':item.addingWay,
+                    'remark':item.remark,
+                })
+            })
+            console.log(arrnew)
+            var Savedecides=true
+            for(let g=0;g<arrnew.length;g++){
+                if(arrnew[g].count==""||arrnew[g].currency==""||arrnew[g].itemSumPrice==""||arrnew[g].price==""||arrnew[g].priceName==""||arrnew[g].rate==""||arrnew[g].unit==""){
+                    Savedecides=false
+                    break
+                }
+            }
+            if(Savedecides==true){
+                var url = "/api/Financial/PostReceivablesOperate"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data:{
+                        portType: 1,
+                        diId: that.value,
+                        userId:that.userid,
+                        foreignReceivablesInfos:arrnew
+                    }
+                }).then(function (res) {
+                    if(res.data.code==200){
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success'
+                        });
+                        console.log(res)
+                        that.PostGroupReceivablesInfoByDiId()
+                    }else{
+                        that.$message.error('保存失败!数据异常');
+                    }
+                })
+            }else{
+                this.$message.error('请检查数据是否完整!');
+            }
+        },
+    },
+    mounted(){
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.GetForeignReceivablesDataSources();
+        
+    },
+    filters:{
+        filter_time(value){
+            return value;
+        },
+        filter_city(value){
+            return value
+        }
+    },
+}
+</script>
+<style>
+.lncomingbill-all{
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    height: 100%;
+    min-height: 840px;
+}
+.lncomingbill-head-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.lncomingbill-head{
+    display: flex;
+    justify-content: space-between;
+}
+.lncomingbill-info{
+    display: flex;
+    margin-top: 10px;
+}
+.lncomingbill-info-li{
+    margin-right: 30px;
+}
+.lncomingbill-info-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.lncomingbill-info-li span{
+    color: #606266;
+    font-size: 14px;
+}
+.lncomingbill-all .el-input-number{
+    width: 100%;
+}
+.lncomingbill-checked{
+    margin-top: 10px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+.lncomingbill-form{
+    margin-top: 10px;
+}
+</style>

+ 450 - 0
src/components/Finance/PayReceived.vue

@@ -0,0 +1,450 @@
+<template>
+    <div>
+        <div class="received-all">
+            <div class="received-head">
+                <div class="received-head-li">
+                    <label>团组名称:</label>
+                    <el-select @change="changediid()" v-model="value" filterable placeholder="请选择">
+                        <el-option
+                        v-for="item in options"
+                        :key="item.id"
+                        :label="item.groupName"
+                        :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="received-head-li">
+                    <el-button @click="ysSaveition()" type="primary">保存数据</el-button>
+                </div>
+            </div>
+            <div class="received-info">
+                <div class="received-info-li">
+                    <label>团 号:</label>
+                    <span v-if="this.groupInfo.tourCode!=''">{{groupInfo=={}?'暂无':groupInfo.tourCode==""?'暂无':groupInfo.tourCode}}</span>
+                    <!-- <span>{{groupInfo?'暂无':groupInfo.tourCode}}</span> -->
+                </div>
+                <div class="received-info-li">
+                    <label>客 户:</label>
+                    <span>{{groupInfo=={}?'暂无':groupInfo.clientName==""?'暂无':groupInfo.clientName}}</span>
+                </div>
+                <div class="received-info-li">
+                    <label>出访国家:</label>
+                    <span>{{groupInfo=={}?'暂无':groupInfo.visitCountry==""?'暂无':groupInfo.visitCountry}}</span>
+                </div>
+                <div class="received-info-li">
+                    <label>起止日期:</label>
+                    <span>{{groupInfo.visitStartDate|filter_time}}~{{groupInfo.visitEndDate|filter_time}}</span>
+                </div>
+                <div class="received-info-li">
+                    <label>天数/人数:</label>
+                    <span>{{groupInfo=={}?'暂无':groupInfo.visitDays+'天/'+groupInfo.visitPNumber+'人'}}</span>
+                </div>
+            </div>
+            <div class="received-checked">
+                <div class="received-checked-label">已收款项</div>
+                <el-button size="mini" @click="addUnassignedData()" type="primary">添加一行</el-button>
+            </div>
+            <div class="received-form">
+                <el-table
+                :border="true"
+                ref="multipleTable"
+                :data="UnassignedData"
+                tooltip-effect="dark"
+                style="width: 100%"
+                >
+                    <el-table-column
+                    label="付款时间"
+                    width="155">
+                        <template slot-scope="scope">
+                            <el-date-picker
+                            style="width: 100%;"
+                            v-model="scope.row.sectionTime"
+                            type="date"
+                            placeholder="选择日期">
+                            </el-date-picker>
+                            <!-- <el-input v-model="scope.row.sectionTime"></el-input> -->
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="付款方信息"
+                        >
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.client"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="付款方电话"
+                        width="150">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.customerTel"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="已收金额"
+                        width="120">
+                        <template slot-scope="scope">
+                            <el-input-number :controls="false" :precision="2" v-model="scope.row.price"></el-input-number>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="到款时间"
+                        width="155">
+                        <template slot-scope="scope">
+                            <el-date-picker
+                            style="width: 100%;"
+                            v-model="scope.row.customerName"
+                            type="date"
+                            placeholder="选择日期">
+                            </el-date-picker>
+                            <!-- <el-input v-model="scope.row.customerName"></el-input> -->
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="币种"
+                        width="100">
+                        <template slot-scope="scope">
+                            <el-select v-model="scope.row.currency">
+                                <el-option
+                                        v-for="item in currencyoptions"
+                                        :key="item.id"
+                                        :label="item.name"
+                                        :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="收款类型"
+                        width="140">
+                        <template slot-scope="scope">
+                            <el-select v-model="scope.row.receivablesType">
+                                <el-option
+                                        v-for="item in typeoptions"
+                                        :key="item.id"
+                                        :label="item.name"
+                                        :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="备注"
+                        width="260">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.remark"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="操作"
+                        width="80">
+                        <template slot-scope="scope">
+                            <el-button
+                            size="mini"
+                            type="danger"
+                            @click="yshandleDelete(scope.$index, scope.row,UnassignedData)"><i class="el-icon-delete"></i></el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            userid:'',
+            value:'',
+            options:[],
+            currencyoptions:[],
+            UnassignedData:[
+                {
+                    sectionTime:'',
+                    client:'',
+                    price:'',
+                    customerName:'',
+                    currency:'',
+                    receivablesType:'',
+                    remark:""
+                }
+            ],
+            typeoptions:[],
+            groupInfo:{
+                clientName:'',
+                id:'',
+                tourCode:'',
+                visitCountry:'',
+                visitDays:'',
+                visitEndDate:'',
+                visitPNumber:'',
+                visitStartDate:'',
+            },
+        }
+    },
+    methods:{
+        //获取团组
+        GetForeignReceivablesDataSources(){
+            var url = "/api/Financial/GetForeignReceivablesDataSources"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.options=res.data.data.groupNameData;
+                    that.currencyoptions=res.data.data.currencyData;
+                    that.typeoptions=res.data.data.remittanceMethodData;
+                    that.value=res.data.data.groupNameData[0].id;
+                    that.PostAmountReceived();
+                }
+            })
+        },
+        //获取账单详情
+        PostAmountReceived(){
+            var url = "/api/Financial/PostAmountReceived"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType: 1,
+                    diId: that.value
+                }
+            }).then(function (res) {
+                console.log(res)
+                that.UnassignedData=res.data.data
+                that.groupInfo=res.data.data.groupInfo
+                that.PostShareGroupInfo();
+            })
+        },
+        //获取团组详情
+        PostShareGroupInfo(){
+            console.log(this.value)
+            var url = "/api/Business/PostShareGroupInfo"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType: 1,
+                    id: that.value
+                }
+            }).then(function (res) {
+                console.log(res)
+                // that.UnassignedData=res.data.data
+                that.groupInfo=res.data.data
+                console.log(that.groupInfo)
+            })
+        },
+        //切换团组
+        changediid(){
+            this.PostAmountReceived()
+        },
+        //已收款项删除
+        yshandleDelete(index, row,rows) {
+            this.$confirm('此操作将删除此条数据,是否确认删除?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Financial/PostAmountReceived_Del"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data:{
+                        userId:that.userid,
+                        id:row.id
+                    }
+                }).then(function (res) {
+                    if(res.data.code==200){
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success'
+                        });
+                        rows.splice(index, 1);
+                    }else{
+                        that.$message.error('删除失败!数据异常');
+                    }
+                })
+            })
+        },
+        //添加一行
+        addUnassignedData(){
+            var newinif={
+                id: 0,
+                sectionTime: "",//费用名称
+                price: 0,//费用
+                currency:836,//币种
+                receivablesType:72,//收款类型
+                client:'',//收款单位
+                customerName:'',//收款单位 负责人 姓名
+                customerTel:'',//收款单位 负责人 电话号码
+                remark:""//备注
+            }
+            var url = "/api/Financial/PostAmountReceivedAddOrEdit"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    portType: 1,
+                    diId: that.value,
+                    userId:that.userid,
+                    _ProceedsReceivedInfos:[newinif]
+                }
+            }).then(function (res) {
+                if(res.data.code==200){
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'success'
+                    });
+                    console.log(res)
+                    that.PostAmountReceived()
+                }else{
+                    that.$message.error('添加失败!数据异常');
+                }
+            })
+        },
+        //保存已收款项
+        ysSaveition(){
+            console.log(this.UnassignedData)
+            //提取参数
+            var arrnew = this.UnassignedData.map((item,index) => {
+                return Object.assign({},{
+                    'id':item.id,
+                    'sectionTime':item.sectionTime,
+                    'price':item.price,
+                    'currency':item.currency,
+                    'receivablesType':item.receivablesType,
+                    'client':item.client,
+                    'customerName':item.customerName,
+                    'customerTel':item.customerTel,
+                    'remark':item.remark,
+                })
+            })
+            console.log(arrnew)
+            var Savedecides=true
+            for(let g=0;g<arrnew.length;g++){
+                if(arrnew[g].count==""||arrnew[g].currency==""||arrnew[g].itemSumPrice==""||arrnew[g].price==""||arrnew[g].priceName==""||arrnew[g].rate==""||arrnew[g].unit==""){
+                    Savedecides=false
+                    break
+                }
+            }
+            if(Savedecides==true){
+                var url = "/api/Financial/PostAmountReceivedAddOrEdit"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data:{
+                        portType: 1,
+                        diId: that.value,
+                        userId:that.userid,
+                        _ProceedsReceivedInfos:arrnew
+                    }
+                }).then(function (res) {
+                    if(res.data.code==200){
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success'
+                        });
+                        console.log(res)
+                        that.PostAmountReceived()
+                    }else{
+                        that.$message.error('保存失败!数据异常');
+                    }
+                })
+            }else{
+                this.$message.error('请检查数据是否完整!');
+            }
+        },
+    },
+    mounted(){
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.GetForeignReceivablesDataSources()
+    },
+    filters:{
+        filter_time(value){
+            if(value){
+                return value.split(' ')[0];
+            }
+            return value
+            
+        },
+        filter_city(value){
+            return value
+        }
+    },
+}
+</script>
+<style>
+.received-all{
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    height: 100%;
+    min-height: 840px;
+}
+.received-head-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.received-head{
+    display: flex;
+    justify-content: space-between;
+}
+.received-info{
+    display: flex;
+    margin-top: 10px;
+}
+.received-info-li{
+    margin-right: 30px;
+}
+.received-info-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.received-info-li span{
+    color: #606266;
+    font-size: 14px;
+}
+.received-all .el-input-number{
+    width: 100%;
+}
+.received-checked{
+    margin-top: 10px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+.received-checked-label{
+    font-size: 17px;
+    
+}
+.received-form{
+    margin-top: 10px;
+}
+</style>

+ 19 - 41
src/components/OP/CarTouristGuideGrounContent.vue

@@ -33,7 +33,7 @@
                 <span style="font-weight: bold;font-size:12px;">出访国家:</span>
                 <span style="color:#606266;font-size:12px;">{{ delegationInfo.visitCountry }}&nbsp;&nbsp;&nbsp;</span>
                 <span style="font-weight: bold;font-size:12px;">起止日期:</span>
-                <span style="color:#606266;font-size:12px;">{{ VisitDate }}&nbsp;&nbsp;&nbsp;</span>
+                <span style="color:#606266;font-size:12px;">{{ delegationInfo.visitDate }}&nbsp;&nbsp;&nbsp;</span>
                 <span style="font-weight: bold;font-size:12px;">天数/人数:</span>
                 <span style="color:#606266;font-size:12px;">{{ delegationInfo.visitDays }}天/{{
                     delegationInfo.visitPNumber }}人</span>
@@ -41,7 +41,7 @@
             <hr style='background-color:#5555; height:1px; border:none;' />
             <div>
                 <template>
-                    <el-table :data="ContenList" border style="width: 100%">
+                    <el-table :data="ContentList" border style="width: 100%">
                         <el-table-column prop="num" label="序 号" width="55">
                             <template slot-scope="scope">
                                 {{ scope.$index + 1 }}
@@ -91,7 +91,7 @@
                             </div>
                             <div style="width: 25%;">
                                 <el-form-item label="收款方:" prop="payee" label-width="160px">
-                                    <el-input placeholder="联系电话" v-model="OPContenData.payee">
+                                    <el-input placeholder="收款方" v-model="OPContenData.payee">
                                     </el-input>
                                 </el-form-item>
                             </div>
@@ -166,7 +166,7 @@ export default {
             tableInitialization: [],
             payment: [],
             IsAuditGM: 0,
-            ContenList: [],
+            ContentList: [],
             OPContenData: {
                 diId: '',
                 cTGGRId: '',
@@ -175,7 +175,7 @@ export default {
                 payee: '',
                 payDId: '',
                 currency: '',
-                OPContenList: [],
+                OPContentList: [],
                 CreateUserId: 0
             },
             OPContenDataRules: {
@@ -192,33 +192,13 @@ export default {
                     { required: true, message: '请选择付款方式', trigger: ['blur', 'change'] },
                 ]
             },
-            VisitDate: '',
-            dateFormat: function (value) {
-
-                // 将value转换为Date对象
-                var date = new Date(value);
-                // 获取年、月、日
-                var year = date.getFullYear();
-                var month = date.getMonth() + 1;
-                var day = date.getDate();
-                // 将月份和日期转换为两位数的格式
-
-                if (month < 10) {
-                    month = '0' + month;
-                }
-                if (day < 10) {
-                    day = '0' + day;
-                }
-                // 返回格式化后的日期字符串
-                return year + '-' + month + '-' + day;
-            },
         }
     },
     methods: {
         //初始化下拉框
         initializeSelect() {
             //团组下拉框绑定
-            var url = "/api/Groups/CarTouristGuideGroundContenInitialize"
+            var url = "/api/Groups/CarTouristGuideGroundContentInitialize"
             var that = this
             this.$axios({
                 method: 'post',
@@ -237,7 +217,7 @@ export default {
                         debugger
                         if (that.delegationInfoList[index].id == that.diId) {
                             that.delegationInfo = that.delegationInfoList[index];
-                            that.VisitDate = that.dateFormat(that.delegationInfo.visitStartDate) + '至' + that.dateFormat(that.delegationInfo.visitEndDate);
+
                             break;
                         }
                     }
@@ -245,7 +225,7 @@ export default {
                     debugger
                     that.tableInitialization = res.data.data.tableInitialization;
                     that.tableInitialization.forEach(function (item) {
-                        that.ContenList.push({
+                        that.ContentList.push({
                             id: 0,
                             sId: item.id,
                             sIdName: item.name,
@@ -262,7 +242,7 @@ export default {
 
         },
         OpCarTouristGuideGroundContenById() {
-            var url = "/api/Groups/OpCarTouristGuideGroundContenById"
+            var url = "/api/Groups/OpCarTouristGuideGroundContentById"
             var that = this
             this.$axios({
                 method: 'post',
@@ -283,11 +263,12 @@ export default {
                         that.currency = CreditCardPayment.paymentCurrency
                         that.OPContenData.payPercentage = CreditCardPayment.payPercentage
                         that.countCost = CreditCardPayment.payMoney
+                        that.OPContenData.orbitalPrivateTransfer = CreditCardPayment.orbitalPrivateTransfer
                     }
-                    var CarTouristsConten = res.data.data.carTouristsConten;
-                    if (CarTouristsConten.length != 0) {
-                        CarTouristsConten.forEach(function (item) {
-                            that.ContenList.forEach(function (item1) {
+                    var CarTouristsContent = res.data.data.carTouristsContent;
+                    if (CarTouristsContent.length != 0) {
+                        CarTouristsContent.forEach(function (item) {
+                            that.ContentList.forEach(function (item1) {
                                 if (item.sId == item1.sId) {
                                     item1.id = item.id
                                     item1.price = item.price
@@ -298,10 +279,7 @@ export default {
                             })
                         })
                     }
-                    var CarTourists = res.data.data.carTourists
-                    if (CarTourists != null) {
-                        that.OPContenData.orbitalPrivateTransfer = CarTourists.orbitalPrivateTransfer
-                    }
+
                     that.loading = false
                 }
             })
@@ -322,8 +300,8 @@ export default {
                             that.OPContenData.cTGGRId = that.id
                             that.OPContenData.currency = that.currency
                             that.OPContenData.CreateUserId = that.userId
-                            that.ContenList.forEach(function (item) {
-                                that.OPContenData.OPContenList.push({
+                            that.ContentList.forEach(function (item) {
+                                that.OPContenData.OPContentList.push({
                                     id: item.id,
                                     sId: item.sId,
                                     price: item.price,
@@ -332,7 +310,7 @@ export default {
                                 })
                             })
 
-                            var url = "/api/Groups/OpCarTouristGuideGroundConten"
+                            var url = "/api/Groups/OpCarTouristGuideGroundContent"
                             that.$axios({
                                 method: 'post',
                                 url: url,
@@ -368,7 +346,7 @@ export default {
         },
         PriceChange() {
             var countCost = 0;
-            this.ContenList.forEach(function (item) {
+            this.ContentList.forEach(function (item) {
                 if (item.price != '') {
                     countCost += parseFloat(item.price)
                 }

文件差异内容过多而无法显示
+ 965 - 188
src/components/OP/HotelReservations.vue


+ 50 - 153
src/components/OP/OPgroup.vue

@@ -1,9 +1,8 @@
 <template>
     <div v-loading="fullscreenLoading">
         <div class="group-list">
-            <div class="group-title">
-                <div>团组列表</div>
-                <div class="group-box">
+            <div class="group-box">
+                <div>
                     <el-select v-model="value" clearable placeholder="请选择" @change="filterStatus(value)">
                         <el-option
                         v-for="item in options"
@@ -14,17 +13,22 @@
                     </el-select>
                     <el-input
                     style="width:200px;"
-                    @input="Inquireclick()"
                     placeholder="请输入查询内容"
                     v-model="input"
                     clearable>
                     </el-input>
+                    <el-button @click="Inquireclick()" type="primary">查 询</el-button>
+                </div>
+                <div>
                     <el-button @click="addgroup()" type="primary">新增团组</el-button>
                 </div>
             </div>
+            <div class="group-title">
+                <div>团组列表</div>
+            </div>
             <template>
                 <el-table
-                :data="groupDatas.slice((currentPage-1)*pageSize,currentPage*pageSize)"
+                :data="groupDatas"
                 border
                 style="width: 100%">
                     <el-table-column
@@ -119,7 +123,7 @@
                     :page-sizes="[10,12,15,20]" 
                     :page-size="pageSize" 
                     layout="total, sizes, prev, pager, next" 
-                    :total="groupDatas.length">
+                    :total="count">
                 </el-pagination>
             </div>
         </div>
@@ -131,22 +135,23 @@ export default {
         return {
             options: [
                 {
-                    value: '0',
+                    value: '-1',
                     label: '全部'
                 }, {
-                    value: '1',
+                    value: '0',
                     label: '已完成'
                 }, {
-                    value: '2',
+                    value: '1',
                     label: '未完成'
                 }
             ],
-            value: '0',
+            value: '-1',
             groupDatas:[],
             groupData: [],
             groupDatass:[],
+            count:0,//总条数
             currentPage: 1, // 当前页码
-            pageSize: 12 ,// 每页的数据条数
+            pageSize: 10 ,// 每页的数据条数
             input:'',
             token:'',
             fullscreenLoading:false,
@@ -154,167 +159,58 @@ export default {
         }
     },
     methods:{
+        //分页api
+        PostGroupPageList(){
+            var url = "/api/Groups/PostGroupPageList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    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
+                    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()
         },
         Inquireclick(){
-            var newarr=[];
-            if(this.input==""){
-                if(this.value=="0"){
-                    newarr=this.groupData;
-                }else{
-                    newarr=this.groupDatass;
-                }
-            }else{
-                for(var i=0;i<this.groupDatas.length;i++){
-                    if(this.groupDatas[i].clientName.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].clientUnit.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].jietuanOperator.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].salesQuoteNo.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].teamLev.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].teamName.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].teamType.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                    else if(this.groupDatas[i].tourCode.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }else if(this.groupDatas[i].visitDate.indexOf(this.input)!=-1){
-                        newarr.push(this.groupDatas[i]);
-                    }
-                }
-            }
             this.currentPage=1;
-            this.groupDatas=newarr;
+            this.PostGroupPageList()
         },
         addgroup(){
             this.$router.push({path: '/home/Groupedit'});
         },
-        //
-        Grouplist(){
-            var url="/api/Groups/GetGroupList"
-            var that=this
-            that.fullscreenLoading = true;
-            this.$axios({
-                method: 'post',
-                url:url,
-                headers:{
-                    Authorization:'Bearer '+this.token
-                },
-                data:{
-                    portType: 1,
-                }
-            }).then(function(res){
-                if(res.data.code==200){
-                    that.groupData=res.data.data
-                    that.groupData.forEach(item=>{
-                        if(item.clientName==null){
-                            item.clientName = ''
-                        } 
-                        if(item.clientUnit==null){
-                            item.clientUnit = ''
-                        } 
-                        if(item.id==null){
-                            item.id = ''
-                        } 
-                        if(item.isSure==null){
-                            item.isSure = ''
-                        } 
-                        if(item.jietuanOperator==null){
-                            item.jietuanOperator = ''
-                        } 
-                        if(item.salesQuoteNo==null){
-                            item.salesQuoteNo = ''
-                        } 
-                        if(item.teamName==null){
-                            item.teamName = ''
-                        } 
-                        if(item.teamType==null){
-                            item.teamType = ''
-                        } 
-                        if(item.tourCode==null){
-                            item.tourCode = ''
-                        } 
-                        if(item.visitDate==null){
-                            item.visitDate = ''
-                        } 
-                        if(item.visitDays==null){
-                            item.visitDays = ''
-                        } 
-                        if(item.visitPNumber==null){
-                            item.visitPNumber = ''
-                        } 
-                    })
-                    that.groupDatas=that.groupData;
-                    console.log(that.groupData)
-                    that.fullscreenLoading = false;
-                }
-            })
-        },
         filteryear(val){
             let gstime=val.visitDate.split(' ')[0]
             return gstime;
         },
         //筛选状态
-        filterStatus(val){
-            var newgroup=[];
-            if(this.input==""){
-                if(val=="0"||val==""){
-                    newgroup=this.groupData;
-                }else if(val=="1"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==1){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }else if(val=="2"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==0){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }
-                this.currentPage=1;
-                this.groupDatas=newgroup
-                this.groupDatass=newgroup 
-            }else{
-                if(val=="0"||val==""){
-                    newgroup=this.groupData
-                }else if(val=="1"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==1){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }else if(val=="2"){
-                    for(var j=0;j<this.groupData.length;j++){
-                        if(this.groupData[j].isSure==0){
-                            newgroup.push(this.groupData[j])
-                        }
-                    }
-                }
-                this.currentPage=1;
-                this.groupDatas=newgroup
-                this.groupDatass=newgroup 
-                this.Inquireclick()
-            }
+        filterStatus(){
+            this.currentPage=1;
+            this.PostGroupPageList()
         },
         //编辑
         handleEdit(index, row,rows) {
@@ -414,7 +310,7 @@ export default {
     mounted(){
         this.token=JSON.parse(localStorage.getItem('userinif')).token;
         this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
-        this.Grouplist();
+        this.PostGroupPageList();
     }
 }
 </script>
@@ -437,6 +333,7 @@ export default {
     }
     .group-box{
         display: flex;
+        justify-content: space-between;
     }
     .group-box>button{
         margin-left: 10px;

+ 1 - 1
src/components/OP/OpCarTouristGuideGroundId.vue

@@ -243,7 +243,7 @@ export default {
                 busTel: { required: true, message: '请输入车公司联系电话', trigger: ['blur', 'change'] },
                 serviceStartTime: { required: true, message: '请输入服务时间起', trigger: ['blur', 'change'] },
                 serviceEndTime: { required: true, message: '请输入服务时间止', trigger: ['blur', 'change'] },
-                orbitalPrivateTransfer: { required: true, message: '请选择费用表示', trigger: ['blur', 'change'] },
+                orbitalPrivateTransfer: { required: true, message: '请选择费用表示', trigger: ['blur', 'change'] },
             }
         }
     },

+ 168 - 8
src/components/OP/OpLtinerary.vue

@@ -4,7 +4,7 @@
             <div class="opltinerary-head">
                 <div class="opltinerary-head-li">
                     <label>团组名称:</label>
-                    <el-select size="medium" v-model="value" filterable placeholder="请选择">
+                    <el-select style="width:210px" size="medium" v-model="value" filterable placeholder="请选择">
                         <el-option
                             v-for="item in options"
                             :key="item.id"
@@ -24,7 +24,7 @@
             <div class="opname-box">
                 <div class="opname-head-li">
                     <label>选择城市:</label>
-                    <el-select size="medium" v-model="value" filterable placeholder="请选择">
+                    <el-select style="width:210px" size="medium" v-model="value" filterable placeholder="请选择">
                         <el-option
                             v-for="item in options"
                             :key="item.id"
@@ -40,7 +40,7 @@
             <div class="opname-box">
                 <div class="opname-head-li">
                     <label>选择行程单:</label>
-                    <el-select size="medium" v-model="value" filterable placeholder="请选择">
+                    <el-select style="width:210px" size="medium" v-model="value" filterable placeholder="请选择">
                         <el-option
                             v-for="item in options"
                             :key="item.id"
@@ -66,10 +66,90 @@
                 </div>
                 <div class="itinerary-table">
                     <div class="table-title">
-                        <div style="">天数</div>
-                        <div>日期</div>
-                        <div>交通</div>
-                        <div>行程</div>
+                        <div style="width: 100px;">天数</div>
+                        <div style="width: 300px;">日期</div>
+                        <div style="width: 200px;">交通</div>
+                        <div style="width: 100%;">行程</div>
+                    </div>
+                    <div class="table-form" v-for="(item,index) in tablearrr" :key="index">
+                        <div class="table-form-li" style="width: 100px;">
+                            <el-input-number style="width: 50px;" size="mini"  :controls="false" v-model="item.days"></el-input-number>
+                        </div>
+                        <div class="table-form-li"  style="width: 300px;">
+                            <el-date-picker
+                            style="width: 150px;" 
+                            size="mini"
+                            v-model="item.date1"
+                            type="date"
+                            placeholder="选择日期">
+                            </el-date-picker>
+                            <br/>
+                            <el-date-picker
+                            style="width: 150px;" 
+                            size="mini"
+                            v-model="item.date2"
+                            type="date"
+                            placeholder="选择日期">
+                            </el-date-picker>
+                        </div>
+                        <div class="table-form-li"  style="width: 200px;">
+                            <el-input style="width: 120px;" size="mini" v-model="item.traffic1"></el-input>
+                            <br/>
+                            <el-input style="width: 120px;" size="mini" v-model="item.traffic2"></el-input>
+                        </div>
+                        <div class="table-form-li"  style="width: 100%;">
+                            <el-input
+                            style="width: 90%;"
+                            type="textarea"
+                            :autosize="{ minRows: 4, maxRows: 4}"
+                            placeholder="请输入内容"
+                            v-model="item.remark">
+                            </el-input>
+                        </div>
+                    </div>
+                </div>
+                <div class="briefly-box">
+                    <div class="briefly-select">
+                        <div class="briefly-select-li">
+                            <label>下拉选择国家:</label>
+                            <el-select style="width:150px" size="medium" v-model="value" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in options"
+                                    :key="item.id"
+                                    :label="item.groupName"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </div>
+                        <div class="briefly-select-li">
+                            <label>下拉选择城市:</label>
+                            <el-select style="width:150px" size="medium" v-model="value" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in options"
+                                    :key="item.id"
+                                    :label="item.groupName"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </div>
+                    <div class="briefly-remark"  style="width: 100%;">
+                        <label>国家简介:</label>
+                        <el-input
+                        type="textarea"
+                        :autosize="{ minRows: 4, maxRows: 4}"
+                        placeholder="国家简介"
+                        v-model="textarea2">
+                        </el-input>
+                    </div>
+                    <div class="briefly-remark"  style="width: 100%;">
+                        <label>城市简介:</label>
+                        <el-input
+                        type="textarea"
+                        :autosize="{ minRows: 4, maxRows: 4}"
+                        placeholder="城市简介"
+                        v-model="textarea2">
+                        </el-input>
                     </div>
                 </div>
             </div>
@@ -81,7 +161,43 @@ export default {
     data() {
         return {
             value:"",
-            options:[]
+            options:[],
+            values:'',
+            textarea2:'',
+            tablearrr:[
+                {
+                    days:1,
+                    date1:'时间1',
+                    date2:'时间2',
+                    traffic1:'jiaotongyi',
+                    traffic2:'jiaotonger',
+                    remark:''
+                },
+                {
+                    days:2,
+                    date1:'时间1',
+                    date2:'时间2',
+                    traffic1:'jiaotongyi',
+                    traffic2:'jiaotonger',
+                    remark:''
+                },
+                {
+                    days:3,
+                    date1:'时间1',
+                    date2:'时间2',
+                    traffic1:'jiaotongyi',
+                    traffic2:'jiaotonger',
+                    remark:''
+                },
+                {
+                    days:4,
+                    date1:'时间1',
+                    date2:'时间2',
+                    traffic1:'jiaotongyi',
+                    traffic2:'jiaotonger',
+                    remark:''
+                }
+            ]
         }
     },
 }
@@ -136,8 +252,52 @@ export default {
     font-size: 14px;
     margin-right: 28px;
 }
+.itinerary-table{
+    margin-top: 10px;
+}
 .table-title{
     display: flex;
     border: 1px solid #ebeef5;
+    text-align: center;
+}
+.table-title div{
+    padding: 10px 0px;
+}
+.table-title div:not(:first-child){
+    border-left: 1px solid #ebeef5;
+}
+.table-form{
+    display: flex;
+    align-items: stretch;
+    border: 1px solid #ebeef5;
+    text-align: center;
+    border-top: transparent;
+}
+.table-form .table-form-li{
+    padding: 10px 0px;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}
+.table-form-li:not(:first-child){
+    border-left: 1px solid #ebeef5;
+}
+.briefly-box{
+    margin-top: 30px;
+}
+.briefly-select-li{
+    margin-right: 20px;
+}
+.briefly-select{
+    display: flex;
+    color:red;
+}
+.briefly-remark{
+    margin-top: 10px;
+}
+.briefly-remark label{
+    display: inline-block;
+    margin-bottom: 10px;
 }
 </style>

+ 34 - 16
src/components/system/Payroll.vue

@@ -228,7 +228,7 @@
                 </div>
             </el-dialog>
             <!-- 修改新增 -->
-            <el-dialog :close-on-click-modal="false" width="960px" class="pan" top="3.5vh" title="薪资详细信息" :visible.sync="dialogFormVisible">
+            <el-dialog :close-on-click-modal="false" width="960px" class="pan" top="2.5vh" title="薪资详细信息" :visible.sync="dialogFormVisible">
                 <el-form :model="salaryinif" ref="salaryinif" :rules="rules">
                     <div class="payroll-inif">
                         <el-form-item label="员工" prop="userId" :label-width="formLabelWidth">
@@ -292,7 +292,7 @@
                             placement="top"
                             width="412"
                             trigger="hover">
-                                <el-table :border="border" :data="transfer">
+                                <el-table height="500px" :border="border" :data="transfer">
                                     <el-table-column width="80" property="SubType" label="请假类型"></el-table-column>
                                     <el-table-column width="100" property="StartTimeDt" :formatter="rounddadykaishi" label="开始时间"></el-table-column>
                                     <el-table-column width="100" property="EndTimeDt" :formatter="rounddadyjieshu" label="结束时间"></el-table-column>
@@ -305,6 +305,12 @@
                                 </el-input-number>
                             </el-popover>
                         </el-form-item>
+                        <el-form-item label="其他应付" prop="otherHandle" :label-width="formLabelWidth">
+                            <el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.otherHandle"></el-input-number>
+                        </el-form-item>
+                        
+                    </div>
+                    <div class="payroll-inif">
                         <el-form-item label="代扣保险" prop="withholdingInsurance" :label-width="formLabelWidth">
                             <el-input-number :precision="2" size="medium" :controls="false" v-model="salaryinif.withholdingInsurance"></el-input-number>
                         </el-form-item>
@@ -338,7 +344,7 @@
                             placement="top"
                             width="412"
                             trigger="hover">
-                                <el-table :border="border" :data="leave">
+                                <el-table height="200px" :border="border" :data="leave">
                                     <el-table-column width="100" property="StartTimeDt" :formatter="rounddadykaishi" label="开始时间"></el-table-column>
                                     <el-table-column width="100" property="EndTimeDt" :formatter="rounddadyjieshu" label="结束时间"></el-table-column>
                                     <el-table-column width="50" property="Duration" label="时长"></el-table-column>
@@ -353,7 +359,15 @@
                             placement="top"
                             width="412"
                             trigger="hover">
-                                <el-table :border="border" :data="sickleave">
+                                <div>
+                                    <div>病假最低发放标准(月):1680=2100*0.8</div>
+                                    <div>病假最低发放标准(天):1680/{{salaryinif.workDays}}(工作日)≈{{ (1680/salaryinif.workDays).toFixed(2) }}</div>
+                                    <div>病假最低发放标准(小时):1680/{{salaryinif.workDays}}(工作日)/7.5(小时)≈{{ (1680/salaryinif.workDays/7.5).toFixed(2) }}</div>
+                                    <span style="color:red;">
+                                        员工在病假医疗期限内的病假工资按照成都市最低工资标准的 80%发放
+                                    </span>
+                                </div>
+                                <el-table height="200px" :border="border" :data="sickleave">
                                     <el-table-column width="100" property="StartTimeDt" :formatter="rounddadykaishi" label="开始时间"></el-table-column>
                                     <el-table-column width="100" property="EndTimeDt" :formatter="rounddadyjieshu" label="结束时间"></el-table-column>
                                     <el-table-column width="50" property="Duration" label="时长"></el-table-column>
@@ -368,7 +382,7 @@
                             placement="top"
                             width="382"
                             trigger="hover">
-                                <el-table :border="border" :data="late">
+                                <el-table height="200px" :border="border" :data="late">
                                     <el-table-column width="170" property="StartTimeDt" :formatter="rounddadykaishi" label="迟到时间"></el-table-column>
                                     <!-- <el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column> -->
                                     <el-table-column width="50" property="Duration" label="时长"></el-table-column>
@@ -383,10 +397,10 @@
                             placement="top"
                             width="412"
                             trigger="hover">
-                                <el-table :border="border" :data="early">
-                                    <el-table-column width="100" property="StartTimeDt" :formatter="rounddadykaishi" label="早退时间"></el-table-column>
+                                <el-table height="200px" :border="border" :data="early">
+                                    <el-table-column width="150" property="StartTimeDt" :formatter="rounddadykaishi" label="早退时间"></el-table-column>
                                     <!-- <el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column> -->
-                                    <el-table-column width="50" property="Duration" label="时长"></el-table-column>
+                                    <el-table-column width="100" property="Duration" label="时长"></el-table-column>
                                     <el-table-column width="80" property="Unit" label="时长单位"></el-table-column>
                                     <el-table-column width="80" property="Deduction" :formatter="rounding" label="扣款金额"></el-table-column>
                                 </el-table>
@@ -398,7 +412,7 @@
                             placement="top"
                             width="512"
                             trigger="hover">
-                                <el-table :border="border" :data="absenteeism">
+                                <el-table height="200px" :border="border" :data="absenteeism">
                                     <el-table-column width="100" property="StartTimeDt" :formatter="rounddadykaishi" label="旷工日期"></el-table-column>
                                     <!-- <el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column> -->
                                     <el-table-column width="50" property="Duration" label="时长"></el-table-column>
@@ -414,7 +428,7 @@
                             placement="top"
                             width="512"
                             trigger="hover">
-                                <el-table :border="border" :data="notout">
+                                <el-table height="200px" :border="border" :data="notout">
                                     <el-table-column width="200" property="StartTimeDt" :formatter="rounddadykaishi" label="补卡时间"></el-table-column>
                                     <!-- <el-table-column width="100" property="EndTimeDt" label="结束时间"></el-table-column> -->
                                     <!-- <el-table-column width="50" property="Duration" label="时长"></el-table-column> -->
@@ -549,6 +563,7 @@ export default {
             withholdingInsurance:0,// 代扣保险
             mealsupplement:0,// 餐补
             reservedFunds:0,// 代扣公积金
+            otherHandle:0,//其他应付
             //groupCost:0,// 部门集体团建费
             sickLeave:0,// 病假
             somethingFalse:0,//  事假
@@ -602,6 +617,9 @@ export default {
             otherSubsidies: [
                 { required: true, trigger: 'blur' },
             ],
+            otherHandle:[
+                {required:true,trigger:'blur'}
+            ],
             informationSecurityFee: [
                 { required: true, trigger: 'blur' },
             ],
@@ -912,6 +930,7 @@ export default {
                     // garmentWashSubsidies:that.salaryinif.garmentWashSubsidies,
                     // communicationSubsidies:that.salaryinif.communicationSubsidies,
                     otherSubsidies:that.salaryinif.otherSubsidies,
+                    otherHandle:that.salaryinif.otherHandle,
                     informationSecurityFee:that.salaryinif.informationSecurityFee,
                     // operationBonus:that.salaryinif.operationBonus,
                     // specialAllowance:that.salaryinif.specialAllowance,
@@ -1022,6 +1041,7 @@ export default {
                 // garmentWashSubsidies:0,//服装洗理补贴
                 // communicationSubsidies:0,// 通讯补贴
                 otherSubsidies:0,// 月度补贴
+                otherHandle:0,//其他应付
                 informationSecurityFee:0,// 保密费
                 // operationBonus:0,// 操作奖金
                 // specialAllowance:0,// 特殊津贴
@@ -1184,6 +1204,7 @@ export default {
                     // operationBonus:that.salaryinif.operationBonus,
                     // specialAllowance:that.salaryinif.specialAllowance,
                     // otherSubsidies:that.salaryinif.otherSubsidies,
+                    otherHandle:that.salaryinif.otherHandle,
                     withholdingInsurance:that.salaryinif.withholdingInsurance,
                     mealsupplement:that.salaryinif.mealsupplement,
                     withholdingTax:that.salaryinif.withholdingTax,
@@ -1567,12 +1588,6 @@ export default {
 .remark-box .el-textarea__inner{
     width: 96.5%;
 }
-.el-popover{
-    max-height: 600px;
-    overflow: hidden;
-    overflow-y: auto;
-}
-
 .payroll-all::-webkit-scrollbar-track-piece {
     background-color: #f1f1f1;
 }
@@ -1595,4 +1610,7 @@ export default {
 .biaoji .el-input--medium .el-input__inner{
     text-align: left;
 }
+.payroll-all .el-dialog{
+    margin: 0 auto 23px;
+}
 </style>

+ 19 - 0
src/router/index.js

@@ -85,6 +85,10 @@ import OpLtinerary from '@/components/OP/OpLtinerary'
 import CarTouristGuideGroundId from '@/components/OP/CarTouristGuideGroundId'
 import OpCarTouristGuideGroundId from '@/components/OP/OpCarTouristGuideGroundId'
 import CarTouristGuideGrounContent from '@/components/OP/CarTouristGuideGrounContent'
+import PayReceived from '@/components/Finance/PayReceived';
+import LncomingBills from '@/components/Finance/LncomingBills';
+import GroupStatus from '@/components/Finance/GroupStatus';
+
 
 Vue.use(Router)
 
@@ -497,6 +501,21 @@ export default new Router({
           path: '/home/CarTouristGuideGrounContent',
           name: 'CarTouristGuideGrounContent',
           component: CarTouristGuideGrounContent
+        },
+        {
+          path: '/home/PayReceived',
+          name: 'PayReceived',
+          component: PayReceived
+        },
+        {
+          path: '/home/LncomingBills',
+          name: 'LncomingBills',
+          component: LncomingBills
+        },
+        {
+          path: '/home/GroupStatus',
+          name: 'GroupStatus',
+          component: GroupStatus
         }
       ]
     },