Jelajahi Sumber

迭代 修改

jiayufei 4 tahun lalu
induk
melakukan
710fef0c5a

+ 215 - 208
src/views/modules/Statistics/videoStatics/TTvideoStatics.vue

@@ -1,209 +1,209 @@
 <template>
-  <div class="vsummary">
-    <div class="xiangmuxuanze" >
-      <!-- <div> -->
-        <span>项目选择:</span>
-        <Treeselect  :appId.sync="appId" request="1,3"   style="display: inline-block;position: relative;"/>
-      <!-- </div> -->
-      
-      
-    </div>
-    <div class="timeDiv">
-      <div style='display:flex;align-items: center;'>
-        <span>时间范围:</span>
-        <div  @click="opendate">
-          <DatePicker :openOptions='openOptions'  :parentDate='dateValue' left='-100px'></DatePicker>
-        </div>    
-        <!-- <a-range-picker
-          :disabled-date="disabledDate"
-          format="YYYY-MM-DD"
-          style="width: 250px;"
-          @change="dateChange"
-          v-model="dateRange"
-        />
-        <span v-show="daysFlag">共{{totalSelect}}天</span> -->
-        <span style="margin-left:15px">剪辑:</span> 
-        <span  >
-            <a-input placeholder="请输入剪辑的名字" v-model="clip" style="width:140px"  />
-        </span>         
-        <span style="margin-left:15px">拍摄:</span> 
-        <span  >
-            <a-input placeholder="请输入拍摄的名字" v-model="shot" style="width:140px" />
-        </span>         
-        <span style="margin-left:15px">编导:</span> 
-        <span  >
-            <a-input placeholder="请输入编导的名字" v-model="plan" style="width:140px"  />
-        </span>          
-      </div>
-      <!-- <div>
-        <span>消耗:</span>
-        <a-input-number id="inputNumber" v-model="consumeValue" :min="0" @change="consumeOnChange" />
+	<div class="vsummary">
+		<div class="xiangmuxuanze" >
+			<span>项目选择:</span>
+			<Treeselect  :appId.sync="appId" request="1,3"   style="display: inline-block;position: relative;"/>
+			<span style="margin-left:15px">设计负责人:</span> 
+			<span>
+				<a-input placeholder="请输入设计负责人" v-model="designDirector" style="width:160px"  />
+			</span>
+		</div>
+		<div class="timeDiv">
+		<div style='display:flex;align-items: center;'>
+			<span>时间范围:</span>
+			<div  @click="opendate">
+			<DatePicker :openOptions='openOptions'  :parentDate='dateValue' left='-100px'></DatePicker>
+			</div>    
+			<!-- <a-range-picker
+			:disabled-date="disabledDate"
+			format="YYYY-MM-DD"
+			style="width: 250px;"
+			@change="dateChange"
+			v-model="dateRange"
+			/>
+			<span v-show="daysFlag">共{{totalSelect}}天</span> -->
+			<span style="margin-left:15px">剪辑:</span> 
+			<span  >
+				<a-input placeholder="请输入剪辑的名字" v-model="clip" style="width:140px"  />
+			</span>         
+			<span style="margin-left:15px">拍摄:</span> 
+			<span  >
+				<a-input placeholder="请输入拍摄的名字" v-model="shot" style="width:140px" />
+			</span>         
+			<span style="margin-left:15px">编导:</span> 
+			<span  >
+				<a-input placeholder="请输入编导的名字" v-model="plan" style="width:140px"  />
+			</span>
+		</div>
+		<!-- <div>
+			<span>消耗:</span>
+			<a-input-number id="inputNumber" v-model="consumeValue" :min="0" @change="consumeOnChange" />
 
-        <span>视频ID:</span>
-        <a-input class="myinput" v-model="videoID" style="width:250px" />
-      </div> -->
+			<span>视频ID:</span>
+			<a-input class="myinput" v-model="videoID" style="width:250px" />
+		</div> -->
 
-      <a-button type="primary" @click="searchRes">查询</a-button>
-    </div>
+		<a-button type="primary" @click="searchRes">查询</a-button>
+		</div>
 
-    <div style="margin:15px 0" class="btndiv">
-      <a-button type="primary" @click="customColumns">自定义列</a-button>
-      <a-button type="default" style="float:right" @click="exportExcel('exportTable')" id="mybtn"  :loading='exportLoading'>导出报表</a-button>
-    </div>
+		<div style="margin:15px 0" class="btndiv">
+		<a-button type="primary" @click="customColumns">自定义列</a-button>
+		<a-button type="default" style="float:right" @click="exportExcel('exportTable')" id="mybtn"  :loading='exportLoading'>导出报表</a-button>
+		</div>
 
-    
-    <a-table
-      size="middle"
-      :columns="columns"
-      :dataSource="data"
-      bordered
-      id="outTable"
-      :pagination="ipagination"
-      :scroll="{ x: scrollX }"
-      :loading="loading"
-      ref="vSummaryTable"
-      :width="tableWidth"
-      @customHeaderCell="customHeaderCell(columns)"
-      @change="sort"
-      style="word-break: break-all;font-size:16px;font-weight:600"
-    >
-      <div slot="videoU" slot-scope="test,records">
-        <!-- records.converUrl||'@/assets/noImg.png' -->
-        <img
-          :src="records.converUrl||noImg"
-          alt
-          style="width:80px"
-          @click="openVideo(records.url)"
-          @load="loadShow"
-        />
-        <!-- <video :src="records.converUrl"  style="width:80px" controls  @click="openVideo(records.url)"
-          @load="loadShow" ></video> -->
-      </div>
-        <span slot="operation" slot-scope="text, record">
-          <a href="javascript:;" @click="opendetail(text, record)" style="margin-right:5px">查看明细</a>
-        </span>
-      <!-- <span slot="ctr" slot-scope="ctr">{{ ctr | toPercentage }}</span> -->
-                <span slot="cost" slot-scope="cost">{{ cost | decimalsHandle }}</span>
-                <span slot="clickMaterial" slot-scope="clickMaterial">{{ clickMaterial | formatCurrency }}</span>
-                <span slot="showMaterial" slot-scope="showMaterial">{{ showMaterial | formatCurrency }}</span>
-                <span slot="convertMaterial" slot-scope="convertMaterial">{{ convertMaterial | formatCurrency }}</span>
-                <span slot="play25FeedBreak" slot-scope="play25FeedBreak">{{ play25FeedBreak | formatCurrency }}</span>
-                <span slot="play50FeedBreak" slot-scope="play50FeedBreak">{{ play50FeedBreak | formatCurrency }}</span>
-                <span slot="play75FeedBreak" slot-scope="play75FeedBreak">{{ play75FeedBreak | formatCurrency }}</span>
-                <span slot="play100FeedBreak" slot-scope="play100FeedBreak">{{ play100FeedBreak | formatCurrency }}</span>
-                <span slot="nextDayOpen" slot-scope="nextDayOpen">{{ nextDayOpen | formatCurrency }}</span>
-                <span slot="downloadFinish" slot-scope="downloadFinish">{{ downloadFinish | formatCurrency }}</span>
-                <span slot="downloadStart" slot-scope="downloadStart">{{ downloadStart | formatCurrency }}</span>
-                <span slot="likeMaterial" slot-scope="likeMaterial">{{ likeMaterial | formatCurrency }}</span>
-                <span slot="shareMaterial" slot-scope="shareMaterial">{{ shareMaterial | formatCurrency }}</span>
-                <span slot="register" slot-scope="register">{{ register | formatCurrency }}</span>
-                <span slot="follow" slot-scope="follow">{{ follow | formatCurrency }}</span>
-                <span slot="form" slot-scope="form">{{ form | formatCurrency }}</span>
-                <span slot="active" slot-scope="active">{{ active | formatCurrency }}</span>
-                <span slot="activePayAmount" slot-scope="activePayAmount">{{ activePayAmount | formatCurrency }}</span>
-                <!-- <span
-                  slot="play25FeedBreakRate"
-                  slot-scope="play25FeedBreakRate"
-                >{{ play25FeedBreakRate | toPercentage }}</span>
-                <span slot="playOverRate" slot-scope="playOverRate">{{ playOverRate | toPercentage }}</span> -->
-                <!-- 新加数据 -->
-                <!-- <span slot="convertRate" slot-scope="convertRate">{{ convertRate | toPercentage }}</span>
-                <span slot="nextDayOpenRate" slot-scope="nextDayOpenRate">{{ nextDayOpenRate | toPercentage }}</span>
-                <span slot="ctr" slot-scope="ctr">{{ ctr | toPercentage }}</span> -->
-                <span slot="cpc" slot-scope="cpc">{{ cpc | decimalsHandle }}</span>
-                <span slot="cpm" slot-scope="cpm">{{ cpm | decimalsHandle }}</span>
-                <span slot="activeRate" slot-scope="activeRate">{{ activeRate | toPercentage }}</span>
-                <!-- <span
-                  slot="installFinishRate"
-                  slot-scope="installFinishRate"
-                >{{ installFinishRate | toPercentage }}</span>
-                <span slot="validPlayRate" slot-scope="validPlayRate">{{ validPlayRate | toPercentage }}</span> -->
-                <span slot="activePayCost" slot-scope="activePayCost">{{ activePayCost | decimalsHandle }}</span>
-                <span slot="nextDayOpenCost" slot-scope="nextDayOpenCost">{{ nextDayOpenCost | decimalsHandle }}</span>
-                <span slot="validPlayCost" slot-scope="validPlayCost">{{ validPlayCost | decimalsHandle }}</span>
-                <span slot="activeCost" slot-scope="activeCost">{{ activeCost | decimalsHandle }}</span>
-                <span
-                  slot="gameAddictionCost"
-                  slot-scope="gameAddictionCost"
-                >{{ gameAddictionCost | decimalsHandle }}</span>
-                <span
-                  slot="downloadFinishCost"
-                  slot-scope="downloadFinishCost"
-                >{{ downloadFinishCost | decimalsHandle }}</span>
-                <span
-                  slot="downloadStartCost"
-                  slot-scope="downloadStartCost"
-                >{{ downloadStartCost | decimalsHandle }}</span>
-                <span
-                  slot="installFinishCost"
-                  slot-scope="installFinishCost"
-                >{{ installFinishCost | decimalsHandle }}</span>
-                <span slot="convertCost" slot-scope="convertCost">{{ convertCost | decimalsHandle }}</span>
+		
+		<a-table
+		size="middle"
+		:columns="columns"
+		:dataSource="data"
+		bordered
+		id="outTable"
+		:pagination="ipagination"
+		:scroll="{ x: scrollX }"
+		:loading="loading"
+		ref="vSummaryTable"
+		:width="tableWidth"
+		@customHeaderCell="customHeaderCell(columns)"
+		@change="sort"
+		style="word-break: break-all;font-size:16px;font-weight:600"
+		>
+		<div slot="videoU" slot-scope="test,records">
+			<!-- records.converUrl||'@/assets/noImg.png' -->
+			<img
+			:src="records.converUrl||noImg"
+			alt
+			style="width:80px"
+			@click="openVideo(records.url)"
+			@load="loadShow"
+			/>
+			<!-- <video :src="records.converUrl"  style="width:80px" controls  @click="openVideo(records.url)"
+			@load="loadShow" ></video> -->
+		</div>
+			<span slot="operation" slot-scope="text, record">
+			<a href="javascript:;" @click="opendetail(text, record)" style="margin-right:5px">查看明细</a>
+			</span>
+		<!-- <span slot="ctr" slot-scope="ctr">{{ ctr | toPercentage }}</span> -->
+					<span slot="cost" slot-scope="cost">{{ cost | decimalsHandle }}</span>
+					<span slot="clickMaterial" slot-scope="clickMaterial">{{ clickMaterial | formatCurrency }}</span>
+					<span slot="showMaterial" slot-scope="showMaterial">{{ showMaterial | formatCurrency }}</span>
+					<span slot="convertMaterial" slot-scope="convertMaterial">{{ convertMaterial | formatCurrency }}</span>
+					<span slot="play25FeedBreak" slot-scope="play25FeedBreak">{{ play25FeedBreak | formatCurrency }}</span>
+					<span slot="play50FeedBreak" slot-scope="play50FeedBreak">{{ play50FeedBreak | formatCurrency }}</span>
+					<span slot="play75FeedBreak" slot-scope="play75FeedBreak">{{ play75FeedBreak | formatCurrency }}</span>
+					<span slot="play100FeedBreak" slot-scope="play100FeedBreak">{{ play100FeedBreak | formatCurrency }}</span>
+					<span slot="nextDayOpen" slot-scope="nextDayOpen">{{ nextDayOpen | formatCurrency }}</span>
+					<span slot="downloadFinish" slot-scope="downloadFinish">{{ downloadFinish | formatCurrency }}</span>
+					<span slot="downloadStart" slot-scope="downloadStart">{{ downloadStart | formatCurrency }}</span>
+					<span slot="likeMaterial" slot-scope="likeMaterial">{{ likeMaterial | formatCurrency }}</span>
+					<span slot="shareMaterial" slot-scope="shareMaterial">{{ shareMaterial | formatCurrency }}</span>
+					<span slot="register" slot-scope="register">{{ register | formatCurrency }}</span>
+					<span slot="follow" slot-scope="follow">{{ follow | formatCurrency }}</span>
+					<span slot="form" slot-scope="form">{{ form | formatCurrency }}</span>
+					<span slot="active" slot-scope="active">{{ active | formatCurrency }}</span>
+					<span slot="activePayAmount" slot-scope="activePayAmount">{{ activePayAmount | formatCurrency }}</span>
+					<!-- <span
+					slot="play25FeedBreakRate"
+					slot-scope="play25FeedBreakRate"
+					>{{ play25FeedBreakRate | toPercentage }}</span>
+					<span slot="playOverRate" slot-scope="playOverRate">{{ playOverRate | toPercentage }}</span> -->
+					<!-- 新加数据 -->
+					<!-- <span slot="convertRate" slot-scope="convertRate">{{ convertRate | toPercentage }}</span>
+					<span slot="nextDayOpenRate" slot-scope="nextDayOpenRate">{{ nextDayOpenRate | toPercentage }}</span>
+					<span slot="ctr" slot-scope="ctr">{{ ctr | toPercentage }}</span> -->
+					<span slot="cpc" slot-scope="cpc">{{ cpc | decimalsHandle }}</span>
+					<span slot="cpm" slot-scope="cpm">{{ cpm | decimalsHandle }}</span>
+					<span slot="activeRate" slot-scope="activeRate">{{ activeRate | toPercentage }}</span>
+					<!-- <span
+					slot="installFinishRate"
+					slot-scope="installFinishRate"
+					>{{ installFinishRate | toPercentage }}</span>
+					<span slot="validPlayRate" slot-scope="validPlayRate">{{ validPlayRate | toPercentage }}</span> -->
+					<span slot="activePayCost" slot-scope="activePayCost">{{ activePayCost | decimalsHandle }}</span>
+					<span slot="nextDayOpenCost" slot-scope="nextDayOpenCost">{{ nextDayOpenCost | decimalsHandle }}</span>
+					<span slot="validPlayCost" slot-scope="validPlayCost">{{ validPlayCost | decimalsHandle }}</span>
+					<span slot="activeCost" slot-scope="activeCost">{{ activeCost | decimalsHandle }}</span>
+					<span
+					slot="gameAddictionCost"
+					slot-scope="gameAddictionCost"
+					>{{ gameAddictionCost | decimalsHandle }}</span>
+					<span
+					slot="downloadFinishCost"
+					slot-scope="downloadFinishCost"
+					>{{ downloadFinishCost | decimalsHandle }}</span>
+					<span
+					slot="downloadStartCost"
+					slot-scope="downloadStartCost"
+					>{{ downloadStartCost | decimalsHandle }}</span>
+					<span
+					slot="installFinishCost"
+					slot-scope="installFinishCost"
+					>{{ installFinishCost | decimalsHandle }}</span>
+					<span slot="convertCost" slot-scope="convertCost">{{ convertCost | decimalsHandle }}</span>
 
-                <!--  -->
-                <!-- <span
-                  slot="downloadStartRate"
-                  slot-scope="downloadStartRate"
-                >{{ downloadStartRate | toPercentage }}</span>
-                <span
-                  slot="downloadFinishRate"
-                  slot-scope="downloadFinishRate"
-                >{{ downloadFinishRate | toPercentage }}</span>
-                <span slot="activeRate" slot-scope="activeRate">{{ activeRate | toPercentage }}</span>
-                <span
-                  slot="activeRegisterRate"
-                  slot-scope="activeRegisterRate"
-                >{{ activeRegisterRate | toPercentage }}</span>
-                <span
-                  slot="gameAddictionRate"
-                  slot-scope="gameAddictionRate"
-                >{{ gameAddictionRate | toPercentage }}</span>
-                <span slot="nextDayOpenRate" slot-scope="nextDayOpenRate">{{ nextDayOpenRate | toPercentage }}</span> -->
-                
-      
-        <span slot="relativePeople" slot-scope="text,record">
-           <!-- <a href="javascript:;" @click.stop="showRelevantPeople(record)">查看相关人员</a> -->
-            <p>剪辑:{{record.clip || '无'}}</p>
-            <p>拍摄:{{record.shot || '无'}}</p>
-            <p>编导:{{record.plan ||'无'}}</p>
-       </span>
+					<!--  -->
+					<!-- <span
+					slot="downloadStartRate"
+					slot-scope="downloadStartRate"
+					>{{ downloadStartRate | toPercentage }}</span>
+					<span
+					slot="downloadFinishRate"
+					slot-scope="downloadFinishRate"
+					>{{ downloadFinishRate | toPercentage }}</span>
+					<span slot="activeRate" slot-scope="activeRate">{{ activeRate | toPercentage }}</span>
+					<span
+					slot="activeRegisterRate"
+					slot-scope="activeRegisterRate"
+					>{{ activeRegisterRate | toPercentage }}</span>
+					<span
+					slot="gameAddictionRate"
+					slot-scope="gameAddictionRate"
+					>{{ gameAddictionRate | toPercentage }}</span>
+					<span slot="nextDayOpenRate" slot-scope="nextDayOpenRate">{{ nextDayOpenRate | toPercentage }}</span> -->
+					
+		
+			<span slot="relativePeople" slot-scope="text,record">
+			<!-- <a href="javascript:;" @click.stop="showRelevantPeople(record)">查看相关人员</a> -->
+				<p>剪辑:{{record.clip || '无'}}</p>
+				<p>拍摄:{{record.shot || '无'}}</p>
+				<p>编导:{{record.plan ||'无'}}</p>
+		</span>
 
-    </a-table>
-    <a-modal v-model="relevantPeopleVisible" title="相关人员" :footer="null" :centered='true'>
-        <p>编导:{{relevantPeopleData.planName || '暂无数据'}}</p>
-        <p>剪辑:{{relevantPeopleData.clipName || '暂无数据'}}</p>
-        <p>拍摄:{{relevantPeopleData.shotName || '暂无数据'}}</p>
-      </a-modal>
-    <a-modal v-model="Videovisible" title="视频详情" @ok="videoOk" :footer="null" width="50%">
-      <video
-        @click.stop
-        class="video"
-        :src="videoUrl"
-        controls="controls"
-        style="height:600px;width:100%"
-      >您的浏览器不支持 video 标签。</video>
-    </a-modal>
-    <customColumn :visible='visible'  :listNum='listNum' :fiexColumn='columnsFixd' :mediaType='1'  @closeCustomColumn='closeCustomColumn' @changeColumn='changeColumn' />
+		</a-table>
+		<a-modal v-model="relevantPeopleVisible" title="相关人员" :footer="null" :centered='true'>
+			<p>编导:{{relevantPeopleData.planName || '暂无数据'}}</p>
+			<p>剪辑:{{relevantPeopleData.clipName || '暂无数据'}}</p>
+			<p>拍摄:{{relevantPeopleData.shotName || '暂无数据'}}</p>
+		</a-modal>
+		<a-modal v-model="Videovisible" title="视频详情" @ok="videoOk" :footer="null" width="50%">
+		<video
+			@click.stop
+			class="video"
+			:src="videoUrl"
+			controls="controls"
+			style="height:600px;width:100%"
+		>您的浏览器不支持 video 标签。</video>
+		</a-modal>
+		<customColumn :visible='visible'  :listNum='listNum' :fiexColumn='columnsFixd' :mediaType='1'  @closeCustomColumn='closeCustomColumn' @changeColumn='changeColumn' />
 
 
-    <!-- 明细表 -->
+		<!-- 明细表 -->
 
-      <a-modal v-model="visibleDetail" title="详细信息" width="50%" :footer="null" >
-        <a-button type="default" @click="exportExcel('exportDetail')" id="mybtn" :loading="visibleLoading">导出报表</a-button>
-        <a-table
-          :columns="detailColumn"
-          :data-source="detailData"
-          bordered
-          tableLayout="auto"
-          :loading='detailLoading'
-          :pagination="false"
-          style="word-break: break-all;"
-        >
-          <span slot="advertiserName" slot-scope="text">{{ text || '暂未填写该数据' }}</span>
-          <span slot="cost" slot-scope="cost">{{ cost | decimalsHandle }}</span>
-        </a-table>
-      </a-modal>
-  </div>
+		<a-modal v-model="visibleDetail" title="详细信息" width="50%" :footer="null" >
+			<a-button type="default" @click="exportExcel('exportDetail')" id="mybtn" :loading="visibleLoading">导出报表</a-button>
+			<a-table
+			:columns="detailColumn"
+			:data-source="detailData"
+			bordered
+			tableLayout="auto"
+			:loading='detailLoading'
+			:pagination="false"
+			style="word-break: break-all;"
+			>
+			<span slot="advertiserName" slot-scope="text">{{ text || '暂未填写该数据' }}</span>
+			<span slot="cost" slot-scope="cost">{{ cost | decimalsHandle }}</span>
+			</a-table>
+		</a-modal>
+	</div>
 </template>
 
 <script>
@@ -232,6 +232,13 @@ const columnsFixd = [
     fixed: 'left'
   },
   {
+    title: '设计负责人',
+    dataIndex: 'leader',
+    align: 'center',
+    width: 120,
+    fixed: 'left'
+  },
+  {
     title: '视频ID',
     dataIndex: 'signature',
     align: 'center',
@@ -359,6 +366,7 @@ const initVariableColimns=[
 export default {
   data() {
     return {
+		designDirector: '',
       visibleLoading:false,
       noImg:require('@/assets/noImg.png'),
       detailLoading:false,
@@ -585,24 +593,23 @@ export default {
         accountIds:this.appId,
         target:this.target,
         order:this.order,
-         clip:this.clip?this.clip:'',
+		leader: this.designDirector,
+        clip:this.clip?this.clip:'',
         shot:this.shot?this.shot:'',
         plan:this.plan?this.plan:'',
       }).then(res => {
         let resArr = []
         this.data=[];
-         this.loading = false
+        this.loading = false
         if (res.success) {
-        
-          this.data = res.result.list.map((item,index)=>{
-              return {
-                  ...item,
-                  key:index
-              }
-          })
-          this.ipagination.total = res.result.total
-          this.loading = false
-          
+			this.data = res.result.list.map((item,index)=>{
+				return {
+					...item,
+					key:index
+				}
+			})
+			this.ipagination.total = res.result.total
+			this.loading = false
         }
       })
     },

+ 2 - 0
src/views/modules/account-config/account-config.vue

@@ -544,6 +544,7 @@ export default {
         handleResetList() {
             this.acountId = '';
             this.searchStatus = 0;
+            this.creativeStatus = 2;
             this.controlLoading = true;
             this.handleInitTable();
         },
@@ -551,6 +552,7 @@ export default {
             const paramsData = {
                 accountId: this.acountId,
                 status: this.searchStatus === 2 ? '' : this.searchStatus,
+                creativeImageMode: this.creativeStatus === 2 ? '' : this.creativeStatus,
                 loginUserId: this.userInfo().id,
                 pageNo: this.tablePag.page,
                 pageSize: this.tablePag.size

+ 58 - 21
src/views/modules/account-config/components/configuration-copy.vue

@@ -793,7 +793,7 @@
                     <a-form-model-item label="创意方式">
                         <a-radio-group v-model="configForm.creativeMaterialMode" button-style="solid">
                             <a-radio-button value="STATIC_ASSEMBLE">程序化创意</a-radio-button>
-                            <a-radio-button value="NONE">自定义创意</a-radio-button>
+                            <a-radio-button value="NONE" :disabled="originalityStatus">自定义创意</a-radio-button>
                         </a-radio-group>
                     </a-form-model-item>
                     <div v-if="configForm.adUnionVideoType === 'REWARDED_VIDEO'">
@@ -803,10 +803,10 @@
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO">横版视频</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item label="行动号召" prop="creativeCallToAction" key="REWARDED_VIDEO">
+                        <a-form-model-item label="行动号召" prop="creativeActionText" key="REWARDED_VIDEO">
                             <a-select
                                 class="common-input-long"
-                                v-model="configForm.creativeCallToAction"
+                                v-model="configForm.creativeActionText"
                             >
                                 <a-select-option
                                     v-for="(item, index) in configForm.creativeOptions"
@@ -866,10 +866,10 @@
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE_VERTICAL">大图竖图</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item label="行动号召" prop="creativeCallToAction" key="ORIGINAL_VIDEO">
+                        <a-form-model-item label="行动号召" prop="creativeActionText" key="ORIGINAL_VIDEO">
                             <a-select
                                 class="common-input-long"
-                                v-model="configForm.creativeCallToAction"
+                                v-model="configForm.creativeActionText"
                             >
                                 <a-select-option
                                     v-for="(item, index) in configForm.creativeOptions"
@@ -888,7 +888,7 @@
                                 allow-clear
                             />
                         </a-form-model-item>
-                        <a-form-model-item v-if="isTomatoStatus" label="创意展现">
+                        <a-form-model-item label="创意展现">
                             <a-radio-group v-model="configForm.creativeDisplayMode" button-style="solid">
                                 <a-radio-button value="CREATIVE_DISPLAY_MODE_CTR">优选模式</a-radio-button>
                                 <a-radio-button value="CREATIVE_DISPLAY_MODE_RANDOM">轮播模式</a-radio-button>
@@ -907,10 +907,10 @@
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_UNION_SPLASH">开屏图片</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item label="行动号召" prop="creativeCallToAction" key="SPLASH_VIDEO">
+                        <a-form-model-item label="行动号召" prop="creativeActionText" key="SPLASH_VIDEO">
                             <a-select
                                 class="common-input-long"
-                                v-model="configForm.creativeCallToAction"
+                                v-model="configForm.creativeActionText"
                             >
                                 <a-select-option
                                     v-for="(item, index) in configForm.creativeOptions"
@@ -941,7 +941,7 @@
                                 <a-radio-button :value="1">启用</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item v-if="isTomatoStatus" label="创意展现">
+                        <a-form-model-item label="创意展现">
                             <a-radio-group v-model="configForm.creativeDisplayMode" button-style="solid">
                                 <a-radio-button value="CREATIVE_DISPLAY_MODE_CTR">优选模式</a-radio-button>
                                 <a-radio-button value="CREATIVE_DISPLAY_MODE_RANDOM">轮播模式</a-radio-button>
@@ -958,10 +958,10 @@
                         <a-form-model-item label="创意内容">
                             <a-radio-group v-model="configForm.creativeImageMode" button-style="solid">
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO_VERTICAL">竖版视频</a-radio-button>
-                                <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO">横版视频</a-radio-button>
-                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE">大图横图</a-radio-button>
+                                <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO" :disabled="pictureStatus">横版视频</a-radio-button>
+                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE" :disabled="pictureStatus">大图横图</a-radio-button>
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_SMALL" disabled>小图</a-radio-button>
-                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE_VERTICAL">大图竖图</a-radio-button>
+                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE_VERTICAL" :disabled="pictureStatus">大图竖图</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
                         <a-form-model-item v-if="isTAwemeStatus" label="卡片主图">
@@ -1017,6 +1017,20 @@
                                 <a-icon class="examin-form-icon" type="delete" @click="handleDelOrigin(item)"/>
                             </a-form-model-item>
                         </div>
+                        <a-form-model-item v-if="isTomatoStatus" label="行动号召" prop="creativeActionText" key="SPLASH_VIDEO_ONE">
+                            <a-select
+                                class="common-input-long"
+                                v-model="configForm.creativeActionText"
+                            >
+                                <a-select-option
+                                    v-for="(item, index) in creativeOptions"
+                                    :key="index + 1"
+                                    :value="item"
+                                >
+                                    {{ item }}
+                                </a-select-option>
+                            </a-select>
+                        </a-form-model-item>
                         <a-form-model-item v-if="isTAwemeStatus" label="行动号召">
                             <a-radio-group v-model="configForm.creativeEnablePersonalAction" button-style="solid">
                                 <a-radio-button :value="true">开启智能优选</a-radio-button>
@@ -1090,7 +1104,7 @@
                                 <a-radio-button :value="0">开启</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item v-if="isTomatoStatus" label="创意展现">
+                        <a-form-model-item label="创意展现">
                             <a-radio-group v-model="configForm.creativeDisplayMode" button-style="solid">
                                 <a-radio-button value="CREATIVE_DISPLAY_MODE_CTR">优选模式</a-radio-button>
                                 <a-radio-button value="CREATIVE_DISPLAY_MODE_RANDOM">轮播模式</a-radio-button>
@@ -1578,6 +1592,7 @@ export default {
                 ],
                 adAudiencePackageId: [{required: true, message: '请选择', trigger: 'change'}],
                 creativeCallToAction: [{required: true, message: '请选择', trigger: 'change'}],
+                creativeActionText: [{required: true, message: '请选择', trigger: 'change'}],
                 adConvertType: [{required: true, message: '请选择', trigger: 'change'}],
                 adConvertId: [{required: true, message: '请选择', trigger: 'change'}],
                 creativeThirdIndustryIds: [{required: true, message: '请选择', trigger: 'change'}]
@@ -1677,9 +1692,12 @@ export default {
                 adAutoExtendTargets: '',
                 adDeliveryRange: '',
                 creativeCallToAction: undefined, // 行动号召
+                creativeActionText: undefined,
                 creativeLabel: undefined // 倡议标签
             },
-            isTomatoStatus: true,
+            originalityStatus: true, // 创意状态
+            pictureStatus: false,
+            isTomatoStatus: false,
             isTAwemeStatus: true
         };
     },
@@ -1955,21 +1973,33 @@ export default {
                 else {
                     this.isTAwemeStatus = false;
                 }
+                if (newVal.length === 4 && newVal.includes('INVENTORY_FEED') && newVal.includes('INVENTORY_VIDEO_FEED') && newVal.includes('INVENTORY_HOTSOON_FEED') && newVal.includes('INVENTORY_AWEME_FEED')) {
+                    this.originalityStatus = true;
+                    this.pictureStatus = true;
+                }
+                else if (newVal.length === 1 && newVal[0] === 'INVENTORY_TOMATO_NOVEL') {
+                    this.isTomatoStatus = true;
+                    this.originalityStatus = true;
+                    this.pictureStatus = true;
+                    this.configForm.creativeImageMode = 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL';
+                }
+                else {
+                    this.isTomatoStatus = false;
+                    this.originalityStatus = false;
+                    this.pictureStatus = false;
+                }
                 if (newVal.length === 1 && newVal[0] === 'INVENTORY_UNION_SLOT') {
                     this.configForm.adUnionVideoType = 'REWARDED_VIDEO';
-                    this.$nextTick(() => {
-                        this.configForm.creativeEnablePersonalAction = true;
-                    });
+                    // this.$nextTick(() => {
+                    //     this.configForm.creativeEnablePersonalAction = true;
+                    // });
                     this.configForm.adAudiencePackageId = undefined;
                     this.packageMessageDetail = [];
                     this.selectiveList = selectiveListUpdate.filter(item => item.delivery_range === 'UNION');
-                    // if (this.configForm.adDirectionalFlag === 'choice') {
-                    //    this.selectiveList = selectiveListUpdate.filter(item => item.delivery_range === 'UNION');
-                    // }
                 }
                 else {
                     this.configForm.adUnionVideoType = '';
-                    this.configForm.creativeEnablePersonalAction = '';
+                    // this.configForm.creativeEnablePersonalAction = '';
                     this.configForm.adAudiencePackageId = undefined;
                     this.packageMessageDetail = [];
                     this.handleGetAdAudiencePackage();
@@ -2401,13 +2431,19 @@ export default {
                 this.configForm.radioChangeValue = '';
                 this.configForm.checkboxChangeValue = [];
                 this.isTAwemeStatus = true;
+                this.originalityStatus = true;
+                this.pictureStatus = false;
             }
             else if (e.target.value === 'b') {
                 this.configForm.radioChangeValue = '';
+                this.pictureStatus = true;
+                this.originalityStatus = true;
             }
             else if (e.target.value === 'c') {
                 this.configForm.checkboxChangeValue = [];
                 this.isTAwemeStatus = true;
+                this.originalityStatus = true;
+                this.pictureStatus = false;
             }
             this.configForm.adUnionVideoType = '';
             this.configForm.creativeImageMode = 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL';
@@ -2658,6 +2694,7 @@ export default {
                                 if (result.code === 0) {
                                     this.configForm.creativeOptions = result.result;
                                     this.configForm.creativeCallToAction = detailData.creativeCallToAction;
+                                    this.configForm.creativeActionText = detailData.creativeActionText;
                                 }
                                 else {
                                     this.$message.error(result.message);

+ 32 - 17
src/views/modules/account-config/components/configuration-modal.vue

@@ -803,7 +803,7 @@
                     <a-form-model-item label="创意方式">
                         <a-radio-group v-model="configForm.creativeMaterialMode" button-style="solid">
                             <a-radio-button value="STATIC_ASSEMBLE" :disabled="modalTitle === 'edit'">程序化创意</a-radio-button>
-                            <a-radio-button value="NONE" :disabled="modalTitle === 'edit'">自定义创意</a-radio-button>
+                            <a-radio-button value="NONE" :disabled="modalTitle === 'edit' || originalityStatus">自定义创意</a-radio-button>
                         </a-radio-group>
                     </a-form-model-item>
                     <div v-if="configForm.adUnionVideoType === 'REWARDED_VIDEO'">
@@ -813,10 +813,10 @@
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO">横版视频</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item label="行动号召" prop="creativeCallToAction" key="REWARDED_VIDEO">
+                        <a-form-model-item label="行动号召" prop="creativeActionText" key="REWARDED_VIDEO">
                             <a-select
                                 class="common-input-long"
-                                v-model="configForm.creativeCallToAction"
+                                v-model="configForm.creativeActionText"
                             >
                                 <a-select-option
                                     v-for="(item, index) in creativeOptions"
@@ -876,10 +876,10 @@
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE_VERTICAL">大图竖图</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item label="行动号召" prop="creativeCallToAction" key="ORIGINAL_VIDEO">
+                        <a-form-model-item label="行动号召" prop="creativeActionText" key="ORIGINAL_VIDEO">
                             <a-select
                                 class="common-input-long"
-                                v-model="configForm.creativeCallToAction"
+                                v-model="configForm.creativeActionText"
                             >
                                 <a-select-option
                                     v-for="(item, index) in creativeOptions"
@@ -917,10 +917,10 @@
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_UNION_SPLASH">开屏图片</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
-                        <a-form-model-item label="行动号召" prop="creativeCallToAction" key="SPLASH_VIDEO">
+                        <a-form-model-item label="行动号召" prop="creativeActionText" key="SPLASH_VIDEO">
                             <a-select
                                 class="common-input-long"
-                                v-model="configForm.creativeCallToAction"
+                                v-model="configForm.creativeActionText"
                             >
                                 <a-select-option
                                     v-for="(item, index) in creativeOptions"
@@ -968,10 +968,10 @@
                         <a-form-model-item label="创意内容">
                             <a-radio-group v-model="configForm.creativeImageMode" button-style="solid">
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO_VERTICAL">竖版视频</a-radio-button>
-                                <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO">横版视频</a-radio-button>
-                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE">大图横图</a-radio-button>
+                                <a-radio-button value="CREATIVE_IMAGE_MODE_VIDEO" :disabled="pictureStatus">横版视频</a-radio-button>
+                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE" :disabled="pictureStatus">大图横图</a-radio-button>
                                 <a-radio-button value="CREATIVE_IMAGE_MODE_SMALL" disabled>小图</a-radio-button>
-                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE_VERTICAL">大图竖图</a-radio-button>
+                                <a-radio-button value="CREATIVE_IMAGE_MODE_LARGE_VERTICAL" :disabled="pictureStatus">大图竖图</a-radio-button>
                             </a-radio-group>
                         </a-form-model-item>
                         <a-form-model-item v-if="isTAwemeStatus" label="卡片主图">
@@ -1027,10 +1027,10 @@
                                 <a-icon class="examin-form-icon" type="delete" @click="handleDelOrigin(item)"/>
                             </a-form-model-item>
                         </div>
-                        <a-form-model-item v-if="isTomatoStatus" label="行动号召" prop="creativeCallToAction" key="SPLASH_VIDEO_ONE">
+                        <a-form-model-item v-if="isTomatoStatus" label="行动号召" prop="creativeActionText" key="SPLASH_VIDEO_ONE">
                             <a-select
                                 class="common-input-long"
-                                v-model="configForm.creativeCallToAction"
+                                v-model="configForm.creativeActionText"
                             >
                                 <a-select-option
                                     v-for="(item, index) in creativeOptions"
@@ -1603,6 +1603,7 @@ export default {
                 ],
                 adAudiencePackageId: [{required: true, message: '请选择', trigger: 'change'}],
                 creativeCallToAction: [{required: true, message: '请选择', trigger: 'change'}],
+                creativeActionText: [{required: true, message: '请选择', trigger: 'change'}],
                 adConvertType: [{required: true, message: '请选择', trigger: 'change'}],
                 adConvertId: [{required: true, message: '请选择', trigger: 'change'}],
                 creativeThirdIndustryIds: [{required: true, message: '请选择', trigger: 'change'}]
@@ -1701,8 +1702,11 @@ export default {
                 adAutoExtendTargets: '',
                 adDeliveryRange: '',
                 creativeCallToAction: undefined, // 行动号召
+                creativeActionText: undefined,
                 creativeLabel: undefined // 倡议标签
             },
+            originalityStatus: true, // 创意状态
+            pictureStatus: false,
             isTomatoStatus: false,
             isTAwemeStatus: true
         };
@@ -1965,12 +1969,20 @@ export default {
                 else {
                     this.isTAwemeStatus = false;
                 }
-                if (newVal.length === 1 && newVal[0] === 'INVENTORY_TOMATO_NOVEL') {
+                if (newVal.length === 4 && newVal.includes('INVENTORY_FEED') && newVal.includes('INVENTORY_VIDEO_FEED') && newVal.includes('INVENTORY_HOTSOON_FEED') && newVal.includes('INVENTORY_AWEME_FEED')) {
+                    this.originalityStatus = true;
+                    this.pictureStatus = true;
+                }
+                else if (newVal.length === 1 && newVal[0] === 'INVENTORY_TOMATO_NOVEL') {
                     this.isTomatoStatus = true;
+                    this.originalityStatus = true;
+                    this.pictureStatus = true;
                     this.configForm.creativeImageMode = 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL';
                 }
                 else {
                     this.isTomatoStatus = false;
+                    this.originalityStatus = false;
+                    this.pictureStatus = false;
                 }
                 if (newVal.length === 1 && newVal[0] === 'INVENTORY_UNION_SLOT') {
                     this.configForm.creativeImageMode = 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL';
@@ -2417,13 +2429,19 @@ export default {
                 this.configForm.radioChangeValue = '';
                 this.configForm.checkboxChangeValue = [];
                 this.isTAwemeStatus = true;
+                this.originalityStatus = true;
+                this.pictureStatus = false;
             }
             else if (e.target.value === 'b') {
                 this.configForm.radioChangeValue = '';
+                this.pictureStatus = true;
+                this.originalityStatus = true;
             }
             else if (e.target.value === 'c') {
                 this.configForm.checkboxChangeValue = [];
                 this.isTAwemeStatus = true;
+                this.originalityStatus = true;
+                this.pictureStatus = false;
             }
             this.configForm.adUnionVideoType = '';
             this.configForm.creativeImageMode = 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL';
@@ -2674,6 +2692,7 @@ export default {
                                 if (result.code === 0) {
                                     this.creativeOptions = result.result;
                                     this.configForm.creativeCallToAction = detailData.creativeCallToAction;
+                                    this.configForm.creativeActionText = detailData.creativeActionText;
                                 }
                                 else {
                                     this.$message.error(result.message);
@@ -3100,10 +3119,6 @@ export default {
                 this.$message.error('请添加卖点');
                 return;
             }
-            // if (this.isTAwemeStatus && !paramsFormData.creativeCallToAction) {
-            //     this.$message.error('行动号召不能为空');
-            //     return;
-            // }
             if (!this.creativeTag.length) {
                 this.$message.error('请添加标签');
                 return;

+ 1 - 0
src/views/modules/creative-copywrit/creative-copywrit.vue

@@ -593,6 +593,7 @@
                                     <span>抖音</span>
                                     <span>消耗:{{ items.bytedanceCost || 0 }}</span>
                                     <span>广告语:{{ items.slogansCount || 0 }}</span>
+                                    <span style="display: inline-block;text-align: left;width: 400px;">审核通过时间:{{ items.confirmTime || '-' }}</span>
                                 </div>
                                 <div class="show-data">
                                     <span>快手</span>