index.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
  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">
  7. 返回
  8. </el-button>
  9. </el-row>
  10. <el-form
  11. ref="form"
  12. :model="queryForm"
  13. :inline="true"
  14. @submit.native.prevent
  15. >
  16. <el-form-item label="类型">
  17. <el-select v-model="form.type" placeholder="请选择" clearable @change="typeChange">
  18. <el-option
  19. v-for="item in typeOptions"
  20. :key="item.value"
  21. :label="item.label"
  22. :value="item.value"
  23. ></el-option>
  24. </el-select>
  25. </el-form-item>
  26. <el-form-item label="名称">
  27. <el-select v-model="form.name" placeholder="请选择" clearable>
  28. <el-option
  29. v-for="item in nameOptions"
  30. :key="item.uniformcode"
  31. :label="item.name"
  32. :value="item.uniformcode"
  33. ></el-option>
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item>
  37. <el-button
  38. icon="el-icon-search"
  39. type="primary"
  40. native-type="submit"
  41. @click="fetchData"
  42. >
  43. 查询
  44. </el-button>
  45. </el-form-item>
  46. <el-form-item style="float: right">
  47. <el-button icon="el-icon-plus" type="primary" @click="handleAdd">
  48. 添加
  49. </el-button>
  50. <el-button icon="el-icon-delete" type="danger" @click="handleDelete">
  51. 删除
  52. </el-button>
  53. </el-form-item>
  54. </el-form>
  55. <!-- </vab-query-form-left-panel> -->
  56. <!-- <vab-query-form-right-panel> -->
  57. <!-- <UploadExcel style="margin-left: 10px;" @getResult="getMyExcelData"></UploadExcel>
  58. <ExportExcel :exportList="exportExcel" partsName="公司"></ExportExcel> -->
  59. <!-- </vab-query-form-right-panel> -->
  60. <!-- </vab-query-form> -->
  61. <el-table
  62. ref="tableSort"
  63. v-loading="listLoading"
  64. :data="list"
  65. :element-loading-text="elementLoadingText"
  66. :height="height"
  67. @selection-change="setSelectRows"
  68. >
  69. <el-table-column
  70. show-overflow-tooltip
  71. type="selection"
  72. width="55"
  73. ></el-table-column>
  74. <el-table-column
  75. show-overflow-tooltip
  76. label="id"
  77. prop="id"
  78. align="center"
  79. sortable
  80. ></el-table-column>
  81. <el-table-column
  82. show-overflow-tooltip
  83. label="编码"
  84. prop="code"
  85. align="center"
  86. sortable
  87. ></el-table-column>
  88. <el-table-column
  89. show-overflow-tooltip
  90. label="名称"
  91. prop="name"
  92. align="center"
  93. sortable
  94. ></el-table-column>
  95. <el-table-column
  96. show-overflow-tooltip
  97. label="型号"
  98. prop="model"
  99. align="center"
  100. sortable
  101. ></el-table-column>
  102. <el-table-column
  103. show-overflow-tooltip
  104. label="统一编码"
  105. prop="uniformcode"
  106. align="center"
  107. sortable
  108. ></el-table-column>
  109. <el-table-column
  110. show-overflow-tooltip
  111. label="场站编号"
  112. prop="windpowerstationid"
  113. align="center"
  114. sortable
  115. ></el-table-column>
  116. <el-table-column show-overflow-tooltip label="操作" width="180px">
  117. <template #default="{ row }">
  118. <el-button type="text" @click="handleEdit(row)">编辑</el-button>
  119. <el-button type="text" @click="handleDelete(row)">删除</el-button>
  120. <!-- <el-button type="text" @click="handleDelete(row)">设备点表配置</el-button>
  121. <el-button type="text" @click="handleDelete(row)">场站点表配置</el-button> -->
  122. </template>
  123. </el-table-column>
  124. </el-table>
  125. <el-pagination
  126. :background="background"
  127. :current-page="queryForm.pageNo"
  128. :layout="layout"
  129. :page-size="queryForm.pageSize"
  130. :total="total"
  131. @current-change="handleCurrentChange"
  132. @size-change="handleSizeChange"
  133. ></el-pagination>
  134. <table-edit
  135. ref="edit"
  136. :options="options"
  137. @save-success="fetchData"
  138. ></table-edit>
  139. </div>
  140. </template>
  141. <script>
  142. // import UploadExcel from '@/components/UploadExcel/index'
  143. // import ExportExcel from '@/components/ExportExcel/index'
  144. import TableEdit from './components/TableEdit'
  145. import api from '@/api/pointConfiguration'
  146. export default {
  147. props: {
  148. showValue: {
  149. type: Object,
  150. default: {},
  151. },
  152. },
  153. components: {
  154. // UploadExcel,
  155. // ExportExcel,
  156. TableEdit,
  157. },
  158. data() {
  159. return {
  160. ArrayData: [],
  161. nameOptions: [],
  162. cascaderSel: '',
  163. optionscascader: [
  164. {
  165. value: 'zhinan',
  166. label: '指南',
  167. children: [
  168. {
  169. value: 'shejiyuanze',
  170. label: '设计原则',
  171. children: [
  172. {
  173. value: 'yizhi',
  174. label: '一致',
  175. },
  176. {
  177. value: 'fankui',
  178. label: '反馈',
  179. },
  180. {
  181. value: 'xiaolv',
  182. label: '效率',
  183. },
  184. {
  185. value: 'kekong',
  186. label: '可控',
  187. },
  188. ],
  189. },
  190. {
  191. value: 'daohang',
  192. label: '导航',
  193. children: [
  194. {
  195. value: 'cexiangdaohang',
  196. label: '侧向导航',
  197. },
  198. {
  199. value: 'dingbudaohang',
  200. label: '顶部导航',
  201. },
  202. ],
  203. },
  204. ],
  205. },
  206. ],
  207. typeOptions: [
  208. { value: 'fjjs', label: '风机计算' },
  209. { value: 'czjs', label: '场站计算' },
  210. { value: 'fjjc', label: '风机基础点' },
  211. ],
  212. form: {
  213. type: '',
  214. name: '',
  215. },
  216. //
  217. // fuzzyQuery: '',
  218. listLoading: true,
  219. list: [],
  220. options: [],
  221. exportExcel: [],
  222. elementLoadingText: '正在加载...',
  223. selectRows: '',
  224. layout: 'total, sizes, prev, pager, next, jumper',
  225. total: 0,
  226. background: true,
  227. exportList: [],
  228. queryForm: {
  229. pageNo: 1,
  230. pageSize: 20,
  231. },
  232. }
  233. },
  234. created() {
  235. this.form.type = this.showValue.type
  236. this.form.name = this.showValue.name
  237. this.fetchData()
  238. this.typeFetchDataAll()
  239. },
  240. computed: {
  241. height() {
  242. return this.$baseTableHeight() + 50
  243. },
  244. },
  245. methods: {
  246. typeChange(data){
  247. this.form.name = ""
  248. this.ArrayData.forEach(element => {
  249. if(data === element.value){
  250. this.nameOptions = element.data
  251. }
  252. });
  253. },
  254. typeFetchDataAll(){
  255. api.standardpointList({
  256. id: '',
  257. uniformcode: '',
  258. name: '',
  259. type: '',
  260. pageNum: 1,
  261. pageSize: 500,
  262. }).then(res => {
  263. if (res.data) {
  264. let data = res.data.records
  265. this.typeOptions.forEach((item) => {
  266. let obj = {}
  267. obj.value = item.value
  268. obj.label = item.label
  269. obj.data = []
  270. data.forEach((element) => {
  271. if (element.type == item.value) {
  272. obj.data.push(element)
  273. }
  274. })
  275. this.ArrayData.push(obj)
  276. })
  277. this.ArrayData.forEach(element => {
  278. if(element.value == this.showValue.type){
  279. this.nameOptions = element.data
  280. }
  281. });
  282. }
  283. })
  284. },
  285. getBack() {
  286. this.$emit('cutState', 1)
  287. },
  288. getMyExcelData(val) {
  289. val.forEach((item) => {
  290. api.addCompanys(item).then((res) => {
  291. if (res.code == 200) {
  292. this.$message({
  293. type: 'success',
  294. message: '添加成功!',
  295. })
  296. this.fetchData()
  297. }
  298. })
  299. })
  300. },
  301. fetchData() {
  302. this.listLoading = true
  303. api
  304. .windturbinetestingpointnewList({
  305. id: '',
  306. type: this.form.type,
  307. name: this.form.name,
  308. pageNum: this.queryForm.pageNo,
  309. pageSize: this.queryForm.pageSize,
  310. })
  311. .then((res) => {
  312. if (res.data) {
  313. this.listLoading = false
  314. this.total = res.data.total
  315. this.list = res.data.records
  316. let exportExcel = []
  317. res.data.records.forEach((item) => {
  318. exportExcel.push({
  319. id: item.id,
  320. name: item.name,
  321. rid: item.rid,
  322. })
  323. })
  324. this.exportExcel = exportExcel
  325. }
  326. })
  327. },
  328. handleSizeChange(val) {
  329. this.queryForm.pageSize = val
  330. this.fetchData()
  331. },
  332. handleCurrentChange(val) {
  333. this.queryForm.pageNo = val
  334. this.fetchData()
  335. },
  336. handleAdd() {
  337. this.$refs['edit'].showEdit()
  338. },
  339. handleEdit(row) {
  340. this.$refs['edit'].showEdit(row)
  341. },
  342. handleDelete(row) {
  343. if (row.id || this.selectRows.length > 0) {
  344. this.$baseConfirm('你确定要删除吗', null, async () => {
  345. let ids = ''
  346. if (this.selectRows.length > 0) {
  347. ids = this.selectRows.map((item) => item.id).join()
  348. }
  349. api
  350. .deleteWindturbinetestingpointnew({
  351. id: row.id || ids,
  352. })
  353. .then((res) => {
  354. if (res.data) {
  355. this.$baseMessage('删除成功', 'success')
  356. this.fetchData()
  357. }
  358. })
  359. })
  360. } else {
  361. this.$baseMessage('未选中任何行', 'error')
  362. return false
  363. }
  364. },
  365. setSelectRows(val) {
  366. this.selectRows = val
  367. },
  368. },
  369. }
  370. </script>
  371. <style lang="less" scoped>
  372. a {
  373. float: right;
  374. }
  375. </style>