plm前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
4.1 KiB

2 years ago
  1. <script>
  2. export default {
  3. name: "transferTable",
  4. props: {
  5. dataList: {
  6. type: Array,
  7. default: () => []
  8. },
  9. modelList: {
  10. type: Array,
  11. default: () => []
  12. }
  13. },
  14. model:{
  15. prop: "modelList",
  16. event: "change"
  17. },
  18. data(){
  19. return{
  20. searchModel: {
  21. itemNo: "",
  22. itemDesc: ""
  23. },
  24. searchTableList: [],
  25. dataTableList: []
  26. }
  27. },
  28. methods:{
  29. handleSearch(){
  30. this.$emit("search", this.searchModel)
  31. },
  32. handleAdd(){
  33. if (this.searchTableList.length === 0){
  34. this.$message.warning("请选择需要新增的属性")
  35. return
  36. }
  37. let params = JSON.parse(JSON.stringify(this.searchModel))
  38. params.searchTableList = JSON.parse(JSON.stringify(this.searchTableList))
  39. this.$emit("add",params)
  40. },
  41. handleDelete() {
  42. if (this.dataTableList.length === 0){
  43. this.$message.warning("请选择需要删除的属性")
  44. return
  45. }
  46. let params = JSON.parse(JSON.stringify(this.searchModel))
  47. params.dataTableList = JSON.parse(JSON.stringify(this.dataTableList))
  48. this.$emit("delete",params)
  49. },
  50. handleRowClick(row, column, event, table) {
  51. this.$refs[table].toggleRowSelection(row)
  52. },
  53. handleSelectionChange(selection, table) {
  54. this[`${table}List`] = selection
  55. }
  56. }
  57. }
  58. </script>
  59. <template>
  60. <div>
  61. <el-form :model="searchModel" label-position="top" :inline="true">
  62. <el-form-item label="属性编码">
  63. <el-input v-model="searchModel.itemNo"></el-input>
  64. </el-form-item>
  65. <el-form-item label="属性名称">
  66. <el-input v-model="searchModel.itemDesc"></el-input>
  67. </el-form-item>
  68. <el-form-item label=" ">
  69. <el-button type="primary" @click="handleSearch">查询</el-button>
  70. </el-form-item>
  71. </el-form>
  72. <el-row :gutter="20">
  73. <!--表格1-->
  74. <el-col :span="11">
  75. <span style="font-size: 12px">可选属性</span>
  76. <el-table
  77. height="400px"
  78. :data="dataList"
  79. ref="searchTable"
  80. @selection-change="(selection)=>handleSelectionChange(selection,'searchTable')"
  81. @row-click="(row,column,event)=>handleRowClick(row,column,event,'searchTable')"
  82. border>
  83. <el-table-column
  84. type="selection"
  85. header-align="center"
  86. align="center"
  87. width="50">
  88. </el-table-column>
  89. <el-table-column
  90. prop="itemNo"
  91. header-align="center"
  92. align="left"
  93. label="属性编码">
  94. </el-table-column>
  95. <el-table-column
  96. prop="itemDesc"
  97. header-align="center"
  98. align="left"
  99. label="属性名称">
  100. </el-table-column>
  101. </el-table>
  102. </el-col>
  103. <!--按钮-->
  104. <el-col :span="2">
  105. <div style="text-align: center;display: flex;flex-direction: column;align-items: center;justify-content: center;height: 400px">
  106. <div><el-button type="primary" @click="handleAdd">新增<i class="el-icon-d-arrow-right el-icon--right"></i></el-button></div>
  107. <div><el-button type="primary" @click="handleDelete" icon="el-icon-d-arrow-left" style="margin-top: 10px">删除</el-button></div>
  108. </div>
  109. </el-col>
  110. <!--表格2-->
  111. <el-col :span="11">
  112. <span style="font-size: 12px">已有属性</span>
  113. <el-table
  114. height="400px"
  115. :data="modelList"
  116. ref="dataTable"
  117. @selection-change="(selection)=>handleSelectionChange(selection,'dataTable')"
  118. @row-click="(row,column,event)=>handleRowClick(row,column,event,'dataTable')"
  119. border>
  120. <el-table-column
  121. type="selection"
  122. header-align="center"
  123. align="center"
  124. width="50">
  125. </el-table-column>
  126. <el-table-column
  127. prop="itemNo"
  128. header-align="center"
  129. align="left"
  130. label="属性编码">
  131. </el-table-column>
  132. <el-table-column
  133. prop="itemDesc"
  134. header-align="center"
  135. align="left"
  136. label="属性名称">
  137. </el-table-column>
  138. </el-table>
  139. </el-col>
  140. </el-row>
  141. </div>
  142. </template>
  143. <style scoped>
  144. </style>