waterEstablishment.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <template>
  2. <el-row class="el-row-container" v-loading="loading">
  3. <el-col
  4. :span="24"
  5. style="padding: 16px; height: 100%"
  6. >
  7. <el-card style="height: 100%; overflow-y: auto">
  8. <el-col :span="24" class="elrow-main__col-top">
  9. <div style="display:flex">
  10. <el-select
  11. style="width: 100%;margin-right:16px;"
  12. laceholder="请选择您的年份"
  13. v-model="waterrightYear"
  14. >
  15. <el-option
  16. v-for="item in options"
  17. :key="item.value"
  18. :label="item.label"
  19. :value="item.value">
  20. </el-option>
  21. </el-select>
  22. <select-tree
  23. :placeholder="'年份'"
  24. style="width:100%"
  25. :treeData="treeData"
  26. @handlerClick="handlerClick"
  27. :checkVal="cusareaName"
  28. ></select-tree>
  29. <el-button
  30. style="margin-left: 16px;"
  31. type="primary"
  32. size="small"
  33. @click="getWaterrightList"
  34. >查询</el-button
  35. >
  36. </div>
  37. <div class="top-left">
  38. <el-button
  39. type="primary"
  40. size="small"
  41. @click="setAnnualWaterRight"
  42. >设置年度水权
  43. </el-button
  44. ></div>
  45. </el-col>
  46. <el-col :span="24" class="elrow-main__col-bottom">
  47. <!-- -->
  48. <!-- <b-table
  49. ref="tableRef"
  50. :args="{ 'highlight-current-row': true }"
  51. :data="tableData"
  52. :columns="columns"
  53. isShowIndex
  54. >
  55. <template #operate="scope">
  56. <el-link
  57. type="primary"
  58. :underline="false"
  59. @click="goDetail(scope.row)"
  60. >修改</el-link
  61. >
  62. </template>
  63. </b-table> -->
  64. <el-table
  65. ref="tableRef"
  66. :args="{ 'highlight-current-row': true }"
  67. :data="tableData"
  68. row-key="id"
  69. :columns="columns"
  70. isShowIndex
  71. :tree-props="{children: 'children',hasChildren: 'hasChildren'}"
  72. :header-row-style="{ background: '#E5EEED' }"
  73. :header-cell-style="{ background: '#E5EEED' }"
  74. >
  75. <el-table-column
  76. v-for="item in columns"
  77. :key="item.id"
  78. :prop="item.prop"
  79. :label="item.label"
  80. >
  81. </el-table-column>
  82. <el-table-column label="操作">
  83. <template slot-scope="scope">
  84. <el-link
  85. size="small"
  86. :underline="false"
  87. type="primary"
  88. style="margin-right: 10px"
  89. @click="handlerRecompose(scope.row)"
  90. >修改</el-link
  91. >
  92. </template>
  93. </el-table-column>
  94. </el-table>
  95. </el-col>
  96. </el-card>
  97. </el-col>
  98. <recompose
  99. :visible.sync="recomposeShow"
  100. :editRow="editRow"
  101. @resetEdit="resetEdit"
  102. @refresh="getWaterrightList"
  103. />
  104. <water-price-setting :visible.sync="waterprice" @refresh="getWaterrightList"/>
  105. </el-row>
  106. </template>
  107. <script>
  108. import { getTree } from '@/api/tree.js'
  109. import { getWaterrightList,editWaterright,getWaterrightUpareaInfo } from '@/api/waterright/index.js'
  110. import SelectTree from '@/components/SelectTree';
  111. import BTable from '@/components/Table/index.vue';
  112. import setAnnualWaterRight from './components/setAnnualWaterRight.vue'
  113. import waterPriceSetting from './components/waterPriceSetting.vue'
  114. import recompose from './components/recompose.vue'
  115. import { assign, omit } from 'lodash-es';
  116. export default {
  117. name: 'waterEstablishment',
  118. components: { BTable,setAnnualWaterRight, recompose,waterPriceSetting,SelectTree },
  119. data() {
  120. return {
  121. form: {
  122. productName: ''
  123. },
  124. options:[
  125. {
  126. value: '2023',
  127. label: '2023'
  128. }, {
  129. value: '2022',
  130. label: '2022'
  131. }, {
  132. value: '2021',
  133. label: '2021'
  134. }, {
  135. value: '2020',
  136. label: '2020'
  137. }, {
  138. value: '2019',
  139. label: '2019'
  140. }
  141. ],
  142. treeData: [],
  143. loading: false,
  144. recomposeShow: false,
  145. waterprice: false,
  146. cusareaName:'',
  147. waterrightYear: '2023',
  148. areaId:'',
  149. editRow: {},
  150. columns: [
  151. {
  152. label: '行政区',
  153. prop: 'cusareaName',
  154. customRender: 'cusareaName',
  155. align: 'center'
  156. },
  157. {
  158. label: '灌区总面积(亩)',
  159. prop: 'waterrightAreasize',
  160. customRender: '',
  161. align: 'center'
  162. },
  163. {
  164. label: '初始水权(m³)',
  165. prop: 'waterrightAmount',
  166. customRender: '',
  167. align: 'center'
  168. },{
  169. label: '亩均水权(亩/立方)',
  170. prop: 'phone',
  171. customRender: 'Permuarea',
  172. align: 'center'
  173. }
  174. ],
  175. tableData: []
  176. };
  177. },
  178. mounted() {
  179. this.getWaterrightList()
  180. },
  181. methods: {
  182. resetEdit() {
  183. this.editRow = {}
  184. },
  185. async getWaterrightList() {
  186. if(!this.areaId) {
  187. const treeList = this.$store.state.tree.treeList
  188. let res = []
  189. if (treeList.code === '000000') {
  190. res = treeList
  191. } else {
  192. res = await getTree()
  193. this.$store.dispatch('tree/setTree', res)
  194. }
  195. this.treeData = res?.data
  196. this.cusareaName ||= this.treeData[0].cusareaName
  197. this.areaId = this.treeData[0].cusareaId
  198. }
  199. this.getWaterrightListHandler()
  200. },
  201. async getWaterrightListHandler() {
  202. const res = await getWaterrightList({
  203. areaId: this.areaId,
  204. waterrightYear: this.waterrightYear
  205. })
  206. this.tableData = res?.data
  207. },
  208. handlerClick(value) {
  209. this.areaId = value?.cusareaId
  210. },
  211. setAnnualWaterRight() {
  212. this.waterprice = true
  213. },
  214. loadData(parameter) {
  215. const queryform = this.form;
  216. const payload = omit(assign({}, parameter, queryform, {orderByColumn:'tarcecodeapplyCreateddate',isAsc:'desc'}), []);
  217. return this.getTableData(payload);
  218. },
  219. getTableData(payload) {
  220. return {}
  221. },
  222. handlerRecompose(row) {
  223. this.editRow = row
  224. this.recomposeShow = true
  225. }
  226. }
  227. };
  228. </script>
  229. <style lang="scss" scoped>
  230. .el-row-container{
  231. height: 100%;
  232. }
  233. .elrow-main__col-top {
  234. display: flex;
  235. align-items: center;
  236. justify-content: space-between;
  237. margin-bottom: 15px;
  238. .top-left {
  239. height: 100%;
  240. display: flex;
  241. align-items: center;
  242. i {
  243. background-color: #40d5ec;
  244. height: 45%;
  245. width: 5px;
  246. margin-right: 5px;
  247. }
  248. }
  249. }
  250. </style>