liuhj před 10 měsíci
rodič
revize
7e26955586

+ 298 - 13
src/components/MCR/Marketingamount.vue

@@ -2,7 +2,7 @@
     <div class="Marketingamount-box">
     <div class="Marketingamount-box">
         <!-- 详情弹出框 -->
         <!-- 详情弹出框 -->
         <el-dialog title="详情" :visible.sync="particulars">
         <el-dialog title="详情" :visible.sync="particulars">
-            <el-table :data="gridData">
+            <el-table >
                 <el-table-column property="date" label="日期" width="150"></el-table-column>
                 <el-table-column property="date" label="日期" width="150"></el-table-column>
                 <el-table-column property="name" label="姓名" width="200"></el-table-column>
                 <el-table-column property="name" label="姓名" width="200"></el-table-column>
                 <el-table-column property="address" label="地址"></el-table-column>
                 <el-table-column property="address" label="地址"></el-table-column>
@@ -12,13 +12,43 @@
         <el-dialog title="拜访记录" :visible.sync="visitlog">
         <el-dialog title="拜访记录" :visible.sync="visitlog">
             
             
         </el-dialog>
         </el-dialog>
-        <el-form ref="form" label-width="75px">
-            <el-form-item label="人员名称:">
-                <el-select v-model="DiId" placeholder="请选择团队名称">
-                    <el-option v-for="(item,index) in cTablelist" :key="index" :label="item.teamName" :value="item.id"></el-option>
-                </el-select>
-            </el-form-item>
-        </el-form>
+        <div class="search-head">
+            <el-form ref="form" label-width="75px">
+                <el-form-item label="公司名称:">
+                    <el-select filterable v-model="companyname" placeholder="请选择公司名称">
+                        <el-option v-for="(item,index) in companynamearr" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <el-form ref="form" label-width="75px">
+                <el-form-item label="人员名称:">
+                    <el-select filterable v-model="personnelname" placeholder="请选择人员名称">
+                        <el-option v-for="(item,index) in personnelnamearr" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <el-form ref="form" label-width="75px">
+                <el-form-item label="年:">
+                    <el-select filterable v-model="years" placeholder="请选择年">
+                        <el-option v-for="(item,index) in yearsarr" :key="index" :label="item.year" :value="item.year"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <el-form ref="form" label-width="75px">
+                <el-form-item label="季度:">
+                    <el-select filterable v-model="quarter" placeholder="请选择季度">
+                        <el-option v-for="(item,index) in quarterarr" :key="index" :label="item.name" :value="item.name"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <el-form ref="form" label-width="75px">
+                <el-form-item label="月:">
+                    <el-select filterable v-model="month" placeholder="请选择月">
+                        <el-option v-for="(item,index) in montharr" :key="index" :label="item.name" :value="item.name"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+        </div>
         <div class="Marketingamount-head-ul">
         <div class="Marketingamount-head-ul">
             <div style="background-color: #ff4f4f;" class="Marketingamount-head-li">
             <div style="background-color: #ff4f4f;" class="Marketingamount-head-li">
                 <div class="head-li-title">全年销售总金额</div>
                 <div class="head-li-title">全年销售总金额</div>
@@ -211,6 +241,25 @@ export default {
             ],
             ],
             particulars:false,
             particulars:false,
             visitlog:false,
             visitlog:false,
+            userId:'',
+            token:'',
+            companyname:'',
+            companynamearr:[],
+            personnelname:'',
+            personnelnamearr:[],
+            personnelnamearrs:[],
+            years:'',
+            yearsarr:'',
+            quarter:'',
+            quarterarr:'',
+            month:'',
+            montharr:'',
+            YbeginDt:'',
+            YendDt:'',
+            QbeginDt:'',
+            QendDt:'',
+            MbeginDt:'',
+            MendDt:'',
         }
         }
     },
     },
     methods:{
     methods:{
@@ -230,10 +279,6 @@ export default {
                 tooltip: {
                 tooltip: {
                     trigger: 'item'
                     trigger: 'item'
                 },
                 },
-                // legend: {
-                //     orient: 'vertical',
-                //     left: 'left'
-                // },
                 series: [
                 series: [
                     {
                     {
                     type: 'pie',
                     type: 'pie',
@@ -252,7 +297,7 @@ export default {
                     ],
                     ],
                     emphasis: {
                     emphasis: {
                         itemStyle: {
                         itemStyle: {
-                        shadowBlur: 10,
+                        shadowBlur: 11,
                         shadowOffsetX: 0,
                         shadowOffsetX: 0,
                         shadowColor: 'rgba(0, 0, 0, 0.5)'
                         shadowColor: 'rgba(0, 0, 0, 0.5)'
                         }
                         }
@@ -288,9 +333,240 @@ export default {
                     }
                     }
                 ]
                 ]
             });
             });
+        },
+        //获取PostMarketingSalesInitData
+        PostMarketingSalesInitData() {
+            var url = "/api/Statistics/PostMarketingSalesInitData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    userId: 208,
+                    pageId:180,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.companynamearr=res.data.data.companyData;
+                    that.companyname=that.companynamearr[0].id;
+                    that.personnelnamearrs=res.data.data.userData;
+                    that.yearsarr=res.data.data.dtData;
+                    that.years=res.data.data.dtData[0].year;
+                }else{
+                    that.$message({
+                        message:res.data.msg,
+                        duration:1000,
+                        type:"error"
+                    });
+                }
+            }).catch(function (error) {
+                that.$message.error('接口报错请联系信息部!');
+            });
+        },
+        //获取PostMarketingSalesInitData
+        PostMarketingSalesInitData() {
+            var url = "/api/Statistics/PostMarketingSalesInitData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    userId: 208,
+                    pageId:180,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.companynamearr=res.data.data.companyData;
+                    that.companyname=that.companynamearr[0].id;
+                    that.personnelnamearrs=res.data.data.userData;
+                    that.yearsarr=res.data.data.dtData;
+                    that.years=res.data.data.dtData[0].year;
+                }else{
+                    that.$message({
+                        message:res.data.msg,
+                        duration:1000,
+                        type:"error"
+                    });
+                }
+            }).catch(function (error) {
+                that.$message.error('接口报错请联系信息部!');
+            });
+        },
+        //年市场部销售额api
+        YPostMarketingSalesStatistic() {
+            var url = "/api/Statistics/PostMarketingSalesStatistics"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    userId: this.userId,
+                    pageId:180,
+                    companyId:this.companyname,
+                    groupPickupUserId:that.personnelname,
+                    beginDt:that.YbeginDt,
+                    endDt:that.YendDt,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    
+                }else{
+                    that.$message({
+                        message:res.data.msg,
+                        duration:1000,
+                        type:"error"
+                    });
+                }
+            }).catch(function (error) {
+                that.$message.error('接口报错请联系信息部!');
+            });
+        },
+        //季市场部销售额api
+        QPostMarketingSalesStatistic() {
+            var url = "/api/Statistics/PostMarketingSalesStatistics"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    userId: this.userId,
+                    pageId:180,
+                    companyId:this.companyname,
+                    groupPickupUserId:that.personnelname,
+                    beginDt:that.QbeginDt,
+                    endDt:that.QendDt,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    
+                }else{
+                    that.$message({
+                        message:res.data.msg,
+                        duration:1000,
+                        type:"error"
+                    });
+                }
+            }).catch(function (error) {
+                that.$message.error('接口报错请联系信息部!');
+            });
+        },
+        //月市场部销售额api
+        MPostMarketingSalesStatistic() {
+            var url = "/api/Statistics/PostMarketingSalesStatistics"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    userId: this.userId,
+                    pageId:180,
+                    companyId:this.companyname,
+                    groupPickupUserId:that.personnelname,
+                    beginDt:that.MbeginDt,
+                    endDt:that.MendDt,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    
+                }else{
+                    that.$message({
+                        message:res.data.msg,
+                        duration:1000,
+                        type:"error"
+                    });
+                }
+            }).catch(function (error) {
+                that.$message.error('接口报错请联系信息部!');
+            });
+        },
+    },
+    watch: {
+        companyname:function(val){
+            this.personnelnamearr=[];
+            this.personnelname='';
+            if(val==-1){
+                this.personnelnamearr=this.personnelnamearrs;
+                this.personnelname=this.personnelnamearr[0].id;
+            }else{
+                for(let i=0;i<this.personnelnamearrs.length;i++){
+                    if(val==this.personnelnamearrs[i].companyId){
+                        this.personnelnamearr.push(this.personnelnamearrs[i]);
+                    }
+                }
+            }
+        },
+        years:function(val){
+            for(let j=0;j<this.yearsarr.length;j++){
+                if(this.yearsarr[j].year==val){
+                    this.quarterarr=this.yearsarr[j].quarterData;
+                    this.quarter=this.quarterarr[0].name;
+                    this.montharr=this.yearsarr[j].quarterData[1].monthData;
+                    this.month=this.montharr[0].name;
+                    this.YbeginDt=this.yearsarr[j].quarterData[0].beginDt;
+                    this.YendDt=this.yearsarr[j].quarterData[0].endDt;
+                }
+            }
+            this.YPostMarketingSalesStatistic()
+        },
+        quarter:function(val){
+            this.montharr=[]
+            for (let g = 0; g < this.quarterarr.length; g++) {
+                if(val==this.quarterarr[g].name){
+                    if (val=="全部") {
+                        this.month="全部";
+                        this.QbeginDt=this.quarterarr[g].beginDt;
+                        this.QendDt=this.quarterarr[g].endDt;
+                        this.QPostMarketingSalesStatistic()
+                        return
+                    }
+                    this.QbeginDt=this.quarterarr[g].monthData[0].beginDt;
+                    this.QendDt=this.quarterarr[g].monthData[0].endDt;
+                    this.montharr=this.quarterarr[g].monthData;
+                    this.month=this.montharr[0].name;
+                    this.QPostMarketingSalesStatistic()
+                }
+            }
+        },
+        month:function(val){
+            console.log(this.montharr);
+            if (this.montharr!=undefined) {
+                for (let h = 0; h < this.montharr.length; h++) {
+                    if(val==this.montharr[h].name){
+                        this.MbeginDt=this.montharr[h].beginDt;
+                        this.MendDt=this.montharr[h].endDt;
+                    }
+                }
+                console.log(this.MbeginDt,this.MendDt);
+                // this.MPostMarketingSalesStatistic()
+            }
         }
         }
     },
     },
+    created(){
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+    },
     mounted(){
     mounted(){
+        this.PostMarketingSalesInitData()
         this.statisone()
         this.statisone()
     }
     }
 }
 }
@@ -341,4 +617,13 @@ export default {
 .content-table .block{
 .content-table .block{
     text-align: center;
     text-align: center;
 }
 }
+.search-head{
+    display: flex;
+}
+.search-head .el-form{
+    width: 300px;
+}
+.search-head .el-select{
+    width: 100%;
+}
 </style>
 </style>

+ 1 - 0
src/components/Resource/OpOfficialActivities.vue

@@ -351,6 +351,7 @@ export default {
                 tel: [
                 tel: [
                     { required: true, message: '该信息为必填信息', trigger: 'blur' },
                     { required: true, message: '该信息为必填信息', trigger: 'blur' },
                     { required: true, message: '该信息为必填信息', trigger: 'change' },
                     { required: true, message: '该信息为必填信息', trigger: 'change' },
+                    { pattern: /^-?\d+\.?\d*$/, message: '请输入正确数据', trigger: 'blur' }
                 ],
                 ],
                 dresscode: [
                 dresscode: [
                     { required: true, message: '该信息为必填信息', trigger: 'blur' },
                     { required: true, message: '该信息为必填信息', trigger: 'blur' },

+ 5 - 0
src/main.js

@@ -39,6 +39,11 @@ Vue.use(plugin);//全局
 import websocket  from './store/websocket.js'
 import websocket  from './store/websocket.js'
 Vue.prototype.$websocket = websocket//websocket
 Vue.prototype.$websocket = websocket//websocket
 
 
+//禁用浏览器前进后腿
+window.addEventListener('popstate', function() {
+  history.pushState(null, null, document.URL)
+})
+
 Vue.prototype.$message = Message;
 Vue.prototype.$message = Message;
 Vue.prototype.$axios = axios;
 Vue.prototype.$axios = axios;
 
 

+ 4 - 0
src/router/index.js

@@ -113,6 +113,10 @@ import Supplierinfo from '@/components/ConferenceModule/Supplierinfo';
 Vue.use(Router)
 Vue.use(Router)
 
 
 export default new Router({
 export default new Router({
+    mode: 'history',
+    scrollBehavior: () => {
+      history.pushState(null, null, document.URL)
+    },
   routes: [
   routes: [
     {
     {
       path: '/',
       path: '/',