Parcourir la source

'合并智能投放刷新应用'

魏志佳 il y a 4 ans
Parent
commit
b99acfcccb

+ 4 - 4
package.json

@@ -25,7 +25,7 @@
     "codemirror": "^5.46.0",
     "cos-js-sdk-v5": "^0.5.26",
     "dayjs": "^1.8.0",
-    "echarts": "^4.3.0",
+    "echarts": "^4.9.0",
     "element-ui": "^2.13.0",
     "enquire.js": "^2.1.6",
     "html2canvas": "^1.0.0-rc.3",
@@ -48,6 +48,7 @@
     "vue-i18n": "^8.7.0",
     "vue-infinite-scroll": "^2.0.2",
     "vue-layer": "^1.0.2",
+    "vue-lazyload": "^1.3.3",
     "vue-loader": "^15.7.0",
     "vue-ls": "^3.2.0",
     "vue-oss-uploader": "^0.1.10",
@@ -61,8 +62,7 @@
     "vue-waterfall-easy": "^2.4.3",
     "vuedraggable": "^2.20.0",
     "vuex": "^3.0.1",
-    "vuex-class": "^0.3.1",
-    "vue-lazyload": "^1.3.3"
+    "vuex-class": "^0.3.1"
   },
   "devDependencies": {
     "@babel/polyfill": "^7.2.5",
@@ -131,4 +131,4 @@
     "last 2 versions",
     "not ie <= 8"
   ]
-}
+}

+ 1 - 0
src/utils/request.js

@@ -9,6 +9,7 @@ const key = "1"
 
 if (process.env.NODE_ENV == 'development') { 
     axios.defaults.baseURL = '/jeecg-boot'
+    
 } 
 else if (process.env.NODE_ENV == 'debug') { 
 } 

+ 218 - 46
src/views/modules/autoLaunch/configLaunchInfo.vue

@@ -133,13 +133,14 @@
                                 <a-select v-decorator="['appId', { rules: [{ required: true, message: '请选择目标应用' }] }]" showSearch allowClear
                                     placeholder="选择应用目标" optionFilterProp="children" style="width: 500px"  
                                    :filterOption="filterOption" @change="appIdChange" :mode="getFormData('singleAppid')==1?'defalut':'multiple'" :maxTagCount='1'>
-                                    <!-- <a-select-option value="0">请选择目标应用</a-select-option> -->
+                                    <a-select-option v-if="getFormData('singleAppid')==0" :value='0' @click="selectAllAppId">选择以下全部</a-select-option>
                                     <a-select-option v-for="appModel in appList" :key="appModel.appId" :value="appModel.appId">
                                         {{ appModel.appName }}&#12288;&nbsp;&#12288; {{ appModel.appVersion }}&#12288;&#12288;&#12288;{{
                                         appModel.platform | platform
                                         }}
                                     </a-select-option>
                                 </a-select>
+                                <a-button type="primary" @click="addApplication" style="margin-left:10px" :loading="tongbuLoading">刷新应用</a-button>
                             </a-form-item>
                         
                         </div>
@@ -179,7 +180,7 @@
                         <div class="hint-item"></div>
                         <div class="label-item">
                         <div class="text-item">转化追踪</div>
-                        <div class="required-item"></div>
+                        <!-- <div class="required-item"></div> -->
                         </div>
                         <div class="input-item">
                             <a-form-item  >
@@ -354,7 +355,7 @@
                                                 <template slot="populationType" slot-scope="populationType"> {{ populationType |customCrowdHandler}} </template>
                                             </a-table>
                                         </a-tab-pane>
-                                       
+                                        <a-button slot="tabBarExtraContent" type='primary' @click="refreshPopulation" :loading='refreshPopulationLoading'>刷新人群包</a-button>
                                     </a-tabs>
                                     
                             </div>  
@@ -380,7 +381,28 @@
                         </div>
                     </div>
                     
-                    
+                    <div class="row-item" >
+                        <div class="hint-item"></div>
+                        <div class="label-item">
+                        <div class="text-item">是否开启智能扩量</div>
+                        <div class="required-item"></div>
+                        </div>
+                        <div class="input-item">
+                        <a-form-item>
+                            <a-radio-group v-decorator="['isOpen', { initialValue: 0 }]" @change="isOpenChange">
+                                <a-radio-button :value='0'>关闭</a-radio-button>
+                                <a-radio-button :value="1">开启</a-radio-button>                            
+                            </a-radio-group>
+                        </a-form-item>
+                        <div style="width: 400px; margin-top: 24px;" class="inventoryTypes" v-show="getFormData('isOpen')==1">
+                            <div class="inventory-tags-lists-container">
+                                <a-checkbox v-model="noAgeBreak">不可突破年龄</a-checkbox>
+                                <a-checkbox v-model="noGenderBreak">不可突破性别</a-checkbox>
+                                <a-checkbox v-model="noAreaBreak">不可突破地域</a-checkbox>
+                            </div>
+                        </div>                  
+                        </div>
+                    </div>
             </div>
             <div class="ad-range2" v-if="useDirectional==0">
                 <div style="position:relative" class="ad-range2-title">
@@ -521,6 +543,7 @@
                             
 
                                 <a-select-option :value="2">行为数</a-select-option>
+                                <!-- v-if="getFormData('campaignType') == 2 && groupTypeData.isActivate == 1 -->
                                 <a-select-option :value="180"
                                 v-if="getFormData('campaignType') == 2 && groupTypeData.isActivate == 1">激活</a-select-option>
                                 <a-select-option :value="53" v-if="
@@ -563,7 +586,7 @@
                         <div class="input-item">
                         <a-form-item>
                             <a-select v-decorator="['deepConversionType']" allowClear style="width: 200px">
-                                <a-select-option v-for="(items, index) of groupTypeData.deepConversionTypes" :key="index">
+                                <a-select-option v-for="(items, index) of groupTypeData.deepConversionTypes" :key="index" :value='items.deepConversionType'>
                                 {{ items.desc }}</a-select-option>
                             </a-select>
                         </a-form-item>
@@ -643,6 +666,7 @@
                         <div class="label-item">
                             <div class="text-item">深度转化目标出价</div>
                             <!-- <div class="required-item"></div> -->
+                            <!-- {{getFormData('deepConversionBid')}} -->
                         </div>
                         <div class="input-item">
                             <a-form-item>
@@ -1137,10 +1161,10 @@ let retargetColumns=[
     },
     {
         title: '所属账号',
-        dataIndex: 'accountName',
+        dataIndex: 'accountId',
         sorter: true,
         width: '40%',
-        scopedSlots: { customRender: 'accountName' },
+        scopedSlots: { customRender: 'accountId' },
     },
     
 ]
@@ -1159,6 +1183,7 @@ const plainOptions = [
       label: '视频播放页广告'
     },
 ];
+
 export default {
     components: {
         // selectCheckAll,
@@ -1171,6 +1196,11 @@ export default {
     },
     data() {
         return {
+            tongbuLoading:false,
+            refreshPopulationLoading:false,
+            noAreaBreak:false,
+            noGenderBreak:false,
+            noAgeBreak:false,
             regionList:[],
             editRecordId:'',
             spinning:false,
@@ -1197,7 +1227,7 @@ export default {
                 children: 'child',
             },
             createOptions: [],
-            appStore: ['huawei', 'oppo', 'vivo', 'xiaomi', 'meizu', 'smartisan'],
+            appStore: ["huawei", "oppo", "vivo", "xiaomi", "meizu", "smartisan"],
             sysType:1,
             indeterminateDirectional:false,
             checkAllDirectional:false,
@@ -1318,13 +1348,8 @@ export default {
                 //     }
                 // })
                 this.getAppList()
-                getAction('/kuaishou/batch/getIsActivate', {
-                    accountId: this.accountId
-                }).then(res => {
-                    if (res.success) {
-                        this.groupTypeData = res.result
-                    }
-                })
+                
+               
 
                 getAction('/kuaishou/batch/getCreativeCategory', {
                     accountId:this.accountId,
@@ -1339,7 +1364,8 @@ export default {
             }else{
 
             }
-        }
+        },
+        
     },
     computed: {
             
@@ -1383,8 +1409,71 @@ export default {
             },
     },
     methods: {
+        refreshPopulation(){
+            if(this.accountId){
+                this.refreshPopulationLoading = true
+                // this.$refs.application.showApplication()
+                getAction('/kuaishou/batch/pullPopulationList', {
+                    accountId: this.accountId
+                }).then(res => {
+                    if (res.success) {
+                        this.refreshPopulationLoading = false
+                        this.$message.success(res.message)
+                        this.retargetTabChange()
+                    } else {
+                        this.refreshPopulationLoading = false
+                        this.$message.error(res.message)
+                    }
+                })
+            }else{
+                this.$message.error('请先选择账户')
+            }
+        },
+        addApplication() {
+            if(this.accountId){
+                this.tongbuLoading = true
+                // this.$refs.application.showApplication()
+                getAction('/kuaishou/batch/syncAppList', {
+                accountId: this.accountId
+                }).then(res => {
+                if (res.success) {
+                    this.tongbuLoading = false
+                    this.$message.success(res.message)
+                    this.getAppList()
+                } else {
+                    this.tongbuLoading = false
+                    this.$message.error(res.message)
+                }
+                })
+            }else{
+                this.$message.error('请先选择账户')
+            }
+            
+        },
+        getIsActivate(val){
+            let params={};
+                params.accountId=this.accountId;
+                params.campaignType=this.getFormData('campaignType');
+                params.appId=val
+                
+                getAction('/kuaishou/batch/getIsActivate',params).then(res => {
+                    if (res.success) {
+                        this.groupTypeData = res.result
+                    }
+                })
+        },
+
+        isOpenChange(e){
+            this.noAreaBreak=false;
+            this.noGenderBreak=false;
+            this.noAgeBreak=false;
+        },
+        selectAllAppId(){
+           
+            console.log(this.getFormData('appId'))
+        },
         singleAppidChange(e){
-            console.log(e.target.value,this.getFormData('appId'));
+            // console.log(e.target.value,this.getFormData('appId'));
             this.form.setFieldsValue({
                 appId:undefined
             })
@@ -1540,7 +1629,38 @@ export default {
             this.siteList=[]
             
             // this.getPageList(val)
+            if(this.getFormData('singleAppid')==0){
+                if(val.indexOf(0)>-1){
+                    let appidArr=this.appList.map(item=>{
+                        return item.appId
+                    })
+                    // setTimeout(()=>{
+                        
+                    //     this.form.setFieldsValue({
+                    //         appId:appidArr
+                    //     })
+                    // },0)
+                    this.$nextTick(()=>{
+                        this.form.setFieldsValue({
+                            appId:appidArr
+                        })
+                    })
+                
+                }
+            }
             
+           if(val!=undefined || val.length>0){
+                if(this.getFormData('campaignType')==2){
+                    
+                    if(this.getFormData('singleAppid')==1){
+                        this.getIsActivate(val)
+                    }else{
+                        this.getIsActivate(val[0])
+                    }
+                    
+                }
+               
+           }
         },
         disabledDate(current) {
            
@@ -1624,7 +1744,7 @@ export default {
                                 ele.key=ele.orientationId   
                                 ele.id= ele.orientationId 
                                 ele.name=ele.orientationName+"("+ele.orientationId+")"
-                                ele.accountName=this.accountInfo.title
+                                // ele.accountName=this.accountInfo.title
                                 ele.accountId=this.accountId               
                             })
                             // this.retargetData=res.data;
@@ -1759,7 +1879,7 @@ export default {
         this.$nextTick(()=>{
   
             this.form.validateFields((err, values) => {
-                   
+                console.log(values) 
                 if (!err) {                   
                     this.goNextloading=true;
                     if(this.district!='NONE'){
@@ -1815,10 +1935,15 @@ export default {
                     // }
                     if(this.sysType==1&&this.getData('useAppMarket')){
                         values.appStore=JSON.stringify(this.appStore)
+                    }else if(this.sysType==1&&!this.getData('useAppMarket')){
+                        values.appStore="[]"
                     }
                     if(values.cpaBid){
                         values.cpaBid=parseInt(values.cpaBid*1000)
                     }
+                    if(values.deepConversionBid){
+                        values.deepConversionBid=parseInt(values.deepConversionBid*1000)
+                    }
                  
                     if(values.creativeCategory&&values.creativeCategory.length>0){
                         values.creativeCategory=values.creativeCategory[values.creativeCategory.length-1]
@@ -1829,6 +1954,11 @@ export default {
                     values.accountId = this.accountId
                    
                     values.creativeTag=values.creativeTag?JSON.stringify(values.creativeTag):undefined
+
+                    values.noAreaBreak=this.noAreaBreak?1:0
+                    values.noGenderBreak=this.noGenderBreak?1:0
+                    values.noAgeBreak=this.noAgeBreak?1:0
+
                     console.log('Received values of form: ', values)
                     let url=''
                     if(this.editRecordId){
@@ -2040,16 +2170,48 @@ export default {
                     this.accountId=res.result.accountId;
                     this.description=res.result.description
                     res.result.creativeCategory=[parseInt(res.result.creativeCategory/10000),parseInt(res.result.creativeCategory/100),res.result.creativeCategory]
+
+                    new Promise((resolve,reject)=>{
+                        getAction('/kuaishou/batch/getIsActivate', {
+                            accountId: this.accountId
+                        }).then(res => {
+                            if (res.success) {
+                                this.groupTypeData = res.result
+                                resolve()
+                            }
+                        })
+                    }).then(r=>{
+
+                    
                     this.form.setFieldsValue({
                         ...res.result,
                         creativeTag:res.result.creativeTag?JSON.parse(res.result.creativeTag):undefined,
                         useAppMarket:res.result.useAppMarket==1?true:false,
-                        
+                        isOpen:res.result.isOpen?res.result.isOpen:0,
                         cpaBid:res.result.cpaBid/1000,
                         appId:res.singleAppid?JSON.parse(res.result.appIdArray)[0]:JSON.parse(res.result.appIdArray)
                     })
+                    if((this.getFormData('ocpxActionType') == 180 || this.getFormData('ocpxActionType') == 53) && this.groupTypeData.deepConversionTypes&&this.groupTypeData.deepConversionTypes.length > 0){
+                        setTimeout(()=>{
+                        this.form.setFieldsValue({
+                            deepConversionType:res.result.deepConversionType,
+                        })
+                        if(res.result.deepConversionBid!=null){
+                            this.form.setFieldsValue({
+                                deepConversionBid:res.result.deepConversionBid/1000,  
+                            }) 
+                        }
+                    },0)
+                    }
+                    
+                    console.log(this.getFormData('deepConversionBid'))
+                    this.noAreaBreak=res.result.noAreaBreak?true:false
+                    this.noGenderBreak=res.result.noGenderBreak?true:false
+                    this.noAgeBreak=res.result.noAgeBreak?true:false
+                    // this.appStore=res.result.appStore?JSON.parse(res.result.appStore):this.appStore
                     this.ageArr=[];
                     this.ageArr=JSON.parse(JSON.stringify(ageArr))
+                    
                     let agesRange=res.result.agesRange?JSON.parse(res.result.agesRange):[]
                     if(agesRange.length>0){
                         agesRange.forEach((item,index)=>{                   
@@ -2111,11 +2273,15 @@ export default {
 
                     
                     this.spinning=false;
+                                                     
+               
+                    })
                 })
             }
         },
 
         getpopulationlist(){
+            this.retargetDataAll=[]
             getAction('/kuaishou/batch/getPopulationList',{
                 accountId:this.accountId
             }).then((res)=>{
@@ -2130,13 +2296,22 @@ export default {
                         ele.accountId=this.accountId               
                     })
                     // this.retargetData=res.data;
-                    this.retargetDataAll=[...this.retargetDataAll,...res.result];
+                    // this.retargetDataAll=[...this.retargetDataAll,...res.result];
+                     this.retargetDataAll=[...res.result];
                     
                 }
             })
         }
     },
-    
+    created() {
+        if(this.$route){
+            let editRecordId=this.$route.query.id;
+            if(editRecordId){
+                this.editRecordId=editRecordId;
+                this.editEchoPage()
+            }
+        }
+    },
     mounted() {
         this.accountHttp()
         
@@ -2146,13 +2321,7 @@ export default {
         
         this.strategyName ='[预设]_'+ strategyNamepart+'_' + moment().format('MM_DD_hh:mm') ;
         this.getActionBarText()
-        if(this.$route){
-            let editRecordId=this.$route.query.id;
-            if(editRecordId){
-                this.editRecordId=editRecordId;
-                this.editEchoPage()
-            }
-        }
+        
         
     },
 
@@ -2178,55 +2347,55 @@ export default {
         customCrowdHandler(val){
             let str=''
             switch (val) {
-                case '1':
+                case 1:
                     str='上传人群'
                     break;
-                case '2':
+                case 2:
                     str='广告人群'
                     break;
-                case '3':
+                case 3:
                     str='主题专区'
                     break;
-                case '4':
+                case 4:
                     str='逻辑规则'
                     break;
-                case '5':
+                case 5:
                     str='人群扩展'
                     break;
-                case '6':
+                case 6:
                     str='平台定制'
                     break;
-                case '7':
+                case 7:
                     str='定制付费'
                     break;
-                case '8':
+                case 8:
                     str='网红粉丝类别'
                     break;
-                case '9':
+                case 9:
                     str='内容付费行为'
                     break;
-                case '10':
+                case 10:
                     str='移动应用安装'
                     break;
-                case '11':
+                case 11:
                     str='快手使用活跃度'
                     break;
-                case '12':
+                case 12:
                     str='行业分类'
                     break;
-                case '13':
+                case 13:
                     str='商业兴趣'
                     break;
-                case '14':
+                case 14:
                     str='固化标签'
                     break;
-                case '15':
+                case 15:
                     str='行业偏好'
                     break;
-                case '16':
+                case 16:
                     str='第三方标签'
                     break;
-                case '17':
+                case 17:
                     str='产品关键词'
                     break;
             
@@ -2297,6 +2466,9 @@ export default {
     .ant-checkbox-wrapper:first-child {
         padding: 0 15px 5px;
     }
+    .ant-checkbox-wrapper + .ant-checkbox-wrapper {
+        margin-left: 0px; 
+    }
   }
 }
 </style>

+ 82 - 9
src/views/modules/autoLaunch/configLaunchList.vue

@@ -32,7 +32,22 @@
                     :scroll="{'x':scrollX}"
                     
                 >
-
+                    <span slot="status" slot-scope="text,record">
+                        <a-spin :spinning="record.spin" size="small" >
+                            <div class="spin-content">
+                                <a-switch size="default" :checked='text==1'  @change="switchChange(text,record)"/>
+                            </div>
+                        </a-spin>    
+                        
+                    </span>
+                    <span slot="openProgramCreate" slot-scope="text,record">
+                        <a-spin :spinning="record.openProgramCreateSpin" size="small" >
+                            <div class="spin-content">
+                                <a-switch size="default" :checked='text==1'  @change="openProgramCreateSwitchChange(text,record)"/>
+                            </div>
+                        </a-spin>    
+                        
+                    </span>
                     <span slot="cpaBid" slot-scope="text">
                         {{text/1000}}
                     </span>
@@ -102,15 +117,15 @@ let typeValue='预算'
 
 const strategyColumns = [
   
-//   {
-//     title: 'ID',
-//     dataIndex: 'id',
-//     key: 'id',
-//     align: 'center',
-//     scopedSlots: { customRender: 'id' },
-//     width:110,
+  {
+    title: '开关',
+    dataIndex: 'status',
+    key: 'status',
+    align: 'center',
+    scopedSlots: { customRender: 'status' },
+    width:110,
     
-//   },
+  },
    {
     title: '所属账户名称',
     dataIndex: 'authName',
@@ -142,6 +157,14 @@ const strategyColumns = [
         scopedSlots: { customRender: 'cpaBid' },
         // sorter:() => {}
     },
+  {
+        title: '是否开启程序化创建',
+        dataIndex: 'openProgramCreate',
+        align: 'center',    
+        scopedSlots: { customRender: 'openProgramCreate' },
+        // sorter:() => {}
+        width:180,
+    },
  {
     title: '操作',
     dataIndex: 'operator',
@@ -231,6 +254,54 @@ export default {
         },
     },
     methods: {
+        //状态改变
+        switchChange(text,record){
+            // this.spinning=true;
+            console.log(text,record)
+            record.spin=true;
+            
+            
+            let status=text==1?0:1;
+            getAction(`/ctop/aiKuaishouAdvertiserStrategy/oprateStatus`,{
+                id:record.id,
+                status
+            }).then((res)=>{
+                
+                    record.spin=false;
+                if(res.success){
+                    this.getStrategyList()
+                    this.$message.success(res.message)
+                }else{
+                    this.$message.error(res.message)
+                }
+            })
+           
+
+        },
+        //是否开启程序化创意状态改变
+        openProgramCreateSwitchChange(text,record){
+            // this.spinning=true;
+            console.log(text,record)
+            record.openProgramCreateSpin=true;
+            
+            
+            let status=text==1?0:1;
+            getAction(`/ctop/aiKuaishouAdvertiserStrategy/oprateCreativeStatus`,{
+                id:record.id,
+                status
+            }).then((res)=>{
+                
+                    record.openProgramCreateSpin=false;
+                if(res.success){
+                    this.getStrategyList()
+                    this.$message.success(res.message)
+                }else{
+                    this.$message.error(res.message)
+                }
+            })
+           
+
+        },
         examineAgainMethod(record){
             console.log(record)
             this.examineAgain=true;
@@ -355,6 +426,8 @@ export default {
                         item.key=item.id;
                         item.show=false;
                         item.visible=false;
+                        item.spin=false;
+                        item.openProgramCreateSpin=false;
                     })
 
                     this.data = res.result.records;

+ 7 - 2
src/views/modules/autoLaunch/newAppId.vue

@@ -277,17 +277,23 @@ export default {
         beforeUpload(file) {
             // ${this.form.project}
             if (process.env.NODE_ENV == 'development') { 
-                this.uploadAction= `http://139.186.151.174:8804/jeecg-boot/ai/aiKuaiShouAppInfo/importAppExcel?accountId=${this.accountId}&platform=${this.platform}&imageToken=${this.urlListImage.imageToken}`
+                this.uploadAction= `/jeecg-boot/ai/aiKuaiShouAppInfo/importAppExcel?accountId=${this.accountId}&platform=${this.platform}&imageToken=${this.urlListImage.imageToken}`
             } 
             else if (process.env.NODE_ENV == 'debug') { 
             } 
             else if (process.env.NODE_ENV == 'production') { 
+<<<<<<< HEAD
               
                this.uploadAction= `http://api.tjyourong.com.cn/jeecg-boot/ai/aiKuaiShouAppInfo/importAppExcel?accountId=${this.accountId}&platform=${this.platform}&imageToken=${this.urlListImage.imageToken}`
              
             }
            
             
+=======
+
+              this.uploadAction= `${this.axios.defaults.baseURL}/ai/aiKuaiShouAppInfo/importAppExcel?accountId=${this.accountId}&platform=${this.platform}&imageToken=${this.urlListImage.imageToken}`
+            }
+>>>>>>> test-2
 
             this.loadDisabled = true
             const size = (Number(file.size) / (1024 * 1024)).toFixed(2)
@@ -366,7 +372,6 @@ export default {
   mounted() {
     this.accountHttp()
    
-    
   },
 }
 </script>

+ 648 - 0
src/views/modules/stockWatch/accountPage.vue

@@ -0,0 +1,648 @@
+<template>
+    <div class="accountPage">
+        <div class="bodyBox accountBody">
+            <div class="accountBodyLeft">
+                <div class="accountBodyLeftCost">
+                    <div class="accountBodyLeftCostLeft">
+                        <div class="top">
+                            <p class="title" style="margin-bottom:15px">花费</p>
+                            <a-range-picker 
+                                v-model="dateValue"
+                                style="width:170px;"
+                                :allowClear=false
+                                :disabled-date="disabledDate"
+                                @change="onChange"
+                            />
+                        </div>
+                        <div class="costInfo">
+                            <div class="yesterdayInfo">
+                                <p>昨日花费</p>
+                                <p style="font-size:16px;font-weight:600">{{345498.93 | decimalsHandle}}</p>
+                            </div>
+                            <a-divider type="vertical" />
+                            <div class="tongbi">
+                                <p>同比</p>
+                                <p style="font-size:16px;font-weight:600">39.93%</p>
+                            </div>
+                        </div>
+                        <div class="costNum">
+                            {{1673240.50 | decimalsHandle}}
+                        </div>
+                    </div>
+                    <div class="accountBodyLeftCostRight">
+                        <div class="gaugeEchart" id="gaugeEchart"  style='width:100%;height:200px;margin:0 auto' ref="gaugeEchart"></div>
+                    </div>
+                </div>
+                <div class="accountBodyLeftOther">
+                    <span class="showIndex">显示指标</span>
+                    <div class="top">
+                        
+                        <div class="item">
+                            <div class="todyCost">
+                                <span>{{667.15 | decimalsHandle}}</span>
+                                <span>
+                                    <a-icon type="rise" />
+                                    <a-icon type="fall" />
+                                </span>
+                            </div>
+                            <div class="yesterdayCost">
+                                /昨日:{{407.16 | decimalsHandle}}
+                            </div>
+                            <div class="IndexName">
+                                激活数
+                            </div>
+                        </div>
+                    </div>
+                    <div class="echart">
+                        <div></div>
+                    </div>
+                </div>
+            </div>
+            <div class="accountBodyRight">
+                <div class="accountBodyRighTitle">
+                    <h1>易车-安卓-12</h1>
+                    <p class="accountBodyRighTitleID">账户ID:{{currentAccount.id || 9647490}}</p>
+                </div> 
+                <div class="accountBodyRightInfo">
+                    <p class="accountBodyRightInfoItem">
+                        <span class="name">余额:</span>
+                        {{365897223 |decimalsHandle }}
+                    </p>
+                    <p class="accountBodyRightInfoItem">
+                        <span class="name">投放状态:</span>
+                        365897223
+                    </p>
+                    <p class="accountBodyRightInfoItem createNum">
+                        <span class="name">被拒创意数:</span>
+                        30
+                    </p>
+                </div>
+            </div>
+        </div>
+        <div class="bodyBox planBody">
+            <div class="planBodyLeft">
+                <div class="title">
+                    <p class="titleContext">
+                        <span class="spot"> </span>
+                        广告上新
+                        <span class="titleTip">该广告账户近七天上新数据</span>
+                    </p>
+                </div>
+                <div class="echart">
+                    <div class="newDataEchart" id="newDataEchart"  style='width:100%;height:350px;margin:0 auto;padding: 0 10px' ref="newDataEchart"></div>
+                </div>
+            </div>
+            <div class="planBodyRight">
+
+            </div>
+        </div>
+        <div class="bodyBox materialBody">
+
+        </div>
+        <div class="bodyBox targetBody">
+
+        </div>
+    </div>
+</template>
+
+<script>
+import moment from 'moment'
+import { getAction, postAction, downFile, downFilePost } from '@/api/manage'
+
+import qs from 'qs'
+// 引入基本模板
+var echarts = require('echarts')
+// 引入柱状图组件
+require('echarts/lib/chart/bar')
+// require('echarts/lib/chart/pie')
+require('echarts/lib/chart/line')
+require('echarts/lib/chart/map')
+require('echarts/lib/chart/gauge')
+// 引入提示框和title组件
+require('echarts/lib/component/tooltip')
+require('echarts/lib/component/title')
+require('echarts/lib/component/graphic')
+require('echarts/lib/component/toolbox')
+require('echarts/lib/component/legend')
+
+    export default {
+        name:'accountPage',
+        data() {
+            return {
+                moment,
+                currentAccount:{},
+                dateValue:[moment(),moment()],
+            }
+        },
+        methods: {
+            disabledDate(current) {
+                return current && current > moment() && current < moment().subtract(1,'months')
+            }, 
+            onChange(date, dateString) {                
+                console.log(date, dateString)
+            },
+
+            initGaugechart(value){
+                var dataArr = value;
+                var colorSet = {
+                    color: '#fff'
+                };
+                let option = {
+                    // backgroundColor: '#0E1327',
+                    tooltip: {
+                        formatter: "{a} <br/>{b} : {c}%"
+                    },
+
+                    series: [
+                        {
+                            name: "内部进度条",
+                            type: "gauge",
+                            // center: ['20%', '50%'],
+                            radius: '40%',
+
+                            splitNumber: 10,
+                            axisLine: {
+                                lineStyle: {
+                                    color: [
+                                        [dataArr / 100, colorSet.color],
+                                        [1, "#111F42"]
+                                    ],
+                                    width: 8
+                                }
+                            },
+                            axisLabel: {
+                                show: false,
+                            },
+                            axisTick: {
+                                show: false,
+
+                            },
+                            splitLine: {
+                                show: false,
+                            },
+                            itemStyle: {
+                                show: false,
+                            },
+                            detail: {
+                                formatter: function(value) {
+                                    if (value !== 0) {
+                                        var num = Math.round(value ) ;
+                                        return parseInt(num).toFixed(0)+"%";
+                                    } else {
+                                        return 0;
+                                    }
+                                },
+                                offsetCenter: [0, 52],
+                                textStyle: {
+                                    padding: [0, 0, 0, 0],
+                                    fontSize: 18,
+                                    fontWeight: '700',
+                                    color: colorSet.color
+                                }
+                            },
+                            title: { //标题
+                                show: true,
+                                offsetCenter: [0, 80], // x, y,单位px
+                                textStyle: {
+                                    color: "#fff",
+                                    fontSize: 14, //表盘上的标题文字大小
+                                    fontWeight: 400,
+                                    fontFamily: 'PingFangSC'
+                                }
+                            },
+        
+                            data: [{
+                                name: "点击-激活率",
+                                value: dataArr,
+                            }],
+                            pointer: {
+                                show: true,
+                                length: '75%',
+                                radius: '20%',
+                                width: 3, //指针粗细
+                            },
+                            animationDuration: 4000,
+                        },
+                        {
+                            name: '外部刻度',
+                            type: 'gauge',
+                            //  center: ['20%', '50%'],
+                            radius: '50%',
+                            min: 0, //最小刻度
+                            max: 100, //最大刻度
+                            splitNumber: 5, //刻度数量
+                            startAngle: 225,
+                            endAngle: -45,
+                            axisLine: {
+                                show: true,
+                                lineStyle: {
+                                    width: 1,
+                                    color: [
+                                        [1, 'rgba(0,0,0,0)']
+                                    ]
+                                }
+                            }, //仪表盘轴线
+                            axisLabel: {
+                                show: true,
+                                color: '#fff',
+                                distance: -20,
+                                formatter: function(v) {
+                                    switch (v + '') {
+                                        case '0':
+                                            return '0';
+                                        case '10':
+                                            return '10';
+                                        case '20':
+                                            return '20';
+                                        case '30':
+                                            return '30';
+                                        case '40':
+                                            return '40';
+                                        case '50':
+                                            return '50';
+                                        case '60':
+                                            return '60';
+                                        case '70':
+                                            return '70';
+                                        case '80':
+                                            return '80';
+                                        case '90':
+                                            return '90';
+                                        case '100':
+                                            return '100';
+                                    }
+                                }
+                            }, //刻度标签。
+                            axisTick: {
+                                show: true,
+                                splitNumber: 5,
+                                lineStyle: {
+                                    color: colorSet.color, //用颜色渐变函数不起作用
+                                    width: 1,
+                                },
+                                length: -8
+                            }, //刻度样式
+                            splitLine: {
+                                show: true,
+                                length: -10,
+                                lineStyle: {
+                                    color: colorSet.color, //用颜色渐变函数不起作用
+                                }
+                            }, //分隔线样式
+                            detail: {
+                                show: false
+                            },
+                            pointer: {
+                                show: false
+                            }
+                        },
+                    ]
+                };
+                return option
+            },
+            initNewDataChart(data){
+                
+                let   option = {
+                    tooltip: {
+                        trigger: 'axis'
+                    },
+                    legend: {
+                        data: ['新上计划数', '新上组数', '新上创意数']
+                    },
+                    xAxis: {
+                        type: 'category',
+                        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+                        axisLine: {
+                            onZero: false,
+                            lineStyle: {
+                                color: '#999'
+                            }
+                        },
+                    },
+                    yAxis: {
+                        type: 'value',
+                        axisLine: {
+                            onZero: false,
+                            show:false,
+                            color: '#999',
+                            lineStyle: {
+                                color: '#999'
+                            }
+                        },
+                    },
+                    
+                    series: [
+                        {   
+                            name: '新上计划数',
+                            data: [820, 932, 901, 934, 1290, 1330, 1320],
+                            type: 'line',
+                            smooth: true,
+                            showSymbol: false,
+                            lineStyle: {                               
+                                color: '#AC8BF9',   
+                                width: 3,
+                            },
+                            itemStyle:{
+                                color:'#AC8BF9',
+                                borderWidth:3,
+                                borderColor:'#fff'
+                            }
+                        },
+                        {   
+                            name: '新上组数',
+                            data: [800, 962, 930, 950, 1200, 1380, 1420],
+                            type: 'line',
+                            smooth: true,
+                            showSymbol: false,
+                            lineStyle: {                               
+                                color: '#4CA4F9', 
+                                width: 3,  
+                            },
+                            itemStyle:{
+                                color:'#4CA4F9',
+                                borderWidth:2,
+                                borderColor:'#fff',
+                                
+                            }
+                        },
+                        {
+                            name: '新上创意数',
+                            data: [500, 462, 530, 950, 1200, 1080, 1020],
+                            type: 'line',
+                            smooth: true,
+                            showSymbol: false,
+                            lineStyle: {                               
+                                color: '#3CC6A5',   
+                                width: 3,
+                            },
+                            itemStyle:{
+                                color:'#3CC6A5',
+                                borderWidth:3,
+                                borderColor:'#fff'
+                            }
+                        },
+                    ]
+                };
+
+                return option
+            },
+            //获取echart的值
+            initEchart(idName, optionName) {
+                const chart = this.$refs[idName]
+                //   console.log(chart)
+                if (chart) {
+                    const myChart = echarts.init(document.getElementById(idName))
+                    // myChart.showLoading({
+                    //     text: "图表数据正在努力加载..."
+                    // });
+                    
+                    myChart.setOption(optionName)
+                    window.addEventListener('resize', function() {
+                    myChart.resize()
+                    })
+                }
+            },
+        },
+        mounted() {
+            this.$nextTick(()=>{
+                this.initEchart('gaugeEchart',this.initGaugechart(30))
+                this.initEchart('newDataEchart',this.initNewDataChart())
+            })
+            
+        },
+    }
+</script>
+<style lang="scss">
+.accountPage{
+    .ant-input {
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    margin: 0;
+    padding: 0;
+    font-variant: tabular-nums;
+    list-style: none;
+    -webkit-font-feature-settings: 'tnum';
+    font-feature-settings: 'tnum';
+    position: relative;
+    display: inline-block;
+    width: 100%;
+    height: 32px;
+    padding: 4px 0px;
+    color: white;
+    font-size: 14px;
+    line-height: 1.5;
+    background-color: transparent;
+    background-image: none;
+    border:none;
+    border-radius: 4px;
+    -webkit-transition: all 0.3s;
+    transition: all 0.3s;
+    }
+    .ant-calendar-range-picker-separator {
+    display: inline-block;
+    min-width: 10px;
+    height: 100%;
+    color: white;
+    white-space: nowrap;
+    text-align: center;
+    vertical-align: top;
+    pointer-events: none;
+    }
+
+    .ant-divider, .ant-divider-vertical {
+    position: relative;
+    top: -0.06em;
+    display: inline-block;
+    width: 1px;
+    height: 2.9em;
+    margin: 0 8px;
+    vertical-align: middle;
+    }
+}
+</style>
+<style lang="scss" scoped>
+// #
+.accountPage{
+    .bodyBox{
+        width: 100%;
+        margin-bottom: 26px;
+        height: 450px;
+    }
+    .accountBody{
+        
+        height: 300px;
+        display: flex;
+        justify-content: space-between;
+        
+    }
+    .accountBodyLeft{
+        width: 75%;
+        margin-right: 26px;
+        padding: 20px;
+        display: flex;
+        justify-content: space-between;
+    }
+    .accountBodyRight{
+        width: 25%;
+        flex-shrink: 0;
+        padding: 25px;
+    }
+    .accountBodyLeft,.accountBodyRight{
+        border-radius: 10px;
+        background: white;
+        
+    }
+    .accountBodyLeftCost{
+        background: #2461F1;
+        border-radius: 10px;
+        height: 260px;
+        width: 40%;
+        flex-shrink: 0;
+        color: white;
+        display: flex;
+        justify-content: space-between;
+        padding: 20px;
+    }
+    .accountBodyLeftCostLeft{
+        width: 55%;
+        // padding-left: 20px;
+        .title{
+            font-size: 26px;
+            font-weight: 700;
+            padding: 0;
+        }
+        .costInfo{
+            margin: 24px 0 0 0;
+            width: 70%;
+            display: flex;
+            justify-content: space-between;
+        }
+        .costNum{
+            width: 90%;
+            font-size: 26px;
+            font-weight: 700;
+            color:#2461F1 ;
+            background: white;
+            text-align: center;
+            border-radius: 10px;
+            margin: 15px 0;
+            padding: 8px 0px;
+        }
+    }
+    .accountBodyLeftCostRight{
+        width: 45%;
+        // background: white;
+    }
+    .accountBodyLeftOther{
+        width: 60%;
+        margin-left: 20px;
+        padding-left: 20px;
+        border-left:1px solid  #eee ;
+        .top{
+            display: flex;
+            justify-content: space-between;
+        }
+        .item{
+            width: 20%;
+        }
+    }
+
+    // 第二块
+    .planBody{
+        
+        display: flex;
+        justify-content: space-between;
+    }
+
+    .planBodyLeft{
+        width: 40%;
+        height: 100%;
+        background: white;
+        flex-shrink: 0;
+        border-radius: 10px;
+        
+
+    }
+    .title{
+            padding: 20px 20px;
+        }
+        
+        .titleContext{
+            font-size: 14px;
+            font-weight: 600;
+            color:#303133;
+            margin-bottom:0px;
+            
+        }
+        .titleContext::before{
+            content:'';
+            width: 5px;
+            height: 5px;
+            border-radius: 2.5px;
+            background-color:#2461F1;
+            display: inline-block;
+            position: relative;
+            top: -2px;
+        }
+        .titleTip{
+            font-size: 14px;
+            color: #909399;
+            font-weight: 400;
+            margin-left: 20px;
+        }
+    .planBodyRight{
+        width: 60%;
+        background: white;
+        margin-left: 20px;
+        height: 100%;
+        border-radius: 10px;
+    }
+
+
+
+
+
+
+
+
+
+
+    .materialBody{
+        border-radius: 10px;
+        background: white;
+    }
+    .targetBody{
+        border-radius: 10px;
+        background: white;
+    }
+
+    .accountBodyRighTitle{
+       
+        h1{
+            font-size: 26px;
+            font-weight: 700;
+            cursor: pointer;
+        }
+    }
+    .accountBodyRighTitleID{
+        font-size: 14px;
+        color: #c0c4cc;
+        
+    }
+    .accountBodyRightInfoItem{
+        background: rgb(238,241,255);
+        padding: 15px;
+        margin: 20px 0 0;
+        border-radius: 5px;
+        font-size: 16px;
+        .name{
+            font-size: 16px;
+            font-weight: 600;
+        }
+    }
+    .createNum{
+        cursor: pointer;
+    }
+}
+
+</style>

+ 12 - 0
src/views/modules/workBench/materialList.vue

@@ -1497,8 +1497,20 @@ export default {
 
 
         beforeUpload(file) {
+<<<<<<< HEAD
 
             this.uploadAction= `http://api.tjyourong.com.cn/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.materialId}&projectId=${this.currentMaterial.projectId}`
+=======
+            if (process.env.NODE_ENV == 'development') { 
+                this.uploadAction= `/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.materialId}&projectId=${this.currentMaterial.projectId}`
+            } 
+            else if (process.env.NODE_ENV == 'debug') { 
+            } 
+            else if (process.env.NODE_ENV == 'production') { 
+              this.uploadAction= `${this.axios.defaults.baseURL}/platform/file/uploadScript?materialId=${this.currentMaterial.materialId}&projectId=${this.currentMaterial.projectId}`
+            }
+            // this.uploadAction= `http://api.tjyourong.com.cn/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.materialId}&projectId=${this.currentMaterial.projectId}`
+>>>>>>> test-2
             // this.uploadAction= `http://139.186.151.174:8804/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.materialId}&projectId=${this.currentMaterial.projectId}`
             // this.uploadAction= `http://192.168.1.43:8088/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.materialId}&projectId=${this.currentMaterial.projectId}`
             this.loadDisabled = true

+ 12 - 0
src/views/modules/workBench/orderDetail.vue

@@ -1884,7 +1884,19 @@ export default {
 
 
         beforeUpload(file) {
+<<<<<<< HEAD
             this.uploadAction= `http://api.tjyourong.com.cn/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.id}&projectId=${this.currentMaterial.projectId}`
+=======
+            if (process.env.NODE_ENV == 'development') { 
+                this.uploadAction= `/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.id}&projectId=${this.currentMaterial.projectId}`
+            } 
+            else if (process.env.NODE_ENV == 'debug') { 
+            } 
+            else if (process.env.NODE_ENV == 'production') { 
+              this.uploadAction= `${this.axios.defaults.baseURL}/platform/file/uploadScript?materialId=${this.currentMaterial.id}&projectId=${this.currentMaterial.projectId}`
+            }
+            //  this.uploadAction= `http://api.tjyourong.com.cn/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.id}&projectId=${this.currentMaterial.projectId}`
+>>>>>>> test-2
             // this.uploadAction= `http://192.168.1.43:8088/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.id}&projectId=${this.currentMaterial.projectId}`
             // this.uploadAction= `http://139.186.151.174:8804/jeecg-boot/platform/file/uploadScript?materialId=${this.currentMaterial.id}&projectId=${this.currentMaterial.projectId}`
 

+ 13 - 0
src/views/modules/workBench/placeOrder.vue

@@ -715,8 +715,21 @@ export default {
 
         beforeUpload(file) {
             // ${this.form.project}
+<<<<<<< HEAD
             this.uploadAction= `http://api.tjyourong.com.cn/jeecg-boot/platform/file/uploadAttachment?projectId=${this.form.project}`
             // this.uploadAction= `http://139.186.151.174:8804/jeecg-boot/platform/file/uploadAttachment?projectId=772`
+=======
+            // this.uploadAction= `http://api.tjyourong.com.cn/jeecg-boot/platform/file/uploadAttachment?projectId=${this.form.project}`
+            // this.uploadAction= `http://139.186.151.174:8804/jeecg-boot/platform/file/uploadAttachment?projectId=${this.form.project}`
+            if (process.env.NODE_ENV == 'development') { 
+                this.uploadAction= `/jeecg-boot/platform/file/uploadAttachment?projectId=${this.form.project}`
+            } 
+            else if (process.env.NODE_ENV == 'debug') { 
+            } 
+            else if (process.env.NODE_ENV == 'production') { 
+              this.uploadAction= `${this.axios.defaults.baseURL}/platform/file/uploadAttachment?projectId=${this.form.project}`
+            }
+>>>>>>> test-2
             this.loadDisabled = true
             const size = (Number(file.size) / (1024 * 1024)).toFixed(2)
             const fileName = file.name

+ 4 - 4
vue.config.js

@@ -68,7 +68,7 @@ module.exports = {
     open : true,
     proxy: {
       '/jeecg-boot': {
-        //  target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
+          // target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
         // target: 'http://192.168.0.59:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.1.188:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.2.115:8080', //请求本地 需要jeecg-boot后台项目  祚云
@@ -79,13 +79,13 @@ module.exports = {
         // target: 'http://192.168.1.219:8080', //请求本地 需要jeecg-boot后台项目  赵西安
         // target: 'http://192.168.1.193:8080', //请求本地 需要jeecg-boot后台项目  李煜一
         // target: 'http://192.168.1.193:31012', //请求本地 需要jeecg-boot后台项目  李煜一
-         target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
+        //  target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'https://trac.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'http://39.106.184.70:8088/', //请求本地 需要jeecg-boot后台项目
         //  target: 'http://adsp.tjyourong.com.cn/', //请求本地 需要jeecg-boot后台项目
         // target: 'http://192.168.1.251/', //请求本地 需要jeecg-boot后台项目
         // target:'http://118.24.244.213:8804',
-        // target:'http://139.186.151.174:8804', //测试
+       target:'http://139.186.151.174:8804', //测试
 
         ws: false,
 
@@ -106,5 +106,5 @@ module.exports = {
   },
 
   lintOnSave: undefined,
-//   publicPath:'./'
+//   publicPath:'./',
 }