index.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <template>
  2. <div>
  3. <basicLayout
  4. ref="basicLayout"
  5. :oldFormPath="{
  6. add:'HManagement/clueManage/m_activity/modules',
  7. edit:'HManagement/clueManage/m_activity/modules',
  8. }"
  9. tableName="activitylist"
  10. idName="sat_campaignid"
  11. :apiId="{query:20221101095102,del:''}"
  12. :options="options"
  13. :detailPath="{path:'/marketing_activityDetails',param:{tabIndex:tabIndex}}"
  14. :specialKey="[{key:'leader',value:'name'}]"
  15. :autoQuery="false"
  16. >
  17. <template #custom >
  18. <div class="mt-10">
  19. <p class="search__label">范围:</p>
  20. <el-select
  21. class="inline-24"
  22. size="small"
  23. v-model="area"
  24. placeholder="请选择范围"
  25. @change="areaChange"
  26. >
  27. <el-option
  28. v-for="item in areaList2"
  29. :key="item.index"
  30. :label="item.templetname"
  31. :value="item.templetid"
  32. ></el-option>
  33. </el-select>
  34. </div>
  35. <div class="mt-10">
  36. <p class="search__label">活动类型:</p>
  37. <el-select v-model="search.type" class="inline-24" size="small" placeholder="请选择活动类型" @change="campaigntypeChange" clearable>
  38. <el-option
  39. v-for="item in campaigntypeList"
  40. :key="item.index"
  41. :label="item.value"
  42. :value="item.value">
  43. </el-option>
  44. </el-select>
  45. </div>
  46. <div class="mt-10">
  47. <p class="search__label">活动状态:</p>
  48. <el-select v-model="search.status" class="inline-24" size="small" placeholder="请选择活动状态" @change="statusChange" clearable>
  49. <el-option label="新建" value="新建">
  50. </el-option>
  51. <el-option label="发布" value="发布">
  52. </el-option>
  53. <el-option label="结束" value="结束">
  54. </el-option>
  55. </el-select>
  56. </div>
  57. </template>
  58. <div slot="titleRight" style="display:flex;margin-left:10px">
  59. </div>
  60. <template v-slot:tbList="scope">
  61. <div v-if="scope.data.column.columnname == 'status'">
  62. <span style="color:#000000" v-if="scope.data.column.data[[scope.data.column.columnname]] == '新建'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  63. <span style="color:#cccccc" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '结束'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  64. <span style="color: rgb(82, 196, 26)" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '发布'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  65. </div>
  66. <div v-else-if="scope.data.column.columnname == 'director'">
  67. <span >{{scope.data.column.data.director || '--'}}</span>
  68. </div>
  69. <div v-else-if="scope.data.column.columnname == 'leader'">
  70. <span >{{scope.data.column.data.leader ? scope.data.column.data.leader[0].name : '--'}}</span>
  71. </div>
  72. <div v-else-if="scope.data.column.columnname == 'allocationstatus'">
  73. <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '待分配'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  74. <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已分配'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  75. </div>
  76. <div v-else>
  77. {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
  78. </div>
  79. </template>
  80. </basicLayout>
  81. </div>
  82. </template>
  83. <script>
  84. export default {
  85. components:{
  86. },
  87. data () {
  88. return {
  89. options:[],
  90. search:{},
  91. campaigntypeList:'',
  92. areaList2:[
  93. ],
  94. area:'',
  95. tabIndex:"1",
  96. }
  97. },
  98. provide () {
  99. return {
  100. campaigntypeList: () => this.campaigntypeList
  101. }
  102. },
  103. methods:{
  104. listData(id) {
  105. this.$refs.basicLayout.param.content.pageNumber = 1
  106. this.$refs.basicLayout.param.content.type = id
  107. this.$refs.basicLayout.param.content.isAll = 0
  108. this.$refs.basicLayout.listData()
  109. },
  110. list (param) {
  111. param.content.isAll = 0
  112. param.content.nocache = true
  113. param.content.type = this.area
  114. },
  115. async campaigntype () {
  116. const res = await this.$api.requested({
  117. "id": 20220901092501,
  118. "content": {
  119. "typename":'campaigntype'
  120. }
  121. })
  122. this.campaigntypeList = res.data
  123. },
  124. campaigntypeChange () {
  125. this.$refs.basicLayout.param.content.pageNumber = 1
  126. this.$refs.basicLayout.param.content.where.type = this.search.type
  127. this.$refs.basicLayout.listData()
  128. },
  129. statusChange () {
  130. this.$refs.basicLayout.param.content.pageNumber = 1
  131. this.$refs.basicLayout.param.content.where.status = this.search.status
  132. this.$refs.basicLayout.listData()
  133. },
  134. areaChange(){
  135. this.tabIndex = this.area
  136. this.$refs.basicLayout.param.content.pageNumber=1;
  137. this.$refs.basicLayout.param.content.type = this.area;
  138. this.$refs.basicLayout.listData()
  139. },
  140. async querytemplet () {
  141. const res = await this.$api.requested({
  142. "classname": "sysmanage.develop.querytemplet.querytemplet",
  143. "method":"query",
  144. "content": {}
  145. })
  146. this.areaList2 = res.data
  147. for (let i=0;i<this.areaList2.length;i++){
  148. if (res.data[i].templetname == '站点全部'){
  149. this.area = res.data[i].templetid
  150. break
  151. }else {
  152. this.area = res.data[0].templetid
  153. }
  154. }
  155. this.listData(this.area)
  156. }
  157. },
  158. created () {
  159. this.campaigntype()
  160. this.querytemplet()
  161. }
  162. }
  163. </script>
  164. <style>
  165. </style>