MergeInventor.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <template>
  2. <!-- 合并发明人,合并权利人/申请人 -->
  3. <div class="">
  4. <el-drawer class="custom-drawer-form" title="合并发明人" size="1000px" :visible.sync="drawer" direction="rtl"
  5. :before-close="close" destroy-on-close>
  6. <el-container class="patent-inventor-merge">
  7. <el-header style="display:flex;align-items:center;justify-content: space-between;">
  8. <div>
  9. <mySearch style="width: 500px" :SearchFields="searchFiled" @search="search" :searchValue="searchOption">
  10. </mySearch>
  11. </div>
  12. <div>
  13. <el-button type="primary" size="small" @click="handleAdd()">新增</el-button>
  14. </div>
  15. </el-header>
  16. <el-main class="container-common-main">
  17. <el-table v-loading="loading" :data="tableData" border header-row-class-name="custom-table-header">
  18. <el-table-column type="index" label="#" width="55" align="center"></el-table-column>
  19. <el-table-column prop="name" label="名称" align="center" show-overflow-tooltip></el-table-column>
  20. <template v-if="mergeType == 0">
  21. <el-table-column prop="country" label="国家" align="center" show-overflow-tooltip></el-table-column>
  22. <el-table-column prop="address" label="地址" align="center" show-overflow-tooltip></el-table-column>
  23. </template>
  24. <el-table-column prop="createTime" label="更新时间" align="center" show-overflow-tooltip> </el-table-column>
  25. <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column>
  26. <el-table-column label="操作" align="center" width="150">
  27. <template slot-scope="scope">
  28. <el-dropdown split-button type="primary" size="small">
  29. <span @click="handleEdit(scope.row)"
  30. v-if="$permission('/workspace/folder/merge/inventorMerge/modify')">编辑</span>
  31. <span v-else :disabled="true">编辑</span>
  32. <el-dropdown-menu slot="dropdown" class="text-align_center">
  33. <el-dropdown-item class="color-red" @click.native="handleDelete(scope.row)"
  34. :disabled="!$permission('/workspace/folder/merge/inventorMerge/delete')">删除</el-dropdown-item>
  35. </el-dropdown-menu>
  36. </el-dropdown>
  37. </template>
  38. </el-table-column>
  39. </el-table>
  40. <div class="pagination">
  41. <el-pagination :current-page.sync="queryParams.pageNum" :page-size="queryParams.pageSize" :total="total"
  42. @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper" background></el-pagination>
  43. </div>
  44. </el-main>
  45. <el-footer class="footer-common">
  46. <el-button @click="close">关 闭</el-button>
  47. </el-footer>
  48. </el-container>
  49. </el-drawer>
  50. <mergeDialog ref="mergeDialog" :projectId="projectId" @close="close2"></mergeDialog>
  51. </div>
  52. </template>
  53. <script>
  54. import mergeDialog from './merge.vue'
  55. export default {
  56. components: {
  57. mergeDialog,
  58. },
  59. data() {
  60. return {
  61. drawer: false,
  62. loading: false,
  63. total: 0,
  64. tableData: [],
  65. projectId: 0,
  66. queryParams: {
  67. pageSize: 10,
  68. pageNum: 1,
  69. },
  70. //检索字段
  71. searchFiled: [
  72. {
  73. label: '名称',
  74. value: 'name',
  75. type: 'String',
  76. }
  77. ],
  78. //检索条件
  79. searchOption: {},
  80. // 判断是2发明人还是0权利人/申请人
  81. mergeType:'',
  82. }
  83. },
  84. mounted() {
  85. },
  86. methods: {
  87. // 子组件传来的消息
  88. close2() {
  89. this.getList()
  90. },
  91. // 编辑合并弹窗
  92. handleEdit(row) {
  93. row.mergeType = this.mergeType
  94. this.$refs.mergeDialog.open(row, '编辑合并')
  95. },
  96. // 打开新增弹窗
  97. handleAdd() {
  98. this.$refs.mergeDialog.open({
  99. mergeType: this.mergeType,
  100. }, '新增合并')
  101. },
  102. // 打开合并发明人抽屉弹窗
  103. open(obj) {
  104. this.projectId = obj.projectId
  105. this.mergeType = obj.type
  106. this.drawer = true
  107. this.getList()
  108. },
  109. //获取检索条件检索
  110. search(val) {
  111. let params = {}
  112. val.forEach(item => {
  113. if (item.type == 3) {
  114. params[item.value] = item.searchValue.map(itemValue => {
  115. return itemValue.value
  116. })
  117. } else {
  118. params[item.value] = item.searchValue.label
  119. }
  120. })
  121. // 返回条件对象
  122. this.searchOption = this.$commonJS.ArrayToArray(val)
  123. // 调用查询接口
  124. this.queryParams.current = 1
  125. this.getList()
  126. },
  127. // 获取表格数据
  128. getList() {
  129. this.loading = true
  130. let params = {
  131. projectId: this.projectId,
  132. ...this.queryParams,
  133. searchQuery: this.$commonJS.objectToString(this.searchOption || {}),//检索条件
  134. type: this.mergeType,//2是发明人0是申请人/权利人
  135. }
  136. this.$api.selectMergePerson(params).then(response => {
  137. if (response.code == 200) {
  138. this.tableData = response.data.data
  139. this.total = response.data.total
  140. this.loading = false
  141. }
  142. }).catch(error => {
  143. this.loading = false
  144. })
  145. },
  146. // 分页信息
  147. handleCurrentChange(val) {
  148. this.queryParams.pageNum = val;
  149. this.getList();
  150. },
  151. // 关闭抽屉弹窗
  152. close() {
  153. this.drawer = false
  154. this.$emit('mergeClose')
  155. },
  156. // 删除表格数据
  157. handleDelete(row) {
  158. this.$confirm('确认删除本条数据吗?', '提示', {
  159. confirmButtonText: '确定',
  160. cancelButtonText: '取消',
  161. type: 'warning'
  162. }).then(() => {
  163. this.loading = true
  164. let params = {
  165. id: row.id,
  166. type: 2,
  167. }
  168. this.$api.delMergePerson(params).then(response => {
  169. if (response.code == 200) {
  170. this.$message.success('删除成功')
  171. this.loading = false
  172. this.getList()
  173. }
  174. }).catch(error => {
  175. this.loading = false
  176. })
  177. })
  178. },
  179. // 打开新增弹窗
  180. // handleAdd() {
  181. // this.$refs.mergeDialog.open({
  182. // // mergedName: [],
  183. // mergeType: 1,
  184. // }, '新增合并')
  185. // // this.$refs.patentInventorMergeManageDrawer.open({
  186. // // projectId: this.queryParams.projectId,
  187. // // // mergedName: [],
  188. // // name: '',
  189. // // remark: '',
  190. // // }, '新增合并')
  191. // },
  192. // // 编辑合并弹窗
  193. // handleEdit(row) {
  194. // row.mergeType = 1
  195. // this.$refs.mergeDialog.open(row, '编辑合并')
  196. // // row.projectId = this.projectId
  197. // // this.$refs.patentInventorMergeManageDrawer.open(row, '编辑合并')
  198. // },
  199. }
  200. }
  201. </script>
  202. <style lang="scss">
  203. .patent-inventor-merge {
  204. .pagination {
  205. text-align: center;
  206. margin: 20px 0;
  207. }
  208. }
  209. </style>