refuseDataCreatNew.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
  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 :maxLength='editTitle=="广告语修改"?30:200' />
  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: 6 }, 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. width:120,
  191. },
  192. {
  193. title: '计划Id',
  194. dataIndex: 'campaignId',
  195. key: 'campaignId',
  196. align: 'center',
  197. width:120,
  198. },
  199. {
  200. title: '广告组Id',
  201. dataIndex: 'unitId',
  202. key: 'unitId',
  203. align: 'center',
  204. width:120,
  205. },
  206. {
  207. title: '创意Id',
  208. dataIndex: 'creativeId',
  209. key: 'photoClick',
  210. align: 'center',
  211. width:120,
  212. },
  213. {
  214. title: '创意名称',
  215. dataIndex: 'creativeName',
  216. key: 'creativeName',
  217. align: 'left',
  218. scopedSlots: {
  219. customRender: 'creativeName'
  220. }
  221. },
  222. // {
  223. // title: '视频',
  224. // dataIndex: 'videoUrl',
  225. // key: 'videoUrl',
  226. // align: 'center',
  227. // scopedSlots: {
  228. // customRender: 'videoUrl'
  229. // }
  230. // },
  231. {
  232. title: '封面',
  233. dataIndex: 'coverUrl',
  234. key: 'coverUrl',
  235. align: 'center',
  236. scopedSlots: {
  237. customRender: 'coverUrl'
  238. }
  239. },
  240. {
  241. title: '拒绝原因',
  242. dataIndex: 'reviewDetail',
  243. key: 'reviewDetail',
  244. align: 'left'
  245. },
  246. {
  247. title: '广告语',
  248. dataIndex: 'description',
  249. key: 'description',
  250. align: 'left',
  251. scopedSlots: {
  252. customRender: 'description'
  253. }
  254. }
  255. ]
  256. export default {
  257. name: 'refuse-data',
  258. components: {
  259. EditableCell,
  260. Treeselect
  261. },
  262. data: function () {
  263. return {
  264. putStatus: '0',
  265. title: '被拒创意列表',
  266. visibleFail: false,
  267. visibleAgain: false,
  268. againLoading: false,
  269. fail: null,
  270. appId: null,
  271. loading: false,
  272. columns,
  273. dataList: [],
  274. titleVisible: false,
  275. cunTitleVisible: false,
  276. keyWord: '',
  277. editTitle: '',
  278. confirmLoading: false,
  279. visible: false,
  280. editWord: '',
  281. nowData: null,
  282. selectedRowKeys: [],
  283. selectedRowKeysValue: [],
  284. loadingList: false,
  285. loadingSyncCreative: false,
  286. ipagination: {
  287. current: 1,
  288. pageSize: 50,
  289. showTotal: (total, range) => {
  290. return range[0] + '-' + range[1] + ' 共' + total + '条'
  291. },
  292. showQuickJumper: true,
  293. // showSizeChanger: true,
  294. total: 0,
  295. onChange: current => {
  296. // 切换分页时的回调,
  297. // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
  298. this.ipagination.current = current
  299. this.selectedRowKeys = []
  300. this.selectedRowKeysValue = []
  301. this.addUser()
  302. }
  303. },
  304. form: this.$form.createForm(this),
  305. appList: [],
  306. options: [],
  307. cunTitleList: [],
  308. title: [],
  309. dataOne: [],
  310. value: '',
  311. updateDescription: '', //广告语的字符
  312. }
  313. },
  314. filters: {
  315. typeStatus(type) {
  316. // 2 - 提升应用安装;
  317. // 3 - 获取电商下单;
  318. // 4 - 推广品牌活动;
  319. // 5 - 收集销售线索;
  320. var data = ['', '', '提升应用安装', '获取电商下单', '推广品牌活动', '收集销售线索']
  321. return data[type]
  322. },
  323. status(sta) {
  324. var data = {
  325. '-1': '不限',
  326. 1: '已暂停',
  327. 3: '计划超预算',
  328. 4: '有效',
  329. 6: '余额不足'
  330. }
  331. return data[sta]
  332. },
  333. putStatus(sta) {
  334. var data = {
  335. 1: '投放中',
  336. 2: '暂停'
  337. }
  338. return data[sta]
  339. },
  340. createChannel(sta) {
  341. var data = {
  342. 0: '投放后台',
  343. 1: '汇创助手'
  344. }
  345. return data[sta]
  346. }
  347. },
  348. watch: {
  349. appId(n, o) {
  350. console.log(n, o)
  351. if (n != o) {
  352. this.ipagination.current = 1
  353. }
  354. },
  355. visibleFail(n, o) {
  356. if (!n) {
  357. this.visibleAgain = false
  358. this.selectedRowKeys = []
  359. this.selectedRowKeysValue = []
  360. this.addUser()
  361. }
  362. }
  363. },
  364. methods: {
  365. changeSlide() {
  366. this.addUser()
  367. },
  368. // 广告语改变
  369. DescriptionChange(e) {
  370. console.log(e.target.value);
  371. if (e.target.value.length > 30) {
  372. // this.updateDescription=e.target.value.substr(0,30);
  373. // console.log(this.updateDescription)
  374. this.$message.error('广告语最多30字!')
  375. }
  376. },
  377. filter(inputValue, path) {
  378. return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)
  379. },
  380. onChangeTitle(value, selectedOptions) {
  381. console.log(value, selectedOptions)
  382. this.dataOne = value
  383. this.value = ''
  384. this.title = []
  385. },
  386. okTitleCun(item) {
  387. console.log(item)
  388. // this.form.setFieldsValue({
  389. // updateDescription: item.title
  390. // })
  391. this.updateDescription = item.title;
  392. this.cunTitleVisible = false;
  393. this.cunTitleList = []
  394. },
  395. okTitle(item) {
  396. // this.form.setFieldsValue({
  397. // updateDescription: item
  398. // })
  399. this.updateDescription = item;
  400. this.titleVisible = false;
  401. this.dataOne = []
  402. this.value = ""
  403. this.title = []
  404. },
  405. searchQuery() {
  406. // /ctop/creativeTitle/titleSuggestion
  407. console.log(this.value)
  408. getAction('/ctop/creativeTitle/titleSearch', {
  409. firstCategory: this.dataOne[0],
  410. secondCategory: this.dataOne[1],
  411. keywords: this.value
  412. }).then(res => {
  413. console.log(res)
  414. this.title = res.result ? res.result : []
  415. })
  416. // firstCategory,secondCategory,keywords
  417. },
  418. filterOption(input, option) {
  419. return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
  420. },
  421. getData(className) {
  422. return this.form.getFieldValue(className)
  423. },
  424. syncCreative() {
  425. this.loadingSyncCreative = true
  426. var params = {}
  427. // localStorage.setItem('accountIdCreat', record.campaignId)
  428. // localStorage.setItem('accountIdCreatNow', this.appId)
  429. params.accountId = this.appId
  430. getAction('/MaterialRefuse/syncCreative', params).then(res => {
  431. if (res.success) {
  432. this.loadingSyncCreative = false
  433. this.$message.success("同步成功")
  434. this.reset()
  435. } else {
  436. this.loadingSyncCreative = false
  437. this.$message.error(res.message)
  438. }
  439. })
  440. },
  441. clickAgain() {
  442. // this.loadingList = true
  443. this.visibleAgain = true
  444. // getAction('/MaterialRefuse/getAllActionBarText').then(res => {
  445. // if (res.success) {
  446. // this.appList = res.result
  447. // }
  448. // })
  449. // var params = {}
  450. // params.accountId = this.appId + ''
  451. // params.creativeArr = this.selectedRowKeysValue
  452. // postAction('/MaterialRefuse/batchUpdateCreative', params).then(res => {
  453. // if (res.success) {
  454. // this.loadingList = false
  455. // this.selectedRowKeysValue = []
  456. // this.selectedRowKeys = []
  457. // this.visibleFail = true
  458. // this.fail = res.result
  459. // this.addUser()
  460. // } else {
  461. // this.loadingList = false
  462. // this.visibleFail = true
  463. // this.fail = res.result
  464. // this.$message.error(res.message)
  465. // }
  466. // })
  467. },
  468. showTitle() {
  469. this.titleVisible = true;
  470. this.getHangye()
  471. },
  472. showCunTitle() {
  473. this.cunTitleVisible = true
  474. this.getCunTitle()
  475. },
  476. getCunTitle() {
  477. var params = {}
  478. params.accountId = this.appId
  479. params.userId = this.userInfo().id
  480. params.pageNo = 1
  481. params.pageSize = 500
  482. getAction('/kuaishou/kuaiShouTitleCollection/list', params).then(res => {
  483. if (res.success) {
  484. console.log(res.result)
  485. this.cunTitleList = res.result.records
  486. }
  487. })
  488. },
  489. getHangye() {
  490. getAction('/ctop/creativeTitle/getTitleLabel', '').then(res => {
  491. console.log(res)
  492. if (res.success) {
  493. this.options = res.result.map(item => {
  494. return {
  495. label: item.label,
  496. value: item.value,
  497. children: item.children.length > 0 ? [{
  498. label: '不限',
  499. value: 0
  500. }].concat(item.children) : [{
  501. label: '不限',
  502. value: 0
  503. }]
  504. }
  505. })
  506. this.options = [{
  507. label: '不限',
  508. value: 0
  509. }].concat(this.options)
  510. if (this.dataOne.length > 0) {
  511. return
  512. } else {
  513. this.dataOne = [0]
  514. }
  515. }
  516. })
  517. },
  518. onSelectChange(selectedRowKeys, selectionRows) {
  519. this.selectedRowKeys = selectedRowKeys
  520. this.selectedRowKeysValue = selectionRows.map(item => {
  521. return {
  522. description: item.description,
  523. creativeId: item.creativeId
  524. }
  525. })
  526. // this.selectedRowKeysValue.length > 0 ? this.selectedRowKeysValue :
  527. },
  528. handleOkAgain(e) {
  529. if (this.updateDescription.length > 30 && this.getData('type') == 1) {
  530. this.$message.error('广告语最多30个字,请修正后再次提交!')
  531. } else {
  532. this.againLoading = true
  533. this.form.validateFields((err, values) => {
  534. if (!err) {
  535. values.updateDescription = this.updateDescription;
  536. var params = {
  537. ...values,
  538. accountId: this.appId,
  539. creativeArr: this.selectedRowKeysValue
  540. }
  541. postAction('/MaterialRefuse/batchUpdateCreative', params).then(res => {
  542. if (res.success) {
  543. // this.visibleFail = true
  544. this.visibleAgain = false
  545. this.selectedRowKeys = []
  546. this.selectedRowKeysValue = []
  547. this.addUser()
  548. this.againLoading = false
  549. this.$message.success(res.message)
  550. } else {
  551. this.againLoading = false
  552. this.$message.error(res.message)
  553. }
  554. })
  555. }
  556. })
  557. }
  558. },
  559. handleOk(e) {
  560. this.confirmLoading = true
  561. var params = {}
  562. params.accountId = this.nowData.accountId
  563. params.campaignId = this.nowData.campaignId
  564. params.unitId = this.nowData.unitId
  565. params.creativeId = this.nowData.creativeId
  566. params.creativeName = this.editTitle == '创意名称修改' ? this.editWord : this.nowData.creativeName
  567. params.description = this.editTitle == '广告语修改' ? this.editWord : this.nowData.description
  568. updateCreative(params).then(res => {
  569. if (res.code == 0) {
  570. this.addUser()
  571. this.visible = false
  572. this.confirmLoading = false
  573. } else {
  574. this.$message.error(res.message)
  575. this.visible = false
  576. this.confirmLoading = false
  577. }
  578. })
  579. },
  580. handleCancel(e) {
  581. this.visible = false
  582. },
  583. handleClose(e) {
  584. this.visibleAgain = false
  585. this.form.resetFields()
  586. },
  587. onCellChange(item, dataIndex) {
  588. this.editWord = item[dataIndex]
  589. this.editTitle = dataIndex == 'creativeName' ? '创意名称修改' : '广告语修改'
  590. this.nowData = item
  591. this.visible = true
  592. },
  593. moment,
  594. ...mapGetters(['nickname', 'avatar', 'userInfo']),
  595. addUser() {
  596. this.loading = true
  597. var params = {}
  598. this.selectedRowKeys = []
  599. this.selectedRowKeysValue = []
  600. // localStorage.setItem('accountIdCreat', record.campaignId)
  601. // localStorage.setItem('accountIdCreatNow', this.appId)
  602. params.accountId = this.appId
  603. // params.campaignId = localStorage.getItem('accountIdCreat')
  604. params.pageSize = this.ipagination.pageSize
  605. params.pageNo = this.ipagination.current
  606. params.creativeName=this.keyWord
  607. params.putStatus = this.putStatus == "0" ? null : this.putStatus
  608. getAction('/MaterialRefuse/getRefuseCreative', params).then(res => {
  609. if (res.code == 0) {
  610. this.dataList = res.result.records.map((v, index) => {
  611. return {
  612. ...v,
  613. key: index
  614. }
  615. })
  616. this.list = this.dataList
  617. this.loading = false
  618. this.ipagination.total = res.result.total
  619. }
  620. })
  621. },
  622. addUserKey() {
  623. // this.dataList = this.list.filter(item => {
  624. // return item.creativeName.toLowerCase().indexOf(this.keyWord.toLowerCase()) > -1
  625. // })
  626. this.loading = true
  627. var params = {}
  628. this.selectedRowKeys = []
  629. this.selectedRowKeysValue = []
  630. params.accountId = this.appId
  631. params.pageSize = this.ipagination.pageSize
  632. params.pageNo = this.ipagination.current
  633. params.putStatus = this.putStatus == "0" ? null : this.putStatus
  634. params.creativeName=this.keyWord
  635. getAction('/MaterialRefuse/getRefuseCreative', params).then(res => {
  636. if (res.code == 0) {
  637. this.dataList = res.result.records.map((v, index) => {
  638. return {
  639. ...v,
  640. key: index
  641. }
  642. })
  643. this.list = this.dataList
  644. this.loading = false
  645. this.ipagination.total = res.result.total
  646. }
  647. })
  648. },
  649. reset() {
  650. // this.keyWord='';
  651. this.addUser()
  652. }
  653. },
  654. distoryed() {},
  655. updated() {
  656. stopOtherVideo()
  657. },
  658. mounted: function () {
  659. this.$nextTick(() => {});
  660. // console.log(this.$route);
  661. if(this.$route.query){
  662. this.appId=this.$route.query.accountId;
  663. this.addUserKey()
  664. }
  665. }
  666. }
  667. </script>