liuhj 1 年之前
父節點
當前提交
fdd0e2df0b
共有 3 個文件被更改,包括 521 次插入4 次删除
  1. 1 3
      src/components/OP/EntryDetails.vue
  2. 514 0
      src/components/OP/ThreeStandards.vue
  3. 6 1
      src/router/index.js

+ 1 - 3
src/components/OP/EntryDetails.vue

@@ -851,7 +851,5 @@ export default {
     width: 83%;
     text-align: right;
 }
-.opc-city{
-    
-}
+
 </style>

+ 514 - 0
src/components/OP/ThreeStandards.vue

@@ -0,0 +1,514 @@
+<template>
+    <div>
+        <div class="standards-all">
+            <div class="standards-head">
+                <div class="standards-head-li">
+                    <div>
+                        <label>国家:</label>
+                        <!-- <el-input style="width:200px" v-model="input" placeholder="请输入内容"></el-input> -->
+                        <el-select style="width: 220px;margin-left: 10px;" v-model="input" @change="countrychange($event)" filterable placeholder="请选择国家">
+                            <el-option
+                                v-for="item in countrylist"
+                                :key="item.countryName"
+                                :label="item.countryName"
+                                :value="item.countryName">
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <div>
+                        <label>城市:</label>
+                        <el-select style="width: 220px;margin-left: 10px;" v-model="input2" @change="citychange" filterable placeholder="请选择公司">
+                            <el-option
+                                v-for="item in citylist"
+                                :key="item"
+                                :label="item"
+                                :value="item">
+                            </el-option>
+                        </el-select>
+                        <!-- <el-input style="width:200px" v-model="input2" placeholder="请输入内容"></el-input> -->
+                    </div>
+                </div>
+                <div class="standards-head-li">
+                    <!-- <el-button type="primary">查 询</el-button> -->
+                    <el-button @click="addclick('新增')" type="primary">新 增</el-button>
+                </div>
+            </div>
+            <div class="standards-table">
+                <el-table
+                :data="tableData"
+                border
+                style="width: 100%">
+                    <el-table-column
+                    prop="rowNumber"
+                    label="序号"
+                    width="50">
+                    </el-table-column>
+                    <el-table-column
+                    prop="continent"
+                    label="州"
+                    width="80">
+                    </el-table-column>
+                    <el-table-column
+                    prop="country"
+                    label="国家/地区"
+                    width="100">
+                    </el-table-column>
+                    <el-table-column
+                    prop="city"
+                    label="城市"
+                    width="180">
+                    </el-table-column>
+                    <el-table-column
+                    prop="currencyName"
+                    label="币种"
+                    width="80">
+                    </el-table-column>
+                    <el-table-column
+                    prop="roomCost"
+                    label="住宿费"
+                    width="120">
+                    </el-table-column>
+                    <el-table-column
+                    prop="foodCost"
+                    label="伙食费"
+                    width="120">
+                    </el-table-column>
+                    <el-table-column
+                    prop="publicCost"
+                    label="公杂费"
+                    width="120">
+                    </el-table-column>
+                    <el-table-column
+                    prop="lastUpdateUserName"
+                    label="最后操作人"
+                    width="100">
+                    </el-table-column>
+                    <el-table-column
+                    prop="lastUpdateTime"
+                    label="最后操作时间"
+                    width="180">
+                    </el-table-column> 
+                    <el-table-column
+                    prop="remark"
+                    label="备注"
+                    width="200">
+                    </el-table-column>
+                    <el-table-column
+                    prop="address"
+                    label="操作">
+                        <template slot-scope="scope">
+                            <el-button
+                            @click.native.prevent="addclick('修改', scope.row)"
+                            size="mini">
+                            修 改
+                            </el-button>
+                            <el-button
+                            @click.native.prevent="deleteRow(scope.$index, tableData,scope.row)"
+                            type="danger"
+                            size="mini">
+                            移 除
+                            </el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <div class="block">
+                    <el-pagination
+                      @size-change="handleSizeChange"
+                      @current-change="handleCurrentChange"
+                      :current-page="currentPage4"
+                      :page-sizes="[14, 10, 18, 22]"
+                      :page-size="100"
+                      layout="total, sizes, prev, pager, next, jumper"
+                      :total="count">
+                    </el-pagination>
+                  </div>
+            </div>
+            <el-dialog :close-on-click-modal="false" width="720px" title="新增三公费用标准" :visible.sync="AdditionalFees">
+                <el-form :model="addfees" ref="addfees" :rules="addfeesrules">
+                    <div class="standards-inif">
+                        <el-form-item label="州" prop="continent" :label-width="formLabelWidth">
+                            <el-input size="medium" :controls="false" v-model="addfees.continent"></el-input>
+                        </el-form-item>
+                        <el-form-item label="国家" prop="country" :label-width="formLabelWidth">
+                            <el-input size="medium" :controls="false" v-model="addfees.country"></el-input>
+                        </el-form-item>
+                        <el-form-item label="城市" prop="city" :label-width="formLabelWidth">
+                            <el-input size="medium" :controls="false" v-model="addfees.city"></el-input>
+                        </el-form-item>
+                        <el-form-item label="币种" prop="currency" :label-width="formLabelWidth">
+                            <el-select size="medium" @change="currencychange" style="height:36px" v-model="addfees.currency" filterable placeholder="请选择">
+                                <el-option
+                                  v-for="item in options"
+                                  :key="item.id"
+                                  :label="item.name"
+                                  :value="item.id">
+                                </el-option>
+                              </el-select>
+                        </el-form-item>
+                        <el-form-item label="住宿费" prop="roomCost" :label-width="formLabelWidth">
+                            <el-input-number :precision="2" size="medium" :controls="false" v-model="addfees.roomCost"></el-input-number>
+                        </el-form-item>
+                        <el-form-item label="伙食费" prop="foodCost" :label-width="formLabelWidth">
+                            <el-input-number :precision="2" size="medium" :controls="false" v-model="addfees.foodCost"></el-input-number>
+                        </el-form-item>
+                        <el-form-item label="公杂费" prop="publicCost" :label-width="formLabelWidth">
+                            <el-input-number :precision="2" size="medium" :controls="false" v-model="addfees.publicCost"></el-input-number>
+                        </el-form-item>
+                    </div>
+                    <div class="remark-box">
+                        <el-form-item label="备注" :label-width="formLabelWidth">
+                            <el-input :rows="8" type="textarea" v-model="addfees.remark"></el-input>
+                        </el-form-item>
+                    </div>
+                </el-form>
+                <div slot="footer" class="dialog-footer">
+                    <el-button type="primary" @click="addsbtn('addfees')">保 存</el-button>
+                    <el-button @click="AdditionalFees = false">取 消</el-button>
+                </div>
+            </el-dialog>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            loginuserid:'',
+            input:'全部',
+            input2:'全部',
+            tableData: [],
+            currentPage4: 1,
+            count:0,
+            pageSize:14,
+            pageIndex:1,
+            AdditionalFees:false,
+            countrylist:[],
+            citylist:[],
+            //新增
+            addfees:{
+                id:0,
+                continent:'',//州
+                country:'', //国家
+                city:'',//城市
+                currency:807,//币种
+                roomCost:0,//住宿费
+                foodCost:0,//伙食费
+                publicCost:0,//公杂费
+                remark:'',//备注
+            },
+            options:[],
+            formLabelWidth:'100px',
+            addfeesrules:{
+                continent: [
+                    { required: true, trigger: 'change',message:'请填写州' }
+                ],
+                country: [
+                    {required: true, trigger: 'change',message:'请填写国家' }
+                ],
+                city: [
+                    { required: true, trigger: 'change',message:'请填写城市' }
+                ],
+                currency: [
+                    { required: true,  trigger: 'blur',message:'请选择币种' }
+                ],
+                roomCost: [
+                    { required: true, trigger: 'change' ,message:'请填写住宿费'},
+                ],
+                foodCost: [
+                    { required: true, trigger: 'change',message:'请填写伙食费' },
+                ],
+                publicCost: [
+                    { required: true, trigger: 'change',message:'请填写公杂费' },
+                ],
+            },
+        }
+    },
+    methods:{
+        //获取基础数据
+        GetEnterExitCostDataSource(){
+            var url = "/api/Groups/GetEnterExitCostDataSource"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    portType: 1
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.options=res.data.data.currencyData;
+                }
+            })
+        },
+        //获取标准列表
+        GatPostNationalTravel(){
+            var url = "/api/Groups/PostNationalTravelFeePage"
+            var that = this
+            var inputs=this.input
+            var input2s=this.input2
+            if(this.input=='全部'){
+                inputs='';
+            }
+            if(this.input2=='全部'){
+                input2s='';
+            }
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    portType: 1,
+                    pageIndex:that.pageIndex,
+                    pageSize:that.pageSize,
+                    continent:'',
+                    country:inputs,
+                    city:input2s,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                   that.tableData= res.data.data;
+                   that.count= res.data.count;
+                }
+                
+            }).catch(()=>{})
+        },
+        //新增按钮
+        addclick(text,val){
+            if (this.$refs.salaryinif){
+                this.$nextTick(() => {
+                    this.$refs['salaryinif'].clearValidate();
+                })
+            }
+            this.addfees={
+                id:0,
+                continent:'',//州
+                country:'', //国家
+                city:'',//城市
+                currency:807,//币种
+                roomCost:0,//住宿费
+                foodCost:0,//伙食费
+                publicCost:0,//公杂费
+                remark:'',//备注
+            },
+            this.AdditionalFees=true;
+            if(text=='修改'){
+                console.log(val)
+                this.addfees.id=val.id;
+                this.addfees.continent=val.continent;
+                this.addfees.country=val.country;
+                this.addfees.city=val.city;
+                this.addfees.currency=val.currency;
+                this.addfees.roomCost=val.roomCost;
+                this.addfees.foodCost=val.foodCost;
+                this.addfees.publicCost=val.publicCost;
+                this.addfees.remark=val.remark;
+                this.pageIndex=1
+            }else if(text=='新增'){
+                this.addfees.id=0;
+            }
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.pageSize=val;
+            this.GatPostNationalTravel();
+        },
+        handleCurrentChange(val) {
+            console.log(`当前页: ${val}`);
+            this.pageIndex=val;
+            this.GatPostNationalTravel()
+        },
+        //currencyselect
+        currencychange(val){
+            console.log(val)
+            this.addfees.currency=val
+        },
+        //新增,修改api
+        PostNationalTravelFeeOperate(){
+            var url = "/api/Groups/PostNationalTravelFeeOperate"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data:{
+                    portType: 1,
+                    id:that.addfees.id,
+                    userId:that.loginuserid,
+                    continent:that.addfees.continent,
+                    country:that.addfees.country,
+                    city:that.addfees.city,
+                    currency:that.addfees.currency,
+                    roomCost:that.addfees.roomCost,
+                    foodCost:that.addfees.foodCost,
+                    publicCost:that.addfees.publicCost,
+                    remark:that.addfees.remark,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                    that.$message({
+                        type: 'success',
+                        message: res.data.msg
+                    });
+                    that.AdditionalFees=false
+                    that.GatPostNationalTravel();
+                }else{
+                    that.$message.error(res.data.msg);
+                }
+                
+            }).catch(()=>{})
+        },
+        //新增-修改
+        addsbtn(formName){
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    this.PostNationalTravelFeeOperate()
+                } else {
+                    this.$message.error('请将红框内容补全!');
+                    return false;
+                }
+            });
+        },
+        //删除
+        deleteRow(index, rows,inif){
+            this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+            center: true
+            }).then(() => {
+                console.log(inif)
+                var url = "/api/Groups/PostNationalTravelFeeDel"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data:{
+                        id: inif.id,
+                        deleteUserId:that.loginuserid,
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    if(res.data.code==200){
+                        rows.splice(index, 1)
+                        that.$message({
+                            type: 'success',
+                            message: res.data.msg
+                        });
+                        that.GatPostNationalTravel();
+                    }
+                    
+                }).catch(()=>{})
+                
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消删除'
+                });
+            });
+        },
+        //搜索数据源
+        GetNationalTravelFeePageDataSource(){
+            var url = "/api/Groups/GetNationalTravelFeePageDataSource"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                }
+            }).then(function (res) {
+                console.log(res)
+                if(res.data.code==200){
+                   that.countrylist=res.data.data
+                   that.countrylist.unshift({cityData:[],countryName:'全部'})
+                }
+                
+            }).catch(()=>{})
+        },
+        //国家change
+        countrychange(item){
+            this.input2="全部"
+            this.citylist='';
+            var obj={}
+            obj= this.countrylist.find(function(i){
+                return i.countryName ===item
+            });
+            //在change中获取到整条对象数据
+            console.log(obj);
+
+            this.citylist=obj.cityData
+            this.citylist.unshift('全部')
+            this.GatPostNationalTravel();
+        },
+        //城市change
+        citychange(){
+            this.GatPostNationalTravel();
+        }
+    },
+    mounted(){
+        this.loginuserid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.GatPostNationalTravel();
+        this.GetEnterExitCostDataSource();
+        this.GetNationalTravelFeePageDataSource();
+    }
+}
+</script>
+<style>
+.standards-all{
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    height: 100%;
+    min-height: 840px;
+}
+.standards-head-li{
+    display: flex;
+}
+.standards-head-li div{
+    margin-right: 10px;
+
+}
+.standards-head-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.standards-head{
+    display: flex;
+    justify-content: space-between;
+}
+.standards-table{
+    margin-top: 20px;
+}
+.standards-table .block{
+    margin-top: 10px;
+    text-align: center;
+}
+.standards-inif{
+    display: flex;
+    flex-wrap:wrap ;
+}
+.standards-inif .el-input--medium {
+    width: 218px;
+}
+.standards-inif .el-input-number--medium{
+    width: 218px;
+}
+.remark-box .el-textarea__inner{
+    width: 93%;
+}
+</style>

+ 6 - 1
src/router/index.js

@@ -79,6 +79,7 @@ import Payroll from '@/components/system/Payroll';
 import GroundEntry from '@/components/Resource/GroundEntry';
 import GroundDetailedfees from '@/components/Resource/GroundDetailedfees';
 import SetWorking from '@/components/system/SetWorking';
+import ThreeStandards from '@/components/OP/ThreeStandards'
 
 
 Vue.use(Router)
@@ -463,7 +464,11 @@ export default new Router({
           name: 'SetWorking',
           component: SetWorking
         },
-        
+        {
+          path: '/home/ThreeStandards',
+          name: 'ThreeStandards',
+          component: ThreeStandards
+        },
       ]
     },
     {