Bladeren bron

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/views/template/budget/create.vue
#	src/views/template/campaign/create.vue
#	src/views/template/deliverytarget/create.vue
#	src/views/template/userorientation/create.vue
syh 5 jaren geleden
bovenliggende
commit
c778e0d5c6

+ 0 - 131
src/views/template/budget/create.vue

@@ -670,134 +670,3 @@
         var rows = $('#' + box_id + ' table tbody tr').length;
         Start_x = ($(this).index())*2-1;
         Start_y = 0;
-
-        StartIndex = { x: Start_x, y: Start_y };
-
-        EndTD = $(this);
-        var x = ($(this).index())*2-2;
-        var y = rows -1;    //为了配合for计算公式-1
-
-        EndIndex = { x: x, y: y };
-        //改变第一次按下鼠标时候的改变选中状态
-        SelectTD_click(StartIndex, EndIndex, Selected);
-      }
-    });
-
-    //点击星期选中或去掉整行处理块
-    $('#' + box_id + ' table tbody tr th').click(function(){
-      var week = $(this).attr('week');
-      if (week>=0) {
-        var line = $('#' + box_id + ' table tbody tr td').length/$('#' + box_id + ' table tbody tr').length;
-
-        Start_x = 0;
-        Start_y = $(this).parent().index();
-
-        StartIndex = { x: Start_x, y: Start_y };
-
-        EndTD = $(this);
-        var y = $(this).parent().index();
-        var x = line-1;     //为了配合for计算公式-1
-
-        EndIndex = { x: x, y: y };
-
-        //改变第一次按下鼠标时候的改变选中状态
-        SelectTD_click(StartIndex, EndIndex, Selected);
-      }
-    });
-
-    //监听鼠标按下事件(鼠标按下左键拖动选中处理块)
-    $('#' + box_id + ' table tbody tr td').unbind("mousedown").bind("mousedown", function () {
-      //记录刚开始点击的元素位置
-      Start_x = $(this).index()-1;
-      Start_y = $(this).parent().index();
-      StartIndex = { x: Start_x, y: Start_y };
-
-      EndTD = $(this);
-      var x = $(this).index()-1;
-      var y = $(this).parent().index();
-      EndIndex = { x: x, y: y };
-      //改变第一次按下鼠标时候的改变选中状态
-      SelectTD(StartIndex, EndIndex, Selected);
-
-      StartTD = $(this);
-
-      StartIndex = { x: Start_x, y: Start_y };
-
-      //监听鼠标移动事件,实现改变后续鼠标拖拽时候的表格选中状态
-      $('#' + box_id + ' table tbody tr td').mouseover(function(e){
-        EndTD = $(this);
-        var x = $(this).index()-1;
-        var y = $(this).parent().index();
-        EndIndex = { x: x, y: y };
-        if(1 != e.which){    //判断是否为左击
-          $('#' + box_id + ' table tbody tr td').unbind("mouseover");
-        }
-        //去除停留在td上的光标
-        $('#' + box_id + ' .focus').focus();
-        SelectTD(StartIndex, EndIndex, Selected);
-      });
-
-
-      //放开鼠标左键时,初始化相关参数和解绑相关监听
-      $('html').unbind("mouseup").bind("mouseup", function () {
-        renewal();
-      });
-
-    });
-
-  }
-
-  /*外部调用接口*/
-
-  //解绑鼠标松开监听事件
-  function unbundle_mouseover(){
-    $('html').unbind("mouseup");
-  }
-
-  /*二进制获取转换后的时间*/
-  function get_time_html(binary){
-    return convert_date(binary);
-  }
-
-  $(function(){
-    load_time_table('table_time_selected1');
-  });
-
-</script>
-<style type="text/css">
-  .plug-timer-grid{width: 80%;}
-  .plug-timer-grid td, .plug-timer-grid th{border: 1px solid #97B4D1;text-align: center; /*cursor:pointer;*/}
-  .Selected{background-color: rgb(102,162,243);opacity: 0.5;}
-
-  .plug-timer-grid {
-    border-collapse: collapse;
-    z-index: 4;
-  }
-  .plug-timer-grid thead tr{
-    display: table-row;
-    vertical-align: inherit;
-    border-color: inherit;
-  }
-
-  table td{
-    height: 30px;
-    max-width: 5px;
-    border: 1px solid #dfe6ec;
-    font-size: 12px;
-    text-align: center;
-    vertical-align: middle;
-    overflow: hidden;
-    transition: background .5s;
-    -webkit-transition: background .5s;
-  }
-
-  .plug-timer-grid tbody th{
-    width: 4%;
-  }
-  .plug-timer-grid tbody tr td{
-    width: 2%;
-  }
-  .clear{
-    margin:20px 0px 20px 0px;
-  }
-</style>

+ 1 - 0
src/views/template/budget/list.vue

@@ -118,6 +118,7 @@
 <script>
   import ByteDanceBudgetTemplateModal from './modules/ByteDanceBudgetTemplateModal'
   import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+  import jq from 'jquery'
 
   export default {
     name: "ByteDanceBudgetTemplateList",

File diff suppressed because it is too large
+ 796 - 182
src/views/template/budget/modules/ByteDanceBudgetTemplateModal.vue


+ 0 - 216
src/views/template/budget/modules/ByteDanceBudgetTemplateModal__Style#Drawer.vue

@@ -1,216 +0,0 @@
-<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="广告主id">
-                    <a-input placeholder="请输入广告主id" v-decorator="['advertiserId', validatorRules.advertiserId ]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="头条账号id">
-                    <a-input placeholder="请输入头条账号id" v-decorator="['toutiaoId', validatorRules.toutiaoId ]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="bidType">
-                    <a-input placeholder="请输入bidType" v-decorator="['bidType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="flowControlMode">
-                    <a-input placeholder="请输入flowControlMode" v-decorator="['flowControlMode', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="budgetPrice">
-                    <a-input placeholder="请输入budgetPrice" v-decorator="['budgetPrice', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="budgetPriceMode">
-                    <a-input placeholder="请输入budgetPriceMode" v-decorator="['budgetPriceMode', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="flowDateType">
-                    <a-input placeholder="请输入flowDateType" v-decorator="['flowDateType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="startDate">
-                    <a-input placeholder="请输入startDate" v-decorator="['startDate', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="endDate">
-                    <a-input placeholder="请输入endDate" v-decorator="['endDate', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="dateQuantum">
-                    <a-input placeholder="请输入dateQuantum" v-decorator="['dateQuantum', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="dateQuantumRange">
-                    <a-input placeholder="请输入dateQuantumRange" v-decorator="['dateQuantumRange', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="priceType">
-                    <a-input placeholder="请输入priceType" v-decorator="['priceType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="convertPrice">
-                    <a-input placeholder="请输入convertPrice" v-decorator="['convertPrice', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="filterType">
-                    <a-input placeholder="请输入filterType" v-decorator="['filterType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="status">
-                    <a-input-number v-decorator="[ 'status', {}]"/>
-                </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: "ByteDanceBudgetTemplateModal",
-        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: {
-                    advertiserId: {rules: [{required: true, message: '请输入广告主id!'}]},
-                    toutiaoId: {rules: [{required: true, message: '请输入头条账号id!'}]},
-                },
-                url: {
-                    add: "/ctop/byteDanceBudgetTemplate/add",
-                    edit: "/ctop/byteDanceBudgetTemplate/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, 'advertiserId', 'toutiaoId', 'bidType', 'flowControlMode', 'budgetPrice', 'budgetPriceMode', 'flowDateType', 'startDate', 'endDate', 'dateQuantum', 'dateQuantumRange', 'priceType', 'convertPrice', 'filterType', 'status'))
-                    //时间格式化
-                });
-
-            },
-            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>

+ 43 - 65
src/views/template/campaign/list.vue

@@ -12,35 +12,24 @@
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="8">
-            <a-form-item label="投放目标">
-              <a-input placeholder="请输入投放目标" v-model="queryParam.promotionPurpuse"></a-input>
+            <a-form-item label="推广目的">
+              <a-input placeholder="请输入推广目的" v-model="queryParam.promotionPurpuse"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="预算类型">
+              <a-input placeholder="请输入预算类型" v-model="queryParam.campaignBudget"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="广告组名称">
+              <a-input placeholder="请输入广告组名称" v-model="queryParam.campaignName"></a-input>
             </a-form-item>
           </a-col>
-          <template v-if="toggleSearchStatus">
-            <a-col :md="6" :sm="8">
-              <a-form-item label="投放方式">
-                <a-input placeholder="请输入投放方式" v-model="queryParam.campaignBudget"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="日预算">
-                <a-input placeholder="请输入日预算" v-model="queryParam.budgetDaily"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="广告组名称">
-                <a-input placeholder="请输入广告组名称" v-model="queryParam.campaignName"></a-input>
-              </a-form-item>
-            </a-col>
-          </template>
           <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>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
             </span>
           </a-col>
 
@@ -51,31 +40,21 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('今日头条广告组模板信息')">导出</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-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-button style="margin-left: 8px"> 批量操作
-          <a-icon type="down"/>
-        </a-button>
-      </a-dropdown>
+<!--      <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-button style="margin-left: 8px"> 批量操作-->
+<!--          <a-icon type="down"/>-->
+<!--        </a-button>-->
+<!--      </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"
@@ -86,23 +65,22 @@
         :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>
+<!--          <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>
@@ -145,14 +123,14 @@
             dataIndex: 'accountId'
           },
           {
-            title: '投放目标',
+            title: '推广目的',
             align: "center",
-            dataIndex: 'promotionPurpuse'
+            dataIndex: 'promotionPurpuse_dictText'
           },
           {
-            title: '投放方式',
+            title: '预算类型',
             align: "center",
-            dataIndex: 'campaignBudget'
+            dataIndex: 'campaignBudget_dictText'
           },
           {
             title: '日预算',
@@ -164,11 +142,11 @@
             align: "center",
             dataIndex: 'campaignName'
           },
-          {
-            title: '模板状态',
-            align: "center",
-            dataIndex: 'status'
-          },
+          // {
+          //   title: '模板状态',
+          //   align: "center",
+          //   dataIndex: 'status'
+          // },
           {
             title: '操作',
             dataIndex: 'action',

+ 145 - 142
src/views/template/campaign/modules/ByteDanceCampaignTemplateModal.vue

@@ -1,155 +1,158 @@
 <template>
-    <a-modal
-            :title="title"
-            :width="800"
-            :visible="visible"
-            :confirmLoading="confirmLoading"
-            @ok="handleOk"
-            @cancel="handleCancel"
-            cancelText="关闭">
+  <a-modal
+    :title="title"
+    :width="800"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @ok="handleSubmit"
+    @cancel="handleCancel"
+    cancelText="关闭">
+  <a-card :body-style="{padding: '24px 32px'}" :bordered="false">
+    <a-form :form="form">
+      <a-form-item
+        label="推广目的"
+        :labelCol="labelCol"
+        :wrapperCol="wrapperCol">
+        <a-radio-group @change="promotionPurposeChange" v-model="promotionPurpose">
+          <a-radio-button v-for="purpose in promotionPurposeList" :key="purpose.itemText" :value="purpose.itemValue">
+            {{purpose.itemText}}
+          </a-radio-button>
+        </a-radio-group>
+      </a-form-item>
 
-        <a-spin :spinning="confirmLoading">
-            <a-form :form="form">
+      <a-form-item
+        label="广告组预算"
+        :labelCol="labelCol"
+        :wrapperCol="wrapperCol">
+        <a-radio-group @change="showBudgetStatusChange" v-model="campaignBudget">
+          <a-radio-button value="UNLIMITED">不限</a-radio-button>
+          <a-radio-button value="AS_BUDGET">按预算</a-radio-button>
+        </a-radio-group>
+      </a-form-item>
+      <a-form-item
+        label="日预算"
+        v-if="showBudgetDaily"
+        :labelCol="labelCol"
+        :wrapperCol="wrapperCol">
+        <a-input v-model="budgetDaily" style="width: 70%"></a-input>元
+      </a-form-item>
 
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="accountId">
-                    <a-input placeholder="请输入accountId" v-decorator="['accountId', validatorRules.accountId ]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放目标">
-                    <a-input placeholder="请输入投放目标" v-decorator="['promotionPurpuse', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放方式">
-                    <a-input placeholder="请输入投放方式" v-decorator="['campaignBudget', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="日预算">
-                    <a-input placeholder="请输入日预算" v-decorator="['budgetDaily', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告组名称">
-                    <a-input placeholder="请输入广告组名称" v-decorator="['campaignName', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="模板状态">
-                    <a-input-number v-decorator="[ 'status', validatorRules.status ]"/>
-                </a-form-item>
+      <a-form-item
+        label="广告组名称"
+        :labelCol="labelCol"
+        :wrapperCol="wrapperCol">
+        <a-input v-model="campaignName"></a-input>
+      </a-form-item>
 
-            </a-form>
-        </a-spin>
-    </a-modal>
+      <a-form-item
+        :wrapperCol="{ span: 24 }"
+        style="text-align: center"
+      >
+      </a-form-item>
+    </a-form>
+  </a-card>
+  </a-modal>
 </template>
 
 <script>
-    import {httpAction} from '@/api/manage'
-    import pick from 'lodash.pick'
-    import moment from "moment"
-
-    export default {
-        name: "ByteDanceCampaignTemplateModal",
-        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: {
-                    accountId: {rules: [{required: true, message: '请输入accountId!'}]},
-                    status: {rules: [{required: true, message: '请输入模板状态!'}]},
-                },
-                url: {
-                    add: "/ctop/byteDanceCampaignTemplate/add",
-                    edit: "/ctop/byteDanceCampaignTemplate/edit",
-                },
-            }
+  import {deleteAction, postAction, getAction,httpAction} from '@/api/manage'
+  import moment from "moment"
+  export default {
+    name: 'ByteDanceCampaignTemplateModal',
+    data() {
+      return {
+        confirmLoading: false,
+        title: "操作",
+        visible: false,
+        model: {},
+        promotionPurpose:'APP',
+        promotionPurposeList: {},
+        showBudgetDaily:false,
+        campaignName:'APP_'+moment(new Date()),
+        campaignBudget:'UNLIMITED',
+        budgetDaily:0,
+        labelCol: {
+          xs: {span: 24},
+          sm: {span: 5},
         },
-        created() {
+        wrapperCol: {
+          xs: {span: 24},
+          sm: {span: 16},
         },
-        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, 'accountId', 'promotionPurpuse', 'campaignBudget', 'budgetDaily', 'campaignName', 'status'))
-                    //时间格式化
-                });
-
-            },
-            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()
-            },
-
+        form: this.$form.createForm(this),
+        url: {
+          dictListUrl: 'toutiao/dictitem/list',
+          insertTemplateUrl:'template/campaign/insert'
+        }
+      }
+    },
+    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, 'name', 'industryId', 'contact', 'mobile', 'email'))
+        //   //时间格式化
+        // });
 
+      },
+      close() {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleSubmit(e) {
+        e.preventDefault()
+        this.form.validateFields((err, values) => {
+          if (!err) {
+            console.log('Received values of form: ', values);
+            let params = {};
+            params.promotionPurpose = this.promotionPurpose;
+            params.campaignBudget = this.campaignBudget;
+            params.budgetDaily = this.budgetDaily;
+            params.campaignName = this.campaignName;
+            console.log(params)
+            postAction(this.url.insertTemplateUrl,params).then((res)=>{
+              console.log(res)
+              if(res.success){
+                alert("广告组模板创建成功");
+              }
+            });
+          }
+        })
+      },
+      onChange(value) {
+        console.log(value);
+      },
+      showBudgetStatusChange(){
+        if(this.campaignBudget == 'UNLIMITED'){
+          this.showBudgetDaily = false;
+        }else{
+          this.showBudgetDaily = true;
         }
-    }
-</script>
+      },
+      handleCancel() {
+        this.close()
+      },
+      promotionPurposeChange(){
+        this.campaignName = this.promotionPurpose +'_'+moment(new Date());
+      }
+    },
+    created: function () {
+      //出价方式
+      let params = {};
+      params.dictId = '181afbae847dd3bc7e27795d89538c9c';
+      params.pageSize = '1000';
+      getAction(this.url.dictListUrl, params).then((res) => {
+        if (res.success) {
+          this.promotionPurposeList = res.result.records
+        }
+      });
 
-<style lang="less" scoped>
+    },
 
-</style>
+  }
+</script>

+ 0 - 162
src/views/template/campaign/modules/ByteDanceCampaignTemplateModal__Style#Drawer.vue

@@ -1,162 +0,0 @@
-<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="accountId">
-                    <a-input placeholder="请输入accountId" v-decorator="['accountId', validatorRules.accountId ]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放目标">
-                    <a-input placeholder="请输入投放目标" v-decorator="['promotionPurpuse', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放方式">
-                    <a-input placeholder="请输入投放方式" v-decorator="['campaignBudget', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="日预算">
-                    <a-input placeholder="请输入日预算" v-decorator="['budgetDaily', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告组名称">
-                    <a-input placeholder="请输入广告组名称" v-decorator="['campaignName', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="模板状态">
-                    <a-input-number v-decorator="[ 'status', validatorRules.status ]"/>
-                </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: "ByteDanceCampaignTemplateModal",
-        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: {
-                    accountId: {rules: [{required: true, message: '请输入accountId!'}]},
-                    status: {rules: [{required: true, message: '请输入模板状态!'}]},
-                },
-                url: {
-                    add: "/ctop/byteDanceCampaignTemplate/add",
-                    edit: "/ctop/byteDanceCampaignTemplate/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, 'accountId', 'promotionPurpuse', 'campaignBudget', 'budgetDaily', 'campaignName', 'status'))
-                    //时间格式化
-                });
-
-            },
-            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>

+ 27 - 52
src/views/template/deliverytarget/list.vue

@@ -16,33 +16,23 @@
               <a-input placeholder="请输入平台账号id" v-model="queryParam.advertiserId"></a-input>
             </a-form-item>
           </a-col>
-          <template v-if="toggleSearchStatus">
-            <a-col :md="6" :sm="8">
-              <a-form-item label="投放目标">
-                <a-input placeholder="请输入投放目标" v-model="queryParam.deliveryTarget"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="下载方式">
-                <a-input placeholder="请输入下载方式" v-model="queryParam.downloadType"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="下载链接">
-                <a-input placeholder="请输入下载链接" v-model="queryParam.downloadUrl"></a-input>
-              </a-form-item>
-            </a-col>
-          </template>
-          <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>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="投放目标">
+              <a-input placeholder="请输入投放目标" v-model="queryParam.deliveryTarget"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="下载方式">
+              <a-input placeholder="请输入下载方式" v-model="queryParam.downloadType"></a-input>
+            </a-form-item>
           </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="下载链接">
+              <a-input placeholder="请输入下载链接" v-model="queryParam.downloadUrl"></a-input>
+            </a-form-item>
+          </a-col>
+
+
 
         </a-row>
       </a-form>
@@ -51,24 +41,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('投放目标模板信息')">导出</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-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-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </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"
@@ -79,23 +55,22 @@
         :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>
+<!--          <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>

+ 139 - 93
src/views/template/deliverytarget/modules/BytedanceDeliveryTargetTemplateModal.vue

@@ -4,99 +4,111 @@
     :width="800"
     :visible="visible"
     :confirmLoading="confirmLoading"
-    @ok="handleOk"
+    @ok="handleSubmit"
     @cancel="handleCancel"
     cancelText="关闭">
     
     <a-spin :spinning="confirmLoading">
       <a-form :form="form">
-      
         <a-form-item
+          label="投放目标"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="头条平台id">
-          <a-input placeholder="请输入头条平台id" v-decorator="['accountId', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="平台账号id">
-          <a-input placeholder="请输入平台账号id" v-decorator="['advertiserId', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="投放目标">
-          <a-input placeholder="请输入投放目标" v-decorator="['deliveryTarget', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-radio-group @change="onChangeDeliveryTarget" v-model="deliveryTarget">
+            <a-radio-button value="a">转化量</a-radio-button>
+            <a-radio-button value="b">点击量</a-radio-button>
+            <a-radio-button value="c">展示量</a-radio-button>
+          </a-radio-group>
         </a-form-item>
+
         <a-form-item
+          label="下载方式"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="下载方式">
-          <a-input placeholder="请输入下载方式" v-decorator="['downloadType', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-radio-group @change="onChangeDownloadType" v-model="downloadType">
+            <a-radio-button value="DOWNLOAD_URL">下载链接</a-radio-button>
+            <a-radio-button value="EXTERNAL_URL">落地页</a-radio-button>
+          </a-radio-group>
         </a-form-item>
+
         <a-form-item
+          label="下载链接"
+          v-if="showDownloadUrl"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="下载链接">
-          <a-input placeholder="请输入下载链接" v-decorator="['downloadUrl', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-input placeholder="请输入网址或从之前网站选择" v-model="downloadUrl"/>
         </a-form-item>
+
         <a-form-item
+          v-if="showExternalUrl"
+          label="链接地址"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="落地页链接">
-          <a-input placeholder="请输入落地页链接" v-decorator="['externalUrl', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-input placeholder="请输入网址或从之前网站选择" v-model="externalUrl"/>
         </a-form-item>
+
         <a-form-item
+          v-if="showConvertTarget"
+          label="转化目标"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="转化目标">
-          <a-input placeholder="请输入转化目标" v-decorator="['convertTarget', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-input placeholder="请输入网址或从之前网站选择" v-model="convertTarget"/>
         </a-form-item>
+
         <a-form-item
+          label="应用包名"
+          v-if="showPackageName"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="应用包名">
-          <a-input placeholder="请输入应用包名" v-decorator="['packageName', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-input v-model="packageName"></a-input>
         </a-form-item>
+
         <a-form-item
+          label="直达链接"
+          v-if="showOpenUrlStatus"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="直达链接启用状态">
-          <a-input placeholder="请输入直达链接启用状态" v-decorator="['openUrlStatus', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-radio-group @change="onChangeOpenUrlStatus" v-model="openUrlStatus">
+            <a-radio-button value="disabled">不启用</a-radio-button>
+            <a-radio-button value="enabled">启用</a-radio-button>
+          </a-radio-group>
         </a-form-item>
+
         <a-form-item
+          label="直达链接生成方式"
+          v-if="showOpenUrlCreateMode&&showOpenUrlStatus"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="直达链接生成方式">
-          <a-input placeholder="请输入直达链接生成方式" v-decorator="['openUrlCreateMode', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-radio-group v-model="openUrlCreateMode">
+            <a-radio-button value="auto_create" disabled>自动生成</a-radio-button>
+            <a-radio-button value="hand_create">手动生成</a-radio-button>
+          </a-radio-group>
         </a-form-item>
         <a-form-item
+          label="跳转app链接"
+          v-if="showToAppUrl&&showOpenUrlStatus"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="跳转app链接">
-          <a-input placeholder="请输入跳转app链接" v-decorator="['redirectUrl', {}]" />
+          :wrapperCol="wrapperCol">
+          <a-input v-model="redirectUrl"></a-input>
         </a-form-item>
         <a-form-item
+          label="模板名称"
           :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="status">
-          <a-input-number v-decorator="[ 'status', validatorRules.status ]" />
+          :wrapperCol="wrapperCol">
+          <a-input v-model="templateName"></a-input>
         </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"
-
+  import {deleteAction, postAction, getAction} from '@/api/manage'
+  import $ from 'jquery'
+  import moment from 'moment';
   export default {
-    name: "BytedanceDeliveryTargetTemplateModal",
-    data () {
+    name: 'BytedanceDeliveryTargetTemplateModal',
+    data() {
       return {
         title:"操作",
         visible: false,
@@ -109,21 +121,36 @@
           xs: { span: 24 },
           sm: { span: 16 },
         },
-
+        templateName:'',
         confirmLoading: false,
         form: this.$form.createForm(this),
-        validatorRules:{
-        status:{rules: [{ required: true, message: '请输入status!' }]},
-        },
+        deliveryTarget:'a',
+        packageName:'',
+        downloadType:'DOWNLOAD_URL',
+        downloadUrl:'',
+        externalUrl:'',
+        convertTarget:'',
+        showDownloadUrl:true,
+        showExternalUrl:false,
+        showConvertTarget:true,
+        showPackageName:true,
+        showOpenUrlStatus:false,
+        openUrlStatus:'disabled',
+        redirectUrl:'',
+        showToAppUrl:false,
+        showOpenUrlCreateMode:false,
+        openUrlCreateMode:'hand_create',
         url: {
-          add: "/ctop/bytedanceDeliveryTargetTemplate/add",
-          edit: "/ctop/bytedanceDeliveryTargetTemplate/edit",
-        },
+          dictListUrl: 'toutiao/dictitem/list',
+          insertUrl:'template/deliverytarget/insert'
+        }
       }
     },
-    created () {
-    },
     methods: {
+      // handler
+      handleCancel () {
+        this.close()
+      },
       add () {
         this.edit({});
       },
@@ -133,7 +160,7 @@
         this.visible = true;
         this.$nextTick(() => {
           this.form.setFieldsValue(pick(this.model,'accountId','advertiserId','deliveryTarget','downloadType','downloadUrl','externalUrl','convertTarget','packageName','openUrlStatus','openUrlCreateMode','redirectUrl','status'))
-		  //时间格式化
+          //时间格式化
         });
 
       },
@@ -141,47 +168,66 @@
         this.$emit('close');
         this.visible = false;
       },
-      handleOk () {
-        const that = this;
-        // 触发表单验证
+      handleSubmit(e) {
+        e.preventDefault()
         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)=>{
+            console.log('Received values of form: ', values);
+            let params = {};
+            params.deliveryTarget = this.deliveryTarget;
+            params.downloadType = this.downloadType;
+            params.downloadUrl = this.downloadUrl;
+            params.externalUrl = this.externalUrl;
+            params.convertTarget = this.convertTarget;
+            params.packageName = this.packageName;
+            params.openUrlStatus = this.openUrlStatus;
+            params.openUrlCreateMode = this.openUrlCreateMode;
+            params.redirectUrl = this.redirectUrl;
+            console.log(params)
+            postAction(this.url.insertUrl,params).then((res)=>{
+              console.log(res)
               if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
+                alert("投放目标-模板创建成功");
               }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
-            })
-
-
-
+            });
           }
         })
       },
-      handleCancel () {
-        this.close()
+      onChange(value) {
+        console.log(value);
       },
+      onChangeDownloadType(value){
+        console.log(value);
+        if(this.downloadType == 'DOWNLOAD_URL'){
+          this.showDownloadUrl = true;
+          this.showExternalUrl = false;
+          this.showPackageName=true;
+          this.showOpenUrlStatus=false;
 
-
+        }else{
+          this.showDownloadUrl = false;
+          this.showExternalUrl = true;
+          this.showPackageName=false;
+          this.showOpenUrlStatus=true;
+        }
+      },
+      onChangeDeliveryTarget(value){
+        console.log(value);
+        if(this.deliveryTarget == 'a'){
+          this.showConvertTarget = true;
+        }else {
+          this.showConvertTarget = false;
+        }
+      },
+      onChangeOpenUrlStatus(){
+        if(this.openUrlStatus=='disabled'){
+          this.showOpenUrlCreateMode = false;
+          this.showToAppUrl = false;
+        }else{
+          this.showOpenUrlCreateMode = true;
+          this.showToAppUrl = true;
+        }
+      }
     }
   }
 </script>

+ 0 - 198
src/views/template/deliverytarget/modules/BytedanceDeliveryTargetTemplateModal__Style#Drawer.vue

@@ -1,198 +0,0 @@
-<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="头条平台id">
-          <a-input placeholder="请输入头条平台id" v-decorator="['accountId', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="平台账号id">
-          <a-input placeholder="请输入平台账号id" v-decorator="['advertiserId', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="投放目标">
-          <a-input placeholder="请输入投放目标" v-decorator="['deliveryTarget', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="下载方式">
-          <a-input placeholder="请输入下载方式" v-decorator="['downloadType', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="下载链接">
-          <a-input placeholder="请输入下载链接" v-decorator="['downloadUrl', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="落地页链接">
-          <a-input placeholder="请输入落地页链接" v-decorator="['externalUrl', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="转化目标">
-          <a-input placeholder="请输入转化目标" v-decorator="['convertTarget', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="应用包名">
-          <a-input placeholder="请输入应用包名" v-decorator="['packageName', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="直达链接启用状态">
-          <a-input placeholder="请输入直达链接启用状态" v-decorator="['openUrlStatus', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="直达链接生成方式">
-          <a-input placeholder="请输入直达链接生成方式" v-decorator="['openUrlCreateMode', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="跳转app链接">
-          <a-input placeholder="请输入跳转app链接" v-decorator="['redirectUrl', {}]" />
-        </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="status">
-          <a-input-number v-decorator="[ 'status', validatorRules.status ]" />
-        </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: "BytedanceDeliveryTargetTemplateModal",
-    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:{
-        status:{rules: [{ required: true, message: '请输入status!' }]},
-        },
-        url: {
-          add: "/ctop/bytedanceDeliveryTargetTemplate/add",
-          edit: "/ctop/bytedanceDeliveryTargetTemplate/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,'accountId','advertiserId','deliveryTarget','downloadType','downloadUrl','externalUrl','convertTarget','packageName','openUrlStatus','openUrlCreateMode','redirectUrl','status'))
-		  //时间格式化
-        });
-
-      },
-      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>

+ 3 - 32
src/views/template/userorientation/list.vue

@@ -16,7 +16,7 @@
               <a-input placeholder="请输入广告主id" v-model="queryParam.advertiserId"></a-input>
             </a-form-item>
           </a-col>
-          <template v-if="toggleSearchStatus">
+
             <a-col :md="6" :sm="8">
               <a-form-item label="定向人群包列表">
                 <a-input placeholder="请输入定向人群包列表" v-model="queryParam.retargetingTagsInclude"></a-input>
@@ -32,15 +32,12 @@
                 <a-input placeholder="请输入受众性别" v-model="queryParam.gender"></a-input>
               </a-form-item>
             </a-col>
-          </template>
+
           <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>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
+
             </span>
           </a-col>
 
@@ -51,24 +48,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('今日头条受众模板信息')">导出</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-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-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </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"
@@ -84,18 +67,6 @@
 
         <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>

File diff suppressed because it is too large
+ 432 - 222
src/views/template/userorientation/modules/ByteDanceUserOrientationTemplateModal.vue


File diff suppressed because it is too large
+ 0 - 324
src/views/template/userorientation/modules/ByteDanceUserOrientationTemplateModal__Style#Drawer.vue