Procházet zdrojové kódy

Merge branch 'master' into work-dingxiang

朱鑫波 před 4 roky
rodič
revize
96b2de4729

+ 2 - 2
src/utils/request.js

@@ -16,8 +16,8 @@ else if (process.env.NODE_ENV == 'debug') {
 else if (process.env.NODE_ENV == 'production') { 
   
   // axios.defaults.baseURL = 'http://192.168.1.251/jeecg-boot';
-  axios.defaults.baseURL = 'http://139.186.165.84:8806/jeecg-boot';     
-  // axios.defaults.baseURL = 'http://api.tjyourong.com.cn/jeecg-boot';
+  // axios.defaults.baseURL = 'http://139.186.165.84:8806/jeecg-boot';     
+  axios.defaults.baseURL = 'http://api.tjyourong.com.cn/jeecg-boot';
 }
 const service = axios.create({
 //   baseURL: '/jeecg-boot', // api base_url

+ 140 - 16
src/views/modules/autoLaunch/configLaunchInfo.vue

@@ -34,11 +34,11 @@
                 <div class="input-item">
                     <a-form-item >
                         <a-radio-group   v-decorator="['campaignType',{initialValue:2 }]" @change="campaignTypeChange">
-                            <a-radio-button :value="2">提升应用安装</a-radio-button>
+                            <a-radio-button :value="2" :disabled="editRecordId!==''">提升应用安装</a-radio-button>
                             <a-radio-button :value="3" :disabled='true'>获取电商下单</a-radio-button>                                   
                             <a-radio-button :value="4" :disabled='true'>推广品牌活动</a-radio-button>                                   
-                            <a-radio-button :value="5" :disabled='true'>收集销售线索</a-radio-button>                                   
-                            <a-radio-button :value="7" :disabled='true'>提高应用活跃</a-radio-button>                                   
+                            <a-radio-button :value="5" :disabled="editRecordId!==''">收集销售线索</a-radio-button>                                   
+                            <a-radio-button :value="7" :disabled="editRecordId!==''">提高应用活跃</a-radio-button>                                   
                         </a-radio-group>
                     </a-form-item>
                 </div>
@@ -216,7 +216,7 @@
 
             
         </div>
-        <div class="moduler">
+        <div class="moduler" v-if="getData('campaignType') === 2">
                 <div class="moduler-title">目标应用</div>
                 <div class="ad-range">
                     <div class="row-item" >
@@ -346,6 +346,97 @@
                 </div>        
              
         </div>
+        <div class="moduler" v-if="getData('campaignType') === 5">
+                <div class="moduler-title">链接</div>
+                <div class="ad-range">
+                    <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-input placeholder="请填写链接" v-decorator="['url', { rules: [{ required: true,message:'链接不能为空'}] }]" />
+                            </a-form-item>
+                        
+                        </div>
+                    </div>
+
+                    <div class="row-item" v-if="getFormData('campaignType') == 2||getFormData('campaignType') == 4||getFormData('campaignType') == 5">
+                        <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  >
+                                <span v-if="convertId&&!convert" style="display:block;font-size:16px">已选择转化目标: {{convertId.label}}</span>
+                                <a-button type="primary" @click="showConvert">{{convertId?'更换转化目标':'选择转化目标'}}</a-button>
+                            </a-form-item>
+                        </div>
+                    </div>
+
+                </div>        
+             
+        </div>
+        <div class="moduler" v-if="getData('campaignType') === 7">
+            <div class="moduler-title">链接</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-select v-decorator="['appId', { rules: [{ required: true, message: '请选择目标应用' }] }]" showSearch allowClear
+                            placeholder="选择应用目标" optionFilterProp="children" style="width: 500px"  
+                            :filterOption="filterOption" @change="appIdChange">
+                            <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>
+            </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-input placeholder="请填写链接" v-decorator="['schemaUri', { rules: [{ required: true,message:'链接不能为空'}] }]" />
+                        </a-form-item>
+                    </div>
+                </div>
+
+
+                <div class="row-item">
+                    <div class="hint-item"></div>
+                    <div class="label-item">
+                    <div class="text-item">H5链接</div>
+                    <div class="required-item"></div>
+                    </div>
+                    <div class="input-item">
+                        <a-form-item>
+                            <a-input placeholder="请填写H5链接" v-decorator="['url', { rules: [{ required: true,message:'H5链接不能为空'}] }]" />
+                        </a-form-item>
+                    
+                    </div>
+                </div>
+
+      
+             
+        </div>
         <div class="moduler">
             <div class="moduler-title">用户定向
             <!-- <div style="margin-left:30px;position:relative;top:-2px">
@@ -613,7 +704,7 @@
                                     <a-radio-button :value="2">广告计划</a-radio-button>
                                     <a-radio-button :value="3">本账户</a-radio-button>
                                     <a-radio-button :value="4">公司主体</a-radio-button>
-                                    <a-radio-button :value="5">APP</a-radio-button>
+                                    <a-radio-button :value="5" :disabled="getData('campaignType')===5||getData('campaignType')===7">APP</a-radio-button>
                                 </a-radio-group>
                             </a-form-item>
                         </div>
@@ -808,6 +899,21 @@
                                 <a-select-option :value="396" v-if="
                                     groupTypeData.isRegister == '1'
                                 ">注册优化目标</a-select-option>
+
+
+                                <a-select-option :value="324" v-if="
+                                    groupTypeData.isAppInvoked == '1'
+                                ">唤起应用</a-select-option>
+                                <a-select-option :value="715" v-if="
+                                    groupTypeData.isAddWechat == '1'
+                                ">微信复制优化目标</a-select-option>
+                                <a-select-option :value="716" v-if="
+                                    groupTypeData.isMultiConversion == '1'
+                                ">多转化事件</a-select-option>
+                                <a-select-option :value="717" v-if="
+                                    groupTypeData.isAdWatchTimes == '1'
+                                ">广告观看次数</a-select-option>
+                                
                             </a-select>
 
                            
@@ -2306,8 +2412,18 @@ export default {
                     //     values.beginTime=this.dateRange[0].format('YYYY-MM-DD');
                     //     values.endTime= this.dateRange[1].format('YYYY-MM-DD');
                     // }
-                    values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId):JSON.stringify([values.appId])
-                    values.appId=undefined;
+                    if(this.getData('campaignType') === 2 ) {
+                        values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId):JSON.stringify([values.appId])
+                        values.appId=undefined;
+                    }else if(this.getData('campaignType') === 7){
+                        values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId):JSON.stringify([values.appId])
+                        values.appId=undefined;
+                        values.singleAppid = 1
+                    }else {
+                        values.singleAppid = 1
+                        values.appIdArray=JSON.stringify([])
+                    }
+                    values.appId = undefined
                     values.agesRange=this.agesRange[0]==1?JSON.stringify([]):JSON.stringify(this.agesRange)
                     values.region=JSON.stringify(this.region);
                     
@@ -2542,13 +2658,17 @@ export default {
         // 获取行动号召按钮
         getActionBarText(){
             this.actionBarTextList=[]
-            getAction('/kuaishou/batch/getActionBarTextByType', {
-              type:this.getFormData('campaignType')
-            }).then((res) => {
-            if (res.success) {
-                this.actionBarTextList = res.result
-            }
+            let that = this
+            setTimeout(()=>{
+                getAction('/kuaishou/batch/getActionBarTextByType', {
+                type:that.getFormData('campaignType')
+                }).then((res) => {
+                if (res.success) {
+                    that.actionBarTextList = res.result
+                }
+                })
             })
+            
 
             
         },
@@ -2644,10 +2764,10 @@ export default {
                         this.form.setFieldsValue({
                              ...res.result,
                             creativeTag:res.result.creativeTag?JSON.parse(res.result.creativeTag):[],
-                            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),
+                            
                             deviceBrand:res.result.deviceBrand?JSON.parse(res.result.deviceBrand):[],
                             devicePrice:res.result.devicePrice?JSON.parse(res.result.devicePrice):[],
                            
@@ -2658,8 +2778,12 @@ export default {
                     },0)
                     setTimeout(()=>{
                          this.form.setFieldsValue({
-                             androidOsv:res.result.androidOsv?res.result.androidOsv:3,
+                            androidOsv:res.result.androidOsv?res.result.androidOsv:3,
                             iosOsv:res.result.iosOsv?res.result.iosOsv:6,
+                            url:res.result.url,
+                            schemaUri:res.result.schemaUri,
+                            appId:res.result.singleAppid?JSON.parse(res.result.appIdArray)[0]:JSON.parse(res.result.appIdArray),
+                            useAppMarket:res.result.useAppMarket==1?true:false,
                         })
                         
                     },100)

+ 16 - 0
src/views/modules/stockWatch/modules/keep-manage/keep-manage.less

@@ -90,6 +90,20 @@
                 }
             }
         }
+        @media (max-width: 1450px) {
+            .left-title-radio { 
+                margin-left: -15px!important;
+            }
+            .left-title-radio-down {
+                margin-left: -15px!important;
+            }
+            .no-person {
+                color: rgb(0,153,255);
+                font-size: 25px!important;
+                font-weight: bold;
+                line-height: 35px!important;
+            }
+        }
         .header-left-title-else {
             font-size: 16px;
             display: flex;
@@ -140,3 +154,5 @@
 /deep/ .ant-card-extra {
     padding: 0!important;
 }
+
+

+ 16 - 0
src/views/modules/stockWatch/modules/keep-manage/keep-manage.vue

@@ -98,6 +98,19 @@
             <a-row :gutter="24" class="between-row">
                 <a-col>
                     <a-card title="运营数据详情">
+                        <div class="person-content-title" slot="extra">
+                            <div class="content-title-acount"></div>
+                            <div class="content-title-checkout">
+                                <span class="title-checkout-time">
+                                    <a-range-picker
+                                    v-model="dateMiddle"
+                                    :ranges="dateRanges"
+                                    :disabled-date="disabledDate"
+                                    @change="getOperatingStaffDataList"
+                                    />
+                                </span>
+                            </div>
+                        </div>
                         <a-table
                         size="middle"
                         :dataSource="echartsData"
@@ -335,6 +348,7 @@ export default {
             scrollX: 1500,
             personData: null,
             dateEchart: [moment(), moment()],
+            dateMiddle: [moment(), moment()],
             dateValue: [moment(), moment()],
             dateRanges: keepPersonData.setTimeRange(),
             target: 'cost',
@@ -611,6 +625,8 @@ export default {
         getOperatingStaffDataList() {
             this.echartsLoading = true;
             let params = {};
+            params.startTime = this.dateMiddle.length === 2 ? moment(this.dateMiddle[0]).format('YYYY-MM-DD') : null;
+            params.endTime = this.dateMiddle.length === 2 ? moment(this.dateMiddle[1]).format('YYYY-MM-DD') : null;
             params.pageNo = this.echartsIpagination.current;
             params.pageSize = this.echartsIpagination.pageSize;
             params.userId = this.userInfo().id;

+ 156 - 0
src/views/modules/taobao-plan-daily/BytedanceCustomerDdTbtjDataList.vue

@@ -0,0 +1,156 @@
+<template>
+  <a-card :bordered="false">
+
+    <!-- 查询区域 -->
+    <!-- <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="24">
+          <a-col :md="6" :sm="8">
+            <a-form-item label="日期">
+              <a-input placeholder="请输入" v-model="queryParam.stateDate"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8" >
+            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+            </span>
+          </a-col>
+
+        </a-row>
+      </a-form>
+    </div> -->
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+       <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+        <a-button type="primary" icon="import">导入</a-button>
+      </a-upload>
+      <a target="_blank" href="http://139.186.29.76:8804/jeecg-boot/ureport/preview?_u=mysql:%E6%B7%98%E7%89%B9%E8%AE%A1%E5%88%92%E6%97%A5%E6%8A%A5-%E5%A4%B4%E6%9D%A1.ureport.xml">手淘日报预览</a>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange">
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span>
+
+      </a-table>
+    </div>
+    <!-- table区域-end -->
+
+    <!-- 表单区域 -->
+    <bytedanceCustomerDdTbtjData-modal ref="modalForm" @ok="modalFormOk"></bytedanceCustomerDdTbtjData-modal>
+  </a-card>
+</template>
+
+<script>
+  import BytedanceCustomerDdTbtjDataModal from './modules/BytedanceCustomerDdTbtjDataModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "BytedanceCustomerDdTbtjDataList",
+    mixins:[JeecgListMixin],
+    components: {
+      BytedanceCustomerDdTbtjDataModal
+    },
+    data () {
+      return {
+        description: '淘宝特价版客户反馈数据管理页面',
+        // 表头
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            }
+           },
+		   {
+            title: '计划ID',
+            align:"center",
+            dataIndex: 'adId'
+           },
+		   {
+            title: '日期',
+            align:"center",
+            dataIndex: 'stateDate'
+           },
+		   {
+            title: '登录数',
+            align:"center",
+            dataIndex: 'loginCnt'
+           },
+		   {
+            title: '首购买人数',
+            align:"center",
+            dataIndex: 'buyerCnt'
+           },
+		   {
+            title: '次留数',
+            align:"center",
+            dataIndex: 'nextDayStay'
+           }
+        ],
+		url: {
+          list: "/ctop/bytedanceCustomerDdTbtjData/list",
+          delete: "/ctop/bytedanceCustomerDdTbtjData/delete",
+          deleteBatch: "/ctop/bytedanceCustomerDdTbtjData/deleteBatch",
+          exportXlsUrl: "ctop/bytedanceCustomerDdTbtjData/exportXls",
+          importExcelUrl: "ctop/bytedanceCustomerDdTbtjData/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     handleShouTaoPreview() {
+       window.open('www.baidu.com', '_blank');
+     }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

+ 148 - 0
src/views/modules/taobao-plan-daily/modules/BytedanceCustomerDdTbtjDataModal.vue

@@ -0,0 +1,148 @@
+<template>
+  <a-modal
+    :title="title"
+    :width="800"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @ok="handleOk"
+    @cancel="handleCancel"
+    cancelText="关闭">
+    
+    <a-spin :spinning="confirmLoading">
+      <a-form :form="form">
+      
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="adId">
+          <a-input placeholder="请输入adId" v-decorator="['adId', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="stateDate">
+          <a-input placeholder="请输入stateDate" v-decorator="['stateDate', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="loginCnt">
+          <a-input-number v-decorator="[ 'loginCnt', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="bugerCnt">
+          <a-input-number v-decorator="[ 'bugerCnt', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="nextDayStay">
+          <a-input-number v-decorator="[ 'nextDayStay', {}]" />
+        </a-form-item>
+		
+      </a-form>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+  import { httpAction } from '@/api/manage'
+  import pick from 'lodash.pick'
+  import moment from "moment"
+
+  export default {
+    name: "BytedanceCustomerDdTbtjDataModal",
+    data () {
+      return {
+        title:"操作",
+        visible: false,
+        model: {},
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+
+        confirmLoading: false,
+        form: this.$form.createForm(this),
+        validatorRules:{
+        },
+        url: {
+          add: "/ctop/bytedanceCustomerDdTbtjData/add",
+          edit: "/ctop/bytedanceCustomerDdTbtjData/edit",
+        },
+      }
+    },
+    created () {
+    },
+    methods: {
+      add () {
+        this.edit({});
+      },
+      edit (record) {
+        this.form.resetFields();
+        this.model = Object.assign({}, record);
+        this.visible = true;
+        this.$nextTick(() => {
+          this.form.setFieldsValue(pick(this.model,'adId','stateDate','loginCnt','bugerCnt','nextDayStay'))
+		  //时间格式化
+        });
+
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleOk () {
+        const that = this;
+        // 触发表单验证
+        this.form.validateFields((err, values) => {
+          if (!err) {
+            that.confirmLoading = true;
+            let httpurl = '';
+            let method = '';
+            if(!this.model.id){
+              httpurl+=this.url.add;
+              method = 'post';
+            }else{
+              httpurl+=this.url.edit;
+               method = 'put';
+            }
+            let formData = Object.assign(this.model, values);
+            //时间格式化
+            
+            console.log(formData)
+            httpAction(httpurl,formData,method).then((res)=>{
+              if(res.success){
+                that.$message.success(res.message);
+                that.$emit('ok');
+              }else{
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+              that.close();
+            })
+
+
+
+          }
+        })
+      },
+      handleCancel () {
+        this.close()
+      },
+
+
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+
+</style>

+ 155 - 0
src/views/modules/taobao-plan-daily/modules/BytedanceCustomerDdTbtjDataModal__Style#Drawer.vue

@@ -0,0 +1,155 @@
+<template>
+  <a-drawer
+      :title="title"
+      :width="800"
+      placement="right"
+      :closable="false"
+      @close="close"
+      :visible="visible"
+  >
+
+    <a-spin :spinning="confirmLoading">
+      <a-form :form="form">
+      
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="adId">
+          <a-input placeholder="请输入adId" v-decorator="['adId', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="stateDate">
+          <a-input placeholder="请输入stateDate" v-decorator="['stateDate', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="loginCnt">
+          <a-input-number v-decorator="[ 'loginCnt', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="bugerCnt">
+          <a-input-number v-decorator="[ 'bugerCnt', {}]" />
+        </a-form-item>
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="nextDayStay">
+          <a-input-number v-decorator="[ 'nextDayStay', {}]" />
+        </a-form-item>
+		
+      </a-form>
+    </a-spin>
+    <a-button type="primary" @click="handleOk">确定</a-button>
+    <a-button type="primary" @click="handleCancel">取消</a-button>
+  </a-drawer>
+</template>
+
+<script>
+  import { httpAction } from '@/api/manage'
+  import pick from 'lodash.pick'
+  import moment from "moment"
+
+  export default {
+    name: "BytedanceCustomerDdTbtjDataModal",
+    data () {
+      return {
+        title:"操作",
+        visible: false,
+        model: {},
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+
+        confirmLoading: false,
+        form: this.$form.createForm(this),
+        validatorRules:{
+        },
+        url: {
+          add: "/ctop/bytedanceCustomerDdTbtjData/add",
+          edit: "/ctop/bytedanceCustomerDdTbtjData/edit",
+        },
+      }
+    },
+    created () {
+    },
+    methods: {
+      add () {
+        this.edit({});
+      },
+      edit (record) {
+        this.form.resetFields();
+        this.model = Object.assign({}, record);
+        this.visible = true;
+        this.$nextTick(() => {
+          this.form.setFieldsValue(pick(this.model,'adId','stateDate','loginCnt','bugerCnt','nextDayStay'))
+		  //时间格式化
+        });
+
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleOk () {
+        const that = this;
+        // 触发表单验证
+        this.form.validateFields((err, values) => {
+          if (!err) {
+            that.confirmLoading = true;
+            let httpurl = '';
+            let method = '';
+            if(!this.model.id){
+              httpurl+=this.url.add;
+              method = 'post';
+            }else{
+              httpurl+=this.url.edit;
+               method = 'put';
+            }
+            let formData = Object.assign(this.model, values);
+            //时间格式化
+            
+            console.log(formData)
+            httpAction(httpurl,formData,method).then((res)=>{
+              if(res.success){
+                that.$message.success(res.message);
+                that.$emit('ok');
+              }else{
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+              that.close();
+            })
+
+
+
+          }
+        })
+      },
+      handleCancel () {
+        this.close()
+      },
+
+
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+/** Button按钮间距 */
+  .ant-btn {
+    margin-left: 30px;
+    margin-bottom: 30px;
+    float: right;
+  }
+</style>

+ 1 - 1
vue.config.js

@@ -69,7 +69,7 @@ module.exports = {
     proxy: {
       '/jeecg-boot': {
           // target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
-          // target: 'http://192.168.1.8:8081', //请求本地 需要jeecg-boot后台项目  蒙蒙
+          // target: 'http://192.168.1.3: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后台项目  祚云