index.vue 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <template>
  2. <div class="table-container">
  3. <!-- <vab-query-form> -->
  4. <!-- <vab-query-form-left-panel> -->
  5. <el-row>
  6. <el-button @click="getBack" style="float: right; margin:0 0 10px 0">返回</el-button>
  7. </el-row>
  8. <el-form ref="form" :model="queryForm" :inline="true" @submit.native.prevent>
  9. <el-form-item label="类型">
  10. <el-select v-model="form.type" placeholder="请选择" clearable @change="typeChange">
  11. <el-option
  12. v-for="item in typeOptions"
  13. :key="item.value"
  14. :label="item.label"
  15. :value="item.value"
  16. ></el-option>
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item label="名称">
  20. <el-select v-model="form.name" placeholder="请选择" clearable>
  21. <el-option
  22. v-for="item in nameOptions"
  23. :key="item.uniformcode"
  24. :label="item.name"
  25. :value="item.uniformcode"
  26. ></el-option>
  27. </el-select>
  28. </el-form-item>
  29. <el-form-item>
  30. <el-button
  31. icon="el-icon-search"
  32. type="primary"
  33. native-type="submit"
  34. @click="fetchData"
  35. >
  36. 查询
  37. </el-button>
  38. </el-form-item>
  39. <el-form-item style="float: right">
  40. <el-button icon="el-icon-plus" type="primary" @click="handleAdd">
  41. 添加
  42. </el-button>
  43. <el-button icon="el-icon-delete" type="danger" @click="handleDelete">
  44. 删除
  45. </el-button>
  46. </el-form-item>
  47. </el-form>
  48. <!-- </vab-query-form-left-panel> -->
  49. <!-- <vab-query-form-right-panel> -->
  50. <!-- <UploadExcel style="margin-left: 10px;" @getResult="getMyExcelData"></UploadExcel>
  51. <ExportExcel :exportList="exportExcel" partsName="公司"></ExportExcel> -->
  52. <!-- </vab-query-form-right-panel> -->
  53. <!-- </vab-query-form> -->
  54. <el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
  55. :height="height" @selection-change="setSelectRows">
  56. <el-table-column show-overflow-tooltip type="selection" width="55"></el-table-column>
  57. <el-table-column show-overflow-tooltip label="id" prop="id" align="center" sortable></el-table-column>
  58. <el-table-column show-overflow-tooltip label="编码" prop="code" align="center" sortable></el-table-column>
  59. <el-table-column show-overflow-tooltip label="名称" prop="name" align="center" sortable></el-table-column>
  60. <el-table-column show-overflow-tooltip label="型号" prop="model" align="center" sortable></el-table-column>
  61. <el-table-column show-overflow-tooltip label="统一编码" prop="uniformcode" align="center" sortable></el-table-column>
  62. <el-table-column show-overflow-tooltip label="场站编号" prop="windpowerstationid" align="center" sortable></el-table-column>
  63. <el-table-column show-overflow-tooltip label="操作" width="180px">
  64. <template #default="{ row }">
  65. <el-button type="text" @click="handleEdit(row)">编辑</el-button>
  66. <el-button type="text" @click="handleDelete(row)">删除</el-button>
  67. <!-- <el-button type="text" @click="handleDelete(row)">设备点表配置</el-button>
  68. <el-button type="text" @click="handleDelete(row)">场站点表配置</el-button> -->
  69. </template>
  70. </el-table-column>
  71. </el-table>
  72. <el-pagination :background="background" :current-page="queryForm.pageNo" :layout="layout"
  73. :page-size="queryForm.pageSize" :total="total" @current-change="handleCurrentChange"
  74. @size-change="handleSizeChange"></el-pagination>
  75. <table-edit ref="edit" :options="options" @save-success="fetchData"></table-edit>
  76. </div>
  77. </template>
  78. <script>
  79. // import UploadExcel from '@/components/UploadExcel/index'
  80. // import ExportExcel from '@/components/ExportExcel/index'
  81. import TableEdit from './components/TableEdit'
  82. import api from '@/api/pointConfiguration'
  83. export default {
  84. props: {
  85. showValue: {
  86. type: Object,
  87. default: {}
  88. },
  89. },
  90. components: {
  91. // UploadExcel,
  92. // ExportExcel,
  93. TableEdit,
  94. },
  95. data() {
  96. return {
  97. ArrayData: [],
  98. nameOptions: [],
  99. typeOptions: [
  100. { value: 'fjjs', label: '风机计算' },
  101. { value: 'czjs', label: '场站计算' },
  102. { value: 'fjjc', label: '风机基础点' },
  103. ],
  104. form: {
  105. type: '',
  106. name: '',
  107. },
  108. //
  109. // fuzzyQuery: '',
  110. listLoading: true,
  111. list: [],
  112. options: [],
  113. exportExcel: [],
  114. elementLoadingText: '正在加载...',
  115. selectRows: '',
  116. layout: 'total, sizes, prev, pager, next, jumper',
  117. total: 0,
  118. background: true,
  119. exportList: [],
  120. queryForm: {
  121. pageNo: 1,
  122. pageSize: 20,
  123. },
  124. };
  125. },
  126. created() {
  127. this.form.type = this.showValue.type
  128. this.form.name = this.showValue.name
  129. this.fetchData()
  130. this.typeFetchDataAll()
  131. },
  132. computed: {
  133. height() {
  134. return this.$baseTableHeight() + 50
  135. },
  136. },
  137. methods: {
  138. typeChange(data){
  139. this.form.name = ""
  140. this.ArrayData.forEach(element => {
  141. if(data === element.value){
  142. this.nameOptions = element.data
  143. }
  144. });
  145. },
  146. typeFetchDataAll(){
  147. api.standardpointList({
  148. id: '',
  149. uniformcode: '',
  150. name: '',
  151. type: '',
  152. pageNum: 1,
  153. pageSize: 500,
  154. }).then(res => {
  155. if (res.data) {
  156. let data = res.data.records
  157. this.typeOptions.forEach((item) => {
  158. let obj = {}
  159. obj.value = item.value
  160. obj.label = item.label
  161. obj.data = []
  162. data.forEach((element) => {
  163. if (element.type == item.value) {
  164. obj.data.push(element)
  165. }
  166. })
  167. this.ArrayData.push(obj)
  168. })
  169. this.ArrayData.forEach(element => {
  170. if(element.value == this.showValue.type){
  171. this.nameOptions = element.data
  172. }
  173. });
  174. }
  175. })
  176. },
  177. getBack(){
  178. this.$emit("cutState" , 1)
  179. },
  180. getMyExcelData(val) {
  181. val.forEach(item => {
  182. api.addCompanys(item).then(res => {
  183. if (res.code == 200) {
  184. this.$message({
  185. type: 'success',
  186. message: '添加成功!'
  187. });
  188. this.fetchData()
  189. }
  190. })
  191. })
  192. },
  193. fetchData() {
  194. this.listLoading = true
  195. api.windpowerstationpointnewList({
  196. id: '',
  197. type: this.form.type,
  198. name: this.form.name,
  199. // model: this.form.model,
  200. // uniformcode: this.form.uniformcode,
  201. // windpowerstationid: this.form.windpowerstationid,
  202. pageNum: this.queryForm.pageNo,
  203. pageSize: this.queryForm.pageSize,
  204. }).then(res => {
  205. if (res.data) {
  206. this.listLoading = false
  207. this.total = res.data.total
  208. this.list = res.data.records
  209. let exportExcel = []
  210. res.data.records.forEach(item => {
  211. exportExcel.push({
  212. id: item.id,
  213. name: item.name,
  214. rid: item.rid,
  215. })
  216. })
  217. this.exportExcel = exportExcel
  218. }
  219. })
  220. },
  221. handleSizeChange(val) {
  222. this.queryForm.pageSize = val
  223. this.fetchData()
  224. },
  225. handleCurrentChange(val) {
  226. this.queryForm.pageNo = val
  227. this.fetchData()
  228. },
  229. handleAdd() {
  230. this.$refs['edit'].showEdit()
  231. },
  232. handleEdit(row) {
  233. this.$refs['edit'].showEdit(row)
  234. },
  235. handleDelete(row) {
  236. if (row.id || this.selectRows.length > 0) {
  237. this.$baseConfirm('你确定要删除吗', null, async () => {
  238. let ids = ''
  239. if (this.selectRows.length > 0) {
  240. ids = this.selectRows.map((item) => item.id).join()
  241. }
  242. api.deleteWindpowerstationpointnew({
  243. id: row.id || ids
  244. }).then(res => {
  245. if (res.data) {
  246. this.$baseMessage('删除成功', 'success')
  247. this.fetchData()
  248. }
  249. })
  250. })
  251. } else {
  252. this.$baseMessage('未选中任何行', 'error')
  253. return false
  254. }
  255. },
  256. setSelectRows(val) {
  257. this.selectRows = val
  258. },
  259. },
  260. }
  261. </script>
  262. <style lang="less" scoped>
  263. a{
  264. float: right;
  265. }
  266. </style>