BusinessData.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <!-- 业务数据 -->
  2. <template>
  3. <div id="data">
  4. <el-button type="primary" @click="addDataClick">录入业务数据</el-button>
  5. <el-button type="warning" @click="batchDelete">批量删除</el-button>
  6. <div class="operation">
  7. <el-form :model="filterForm" :inline="true">
  8. <el-form-item label="地名地址库名称:">
  9. <el-input v-model="filterForm.name" placeholder="请输入地名地址库名称"></el-input>
  10. </el-form-item>
  11. <el-form-item>
  12. <el-button type="primary" @click="search">搜索</el-button>
  13. </el-form-item>
  14. </el-form>
  15. </div>
  16. <div class="list">
  17. <el-table ref="dataTable" v-loading="loading" element-loading-text="正在加载,请稍后..." :data="tableData"
  18. :border="true" :stripe="true" :height="440" style="width: 100%;margin-bottom: 15px;"
  19. @selection-change="handleTableSelect">
  20. <el-table-column type="selection" width="55"/>
  21. <el-table-column prop="id" label="ID" width="100" :show-overflow-tooltip="true">
  22. <template #default="scope">
  23. <span style="cursor: pointer" @click="$util.clipboard.copyText(scope.row.id)"> {{ scope.row.id }} </span>
  24. </template>
  25. </el-table-column>
  26. <el-table-column prop="title" label="标题" width="200"/>
  27. <el-table-column prop="content" label="描述" width="250"/>
  28. <el-table-column prop="menuNameTwo" label="类别" width="80"/>
  29. <el-table-column prop="importType" label="导入类型" width="150"/>
  30. <el-table-column prop="updator" label="修改人"/>
  31. <el-table-column prop="updateDate" label="修改时间" width="160">
  32. <template #default="scope">
  33. {{ $util.datetime.format(scope.row.updateDate) }}
  34. </template>
  35. </el-table-column>
  36. <el-table-column prop="creator" label="创建人"/>
  37. <el-table-column prop="createDate" label="创建时间" width="160">
  38. <template #default="scope">
  39. {{ $util.datetime.format(scope.row.createDate) }}
  40. </template>
  41. </el-table-column>
  42. <el-table-column prop="operation" label="操作" width="150" fixed="right">
  43. <template #default="scope">
  44. <el-tooltip class="box-item" effect="dark" content="查看详情" placement="top-start">
  45. <el-button type="default" @click="viewData(scope.row)" circle>
  46. <el-icon>
  47. <ElIconView/>
  48. </el-icon>
  49. </el-button>
  50. </el-tooltip>
  51. <el-tooltip class="box-item" effect="dark" content="编辑" placement="top-start">
  52. <el-button type="primary" @click="editData(scope.row)" circle>
  53. <el-icon>
  54. <ElIconEdit/>
  55. </el-icon>
  56. </el-button>
  57. </el-tooltip>
  58. <el-tooltip class="box-item" effect="dark" content="删除" placement="top-start">
  59. <el-button type="danger" @click="deleteData(scope.row)" circle>
  60. <el-icon>
  61. <ElIconDelete/>
  62. </el-icon>
  63. </el-button>
  64. </el-tooltip>
  65. </template>
  66. </el-table-column>
  67. </el-table>
  68. <el-pagination style="float:right" background layout="sizes, prev, pager, next, jumper, total"
  69. v-model:current-page="pageInfo.page" v-model:page-size="pageInfo.pageSize"
  70. v-model:total="pageInfo.total"/>
  71. </div>
  72. </div>
  73. <BusinessDataDetail v-if="isDetailShow" :is-show="isDetailShow" :item="currRow" :close="handleDetailShow"></BusinessDataDetail>
  74. </template>
  75. <script>
  76. import api from '@/api/data/BusinessData'
  77. import BusinessDataDetail from "@/components/dataManage/dataDetail/BusinessDataDetail";
  78. import menuApi from "@/api/data/MenuData";
  79. export default {
  80. data() {
  81. return {
  82. loading: false,
  83. filterForm: {},
  84. tableData: [],
  85. currRow: {},
  86. selectedRows: [],
  87. pageInfo: {
  88. page: 1,
  89. pageSize: 10,
  90. total: 0,
  91. },
  92. isDetailShow: false,
  93. }
  94. },
  95. components: {
  96. BusinessDataDetail
  97. },
  98. created() {
  99. },
  100. mounted() {
  101. this.getData();
  102. },
  103. watch: {
  104. "pageInfo.page": function (val) {
  105. if (val > 0) {
  106. this.getData();
  107. }
  108. },
  109. "pageInfo.pageSize": function () {
  110. let app = this;
  111. this.pageInfo.page = -1;
  112. setTimeout(function () {
  113. app.pageInfo.page = 1;
  114. }, 50)
  115. },
  116. },
  117. methods: {
  118. handleLoading(flag) {
  119. let app = this;
  120. if (flag) {
  121. app.loading = true;
  122. } else {
  123. setTimeout(() => {
  124. app.loading = false;
  125. }, 500);
  126. }
  127. },
  128. getData() {
  129. let app = this;
  130. let params = {
  131. page: app.pageInfo.page,
  132. pageSize: app.pageInfo.pageSize
  133. }
  134. app.handleLoading(true)
  135. api.getData(params).then(res => {
  136. if (res.code === 200) {
  137. app.pageInfo.total = res.total;
  138. app.tableData = res.content
  139. }
  140. app.handleLoading(false)
  141. }).catch(err => {
  142. app.handleLoading(false)
  143. })
  144. },
  145. search() {
  146. },
  147. handleTableSelect(val) {
  148. this.selectedRows = val;
  149. },
  150. handleDetailShow(flag) {
  151. if (flag) {
  152. this.getData()
  153. }
  154. this.isDetailShow = false
  155. },
  156. // 录入数据
  157. addDataClick() {
  158. this.currRow = {};
  159. this.isDetailShow = true;
  160. },
  161. // 批量删除数据
  162. batchDelete() {
  163. if (!this.selectedRows) {
  164. return;
  165. }
  166. let ids = this.selectedRows.map(i=> {return i.id}).join(',');
  167. },
  168. // 查看详情
  169. viewData(item) {
  170. let app = this;
  171. if (item.menuId) {
  172. item.menuId = Number(item.menuId);
  173. }
  174. app.currRow = JSON.parse(JSON.stringify(item))
  175. app.currRow.geometryStr = JSON.stringify(item.geometry)
  176. delete app.currRow.geometry
  177. this.currRow.isDataView = true;
  178. app.isDetailShow = true
  179. },
  180. // 编辑数据
  181. editData(item) {
  182. let app = this;
  183. if (item.menuId) {
  184. item.menuId = Number(item.menuId);
  185. }
  186. app.currRow = JSON.parse(JSON.stringify(item))
  187. app.currRow.geometryStr = JSON.stringify(item.geometry)
  188. delete app.currRow.geometry
  189. this.currRow.isEdit = true;
  190. app.isDetailShow = true
  191. },
  192. // 删除数据
  193. deleteData(item) {
  194. let app = this;
  195. let params = {
  196. baseDataId: item.id
  197. }
  198. app.$msgbox.confirm('确认要删除此条数据吗?').then(()=>{
  199. api.deleteData(params).then(res=>{
  200. if (res.code === 200) {
  201. app.getData();
  202. app.$message({message: '删除成功', type: 'success'});
  203. }
  204. })
  205. })
  206. },
  207. }
  208. }
  209. </script>
  210. <style>
  211. #data .operation {
  212. float: right;
  213. }
  214. </style>