MergeInventor.vue 7.1 KB

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