Browse Source

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

wangh 1 year ago
parent
commit
ab82f14d9b
3 changed files with 487 additions and 11 deletions
  1. 0 11
      src/components/Finance/GroupStatus.vue
  2. 481 0
      src/components/Finance/Sendack.vue
  3. 6 0
      src/router/index.js

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

@@ -98,17 +98,6 @@
                             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>

+ 481 - 0
src/components/Finance/Sendack.vue

@@ -0,0 +1,481 @@
+<template>
+    <div>
+        <div class="sendack-all">
+            <div class="sendack-head">
+                <div class="sendack-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="sendack-head-li">
+                    <el-button @click="ysSaveition()" 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>
+                    <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>
+            <template>
+                <el-table
+                :data="groupsendData"
+                border
+                style="width: 100%">
+                    <el-table-column
+                        type="index"
+                        label="序 号"
+                        width="55">
+                    </el-table-column>
+                    <el-table-column
+                        prop="priceName"
+                        label="费用名称">
+                    </el-table-column>
+                    <el-table-column
+                        width="120" 
+                        prop="price"
+                        label="费用">
+                    </el-table-column>
+                    <el-table-column
+                        prop="createUserName"
+                        label="操作人"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="createTime"
+                        label="操作时间"
+                        width="160">
+                    </el-table-column>
+                    <el-table-column
+                        prop="remark"
+                        label="备注"
+                        width="600">
+                    </el-table-column>
+                    <el-table-column label="操作" width="110">
+                        <template slot-scope="scope">
+                          <el-button
+                            type="text"
+                            size="mini"
+                            @click="Complete(scope.$index, scope.row)">编辑</el-button>
+                            <el-button
+                            type="text"
+                            size="mini"
+                            @click="Delete(scope.$index, scope.row)"
+                           >删除</el-button>
+                        </template>
+                      </el-table-column>
+                </el-table>
+            </template>
+            <el-dialog width="900px" title="新增数据" :visible.sync="dialogFormVisible">
+                <el-form :model="form" :rules="rules" ref="form">
+                    <div style="display: flex;flex-wrap:wrap;">
+                        <el-form-item label="费用名称" prop="priceName" :label-width="formLabelWidth">
+                            <el-input v-model="form.priceName" autocomplete="off"></el-input>
+                        </el-form-item>
+                        <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-select>
+                        </el-form-item>
+                        <el-form-item label="收款方" prop="payee" :label-width="formLabelWidth">
+                            <el-input v-model="form.payee" autocomplete="off"></el-input>
+                        </el-form-item>
+                        <el-form-item label="支付方式" prop="payDId" :label-width="formLabelWidth">
+                            <el-select v-model="form.payDId" placeholder="请选择活动区域">
+                                <el-option v-for="(item,index) in payTypeDatas" :key="index" :label="item.name" :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="费用标识" prop="orbitalPrivateTransfer" :label-width="formLabelWidth">
+                            <el-select v-model="form.orbitalPrivateTransfer" placeholder="请选择活动区域">
+                                <el-option v-for="(item,index) in orbitalPrivateTransferDatas" :key="index" :label="item.name" :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="消费方式" prop="consumptionPatterns" :label-width="formLabelWidth">
+                            <el-input v-model="form.consumptionPatterns" autocomplete="off"></el-input>
+                        </el-form-item>
+                        <el-form-item label="费用类型" prop="payType" :label-width="formLabelWidth">
+                            <el-select v-model="form.payType" placeholder="请选择活动区域">
+                                <el-option v-for="(item,index) in priceTypeDatas" :key="index" :label="item.name" :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <el-form-item style="width:97%" label="备 注" :label-width="formLabelWidth">
+                        <el-input style="width:100%" :rows="4" type="textarea" v-model="form.remark" autocomplete="off"></el-input>
+                    </el-form-item>
+                    </el-form>
+                    <div slot="footer" class="dialog-footer">
+                    <el-button @click="dialogFormVisible = false">取 消</el-button>
+                    <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+                    </div>
+              </el-dialog>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            userid:'',
+            value:'',
+            options:[],
+            groupInfo:{},
+            groupsendData:[],
+            dialogFormVisible:true,
+            form:{
+                priceName:'',//费用名称
+                price:0,//费用
+                currencyId:807,//币种Id
+                currencyCode:'',//币种Code
+                payee:'',//收款方
+                payDId:72,//支付方式Id
+                orbitalPrivateTransfer:0,//费用标识
+                consumptionPatterns:'',//消费方式
+                payType:0,//费用类型 0 其他 1 退多付款
+                remark:'',//备注
+            },
+            rules: {
+                priceName: [
+                    { required: true, message: '请输入费用名称', trigger: 'blur' },
+                ],
+                price: [
+                    { required: true, message: '请填写完此项', trigger: 'blur' }
+                ],
+                payee: [
+                    { required: true, message: '请填写完此项', trigger: 'blur' }
+                ],
+                payDId: [
+                    { required: true, message: '请选择', trigger: 'change' }
+                ],
+                orbitalPrivateTransfer: [
+                    {  required: true, message: '请选择', trigger: 'change' }
+                ],
+                consumptionPatterns: [
+                    { required: true, message: '请填写完此项', trigger: 'blur' }
+                ],
+                payType: [
+                    { required: true, message: '请选择', trigger: 'change' }
+                ]
+            },
+            formLabelWidth:'100px',
+            currencyDatas:[],
+            payTypeDatas:[],
+            priceTypeDatas:[],
+            orbitalPrivateTransferDatas:[],
+        }
+    },
+    methods:{
+        filteryear(val){
+            let gstime=val.visitDate.split(' ')[0]
+            return gstime;
+        },
+        //获取团组
+        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.value=res.data.data.groupNameData[0].id;
+                    that.PostShareGroupInfo();
+                    that.PostPaymentRefundAndOtherMoneyItemByDiId();
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
+        //获取数据源
+        PostPaymentRefundAndOtherMoneyInfoDataSource(){
+            var url = "/api/Financial/PostPaymentRefundAndOtherMoneyInfoDataSource"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType: 1
+                }
+            }).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;
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
+        //获取团组详情
+        PostShareGroupInfo(){
+            var url = "/api/Business/PostShareGroupInfo"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType:1,
+                    id: 1540
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.groupInfo=res.data.data;
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
+        //获取团组收款退还与其他款项
+        PostPaymentRefundAndOtherMoneyItemByDiId(){
+            var url = "/api/Financial/PostPaymentRefundAndOtherMoneyItemByDiId"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType:1,
+                    diId: 1540
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.groupsendData=res.data.data
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
+        //保存修改
+        submitForm(formName) {
+            this.$refs[formName].validate((valid) => {
+            if (valid) {
+                alert('submit!');
+            } else {
+                console.log('error submit!!');
+                return false;
+            }
+            });
+        },
+        //保存修改api
+        PostPaymentRefundAndOtherMoneyItemByDiId(){
+            var url = "/api/Financial/PostPaymentRefundAndOtherMoneyItemByDiId"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType:1,
+                    diId: 1540
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.groupsendData=res.data.data
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
+        //编辑
+        Complete(index,row){
+            if (this.$refs.form){
+                this.$nextTick(() => {
+                    this.$refs['form'].clearValidate();
+                })
+            }
+            //弹框
+            this.dialogFormVisible=true;
+            //初始化数据
+            this.form={
+                priceName:'',//费用名称
+                price:0,//费用
+                currencyId:807,//币种Id
+                currencyCode:'',//币种Code
+                payee:'',//收款方
+                payDId:72,//支付方式Id
+                orbitalPrivateTransfer:0,//费用标识
+                consumptionPatterns:'',//消费方式
+                payType:0,//费用类型 0 其他 1 退多付款
+                remark:'',//备注
+            }
+            var formobject={}
+            var url = "/api/Financial/PostPaymentRefundAndOtherMoneyInfo"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.userid
+                },
+                data:{
+                    portType:1,
+                    id: row.id,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    formobject=res.data.data[0];
+                    that.form.priceName=formobject.priceName;
+                    that.form.price=formobject.price;
+                    that.form.currencyId=formobject.currencyId;
+                    that.form.payee=formobject.payee;
+                    that.form.payDId=formobject.payDId;
+                    that.form.orbitalPrivateTransfer=formobject.orbitalPrivateTransfer;
+                    that.form.consumptionPatterns=formobject.consumptionPatterns;
+                    that.form.payType=formobject.payType;
+                    that.form.remark=formobject.remark;
+                }else{
+                    that.$message.error('获取数据源失败!');
+                }
+            })
+        },
+        //删除
+        Delete(index,row){
+            this.$confirm('此操作将删除此条数据,是否确认删除?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Financial/PostPaymentRefundAndOtherMoneyItemByDiId"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + that.userid
+                    },
+                    data:{
+                        portType:1,
+                        id: row.id
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    if(res.data.code==200){
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success'
+                        });
+                        that.PostPaymentRefundAndOtherMoneyItemByDiId()
+                    }else{
+                        that.$message.error('获取数据源失败!');
+                    }
+                })
+            })
+        }
+    },
+    filters:{
+        filter_time(value){
+            if(value){
+                return value.split(' ')[0];
+            }
+            return value
+            
+        },
+        filter_city(value){
+            return value
+        }
+    },
+    mounted(){
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.GetForeignReceivablesDataSources();
+        this.PostPaymentRefundAndOtherMoneyInfoDataSource();
+    }
+}
+</script>
+<style>
+.sendack-all{
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    height: 100%;
+    min-height: 840px;
+}
+.sendack-head-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.sendack-head{
+    display: flex;
+    justify-content: space-between;
+}
+.sendack-info{
+    display: flex;
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+.sendack-info-li{
+    margin-right: 30px;
+}
+.sendack-info-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.sendack-info-li span{
+    color: #606266;
+    font-size: 14px;
+}
+.sendack-all .el-form-item{
+    width: 50%;
+}
+.sendack-all .el-form-item input{
+    width: 300px;
+}
+.sendack-all .fyjeinput{
+    width: 148px;
+}
+.sendack-all .fyjeinput input{
+    width: 100%;
+}
+.sendack-all .fyjeselect{
+    width: 148px;
+}
+.sendack-all .fyjeselect input{
+    width: 100%;
+}
+</style>

+ 6 - 0
src/router/index.js

@@ -88,6 +88,7 @@ import CarTouristGuideGrounContent from '@/components/OP/CarTouristGuideGrounCon
 import PayReceived from '@/components/Finance/PayReceived';
 import LncomingBills from '@/components/Finance/LncomingBills';
 import GroupStatus from '@/components/Finance/GroupStatus';
+import Sendack from '@/components/Finance/Sendack';
 
 
 Vue.use(Router)
@@ -516,6 +517,11 @@ export default new Router({
           path: '/home/GroupStatus',
           name: 'GroupStatus',
           component: GroupStatus
+        },
+        {
+          path: '/home/Sendack',
+          name: 'Sendack',
+          component: Sendack
         }
       ]
     },