AdListPage.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <el-form :inline="true">
  3. <el-form-item label="计划名称">
  4. <el-input v-model="search" placeholder="输入计划关键词" clearable />
  5. </el-form-item>
  6. <el-form-item>
  7. <el-button type="primary" @click="onSubmit">搜索</el-button>
  8. <el-button type="primary" link @click="creatEditPlan">创建计划</el-button>
  9. </el-form-item>
  10. </el-form>
  11. <el-table :data="tableData" stripe style="width: 100%">
  12. <el-table-column prop="name" label="名称" />
  13. <el-table-column prop="start_date" label="生效日期" />
  14. <el-table-column prop="end_date" label="结束日期" />
  15. <el-table-column label="操作">
  16. <template #default="scope">
  17. <el-popconfirm title="确定删除该广告吗?">
  18. <template #reference>
  19. <el-button link type="primary" size="small">删除</el-button>
  20. </template>
  21. </el-popconfirm>
  22. <el-button link type="primary" size="small" @click="() => creatEditPlan(scope.row)">
  23. 修改
  24. </el-button>
  25. </template>
  26. </el-table-column>
  27. </el-table>
  28. <br />
  29. <el-pagination
  30. background
  31. layout="prev, pager, next"
  32. :total="tableData.length"
  33. @current-change="page"
  34. />
  35. <el-dialog v-model="dialogVisible" title="计划">
  36. <el-form :model="form" label-width="auto" style="max-width: 600px">
  37. <el-form-item label="计划名称">
  38. <el-input v-model="form.name" />
  39. </el-form-item>
  40. <el-form-item label="计划周期">
  41. <el-date-picker
  42. v-model="form.dates"
  43. type="daterange"
  44. format="YYYY-MM-DD"
  45. value-format="YYYY-MM-DD"
  46. range-separator="到"
  47. start-placeholder="开始时间"
  48. end-placeholder="结束时间"
  49. />
  50. </el-form-item>
  51. <el-form-item>
  52. <el-button type="primary" @click="dialogVisible = false"> 确 定 </el-button>
  53. <el-button type="primary" @click="dialogVisible = false"> 取 消 </el-button>
  54. </el-form-item>
  55. </el-form>
  56. </el-dialog>
  57. </template>
  58. <script setup lang="ts">
  59. import type { AdList, AdListItem } from '@/types/AdListPage'
  60. import { ref } from 'vue'
  61. const search = ref('')
  62. const dialogVisible = ref(false)
  63. const form = ref({
  64. name: '',
  65. dates: ['', ''],
  66. })
  67. const tableData: AdList = [
  68. {
  69. start_date: '2016-05-03',
  70. end_date: '2016-05-06',
  71. name: '咸阳国际机场广告',
  72. },
  73. ]
  74. const onSubmit = () => {
  75. console.log('submit!')
  76. }
  77. const page = (val: number) => {
  78. console.log(val)
  79. }
  80. const creatEditPlan = (data: AdListItem) => {
  81. if (data != undefined) {
  82. form.value = {
  83. name: data.name,
  84. dates: [data.start_date, data.end_date],
  85. }
  86. }
  87. dialogVisible.value = !dialogVisible.value
  88. }
  89. </script>
  90. <style></style>