liuhj 1 gadu atpakaļ
vecāks
revīzija
274466b6a2

+ 33 - 2
src/components/OP/EntryDetails.vue

@@ -58,8 +58,8 @@
                         </div>
                         <div class="Entry-inif-box">
                             <label>签证费用描述:</label>
-                            <el-input style="width:250px" size="mini" v-model="DomesticFees.visafeesDescription"></el-input>
-                            <span class="redzhu">* 例:日本:200元/人;加拿大:767.5元/人;</span>
+                            <el-input style="width:1200px" size="mini" v-model="DomesticFees.visafeesDescription"></el-input>
+                            <span class="redzhu">{{visabeizhu}}</span>
                         </div>
                     </div>
                     <div class="Entry-li-inif">
@@ -652,6 +652,7 @@ export default {
             gwctotal:0,//公务舱合计
 
             storageid:0,
+            visabeizhu:""
         }
     },
     methods:{
@@ -680,6 +681,35 @@ export default {
                 }
             })
         },
+        //获取签证标注
+        GetEnterExitCostCorrelationTips(){
+            this.TotalExpenses.EconomyClass=0;
+            this.TotalExpenses.BusinessClass=0;
+            this.DomesticFees.visafees=0;
+            this.DomesticFees.visafeesDescription="";
+            var url = "/api/Groups/GetEnterExitCostCorrelationTips"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    portType: 1,
+                    diId:that.value
+                }
+            }).then(function (res) {
+                if(res.data.code==200){
+                    that.TotalExpenses.EconomyClass=res.data.data.airData.jjcCurrentRate;
+                    that.TotalExpenses.BusinessClass=res.data.data.airData.gwcCurrentRate;
+                    that.DomesticFees.visafees=res.data.data.visaData.feeTotal;
+                    that.DomesticFees.visafeesDescription=res.data.data.visaData.remark;
+                }else{
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
         //获取费用标注
         GetNationalTravelFeeData(){
             this.fullscreenLoading=true;
@@ -1173,6 +1203,7 @@ export default {
                     that.storageid=res.data.data.id;
                     // that.GetNationalTravelFeeData();
                     that.fullscreenLoading=false;
+                    that.GetEnterExitCostCorrelationTips();
                 }else{
                     that.fullscreenLoading=false;
                     that.$message.warning(res.data.msg);

+ 302 - 3
src/components/OP/visaAgencyfee.vue

@@ -1,12 +1,298 @@
 <template>
     <div class="visaAgencyfee-all">
-        <div></div>
-        签证代办
+        <div class="visaAgencyfee-head">
+            <div class="visaAgencyfee-head-title">签证代办</div>
+            <div class="visaAgencyfee-head-select">
+                <el-select @change="PostGroupListByCTableAndUserId" style="width:300px" v-model="diid"
+                    placeholder="请选择团组">
+                    <el-option v-for="(item,index) in Options" :label="item.teamName" :value="item.id"
+                        :key="index"></el-option>
+                </el-select>
+                <el-button @click="PostVisaFeeAddAndUpdate" type="primary">保存</el-button>
+            </div>
+        </div>
+        <div style="margin:10px 0;color:#606266;">
+            <span style="font-weight: bold;font-size:15px;">团队名称:</span>
+            <span style="color:#606266;font-size:14px;">{{ delegationInfo.teamName }}&nbsp;&nbsp;&nbsp;</span>
+            <span style="font-weight: bold;font-size:15px;">客户:</span>
+            <span style="color:#606266;font-size:14px;">{{ delegationInfo.clientName }}&nbsp;&nbsp;&nbsp; {{
+                }}&nbsp;&nbsp;&nbsp;</span>
+            <span style="font-weight: bold;font-size:15px;">出访国家:</span>
+            <span style="color:#606266;font-size:14px;">{{ delegationInfo.visitCountry }}&nbsp;&nbsp;&nbsp;</span>
+            <span style="font-weight: bold;font-size:15px;">起止日期:</span>
+            <span style="color:#606266;font-size:14px;">{{ delegationInfo.visitStartDate }}—{{
+                delegationInfo.visitEndDate
+                }}&nbsp;&nbsp;&nbsp;</span>
+            <span style="font-weight: bold;font-size:15px;">天数/人数:</span>
+            <span style="color:#606266;font-size:14px;">{{ delegationInfo.visitDays }}天/{{ delegationInfo.visitPNumber
+                }}人</span>
+        </div>
+        <div class="visaAgencyfee-table">
+            <el-table 
+            border
+            :data="tableData"
+            tooltip-effect="dark"
+            style="width: 100%"
+            @selection-change="handleSelectionChange">
+                <el-table-column type="selection" width="55">
+                    <template slot-scope="scope">
+                        <el-checkbox 
+                        :true-label="1" 
+                        :false-label="0" 
+                        v-model="scope.row.isChecked">
+                        </el-checkbox>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="country" label="国家" width="180">
+                    <template slot-scope="scope">
+                        <el-input v-model="scope.row.country" placeholder="请输入内容"></el-input>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="visaFee" label="签证费" width="180">
+                    <template slot-scope="scope">
+                        <el-input-number style="width:100%;" :controls="false" v-model="scope.row.visaFee" :precision="2"></el-input-number>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="agencyFee" label="代办费" width="180">
+                    <template slot-scope="scope">
+                        <el-input-number style="width:100%;" :controls="false" v-model="scope.row.agencyFee" :precision="2"></el-input-number>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="otherFee" label="其他费用" width="180">
+                    <template slot-scope="scope">
+                        <el-input-number style="width:100%;" :controls="false" v-model="scope.row.otherFee" :precision="2"></el-input-number>
+                    </template>
+                </el-table-column>
+                <!-- <el-table-column prop="otherFee" label="备注">
+                    <template slot-scope="scope">
+                        <el-input v-model="scope.row.country" placeholder="请输入内容"></el-input>
+                    </template>
+                </el-table-column> -->
+            </el-table>
+        </div>
     </div>
 </template>
 <script>
 export default {
-      
+    data () {
+        return {
+            diid:0,
+            tableData:[],
+            tableDatas: [{
+                id: 0,
+                isChecked: 0,
+                country: '',
+                visaFee: 0,
+                agencyFee: 0,
+                otherFee: 0,
+            }, {
+                id: 0,
+                isChecked: 0,
+                country: '',
+                visaFee: 0,
+                agencyFee: 0,
+                otherFee: 0,
+            }, {
+                id: 0,
+                isChecked: 0,
+                country: '',
+                visaFee: 0,
+                agencyFee: 0,
+                otherFee: 0,
+            }, {
+                id: 0,
+                isChecked: 0,
+                country: '',
+                visaFee: 0,
+                agencyFee: 0,
+                otherFee: 0,
+            }, {
+                id: 0,
+                isChecked: 0,
+                country: '',
+                visaFee: 0,
+                agencyFee: 0,
+                otherFee: 0,
+            }, {
+                id: 0,
+                isChecked: 0,
+                country: '',
+                visaFee: 0,
+                agencyFee: 0,
+                otherFee: 0,
+            }],
+            token:'',
+            userId:'',
+            Options:[],
+            delegationInfo:{},
+            multipleSelection:[]
+        }
+    },
+    methods:{
+        //团组下拉框
+        PostGroupListByCTableAndUserId() {
+            var url = "/api/Business/PostGroupListByCTableAndUserId"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType: 1,
+                    pageIndex: 1,
+                    pageSize: 10000,
+                    cTable: 80,
+                    userId: that.userId,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.Options=res.data.data;
+                    if(that.diid==0){
+                        that.diid=that.Options[0].id;
+                    }
+                    for(var i=0;i<that.Options.length;i++){
+                        if(that.diid==that.Options[i].id){
+                            that.delegationInfo=that.Options[i]
+                        }
+                    }
+                    that.PostVisaFeeList();
+                }else{
+                    that.$message.error(res.data.msg);
+                }
+            }).catch(function (error) {
+                that.$message.error(error);
+            });
+        },
+        //详细
+        PostVisaFeeList() {
+            var url = "/api/Groups/PostVisaFeeList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType: 1,
+                    diId:that.diid
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    if(res.data.data.length>0){
+                        that.tableData=res.data.data;
+                    }else{
+                        console.log(that.tableDatas)
+                        that.tableData = [
+                            {
+                                id: 0,
+                                isChecked: 0,
+                                country: '',
+                                visaFee: 0,
+                                agencyFee: 0,
+                                otherFee: 0,
+                            }, {
+                                id: 0,
+                                isChecked: 0,
+                                country: '',
+                                visaFee: 0,
+                                agencyFee: 0,
+                                otherFee: 0,
+                            }, {
+                                id: 0,
+                                isChecked: 0,
+                                country: '',
+                                visaFee: 0,
+                                agencyFee: 0,
+                                otherFee: 0,
+                            }, {
+                                id: 0,
+                                isChecked: 0,
+                                country: '',
+                                visaFee: 0,
+                                agencyFee: 0,
+                                otherFee: 0,
+                            }, {
+                                id: 0,
+                                isChecked: 0,
+                                country: '',
+                                visaFee: 0,
+                                agencyFee: 0,
+                                otherFee: 0,
+                            }, {
+                                id: 0,
+                                isChecked: 0,
+                                country: '',
+                                visaFee: 0,
+                                agencyFee: 0,
+                                otherFee: 0,
+                            }
+                        ]
+                        var delegationInfos=[]
+                        delegationInfos=[]
+                        delegationInfos=that.delegationInfo.visitCountry.split("|")
+                        for(var k=0;k<delegationInfos.length;k++){
+                            that.tableData[k].country=delegationInfos[k];
+                            that.tableData[k].isChecked=1;
+                        }
+                    }
+                }else{
+                    that.$message.error(res.data.msg);
+                }
+            }).catch(function (error) {
+                that.$message.error(error);
+            });
+        },
+        //保存
+        PostVisaFeeAddAndUpdate() {
+            var newsarr=[];
+            for(var a=0;a<this.tableData.length;a++){
+                if(this.tableData[a].country!=""){
+                    newsarr.push(this.tableData[a])
+                }
+            }
+            var url = "/api/Groups/PostVisaFeeAddAndUpdate"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType: 1,
+                    opUserId: that.userId,
+                    diId: that.diid,
+                    visaFeeInfos: newsarr,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.$message({
+                        type: 'success',
+                        message: res.data.msg
+                    });
+                    that.PostVisaFeeList();
+                }else{
+                    that.$message.error(res.data.msg);
+                }
+            }).catch(function (error) {
+                that.$message.error(error);
+            });
+        },
+        handleSelectionChange(val) {
+            this.multipleSelection = val;
+            console.log(this.multipleSelection);
+        }
+    },
+    created(){
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+    },
+    mounted(){
+        this.PostGroupListByCTableAndUserId();
+    }
 }
 </script>
 <style>
@@ -17,4 +303,17 @@ export default {
     border-radius: 10px;
     min-height: 830px;
 }
+.visaAgencyfee-head-title{
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+}
+.visaAgencyfee-head-select{
+    margin-top: 10px;
+    display: flex;
+    justify-content: space-between;
+}
+.visaAgencyfee-table{
+    margin-top: 10px;
+}
 </style>

+ 14 - 10
src/components/Resource/OpTicketBlackCode.vue

@@ -72,20 +72,24 @@
                         </el-form-item>
                     </div>
                     <div style="width: 40%;">
-                        <el-form-item label="全价说明:" label-width="160px">
-                            <el-input type="textarea" :rows="3" placeholder="全价说明"
-                                v-model="OpTicketBlackCodeData.price"></el-input>
+                        <el-form-item label="公务舱现价:" label-width="160px">
+                            <el-input placeholder="公务舱现价" v-model="OpTicketBlackCodeData.nowPrice">
+                            </el-input>
+                            <!-- <el-input type="textarea" :rows="3" placeholder="全价说明"
+                                v-model="OpTicketBlackCodeData.price"></el-input> -->
                         </el-form-item>
-                        <el-form-item label="现价说明:"  label-width="160px">
-                            <el-input type="textarea" :rows="3" placeholder="现价说明"
-                                v-model="OpTicketBlackCodeData.nowPrice"></el-input>
+                        <el-form-item label="经济舱现价:"  label-width="160px">
+                            <!-- <el-input type="textarea" :rows="3" placeholder="现价说明"
+                                v-model="OpTicketBlackCodeData.nowPrice"></el-input> -->
+                            <el-input placeholder="经济舱现价" v-model="OpTicketBlackCodeData.price">
+                            </el-input>
                         </el-form-item>
-                        <el-form-item label="公务舱单价:" label-width="160px">
-                            <el-input placeholder="公务舱价" v-model="OpTicketBlackCodeData.bcPrice">
+                        <el-form-item label="公务舱价:" label-width="160px">
+                            <el-input placeholder="公务舱价" v-model="OpTicketBlackCodeData.bcPrice">
                             </el-input>
                         </el-form-item>
-                        <el-form-item label="经济舱价:" label-width="160px">
-                            <el-input placeholder="经济舱价" v-model="OpTicketBlackCodeData.ecPrice">
+                        <el-form-item label="经济舱价:" label-width="160px">
+                            <el-input placeholder="经济舱价" v-model="OpTicketBlackCodeData.ecPrice">
                             </el-input>
                         </el-form-item>
                         <el-form-item>