data-source-form.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <!--
  2. 数据资源审批内容
  3. @Author: linqian
  4. @Date: 2021-07-13
  5. -->
  6. <template>
  7. <div>
  8. <transfer-table
  9. ref="transferTable"
  10. filterable
  11. filter-placeholder="数据资源名称搜索"
  12. :titles="['可选资源', '已选资源']"
  13. :data="data"
  14. :value="selectKeys"
  15. :headerCellStyle="{ background: '#fafafa' }"
  16. label-name="serviceName"
  17. :column-label-name-list="labelList"
  18. value-name="id"
  19. ></transfer-table>
  20. <div v-footer>
  21. <dg-button @click="handleCancel">取消</dg-button>
  22. <dg-button type="primary" @click="handleSubmit">确定</dg-button>
  23. </div>
  24. </div>
  25. </template>
  26. <script>
  27. import transferTable from '@/pages/common/transfer-table';
  28. export default {
  29. components: { transferTable },
  30. props: {
  31. selectKeys: [Array]
  32. },
  33. data() {
  34. let attr = [];
  35. for (let i = 0; i < 20; i++) {
  36. const element = {
  37. id: i,
  38. serviceName: '数据_'+i,
  39. serviceIdentifier: 'fuwuyi-'+i
  40. };
  41. attr.push(element);
  42. }
  43. return {
  44. labelList: [
  45. {
  46. val: 'serviceName',
  47. label: '数据资源名称'
  48. },
  49. {
  50. val: 'serviceIdentifier',
  51. label: '数据资源标识符'
  52. }
  53. ],
  54. data: attr
  55. };
  56. },
  57. methods: {
  58. handleCancel() {
  59. this.$emit("close");
  60. },
  61. handleSubmit() {
  62. const targetData = this.$refs.transferTable.targetData;
  63. if (targetData.length == 0) {
  64. this.$message.warning('请至少选择一条数据资源!');
  65. } else {
  66. const approveContent = targetData.map(item => item.serviceName).join(",");
  67. const cancelContent = "";
  68. const selectedValue = targetData.map(item => item.id);
  69. this.$emit('success', approveContent, cancelContent, selectedValue);
  70. }
  71. }
  72. }
  73. };
  74. </script>
  75. <style lang='scss' scoped>
  76. @import url("../index.scss");
  77. </style>