project.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <template>
  2. <el-row>
  3. <el-col :span="4">
  4. <div class="box">
  5. <el-scrollbar>
  6. <basic-container>
  7. <avue-tree
  8. :option="treeOption"
  9. :data="treeData"
  10. @node-click="nodeClick"
  11. />
  12. </basic-container>
  13. </el-scrollbar>
  14. </div>
  15. </el-col>
  16. <el-col :span="20">
  17. <basic-container>
  18. <avue-crud
  19. ref="crud"
  20. :data="data"
  21. :option="tableOption"
  22. :page.sync="page"
  23. :table-loading="loading"
  24. @size-change="sizeChange"
  25. @current-change="currentChange"
  26. @search-change="searchChange"
  27. @refresh-change="refreshChange"
  28. @row-save="rowSave"
  29. @row-del="rowDel"
  30. @row-update="rowUpdate"
  31. @cell-dblclick="cellDblclick"
  32. @on-load="getList"
  33. ></avue-crud>
  34. </basic-container>
  35. </el-col>
  36. </el-row>
  37. </template>
  38. <script>
  39. import { getDeptLazyTree, getDeptTree } from "@/api/basicData/basicFeesDesc";
  40. export default {
  41. data() {
  42. return {
  43. loading: false,
  44. data: [],
  45. tableOption: {
  46. align: "center",
  47. menuAlign: "center",
  48. height: window.innerHeight - 345,
  49. searchMenuSpan: 12,
  50. menuWidth:'140',
  51. column: [
  52. {
  53. label: "项目名称",
  54. prop: "name",
  55. search: true,
  56. rules: [
  57. {
  58. required: true,
  59. message: "请输入类别名称",
  60. trigger: "blur"
  61. }
  62. ],
  63. overHidden:true
  64. },
  65. {
  66. label: "收费建议",
  67. prop: "sort",
  68. rules: [
  69. {
  70. required: true,
  71. message: "请输入排序",
  72. trigger: "blur"
  73. }
  74. ],
  75. overHidden:true
  76. },
  77. {
  78. label: "收费金额",
  79. prop: "status",
  80. search: true,
  81. addDisplay: false,
  82. editDisplay: false,
  83. overHidden:true
  84. },
  85. {
  86. label: "计价单位",
  87. prop: "user",
  88. addDisplay: false,
  89. editDisplay: false,
  90. overHidden:true
  91. },
  92. {
  93. label: "备注",
  94. prop: "date",
  95. addDisplay: false,
  96. editDisplay: false,
  97. overHidden:true
  98. },
  99. {
  100. label: "频率",
  101. prop: "date",
  102. addDisplay: false,
  103. editDisplay: false,
  104. overHidden:true
  105. },
  106. {
  107. label: "保质期",
  108. prop: "date",
  109. addDisplay: false,
  110. editDisplay: false,
  111. overHidden:true
  112. },
  113. {
  114. label: "标准工时",
  115. prop: "date",
  116. addDisplay: false,
  117. editDisplay: false,
  118. overHidden:true
  119. },
  120. {
  121. label: "创建人",
  122. prop: "user",
  123. addDisplay: false,
  124. editDisplay: false,
  125. overHidden:true
  126. },
  127. {
  128. label: "创建时间",
  129. prop: "date",
  130. addDisplay: false,
  131. editDisplay: false,
  132. overHidden:true
  133. }
  134. ]
  135. },
  136. page: {
  137. currentPage: 1,
  138. total: 0,
  139. pageSize: 10
  140. },
  141. treeOption: {
  142. nodeKey: "id",
  143. lazy: true,
  144. treeLoad: function(node, resolve) {
  145. const parentId = node.level === 0 ? 0 : node.data.id;
  146. getDeptLazyTree(parentId).then(res => {
  147. resolve(
  148. res.data.data.map(item => {
  149. return {
  150. ...item,
  151. leaf: !item.hasChildren
  152. };
  153. })
  154. );
  155. });
  156. },
  157. addBtn: false,
  158. menu: false,
  159. size: "small",
  160. props: {
  161. labelText: "标题",
  162. label: "title",
  163. value: "value",
  164. children: "children"
  165. }
  166. }
  167. };
  168. },
  169. methods: {
  170. getList() {
  171. this.loading = true;
  172. setTimeout(() => {
  173. this.loading = false;
  174. this.data = [
  175. {
  176. name: "公司设立",
  177. sort: "2300",
  178. status: "2300",
  179. user: "次",
  180. date: "2021-07-08"
  181. }
  182. ];
  183. this.page.total = 1;
  184. }, 1000);
  185. },
  186. searchChange(params, done) {
  187. this.getList(this.page,params);
  188. done();
  189. },
  190. sizeChange(val) {
  191. this.page.pageSize = val;
  192. this.getList();
  193. },
  194. currentChange(val) {
  195. this.page.currentPage = val;
  196. this.getList();
  197. },
  198. refreshChange() {
  199. this.page.currentPage = 1;
  200. this.getList();
  201. },
  202. rowSave(row, done, loading) {
  203. setTimeout(() => {
  204. this.$message.success("保存成功");
  205. loading();
  206. done();
  207. }, 1000);
  208. },
  209. rowUpdate(row, index, done, loading) {
  210. setTimeout(() => {
  211. this.$message.success("修改成功");
  212. loading();
  213. done();
  214. }, 1000);
  215. },
  216. rowDel(row, index) {
  217. this.$message.success("删除成功");
  218. },
  219. cellDblclick(row, column, cell, event) {
  220. console.log(row, column, cell, event);
  221. this.$refs.crud.rowEdit(row);
  222. },
  223. //展开主页左边类型
  224. nodeClick(data) {
  225. this.treeDeptId = data.id;
  226. this.page.currentPage = 1;
  227. this.getList(this.page);
  228. },
  229. //查询全部
  230. initData() {
  231. getDeptTree().then(res => {
  232. console.log(this.form);
  233. const column = this.findObject(this.option.column, "feesTypeId");
  234. column.dicData = res.data.data;
  235. });
  236. },
  237. }
  238. };
  239. </script>
  240. <style></style>