Parcourir la source

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

yuanrf il y a 2 ans
Parent
commit
94ae9bd1b9

+ 14 - 0
package-lock.json

@@ -18,6 +18,7 @@
         "tippy.js": "^6.3.7",
         "vue": "^2.5.2",
         "vue-router": "^3.0.1",
+        "vue-typed-js": "^0.1.2",
         "vue2-org-tree": "^1.3.6",
         "vuex": "^3.6.2"
       },
@@ -13359,6 +13360,11 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/typed.js": {
+      "version": "2.0.16",
+      "resolved": "git+ssh://git@github.com/mattboldt/typed.js.git#cd02e533c772e35ad60ee48656b33e610eadaca7",
+      "license": "MIT"
+    },
     "node_modules/typedarray": {
       "version": "0.0.6",
       "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@@ -13967,6 +13973,14 @@
       "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
       "dev": true
     },
+    "node_modules/vue-typed-js": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/vue-typed-js/-/vue-typed-js-0.1.2.tgz",
+      "integrity": "sha512-9kDGuz17uYJghe/1hepRWiWYssgUFtrKnMGPHlWjVRxdvs/d9xYYWMkgzztjhx1R1B33hXkN8ctmkzCYHQ+caA==",
+      "dependencies": {
+        "typed.js": "git+https://github.com/mattboldt/typed.js.git"
+      }
+    },
     "node_modules/vue2-org-tree": {
       "version": "1.3.6",
       "resolved": "https://registry.npmjs.org/vue2-org-tree/-/vue2-org-tree-1.3.6.tgz",

+ 1 - 0
package.json

@@ -20,6 +20,7 @@
     "tippy.js": "^6.3.7",
     "vue": "^2.5.2",
     "vue-router": "^3.0.1",
+    "vue-typed-js": "^0.1.2",
     "vue2-org-tree": "^1.3.6",
     "vuex": "^3.6.2"
   },

+ 41 - 34
src/components/Crm/CustomerCompany.vue

@@ -195,8 +195,8 @@ export default {
                 companyName: "",
                 address: "",
                 postCodes: "",
-                lastedOpUserId: 0,
-                createUserId: 0,
+                lastedOpUserId: this.userId,
+                createUserId: this.userId,
                 remark: ""
             },
                 this.TypeVisible = true;
@@ -228,44 +228,51 @@ export default {
                             that.$message.error(res.data.msg);
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             })
         },
-        
-        del(index, row) {
 
-            var url = "/api/CRM/DelClientCompany"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
+        del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/CRM/DelClientCompany"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.ClientCompany()
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.ClientCompany()
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

+ 41 - 34
src/components/Crm/DeleClient.vue

@@ -4,8 +4,7 @@
             <div class="communal-title">
                 <div>客户资料</div>
                 <div class="communal-box">
-                    <el-input @input="Inquireclick()" placeholder="城市/名称/联系人" v-model="input" clearable
-                        style="width: 350px;">
+                    <el-input @input="Inquireclick()" placeholder="姓名/所属公司" v-model="input" clearable style="width: 350px;">
                     </el-input>
                     <router-link to="/home/visaEdit">
                         <el-button type="primary" style="margin-left: 10px;">新增</el-button>
@@ -137,11 +136,9 @@ export default {
             } else {
 
                 for (var i = 0; i < this.tableData.length; i++) {
-                    if (this.tableData[i].city.indexOf(this.input) != -1) {
+                    if (this.tableData[i].clientName.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
-                    } else if (this.tableData[i].name.indexOf(this.input) != -1) {
-                        newarr.push(this.tableData[i]);
-                    } else if (this.tableData[i].contact.indexOf(this.input) != -1) {
+                    } else if (this.tableData[i].companyName.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
                 }
@@ -159,36 +156,46 @@ export default {
         },
 
         del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/CRM/DelCustomer"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-            var url = "/api/CRM/DelCustomer"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
-
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.DeleClient();
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.DeleClient();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

+ 254 - 62
src/components/Finance/DailyFeePayment.vue

@@ -4,29 +4,29 @@
             <div class="search-li">
                 <div class="feeType-box">
                     <label>费用类型: </label>
-                    <el-select filterable placeholder="请输入费用类型">
+                    <el-select  v-model="feeTypValue" filterable placeholder="请选择费用类型"  @change="filtersub()">
                         <el-option
-                        v-for="item in GMAudit"
-                        :key="item.value"
-                        :label="item.groupName"
-                        :value="item.value">
+                        v-for="item in feeTypeData"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id">
                         </el-option>
                     </el-select>
                 </div>
                 <div class="feeType-box">
                     <label>费用子类型: </label>
-                    <el-select filterable placeholder="请输入费用子类型">
+                    <el-select @change="downtrigger()" :disabled="banned" v-model="feeSubTypeValue" filterable placeholder="请选择费用子类型">
                         <el-option
-                        v-for="item in GMAudit"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
+                        v-for="item in feeSubTypeData"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id">
                         </el-option>
                     </el-select>
                 </div>
                 <div class="feeType-box">
                     <label>财务审核: </label>
-                    <el-select v-model="financialValue" filterable placeholder="请输入财务审核状态">
+                    <el-select @change="downtrigger()" v-model="financialValue" filterable placeholder="请输入财务审核状态">
                         <el-option
                         v-for="item in financialAudit"
                         :key="item.value"
@@ -37,7 +37,7 @@
                 </div>
                 <div class="feeType-box">
                     <label>总经理审核: </label>
-                    <el-select v-model="GMValue" filterable placeholder="请输入总经理审核状态">
+                    <el-select @change="downtrigger()" v-model="GMValue" filterable placeholder="请输入总经理审核状态">
                         <el-option
                         v-for="item in GMAudit"
                         :key="item.value"
@@ -52,12 +52,12 @@
                 </div> -->
                 <div class="feeType-box">
                     <label>申请人: </label>
-                    <el-select v-model="GMValue" filterable placeholder="请输入申请人">
+                    <el-select @change="downtrigger()" v-model="userNameValue" filterable placeholder="请选择申请人">
                         <el-option
-                        v-for="item in GMAudit"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
+                        v-for="item in userNameData"
+                        :key="item.id"
+                        :label="item.cnName"
+                        :value="item.id">
                         </el-option>
                     </el-select>
                 </div>
@@ -69,12 +69,12 @@
         <el-row>
             <el-button type="primary">导出费用</el-button>
             <el-button type="primary">批量生成</el-button>
-            <el-button type="primary">新增数据</el-button>
+            <el-button @click="addDaily()" type="primary">新增数据</el-button>
           </el-row>
-        <div class="form-box">
+        <div class="dailyment-box">
             <template>
                 <el-table
-                :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"
+                :data="tableData"
                 border
                 style="width: 100%">
                     <el-table-column
@@ -109,7 +109,7 @@
                     <el-table-column
                         prop="createTime"
                         label="申请时间"
-                        width="150">
+                        width="200">
                     </el-table-column>
                     <el-table-column
                         prop="fAuditDesc"
@@ -124,9 +124,21 @@
                     <el-table-column
                         prop="Id"
                         label="操 作">
-                        <el-link type="primary">生成</el-link>
-                        <el-link type="primary">详细</el-link>
-                        <el-link type="danger">删除</el-link>
+                        <template slot-scope="scope">
+                            <el-button
+                            title="生成"
+                            size="mini"
+                            @click="handleGenerate(scope.$index, scope.row)"><i class="el-icon-share"></i></el-button>
+                            <el-button
+                            title="详情"
+                            size="mini"
+                            @click="handleEdit(scope.$index, scope.row)"><i class="el-icon-edit-outline"></i></el-button>
+                            <el-button
+                            title="删除"
+                            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>
             </template>
@@ -149,56 +161,80 @@
 export default {
     data() {
         return {
+            banned:true,
             input: '',
-            financialValue:"-1",
+            financialValue:-1,
             financialAudit:[
                 {
-                    value: '-1',
+                    value: -1,
                     label: '全部'
                 },
                 {
-                    value: '0',
+                    value: 0,
                     label: '未审核'
                 },
                 {
-                    value: '1',
+                    value: 1,
                     label: '已通过'
                 },
                 {
-                    value: '2',
+                    value: 2,
                     label: '未通过'
                 },
             ],
-            GMValue:"-1",
+            GMValue:-1,
             GMAudit:[
                 {
-                    value: '-1',
+                    value: -1,
                     label: '全部'
                 },
                 {
-                    value: '0',
+                    value: 0,
                     label: '未审核'
                 },
                 {
-                    value: '1',
+                    value: 1,
                     label: '已通过'
                 },
                 {
-                    value: '2',
+                    value: 2,
                     label: '未通过'
                 },
             ],
+            feeTypeData:[
+                {
+                    id: -1,
+                    name: "全部"
+                },
+            ],
+            feeTypValue:-1,
+            userNameData:[
+                {
+                    cnName: "全部",
+                    id:-1
+                }
+            ],
+            userNameValue:-1,
+            feeSubType:[],
+            feeSubTypeData:[
+                {
+                    id: -1,
+                    name: "全部",
+                    sTid:'-1'
+                }
+            ],
+            feeSubTypeValue:-1,
             formInline:{
                 feeDesc:""
             },
             tableData: [],
             tableDataLength: 0, // 数据总条数
             currentPage: 1,     // 当前页码
-            pageSize: 5 ,       // 每页的数据条数
-            currentPageUser: 1, // 当前页码
-            pageSizeUser: 5 ,   // 每页的数据条数
+            pageSize: 10 ,       // 每页的数据条数
+           
             multipleTable:[],
-            token:''
+            token:'',
+            userid:''
         }
     },
     methods:{
@@ -206,19 +242,13 @@ export default {
         handleSizeChange(val) {
             this.currentPage = 1;
             this.pageSize = val;
+            this.postPageDailyPaymentList()
         },
         //当前页改变时触发 跳转其他页
         handleCurrentChange(val) {
+            console.log(val)
             this.currentPage = val;
-        },
-        //每页条数改变时触发 选择一页显示多少行
-        handleSizeChanges(val) {
-            this.currentPageUser = 1;
-            this.pageSizeUser = val;
-        },
-        //当前页改变时触发 跳转其他页
-        handleCurrentChanges(val) {
-            this.currentPageUser = val;
+            this.postPageDailyPaymentList()
         },
         handleSelectionChange(val) {
             this.multipleSelection = val;
@@ -231,7 +261,8 @@ export default {
             return parseFloat(row[column.property]).toFixed(2);
         },
         async postPageDailyPaymentList() {
-            var url = "/api/Financial/PostPageDailyPaymentList"
+            console.log(this.feeTypValue)
+            var url = "/api/Financial/PostPageSearchDailyPaymentList"
             var that = this
             this.$axios({
                 method: 'post',
@@ -244,27 +275,183 @@ export default {
                     pageIndex: that.currentPage,
                     pageSize: that.pageSize,
                     companyId: -1,
-                    financialAuditStatus: -1,
-                    managerAuditStatus: -1,
-                    feeTypeId: -1,
-                    feeSubTypeId: -1,
-                    feeDesc: '',
-                    createUserId: -1
+                    financialAuditStatus: that.financialValue,//财务审核
+                    managerAuditStatus: that.GMValue,  //总经理审核
+                    feeTypeId: that.feeTypValue,           //费用类型
+                    feeSubTypeId: that.feeSubTypeValue,       //费用子类型
+                    feeDesc: '',    //描述
+                    createUserId: that.userNameValue //申请人
                 }
             }).then(function (res) {
                 console.log(res)
                 if (res.data.code == 200) {
-                    that.tableData = res.data.data;
-                    that.tableDataLength = res.data.count;
+                    that.tableData = res.data.data.dataList;
+                    that.tableDataLength = res.data.data.dataCount;
+                }
+                console.log(that.tableData);
+            })
+        },
+        getTypeData() {
+            var url = "/api/Financial/PostPageSearchDailyPaymentPriceTypeData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    for(var u=0;u<res.data.data.userNameData.length;u++){
+                        that.userNameData.push(res.data.data.userNameData[u])
+                    }
+                    // that.userNameData=res.data.data.userNameData;
+                    for(var l=0;l<res.data.data.feeTypeData.length;l++){
+                        that.feeTypeData.push(res.data.data.feeTypeData[l])
+                    }
+                    // that.feeTypeData=res.data.data.feeTypeData;
+                    that.feeSubType=res.data.data.feeSubTypeData;
                 }
             })
         },
+        filtersub(){
+            this.feeSubTypeData=[
+                {
+                    id: -1,
+                    name: "全部",
+                    sTid:'-1'
+                }
+            ];
+            this.feeSubTypeValue=-1;
+            for(var i=0;i<this.feeSubType.length;i++){
+                if(this.feeSubType[i].sTid==this.feeTypValue){
+                    this.feeSubTypeData.push(this.feeSubType[i]);
+                }
+            }
+            console.log(this.feeTypValue);
+            if(this.feeSubTypeData.length==1){
+                this.banned=true;
+            }else{
+                this.banned=false;
+            }
+            this.currentPage= 1;
+            this.postPageDailyPaymentList();
+        },
+        downtrigger(){
+            this.currentPage= 1;
+            this.postPageDailyPaymentList();
+        },
+        addDaily(){
+            this.$router.push({ path: "/home/DailyFeeedit"});
+        },
+        handleEdit(index, row) {
+            this.$router.push({path: '/home/DailyFeeedit?id=' + row.id +''});
+        },
+        handleDelete(index, row,rows) {
+            console.log(index, row);
+            this.$confirm('此操作将删除该条信息, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+            }).then(() => {
+                var url="/api/Financial/PostDelDailyPayment"
+                var that=this
+                this.$axios({
+                    method: 'post',
+                    url:url,
+                    headers:{
+                        Authorization:'Bearer '+this.token
+                    },
+                    data:{
+                        portType: 1,
+                        id:row.id,
+                        userId:that.userid
+                    }
+                }).then(function(res){
+                    if(res.data.code==200){
+                        that.$message({
+                            message:res.data.msg ,
+                            type: 'success',
+                            offset:50
+                        });
+                        rows.splice(index, 1);
+                        that.postPageDailyPaymentList();
+                    }else{
+                        that.$message({
+                            message:res.data.msg ,
+                            type: 'warning',
+                            offset:50
+                        });
+                    }
+                })
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消删除'
+                });          
+            });
+        },
+        handleGenerate(index, row){
+            this.$confirm('是否生成此条数据?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+            }).then(() => {
+                var url="/api/Financial/PostExcelDailyPaymentDownload"
+                var that=this
+                this.$axios({
+                    method: 'post',
+                    url:url,
+                    headers:{
+                        Authorization:'Bearer '+this.token
+                    },
+                    data:{
+                        portType: 1,
+                        id:row.id,
+                    }
+                }).then(function(res){
+                    console.log(res)
+                    if(res.data.code==200){
+                        that.$message({
+                            message:"生成成功!" ,
+                            type: 'success',
+                            offset:50
+                        });
+                        window.open(res.data.msg);
+                    }else{
+                        that.$message({
+                            message:res.data.msg ,
+                            type: 'warning',
+                            offset:50
+                        });
+                    }
+                })
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消删除'
+                });          
+            });
+        }
     },
     mounted() {
         this.token = JSON.parse(localStorage.getItem('userinif')).token;
-        // this.getgroupsname();
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
         this.postPageDailyPaymentList();
+        this.getTypeData();
         
+    },
+    watch:{
+        'feeSubTypeData.length': {
+        handler(newValue, oldValue) {
+            if (newValue !== oldValue) {
+                // this.banned=false
+            }
+        }
+    }
     }
 }
 </script>
@@ -284,8 +471,6 @@ export default {
         justify-content: end;
     }*/
     .search-ul{
-        display: flex;
-        justify-content: space-between;
         margin-bottom: 10px;
     }
     .search-li label{
@@ -293,17 +478,18 @@ export default {
     }
     .search-li{
         display: flex;
+        justify-content: space-between;
     }
     .search-li>div{
         margin-right: 10px;
     }
-    .form-box .el-table th.el-table__cell>.cell{
+    .dailyment-box .el-table th.el-table__cell>.cell{
         text-align: center;
     }
-    .form-box .el-table td.el-table__cell div{
+    .dailyment-box .el-table td.el-table__cell div{
         text-align: center;
     }
-    .form-box .block{
+    .dailyment-box .block{
         margin-top: 10px;
     }
     .visa-box .el-row{
@@ -344,4 +530,10 @@ export default {
         justify-content: space-between;
         align-items: center;
     }
+    .dailyment-box .el-link{
+        margin: 0 8px;
+    }
+    .search-li .feeType-box{
+        margin-right: 0;
+    }
 </style>

+ 436 - 4
src/components/Finance/DailyFeeedit.vue

@@ -1,13 +1,445 @@
 <template>
-    <div>
-        
+    <div v-loading="fullscreenLoading" class="dailyedit-box">
+        <div class="dailyedit-title">
+            新增日常费用付款申请款项
+        </div>
+        <el-form :model="ruleForm" :rules="rules" ref="ruleForm"  class="demo-ruleForm">
+            <div class="dailyedit-set">
+                <el-form-item label="类型标识:" label-width="85px" prop="transferation">
+                    <el-select :disabled="thesame" @change="trans()" v-model="ruleForm.transferation" placeholder="请选择转账标识">
+                        <el-option v-for="(item,index) in Transferlogo" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="转账标识:" prop="identification" label-width="85px">
+                    <el-select :disabled="banned" v-model="ruleForm.identification" placeholder="请选择费用类型">
+                        <el-option v-for="(item,index) in identificationset" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="费用类型:" prop="type" label-width="85px">
+                    <el-select :disabled="thesame" @change="typechange()" v-model="ruleForm.type" placeholder="请选择费用类型">
+                        <el-option v-for="(item,index) in typeset" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="费用名称:" prop="name" label-width="85px">
+                    <el-select :disabled="bannedtype" v-model="ruleForm.name" placeholder="请选择费用名称">
+                        <el-option v-for="(item,index) in nameset" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="申请公司:" prop="company" label-width="85px">
+                    <el-select :disabled="thesame" v-model="ruleForm.company" placeholder="请选择申请公司">
+                        <el-option v-for="(item,index) in companyset" :key="index" :label="item.companyName" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+            </div>
+            <el-form-item label="申请说明:" label-width="85px" prop="desc">
+                <el-input :disabled="thesame" type="textarea" v-model="ruleForm.desc"></el-input>
+            </el-form-item>
+            <div class="dailyfrom-title">
+                <div>录入具体费用</div>
+                <el-form-item>
+                    <el-button size="mini" @click="AddForm()" type="primary">新 增</el-button>
+                </el-form-item>
+            </div>
+            <div class="items-form">
+                <div v-for="(item,index) in itemsArr" :key="index" class="items-li">
+                    <el-form  :model="item" class="demo-form-inline" label-width="85px">
+                        <el-form-item label="费用项目:">
+                            <el-input :disabled="thesame" v-model="item.priceName" placeholder="费用项目名称"></el-input>
+                        </el-form-item>
+                        <el-form-item label="数量:">
+                            <template>
+                                <el-input-number :disabled="thesame" :min="1" v-model="item.quantity"></el-input-number>
+                            </template>
+                        </el-form-item>
+                        <el-form-item label="单价(RNB):">
+                            <el-input-number :disabled="thesame" :controls="false" v-model="item.price" :precision="2"></el-input-number>
+                        </el-form-item>
+                        <el-form-item label="小计(RNB):">
+                            <div class="sub-box">{{item.itemTotal=(item.quantity*item.price).toFixed(2)}}</div>
+                        </el-form-item>
+                        <el-form-item label="备注:">
+                            <el-input :disabled="thesame" v-model="item.remark" placeholder="备注"></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button
+                              size="mini"
+                              type="danger"
+                              :disabled="itemsArr.length<=1"
+                              @click="deleteRow(index,itemsArr )"><i class="el-icon-delete"></i></el-button>
+                          </el-form-item>
+                    </el-form>
+                </div>
+            </div>
+            <el-form-item style="margin-left: 0px;">
+                <el-button type="primary" @click="submitForm('ruleForm')">保 存</el-button>
+                <el-button @click="resetForm('ruleForm')">返 回</el-button>
+            </el-form-item>
+        </el-form>
     </div>
 </template>
 <script>
 export default {
-    
+    data(){
+        return{
+            editid:'',
+            userid:'',
+            token:'',
+            banned:true,
+            bannedtype:true,
+            thesame:false,//是否能编辑标识
+            ruleForm: {
+                transferation:'',
+                identification: '',
+                type: '',
+                name: '',
+                company: '',
+                desc:''
+            },
+            SumPrice:0,
+            itemsArr:[
+                {
+                    priceName:"",
+                    quantity:'',
+                    price:"",
+                    itemTotal:'',
+                    remark:""
+                }
+            ],
+            rules: {
+                transferation: [
+                    { required: true, message: '请选择转账标识', trigger: 'change' }
+                ],
+                identification: [
+                    { required: true, message: '请选择费用标识', trigger: 'change' }
+                ],
+                type: [
+                    { required: true, message: '请选择费用类型', trigger: 'change' }
+                ],
+                name: [
+                    { required: true, message: '请选择费用名称', trigger: 'change' }
+                ],
+                company: [
+                    { required: true, message: '请选择申请公司', trigger: 'change' }
+                ],
+                desc: [
+                    { required: true, message: '请填写申请说明', trigger: 'change' }
+                ],
+            },
+            Transferlogo:[],//类型标识
+            feeMarkSubTypeData:[],//转账标识ALL
+            identificationset:[],//转账标识
+            typeset:[],//费用类型
+            feeSubTypeData:[],//费用名称ALL
+            nameset:[],//费用名称
+            companyset:[],//申请公司
+            fullscreenLoading:false,//loading
+        }
+    },
+    methods:{
+        submitForm(formName) {
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    console.log(this.itemsArr)
+                    for(var g=0;g<this.itemsArr.length;g++){
+                        if(this.itemsArr[g].itemTotal!=""&&this.itemsArr[g].price!=0&&this.itemsArr[g].priceName!=""&&this.itemsArr[g].quantity!=""&&this.itemsArr[g].remark!=""){
+                            if(!this.thesame){
+                                for(var k=0;k<this.itemsArr.length;k++){
+                                    this.SumPrice+=Number(this.itemsArr[k].itemTotal)
+                                }
+                                if(this.editid!=undefined){
+                                    this.UpdateDailyPayment()
+                                }else{
+                                    this.AddDailyPayment()
+                                }
+                            }else{
+                                this.$message({
+                                    showClose: true,
+                                    message: '本申请不是您建立的或已被审核,无法修改!',
+                                    type: 'error'
+                                });
+                            }
+                        }else{
+                            this.$message({
+                                showClose: true,
+                                message: '请检查录入具体费用是否填写完整!',
+                                type: 'error'
+                            });
+                        }
+                    }
+ 
+                } else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
+        },
+        resetForm(formName) {
+            // this.$refs[formName].resetFields();
+            this.$router.push({ path: "/home/DailyFeePayment"});
+        },
+        AddForm(){
+            if(this.thesame){
+                this.$message({
+                    showClose: true,
+                    message: '本申请不是您建立的或已被审核,无法操作!',
+                    type: 'error'
+                });
+                return false
+            }
+            this.itemsArr.push(
+                {priceName: '', quantity: '', price:'',itemTotal:'', remark: ''}
+            )
+        },
+        deleteRow(index, rows) {
+            if(this.thesame){
+                this.$message({
+                    showClose: true,
+                    message: '本申请不是您建立的或已被审核,无法操作!',
+                    type: 'error'
+                });
+                return false
+            }
+            rows.splice(index, 1);
+        },
+        getTypeData() {
+            var url = "/api/Financial/PostPageSearchDailyPaymentPriceTypeData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.data.code == 200) {
+                    that.Transferlogo=res.data.data.feeMarkTypeData;
+                    that.feeMarkSubTypeData=res.data.data.feeMarkSubTypeData;
+                    that.typeset=res.data.data.feeTypeData;
+                    that.feeSubTypeData=res.data.data.feeSubTypeData;
+                    that.companyset=res.data.data.companyNameData;
+                }
+            })
+        },
+        trans(){
+            this.identificationset=[];
+            this.ruleForm.identification='';
+            for(var i=0;i<this.feeMarkSubTypeData.length;i++){
+                if(this.feeMarkSubTypeData[i].sTid==this.ruleForm.transferation){
+                    this.identificationset.push(this.feeMarkSubTypeData[i]);
+                }
+            }
+            if(this.identificationset.length==0){
+                this.banned=true;
+            }else{
+                this.banned=false;
+            }
+        },
+        typechange(){
+            this.nameset=[];
+            this.ruleForm.name='';
+            console.log(this.feeSubTypeData)
+            for(var i=0;i<this.feeSubTypeData.length;i++){
+                if(this.feeSubTypeData[i].sTid==this.ruleForm.type){
+                    this.nameset.push(this.feeSubTypeData[i]);
+                }
+            }
+            if(this.nameset.length==0){
+                this.bannedtype=true;
+            }else{
+                this.bannedtype=false;
+            }
+        },
+        AddDailyPayment(){
+            var url = "/api/Financial/PostAddDailyPayment"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    PortType: 1,
+                    UserId:that.userid,
+                    Instructions:that.ruleForm.desc,
+                    SumPrice:that.SumPrice,
+                    TransferTypeId:that.ruleForm.identification,
+                    PriceTypeId:that.ruleForm.name,
+                    CompanyId:that.ruleForm.company,
+                    FeeContents:that.itemsArr
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.data.code == 200) {
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'success',
+                        offset:50
+                    });
+                    that.$router.push({ path: "/home/DailyFeePayment"});
+                }
+            })
+        },
+        UpdateDailyPayment(){
+            var url = "/api/Financial/PostEditDailyPayment"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    PortType: 1,
+                    Id:that.editid,
+                    UserId:that.userid,
+                    Instructions:that.ruleForm.desc,
+                    SumPrice:that.SumPrice,
+                    TransferTypeId:that.ruleForm.identification,
+                    PriceTypeId:that.ruleForm.name,
+                    CompanyId:that.ruleForm.company,
+                    FeeContents:that.itemsArr
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.data.code == 200) {
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'success',
+                        offset:50
+                    });
+                    that.$router.push({ path: "/home/DailyFeePayment"});
+                }
+            })
+        },
+        getPostSearchDailyPaymentInfo(){
+            if(this.editid!=undefined){
+                console.log("jing")
+                this.fullscreenLoading=true;
+                var url = "/api/Financial/PostSearchDailyPaymentInfo"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + that.token
+                    },
+                    data: {
+                        PortType: 1,
+                        id:that.editid
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    console.log(that.feeMarkSubTypeData)
+                    if (res.data.code == 200) {
+                        that.itemsArr=res.data.data.feeContents;
+                        that.ruleForm.desc=res.data.data.instructions;
+                        setTimeout(function (){
+                            for(var a=0;a<that.feeMarkSubTypeData.length;a++){
+                                if(that.feeMarkSubTypeData[a].id==res.data.data.transferTypeId){
+                                    that.ruleForm.transferation=that.feeMarkSubTypeData[a].sTid;
+                                }
+                            }
+                            that.trans();
+                            that.ruleForm.identification=res.data.data.transferTypeId;
+                            for(var b=0;b<that.feeSubTypeData.length;b++){
+                                if(that.feeSubTypeData[b].id==res.data.data.priceTypeId){
+                                    that.ruleForm.type=that.feeSubTypeData[b].sTid;
+                                }
+                            }
+                            that.typechange()
+                            that.ruleForm.name=res.data.data.priceTypeId;
+                            that.fullscreenLoading=false;
+                            if(that.userid!=res.data.data.createUserId){
+                                that.thesame=true;
+                            }else if(res.data.data.fAudit!=0||res.data.data.mAudit!=0){
+                                that.thesame=true;
+                            }
+                            if(that.thesame==true){
+                                that.banned=true;
+                                that.bannedtype=true;
+                            }
+                        },1000);
+                        that.ruleForm.company=res.data.data.companyId;
+                    }
+                })
+            }
+        }
+    },
+    mounted(){
+        this.editid=this.$route.query.id;
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.getTypeData();
+        this.getPostSearchDailyPaymentInfo();
+    }
 }
 </script>
 <style>
-    
+    .dailyedit-box{
+        background-color: #fff;
+        padding: 10px;
+        box-shadow: 0 0 5px #0005;
+        border-radius: 10px;
+    }
+    .dailyedit-title{
+        font-size: 17px;
+        font-weight: 600;
+        color: #555;
+        margin-bottom: 30px;
+    }
+    .dailyedit-set{
+        display: flex;
+        justify-content: space-between;
+    }
+    .items-li{
+        border-bottom: 1px #DCDFE6 solid;
+        margin-bottom: 12px;
+    }
+    .items-li .demo-form-inline{
+        display: flex;
+        justify-content: space-between;
+    }
+    .dailyfrom-title{
+        font-size: 14px;
+        font-weight: 600;
+        color: #555;
+        margin-bottom: 30px;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+    }
+    .dailyfrom-title .el-form-item{
+        margin: 0;
+    }
+    .items-li .el-form-item{
+        margin-bottom: 10px;
+    }
+    .sub-box{
+        -ms-user-select: none;
+        -khtml-user-select: none;
+        -webkit-user-select: none;
+        -moz-user-select: none;
+        user-select: none;
+        font-family: cursive;
+        background-color: #FFF;
+        background-image: none;
+        border-radius: 4px;
+        border: 1px solid #DCDFE6;
+        -webkit-box-sizing: border-box;
+        box-sizing: border-box;
+        color: #606266;
+        display: inline-block;
+        height: 40px;
+        line-height: 40px;
+        outline: 0;
+        padding: 0 15px;
+        -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
+        transition: border-color .2s cubic-bezier(.645,.045,.355,1);
+        width: 100%;  
+    }
 </style>

Fichier diff supprimé car celui-ci est trop grand
+ 116 - 0
src/components/GPT/GPTindex.vue


+ 12 - 12
src/components/Login.vue

@@ -16,10 +16,10 @@
             <div class="login-box">
                 <div class="login-title">泛美国际 - AI智能办公系统</div>
                 <div class="login-input">
-                    <el-input class="accounts" placeholder="请输入您的账户" v-model="usernum">
+                    <el-input @keyup.enter.native="Login()" class="accounts" placeholder="请输入您的账户" v-model="usernum">
                         <i slot="prefix" class="el-input__icon icon-zhanghu"></i>
                     </el-input>
-                    <el-input class="passwords" placeholder="请输入您的密码" show-password v-model="password">
+                    <el-input @keyup.enter.native="Login()" class="passwords" placeholder="请输入您的密码" show-password v-model="password">
                         <i slot="prefix" class="el-input__icon icon-mima"></i>
                     </el-input>
                     <div class="el-input remembers">
@@ -33,7 +33,7 @@
                         </div>
                     </div>
                     <div class="loginbtn-box">
-                        <el-button @keyup.enter.native="Login()" @click="Login()" class="loginbtn"
+                        <el-button  @click="Login()" class="loginbtn"
                             v-loading.fullscreen.lock="fullscreenLoading" round>登 录</el-button>
                     </div>
                 </div>
@@ -121,15 +121,15 @@ export default {
         console.log(process.env.API_HOST);
 
         document.querySelector(".login-all").style.height = window.innerHeight + "px";
-        let that = this
-        document.onkeydown = function (e) {
-            e = window.event || e
-            //保证是在登录页面发出的enter事件
-            if (e.code === 'Enter' || e.code === 'enter' || e.code === 'NumpadEnter') {
-                //调用登录函数
-                that.Login();
-            }
-        }
+        // let that = this
+        // document.onkeydown = function (e) {
+        //     e = window.event || e
+        //     //保证是在登录页面发出的enter事件
+        //     if (e.code === 'Enter' || e.code === 'enter' || e.code === 'NumpadEnter') {
+        //         //调用登录函数
+        //         that.Login();
+        //     }
+        // }
     }
 }
 </script>

+ 255 - 0
src/components/OP/AirTicketRes.vue

@@ -0,0 +1,255 @@
+<template>
+    <div>
+        <div class="communal-list">
+            <div>
+
+                <div class="communal-title">
+                    <div>机票费用录入</div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-select v-model="DiId" placeholder="团组选择" @change="AirTicketResSelectChange">
+                            <el-option v-for="item in AirTicketResSelectData" :key="item.id" :label="item.groupName"
+                                :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <div>
+                        <router-link :to="{ path: '/home/OpAirTicketRes', query: { DiId } }">
+                            <el-button type="primary" style="margin-left: 10px;">新增</el-button>
+                        </router-link>
+                    </div>
+                </div>
+                <span style="font-weight: bold;">团队名称:</span>
+                {{ delegationInfo.teamName }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">客户:</span>
+                {{ delegationInfo.clientName }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">出访国家:</span>
+                {{ delegationInfo.visitCountry }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">起止日期:</span>
+                {{ delegationInfo.visitStartDate }}—{{ delegationInfo.visitEndDate }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">天数/人数:</span>
+                {{ delegationInfo.visitDays }}天/{{ delegationInfo.visitPNumber }}人
+            </div>
+            <hr style='background-color:#5555; height:1px; border:none;' />
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
+                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中...">
+                    <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="cTypeName" label="舱位类型" width="100">
+                    </el-table-column>
+                    <el-table-column prop="flightDescription" label="航班行程" width="220">
+                    </el-table-column>
+                    <el-table-column prop="clientName" label="客人名单" width="280">
+                    </el-table-column>
+                    <el-table-column prop="clientNum" label="客人人数" width="50">
+                    </el-table-column>
+                    <el-table-column prop="prePrice,preCurrencyStr" label="机票单价" width="120" sortable>
+                        <template slot-scope="scope">
+                            {{ scope.row.prePrice }}({{ scope.row.preCurrencyStr }})
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="price,currencyStr" label="机票总价" width="120">
+                        <template slot-scope="scope">
+                            {{ scope.row.price }}({{ scope.row.currencyStr }})
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="isAuditGM" label="是否审核" width="120">
+                        <template slot-scope="isAuditGM">
+                            <span v-if="isAuditGM.row.isAuditGM == 1">已通过</span>
+                            <span v-else-if="isAuditGM.row.isAuditGM == 0">未审核</span>
+                            <span v-else-if="isAuditGM.row.isAuditGM == 2">未通过</span>
+                            <span v-else>自动审核通过</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 12, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            loading: false,
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 12,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            DiId: '',
+            AirTicketResSelectData: [],
+            delegationInfo: {},
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        //团组下拉框
+        AirTicketResSelect() {
+            var url = "/api/Groups/AirTicketResSelect"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    userId: that.userId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.AirTicketResSelectData = res.data.data.groupName;
+                    debugger
+                    that.DiId = that.AirTicketResSelectData[0].id;
+                    that.AirTicketResList()
+                }
+
+            }).catch(function (error) {
+
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        AirTicketResSelectChange() {
+            this.AirTicketResList();
+        },
+        //团组信息绑定
+        AirTicketResList() {
+            var url = "/api/Groups/AirTicketResList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    diId: that.DiId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.tableDatas = res.data.data.airTicketReservations;
+                    that.tableData = that.tableDatas
+                    if (that.tableDatas.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize).length == 0) {
+                        if (that.currentPage > 1) {
+                            that.currentPage = that.currentPage - 1;
+                        }
+                    }
+                    that.delegationInfo = res.data.data.delegationInfo
+                }
+
+            }).catch(function (error) {
+
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        upDate(index, row) {
+            localStorage.setItem('CarDataEdit', JSON.stringify(row));
+            this.$router.push('/home/carDataEdit')
+        },
+        del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelCarData"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
+
+                    if (res.data.code == 200) {
+
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.carData();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+        }
+    },
+    mounted() {
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.AirTicketResSelect();
+        //this.AirTicketResList()
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 10px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 1 - 2
src/components/OP/OPgroup.vue

@@ -126,7 +126,6 @@
     </div>
 </template>
 <script>
-import { co, el } from '@fullcalendar/core/internal-common';
 export default {
     data() {
         return {
@@ -350,7 +349,7 @@ export default {
                             offset:50
                         });
                         row.tourCode=res.data.data.tourCode;
-                        rows.splice(index, 1);
+                        // rows.splice(index, 1);
                     }else{
                         that.$message({
                             message:res.data.msg ,

+ 342 - 0
src/components/OP/OpAirTicketRes.vue

@@ -0,0 +1,342 @@
+<template>
+    <div class="car_add">
+        <div>
+            <div class="communal-title">
+                <div>{{ title }}</div>
+            </div>
+
+        </div>
+        <hr style='background-color:#5555; height:1px; border:none;' />
+        <div style="color:red;display: flex;">
+            <div style="text-align:left;width:20%;">
+                *团组成本预算 - 机票的预算:
+            </div>
+            <div style="margin-left:20px;color:red;" v-if="airGroupCostParameter != null">
+                经济舱: {{ airGroupCostParameter.jjccb }}元/人 {{ airGroupCostParameter.jjcrs }}人
+                共:{{ airGroupCostParameter.jjccb * airGroupCostParameter.jjcrs
+                }}元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                公务舱: {{ airGroupCostParameter.gwccb }}元/人 {{ airGroupCostParameter.gwcrs }}人
+                共:{{ airGroupCostParameter.gwccb * airGroupCostParameter.gwcrs
+                }}元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            </div>
+            <div style="margin-left:20px;color:red;" v-else>
+                团组成本暂未开放此团数据!
+            </div>
+        </div>
+        <div>
+            <el-form :model="delegationInfo" ref="delegationInfo" label-width="100px" class="demo-ruleForm">
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="团组名称:" label-width="160px">
+                            <el-select v-model="DiIdSelect" placeholder="团组选择" @change="AirTicketResChange"
+                                style="width: 100%;">
+                                <el-option v-for="item in AirTicketResSelectData" :key="item.id" :label="item.groupName"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="团 号:" prop="tourCode" label-width="160px">
+                            <el-input placeholder="团号" v-model="delegationInfo.tourCode" :disabled="true">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="客户:" prop="clientName" label-width="160px">
+                            <el-input placeholder="客户" v-model="delegationInfo.clientName" :disabled="true">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="出访国家:" prop="visitCountry" label-width="160px">
+                            <el-input placeholder="出访国家" v-model="delegationInfo.visitCountry" :disabled="true">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+            </el-form>
+            <el-form :model="opData" ref="opData" label-width="100px" class="demo-ruleForm">
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="舱类型:" label-width="160px">
+                            <el-select v-model="DiIdSelect" placeholder="舱类型" style="width: 100%;">
+                                <el-option v-for="item in ticketClass" :key="item.id" :label="item.name" :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="机票单价:" prop="tourCode" label-width="160px">
+                            <el-input placeholder="机票单价" v-model="delegationInfo.tourCode" style="width: 58%;">
+                            </el-input>
+                            <el-select v-model="DiIdSelect" style="width: 35%;">
+                                <el-option v-for="item in currency" :key="item.id" :label="item.name"
+                                    :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="机票总价:" prop="clientName" label-width="160px">
+                            <el-input placeholder="机票总价:" v-model="delegationInfo.tourCode" style="width: 58%;">
+                            </el-input>
+                            <el-select v-model="DiIdSelect" style="width: 35%;">
+                                <el-option v-for="item in currency" :key="item.id" :label="item.name"
+                                    :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+
+
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="此舱位人数:" prop="visitCountry" label-width="160px">
+                            <el-input placeholder="此舱位人数:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否值机: " label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否选座:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="是否购买行李:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否行李直挂:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否火车票出票选座:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio label=1>是</el-radio>
+                                <el-radio label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 50%;">
+                        <el-form-item label="航班简述:" label-width="160px">
+                            <el-input placeholder="此舱位客人名称:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 50%;">
+                        <el-form-item label="城市:" prop="tourCode" label-width="160px">
+                            <el-input placeholder="此舱位客人名称:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="此舱位客人名称:" prop="Remark" label-width="160px">
+                            <el-input placeholder="此舱位客人名称:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div>
+                    <span style="color: red; padding-left: 100px;">
+                        请严格遵守此格式!!! 1. EK363 R1 WE08MAR CANDXB HK7 0015 0515 SEAME 2 3 (注意空格以及多条数据换行)
+                    </span>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="航班描述:" prop="Remark" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="航班描述"
+                                v-model="delegationInfo.Remark"></el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="费用描述:" prop="Remark" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="费用描述"
+                                v-model="delegationInfo.Remark"></el-input>
+                        </el-form-item>
+                    </div>
+                </div>``
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="备 注:" prop="Remark" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="备注" v-model="delegationInfo.Remark"></el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+            </el-form>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            title: "新增机票费用录入",
+            token: '',
+            userId: 0,
+            DiId: '',
+            DiIdSelect: '',
+            delegationInfo: {},
+            AirTicketResSelectData: [],//团组下拉框
+            ticketClass: [],//舱位下拉框
+            currency: [],//币种下拉框
+            payment: [],//支付方式下拉框
+            cardType: [],//卡类型下拉框
+            airGroupCostParameter: {},//机票成本预算
+            jjccb: 0,
+            jjcrs: 0,
+            jjczj: 0,
+            gwccb: 0,
+            gwcrs: 0,
+            gwczj: 0,
+            opData: {},
+        }
+    },
+    methods: {
+        //团组下拉框
+        AirTicketResSelect() {
+            var url = "/api/Groups/AirTicketResSelect"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    userId: that.userId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.AirTicketResSelectData = res.data.data.groupName;
+                    that.ticketClass = res.data.data.ticketClass;//舱位下拉框
+                    that.currency = res.data.data.currency;//币种下拉框
+                    that.payment = res.data.data.payment;//支付方式下拉框
+                    that.cardType = res.data.data.cardType;//卡类型下拉框
+                    that.DiIdSelect = parseInt(that.DiId)
+                    that.AirTicketResList()
+                }
+
+            })
+        },
+        AirTicketResChange() {
+            this.AirTicketResList();
+        },
+        AirTicketResList() {
+            var url = "/api/Groups/AirTicketResList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    diId: that.DiIdSelect
+                }
+            }).then(function (res) {
+
+                if (res.data.code == 200) {
+                    debugger
+                    that.delegationInfo = res.data.data.delegationInfo
+                    that.airGroupCostParameter = res.data.data.airGroupCostParameter
+                }
+            })
+        },
+    },
+
+    mounted() {
+
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.AirTicketResSelect();
+        this.DiId = this.$route.query.DiId
+
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.car_add .communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-bottom: 20px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.appraise-box {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+    margin: 50px 0;
+}
+
+.appraise-box>div {
+    width: 30%;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+
+.car_add {
+    background-color: #fff;
+    padding: 20px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+@media screen and (max-width: 1700px) {
+    .appraise-box>div {
+        width: 48%;
+    }
+
+    .appraise-box>div el-form-item__content {
+        width: 260px !important;
+    }
+}
+</style>

+ 123 - 21
src/components/OP/visaEdit.vue

@@ -88,7 +88,7 @@
             <div class="small-title">
                 <span>证件信息</span>
             </div>
-            <el-form v-for="(item, i) in customerCerts" :key="i" :rules="rules" ref="customerCerts" @submit.native.prevent>
+            <el-form v-for="(item, i) in customerCerts" :key="i" :rules="rulesCert" ref="deleClient" @submit.native.prevent>
                 <div class="foundation-box1">
                     <el-form-item label="证件类型" prop="sdId">
                         <el-select v-model="item.sdId" filterable placeholder="请选择" style="width: 164px;">
@@ -136,15 +136,18 @@
                     class="demo-deleClient" @submit.native.prevent>
                     <div class="foundation-box">
                         <div style="width: 100%;padding-left: 50px;color: red;font-size: 12px;">
-                            若信息有误或没有单位请到客户公司资料编辑
+                            若下拉框没有你想选择的公司,请点击+添加
                         </div>
                         <el-form-item label="单位名称:" prop="companyName">
-                            <el-select v-model="customerCompany.id" filterable placeholder="请选择公司"
+                            <el-select v-model="customerCompany.id" clearable filterable placeholder="请选择公司"
                                 @change="companyChange(customerCompany.id)">
                                 <el-option v-for="item in CompanySelectData" :key="item.id" :label="item.companyName"
                                     :value="item.id">
                                 </el-option>
                             </el-select>
+
+                            <el-button circle icon="el-icon-plus" @click="btnAddCom()"></el-button>
+
                         </el-form-item>
                         <el-form-item label="单位地址:" disabled prop="companyAddress">
                             <el-input v-model="customerCompany.address" :disabled="true"></el-input>
@@ -681,8 +684,37 @@
         </div>
         <div>
             <el-button type="primary" @click="submitForm">确定</el-button>
-            <el-button @click="resetForm('deleClient')">重置</el-button>
+            <router-link to="/home/DeleClient">
+                <el-button type="primary" style="margin-left: 10px;">取消</el-button>
+            </router-link>
         </div>
+        <el-dialog title="添加客户公司信息" :visible.sync="TypeVisible" width="30%" :before-close="handleClose"
+            :close-on-click-modal="false">
+            <div>
+                <el-form :model="OperationData" :rules="rulesCompany" ref="OperationData" label-width="100px"
+                    class="demo-ruleForm">
+                    <el-form-item label="公司名称" prop="companyName">
+                        <el-input placeholder="请输入内容" v-model="OperationData.companyName">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="公司地址" prop="address">
+                        <el-input placeholder="请输入内容" v-model="OperationData.address">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="公司编码" prop="postCodes">
+                        <el-input placeholder="请输入内容" v-model="OperationData.postCodes">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="备 注" prop="remark">
+                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="OperationData.remark"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="TypeVisible = false">取 消</el-button>
+                <el-button type="primary" @click="AddBtn">确 定</el-button>
+            </span>
+        </el-dialog>
     </div>
 </template>
 
@@ -693,13 +725,15 @@ export default {
             rules: {
                 lastName: [
                     { required: true, message: '请输入姓', trigger: 'change' },
+                    { required: true, message: '请输入姓', trigger: 'blur' },
                     { min: 1, max: 3, message: '长度在 1 到 3 个字符', trigger: 'change' }
                 ],
                 firstName: [
                     { required: true, message: '请输入名', trigger: 'change' },
+                    { required: true, message: '请输入名', trigger: 'blur' },
                     { min: 1, max: 3, message: '长度在 1 到 3 个字符', trigger: 'change' }
                 ],
-                oldName: [{ required: true, message: '请输入曾用名,没有则填写无', trigger: 'change' },],
+                oldName: [{ required: true, message: '请输入曾用名,没有则填写无', trigger: 'blur' },],
                 phone: [
                     { required: true, message: '请输入移动电话', trigger: 'change' },
                     {
@@ -708,14 +742,14 @@ export default {
                         trigger: "change"
                     }
                 ],
-                birthDay: [{ required: true, message: '请选择出生日期', trigger: 'change', },],
-                party: [{ required: true, message: '请输入党派宗教', trigger: 'change', },],
-                sex: [{ required: true, message: '请选择性别', trigger: 'change', },],
-                marriage: [{ required: true, message: '请选择婚姻状态', trigger: 'change', }],
-                nationality: [{ required: true, message: '请输入国籍', trigger: 'change' },],
-                birthCity: [{ required: true, message: '请输入出生城市', trigger: 'change' }],
-                birthProvince: [{ required: true, message: '请输入出生省份', trigger: 'change' }],
-                highestEducation: [{ required: true, message: '请输入最高学历', trigger: 'change' }],
+                birthDay: [{ required: true, message: '请选择出生日期', trigger: 'blur', },],
+                party: [{ required: true, message: '请输入党派宗教', trigger: 'blur', },],
+                sex: [{ required: true, message: '请选择性别', trigger: 'blur', },],
+                marriage: [{ required: true, message: '请选择婚姻状态', trigger: 'blur', }],
+                nationality: [{ required: true, message: '请输入国籍', trigger: 'blur' },],
+                birthCity: [{ required: true, message: '请输入出生城市', trigger: 'blur' }],
+                birthProvince: [{ required: true, message: '请输入出生省份', trigger: 'blur' }],
+                highestEducation: [{ required: true, message: '请输入最高学历', trigger: 'blur' }],
                 tel: [
                     { required: true, message: '请输入固话', trigger: 'change' },
                     {
@@ -740,9 +774,9 @@ export default {
                         trigger: "change"
                     }
                 ],
-                address: [{ required: true, message: '请输入现居住地址', trigger: 'change' }],
-                costBearers: [{ required: true, message: '请输入费用承担着', trigger: 'change' }],
-                tableOpName: [{ required: true, message: '请输入经办人', trigger: 'change' }],
+                address: [{ required: true, message: '请输入现居住地址', trigger: 'blur' }],
+                costBearers: [{ required: true, message: '请输入费用承担着', trigger: 'blur' }],
+                tableOpName: [{ required: true, message: '请输入经办人', trigger: 'blur' }],
                 tableOpTel: [
                     { required: true, message: '请输入经办人联系方式', trigger: 'change' },
                     {
@@ -751,13 +785,40 @@ export default {
                         trigger: "change"
                     }
                 ],
-                tableDate: [{ required: true, message: '请输入填表时间', trigger: 'change' }],
+                tableDate: [{ required: true, message: '请输入填表时间', trigger: 'blur' }],
+                //证件验证
+
+            },
+            rulesCert: {
+                certNo: [{ required: true, message: '请输入费用承担着', trigger: 'change' }],
+            },
+            rulesCompany: {
+                companyName: [
+                    { required: true, message: '请输入客户公司名称', trigger: 'blur' },
+                ],
+                address: [
+                    { required: true, message: '请输入客户公司地址', trigger: 'blur' },
+                ],
+                postCodes: [
+                    { required: true, message: '请输入客户公司邮编', trigger: 'blur' },
+                ],
             },
             Id: 0,
             token: '',
             userId: 0,
             Status: 0,
             typeStr: '',
+            TypeVisible: false,
+            OperationData: {
+                status: 0,
+                id: 0,
+                companyName: "",
+                address: "",
+                postCodes: "",
+                lastedOpUserId: 0,
+                createUserId: 0,
+                remark: ""
+            },
             //基础信息
             deleClient: {
                 id: 0,
@@ -1002,6 +1063,50 @@ export default {
                 that.$message.error("网络错误,请稍后重试");
             });
         },
+        handleClose(done) {
+            done();
+        },
+        btnAddCom() {
+            this.OperationData = {
+                status: 1,
+                id: 0,
+                companyName: "",
+                address: "",
+                postCodes: "",
+                lastedOpUserId: this.userId,
+                createUserId: this.userId,
+                remark: ""
+            },
+                this.TypeVisible = true;
+            this.typeName = "添加客户公司资料"
+        },
+        AddBtn() {
+            this.$refs.OperationData.validate((valid) => {
+                if (valid) {
+                    var that = this
+                    var url = "/api/CRM/OperationClientCompany"
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.OperationData
+                    }).then(function (res) {
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: res.data.msg,
+                                type: 'success'
+                            });
+                            that.CompanySelect();
+                            that.TypeVisible = false;
+                        } else {
+                            that.$message.error(res.data.msg);
+                        }
+                    })
+                }
+            })
+        },
         CompanySelect() {
             var url = "/api/CRM/GetClientCompanyList"
             var that = this
@@ -1131,7 +1236,7 @@ export default {
                             });
                             that.loading = true;
                             setTimeout(() => {
-                                // that.$router.push('/home/HotelData')
+                                that.$router.push('/home/DeleClient')
                             }, 3000);
                         } else {
                             that.$message.error(res.data.msg);
@@ -1145,9 +1250,6 @@ export default {
                 }
             });
         },
-        resetForm(formName) {
-            this.$refs[formName].resetFields();
-        },
         //添加家庭信息
         customerFamilyAdd() {
             this.customerFamily.push({

+ 296 - 0
src/components/Resource/AirTicketAgent.vue

@@ -0,0 +1,296 @@
+<template>
+    <div>
+        <div class="communal-list">
+            <div class="communal-title">
+                <div>代理出票合作方资料</div>
+                <div class="communal-box">
+                    <el-input @input="Inquireclick()" placeholder="代理方名称" v-model="input" clearable style="width: 350px;">
+                    </el-input>
+                    <el-button type="primary" @click="addData" style="margin-left: 10px;">新增</el-button>
+                </div>
+            </div>
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
+                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中...">
+                    <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="name" label="名称">
+                    </el-table-column>
+                    <el-table-column prop="bank" label="开户行">
+                    </el-table-column>
+                    <el-table-column prop="account" label="账户">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 12, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+        <el-dialog :title="title" :visible.sync="OpVisible" width="30%" :before-close="handleClose"
+            :close-on-click-modal="false">
+            <div>
+                <el-form :model="OpData" :rules="rules" ref="OpData" label-width="100px" class="demo-ruleForm">
+                    <el-form-item label="名称" prop="name">
+                        <el-input placeholder="请输入名称" v-model="OpData.name">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="开户行" prop="bank">
+                        <el-input placeholder="请输入开户行" v-model="OpData.bank">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="账户" prop="account">
+                        <el-input placeholder="请输入账户" v-model="OpData.account">
+                        </el-input>
+                    </el-form-item>
+
+                    <el-form-item label="备 注" prop="remark">
+                        <el-input type="textarea" :rows="3" placeholder="请输入备注" v-model="OpData.remark"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="OpVisible = false">取 消</el-button>
+                <el-button type="primary" @click="OpDateBtn">确 定</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            loading: false,
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 12,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            OpVisible: false,
+            title: '添加代理出票合作方',
+            OpData: {
+                status: 0,
+                id: 0,
+                name: "",
+                account: "",
+                bank: "",
+                createUserId: 0,
+                remark: ""
+            },
+
+            rules: {
+                name: [
+                    { required: true, message: '请输入合作方名称', trigger: 'blur' },
+                ],
+                account: [
+                    { required: true, message: '请输入合作方开户账户', trigger: 'blur' },
+                ],
+                bank: [
+                    { required: true, message: '请输入合作方开户银行', trigger: 'blur' },
+                ],
+            },
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        QueryAirTicketAgent() {
+            this.loading = true
+            var url = "/api/Resource/QueryAirTicketAgent"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    PageIndex: that.currentPage,
+                    PageSize: that.PageSize
+                }
+            }).then(function (res) {
+                console.log(res)
+
+                if (res.data.code == 200) {
+
+                    that.tableData = res.data.data.pageSource;
+                    that.pageSize = res.data.data.pageSize;
+                    that.PageIndex = res.data.data.pageIndex
+                    that.tableDatas = that.tableData;
+
+                    if (that.tableDatas.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize).length == 0) {
+                        if (that.currentPage > 1) {
+                            that.currentPage = that.currentPage - 1;
+                        }
+                    }
+                }
+                that.loading = false
+            }).catch(function (error) {
+                that.loading = false
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        //搜索框处理
+        Inquireclick() {
+            var newarr = [];
+            if (this.input == "") {
+                newarr = this.tableData;
+            } else {
+                for (var i = 0; i < this.tableData.length; i++) {
+                    if (this.tableData[i].name.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    }
+                }
+            }
+            this.tableDatas = newarr;
+            this.currentPage = 1;
+        },
+
+        upDate(index, row) {
+            this.OpVisible = true;
+            this.title = '修改代理出票合作方资料'
+            this.OpData.status = 2
+            this.OpData.id = row.id
+            this.OpData.name = row.name
+            this.OpData.account = row.account
+            this.OpData.bank = row.bank
+            this.OpData.createUserId = this.userId
+            this.OpData.remark = row.remark
+        },
+        addData() {
+            this.title = '添加代理出票合作方资料'
+            this.OpVisible = true;
+            this.OpData.status = 1
+            this.OpData.id = 0
+            this.OpData.createUserId = this.userId
+        },
+        OpDateBtn() {
+            this.$refs.OpData.validate((valid) => {
+                if (valid) {
+                    var that = this;
+                    var url = "/api/Resource/OpAirTicketAgent"
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.OpData
+                    }).then(function (res) {
+                        console.log(res)
+
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: res.data.msg,
+                                type: 'success'
+                            });
+                            that.OpVisible = false;
+                            that.QueryAirTicketAgent();
+                        } else {
+                            that.$message.error(res.data.msg,);
+                        }
+                    })
+                }
+            })
+        },
+
+        del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelAirTicketAgent"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
+
+                    if (res.data.code == 200) {
+
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.QueryAirTicketAgent();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+        }
+    },
+    mounted() {
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.QueryAirTicketAgent();
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 10px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 38 - 27
src/components/Resource/CarData.vue

@@ -187,35 +187,46 @@ export default {
             console.log(item);
         },
         del(index, row) {
-            var url = "/api/Resource/DelCarData"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelCarData"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.carData();
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.carData();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

+ 1 - 1
src/components/Resource/CarDataAdd.vue

@@ -42,7 +42,7 @@
                 <el-row>
                     <el-col :span="8">
                         <el-form-item label="联系人" prop="Contact">
-                            <el-input placeholder="单位地址" v-model="addData.Contact">
+                            <el-input placeholder="联系人" v-model="addData.Contact">
                             </el-input>
                         </el-form-item>
                     </el-col>

+ 1 - 1
src/components/Resource/CarDataEdit.vue

@@ -41,7 +41,7 @@
                 <el-row>
                     <el-col :span="8">
                         <el-form-item label="联系人" prop="Contact">
-                            <el-input placeholder="单位地址" v-model="upData.Contact">
+                            <el-input placeholder="联系人" v-model="upData.Contact">
                             </el-input>
                         </el-form-item>
                     </el-col>

+ 38 - 28
src/components/Resource/CountryFeeCost.vue

@@ -176,36 +176,46 @@ export default {
         },
 
         del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelCountryFeeCost"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-            var url = "/api/Resource/DelCountryFeeCost"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
-
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.HotelData();
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.HotelData();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

+ 11 - 17
src/components/Resource/CountryFeeCostOperation.vue

@@ -77,9 +77,11 @@
                     </div>
                     <div style="width: 49%;">
                         <el-form-item label="签证费用" label-width="125px" prop="VisaPrice">
-                            <el-input placeholder="签证费用" v-model="addData.VisaPrice">
+                            <el-input-number style="width:100%" v-model="addData.VisaPrice" auto-complete="off"
+                                :precision="2" :controls="false"></el-input-number>
+                            <!-- <el-input placeholder="签证费用" v-model="addData.VisaPrice">
                                 <template slot="append">元</template>
-                            </el-input>
+                            </el-input> -->
                         </el-form-item>
                     </div>
                 </div>
@@ -102,9 +104,8 @@
                     </div>
                     <div style="width: 49%;">
                         <el-form-item label="加急签证费用" label-width="125px" prop="UrgentPrice">
-                            <el-input placeholder="加急签证费用" v-model="addData.UrgentPrice">
-                                <template slot="append">元</template>
-                            </el-input>
+                            <el-input-number style="width:100%" v-model="addData.UrgentPrice" auto-complete="off"
+                                :precision="2" :controls="false"></el-input-number>
                         </el-form-item>
                     </div>
                 </div>
@@ -150,32 +151,25 @@ export default {
 
                 VisaPrice: [
                     { required: true, message: '签证金额不能为空', trigger: 'blur' },
-                    {
-                        pattern: '^([1-9][0-9]*)+(.[0-9]{1,2})?$',
-                        message: "小数部分为0到2位",
-                        trigger: "blur"
-                    }
+                    { pattern: /^(([1-9]?\d{0,8}(\.\d{1,2})?)|999999999|999999999\.(0){1,2})$/, message: '请输入正确的金额(最多2位小数)' }
                 ],
                 VisaTime: [
                     { required: true, message: '签证时间不能为空', trigger: 'blur' },
                     {
-                        pattern: '^([1-9][0-9]*)?$',
+                        pattern: '^([0-9][0-9]*)?$',
                         message: "请正确的输入天数",
                         trigger: "blur"
                     }
                 ],
                 UrgentPrice: [
                     { required: true, message: '加急签证金额不能为空', trigger: 'blur' },
-                    {
-                        pattern: '^([1-9][0-9]*)+(.[0-9]{1,2})?$',
-                        message: "小数部分为0到2位",
-                        trigger: "blur"
-                    }
+
+                    { pattern: /^(([1-9]?\d{0,8}(\.\d{1,2})?)|999999999|999999999\.(0){1,2})$/, message: '请输入正确的金额(最多2位小数)' }
                 ],
                 UrgentTime: [
                     { required: true, message: '加急签证时间不能为空', trigger: 'blur' },
                     {
-                        pattern: '^([1-9][0-9]*)?$',
+                        pattern: '^([0-9][0-9]*)?$',
                         message: "请正确的输入天数",
                         trigger: "blur"
                     }

+ 38 - 27
src/components/Resource/LocalGuide.vue

@@ -171,35 +171,46 @@ export default {
             console.log(item);
         },
         del(index, row) {
-            var url = "/api/Resource/DelLocalGuide"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelLocalGuide"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.LocalGuide();
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.LocalGuide();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

+ 38 - 27
src/components/Resource/ThreeCode.vue

@@ -139,35 +139,46 @@ export default {
         },
 
         del(index, row) {
-            var url = "/api/Resource/DelThreeCode"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelThreeCode"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.ThreeCode();
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.ThreeCode();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

+ 4 - 5
src/components/Resource/ThreeCodeOperation.vue

@@ -188,11 +188,10 @@ export default {
             })
         },
         upData() {
-
-            for (var i = 0; i < this.tableData.length; i++) {
-                if (this.tableData[i].id == parseInt(this.addData.Id)) {
-
-                    this.ThreeCodeData = this.tableData[i];
+            debugger
+            for (var i = 0; i < this.tableData.pageSource.length; i++) {
+                if (this.tableData.pageSource[i].id == parseInt(this.addData.Id)) {
+                    this.ThreeCodeData = this.tableData.pageSource[i];
                     break;
                 }
             }

+ 7 - 14
src/components/system/Company.vue

@@ -35,7 +35,7 @@
                     </el-table-column> -->
                     <el-table-column label="操作">
                         <template slot-scope="scope">
-                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" @click="upDateOp(scope.$index, scope.row)">编辑</el-button>
                             <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
                         </template>
                     </el-table-column>
@@ -282,8 +282,7 @@ export default {
             this.currentPage = 1;
         },
         //#region  修改操作
-        upDate(index, row) {
-
+        upDateOp(index, row) {
             this.upDataVisible = true;
             this.updata.Id = row.id
             this.updata.CompanyCode = row.companyCode
@@ -299,12 +298,12 @@ export default {
 
         },
         upDateBtn() {
-
-            var that = this
-            that.$refs.updata.validate((valid) => {
+            this.$refs.updata.validate((valid) => {
                 if (valid) {
-
+                    var that = this
                     if (that.updata.Id != 0) {
+                        this.updata.ContactUserId = this.valueUserValue
+                        this.updata.ParentCompanyId = this.valueCompanyValue
                         if (that.updata.CompanyName == "" || that.updata.CompanyName == undefined) {
                             that.$message.error("公司名称不能为空");
                             return
@@ -347,9 +346,6 @@ export default {
                             }
                         })
                     }
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             }).catch(function (error) {
                 that.$message.error("网络错误,请稍后重试");
@@ -362,7 +358,7 @@ export default {
         //#endregion
         del(index, row) {
 
-            this.$confirm('此操作将取消订单, 是否继续?', '提示', {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
@@ -475,9 +471,6 @@ export default {
                             that.$message.error('添加失败!');
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             }).catch(function (error) {
                 that.$message.error("网络错误,请稍后重试");

+ 7 - 10
src/components/system/Department.vue

@@ -286,13 +286,17 @@ export default {
         },
         //#region  修改操作
         upDate(index, row) {
-
             this.upDepVisible = true;
             this.upData.Id = row.id
             this.upData.CompanyId = row.companyId
             this.upData.DepCode = row.depCode
             this.upData.DepName = row.depName
-            this.upData.ParentDepId = row.parentDepId
+            if (row.parentDepId == 0) {
+                this.upData.ParentDepId = ''
+            } else {
+                this.upData.ParentDepId = row.parentDepId
+            }
+
             this.upData.Remark = row.remark
         },
         upDateBtn() {
@@ -336,9 +340,6 @@ export default {
                             that.$message.error('修改失败!');
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             }).catch(function (error) {
                 that.$message.error("网络错误,请稍后重试");
@@ -351,7 +352,7 @@ export default {
         //#endregion
         del(index, row) {
 
-            this.$confirm('此操作将取消订单, 是否继续?', '提示', {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
@@ -369,7 +370,6 @@ export default {
                     }
                 }).then(function (res) {
                     console.log(res)
-
                     if (res.data.code == 200) {
                         that.$message({
                             type: 'success',
@@ -443,9 +443,6 @@ export default {
                             that.$message.error('添加失败!');
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             }).catch(function (error) {
                 that.$message.error("网络错误,请稍后重试");

+ 4 - 10
src/components/system/JobPost.vue

@@ -56,7 +56,7 @@
                             </el-option>
                         </el-select>
                     </el-form-item>
-                    <el-form-item label="上级部门" prop="ParentDepId">
+                    <el-form-item label="所属部门" prop="DepId">
                         <el-select v-model="addData.DepId" placeholder="所属部门">
                             <el-option v-for="item in depData" :key="item.id" :label="item.depName" :value="item.id">
                             </el-option>
@@ -87,7 +87,7 @@
                             </el-option>
                         </el-select>
                     </el-form-item>
-                    <el-form-item label="上级部门" prop="DepId">
+                    <el-form-item label="所属部门" prop="DepId">
                         <el-select v-model="upData.DepId" placeholder="所属部门">
                             <el-option v-for="item in depData" :key="item.id" :label="item.depName" :value="item.id">
                             </el-option>
@@ -308,9 +308,6 @@ export default {
                             that.$message.error('修改失败!');
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             })
         },
@@ -321,7 +318,7 @@ export default {
         //#endregion
         del(index, row) {
 
-            this.$confirm('此操作将取消订单, 是否继续?', '提示', {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
@@ -345,7 +342,7 @@ export default {
                             type: 'success',
                             message: '删除成功!'
                         });
-                        that.Department();
+                        that.jobPost();
                     } else {
                         that.$message.error("删除失败,请稍后重试");
                     }
@@ -403,9 +400,6 @@ export default {
                             that.$message.error('添加失败!');
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             })
         },

+ 42 - 31
src/components/system/SetData.vue

@@ -92,7 +92,10 @@ export default {
             AddSetDataTypeVisible: false,
             rules: {
                 name: [
-                    { required: true, message: '请输数据类型名称', trigger: 'blur' },
+                    { required: true, message: '板块名称', trigger: 'blur' },
+                ],
+                sTid: [
+                    { required: true, message: '请选择数据类型', trigger: 'blur' },
                 ],
             },
             setDataType: [
@@ -254,43 +257,51 @@ export default {
                             that.$message.error(res.data.msg);
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             })
         },
         //点击删除
         del(index, row) {
-            var url = "/api/System/DelSetData"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/System/DelSetData"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.SetData();
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.SetData();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

+ 38 - 30
src/components/system/SetDataType.vue

@@ -218,43 +218,51 @@ export default {
                             that.$message.error(res.data.msg);
                         }
                     })
-                } else {
-                    this.$message.error('请完善信息在保存!');
-                    return false;
                 }
             })
         },
         //点击删除
         del(index, row) {
-            var url = "/api/System/DelSetDataType"
-            var that = this
-            this.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + this.token
-                },
-                data: {
-                    Id: row.id,
-                    DeleteUserId: this.userId
-                }
-            }).then(function (res) {
-                console.log(res)
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/System/DelSetDataType"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
 
-                if (res.data.code == 200) {
+                    if (res.data.code == 200) {
 
-                    that.$message({
-                        message: '删除成功',
-                        type: 'success'
-                    });
-                    that.SetDataType();
-                } else {
-                    that.$message.error('删除失败!');
-                }
-                that.loading = false
-            }).catch(function (error) {
-                that.loading = false
-                that.$message.error("网络错误,请稍后重试");
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.SetDataType();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
             });
         }
     },

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

@@ -32,7 +32,7 @@
                     </el-table-column>
                     <el-table-column prop="phone" label="手机号" width="180">
                     </el-table-column>
-                    <el-table-column label="认识审核" prop="hrAudit">
+                    <el-table-column label="人事审核" prop="hrAudit">
                         <template slot-scope="hrAudit">
                             <span>{{ hrAudit.row.hrAudit == 1 ? "审核通过" : "未通过/未审核" }}</span>
                         </template>

+ 4 - 3
src/main.js

@@ -7,10 +7,11 @@ import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-chalk/index.css';
 import './assets/icon/iconfont.css'
 import store from './store/index.js';
-
+import VueTypedJs from 'vue-typed-js'
+Vue.use(VueTypedJs)
 import axios from 'axios';
-//axios.defaults.baseURL = 'http://132.232.92.186:8888';
-axios.defaults.baseURL = 'http://localhost:5256/';
+axios.defaults.baseURL = 'http://132.232.92.186:8888';
+// axios.defaults.baseURL = 'http://localhost:5256/';
 import { Message } from "element-ui";
 Vue.prototype.$message = Message
 Vue.prototype.$axios = axios;

+ 24 - 0
src/router/index.js

@@ -48,6 +48,10 @@ import OCRIdentify from '@/components/OP/OCRIdentify';
 import GroupsTaskAssignment from '@/components/OP/GroupsTaskAssignment';
 import DailyFeePayment from '@/components/Finance/DailyFeePayment';
 import DailyFeeedit from '@/components/Finance/DailyFeeedit';
+import GPTindex from '@/components/GPT/GPTindex';
+import AirTicketAgent from '@/components/Resource/AirTicketAgent';
+import AirTicketRes from '@/components/OP/AirTicketRes';
+import OpAirTicketRes from '@/components/OP/OpAirTicketRes';
 
 Vue.use(Router)
 
@@ -276,6 +280,26 @@ export default new Router({
           name: 'DailyFeeedit',
           component: DailyFeeedit
         },
+        {
+          path: '/home/GPTindex',
+          name: 'GPTindex',
+          component: GPTindex
+        },
+        {
+          path: '/home/AirTicketAgent',
+          name: 'AirTicketAgent',
+          component: AirTicketAgent
+        },
+        {
+          path: '/home/AirTicketRes',
+          name: 'AirTicketRes',
+          component: AirTicketRes
+        },
+        {
+          path: '/home/OpAirTicketRes',
+          name: 'OpAirTicketRes',
+          component: OpAirTicketRes
+        },
       ]
     },
     {