您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

scopecitycost.vue 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <template>
  2. <el-card shadow="never" class="aui-card--fill">
  3. <div class="mod-demo__scopecitycost}">
  4. <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
  5. <el-form-item>
  6. <!-- <el-input v-model="dataForm.advertiserId" placeholder="账户id" clearable></el-input>-->
  7. <el-select filterable v-model="dataForm.advertiserId" clearable placeholder="请选择账户">
  8. <el-option
  9. v-for="item in advertisers"
  10. :key="item.value"
  11. :label="item.label"
  12. :value="item.value">
  13. </el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item>
  17. <el-select v-model="dataForm.city" clearable placeholder="请选择城市">
  18. <el-option
  19. v-for="item in citys"
  20. :key="item.value"
  21. :label="item.label"
  22. :value="item.value">
  23. </el-option>
  24. </el-select>
  25. </el-form-item>
  26. <el-form-item>
  27. <el-date-picker
  28. v-model="dataForm.date"
  29. type="date"
  30. placeholder="选择统计日期"
  31. value-format="yyyy-MM-dd HH:mm:ss">
  32. </el-date-picker>
  33. </el-form-item>
  34. <el-form-item>
  35. <el-button @click="getDataList()">{{ $t('query') }}</el-button>
  36. </el-form-item>
  37. <!-- <el-form-item>-->
  38. <!-- <el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button>-->
  39. <!-- </el-form-item>-->
  40. <el-form-item>
  41. <el-button v-if="$hasPermission('sys:scopecitycost:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
  42. </el-form-item>
  43. <!-- <el-form-item>-->
  44. <!-- <el-button v-if="$hasPermission('sys:scopecitycost:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>-->
  45. <!-- </el-form-item>-->
  46. </el-form>
  47. <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
  48. <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
  49. <el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column>
  50. <el-table-column prop="advertiserId" label="账户ID" header-align="center" align="center"></el-table-column>
  51. <el-table-column prop="advertiserName" label="账户名称" header-align="center" align="center"></el-table-column>
  52. <el-table-column prop="province" label="省份" header-align="center" align="center"></el-table-column>
  53. <el-table-column prop="city" label="城市" header-align="center" align="center"></el-table-column>
  54. <el-table-column prop="avgCost" label="平均单价" header-align="center" align="center"></el-table-column>
  55. <el-table-column prop="manuAvgCost" label="调整价" header-align="center" align="center"></el-table-column>
  56. <el-table-column prop="date" label="统计日期" header-align="center" align="center" sortable :formatter="convertDate"></el-table-column>
  57. <!-- <el-table-column prop="status" label="状态(开1、关0)" header-align="center" align="center"></el-table-column>-->
  58. <el-table-column prop="createTime" label="创建时间" header-align="center" align="center"></el-table-column>
  59. <el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
  60. <template slot-scope="scope">
  61. <el-button v-if="$hasPermission('sys:scopecitycost:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
  62. <!-- <el-button v-if="$hasPermission('sys:scopecitycost:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>-->
  63. </template>
  64. </el-table-column>
  65. </el-table>
  66. <el-pagination
  67. :current-page="page"
  68. :page-sizes="[10, 20, 50, 100]"
  69. :page-size="limit"
  70. :total="total"
  71. layout="total, sizes, prev, pager, next, jumper"
  72. @size-change="pageSizeChangeHandle"
  73. @current-change="pageCurrentChangeHandle">
  74. </el-pagination>
  75. <!-- 弹窗, 新增 / 修改 -->
  76. <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
  77. </div>
  78. </el-card>
  79. </template>
  80. <script>
  81. import mixinViewModule from '@/mixins/view-module'
  82. import AddOrUpdate from './scopecitycost-add-or-update'
  83. export default {
  84. mixins: [mixinViewModule],
  85. data () {
  86. return {
  87. provinces:[],
  88. citys:[],
  89. advertisers:[],
  90. mixinViewModuleOptions: {
  91. getDataListURL: '/sys/scopecitycost/page',
  92. getDataListIsPage: true,
  93. exportURL: '/sys/scopecitycost/export',
  94. deleteURL: '/sys/scopecitycost',
  95. deleteIsBatch: true
  96. },
  97. dataForm: {
  98. id: '',
  99. date:'',
  100. advertiserId:'',
  101. city:''
  102. }
  103. }
  104. },
  105. components: {
  106. AddOrUpdate
  107. },
  108. created () {
  109. if (this.mixinViewModuleOptions.createdIsNeed) {
  110. this.query()
  111. this.getCityOptions();
  112. this.getAdvertisersOptions();
  113. }
  114. },
  115. methods: {
  116. convertDate(row,column){
  117. if (row.date==null || row.date==""){
  118. return null;
  119. }
  120. return row.date.substring(0,10)
  121. },
  122. //初始化下拉框中的选项
  123. async getCityOptions() {
  124. this.$http.get(`/sys/dict/data/list?dataType=landing_page_city`).then(({ data: res }) => {
  125. if (res.code !== 0) {
  126. return this.$message.error(res.msg)
  127. }
  128. this.citys=[];
  129. if (res.data!=null){
  130. res.data.forEach(element => {
  131. this.citys.push({label:element.dictLabel,value:element.dictValue})
  132. })
  133. }
  134. }).catch(() => {})
  135. },
  136. //初始化广告主账户下拉框中的选项
  137. async getAdvertisersOptions() {
  138. this.$http.get(`/sys/rdadvertiser/list`).then(({data: res}) => {
  139. if (res.code !== 0) {
  140. return this.$message.error(res.msg)
  141. }
  142. this.advertisers = [];
  143. if (res.data != null) {
  144. res.data.forEach(element => {
  145. this.advertisers.push({label: element.advertiserName, value: element.advertiserId})
  146. })
  147. }
  148. }).catch(() => {
  149. })
  150. }
  151. }
  152. }
  153. </script>