Преглед на файлове

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

liuhj преди 2 години
родител
ревизия
c131310bad
променени са 3 файла, в които са добавени 204 реда и са изтрити 46 реда
  1. 39 4
      src/components/MCR/MarketCustomerResourcesHome.vue
  2. 118 41
      src/components/MCR/MarketCustomerResourcesOperation.vue
  3. 47 1
      src/components/OP/AirTicketRes.vue

+ 39 - 4
src/components/MCR/MarketCustomerResourcesHome.vue

@@ -43,7 +43,7 @@
 
                 </div>
                 <!-- textbox框 -->
-                <div style="display: flex;margin-top: 10px;">
+                <div style="display: flex;margin-top: 10px;position: relative;">
                     <div style="width: 29%;">
                         <el-input v-model="inputLXR" placeholder="联系人"></el-input>
                     </div>
@@ -56,8 +56,15 @@
                         <el-input v-model="inputDW" placeholder="单位"></el-input>
                     </div>
                     &nbsp;
-                    <div style="margin-left: 50px;">
-                        <el-button type="primary" @click="QueryData">查 询</el-button>
+                    <div class="btnOp">
+                        <div>
+                            <el-button type="primary" @click="Add">新 增</el-button>
+                        </div>
+                        <div style="height: 10px;">
+                        </div>
+                        <div>
+                            <el-button type="primary" @click="QueryData">查 询</el-button>
+                        </div>
                     </div>
                 </div>
 
@@ -265,7 +272,29 @@ export default {
             this.$router.push('/home/MCROper?id=' + row.id);
         },
         Del(row) {
-            console.log(row.id);
+            var that = this;
+            var delData = {
+                "id": row.id,
+                "deleteUserId": JSON.parse(localStorage.getItem("userinif")).userInfo.userId
+            }
+            this.$axios.post('/api/MarketCustomerResources/NewClientDel', delData, {
+                headers: {
+                    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IkZ1dHVyZSIsImV4cCI6MTY3OTU0MjgwNSwiaXNzIjoiT0FTeXN0ZW0uY29tIiwiYXVkIjoiT0FTeXN0ZW0uY29tIn0.iy5SUInq1p3yjZultRPyzCa2ekLeepSdMLxvPwXY6MI',
+                }
+            }).then(resp => {
+                if (resp.data.code == 200) {
+                    that.$message({
+                        message: '删除成功!',
+                        type: 'success'
+                    });
+                } else {
+                    that.$message.error(resp.data.msg);
+                }
+                that.pageload();
+            });
+        },
+        Add(row) {
+            this.$router.push('/home/MCROper?id=' + 0);
         }
     },
     mounted() {
@@ -326,4 +355,10 @@ body {
 .job-input .el-select {
     margin-right: 5px;
 }
+
+.btnOp {
+    position: absolute;
+    right: 6px;
+    top: -50px;
+}
 </style>

+ 118 - 41
src/components/MCR/MarketCustomerResourcesOperation.vue

@@ -5,13 +5,13 @@
             <el-button type="primary" @click="save">{{ BtnTitle }}</el-button>
         </div>
         <div>
-            <el-form ref="form" :model="requestData" label-width="110px">
+            <el-form :model="requestData" label-width="110px" :rules="rules" ref="BindData">
                 <div>
                     <el-row>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="客户级别:">
-                                    <el-select v-model="requestData.lvlid" placeholder="请选择活动区域">
+                                <el-form-item label="客户级别:" prop="lvlid">
+                                    <el-select v-model="requestData.lvlid" placeholder="请选择客户级别">
                                         <el-option v-for="item in level" :key="item.id" :label="item.name"
                                             :value="item.id"></el-option>
                                     </el-select>
@@ -20,8 +20,8 @@
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="客户类别:">
-                                    <el-select v-model="requestData.category" placeholder="请选择活动区域">
+                                <el-form-item label="客户类别:" prop="category">
+                                    <el-select v-model="requestData.category" placeholder="请选择客户类别">
                                         <el-option v-for="item in customerClass" :key="item.id" :label="item.name"
                                             :value="item.id"></el-option>
                                     </el-select>
@@ -30,8 +30,8 @@
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="权重:">
-                                    <el-select v-model="requestData.weight" placeholder="请选择活动区域">
+                                <el-form-item label="权重:" prop="weight">
+                                    <el-select v-model="requestData.weight" placeholder="权重">
                                         <el-option label="A" value="393"></el-option>
                                         <el-option label="B" value="392"></el-option>
                                         <el-option label="C" value="391"></el-option>
@@ -45,7 +45,7 @@
                     <el-row>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="联系人">
+                                <el-form-item label="联系人" prop="contact">
                                     <el-input v-model="requestData.contact"></el-input>
                                 </el-form-item>
                             </div>
@@ -54,18 +54,19 @@
                             <div class="grid-content bg-purple">
                                 <el-form-item label="性别">
                                     <el-select v-model="requestData.gender" placeholder="请选择活动区域">
-                                        <el-option label="男" value="0"></el-option>
-                                        <el-option label="女" value="1"></el-option>
-                                        <el-option label="暂无" value="2"></el-option>
+                                        <el-option label="男" :value="0"></el-option>
+                                        <el-option label="女" :value="1"></el-option>
+                                        <el-option label="暂无" :value="2"></el-option>
                                     </el-select>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="手机号">
+                                <el-form-item label="手机号" prop="telephone">
                                     <el-input v-model="requestData.telephone"></el-input>
-                                </el-form-item></div>
+                                </el-form-item>
+                            </div>
                         </el-col>
                     </el-row>
                 </div>
@@ -87,7 +88,7 @@
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="职务:">
+                                <el-form-item label="职务:" prop="job">
                                     <el-input v-model="requestData.job"></el-input>
                                 </el-form-item>
                             </div>
@@ -98,7 +99,7 @@
                     <el-row>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="单位名称:">
+                                <el-form-item label="单位名称:" prop="client">
                                     <el-input v-model="requestData.client"></el-input>
                                 </el-form-item>
                             </div>
@@ -111,9 +112,11 @@
                             </div>
                         </el-col>
                         <el-col :span="8">
-                            <div class="grid-content bg-purple"><el-form-item label="所在城市:">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="所在城市:" prop="location">
                                     <el-input v-model="requestData.location"></el-input>
-                                </el-form-item></div>
+                                </el-form-item>
+                            </div>
                         </el-col>
                     </el-row>
                 </div>
@@ -135,7 +138,8 @@
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple"><el-form-item label="护照有效期:">
-                                    <el-input v-model="requestData.passportDate"></el-input>
+                                    <el-date-picker v-model="requestData.passportDate" type="date" placeholder="选择日期">
+                                    </el-date-picker>
                                 </el-form-item></div>
                         </el-col>
                     </el-row>
@@ -145,7 +149,8 @@
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="生日信息:">
-                                    <el-input v-model="requestData.birthday"></el-input>
+                                    <el-date-picker v-model="requestData.birthday" type="date" placeholder="选择日期">
+                                    </el-date-picker>
                                 </el-form-item>
                             </div>
                         </el-col>
@@ -168,7 +173,7 @@
                         <el-col :span="12">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="负责人:">
-                                    <el-select v-model="usersSel" multiple placeholder="请选择">
+                                    <el-select v-model="requestData.ascribedUser" multiple placeholder="请选择">
                                         <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id">
                                         </el-option>
                                     </el-select>
@@ -178,7 +183,8 @@
                         <el-col :span="12">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="业务归属:">
-                                    <el-select v-model="serviceClassSel" multiple placeholder="请选择" width="300px">
+                                    <el-select v-model="requestData.ascribedDepartment" multiple placeholder="请选择"
+                                        width="300px">
                                         <el-option v-for="item in serviceClass" :key="item.id" :label="item.name"
                                             :value="item.id">
                                         </el-option>
@@ -214,10 +220,10 @@ export default {
             requestData: {
                 "status": 0,
                 "id": 0,
-                "number": 0, //number
-                "lvlid": 0, //地市州Id
-                "client": "", //客户单位
-                "weight": "", 
+                "number": 0,
+                "lvlid": "",
+                "client": "",
+                "weight": "",
                 "clientshort": "",
                 "contact": "",
                 "gender": 0,
@@ -232,11 +238,17 @@ export default {
                 "birthday": "",
                 "otherinfo": "",
                 "wechat": "",
-                "category": 0,
-                "predele": 0,
-                "finlishedDele": 0,
-                "createUserId": parseInt(JSON.parse(localStorage.getItem("userinif")).userInfo.userId),
-                "remark": ""
+                "category": "",
+                "predele": "",
+                "finlishedDele": "",
+                "createUserId": JSON.parse(localStorage.getItem("userinif")).userInfo.userId,
+                "remark": "",
+                "ascribedUser": [
+
+                ],
+                "ascribedDepartment": [
+
+                ]
             },
             BtnTitle: '保存新增数据',
             customerClass: [],//客户类别
@@ -244,8 +256,32 @@ export default {
             clientTypeList: [],
             serviceClass: [],//业务归属
             users: [],//负责人
-            serviceClassSel: [],
-            usersSel: [],
+            rules: { //校验规则
+                lvlid: [
+                    { required: true, message: '请选择客户级别', trigger: 'blur' },
+                ],
+                category: [
+                    { required: true, message: '请选择客户类别', trigger: 'blur' },
+                ],
+                weight: [
+                    { required: true, message: '权重级别', trigger: 'blur' },
+                ],
+                contact: [
+                    { required: true, message: '请输入联系人名称', trigger: 'blur' },
+                ],
+                telephone: [
+                    { required: true, message: '请输入联系人手机号', trigger: 'blur' },
+                ],
+                job: [
+                    { required: true, message: '请输入联系人职务', trigger: 'blur' },
+                ],
+                client: [
+                    { required: true, message: '请输入单位名称', trigger: 'blur' },
+                ],
+                location: [
+                    { required: true, message: '请输入所在城市', trigger: 'blur' },
+                ],
+            }
         }
     },
     methods: {
@@ -275,13 +311,13 @@ export default {
                         that.requestData.category = obj.category;
                         that.requestData.weight = obj.weight;
                         that.requestData.contact = obj.contact;
-                        that.requestData.gender = obj.gender.toString();
+                        that.requestData.gender = obj.gender;
                         that.requestData.telephone = obj.telephone;
                         that.requestData.phone = obj.phone;
                         that.requestData.email = obj.email;
                         that.requestData.job = obj.job;
                         that.requestData.client = obj.client;
-                        that.requestData.clientshort = obj.clientshort;
+                        that.requestData.clientshort = obj.clientShort;
                         that.requestData.location = obj.location;
                         that.requestData.address = obj.address;
                         that.requestData.passport = obj.passport;
@@ -289,20 +325,61 @@ export default {
                         that.requestData.birthday = obj.birthday;
                         that.requestData.predele = obj.predele;
                         that.requestData.finlishedDele = obj.finlishedDele;
-                        that.usersSel = obj.ascribedUser.map(x=>x.userId);
-                        that.serviceClassSel = obj.ascribedDepartment.map(x=>x.id);
+                        that.requestData.ascribedUser = obj.ascribedUser.map(x => x.userId);
+                        that.requestData.ascribedDepartment = obj.ascribedDepartment.map(x => x.id);
                         that.requestData.remark = obj.remark;
                     }
                 }
-
             })
         },
-        save(){
+        save() {
+            var that = this;
 
-            if(this.requestData.id == 0){
+            var p = new Promise((resolve, reject) => {
+                this.$refs.BindData.validate((valid) => {
+                    if (valid) {
+                        resolve(true);
+                    } else {
+                        reject(false);
+                    }
+                });
+            })
+
+            p.then(resolve => {
+                if (this.requestData.id == 0) {
+                    //添加
+                    this.requestData.status = 1;
+                } else {
+                    //修改
+                    this.requestData.status = 2;
+                }
+
+                var pred = parseInt(that.requestData.predele);
+                var inli = parseInt(that.requestData.finlishedDele);
+
+                that.requestData.predele = isNaN(pred) ? 0 : pred;
+                that.requestData.finlishedDele = isNaN(pred) ? 0 : pred;
+
+                this.$axios.post('/api/MarketCustomerResources/NewClientOp', this.requestData, {
+                    headers: {
+                        'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IkZ1dHVyZSIsImV4cCI6MTY3OTU0MjgwNSwiaXNzIjoiT0FTeXN0ZW0uY29tIiwiYXVkIjoiT0FTeXN0ZW0uY29tIn0.iy5SUInq1p3yjZultRPyzCa2ekLeepSdMLxvPwXY6MI',
+                    }
+                }).then(resp => {
+                    if (resp.data.code == 200) {
+                        that.$message({
+                            message: '操作成功!',
+                            type: 'success'
+                        });
+                        this.$router.push('/home/MCR');
+                    } else {
+                        that.$message.error(resp.data.msg);
+                    }
+                })
+
+            }).catch(reject => {
+                console.log("未通过表单校验");
+            })
 
-            }
-            
         }
     },
     mounted() {

+ 47 - 1
src/components/OP/AirTicketRes.vue

@@ -7,7 +7,7 @@
                     <div>机票费用录入</div>
                 </div>
                 <div style="display: flex;">
-                    <div style="width: 80%;">
+                    <div style="width: 60%;">
                         <el-select v-model="DiId" placeholder="团组选择" @change="AirTicketResSelectChange">
                             <el-option v-for="item in AirTicketResSelectData" :key="item.id" :label="item.groupName"
                                 :value="item.id">
@@ -16,6 +16,8 @@
                     </div>
                     <div>
                         <el-button type="primary" @click="download" style="margin-left: 10px;">导出报表</el-button>
+                        <el-button type="primary" @click="downloadCN" style="margin-left: 10px;">中文行程单</el-button>
+                        <el-button type="primary" @click="downloadEN" style="margin-left: 10px;">英文行程单</el-button>
                         <router-link :to="{ path: '/home/OpAirTicketRes', query: { DiId } }">
                             <el-button type="primary" style="margin-left: 10px;">新增</el-button>
                         </router-link>
@@ -246,6 +248,50 @@ export default {
                     that.$message.error("网络错误,请稍后重试");
                 }
             })
+        },
+        downloadCN() {
+            var url = "/api/Groups/ItineraryAirTicketRes"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    DiId: that.DiId,
+                    UserId: that.userId,
+                    Language: "CN"
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    window.location.href = res.data.data
+                } else {
+                    that.$message.error("网络错误,请稍后重试");
+                }
+            })
+        },
+        downloadEN() {
+            var url = "/api/Groups/ItineraryAirTicketRes"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    DiId: that.DiId,
+                    UserId: that.userId,
+                    Language: "EN"
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    window.location.href = res.data.data
+                } else {
+                    that.$message.error("网络错误,请稍后重试");
+                }
+            })
         }
     },
     mounted() {