refuseDataCreat.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. <style></style>
  2. <template>
  3. <div class="data-refuse-statistics">
  4. <!-- <a-row class="image-list-heading vm-panel">
  5. <a-row type="flex" align="middle" justify="space-between" class="panel-body">
  6. <div class="search-bar" style="width:100%;display:flex">
  7. <span style="line-height:35px;margin-left:15px">账户选择:</span>
  8. <treeselect :appId.sync="appId" :multiple="false" />
  9. <a-button type="primary" style="margin-left:10px" @click="(ipagination.current=1);addUser()">搜索</a-button>
  10. </div>
  11. </a-row>
  12. </a-row> -->
  13. <a-row :gutter="10" style="margin-top:10px">
  14. <a-col :span="24">
  15. <a-card style="width:100%;">
  16. <div style="display:flex;margin:0 0 20px 0;position:relative">
  17. <a-input placeholder="请输出要查找的创意名称" style="width:300px;" v-model="keyWord" />
  18. <a-button type="primary" style="margin-left:10px" @click="addUserKey">搜索</a-button>
  19. <a-button type="primary" style="margin-left:10px" @click="reset()">刷新列表</a-button>
  20. <a-button type="primary" style="margin-left:10px" @click="clickAgain" v-if="selectedRowKeys.length>0"
  21. :loading="loadingList">一键重提
  22. </a-button>
  23. <a-radio-group v-model="putStatus" button-style="solid" style="margin-left:10px" @change="changeSlide">
  24. <a-radio-button value="0">
  25. 全部
  26. </a-radio-button>
  27. <a-radio-button value="1">
  28. 开启
  29. </a-radio-button>
  30. <a-radio-button value="2">
  31. 已关闭
  32. </a-radio-button>
  33. </a-radio-group>
  34. <a-button type="primary" style="position:absolute;right:0" @click="syncCreative"
  35. :loading="loadingSyncCreative">
  36. 同步创意
  37. </a-button>
  38. </div>
  39. <!-- /MaterialRefuse/syncCreative -->
  40. <a-table :columns="columns" :dataSource="dataList" bordered :loading="loading" size="middle"
  41. :pagination="ipagination" :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
  42. <!-- <div slot="videoUrl" slot-scope="videoUrl">
  43. <video class="video" :src="videoUrl" controls="controls" style="height:200px;width:112.5px">
  44. 您的浏览器不支持 video 标签。
  45. </video>
  46. </div> -->
  47. <div slot="coverUrl" slot-scope="coverUrl">
  48. <img :src="coverUrl" controls="controls" style="height:200px;width:112.5px" />
  49. </div>
  50. <template slot="creativeName" slot-scope="text, record">
  51. <div>
  52. {{ text }}
  53. <a-icon type="edit" style="cursor: pointer;" @click="onCellChange(record, 'creativeName')" />
  54. </div>
  55. </template>
  56. <template slot="description" slot-scope="text, record">
  57. <div>
  58. {{ text }}
  59. <a-icon type="edit" style="cursor: pointer;" @click="onCellChange(record, 'description')" />
  60. </div>
  61. </template>
  62. </a-table>
  63. </a-card>
  64. </a-col>
  65. </a-row>
  66. <a-modal :title="editTitle" :visible="visible" @ok="handleOk" :confirmLoading="confirmLoading"
  67. @cancel="handleCancel">
  68. <a-textarea v-model="editWord" autosize />
  69. </a-modal>
  70. <a-modal title="一键重提" @cancel="handleClose" :visible="visibleAgain" @ok="handleOkAgain"
  71. :confirmLoading="againLoading" :width="650">
  72. <a-form :form="form">
  73. <a-form-item label="是否修改" :labelCol="{ lg: { span: 4 }, sm: { span: 6 } }"
  74. :wrapperCol="{ lg: { span: 18 }, sm: { span: 18 } }">
  75. <a-radio-group buttonStyle="solid" v-decorator="[
  76. 'type',
  77. { initialValue: 0} ]">
  78. <a-radio-button :value="0">否</a-radio-button>
  79. <a-radio-button :value="1">是</a-radio-button>
  80. </a-radio-group>
  81. </a-form-item>
  82. <a-form-item label="广告语" :labelCol="{ lg: { span: 4 }, sm: { span: 6 } }"
  83. :wrapperCol="{ lg: { span: 18 }, sm: { span: 18 } }" v-if="getData('type')==1">
  84. <a-input v-model="updateDescription" :max="10" :min="1" style="width:100%" @change="DescriptionChange">
  85. </a-input>
  86. <a @click="showTitle()">推荐标题</a><a style="margin-left:10px" @click="showCunTitle()">标题收藏</a>
  87. </a-form-item>
  88. <a-form-item label="行动号召" :labelCol="{ lg: { span: 4 }, sm: { span: 6 } }"
  89. :wrapperCol="{ lg: { span: 18 }, sm: { span: 18 } }" v-if="getData('type')==1">
  90. <a-select v-decorator="['updateActionBarText']" showSearch allowClear placeholder="选择行动号召按钮文案"
  91. optionFilterProp="children" :filterOption="filterOption">
  92. <a-select-option v-for="appModel in appList" :key="appModel.id" :value="appModel.actionBarText">
  93. {{ appModel.actionBarText }}
  94. </a-select-option>
  95. </a-select>
  96. </a-form-item>
  97. </a-form>
  98. </a-modal>
  99. <a-modal v-model="visibleFail" title="重提信息" :footer="null">
  100. <div v-if="fail">
  101. 修改成功条数:{{ fail.successCount }} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;失败条数:{{
  102. fail.failCount
  103. }}
  104. <div style="margin-top:20px">
  105. <p v-for="(item, index) of fail.failInfo" :key="index">
  106. <span>名称:{{ item.campaignName?item.campaignName:item.unitName }}</span><br />
  107. <span>错误信息:{{ item.message }}</span>
  108. </p>
  109. </div>
  110. </div>
  111. </a-modal>
  112. <a-modal title="推荐标题" v-model="titleVisible" :width="1000" :footer="null">
  113. <a-row :gutter="10">
  114. <a-col :sm="10" style="margin-bottom: 20px;z-index: 10">
  115. <a-card class="search-box" style="min-height:500px">
  116. <div style="margin-bottom:30px">
  117. <span style="display:inline-block;width:80px">行业</span>
  118. <a-cascader style="margin-top: 1rem;width:300px" v-model="dataOne" :options="options"
  119. :showSearch="{ filter }" expandTrigger="hover" @change="onChangeTitle" placeholder="请选择行业">
  120. <a-icon type="smile" slot="suffixIcon" class="test" />
  121. </a-cascader>
  122. </div>
  123. <div style="margin-bottom:30px">
  124. <span style="display:inline-block;width:80px">关键词</span>
  125. <a-input placeholder="请输入关键词" v-model="value" style="width: 300px" />
  126. </div>
  127. <span style="display:inline-block;width:80px;float:left"></span>
  128. <a-button type="primary" @click="searchQuery" :disabled="value == ''">生成</a-button>
  129. </a-card>
  130. </a-col>
  131. <a-col :sm="14" style="margin-bottom: 20px;z-index: 10">
  132. <a-card class="search-box" style="over-flow:auto">
  133. <a-list size="large" bordered :dataSource="title">
  134. <a-list-item slot="renderItem" slot-scope="item">
  135. <a slot="actions" @click="okTitle(item)">选择</a>
  136. {{ item }}
  137. </a-list-item>
  138. </a-list>
  139. </a-card>
  140. </a-col>
  141. </a-row>
  142. </a-modal>
  143. <a-modal title="收藏标题" v-model="cunTitleVisible" :width="1000" :footer="null">
  144. <a-row :gutter="10">
  145. <a-col :sm="24" style="margin-bottom: 20px;z-index: 10">
  146. <a-card class="search-box" style="over-flow:auto">
  147. <a-list size="large" bordered :dataSource="cunTitleList">
  148. <a-list-item slot="renderItem" slot-scope="item">
  149. <div slot="actions">
  150. <a @click="okTitleCun(item)">选择</a>
  151. <!-- <a-divider type="vertical" />
  152. <a @click="removeTitleCun(item)">删除</a> -->
  153. </div>
  154. {{ item.title }}
  155. </a-list-item>
  156. </a-list>
  157. </a-card>
  158. </a-col>
  159. </a-row>
  160. </a-modal>
  161. </div>
  162. </template>
  163. <script>
  164. import moment from 'moment'
  165. import {
  166. getRefuseCreative,
  167. updateCreative,
  168. selectByCreateName
  169. } from '@api/statistics'
  170. import axios from 'axios'
  171. import EditableCell from './components/EditableCell'
  172. import {
  173. mapGetters
  174. } from 'vuex'
  175. import {
  176. deleteAction,
  177. getAction,
  178. postAction
  179. } from '@/api/manage'
  180. import Treeselect from './components/Treeselect.vue'
  181. import {
  182. stopOtherVideo,
  183. closeAllVideoFun
  184. } from '@/utils/videoControl' // 停止除当前外的其他视频播放,及停止所有视频播放的方法
  185. const columns = [{
  186. title: '账号Id',
  187. dataIndex: 'accountId',
  188. key: 'accountId',
  189. align: 'center'
  190. },
  191. {
  192. title: '计划Id',
  193. dataIndex: 'campaignId',
  194. key: 'campaignId',
  195. align: 'center'
  196. },
  197. {
  198. title: '广告组id',
  199. dataIndex: 'unitId',
  200. key: 'unitId',
  201. align: 'center'
  202. },
  203. {
  204. title: '创意id',
  205. dataIndex: 'creativeId',
  206. key: 'photoClick',
  207. align: 'center'
  208. },
  209. {
  210. title: '创意名称',
  211. dataIndex: 'creativeName',
  212. key: 'creativeName',
  213. align: 'left',
  214. scopedSlots: {
  215. customRender: 'creativeName'
  216. }
  217. },
  218. // {
  219. // title: '视频',
  220. // dataIndex: 'videoUrl',
  221. // key: 'videoUrl',
  222. // align: 'center',
  223. // scopedSlots: {
  224. // customRender: 'videoUrl'
  225. // }
  226. // },
  227. {
  228. title: '封面',
  229. dataIndex: 'coverUrl',
  230. key: 'coverUrl',
  231. align: 'center',
  232. scopedSlots: {
  233. customRender: 'coverUrl'
  234. }
  235. },
  236. {
  237. title: '拒绝原因',
  238. dataIndex: 'reviewDetail',
  239. key: 'reviewDetail',
  240. align: 'left'
  241. },
  242. {
  243. title: '广告语',
  244. dataIndex: 'description',
  245. key: 'description',
  246. align: 'left',
  247. scopedSlots: {
  248. customRender: 'description'
  249. }
  250. }
  251. ]
  252. export default {
  253. name: 'refuse-data',
  254. components: {
  255. EditableCell,
  256. Treeselect
  257. },
  258. data: function () {
  259. return {
  260. putStatus: '0',
  261. title: '被拒创意列表',
  262. visibleFail: false,
  263. visibleAgain: false,
  264. againLoading: false,
  265. fail: null,
  266. appId: null,
  267. loading: false,
  268. columns,
  269. dataList: [],
  270. titleVisible: false,
  271. cunTitleVisible: false,
  272. keyWord: '',
  273. editTitle: '',
  274. confirmLoading: false,
  275. visible: false,
  276. editWord: '',
  277. nowData: null,
  278. selectedRowKeys: [],
  279. selectedRowKeysValue: [],
  280. loadingList: false,
  281. loadingSyncCreative: false,
  282. ipagination: {
  283. current: 1,
  284. pageSize: 50,
  285. showTotal: (total, range) => {
  286. return range[0] + '-' + range[1] + ' 共' + total + '条'
  287. },
  288. showQuickJumper: true,
  289. // showSizeChanger: true,
  290. total: 0,
  291. onChange: current => {
  292. // 切换分页时的回调,
  293. // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
  294. this.ipagination.current = current
  295. this.selectedRowKeys = []
  296. this.selectedRowKeysValue = []
  297. this.addUser()
  298. }
  299. },
  300. form: this.$form.createForm(this),
  301. appList: [],
  302. options: [],
  303. cunTitleList: [],
  304. title: [],
  305. dataOne: [],
  306. value: '',
  307. updateDescription:'',//重提的广告语
  308. }
  309. },
  310. filters: {
  311. typeStatus(type) {
  312. // 2 - 提升应用安装;
  313. // 3 - 获取电商下单;
  314. // 4 - 推广品牌活动;
  315. // 5 - 收集销售线索;
  316. var data = ['', '', '提升应用安装', '获取电商下单', '推广品牌活动', '收集销售线索']
  317. return data[type]
  318. },
  319. status(sta) {
  320. var data = {
  321. '-1': '不限',
  322. 1: '已暂停',
  323. 3: '计划超预算',
  324. 4: '有效',
  325. 6: '余额不足'
  326. }
  327. return data[sta]
  328. },
  329. putStatus(sta) {
  330. var data = {
  331. 1: '投放中',
  332. 2: '暂停'
  333. }
  334. return data[sta]
  335. },
  336. createChannel(sta) {
  337. var data = {
  338. 0: '投放后台',
  339. 1: '汇创助手'
  340. }
  341. return data[sta]
  342. }
  343. },
  344. watch: {
  345. appId(n, o) {
  346. console.log(n, o)
  347. if (n != o) {
  348. this.ipagination.current = 1
  349. }
  350. },
  351. visibleFail(n, o) {
  352. if (!n) {
  353. this.visibleAgain = false
  354. this.selectedRowKeys = []
  355. this.selectedRowKeysValue = []
  356. this.addUser()
  357. }
  358. }
  359. },
  360. methods: {
  361. changeSlide() {
  362. this.addUser()
  363. },
  364. // 广告语改变
  365. DescriptionChange(e){
  366. console.log(e.target.value);
  367. if(e.target.value.length>30){
  368. // this.updateDescription=e.target.value.substr(0,30);
  369. // console.log(this.updateDescription)
  370. this.$message.error('广告语最多30字!')
  371. }
  372. },
  373. filter(inputValue, path) {
  374. return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)
  375. },
  376. onChangeTitle(value, selectedOptions) {
  377. console.log(value, selectedOptions)
  378. this.dataOne = value
  379. this.value = ''
  380. this.title = []
  381. },
  382. okTitleCun(item) {
  383. console.log(item)
  384. // this.form.setFieldsValue({
  385. // updateDescription: item.title
  386. // })
  387. this.updateDescription=item.title;
  388. this.cunTitleVisible = false;
  389. this.cunTitleList = []
  390. },
  391. okTitle(item) {
  392. // this.form.setFieldsValue({
  393. // updateDescription: item
  394. // })
  395. this.updateDescription=item;
  396. this.titleVisible = false;
  397. this.dataOne = []
  398. this.value = ""
  399. this.title = []
  400. },
  401. searchQuery() {
  402. // /ctop/creativeTitle/titleSuggestion
  403. console.log(this.value)
  404. getAction('/ctop/creativeTitle/titleSearch', {
  405. firstCategory: this.dataOne[0],
  406. secondCategory: this.dataOne[1],
  407. keywords: this.value
  408. }).then(res => {
  409. console.log(res)
  410. this.title = res.result ? res.result : []
  411. })
  412. // firstCategory,secondCategory,keywords
  413. },
  414. filterOption(input, option) {
  415. return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
  416. },
  417. getData(className) {
  418. return this.form.getFieldValue(className)
  419. },
  420. syncCreative() {
  421. this.loadingSyncCreative = true
  422. var params = {}
  423. // localStorage.setItem('accountIdCreat', record.campaignId)
  424. // localStorage.setItem('accountIdCreatNow', this.appId)
  425. params.accountId = localStorage.getItem('accountIdCreatNow')
  426. params.campaignId = localStorage.getItem('accountIdCreat')
  427. getAction('/MaterialRefuse/syncCreative', params).then(res => {
  428. if (res.success) {
  429. this.loadingSyncCreative = false
  430. this.$message.success("同步成功")
  431. this.reset()
  432. } else {
  433. this.loadingSyncCreative = false
  434. this.$message.error(res.message)
  435. }
  436. })
  437. },
  438. clickAgain() {
  439. // this.loadingList = true
  440. this.visibleAgain = true
  441. getAction('/kuaishou/batch/getActionBarText', {
  442. campaignId: localStorage.getItem('accountIdCreat')
  443. }).then(res => {
  444. if (res.success) {
  445. this.appList = res.result
  446. }
  447. })
  448. // var params = {}
  449. // params.accountId = this.appId + ''
  450. // params.creativeArr = this.selectedRowKeysValue
  451. // postAction('/MaterialRefuse/batchUpdateCreative', params).then(res => {
  452. // if (res.success) {
  453. // this.loadingList = false
  454. // this.selectedRowKeysValue = []
  455. // this.selectedRowKeys = []
  456. // this.visibleFail = true
  457. // this.fail = res.result
  458. // this.addUser()
  459. // } else {
  460. // this.loadingList = false
  461. // this.visibleFail = true
  462. // this.fail = res.result
  463. // this.$message.error(res.message)
  464. // }
  465. // })
  466. },
  467. showTitle() {
  468. this.titleVisible = true;
  469. this.getHangye()
  470. },
  471. showCunTitle() {
  472. this.cunTitleVisible = true
  473. this.getCunTitle()
  474. },
  475. getCunTitle() {
  476. var params = {}
  477. params.accountId = localStorage.getItem('accountIdCreatNow')
  478. params.userId = this.userInfo().id
  479. params.pageNo = 1
  480. params.pageSize = 500
  481. getAction('/kuaishou/kuaiShouTitleCollection/list', params).then(res => {
  482. if (res.success) {
  483. console.log(res.result)
  484. this.cunTitleList = res.result.records
  485. }
  486. })
  487. },
  488. getHangye() {
  489. getAction('/ctop/creativeTitle/getTitleLabel', '').then(res => {
  490. console.log(res)
  491. if (res.success) {
  492. this.options = res.result.map(item => {
  493. return {
  494. label: item.label,
  495. value: item.value,
  496. children: item.children.length > 0 ? [{
  497. label: '不限',
  498. value: 0
  499. }].concat(item.children) : [{
  500. label: '不限',
  501. value: 0
  502. }]
  503. }
  504. })
  505. this.options = [{
  506. label: '不限',
  507. value: 0
  508. }].concat(this.options)
  509. if (this.dataOne.length > 0) {
  510. return
  511. } else {
  512. this.dataOne = [0]
  513. }
  514. }
  515. })
  516. },
  517. onSelectChange(selectedRowKeys, selectionRows) {
  518. this.selectedRowKeys = selectedRowKeys
  519. this.selectedRowKeysValue = selectionRows.map(item => {
  520. return {
  521. description: item.description,
  522. creativeId: item.creativeId
  523. }
  524. })
  525. // this.selectedRowKeysValue.length > 0 ? this.selectedRowKeysValue :
  526. },
  527. handleOkAgain(e) {
  528. if(this.updateDescription.length>30&&this.getData('type')==1){
  529. this.$message.error('广告语最多30个字,请修正后再次提交!')
  530. }else{
  531. this.againLoading = true
  532. this.form.validateFields((err, values) => {
  533. if (!err) {
  534. values.updateDescription=this.updateDescription;
  535. var params = {
  536. ...values,
  537. accountId: localStorage.getItem('accountIdCreatNow'),
  538. creativeArr: this.selectedRowKeysValue
  539. }
  540. postAction('/MaterialRefuse/batchUpdateCreative', params).then(res => {
  541. if (res.success) {
  542. // this.visibleFail = true
  543. this.visibleAgain = false
  544. this.selectedRowKeys = []
  545. this.selectedRowKeysValue = []
  546. this.addUser()
  547. this.againLoading = false
  548. this.$message.success(res.message)
  549. } else {
  550. this.againLoading = false
  551. this.$message.error(res.message)
  552. }
  553. })
  554. }
  555. })
  556. }
  557. },
  558. handleOk(e) {
  559. this.confirmLoading = true
  560. var params = {}
  561. params.accountId = this.nowData.accountId
  562. params.campaignId = this.nowData.campaignId
  563. params.unitId = this.nowData.unitId
  564. params.creativeId = this.nowData.creativeId
  565. params.creativeName = this.editTitle == '创意名称修改' ? this.editWord : this.nowData.creativeName
  566. params.description = this.editTitle == '广告语修改' ? this.editWord : this.nowData.description
  567. updateCreative(params).then(res => {
  568. if (res.code == 0) {
  569. this.addUser()
  570. this.visible = false
  571. this.confirmLoading = false
  572. } else {
  573. this.$message.error(res.message)
  574. this.visible = false
  575. this.confirmLoading = false
  576. }
  577. })
  578. },
  579. handleCancel(e) {
  580. this.visible = false
  581. },
  582. handleClose(e) {
  583. this.visibleAgain = false
  584. this.form.resetFields()
  585. },
  586. onCellChange(item, dataIndex) {
  587. this.editWord = item[dataIndex]
  588. this.editTitle = dataIndex == 'creativeName' ? '创意名称修改' : '广告语修改'
  589. this.nowData = item
  590. this.visible = true
  591. },
  592. moment,
  593. ...mapGetters(['nickname', 'avatar', 'userInfo']),
  594. addUser() {
  595. this.loading = true
  596. var params = {}
  597. this.selectedRowKeys = []
  598. this.selectedRowKeysValue = []
  599. // localStorage.setItem('accountIdCreat', record.campaignId)
  600. // localStorage.setItem('accountIdCreatNow', this.appId)
  601. params.accountId = localStorage.getItem('accountIdCreatNow')
  602. params.campaignId = localStorage.getItem('accountIdCreat')
  603. params.pageSize = this.ipagination.pageSize
  604. params.pageNo = this.ipagination.current
  605. params.creativeName=this.keyWord
  606. params.putStatus = this.putStatus == "0" ? null : this.putStatus
  607. getAction('/MaterialRefuse/getRefuseCreative', params).then(res => {
  608. if (res.code == 0) {
  609. this.dataList = res.result.records.map((v, index) => {
  610. return {
  611. ...v,
  612. key: index
  613. }
  614. })
  615. this.list = this.dataList
  616. this.loading = false
  617. this.ipagination.total = res.result.total
  618. }
  619. })
  620. },
  621. addUserKey() {
  622. // this.dataList = this.list.filter(item => {
  623. // return item.creativeName.toLowerCase().indexOf(this.keyWord.toLowerCase()) > -1
  624. // })
  625. this.loading = true
  626. var params = {}
  627. this.selectedRowKeys = []
  628. this.selectedRowKeysValue = []
  629. params.accountId = this.appId
  630. params.accountId = localStorage.getItem('accountIdCreatNow')
  631. params.campaignId = localStorage.getItem('accountIdCreat')
  632. params.pageSize = this.ipagination.pageSize
  633. params.pageNo = this.ipagination.current
  634. params.putStatus = this.putStatus == "0" ? null : this.putStatus
  635. params.creativeName=this.keyWord
  636. getAction('/MaterialRefuse/getRefuseCreative', params).then(res => {
  637. if (res.code == 0) {
  638. this.dataList = res.result.records.map((v, index) => {
  639. return {
  640. ...v,
  641. key: index
  642. }
  643. })
  644. this.list = this.dataList
  645. this.loading = false
  646. this.ipagination.total = res.result.total
  647. }
  648. })
  649. },
  650. reset() {
  651. this.addUser()
  652. }
  653. },
  654. distoryed() {},
  655. updated() {
  656. stopOtherVideo()
  657. },
  658. mounted: function () {
  659. this.$nextTick(() => {
  660. this.addUser()
  661. })
  662. }
  663. }
  664. </script>