index.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <template>
  2. <div class="main">
  3. <div class="search" v-if="!ownerStatus">
  4. <el-input v-model="mixins_query.buildingName" clearable placeholder="请输入楼栋名称" class="search-input"></el-input>
  5. <el-select v-model="mixins_query.communityId" clearable placeholder="请选择社区名称">
  6. <el-option v-for="(item, index) in communityList" :label="item.label" :value="item.id" :key="index"></el-option>
  7. </el-select>
  8. <el-button type="primary" @click="mixins_search" class="search-btn" icon="el-icon-search">查询</el-button>
  9. <div class="search-icon">
  10. <!-- <el-dropdown type="primary" @command="addCommand">
  11. <span class="iconfont">&#xe641;</span>
  12. <el-dropdown-menu slot="dropdown" hide-on-click="false" class="device-search-dropdown">
  13. <el-dropdown-item command="add">单个添加</el-dropdown-item>
  14. <el-dropdown-item command="batchAdd"
  15. >批量添加
  16. </el-dropdown-item>
  17. </el-dropdown-menu>
  18. </el-dropdown> -->
  19. <el-tooltip class="item" effect="light" placement="bottom" content="新增">
  20. <i class="iconfont" @click="addOrEdit('add')">&#xe641;</i>
  21. </el-tooltip>
  22. <el-tooltip class="item" effect="light" placement="bottom" content="导出">
  23. <i class="zoniot_font zoniot-icon-daochu2" @click="exportExcel()"></i>
  24. </el-tooltip>
  25. </div>
  26. </div>
  27. <div class="dictionarys-wrap" v-if="!ownerStatus">
  28. <zz-table
  29. :cols="cols"
  30. :settings="{ showIndex: true, stripe: true }"
  31. :loading="mixins_onQuery"
  32. :data="mixins_list"
  33. :pageset="mixins_pageset"
  34. @page-change="pageChange"
  35. >
  36. <template slot-scope="scope" slot="opt">
  37. <div class="opt">
  38. <el-tooltip effect="light" placement="bottom" content="编辑">
  39. <i class="zoniot_font zoniot-icon-bianji" @click="addOrEdit('edit', scope.row)"></i>
  40. </el-tooltip>
  41. <el-tooltip effect="light" placement="bottom" content="删除">
  42. <i class="zoniot_font zoniot-icon-shanchu redText" @click="deleteOne(scope.row.id)"></i>
  43. </el-tooltip>
  44. </div>
  45. </template>
  46. </zz-table>
  47. </div>
  48. <addplan v-else :params="activeData" @clerOwnerStatus="clerOwnerStatus" :isAdd="isAdd"></addplan>
  49. </div>
  50. </template>
  51. <script>
  52. import list from '@utils/list.js';
  53. import addplan from './pageJump/addoredit.vue';
  54. export default {
  55. mixins: [list],
  56. components: { addplan },
  57. name:'buildingManagement',
  58. data() {
  59. return {
  60. ownerStatus: '',
  61. activeData: {},
  62. isAdd: true,
  63. communityList: [], //社区名称下拉列表
  64. query: {
  65. buildingName: '', //楼栋名称
  66. communityName: '' //社区名称
  67. },
  68. cols: [
  69. {
  70. label: '所属社区',
  71. prop: 'communityName'
  72. },
  73. {
  74. label: '楼栋名称',
  75. prop: 'buildingName'
  76. },
  77. {
  78. label: '单元数',
  79. prop: 'unitNumber'
  80. },
  81. {
  82. label: '楼栋类型',
  83. prop: 'buildingTypeDict'
  84. },
  85. {
  86. label: '建筑结构',
  87. prop: 'buildingStructureDict'
  88. },
  89. {
  90. label: '楼层',
  91. prop: 'floorsNumber'
  92. },
  93. {
  94. label: '楼栋用途',
  95. prop: 'buildingPurposeDict'
  96. },
  97. {
  98. label: '建成日期',
  99. prop: 'builtDate'
  100. },
  101. {
  102. label: '验收日期',
  103. prop: 'acceptanceDate'
  104. },
  105. {
  106. label: '建筑面积',
  107. prop: 'buildingArea'
  108. },
  109. {
  110. label: '使用面积',
  111. prop: 'useArea'
  112. },
  113. {
  114. label: '操作',
  115. prop: 'opt',
  116. slot: 'opt'
  117. }
  118. ]
  119. };
  120. },
  121. methods: {
  122. clerOwnerStatus() {
  123. this.ownerStatus = '';
  124. this.activeData = {};
  125. this.isAdd = true;
  126. this.mixins_search();
  127. },
  128. //获取社区名称下拉列表
  129. communityNameList() {
  130. this.communityList = [];
  131. let onOption = '';
  132. this.$http.get('/sc-community/assets/community/list', {}).then((res) => {
  133. res.data.map((res) => {
  134. onOption = {
  135. label: res.communityName,
  136. id: res.id
  137. };
  138. this.communityList.push(onOption);
  139. });
  140. this.$store.commit('setCommunityArray', res.data);
  141. });
  142. },
  143. addCommand(command) {
  144. if (command === 'add') {
  145. this.addOrEdit('add');
  146. }
  147. if (command === 'batchAdd') {
  148. this.$router.push('/buildingManagement/pageJump/batchAddoredit');
  149. return;
  150. }
  151. },
  152. addOrEdit(todo, row) {
  153. if (todo == 'edit') {
  154. this.activeData = row;
  155. this.isAdd = false;
  156. }
  157. this.ownerStatus = todo;
  158. },
  159. exportExcel() {
  160. this.__exportExcel('/sc-community/assets/building/export/excel');
  161. },
  162. //单个删除
  163. deleteOne(ids) {
  164. this.$msgBox(`刪除`, '删除后将无法恢复,请问是否继续?')
  165. .then(() => {
  166. this.$http.get('/sc-community/assets/building/delete', { id: ids }).then(({ status }) => {
  167. if (0 === status) {
  168. this.$message({
  169. type: 'success',
  170. message: '删除成功!'
  171. });
  172. this.mixins_search();
  173. } else {
  174. this.$message.error('删除失败!');
  175. }
  176. });
  177. })
  178. .catch(() => {
  179. this.$message({
  180. type: 'info',
  181. message: '已取消删除'
  182. });
  183. });
  184. }
  185. },
  186. created() {
  187. this.communityNameList();
  188. // this.mixins_search();
  189. this.mixins_dataUrl = '/sc-community/assets/building/page';
  190. this.mixins_post = 'post';
  191. this.mixins_search();
  192. }
  193. };
  194. </script>
  195. <style lang="scss" scoped>
  196. </style>