list.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <template>
  2. <div class="app-container">
  3. <!-- 顶部操作区域 -->
  4. <div class="filter-container">
  5. <manage-tab @change="handleChange" />
  6. <div v-if="listQuery.type === 5">
  7. <el-tabs v-model="listQuery.type2">
  8. <el-tab-pane label="企业话术" name="1" />
  9. <el-tab-pane label="个人话术" name="2" />
  10. </el-tabs>
  11. </div>
  12. <div class="filter-control">
  13. <span>标题:</span>
  14. <el-input
  15. v-model="listQuery.name"
  16. placeholder="标题"
  17. clearable
  18. @keyup.enter.native="handleChange(listQuery.type)"
  19. @clear="handleChange(listQuery.type)"
  20. />
  21. </div>
  22. <div v-if="listQuery.type !== 5" class="filter-control">
  23. <span>用户阶段:</span>
  24. <el-select v-model="listQuery.userClass" placeholder="用户阶段" @change="handleChange(listQuery.type)">
  25. <el-option
  26. v-for="(i, index) in userClass"
  27. :key="index"
  28. :label="i.value"
  29. :value="i.id"
  30. />
  31. </el-select>
  32. </div>
  33. <div v-if="listQuery.type !== 5" class="filter-control">
  34. <span>标签:</span>
  35. <el-select v-model="listQuery.userType" placeholder="标签" @change="handleChange(listQuery.type)">
  36. <el-option
  37. v-for="(i, index) in userType"
  38. :key="index"
  39. :label="i.value"
  40. :value="i.id"
  41. />
  42. </el-select>
  43. </div>
  44. <div v-if="listQuery.type === 5" class="filter-control">
  45. <span>上传者:</span>
  46. <el-select v-model="listQuery.userClass" placeholder="上传者" @change="handleChange(listQuery.type)">
  47. <el-option
  48. v-for="(i, index) in userClass"
  49. :key="index"
  50. :label="i.value"
  51. :value="i.id"
  52. />
  53. </el-select>
  54. </div>
  55. <div class="filter-control">
  56. <el-button type="primary" @click="handleChange(listQuery.type)">查询</el-button>
  57. <el-button v-if="listQuery.type !== 5" type="primary" @click="$router.push('/database/store-list/data-manage/edit?id=' + id + '&t=' + listQuery.type)">添加</el-button>
  58. <el-button v-if="listQuery.type !== 5" type="primary" @click="exportDialogVisible = true">删除</el-button>
  59. </div>
  60. </div>
  61. <el-table
  62. ref="table"
  63. v-loading="isLoading"
  64. :data="list"
  65. border
  66. >
  67. <!--<el-table-column type="selection" width="55" align="center" />-->
  68. <el-table-column
  69. label="ID"
  70. prop="id"
  71. align="center"
  72. width="80"
  73. />
  74. <el-table-column prop="serviceLevel" label="标题" align="center" />
  75. <el-table-column prop="userClass" label="用户阶段" align="center">
  76. <template slot-scope="scope">
  77. <div>
  78. {{ scope.row.userClass | userStateFilter(userClass) }}
  79. </div>
  80. </template>
  81. </el-table-column>
  82. <el-table-column prop="userType" label="标签" align="center">
  83. <template slot-scope="scope">
  84. <div>
  85. {{ scope.row.userType | userTypeFilter(userType) }}
  86. </div>
  87. </template>
  88. </el-table-column>
  89. <el-table-column prop="contractStartDate" label="浏览量" align="center" />
  90. <el-table-column prop="contractStartDate" label="添加时间" align="center" />
  91. <el-table-column prop="contractStartDate" label="创建人" align="center" />
  92. <el-table-column label="操作" align="center" width="250">
  93. <template slot-scope="{ row }">
  94. <div class="labelCenter">
  95. <el-button
  96. v-if="listQuery.type2 === '1'"
  97. type="primary"
  98. size="mini"
  99. @click="$router.push('/database/store-list/data-manage/edit?id=' + id + '&t=' + listQuery.type + '&tId=' + row.id)"
  100. >编辑</el-button>
  101. <el-button
  102. v-if="listQuery.type2 === '1'"
  103. type="primary"
  104. size="mini"
  105. @click="
  106. handleDelete(row.id)
  107. "
  108. >删除</el-button>
  109. <el-button
  110. v-if="listQuery.type === 5 && listQuery.type2 === '2'"
  111. type="primary"
  112. size="mini"
  113. @click="
  114. $router.push('/database/store-list/data-manage/edit?id=' + row.id)
  115. "
  116. >查看</el-button>
  117. </div>
  118. </template>
  119. </el-table-column>
  120. </el-table>
  121. <!-- 页码 -->
  122. <pagination
  123. :total="total"
  124. :page.sync="listQuery.pageNum"
  125. :limit.sync="listQuery.pageSize"
  126. @pagination="handleChange(listQuery.type)"
  127. />
  128. <el-dialog title="选择商品" :visible.sync="exportDialogVisible" width="70%">
  129. <data-list-selector
  130. v-if="exportDialogVisible"
  131. @cancel="onSelectorCancel"
  132. @confirm="onSelectorConfirm"
  133. />
  134. </el-dialog>
  135. </div>
  136. </template>
  137. <script>
  138. import ManageTab from '../../components/dataManageTab.vue'
  139. import DataListSelector from '../../components/dialogTable.vue'
  140. import databaseMixin from '../../mixins/index'
  141. export default {
  142. components: {
  143. ManageTab,
  144. DataListSelector
  145. },
  146. mixins: [databaseMixin],
  147. data() {
  148. return {
  149. listQuery: {
  150. type: '',
  151. pageNum: 1,
  152. pageSize: 10,
  153. userType: 0,
  154. userClass: 0,
  155. type2: '1'
  156. },
  157. list: [
  158. {
  159. id: 1,
  160. userClass: 1,
  161. userType: 1
  162. }
  163. ],
  164. total: 0,
  165. isLoading: false,
  166. exportDialogVisible: false
  167. }
  168. },
  169. methods: {
  170. getInfo() {
  171. this.isLoading = false
  172. },
  173. handleChange($event) {
  174. if (this.id && $event) {
  175. this.listQuery.type = Number($event)
  176. this.listQuery.type2 = '1'
  177. this.isLoading = true
  178. this.getInfo()
  179. }
  180. },
  181. handleDelete(val) {},
  182. onSelectorCancel() {},
  183. onSelectorConfirm() {}
  184. }
  185. }
  186. </script>
  187. <style lang="scss" scoped>
  188. ::v-deep .el-tabs__nav-wrap::after {
  189. background: none;
  190. }
  191. </style>