Showing
10 changed files
with
147 additions
and
69 deletions
| @@ -215,7 +215,7 @@ export default { | @@ -215,7 +215,7 @@ export default { | ||
| 215 | const t = this.detail.standardApproved || false | 215 | const t = this.detail.standardApproved || false |
| 216 | const e = this.detail.standardShowExamine || false | 216 | const e = this.detail.standardShowExamine || false |
| 217 | return [ | 217 | return [ |
| 218 | - { ...this.buttons[0], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:modifyx')) }, | 218 | + { ...this.buttons[0], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:modify')) }, |
| 219 | { ...this.buttons[1], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:delete')) }, | 219 | { ...this.buttons[1], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:delete')) }, |
| 220 | { ...this.buttons[2], visible: (s !== 'DELETED' && t !== 'AUDIT' && t !== 'PASS' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload')) }, | 220 | { ...this.buttons[2], visible: (s !== 'DELETED' && t !== 'AUDIT' && t !== 'PASS' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload')) }, |
| 221 | { ...this.buttons[3], visible: (s === 'STANDARD' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload-seal')) }, | 221 | { ...this.buttons[3], visible: (s === 'STANDARD' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload-seal')) }, |
| @@ -104,11 +104,7 @@ export default { | @@ -104,11 +104,7 @@ export default { | ||
| 104 | searchKeyword: '', | 104 | searchKeyword: '', |
| 105 | searchKeywordDebounced: '', | 105 | searchKeywordDebounced: '', |
| 106 | 106 | ||
| 107 | - tabs: [ | ||
| 108 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 109 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 110 | - { label: '已删除合同', value: 'DELETED' } | ||
| 111 | - ], | 107 | + |
| 112 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 113 | 109 | ||
| 114 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -126,6 +122,23 @@ export default { | @@ -126,6 +122,23 @@ export default { | ||
| 126 | } | 122 | } |
| 127 | }, | 123 | }, |
| 128 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 134 | + { label: '已删除合同', value: 'DELETED' } | ||
| 135 | + ] | ||
| 136 | + } | ||
| 137 | + return [ | ||
| 138 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 139 | + { label: '标准合同', value: 'STANDARD' } | ||
| 140 | + ] | ||
| 141 | + }, | ||
| 129 | extraCombined() { | 142 | extraCombined() { |
| 130 | return { | 143 | return { |
| 131 | keyword: this.searchKeywordDebounced || undefined, | 144 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -344,10 +357,10 @@ export default { | @@ -344,10 +357,10 @@ export default { | ||
| 344 | margin-bottom: 0; | 357 | margin-bottom: 0; |
| 345 | } | 358 | } |
| 346 | text { | 359 | text { |
| 347 | - width: 60%; | 360 | + width: 50%; |
| 348 | &:last-child { | 361 | &:last-child { |
| 349 | color: rgba(0,0,0,0.9); | 362 | color: rgba(0,0,0,0.9); |
| 350 | - width: 40%; | 363 | + width: 50%; |
| 351 | } | 364 | } |
| 352 | } | 365 | } |
| 353 | } | 366 | } |
| @@ -105,13 +105,6 @@ export default { | @@ -105,13 +105,6 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | 109 | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -129,6 +122,25 @@ export default { | @@ -129,6 +122,25 @@ export default { | ||
| 129 | } | 122 | } |
| 130 | }, | 123 | }, |
| 131 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 135 | + { label: '已删除合同', value: 'DELETED' } | ||
| 136 | + ] | ||
| 137 | + } | ||
| 138 | + return [ | ||
| 139 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 140 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 141 | + { label: '标准合同', value: 'STANDARD' } | ||
| 142 | + ] | ||
| 143 | + }, | ||
| 132 | extraCombined() { | 144 | extraCombined() { |
| 133 | return { | 145 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 146 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -359,10 +371,10 @@ export default { | @@ -359,10 +371,10 @@ export default { | ||
| 359 | margin-bottom: 0; | 371 | margin-bottom: 0; |
| 360 | } | 372 | } |
| 361 | text { | 373 | text { |
| 362 | - width: 60%; | 374 | + width: 50%; |
| 363 | &:last-child { | 375 | &:last-child { |
| 364 | color: rgba(0,0,0,0.9); | 376 | color: rgba(0,0,0,0.9); |
| 365 | - width: 40%; | 377 | + width: 50%; |
| 366 | } | 378 | } |
| 367 | } | 379 | } |
| 368 | } | 380 | } |
| @@ -105,13 +105,6 @@ export default { | @@ -105,13 +105,6 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | 109 | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -129,6 +122,25 @@ export default { | @@ -129,6 +122,25 @@ export default { | ||
| 129 | } | 122 | } |
| 130 | }, | 123 | }, |
| 131 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 135 | + { label: '已删除合同', value: 'DELETED' } | ||
| 136 | + ] | ||
| 137 | + } | ||
| 138 | + return [ | ||
| 139 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 140 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 141 | + { label: '标准合同', value: 'STANDARD' } | ||
| 142 | + ] | ||
| 143 | + }, | ||
| 132 | extraCombined() { | 144 | extraCombined() { |
| 133 | return { | 145 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 146 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -361,10 +373,10 @@ export default { | @@ -361,10 +373,10 @@ export default { | ||
| 361 | margin-bottom: 0; | 373 | margin-bottom: 0; |
| 362 | } | 374 | } |
| 363 | text { | 375 | text { |
| 364 | - width: 60%; | 376 | + width: 50%; |
| 365 | &:last-child { | 377 | &:last-child { |
| 366 | color: rgba(0,0,0,0.9); | 378 | color: rgba(0,0,0,0.9); |
| 367 | - width: 40%; | 379 | + width: 50%; |
| 368 | } | 380 | } |
| 369 | } | 381 | } |
| 370 | } | 382 | } |
| @@ -317,11 +317,11 @@ export default { | @@ -317,11 +317,11 @@ export default { | ||
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | text { | 319 | text { |
| 320 | - width: 60%; | 320 | + width: 50%; |
| 321 | 321 | ||
| 322 | &:last-child { | 322 | &:last-child { |
| 323 | color: rgba(0, 0, 0, 0.9); | 323 | color: rgba(0, 0, 0, 0.9); |
| 324 | - width: 40%; | 324 | + width: 50%; |
| 325 | } | 325 | } |
| 326 | } | 326 | } |
| 327 | } | 327 | } |
| @@ -103,12 +103,6 @@ export default { | @@ -103,12 +103,6 @@ export default { | ||
| 103 | return { | 103 | return { |
| 104 | searchKeyword: '', | 104 | searchKeyword: '', |
| 105 | searchKeywordDebounced: '', | 105 | searchKeywordDebounced: '', |
| 106 | - | ||
| 107 | - tabs: [ | ||
| 108 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 109 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 110 | - { label: '已删除合同', value: 'DELETED' } | ||
| 111 | - ], | ||
| 112 | status: 'DRAFT', | 106 | status: 'DRAFT', |
| 113 | 107 | ||
| 114 | query: { deptId: '', deptName: '', dateRange: [] }, | 108 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -126,6 +120,23 @@ export default { | @@ -126,6 +120,23 @@ export default { | ||
| 126 | } | 120 | } |
| 127 | }, | 121 | }, |
| 128 | computed: { | 122 | computed: { |
| 123 | + roleCodes() { | ||
| 124 | + const g = this.$store && this.$store.getters | ||
| 125 | + return (g && g.roleCodes) || [] | ||
| 126 | + }, | ||
| 127 | + tabs() { | ||
| 128 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 129 | + return [ | ||
| 130 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 131 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 132 | + { label: '已删除合同', value: 'DELETED' } | ||
| 133 | + ] | ||
| 134 | + } | ||
| 135 | + return [ | ||
| 136 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 137 | + { label: '标准合同', value: 'STANDARD' } | ||
| 138 | + ] | ||
| 139 | + }, | ||
| 129 | extraCombined() { | 140 | extraCombined() { |
| 130 | return { | 141 | return { |
| 131 | keyword: this.searchKeywordDebounced || undefined, | 142 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -359,10 +370,10 @@ export default { | @@ -359,10 +370,10 @@ export default { | ||
| 359 | margin-bottom: 0; | 370 | margin-bottom: 0; |
| 360 | } | 371 | } |
| 361 | text { | 372 | text { |
| 362 | - width: 60%; | 373 | + width: 50%; |
| 363 | &:last-child { | 374 | &:last-child { |
| 364 | color: rgba(0,0,0,0.9); | 375 | color: rgba(0,0,0,0.9); |
| 365 | - width: 40%; | 376 | + width: 50%; |
| 366 | } | 377 | } |
| 367 | } | 378 | } |
| 368 | } | 379 | } |
| @@ -103,21 +103,12 @@ export default { | @@ -103,21 +103,12 @@ export default { | ||
| 103 | return { | 103 | return { |
| 104 | searchKeyword: '', | 104 | searchKeyword: '', |
| 105 | searchKeywordDebounced: '', | 105 | searchKeywordDebounced: '', |
| 106 | - | ||
| 107 | - tabs: [ | ||
| 108 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 109 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 110 | - { label: '已删除合同', value: 'DELETED' } | ||
| 111 | - ], | ||
| 112 | status: 'DRAFT', | 106 | status: 'DRAFT', |
| 113 | - | ||
| 114 | query: { deptId: '', deptName: '', dateRange: [] }, | 107 | query: { deptId: '', deptName: '', dateRange: [] }, |
| 115 | extraParams: {}, | 108 | extraParams: {}, |
| 116 | - | ||
| 117 | batchMode: false, | 109 | batchMode: false, |
| 118 | selectedKeys: [], | 110 | selectedKeys: [], |
| 119 | currentItems: [], | 111 | currentItems: [], |
| 120 | - | ||
| 121 | filterVisible: false, | 112 | filterVisible: false, |
| 122 | filterForm: { deptId: '', deptName: '', dateRange: [] }, | 113 | filterForm: { deptId: '', deptName: '', dateRange: [] }, |
| 123 | deptSelectVisible: false, | 114 | deptSelectVisible: false, |
| @@ -126,6 +117,23 @@ export default { | @@ -126,6 +117,23 @@ export default { | ||
| 126 | } | 117 | } |
| 127 | }, | 118 | }, |
| 128 | computed: { | 119 | computed: { |
| 120 | + roleCodes() { | ||
| 121 | + const g = this.$store && this.$store.getters | ||
| 122 | + return (g && g.roleCodes) || [] | ||
| 123 | + }, | ||
| 124 | + tabs() { | ||
| 125 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 126 | + return [ | ||
| 127 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 128 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 129 | + { label: '已删除合同', value: 'DELETED' } | ||
| 130 | + ] | ||
| 131 | + } | ||
| 132 | + return [ | ||
| 133 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' } | ||
| 135 | + ] | ||
| 136 | + }, | ||
| 129 | extraCombined() { | 137 | extraCombined() { |
| 130 | return { | 138 | return { |
| 131 | keyword: this.searchKeywordDebounced || undefined, | 139 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -359,10 +367,10 @@ export default { | @@ -359,10 +367,10 @@ export default { | ||
| 359 | margin-bottom: 0; | 367 | margin-bottom: 0; |
| 360 | } | 368 | } |
| 361 | text { | 369 | text { |
| 362 | - width: 60%; | 370 | + width: 50%; |
| 363 | &:last-child { | 371 | &:last-child { |
| 364 | color: rgba(0,0,0,0.9); | 372 | color: rgba(0,0,0,0.9); |
| 365 | - width: 40%; | 373 | + width: 50%; |
| 366 | } | 374 | } |
| 367 | } | 375 | } |
| 368 | } | 376 | } |
| @@ -105,13 +105,6 @@ export default { | @@ -105,13 +105,6 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | 109 | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -129,6 +122,25 @@ export default { | @@ -129,6 +122,25 @@ export default { | ||
| 129 | } | 122 | } |
| 130 | }, | 123 | }, |
| 131 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 135 | + { label: '已删除合同', value: 'DELETED' } | ||
| 136 | + ] | ||
| 137 | + } | ||
| 138 | + return [ | ||
| 139 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 140 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 141 | + { label: '标准合同', value: 'STANDARD' } | ||
| 142 | + ] | ||
| 143 | + }, | ||
| 132 | extraCombined() { | 144 | extraCombined() { |
| 133 | return { | 145 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 146 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -361,10 +373,10 @@ export default { | @@ -361,10 +373,10 @@ export default { | ||
| 361 | margin-bottom: 0; | 373 | margin-bottom: 0; |
| 362 | } | 374 | } |
| 363 | text { | 375 | text { |
| 364 | - width: 60%; | 376 | + width: 50%; |
| 365 | &:last-child { | 377 | &:last-child { |
| 366 | color: rgba(0,0,0,0.9); | 378 | color: rgba(0,0,0,0.9); |
| 367 | - width: 40%; | 379 | + width: 50%; |
| 368 | } | 380 | } |
| 369 | } | 381 | } |
| 370 | } | 382 | } |
| @@ -339,11 +339,11 @@ export default { | @@ -339,11 +339,11 @@ export default { | ||
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | text { | 341 | text { |
| 342 | - width: 60%; | 342 | + width: 50%; |
| 343 | 343 | ||
| 344 | &:last-child { | 344 | &:last-child { |
| 345 | color: rgba(0, 0, 0, 0.9); | 345 | color: rgba(0, 0, 0, 0.9); |
| 346 | - width: 40%; | 346 | + width: 50%; |
| 347 | } | 347 | } |
| 348 | } | 348 | } |
| 349 | } | 349 | } |
| @@ -105,18 +105,9 @@ export default { | @@ -105,18 +105,9 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | - | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 109 | query: { deptId: '', deptName: '', dateRange: [] }, |
| 118 | extraParams: {}, | 110 | extraParams: {}, |
| 119 | - | ||
| 120 | batchMode: false, | 111 | batchMode: false, |
| 121 | selectedKeys: [], | 112 | selectedKeys: [], |
| 122 | currentItems: [], | 113 | currentItems: [], |
| @@ -129,6 +120,25 @@ export default { | @@ -129,6 +120,25 @@ export default { | ||
| 129 | } | 120 | } |
| 130 | }, | 121 | }, |
| 131 | computed: { | 122 | computed: { |
| 123 | + roleCodes() { | ||
| 124 | + const g = this.$store && this.$store.getters | ||
| 125 | + return (g && g.roleCodes) || [] | ||
| 126 | + }, | ||
| 127 | + tabs() { | ||
| 128 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 129 | + return [ | ||
| 130 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 131 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 132 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 133 | + { label: '已删除合同', value: 'DELETED' } | ||
| 134 | + ] | ||
| 135 | + } | ||
| 136 | + return [ | ||
| 137 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 138 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 139 | + { label: '标准合同', value: 'STANDARD' } | ||
| 140 | + ] | ||
| 141 | + }, | ||
| 132 | extraCombined() { | 142 | extraCombined() { |
| 133 | return { | 143 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 144 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -363,10 +373,10 @@ export default { | @@ -363,10 +373,10 @@ export default { | ||
| 363 | margin-bottom: 0; | 373 | margin-bottom: 0; |
| 364 | } | 374 | } |
| 365 | text { | 375 | text { |
| 366 | - width: 60%; | 376 | + width: 50%; |
| 367 | &:last-child { | 377 | &:last-child { |
| 368 | color: rgba(0,0,0,0.9); | 378 | color: rgba(0,0,0,0.9); |
| 369 | - width: 40%; | 379 | + width: 50%; |
| 370 | } | 380 | } |
| 371 | } | 381 | } |
| 372 | } | 382 | } |