Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

index.vue 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <list-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></list-search>
  3. <a-c-operation @refresh="clearData">
  4. </a-c-operation>
  5. <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
  6. @page="getPage" :loading="loading">
  7. <template #default="{ record }">
  8. <a-row :gutter="10">
  9. <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col>
  10. <a-popconfirm title="是否删除该广告?" @confirm="delOneRole(record.id)">
  11. <a-col><a-button type="primary" size="small" danger>删除</a-button></a-col>
  12. </a-popconfirm>
  13. </a-row>
  14. </template>
  15. </a-c-table>
  16. <list-add :edit_record="edit_record" @successAdd="successAdd" @closeAdd="closeAdd"></list-add>
  17. </template>
  18. <script lang="ts" setup>
  19. import { ref, onMounted, watch, computed } from 'vue';
  20. import ListSearch from '@/views/advertisement/putin/search/index.vue';
  21. import ListAdd from '@/views/advertisement/putin/add/add.vue';
  22. import { GetAdvertscheduleList, PostAdvertscheduleDel } from '@/apis/models';
  23. import { useCommon } from '@/hooks/useCommon';
  24. import { cols } from '@/views/advertisement/putin/columns';
  25. import { message } from 'ant-design-vue';
  26. let { store, commomParams, showModal, showOtherModal1 } = useCommon();
  27. let loading = ref<Boolean>(true);
  28. onMounted(() => {
  29. commomParams.value.search.hide_ad = 0;
  30. getData(commomParams.value.search);
  31. })
  32. const searchData = (data : object) => {
  33. commomParams.value.search = data
  34. getData();
  35. }
  36. const clearData = (data : object) => {
  37. if (data) {
  38. commomParams.value.search = data
  39. } else {
  40. commomParams.value.search = {
  41. page: 1,
  42. pagesize: 10,
  43. sort: 'id',
  44. sortby: 'asc',
  45. keyword: '',
  46. hide_ad: 0
  47. }
  48. }
  49. getData();
  50. }
  51. const getPage = (data : object) => {
  52. commomParams.value.search.page = data.current;
  53. commomParams.value.search.pagesize = data.pageSize;
  54. getData();
  55. }
  56. const getData = async () => {
  57. try {
  58. loading.value = true;
  59. let res = await GetAdvertscheduleList(commomParams.value.search);
  60. loading.value = false;
  61. commomParams.value.table.data = res.data.advertschedules;
  62. commomParams.value.table.columns = cols;
  63. commomParams.value.page = {
  64. current: commomParams.value.search.page,
  65. pageSize: commomParams.value.search.pagesize,
  66. total: res.data.total,
  67. pageSizeOptions: ['10', '20', '30', '40'],
  68. hideOnSinglePage: false,
  69. showSizeChanger: true
  70. };
  71. } catch {
  72. loading.value = false;
  73. }
  74. }
  75. // 编辑
  76. let edit_record = ref<Object>(null)
  77. const edit = (record : object) => {
  78. edit_record.value = record;
  79. showModal()
  80. }
  81. const successAdd = () => {
  82. getData();
  83. }
  84. const closeAdd = () => {
  85. edit_record.value = null;
  86. }
  87. // 删除
  88. const delOneRole = (id : number) => {
  89. commomParams.value.delRecord = { id: id };
  90. PostAdvertscheduleDel(commomParams.value.delRecord).then(res => {
  91. message.success('删除成功');
  92. getData();
  93. })
  94. }
  95. </script>
  96. <style lang="less" scoped>
  97. </style>