personPopedom-list.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. <template>
  2. <el-dialog
  3. :visible.sync="showDialog"
  4. title="查看关联设备"
  5. :modal-append-to-body="false"
  6. append-to-body
  7. :modal="true"
  8. style="text-align: left"
  9. @close="closeDialog"
  10. :close-on-click-modal="false"
  11. width="970px"
  12. >
  13. <div>
  14. <!--
  15. 要resetFields起作用,必须配置:model和prop
  16. -->
  17. <el-divider></el-divider>
  18. <el-row class="button-group">
  19. <el-button
  20. type="primary"
  21. size="small"
  22. plain
  23. icon="el-icon-remove"
  24. @click="handleRemoveAll"
  25. >新增</el-button
  26. >
  27. <el-button
  28. type="primary"
  29. size="small"
  30. plain
  31. icon="el-icon-refresh"
  32. @click="handleUpdateIsWrite"
  33. >删除</el-button
  34. >
  35. </el-row>
  36. <el-table
  37. :data="tableData"
  38. style="min-height: 400px"
  39. v-loading="loading"
  40. stripe
  41. @sort-change="sortChange"
  42. @selection-change="handleSelectionChange"
  43. >
  44. <el-table-column
  45. prop="companyId"
  46. label="对应公司id"
  47. width="180"
  48. ></el-table-column>
  49. <el-table-column
  50. prop="personRoleId"
  51. label="对应角色id"
  52. width="180"
  53. ></el-table-column>
  54. <el-table-column
  55. prop="personId"
  56. label="人员id"
  57. width="180"
  58. ></el-table-column>
  59. <el-table-column
  60. prop="showIconId"
  61. label="展示的图标id"
  62. width="180"
  63. ></el-table-column>
  64. <el-table-column
  65. prop="delFlag"
  66. label="是否删除"
  67. width="180"
  68. ></el-table-column>
  69. <el-table-column
  70. prop="createBy"
  71. label="创建人"
  72. width="180"
  73. ></el-table-column>
  74. <el-table-column
  75. prop="createTime"
  76. label="创建时间"
  77. width="180"
  78. ></el-table-column>
  79. <el-table-column
  80. prop="updateBy"
  81. label="更新人"
  82. width="180"
  83. ></el-table-column>
  84. <el-table-column
  85. prop="updateTime"
  86. label="更新时间"
  87. width="180"
  88. ></el-table-column>
  89. <el-table-column
  90. prop="remark"
  91. label="备注信息"
  92. width="180"
  93. ></el-table-column>
  94. </el-table>
  95. <el-pagination
  96. :current-page.sync="pageIndex"
  97. :total="totalElements"
  98. :page-sizes="pageSizeList"
  99. @current-change="changePage"
  100. @size-change="pageSizeChange"
  101. layout="total, sizes, prev, pager, next, jumper"
  102. ></el-pagination>
  103. <personPopedom-detail
  104. v-if="showModal"
  105. :businessKey="businessKey"
  106. :title="modalTitle"
  107. @close="onDetailModalClose"
  108. ></personPopedom-detail>
  109. </div>
  110. </el-dialog>
  111. </template>
  112. <script>
  113. import Constant from "@/constant";
  114. import PersonPopedomDetail from "./personPopedom-detail";
  115. import personPopedomApi from "@/api/base/personPopedom";
  116. import NProgress from "nprogress"; // progress bar
  117. import "nprogress/nprogress.css"; // progress bar style
  118. export default {
  119. props: ["personId"],
  120. data() {
  121. var self = this;
  122. return {
  123. queryModel: {
  124. personId: "",
  125. },
  126. loading: false,
  127. tableData: [],
  128. pageIndex: 1,
  129. pageSize: 10,
  130. totalPages: 0,
  131. totalElements: 0,
  132. field: "",
  133. direction: "",
  134. pageSizeList: [10, 20, 30],
  135. multipleSelection: [],
  136. showModal: false,
  137. modalTitle: "",
  138. showDialog: true,
  139. };
  140. },
  141. methods: {
  142. closeDialog() {
  143. this.$emit("close", false);
  144. },
  145. changePage(pageIndex) {
  146. var self = this;
  147. self.loading = true;
  148. self.pageIndex = pageIndex;
  149. var formData = new FormData();
  150. formData.append("pageIndex", self.pageIndex);
  151. formData.append("pageSize", self.pageSize);
  152. formData.append("personId", self.personId);
  153. if (this.field != null) {
  154. formData.append("field", this.field);
  155. }
  156. if (this.direction != null) {
  157. formData.append("direction", this.direction);
  158. }
  159. personPopedomApi
  160. .pageList(formData)
  161. .then(function (response) {
  162. self.loading = false;
  163. var jsonData = response.data.data;
  164. console.log(jsonData.data);
  165. self.tableData = jsonData.data;
  166. self.totalPages = jsonData.totalPages;
  167. self.totalElements = jsonData.recordsTotal;
  168. })
  169. .catch((error) => {
  170. self.loading = false;
  171. // self.$message.error(error + "");
  172. });
  173. },
  174. pageSizeChange(pageSize) {
  175. this.pageSize = pageSize;
  176. },
  177. sortChange(data) {
  178. this.field = data.column.field;
  179. this.direction = data.order;
  180. this.changePage(this.pageIndex);
  181. },
  182. handleSelectionChange(val) {
  183. this.multipleSelection = val;
  184. },
  185. handleReset(name) {
  186. this.$refs[name].resetFields();
  187. },
  188. handleDelete(record) {
  189. var self = this;
  190. this.$confirm("是否解除关联?", "提示", {
  191. confirmButtonText: "确定",
  192. cancelButtonText: "取消",
  193. type: "warning",
  194. distinguishCancelAndClose: true,
  195. })
  196. .then(() => {
  197. self.loading = true;
  198. personPopedomApi.remove(record.id).then(function (response) {
  199. var jsonData = response.data;
  200. self.loading = false;
  201. if (jsonData.result) {
  202. // var index = self.tableData.indexOf(record);
  203. // self.tableData.splice(index, 1);
  204. self.changePage(self.pageIndex);
  205. self.$message({
  206. type: "success",
  207. message: "解绑成功!",
  208. });
  209. }
  210. });
  211. })
  212. .catch((error) => {
  213. self.loading = false;
  214. // self.$message.error(error + "");
  215. });
  216. },
  217. onDetailModalClose(refreshed) {
  218. //保存成功后回调
  219. this.showModal = false;
  220. if (refreshed) {
  221. this.changePage(this.pageIndex);
  222. }
  223. },
  224. },
  225. mounted: function () {
  226. this.changePage(1);
  227. },
  228. components: {
  229. "personPopedom-detail": PersonPopedomDetail
  230. },
  231. };
  232. </script>
  233. <style lang="scss" scoped>
  234. .el-breadcrumb {
  235. margin: 10px;
  236. line-height: 20px;
  237. }
  238. .el-divider {
  239. margin: 5px 0;
  240. }
  241. .demo-form-inline {
  242. margin-left: 10px;
  243. text-align: left;
  244. }
  245. .button-group {
  246. margin-left: 10px;
  247. text-align: left;
  248. }
  249. </style>