EnterpriseHome.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <template>
  2. <common-home
  3. :pageSize="pageParams.size"
  4. :total="total"
  5. :searchKeys="searchKeys"
  6. :searchKey="pageParams.key"
  7. :searchKeyword="pageParams.keyword"
  8. @current-change="handleCurrentChange"
  9. @refresh-data="handleRefreshData"
  10. @search="handleSearchAction">
  11. <div slot="screen-type">
  12. <!-- 认证状态 -->
  13. <label>认证状态</label>
  14. <el-select v-model="pageParams.validCode" clearable placeholder="不限" @change="handleRefreshData">
  15. <el-option
  16. v-for="item in validCodeOptions"
  17. :key="item.value"
  18. :label="item.label"
  19. :value="item.value">
  20. </el-option>
  21. </el-select>
  22. <!-- 注册来源 -->
  23. <!--<label>注册来源</label>
  24. <el-select v-model="pageParams.fromApp" clearable placeholder="不限" @change="handleRefreshData">
  25. <el-option
  26. v-for="item in fromAppOptions"
  27. :key="item.value"
  28. :label="item.label"
  29. :value="item.value">
  30. </el-option>
  31. </el-select>-->
  32. </div>
  33. <el-table
  34. :data="tableData"
  35. stripe
  36. style="width: 100%">
  37. <el-table-column
  38. label="操作"
  39. width="120">
  40. <template slot-scope="scope">
  41. <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
  42. </template>
  43. </el-table-column>
  44. <el-table-column
  45. prop="spaceName"
  46. label="公司名称"
  47. width="200">
  48. </el-table-column>
  49. <el-table-column
  50. prop="businessCode"
  51. label="营业执照号"
  52. width="180">
  53. </el-table-column>
  54. <el-table-column
  55. prop="validCode"
  56. label="认证状态"
  57. width="100">
  58. <template slot-scope="scope">
  59. <span v-if="scope.row.validCode === 0">未认证</span>
  60. <span v-if="scope.row.validCode === 1" style="color: #E68615;">待认证</span>
  61. <span v-if="scope.row.validCode === 2">已认证</span>
  62. <span v-if="scope.row.validCode === 3">未通过</span>
  63. </template>
  64. </el-table-column>
  65. <el-table-column
  66. prop="admin"
  67. label="管理员"
  68. width="100">
  69. <template slot-scope="scope" v-if="scope.row.admin && scope.row.admin.userUU">
  70. <span v-text="scope.row.admin.vipName"></span>
  71. </template>
  72. </el-table-column>
  73. <el-table-column
  74. prop="registerDate"
  75. label="注册时间"
  76. :formatter="formatDate">
  77. </el-table-column>
  78. </el-table>
  79. </common-home>
  80. </template>
  81. <script>
  82. import _ from 'lodash'
  83. import axios from '@/assets/js/axios'
  84. import { formatDate } from '@/assets/js/utils'
  85. import * as types from '@/store/mutation-types'
  86. import {ValidCode} from '@/Constant'
  87. import CommonHome from '../common/CommonHome'
  88. const searchKeys = [
  89. {
  90. label: '企业名称',
  91. value: 'spaceName'
  92. },
  93. {
  94. label: '营业执照号',
  95. value: 'businessCode'
  96. },
  97. {
  98. label: 'UU号',
  99. value: 'spaceUU'
  100. }
  101. ]
  102. export default {
  103. name: 'enterprise-home',
  104. components: {
  105. CommonHome
  106. },
  107. data () {
  108. return {
  109. pageParams: {
  110. page: 1,
  111. size: 8,
  112. validCode: null,
  113. fromApp: null,
  114. key: 'spaceName',
  115. keyword: null
  116. },
  117. pageContent: [],
  118. total: 0,
  119. validCodeOptions: ValidCode,
  120. searchKeys: searchKeys
  121. }
  122. },
  123. created () {
  124. this.fetchData()
  125. },
  126. computed: {
  127. tableData () {
  128. return this.pageContent
  129. },
  130. fromAppOptions () {
  131. return this.$store.getters.fromAppOptions
  132. }
  133. },
  134. watch: {
  135. '$route': 'fetchData'
  136. },
  137. methods: {
  138. fetchData () {
  139. const params = _.defaultsDeep({}, this.pageParams)
  140. params.page = params.page - 1
  141. const success = page => {
  142. this.pageContent = page.content || []
  143. this.total = page.totalElements
  144. }
  145. const error = response => {
  146. console.log(response)
  147. this.$message.error(response)
  148. }
  149. axios.get('/api/user/space//showSpaceByPagination', { params }).then(success).catch(
  150. error)
  151. },
  152. handleCurrentChange (currentPage) {
  153. this.pageParams.page = currentPage
  154. this.fetchData()
  155. },
  156. handleRefreshData () {
  157. console.log(this.pageParams)
  158. this.fetchData()
  159. },
  160. handleSearchAction (key, keyword) {
  161. console.log(key, keyword)
  162. this.pageParams.key = key
  163. this.pageParams.keyword = keyword
  164. this.fetchData()
  165. },
  166. handleClick (row) {
  167. this.$store.commit(types.CHOOSE_ENTERPRISE, row)
  168. const routeLocation = {name: 'EnterpriseBasicInfo', params: row}
  169. this.$router.push(routeLocation)
  170. },
  171. formatDate: formatDate
  172. }
  173. }
  174. </script>
  175. <style scoped>
  176. </style>