Ver código fonte

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

yuanrf 3 meses atrás
pai
commit
09c9797a28

+ 259 - 20
src/components/MCR/MarketCustomerResourcesHome.vue

@@ -1,5 +1,60 @@
 <template>
-    <div v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
+    <div class="mcrh" v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
+        <el-dialog width="960px" title="日志查询" :visible.sync="mcrhVisible">
+            <el-form ref="form" :model="form" label-width="40px">
+                <div class="mcrh-dialog">
+                    <el-form-item label="类型">
+                        <el-select @change="logchange" style="width:200px" multiple collapse-tags v-model="form.opTypeLabel" placeholder="请选择类型">
+                            <el-option v-for="(item,index) in logtypearr" :key="index" :label="item.text" :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="人员">
+                        <el-select @change="logchange"  style="width:200px" multiple collapse-tags  v-model="form.opUserLabel" placeholder="请选择人员">
+                            <el-option v-for="(item,index) in personnelarr" :key="index" :label="item.text" :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="日期">
+                        <el-date-picker @change="logchange" style="width:350px" v-model="form.time" type="daterange" align="right" unlink-panels
+                            range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+                            :picker-options="pickerOptions">
+                        </el-date-picker>
+                    </el-form-item>
+                </div>
+            </el-form>
+            <div>
+                <el-table
+                    height="529px"
+                    :data="logtableData"
+                    border
+                    style="width: 100%">
+                    <el-table-column
+                    prop="rowIndex"
+                    label="序号"
+                    width="150">
+                    </el-table-column>
+                    <el-table-column
+                    prop="label"
+                    label="具体事件">
+                    </el-table-column>
+                    <el-table-column
+                    prop="createTime"
+                    label="操作时间"
+                    width="180">
+                    </el-table-column>
+                </el-table>
+                <div style="text-align: center;">
+                    <el-pagination
+                    @size-change="loghandleSizeChange"
+                    @current-change="loghandleCurrentChange"
+                    :current-page="logcurrentPage"
+                    :page-sizes="[10, 15, 20]"
+                    :page-size="logpagesize"
+                    layout="total, sizes, prev, pager, next, jumper"
+                    :total="logtotal">
+                    </el-pagination>
+                </div>
+            </div>
+        </el-dialog>
         <div class="mcr-box">
             <div class="mcr-head">
                 <!-- 预计出团量 -->
@@ -17,8 +72,6 @@
                         已出团总量:<span>{{ groupNumber.finlishedDeleAll }}</span>
                     </div>
                 </div> -->
-
-
                 <div>
                     <el-select v-model="principalSel" :disabled='isSelect' clearable placeholder="负责人" style="width
                     :18%" @change="QueryData">
@@ -49,34 +102,39 @@
                 </div>
                 <!-- textbox框 -->
                 <div style="display: flex;margin-top: 10px;position: relative;">
-                    <div style="width: 31%;">
+                    <div style="width: 28%;">
                         <el-input v-model="inputLXR" placeholder="联系人"></el-input>
                     </div>
                     &nbsp;
-                    <div style="width: 30%;">
+                    <div style="width: 26.5%;"> 
                         <el-input v-model="inputDQ" placeholder="地区"></el-input>
                     </div>
                     &nbsp;
-                    <div style="width: 27.5%;">
+                    <div style="width: 27%;">
                         <el-input v-model="inputDW" placeholder="单位"></el-input>
                     </div>
                     &nbsp;
+                    <el-button v-if="userId==21" type="primary" @click="NewClientDataAuthorityExcelDownload">按权限导出</el-button>
+                    &nbsp;
                     <div class="btnOp">
                         <div>
                             <el-button type="primary" @click="QueryData">查 询</el-button>
-                            <el-button v-if="userId==21" type="primary" @click="NewClientDataExcelDownload">导 出</el-button>
+                            <el-button v-if="userId==21" type="primary" @click="NewClientDataExcelDownload">导
+                                出</el-button>
                         </div>
                         <div style="height: 10px;">
                         </div>
                         <div>
                             <el-button type="primary" @click="Add">新 增</el-button>
+                            <el-button @click="logquery" v-if="userId==21" type="primary">日 志</el-button>
                         </div>
                     </div>
                 </div>
 
             </div>
             <div class="mcr-table">
-                <el-table :data="PageList" border @select="handleSelect" style="width: 100%">
+                <el-table :data="PageList" border @select="handleSelect" :cell-class-name="addClass"
+                    style="width: 100%">
                     <el-table-column prop="weight" label="权重" width="50">
                         <template slot-scope="scope">
                             <span v-if="scope.row.weight == '393'">A</span>
@@ -98,16 +156,16 @@
                     </el-table-column>
                     <!-- <el-table-column prop="birthday" label="生日">
                     </el-table-column> -->
-
                     <el-table-column prop="ascribedDepartment" label="业务归属" width="80">
                         <template slot-scope="scope">
                             <el-tooltip class="item" effect="dark" placement="top">
-                                <span style="color:royalblue">查看</span>
+                                <span style="text-decoration: underline;">查看</span>
                                 <div slot="content">
                                     <div v-for="(yw, index) in scope.row.ascribedDepartment" :key="index"
                                         style="text-align: center; width: 100px;padding: 5px;">
-                                        {{ yw.name }}
+                                        {{ yw.name+'部' }}<br /><br />
                                     </div>
+                                    {{ scope.row.notUpdateDays+'天未修改数据' }}
                                 </div>
                             </el-tooltip>
                         </template>
@@ -169,13 +227,37 @@
         </div>
     </div>
 </template>
-
 <script>
-
-
 export default {
     data() {
         return {
+            pickerOptions: {
+                shortcuts: [{
+                    text: '最近一周',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近一个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近三个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }]
+            },
             total: 0, //总行数
             principalSel: '',
             principalList: [],//负责人数据
@@ -214,10 +296,38 @@ export default {
             },
             userId: 0,
             token: '',
-            isSelect: true
+            isSelect: true,
+            mcrhVisible:false,
+            form:{
+                opTypeLabel:'',
+                opUserLabel:'',
+                time:'',
+            },
+            logtypearr:[],
+            personnelarr:[],
+            logtableData:[],
+            logcurrentPage:1,
+            logpagesize:10,
+            logtotal:0,
         }
     },
     methods: {
+        //处理日期
+        datetime(val){
+            var date=new Date(val);
+            var y=date.getFullYear();
+            var m=date.getMonth()+1>=10?date.getMonth()+1:'0'+(date.getMonth()+1).toString();
+            var d=date.getDate()>=10?date.getDate():'0'+(date.getDate()).toString();
+            return y+'-'+m+'-'+d
+        },
+        loghandleSizeChange(val) {
+            this.logpagesize=val;
+            this.logchange();
+        },
+        loghandleCurrentChange(val) {
+            this.logcurrentPage=val;
+            this.logchange();
+        },
         //每页条数改变时触发 选择一页显示多少行
         handleSizeChange(val) {
             this.currentPage = 1;
@@ -233,9 +343,133 @@ export default {
             this.pageloadData.pageSize = this.pageSize;
             this.pageload();
         },
+        //logchange
+        logchange(){
+            this.logcurrentPage=1;
+            let opTypeLabels='';
+            let opUserLabels='';
+            for(let i=0;i<this.form.opTypeLabel.length;i++){
+                opTypeLabels+=this.form.opTypeLabel[i]+','
+            }
+            opTypeLabels=opTypeLabels.substring(0, opTypeLabels.length - 1)
+            
+            for(let j=0;j<this.form.opUserLabel.length;j++){
+                opUserLabels+=this.form.opUserLabel[j]+','
+            }
+            opUserLabels=opUserLabels.substring(0, opUserLabels.length - 1)
+            this.NewClientDataRecord(opTypeLabels,opUserLabels,this.datetime(this.form.time[0]),this.datetime(this.form.time[1]))
+            
+        },
+        //历史记录
+        NewClientDataRecord(opTypeLabel,opUserLabel,beginTime,endTime){
+            var that = this;
+            var url = "/api/MarketCustomerResources/NewClientDataRecord"
+            this.$axios({
+                method: 'post',
+                url: url,
+                data:{
+                    portType:1,
+                    userId: that.userId,
+                    pageId: 89,
+                    pageIndex: that.logcurrentPage,
+                    pageSize: that.logpagesize,
+                    opTypeLabel: opTypeLabel,
+                    opUserLabel: opUserLabel,
+                    beginTime: beginTime,
+                    endTime: endTime,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    let datalog=res.data.data;
+                    that.logtableData=datalog;
+                    that.logtotal=res.data.count;
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
         //多选框选中方法
         handleSelect(selection, row) {
 
+        },
+        //日志基础数据
+        NewClientDataRecordInit(){
+            var that = this;
+            var url = "/api/MarketCustomerResources/NewClientDataRecordInit"
+            this.$axios({
+                method: 'post',
+                url: url,
+                data:{
+                    portType:1,
+                    userId: that.userId,
+                    pageId: 89,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                   let datainfo=res.data.data;
+                   that.logtypearr=datainfo.operations;
+                   that.personnelarr=datainfo.userDatas;
+
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
+        //日志查询
+        logquery(){
+            this.mcrhVisible=true;
+            this.logtableData=[];
+            this.form={
+                opTypeLabel:'',
+                opUserLabel:'',
+                time:'',
+            },
+            this.logchange();
+        },
+        //条件颜色
+        addClass({row,column,rowIndex,columnIndex}){
+            if(row.notUpdateDays >= 365){
+                    return 'cell-grey';
+            }
+        },
+        NewClientDataAuthorityExcelDownload(){
+            var url = "/api/MarketCustomerResources/NewClientDataAuthorityExcelDownload"
+            var that = this
+            that.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer '
+                },
+                data: {
+                    portType:1,
+                    pageIndex:that.pageloadData.pageIndex,
+                    pageSize:that.pageloadData.pageIndex,
+                    operationUserId:that.userId,
+                    contact:that.pageloadData.contact,
+                    location:that.pageloadData.location,
+                    client:that.pageloadData.client,
+                    userid:that.pageloadData.userid,
+                    lvlid:that.pageloadData.lvlid,
+                    business:that.pageloadData.business,
+                    range:that.pageloadData.Range,
+                    category:that.pageloadData.Category,
+                    pageId:89,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.$message({
+                        type: 'success',
+                        message: res.data.msg,
+                    });
+                    window.open(res.data.data)
+                }else{
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'warning'
+                    });
+                }
+            })
         },
         NewClientDataExcelDownload(){
             var url = "api/MarketCustomerResources/NewClientDataExcelDownload"
@@ -278,11 +512,9 @@ export default {
         },
         pageload() {
             var that = this;
-
             if (this.userId == 21 || this.userId == 95) {
                 this.isSelect = false;
             }
-
             that.pageloadData.operationUserId = that.userId
             //初始化界面数据
             console.log(that.pageloadData)
@@ -310,14 +542,12 @@ export default {
                     }
                     that.territoryChange();
                     that.loading = false;
-
                 } else if (resp.data.code == 400) {
                     that.PageList = [];
                     that.total = 0;
                     that.loading = false;
                     that.$message.error('暂无数据!');
                 }
-
             }).catch(err => {
                 this.$message.error('网络异常!');
                 this.loading = false;
@@ -451,7 +681,8 @@ export default {
     },
     mounted() {
         this.token = JSON.parse(localStorage.getItem('userinif')).token;
-        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.NewClientDataRecordInit();
         var mcrPageData = localStorage.getItem("mcrPageData");
         if (mcrPageData) {
             try {
@@ -482,6 +713,7 @@ export default {
             var json = JSON.parse(mcrPageData);
             this.currentPage = json.currentPage;
         }
+        
     },
     computed: {
         preDele() {
@@ -543,4 +775,11 @@ body {
     right: 6px;
     top: -50px;
 }
+.mcrh .cell-grey{
+    color: red;
+}
+.mcrh-dialog{
+    display: flex;
+    justify-content: space-between;
+}
 </style>

+ 2 - 15
src/components/OP/EntryDetailsdraft.vue

@@ -959,7 +959,6 @@ export default {
                     portType: 1
                 }
             }).then(function (res) {
-                console.log(res)
                 let placeinifarr = [];
                 if (res.data.code == 200) {
                     for (let i = 0; i < res.data.data.length; i++) {
@@ -1483,7 +1482,6 @@ export default {
                 }
             }).then(function (res) {
                 if (res.data.code == 200) {
-                    console.log(res)
                     that.ID = res.data.data.id;
                     //汇率
                     that.currencys = res.data.data.currencys;
@@ -2228,7 +2226,6 @@ export default {
         },
         //培训费费用标准值改变
         Traininginput(val) {
-            console.log(val);
 
             var rate = 0
             for (let j = 0; j < this.currencys.length; j++) {
@@ -2244,15 +2241,12 @@ export default {
         },
         //培训费地区选择
         TrainingExpenseDataSelect(val, item) {
-            console.log(val);
-            console.log(this.trainingExpenseData);
             var rate = 0//汇率
             var obj = {}
             obj = this.placeinif.find(function (i) {
                 return i.id === item
             });
             //在change中获取到整条对象数据
-            console.log(obj);
             val.currencyName = obj.currencyName;
             val.currency = obj.currency;
             for (let j = 0; j < this.currencys.length; j++) {
@@ -2466,7 +2460,6 @@ export default {
                 }
                 //其他费
                 var otherDatas = [];
-                console.log();
 
                 for (let c = 0; c < this.otherData.length; c++) {
                     if (this.otherData[c].setDataId != '') {
@@ -2654,7 +2647,6 @@ export default {
                 }
                 //其他费
                 var otherDatas = [];
-                console.log();
 
                 for (let c = 0; c < this.otherData.length; c++) {
                     if (this.otherData[c].setDataId != '') {
@@ -2855,7 +2847,6 @@ export default {
         },
         //其他删除
         DeleteOtherExpenses(index, row, rows) {
-            console.log(index, row, rows);
             this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
@@ -2963,7 +2954,6 @@ export default {
                         deleteUserId: that.userId
                     }
                 }).then(function (res) {
-                    console.log(res)
                     if (res.data.code == 200) {
                         that.$message({
                             type: 'success',
@@ -3050,8 +3040,8 @@ export default {
             this.setpermissions=true;
         },
         handleCheckAllChange(val) {
-            console.log(val);
-            console.log(this.viewUsers);
+            // console.log(val);
+            // console.log(this.viewUsers);
             
         },
         //分配查看权限
@@ -3235,9 +3225,6 @@ export default {
         currencys: {
             handler(val) {
                 this.TotalAccommodationFee = 0
-                console.log(val,this.quarterageData);
-                console.log(this.currencys);
-                
                 for (let q = 0; q < this.quarterageData.length; q++) {
                     for (let qc = 0; qc < this.currencys.length; qc++) {
                         if (this.currencys[qc].currencyCode == this.quarterageData[q].curremcyCode||this.currencys[qc].currencyName == this.quarterageData[q].currencyName) {

+ 257 - 12
src/components/OP/backwardtabke.vue

@@ -11,11 +11,11 @@
                     </el-select>
                 </div>
                 <div class="backward-head-li">
+                    <span style="color: red;"><spu>*</spu>会务倒退表没有预览直接下载即可</span>
+                    <el-button @click="InforRetrogressTableFileDownload" type="primary">导出会务倒退表</el-button>
                     <el-button @click="PostInvertedListCreate" type="primary">生成倒推表</el-button>
                     <el-button @click="PostInvertedListUpdate" type="primary">保 存</el-button>
-                    <el-button @click="PostInvertedListFileDownload" type="primary">导出倒推表
-
-                    </el-button>
+                    <el-button @click="PostInvertedListFileDownload" type="primary">导出倒推表</el-button>
                 </div>
             </div>
             <div class="backward-title">
@@ -25,6 +25,9 @@
             </div>
             <div class="backward-table">
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedAirportd"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.approvalDataDt" type="date" placeholder="选择日期">
                         </el-date-picker>
@@ -37,6 +40,9 @@
                     </div>
                 </div>
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedApprovalData"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.approvalDt" type="date" placeholder="选择日期">
                         </el-date-picker>
@@ -57,11 +63,14 @@
                     </div>
                 </div>
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedIssueApproval"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.issueApprovalDt" type="date" placeholder="选择日期">
                         </el-date-picker>
                     </div>
-                    <div class="backward-li-span"><p style="line-height: 10px;padding: 0;">出批件</p><p  style="line-height: 10px;padding: 0;">护照办理</p></div>
+                    <div class="backward-li-span"><div style="line-height: 25px;padding: 0;">出批件</div><div  style="line-height: 25px;padding: 0;">护照办理</div></div>
                     <div class="backward-li-span">
                         <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
                             v-model="datainfo.issueApprovalRemark">
@@ -81,6 +90,9 @@
                     </div>
                 </div> -->
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedVisaInfo"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.visaInformationDt" type="date" placeholder="选择日期">
                         </el-date-picker>
@@ -93,6 +105,9 @@
                     </div>
                 </div>
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedSendVisa"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.sendVisaDt" type="date" placeholder="选择日期">
                         </el-date-picker>
@@ -105,6 +120,9 @@
                     </div>
                 </div>
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <!-- <el-checkbox v-model="isSelectedAirportd"></el-checkbox> -->
+                    </div>
                     <div class="backward-li-span">
                         送签国家选择:
                     </div>
@@ -146,6 +164,9 @@
                     </div>
                 </div>
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedIssueVisa"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.issueVisaDt" type="date" placeholder="选择日期">
                         </el-date-picker>
@@ -158,6 +179,39 @@
                     </div>
                 </div>
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedAirTicket"></el-checkbox>
+                    </div>
+                    <div class="backward-li-span">
+                        <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.airTicketDt" type="date" placeholder="选择日期">
+                        </el-date-picker>
+                    </div>
+                    <div class="backward-li-span">机票</div>
+                    <div class="backward-li-span">
+                        <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
+                            v-model="datainfo.airTicketRemark">
+                        </el-input>
+                    </div>
+                </div>
+                <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedHotel"></el-checkbox>
+                    </div>
+                    <div class="backward-li-span">
+                        <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.hotelDt" type="date" placeholder="选择日期">
+                        </el-date-picker>
+                    </div>
+                    <div class="backward-li-span">酒店</div>
+                    <div class="backward-li-span">
+                        <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
+                            v-model="datainfo.hotelRemark">
+                        </el-input>
+                    </div>
+                </div>
+                <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedPreTripMeeting"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.preTripMeetingDt" type="date" placeholder="选择日期">
                         </el-date-picker>
@@ -170,6 +224,9 @@
                     </div>
                 </div>
                 <div class="backward-table-li">
+                    <div class="backward-li-span">
+                        <el-checkbox v-model="datainfo.isSelectedAirportdDropOff"></el-checkbox>
+                    </div>
                     <div class="backward-li-span">
                         <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.airportdDropOffDt" type="date" placeholder="选择日期">
                         </el-date-picker>
@@ -189,6 +246,8 @@
 export default {
     data () {
         return {
+            userId:'',
+            token:'',
             value:'',
             options:[],
             groupinfo:{},
@@ -220,6 +279,24 @@ export default {
                 issueApprovalRemark:'',//出批件时间 备注
                 issueVisaDt:'',//出签时间 - B
                 issueVisaRemark:'',//出签 备注
+
+                airTicketDt:'',//机票 - B
+                isAirTicket:0,//机票 是否完成
+                airTicketRemark:'',//机票 备注
+                hotelDt:'',//酒店 - B
+                isHotel:0,//酒店 是否完成
+                hotelRemark:'',//酒店 备注
+                isSelectedAirportd:0,//报批资料准备
+                isSelectedApprovalData:0,//报批/提供送签资料 是否选中
+                isSelectedIssueApproval:0,//出批件 是否选中
+                isSelectedVisaInfo:0,//签证资料准备 是否选中
+                isSelectedSendVisa:0,//送签签证 是否选中
+                isSelectedIssueVisa:0,//出签 是否选中
+                isSelectedAirTicket:0,//机票 是否选中
+                isSelectedHotel:0,//酒店 是否选中
+                isSelectedPreTripMeeting:0,//行前会 是否选中
+                isSelectedAirportdDropOff:0,//送机 是否选中
+
                 preTripMeetingDt:'',//行前会 - A
                 preTripMeetingRemark:'',//行前会 备注
                 sendVisaDt:'',//送签时间 - B
@@ -304,6 +381,24 @@ export default {
                     that.datainfo.issueApprovalRemark=res.data.data.issueApprovalRemark;
                     that.datainfo.issueVisaDt=res.data.data.issueVisaDt;
                     that.datainfo.issueVisaRemark=res.data.data.issueVisaRemark;
+
+                    that.datainfo.airTicketDt=res.data.data.airTicketDt;
+                    that.datainfo.isAirTicket=res.data.data.isAirTicket;
+                    that.datainfo.airTicketRemark=res.data.data.airTicketRemark;
+                    that.datainfo.hotelDt=res.data.data.hotelDt;
+                    that.datainfo.isHotel=res.data.data.isHotel;
+                    that.datainfo.hotelRemark=res.data.data.hotelRemark;
+                    that.datainfo.isSelectedAirportd=res.data.data.isSelectedAirportd;
+                    that.datainfo.isSelectedApprovalData=res.data.data.isSelectedApprovalData;
+                    that.datainfo.isSelectedIssueApproval=res.data.data.isSelectedIssueApproval;
+                    that.datainfo.isSelectedVisaInfo=res.data.data.isSelectedVisaInfo;
+                    that.datainfo.isSelectedSendVisa=res.data.data.isSelectedSendVisa;
+                    that.datainfo.isSelectedIssueVisa=res.data.data.isSelectedIssueVisa;
+                    that.datainfo.isSelectedAirTicket=res.data.data.isSelectedAirTicket;
+                    that.datainfo.isSelectedHotel=res.data.data.isSelectedHotel;
+                    that.datainfo.isSelectedPreTripMeeting=res.data.data.isSelectedPreTripMeeting;
+                    that.datainfo.isSelectedAirportdDropOff=res.data.data.isSelectedAirportdDropOff;
+
                     that.datainfo.preTripMeetingDt=res.data.data.preTripMeetingDt;
                     that.datainfo.preTripMeetingRemark=res.data.data.preTripMeetingRemark 
                     that.datainfo.sendVisaDt=res.data.data.sendVisaDt;
@@ -346,6 +441,24 @@ export default {
                 isApprovalData:0,//报批资料准备 是否完成
                 isIssueApproval:0,//出批件 是否完成
                 isIssueVisa:0,//出签 是否完成
+
+                airTicketDt:'',//机票 - B
+                isAirTicket:0,//机票 是否完成
+                airTicketRemark:'',//机票 备注
+                hotelDt:'',//酒店 - B
+                isHotel:0,//酒店 是否完成
+                hotelRemark:'',//酒店 备注
+                isSelectedAirportd:0,//送机 是否选中
+                isSelectedApprovalData:0,//报批/提供送签资料 是否选中
+                isSelectedIssueApproval:0,//出批件 是否选中
+                isSelectedVisaInfo:0,//签证资料准备 是否选中
+                isSelectedSendVisa:0,//送签签证 是否选中
+                isSelectedIssueVisa:0,//出签 是否选中
+                isSelectedAirTicket:0,//机票 是否选中
+                isSelectedHotel:0,//酒店 是否选中
+                isSelectedPreTripMeeting:0,//行前会 是否选中
+                isSelectedAirportdDropOff:0,//送机 是否选中
+
                 isPreTripMeeting:0,//行前会 是否完成
                 isQuery:false,//查询标识 true 需提醒客户该团未创建倒推表
                 isSendVisa:0,//送签 是否完成
@@ -393,6 +506,35 @@ export default {
             this.PostShareGroupInfo();
             this.PostInvertedListInfo();
         },
+        //生成会务倒推表
+        InforRetrogressTableFileDownload() {
+            var url = "/api/Groups/InforRetrogressTableFileDownload"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    groupId:that.value,
+                    currUserId: that.userId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.$message({
+                        message:res.data.msg ,
+                        type: 'success',
+                        offset:50
+                    });
+                    window.open(res.data.data.url)
+                }else{
+                    that.$message.error(res.data.msg);
+                }
+            }).catch(function (error) {
+                that.$message.error(error);
+            });
+        },
         //生成倒推表
         PostInvertedListCreate() {
             var url = "/api/Groups/PostInvertedListCreate"
@@ -415,6 +557,7 @@ export default {
                         offset:50
                     });
                     that.PostInvertedListInfo();
+                    
                 }else{
                     that.$message.error(res.data.msg);
                 }
@@ -424,8 +567,8 @@ export default {
         },
         //保存
         PostInvertedListUpdate() {
-            var url = "/api/Groups/PostInvertedListUpdate"
             var that = this
+            var url = "/api/Groups/PostInvertedListUpdate"
             this.$axios({
                 method: 'post',
                 url: url,
@@ -460,6 +603,24 @@ export default {
                     issueVisaDt: that.datainfo.issueVisaDt,
                     isIssueVisa: that.datainfo.isIssueVisa,
                     issueVisaRemark: that.datainfo.issueVisaRemark,
+
+                    airTicketDt: that.datainfo.airTicketDt,
+                    isAirTicket: that.datainfo.isAirTicket,
+                    airTicketRemark: that.datainfo.airTicketRemark,
+                    hotelDt: that.datainfo.hotelDt,
+                    isHotel: that.datainfo.isHotel,
+                    hotelRemark: that.datainfo.hotelRemark,
+                    isSelectedAirportd: that.datainfo.isSelectedAirportd,
+                    isSelectedApprovalData: that.datainfo.isSelectedApprovalData,
+                    isSelectedIssueApproval: that.datainfo.isSelectedIssueApproval,
+                    isSelectedVisaInfo: that.datainfo.isSelectedVisaInfo,
+                    isSelectedSendVisa: that.datainfo.isSelectedSendVisa,
+                    isSelectedIssueVisa: that.datainfo.isSelectedIssueVisa,
+                    isSelectedAirTicket: that.datainfo.isSelectedAirTicket,
+                    isSelectedHotel: that.datainfo.isSelectedHotel,
+                    isSelectedPreTripMeeting: that.datainfo.isSelectedPreTripMeeting,
+                    isSelectedAirportdDropOff: that.datainfo.isSelectedAirportdDropOff,
+
                     preTripMeetingDt: that.datainfo.preTripMeetingDt,
                     isPreTripMeeting: that.datainfo.isPreTripMeeting,
                     preTripMeetingRemark: that.datainfo.preTripMeetingRemark,
@@ -484,17 +645,66 @@ export default {
         },
         //导出倒推表
         PostInvertedListFileDownload() {
-            var url = "/api/Groups/PostInvertedListFileDownload"
             var that = this
+            var url = "/api/Groups/PostInvertedListUpdate"
             this.$axios({
                 method: 'post',
                 url: url,
                 headers: {
-                    Authorization: 'Bearer ' + that.token
+                    Authorization: 'Bearer ' + this.token
                 },
                 data: {
                     portType: 1,
-                    diId: that.value
+                    isQuery:that.datainfo.isQuery,
+                    id: that.datainfo.id,
+                    diId: that.datainfo.diId,
+                    approvalDataDt: that.datainfo.approvalDataDt,
+                    isApprovalData: that.datainfo.isApprovalData,
+                    approvalDataRemark: that.datainfo.approvalDataRemark,
+                    approvalDt: that.datainfo.approvalDt,
+                    approvalType: that.datainfo.approvalType,
+                    isApproval: that.datainfo.isApproval,
+                    approvalRemark: that.datainfo.approvalRemark,
+                    issueApprovalDt: that.datainfo.issueApprovalDt,
+                    isIssueApproval: that.datainfo.isIssueApproval,
+                    issueApprovalRemark: that.datainfo.issueApprovalRemark,
+                    applyPassportDt: that.datainfo.applyPassportDt,
+                    isApplyPassport: that.datainfo.isApplyPassport,
+                    applyPassportRemark: that.datainfo.applyPassportRemark,
+                    visaInformationDt: that.datainfo.visaInformationDt,
+                    isVisaInformation: that.datainfo.isVisaInformation,
+                    visaInformationRemark: that.datainfo.visaInformationRemark,
+                    visaCountryData: that.datainfo.visaCountryData,
+                    sendVisaDt: that.datainfo.sendVisaDt,
+                    isSendVisa: that.datainfo.isSendVisa,
+                    sendVisaRemark: that.datainfo.sendVisaRemark,
+                    issueVisaDt: that.datainfo.issueVisaDt,
+                    isIssueVisa: that.datainfo.isIssueVisa,
+                    issueVisaRemark: that.datainfo.issueVisaRemark,
+
+                    airTicketDt: that.datainfo.airTicketDt,
+                    isAirTicket: that.datainfo.isAirTicket,
+                    airTicketRemark: that.datainfo.airTicketRemark,
+                    hotelDt: that.datainfo.hotelDt,
+                    isHotel: that.datainfo.isHotel,
+                    hotelRemark: that.datainfo.hotelRemark,
+                    isSelectedAirportd: that.datainfo.isSelectedAirportd,
+                    isSelectedApprovalData: that.datainfo.isSelectedApprovalData,
+                    isSelectedIssueApproval: that.datainfo.isSelectedIssueApproval,
+                    isSelectedVisaInfo: that.datainfo.isSelectedVisaInfo,
+                    isSelectedSendVisa: that.datainfo.isSelectedSendVisa,
+                    isSelectedIssueVisa: that.datainfo.isSelectedIssueVisa,
+                    isSelectedAirTicket: that.datainfo.isSelectedAirTicket,
+                    isSelectedHotel: that.datainfo.isSelectedHotel,
+                    isSelectedPreTripMeeting: that.datainfo.isSelectedPreTripMeeting,
+                    isSelectedAirportdDropOff: that.datainfo.isSelectedAirportdDropOff,
+
+                    preTripMeetingDt: that.datainfo.preTripMeetingDt,
+                    isPreTripMeeting: that.datainfo.isPreTripMeeting,
+                    preTripMeetingRemark: that.datainfo.preTripMeetingRemark,
+                    airportdDropOffDt: that.datainfo.airportdDropOffDt,
+                    isAirportdDropOff: that.datainfo.isAirportdDropOff,
+                    airportdDropOffRemark: that.datainfo.airportdDropOffRemark,
                 }
             }).then(function (res) {
                 if (res.data.code == 200) {
@@ -503,7 +713,32 @@ export default {
                         type: 'success',
                         offset:50
                     });
-                    window.open(res.data.data);
+                    that.PostInvertedListInfo();
+                    var urls = "/api/Groups/PostInvertedListFileDownload"
+                    that.$axios({
+                        method: 'post',
+                        url: urls,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: {
+                            portType: 1,
+                            diId: that.value
+                        }
+                    }).then(function (res) {
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message:res.data.msg ,
+                                type: 'success',
+                                offset:50
+                            });
+                            window.open(res.data.data);
+                        }else{
+                            that.$message.error(res.data.msg);
+                        }
+                    }).catch(function (error) {
+                        that.$message.error(error);
+                    });
                 }else{
                     that.$message.error(res.data.msg);
                 }
@@ -514,12 +749,18 @@ export default {
     },
     filters: {
         capitalize: function (value) {
+            value=value+'';
             return value.split(" ")[0]
         }
     },
     created(){
         this.GetGroupNameList()
+    },
+    mounted(){
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;   
     }
+    
 }
 </script>
 <style>
@@ -530,6 +771,7 @@ export default {
     border-radius: 10px;
     height: 100%;
     min-height: 840px;
+    min-width: 1550px;
 }
 .backward-head-li label{
     color: #606266;
@@ -563,16 +805,19 @@ export default {
     border-bottom: 1px solid #ebeef5;
 }
 .backward-li-span:nth-child(1){
-    width: 15%;
+    width: 3%;
 }
 .backward-li-span:nth-child(2){
+    width: 15%;
+}
+.backward-li-span:nth-child(3){
     width: 20%;
     color: #606266;
     font-size: 14px;
     font-weight: 600;
 }
-.backward-li-span:nth-child(3){
-    width: 65%;
+.backward-li-span:nth-child(4){
+    width: 62%;
 }
 .backward-li-span{
     border-left: 1px solid #ebeef5;

+ 11 - 2
src/components/Resource/CarData.vue

@@ -1,5 +1,5 @@
 <template>
-    <div>
+    <div class="csjzl">
         <div class="communal-list">
             <div class="communal-title">
                 <div>车公司资料</div>
@@ -15,7 +15,7 @@
             </div>
             <template>
                 <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
-                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中...">
+                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中..." :cell-class-name="addClass">
                     <el-table-column prop="num" label="序 号" width="55">
                         <template slot-scope="scope">
                             {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
@@ -233,6 +233,12 @@ export default {
             localStorage.setItem('CarDataEdit', JSON.stringify(row));
             this.$router.push('/home/carDataEdit')
         },
+        //条件颜色
+        addClass({row,column,rowIndex,columnIndex}){
+            if(row.lastUpdateDays >= 365){
+                    return 'cell-grey';
+            }
+        },
         handleSelect(item) {
             console.log(item);
         },
@@ -321,4 +327,7 @@ export default {
     margin-left: 10px;
     padding: 8px 20px;
 }
+.csjzl .cell-grey{
+    color: red;
+}
 </style>

+ 11 - 3
src/components/Resource/LocalGuide.vue

@@ -1,5 +1,5 @@
 <template>
-    <div>
+    <div class="dydj">
         <div class="communal-list">
             <div class="communal-title">
                 <div>导游地接资料</div>
@@ -15,7 +15,7 @@
             </div>
             <template>
                 <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
-                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中...">
+                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中..." :cell-class-name="addClass">
                     <el-table-column prop="num" label="序 号" width="55">
                         <template slot-scope="scope">
                             {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
@@ -188,7 +188,12 @@ export default {
             this.tableDatas = newarr;
             this.currentPage = 1;
         },
-
+        //条件颜色
+        addClass({row,column,rowIndex,columnIndex}){
+            if(row.lastUpdateDays >= 365){
+                    return 'cell-grey';
+            }
+        },
         upDate(index, row) {
             var dydjval={
                 currentPage:this.currentPage,
@@ -286,4 +291,7 @@ export default {
     margin-left: 10px;
     padding: 8px 20px;
 }
+.dydj .cell-grey{
+    color: red;
+}
 </style>

+ 10 - 1
src/components/Resource/TranslatorBase.vue

@@ -112,7 +112,7 @@
             </div>
         </div>
         <div class="TranslatorBase-table">
-            <el-table :data="tableData" border style="width: 100%">
+            <el-table :data="tableData" border style="width: 100%" :cell-class-name="addClass">
                 <el-table-column prop="area" label="地区" width="180">
                 </el-table-column>
                 <el-table-column prop="name" label="姓名" width="100">
@@ -542,6 +542,12 @@ export default {
                 }
             })
         },
+        //条件颜色
+        addClass({row,column,rowIndex,columnIndex}){
+            if(row.lastUpdateDays >= 365){
+                    return 'cell-grey';
+            }
+        },
         submitUpload() {
             this.$refs.upload.submit();
         },
@@ -683,4 +689,7 @@ export default {
 .select-tree .el-tag.el-tag--info{
     max-width: 125px;
 }
+.TranslatorBase-all .cell-grey{
+    color: red;
+}
 </style>