style:登记导航栏样式修改
Showing
11 changed files
with
640 additions
and
628 deletions
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-05-08 15:19:43 | ||
| 5 | --> | ||
| 1 | <template> | 6 | <template> |
| 2 | <section class="app-main"> | 7 | <section class="app-main"> |
| 3 | <transition name="fade-transform" mode="out-in"> | 8 | <transition name="fade-transform" mode="out-in"> |
| ... | @@ -6,26 +11,25 @@ | ... | @@ -6,26 +11,25 @@ |
| 6 | </section> | 11 | </section> |
| 7 | </template> | 12 | </template> |
| 8 | <script> | 13 | <script> |
| 9 | export default { | 14 | export default { |
| 10 | name: 'AppMain', | 15 | name: 'AppMain', |
| 11 | computed: { | 16 | computed: { |
| 12 | key () { | 17 | key () { |
| 13 | return this.$route.path | 18 | return this.$route.path |
| 19 | }, | ||
| 14 | }, | 20 | }, |
| 15 | }, | 21 | } |
| 16 | } | ||
| 17 | </script> | 22 | </script> |
| 18 | 23 | ||
| 19 | <style lang="scss" scoped> | 24 | <style lang="scss" scoped> |
| 20 | .hasTagsView { | 25 | .hasTagsView { |
| 21 | .app-main { | 26 | .app-main { |
| 22 | height: calc(100% - 41px); | 27 | height: calc(100% - 50px); |
| 23 | overflow-x: auto; | 28 | overflow-x: auto; |
| 24 | padding: 5px; | 29 | padding: 5px; |
| 25 | box-sizing: border-box; | 30 | box-sizing: border-box; |
| 26 | background-color: #EDF1F7; | 31 | background-color: #edf1f7; |
| 27 | box-sizing: border-box; | 32 | box-sizing: border-box; |
| 28 | 33 | } | |
| 29 | } | 34 | } |
| 30 | } | ||
| 31 | </style> | 35 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -19,278 +19,277 @@ | ... | @@ -19,278 +19,277 @@ |
| 19 | </template> | 19 | </template> |
| 20 | 20 | ||
| 21 | <script> | 21 | <script> |
| 22 | import ScrollPane from './ScrollPane' | 22 | import ScrollPane from './ScrollPane' |
| 23 | import path from 'path' | 23 | import path from 'path' |
| 24 | 24 | ||
| 25 | export default { | 25 | export default { |
| 26 | components: { ScrollPane }, | 26 | components: { ScrollPane }, |
| 27 | data () { | 27 | data () { |
| 28 | return { | 28 | return { |
| 29 | visible: false, | 29 | visible: false, |
| 30 | top: 0, | 30 | top: 0, |
| 31 | left: 0, | 31 | left: 0, |
| 32 | selectedTag: {}, | 32 | selectedTag: {}, |
| 33 | affixTags: [] | 33 | affixTags: [] |
| 34 | } | ||
| 35 | }, | ||
| 36 | computed: { | ||
| 37 | visitedViews () { | ||
| 38 | return this.$store.state.tagsView.visitedViews | ||
| 39 | }, | ||
| 40 | routes () { | ||
| 41 | return this.$store.state.permission.routes | ||
| 42 | } | ||
| 43 | }, | ||
| 44 | watch: { | ||
| 45 | $route () { | ||
| 46 | this.addTags() | ||
| 47 | this.moveToCurrentTag() | ||
| 48 | }, | ||
| 49 | visible (value) { | ||
| 50 | if (value) { | ||
| 51 | document.body.addEventListener('click', this.closeMenu) | ||
| 52 | } else { | ||
| 53 | document.body.removeEventListener('click', this.closeMenu) | ||
| 54 | } | 34 | } |
| 55 | } | ||
| 56 | }, | ||
| 57 | mounted () { | ||
| 58 | this.initTags() | ||
| 59 | this.addTags() | ||
| 60 | }, | ||
| 61 | methods: { | ||
| 62 | isActive (route) { | ||
| 63 | return route.path === this.$route.path | ||
| 64 | }, | ||
| 65 | isAffix (tag) { | ||
| 66 | return tag.meta && tag.meta.affix | ||
| 67 | }, | 35 | }, |
| 68 | filterAffixTags (routes, basePath = '/') { | 36 | computed: { |
| 69 | let tags = [] | 37 | visitedViews () { |
| 70 | routes.forEach(route => { | 38 | return this.$store.state.tagsView.visitedViews |
| 71 | if (route.meta && route.meta.affix) { | 39 | }, |
| 72 | const tagPath = path.resolve(basePath, route.path) | 40 | routes () { |
| 73 | tags.push({ | 41 | return this.$store.state.permission.routes |
| 74 | fullPath: tagPath, | 42 | } |
| 75 | path: tagPath, | ||
| 76 | name: route.name, | ||
| 77 | meta: { ...route.meta } | ||
| 78 | }) | ||
| 79 | } | ||
| 80 | if (route.children) { | ||
| 81 | const tempTags = this.filterAffixTags(route.children, route.path) | ||
| 82 | if (tempTags.length >= 1) { | ||
| 83 | tags = [...tags, ...tempTags] | ||
| 84 | } | ||
| 85 | } | ||
| 86 | }) | ||
| 87 | return tags | ||
| 88 | }, | 43 | }, |
| 89 | initTags () { | 44 | watch: { |
| 90 | const affixTags = this.affixTags = this.filterAffixTags(this.routes) | 45 | $route () { |
| 91 | for (const tag of affixTags) { | 46 | this.addTags() |
| 92 | // Must have tag name | 47 | this.moveToCurrentTag() |
| 93 | if (tag.name) { | 48 | }, |
| 94 | this.$store.dispatch('tagsView/addVisitedView', tag) | 49 | visible (value) { |
| 50 | if (value) { | ||
| 51 | document.body.addEventListener('click', this.closeMenu) | ||
| 52 | } else { | ||
| 53 | document.body.removeEventListener('click', this.closeMenu) | ||
| 95 | } | 54 | } |
| 96 | } | 55 | } |
| 97 | }, | 56 | }, |
| 98 | addTags () { | 57 | mounted () { |
| 99 | const { name } = this.$route | 58 | this.initTags() |
| 100 | if (name) { | 59 | this.addTags() |
| 101 | this.$store.dispatch('tagsView/addView', this.$route) | ||
| 102 | } | ||
| 103 | return false | ||
| 104 | }, | 60 | }, |
| 105 | moveToCurrentTag () { | 61 | methods: { |
| 106 | const tags = this.$refs.tag | 62 | isActive (route) { |
| 107 | this.$nextTick(() => { | 63 | return route.path === this.$route.path |
| 108 | for (const tag of tags) { | 64 | }, |
| 109 | if (tag.to.path === this.$route.path) { | 65 | isAffix (tag) { |
| 110 | this.$refs.scrollPane.moveToTarget(tag) | 66 | return tag.meta && tag.meta.affix |
| 111 | // when query is different then update | 67 | }, |
| 112 | if (tag.to.fullPath !== this.$route.fullPath) { | 68 | filterAffixTags (routes, basePath = '/') { |
| 113 | this.$store.dispatch('tagsView/updateVisitedView', this.$route) | 69 | let tags = [] |
| 70 | routes.forEach(route => { | ||
| 71 | if (route.meta && route.meta.affix) { | ||
| 72 | const tagPath = path.resolve(basePath, route.path) | ||
| 73 | tags.push({ | ||
| 74 | fullPath: tagPath, | ||
| 75 | path: tagPath, | ||
| 76 | name: route.name, | ||
| 77 | meta: { ...route.meta } | ||
| 78 | }) | ||
| 79 | } | ||
| 80 | if (route.children) { | ||
| 81 | const tempTags = this.filterAffixTags(route.children, route.path) | ||
| 82 | if (tempTags.length >= 1) { | ||
| 83 | tags = [...tags, ...tempTags] | ||
| 114 | } | 84 | } |
| 115 | break | 85 | } |
| 86 | }) | ||
| 87 | return tags | ||
| 88 | }, | ||
| 89 | initTags () { | ||
| 90 | const affixTags = this.affixTags = this.filterAffixTags(this.routes) | ||
| 91 | for (const tag of affixTags) { | ||
| 92 | // Must have tag name | ||
| 93 | if (tag.name) { | ||
| 94 | this.$store.dispatch('tagsView/addVisitedView', tag) | ||
| 116 | } | 95 | } |
| 117 | } | 96 | } |
| 118 | }) | 97 | }, |
| 119 | }, | 98 | addTags () { |
| 120 | refreshSelectedTag (view) { | 99 | const { name } = this.$route |
| 121 | this.$store.dispatch('tagsView/delCachedView', view).then(() => { | 100 | if (name) { |
| 122 | const { fullPath } = view | 101 | this.$store.dispatch('tagsView/addView', this.$route) |
| 102 | } | ||
| 103 | return false | ||
| 104 | }, | ||
| 105 | moveToCurrentTag () { | ||
| 106 | const tags = this.$refs.tag | ||
| 123 | this.$nextTick(() => { | 107 | this.$nextTick(() => { |
| 124 | this.$router.replace({ | 108 | for (const tag of tags) { |
| 125 | path: '/redirect' + fullPath | 109 | if (tag.to.path === this.$route.path) { |
| 110 | this.$refs.scrollPane.moveToTarget(tag) | ||
| 111 | // when query is different then update | ||
| 112 | if (tag.to.fullPath !== this.$route.fullPath) { | ||
| 113 | this.$store.dispatch('tagsView/updateVisitedView', this.$route) | ||
| 114 | } | ||
| 115 | break | ||
| 116 | } | ||
| 117 | } | ||
| 118 | }) | ||
| 119 | }, | ||
| 120 | refreshSelectedTag (view) { | ||
| 121 | this.$store.dispatch('tagsView/delCachedView', view).then(() => { | ||
| 122 | const { fullPath } = view | ||
| 123 | this.$nextTick(() => { | ||
| 124 | this.$router.replace({ | ||
| 125 | path: '/redirect' + fullPath | ||
| 126 | }) | ||
| 126 | }) | 127 | }) |
| 127 | }) | 128 | }) |
| 128 | }) | 129 | }, |
| 129 | }, | 130 | closeSelectedTag (view) { |
| 130 | closeSelectedTag (view) { | 131 | this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => { |
| 131 | this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => { | 132 | if (this.isActive(view)) { |
| 132 | if (this.isActive(view)) { | 133 | this.toLastView(visitedViews, view) |
| 134 | } | ||
| 135 | }) | ||
| 136 | }, | ||
| 137 | closeOthersTags () { | ||
| 138 | this.$router.push(this.selectedTag) | ||
| 139 | this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { | ||
| 140 | this.moveToCurrentTag() | ||
| 141 | }) | ||
| 142 | }, | ||
| 143 | closeAllTags (view) { | ||
| 144 | this.$store.dispatch('tagsView/delAllViews').then(({ visitedViews }) => { | ||
| 145 | if (this.affixTags.some(tag => tag.path === view.path)) { | ||
| 146 | return | ||
| 147 | } | ||
| 133 | this.toLastView(visitedViews, view) | 148 | this.toLastView(visitedViews, view) |
| 134 | } | 149 | }) |
| 135 | }) | 150 | }, |
| 136 | }, | 151 | toLastView (visitedViews, view) { |
| 137 | closeOthersTags () { | 152 | const latestView = visitedViews.slice(-1)[0] |
| 138 | this.$router.push(this.selectedTag) | 153 | if (latestView) { |
| 139 | this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { | 154 | this.$router.push(latestView.fullPath) |
| 140 | this.moveToCurrentTag() | ||
| 141 | }) | ||
| 142 | }, | ||
| 143 | closeAllTags (view) { | ||
| 144 | this.$store.dispatch('tagsView/delAllViews').then(({ visitedViews }) => { | ||
| 145 | if (this.affixTags.some(tag => tag.path === view.path)) { | ||
| 146 | return | ||
| 147 | } | ||
| 148 | this.toLastView(visitedViews, view) | ||
| 149 | }) | ||
| 150 | }, | ||
| 151 | toLastView (visitedViews, view) { | ||
| 152 | const latestView = visitedViews.slice(-1)[0] | ||
| 153 | if (latestView) { | ||
| 154 | this.$router.push(latestView.fullPath) | ||
| 155 | } else { | ||
| 156 | // now the default is to redirect to the home page if there is no tags-view, | ||
| 157 | // you can adjust it according to your needs. | ||
| 158 | if (view.name === 'Dashboard') { | ||
| 159 | // to reload home page | ||
| 160 | this.$router.replace({ path: '/redirect' + view.fullPath }) | ||
| 161 | } else { | 155 | } else { |
| 162 | this.$router.push('/') | 156 | // now the default is to redirect to the home page if there is no tags-view, |
| 157 | // you can adjust it according to your needs. | ||
| 158 | if (view.name === 'Dashboard') { | ||
| 159 | // to reload home page | ||
| 160 | this.$router.replace({ path: '/redirect' + view.fullPath }) | ||
| 161 | } else { | ||
| 162 | this.$router.push('/') | ||
| 163 | } | ||
| 163 | } | 164 | } |
| 164 | } | 165 | }, |
| 165 | }, | 166 | openMenu (tag, e) { |
| 166 | openMenu (tag, e) { | 167 | // const menuMinWidth = 105 |
| 167 | // const menuMinWidth = 105 | 168 | // const offsetLeft = this.$el.getBoundingClientRect().left // container margin left |
| 168 | // const offsetLeft = this.$el.getBoundingClientRect().left // container margin left | 169 | // const offsetWidth = this.$el.offsetWidth // container width |
| 169 | // const offsetWidth = this.$el.offsetWidth // container width | 170 | // const maxLeft = offsetWidth - menuMinWidth // left boundary |
| 170 | // const maxLeft = offsetWidth - menuMinWidth // left boundary | 171 | // const left = e.clientX - offsetLeft + 15 // 15: margin right |
| 171 | // const left = e.clientX - offsetLeft + 15 // 15: margin right | 172 | // if (left > maxLeft) { |
| 172 | // if (left > maxLeft) { | 173 | // this.left = maxLeft |
| 173 | // this.left = maxLeft | 174 | // } else { |
| 174 | // } else { | ||
| 175 | // this.left = left | 175 | // this.left = left |
| 176 | // } | 176 | // } |
| 177 | this.left = e.clientX | 177 | this.left = e.clientX |
| 178 | this.top = e.clientY | 178 | this.top = e.clientY |
| 179 | this.visible = true | 179 | this.visible = true |
| 180 | this.selectedTag = tag | 180 | this.selectedTag = tag |
| 181 | }, | 181 | }, |
| 182 | closeMenu () { | 182 | closeMenu () { |
| 183 | this.visible = false | 183 | this.visible = false |
| 184 | }, | 184 | }, |
| 185 | handleScroll () { | 185 | handleScroll () { |
| 186 | this.closeMenu() | 186 | this.closeMenu() |
| 187 | } | ||
| 187 | } | 188 | } |
| 188 | } | 189 | } |
| 189 | } | ||
| 190 | </script> | 190 | </script> |
| 191 | 191 | ||
| 192 | <style lang="scss" scoped> | 192 | <style lang="scss" scoped> |
| 193 | .tags-view-container { | 193 | .tags-view-container { |
| 194 | height: 40px; | 194 | height: 50px; |
| 195 | width: 100%; | 195 | width: 100%; |
| 196 | background: #fff; | 196 | background: #fff; |
| 197 | border-bottom: 1px solid #d8dce5; | 197 | border-bottom: 1px solid #d8dce5; |
| 198 | box-sizing: border-box; | 198 | box-sizing: border-box; |
| 199 | padding-top: 3px; | 199 | padding-top: 3px; |
| 200 | box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); | 200 | box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 3px 0 rgba(0, 0, 0, 0.04); |
| 201 | 201 | ||
| 202 | .tags-view-wrapper { | 202 | .tags-view-wrapper { |
| 203 | .tags-view-item { | 203 | .tags-view-item { |
| 204 | display: inline-block; | 204 | display: inline-block; |
| 205 | position: relative; | 205 | position: relative; |
| 206 | cursor: pointer; | 206 | cursor: pointer; |
| 207 | height: 26px; | 207 | line-height: 30px; |
| 208 | line-height: 26px; | 208 | border: 1px solid #d8dce5; |
| 209 | border: 1px solid #d8dce5; | 209 | color: #495060; |
| 210 | color: #495060; | 210 | background: #fff; |
| 211 | background: #fff; | 211 | padding: 0 8px; |
| 212 | padding: 0 8px; | 212 | font-size: 12px; |
| 213 | font-size: 12px; | 213 | margin-left: 5px; |
| 214 | margin-left: 5px; | 214 | margin-top: 4px; |
| 215 | margin-top: 4px; | ||
| 216 | 215 | ||
| 217 | &:first-of-type { | 216 | &:first-of-type { |
| 218 | margin-left: 15px; | 217 | margin-left: 15px; |
| 219 | } | 218 | } |
| 220 | 219 | ||
| 221 | &:last-of-type { | 220 | &:last-of-type { |
| 222 | margin-right: 15px; | 221 | margin-right: 15px; |
| 223 | } | 222 | } |
| 224 | 223 | ||
| 225 | &.active { | 224 | &.active { |
| 226 | background-color: #0794FF; | 225 | background-color: #0794ff; |
| 227 | color: #fff; | 226 | color: #fff; |
| 228 | border-color: #0794FF; | 227 | border-color: #0794ff; |
| 229 | 228 | ||
| 230 | &::before { | 229 | &::before { |
| 231 | content: ''; | 230 | content: ""; |
| 232 | background: #fff; | 231 | background: #fff; |
| 233 | display: inline-block; | 232 | display: inline-block; |
| 234 | width: 8px; | 233 | width: 8px; |
| 235 | height: 8px; | 234 | height: 8px; |
| 236 | border-radius: 50%; | 235 | border-radius: 50%; |
| 237 | position: relative; | 236 | position: relative; |
| 238 | margin-right: 2px; | 237 | margin-right: 2px; |
| 238 | } | ||
| 239 | } | 239 | } |
| 240 | } | 240 | } |
| 241 | } | 241 | } |
| 242 | } | ||
| 243 | 242 | ||
| 244 | .contextmenu { | 243 | .contextmenu { |
| 245 | margin: 0; | ||
| 246 | background: #fff; | ||
| 247 | z-index: 3000; | ||
| 248 | position: absolute; | ||
| 249 | list-style-type: none; | ||
| 250 | padding: 5px 0; | ||
| 251 | border-radius: 4px; | ||
| 252 | font-size: 12px; | ||
| 253 | font-weight: 400; | ||
| 254 | color: #333; | ||
| 255 | box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3); | ||
| 256 | |||
| 257 | li { | ||
| 258 | margin: 0; | 244 | margin: 0; |
| 259 | padding: 7px 16px; | 245 | background: #fff; |
| 260 | cursor: pointer; | 246 | z-index: 3000; |
| 247 | position: absolute; | ||
| 248 | list-style-type: none; | ||
| 249 | padding: 5px 0; | ||
| 250 | border-radius: 4px; | ||
| 251 | font-size: 12px; | ||
| 252 | font-weight: 400; | ||
| 253 | color: #333; | ||
| 254 | box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); | ||
| 255 | |||
| 256 | li { | ||
| 257 | margin: 0; | ||
| 258 | padding: 7px 16px; | ||
| 259 | cursor: pointer; | ||
| 261 | 260 | ||
| 262 | &:hover { | 261 | &:hover { |
| 263 | background: #eee; | 262 | background: #eee; |
| 263 | } | ||
| 264 | } | 264 | } |
| 265 | } | 265 | } |
| 266 | } | 266 | } |
| 267 | } | ||
| 268 | </style> | 267 | </style> |
| 269 | 268 | ||
| 270 | <style lang="scss"> | 269 | <style lang="scss"> |
| 271 | //reset element css of el-icon-close | 270 | //reset element css of el-icon-close |
| 272 | .tags-view-wrapper { | 271 | .tags-view-wrapper { |
| 273 | .tags-view-item { | 272 | .tags-view-item { |
| 274 | .el-icon-close { | 273 | .el-icon-close { |
| 275 | width: 16px; | 274 | width: 16px; |
| 276 | height: 16px; | 275 | height: 16px; |
| 277 | vertical-align: 2px; | 276 | vertical-align: 2px; |
| 278 | border-radius: 50%; | 277 | border-radius: 50%; |
| 279 | text-align: center; | 278 | text-align: center; |
| 280 | transition: all .3s cubic-bezier(.645, .045, .355, 1); | 279 | transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
| 281 | transform-origin: 100% 50%; | 280 | transform-origin: 100% 50%; |
| 282 | 281 | ||
| 283 | &:before { | 282 | &:before { |
| 284 | transform: scale(.6); | 283 | transform: scale(0.6); |
| 285 | display: inline-block; | 284 | display: inline-block; |
| 286 | vertical-align: -3px; | 285 | vertical-align: -3px; |
| 287 | } | 286 | } |
| 288 | 287 | ||
| 289 | &:hover { | 288 | &:hover { |
| 290 | background-color: #b4bccc; | 289 | background-color: #b4bccc; |
| 291 | color: #fff; | 290 | color: #fff; |
| 291 | } | ||
| 292 | } | 292 | } |
| 293 | } | 293 | } |
| 294 | } | 294 | } |
| 295 | } | ||
| 296 | </style> | 295 | </style> | ... | ... |
| ... | @@ -44,7 +44,7 @@ | ... | @@ -44,7 +44,7 @@ |
| 44 | <el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button> | 44 | <el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button> |
| 45 | </div> | 45 | </div> |
| 46 | <div class="text" v-else> | 46 | <div class="text" v-else> |
| 47 | <el-button class="operation_button" type="text" @click="openZsylDialog(item, 2)">证书打印({{ item.szcs | 47 | <el-button class="operation_button" type="text" @click="openZsylDialog(item, 2)">证书打印1({{ item.szcs |
| 48 | }})</el-button> | 48 | }})</el-button> |
| 49 | <el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button> | 49 | <el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button> |
| 50 | </div> | 50 | </div> | ... | ... |
| ... | @@ -12,7 +12,6 @@ import { | ... | @@ -12,7 +12,6 @@ import { |
| 12 | getNextLinkInfo, | 12 | getNextLinkInfo, |
| 13 | } from "@/api/fqsq.js"; | 13 | } from "@/api/fqsq.js"; |
| 14 | import { mapGetters } from 'vuex' | 14 | import { mapGetters } from 'vuex' |
| 15 | import { log } from "bpmn-js-token-simulation"; | ||
| 16 | export default { | 15 | export default { |
| 17 | data () { | 16 | data () { |
| 18 | return { | 17 | return { |
| ... | @@ -37,7 +36,8 @@ export default { | ... | @@ -37,7 +36,8 @@ export default { |
| 37 | isRefresh: { | 36 | isRefresh: { |
| 38 | handler (newVal, oldVal) { | 37 | handler (newVal, oldVal) { |
| 39 | if (newVal) this.loadBdcdylist() | 38 | if (newVal) this.loadBdcdylist() |
| 40 | } | 39 | }, |
| 40 | immediate: true | ||
| 41 | } | 41 | } |
| 42 | }, | 42 | }, |
| 43 | mounted () { | 43 | mounted () { | ... | ... |
| ... | @@ -79,174 +79,180 @@ | ... | @@ -79,174 +79,180 @@ |
| 79 | </div> | 79 | </div> |
| 80 | </template> | 80 | </template> |
| 81 | <style scoped lang="scss"> | 81 | <style scoped lang="scss"> |
| 82 | @import "~@/styles/mixin.scss"; | 82 | @import "~@/styles/mixin.scss"; |
| 83 | @import "./workFrame.scss"; | 83 | @import "./workFrame.scss"; |
| 84 | </style> | 84 | </style> |
| 85 | <script> | 85 | <script> |
| 86 | import { mapGetters } from 'vuex' | 86 | import { mapGetters } from 'vuex' |
| 87 | import WorkFlow from "./mixin/index"; | 87 | import WorkFlow from "./mixin/index"; |
| 88 | import publicFlow from "./mixin/public.js"; | 88 | import publicFlow from "./mixin/public.js"; |
| 89 | import { getStepFormInfo } from "@/api/fqsq.js"; | 89 | import { getStepFormInfo } from "@/api/fqsq.js"; |
| 90 | import { getForm } from "./flowform"; | 90 | import { getForm } from "./flowform"; |
| 91 | import NoticeBar from "@/components/NoticeBar/index"; | 91 | import NoticeBar from "@/components/NoticeBar/index"; |
| 92 | import { deleteFlow, unClaimTask } from "@/api/ywbl.js"; | 92 | import { deleteFlow, unClaimTask } from "@/api/ywbl.js"; |
| 93 | import ProcessViewer from "./components/processViewer.vue"; | 93 | import ProcessViewer from "./components/processViewer.vue"; |
| 94 | import selectBdc from "@/views/ywbl/ywsq/selectBdc.vue"; | 94 | import selectBdc from "@/views/ywbl/ywsq/selectBdc.vue"; |
| 95 | export default { | 95 | export default { |
| 96 | components: { | 96 | components: { |
| 97 | selectBdc, | 97 | selectBdc, |
| 98 | NoticeBar, | 98 | NoticeBar, |
| 99 | ProcessViewer, | 99 | ProcessViewer, |
| 100 | }, | ||
| 101 | mixins: [WorkFlow, publicFlow], | ||
| 102 | data () { | ||
| 103 | return { | ||
| 104 | isDialog: false, | ||
| 105 | // 折叠 | ||
| 106 | isShowdrawer: true, | ||
| 107 | // 默认选中 | ||
| 108 | activeIndex: "0", | ||
| 109 | //受理申请标识码 | ||
| 110 | bsmSlsq: this.$route.query.bsmSlsq, | ||
| 111 | //当前流程所在环节 | ||
| 112 | bestepid: this.$route.query.bestepid, | ||
| 113 | //设置那个表单选中 | ||
| 114 | tabName: "", | ||
| 115 | //设置那个表单选择 | ||
| 116 | currentSelectTab: {}, | ||
| 117 | //表单集合 | ||
| 118 | tabList: [], | ||
| 119 | //选择加载哪一个组件 | ||
| 120 | componentTag: "", | ||
| 121 | //设置表单传递数据 | ||
| 122 | currentSelectProps: {}, | ||
| 123 | //材料分屏表单 | ||
| 124 | clxxForm: "", | ||
| 125 | //材料信息选择卡索引 | ||
| 126 | clxxIndex: "", | ||
| 127 | //材料信息选项卡对象 | ||
| 128 | clxxTab: {}, | ||
| 129 | //页面监听时间 | ||
| 130 | _beforeUnload_time: "", | ||
| 131 | //批量操作 | ||
| 132 | showBatch: false, | ||
| 133 | //批量操作按钮名称 | ||
| 134 | batchButtonName: "", | ||
| 135 | }; | ||
| 136 | }, | ||
| 137 | computed: { | ||
| 138 | ...mapGetters(['isRefresh']) | ||
| 139 | }, | ||
| 140 | watch: { | ||
| 141 | isRefresh: { | ||
| 142 | handler (newVal, oldVal) { | ||
| 143 | if (newVal) this.updateDialog() | ||
| 144 | } | ||
| 145 | } | ||
| 146 | }, | ||
| 147 | mounted () { | ||
| 148 | //添加页面监听事件 | ||
| 149 | window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e)); | ||
| 150 | window.addEventListener("unload", (e) => this.unloadHandler(e)); | ||
| 151 | }, | ||
| 152 | destroyed () { | ||
| 153 | window.removeEventListener("beforeunload", (e) => | ||
| 154 | this.beforeunloadHandler(e) | ||
| 155 | ); | ||
| 156 | window.removeEventListener("unload", (e) => this.unloadHandler(e)); | ||
| 157 | }, | ||
| 158 | methods: { | ||
| 159 | beforeunloadHandler () { | ||
| 160 | this._beforeUnload_time = new Date().getTime(); | ||
| 161 | }, | 100 | }, |
| 162 | unloadHandler (e) { | 101 | mixins: [WorkFlow, publicFlow], |
| 163 | this._gap_time = new Date().getTime() - this._beforeUnload_time; | 102 | data () { |
| 164 | //判断是窗口关闭还是刷新 | 103 | return { |
| 165 | if (this._gap_time <= 10) { | 104 | isDialog: false, |
| 166 | //取消认领 | 105 | // 折叠 |
| 167 | unClaimTask(this.bsmSlsq, this.bestepid); | 106 | isShowdrawer: true, |
| 168 | } | 107 | // 默认选中 |
| 108 | activeIndex: "0", | ||
| 109 | //受理申请标识码 | ||
| 110 | bsmSlsq: this.$route.query.bsmSlsq, | ||
| 111 | //当前流程所在环节 | ||
| 112 | bestepid: this.$route.query.bestepid, | ||
| 113 | //设置那个表单选中 | ||
| 114 | tabName: "", | ||
| 115 | //设置那个表单选择 | ||
| 116 | currentSelectTab: {}, | ||
| 117 | //表单集合 | ||
| 118 | tabList: [], | ||
| 119 | //选择加载哪一个组件 | ||
| 120 | componentTag: "", | ||
| 121 | //设置表单传递数据 | ||
| 122 | currentSelectProps: {}, | ||
| 123 | //材料分屏表单 | ||
| 124 | clxxForm: "", | ||
| 125 | //材料信息选择卡索引 | ||
| 126 | clxxIndex: "", | ||
| 127 | //材料信息选项卡对象 | ||
| 128 | clxxTab: {}, | ||
| 129 | //页面监听时间 | ||
| 130 | _beforeUnload_time: "", | ||
| 131 | //批量操作 | ||
| 132 | showBatch: false, | ||
| 133 | //批量操作按钮名称 | ||
| 134 | batchButtonName: "", | ||
| 135 | }; | ||
| 169 | }, | 136 | }, |
| 170 | changeLoadIndex () { | 137 | computed: { |
| 171 | this.loadIndex++; | 138 | ...mapGetters(['isRefresh']) |
| 172 | }, | 139 | }, |
| 173 | closeDialog () { | 140 | watch: { |
| 174 | this.myValue = false; | 141 | isRefresh: { |
| 142 | handler (newVal, oldVal) { | ||
| 143 | if (newVal) this.updateDialog() | ||
| 144 | } | ||
| 145 | } | ||
| 175 | }, | 146 | }, |
| 176 | // 更新列表 | 147 | mounted () { |
| 177 | updateDialog () { | 148 | //添加页面监听事件 |
| 178 | this.loadBdcdylist(); | 149 | window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e)); |
| 150 | window.addEventListener("unload", (e) => this.unloadHandler(e)); | ||
| 179 | }, | 151 | }, |
| 180 | // 删除左侧列表 | 152 | destroyed () { |
| 181 | handleDel (item) { | 153 | window.removeEventListener("beforeunload", (e) => |
| 182 | this.$confirm("确定要删除吗, 是否继续?", "提示", { | 154 | this.beforeunloadHandler(e) |
| 183 | confirmButtonText: "确定", | 155 | ); |
| 184 | cancelButtonText: "取消", | 156 | window.removeEventListener("unload", (e) => this.unloadHandler(e)); |
| 185 | type: "warning", | ||
| 186 | }) | ||
| 187 | .then(() => { | ||
| 188 | var formdata = new FormData(); | ||
| 189 | formdata.append("bsmSldyList", item.bsmSldy.split(",")); | ||
| 190 | formdata.append("bsmSlsq", this.bsmSlsq); | ||
| 191 | deleteFlow(formdata).then((res) => { | ||
| 192 | if (res.code == 200) { | ||
| 193 | this.$message.success("删除成功"); | ||
| 194 | this.loadBdcdylist(); | ||
| 195 | } else { | ||
| 196 | this.$message.error(res.message); | ||
| 197 | } | ||
| 198 | }); | ||
| 199 | }) | ||
| 200 | .catch(() => { | ||
| 201 | this.$message({ | ||
| 202 | type: "info", | ||
| 203 | message: "已取消删除", | ||
| 204 | }); | ||
| 205 | }); | ||
| 206 | }, | 157 | }, |
| 207 | //申请单元点击事件 | 158 | methods: { |
| 208 | stepForm (index) { | 159 | beforeunloadHandler () { |
| 209 | getStepFormInfo(this.currentSelectProps).then((res) => { | 160 | this._beforeUnload_time = new Date().getTime(); |
| 210 | if (res.code === 200) { | 161 | }, |
| 211 | this.fresh++; | 162 | unloadHandler (e) { |
| 212 | //获取单元对应的所有表单信息 | 163 | this._gap_time = new Date().getTime() - this._beforeUnload_time; |
| 213 | this.tabList = res.result; | 164 | //判断是窗口关闭还是刷新 |
| 214 | //默认加载第一个表单信息 | 165 | if (this._gap_time <= 10) { |
| 215 | this.tabName = res.result[0].value; | 166 | //取消认领 |
| 216 | //批量操作无分屏按钮 | 167 | unClaimTask(this.bsmSlsq, this.bestepid); |
| 217 | if (index != null) { | 168 | } |
| 218 | //处理分屏材料信息 | 169 | }, |
| 219 | let that = this; | 170 | changeLoadIndex () { |
| 220 | this.tabList.forEach(function (item, index) { | 171 | this.loadIndex++; |
| 221 | if (item.value == "clxx") { | 172 | }, |
| 222 | that.clxxIndex = index; | 173 | closeDialog () { |
| 223 | that.clxxForm = getForm(item.value, that.$route.query.sqywbm); | 174 | this.myValue = false; |
| 224 | that.clxxTab = item; | 175 | }, |
| 176 | // 更新列表 | ||
| 177 | updateDialog () { | ||
| 178 | this.loadBdcdylist(); | ||
| 179 | }, | ||
| 180 | // 删除左侧列表 | ||
| 181 | handleDel (item) { | ||
| 182 | this.$confirm("确定要删除吗, 是否继续?", "提示", { | ||
| 183 | confirmButtonText: "确定", | ||
| 184 | cancelButtonText: "取消", | ||
| 185 | type: "warning", | ||
| 186 | }) | ||
| 187 | .then(() => { | ||
| 188 | var formdata = new FormData(); | ||
| 189 | formdata.append("bsmSldyList", item.bsmSldy.split(",")); | ||
| 190 | formdata.append("bsmSlsq", this.bsmSlsq); | ||
| 191 | deleteFlow(formdata).then((res) => { | ||
| 192 | if (res.code == 200) { | ||
| 193 | this.$message.success("删除成功"); | ||
| 194 | this.loadBdcdylist(); | ||
| 195 | } else { | ||
| 196 | this.$message.error(res.message); | ||
| 225 | } | 197 | } |
| 226 | }); | 198 | }); |
| 199 | }) | ||
| 200 | .catch(() => { | ||
| 201 | this.$message({ | ||
| 202 | type: "info", | ||
| 203 | message: "已取消删除", | ||
| 204 | }); | ||
| 205 | }); | ||
| 206 | }, | ||
| 207 | //申请单元点击事件 | ||
| 208 | stepForm (index) { | ||
| 209 | getStepFormInfo(this.currentSelectProps).then((res) => { | ||
| 210 | if (res.code === 200) { | ||
| 211 | this.fresh++; | ||
| 212 | //获取单元对应的所有表单信息 | ||
| 213 | this.tabList = res.result; | ||
| 214 | //默认加载第一个表单信息 | ||
| 215 | this.tabName = res.result[0].value; | ||
| 216 | //批量操作无分屏按钮 | ||
| 217 | if (index != null) { | ||
| 218 | //处理分屏材料信息 | ||
| 219 | let that = this; | ||
| 220 | this.tabList.forEach(function (item, index) { | ||
| 221 | if (item.value == "clxx") { | ||
| 222 | that.clxxIndex = index; | ||
| 223 | that.clxxForm = getForm(item.value, that.$route.query.sqywbm); | ||
| 224 | that.clxxTab = item; | ||
| 225 | } | ||
| 226 | }); | ||
| 227 | } | ||
| 227 | } | 228 | } |
| 229 | }); | ||
| 230 | }, | ||
| 231 | //申请单元点击事件 | ||
| 232 | unitClick (index) { | ||
| 233 | this.currentSelectProps = this.unitData[index]; | ||
| 234 | this.currentSelectProps.batchOperation = false; | ||
| 235 | this.activeIndex = index.toString(); | ||
| 236 | this.stepForm(index); | ||
| 237 | }, | ||
| 238 | //批量按钮点击事件 | ||
| 239 | batchUnitClick () { | ||
| 240 | this.currentSelectProps.batchOperation = true; | ||
| 241 | this.activeIndex = "-1"; | ||
| 242 | this.stepForm(); | ||
| 243 | }, | ||
| 244 | openDialog () { | ||
| 245 | this.$store.dispatch('user/refreshPage', false) | ||
| 246 | let data = JSON.parse(localStorage.getItem('ywbl')) | ||
| 247 | let title | ||
| 248 | if (data?.sqywmc) { | ||
| 249 | title = "申请业务:" + data?.sqywmc | ||
| 250 | } else { | ||
| 251 | title = "申请业务:" + data?.djywmc | ||
| 228 | } | 252 | } |
| 229 | }); | 253 | this.$popupDialog(title, "ywbl/ywsq/selectBdc", { 'djywbm': this.$route.query.sqywbm, 'isJump': true, 'sqywInfo': data }, "80%", true) |
| 230 | }, | 254 | } |
| 231 | //申请单元点击事件 | ||
| 232 | unitClick (index) { | ||
| 233 | this.currentSelectProps = this.unitData[index]; | ||
| 234 | this.currentSelectProps.batchOperation = false; | ||
| 235 | this.activeIndex = index.toString(); | ||
| 236 | this.stepForm(index); | ||
| 237 | }, | ||
| 238 | //批量按钮点击事件 | ||
| 239 | batchUnitClick () { | ||
| 240 | this.currentSelectProps.batchOperation = true; | ||
| 241 | this.activeIndex = "-1"; | ||
| 242 | this.stepForm(); | ||
| 243 | }, | ||
| 244 | openDialog () { | ||
| 245 | let data = JSON.parse(localStorage.getItem('ywbl')) | ||
| 246 | let title = "申请业务:" + data.sqywmc; | ||
| 247 | this.$popupDialog(title, "ywbl/ywsq/selectBdc", { 'djywbm': this.$route.query.sqywbm, 'isJump': true, 'sqywInfo': data }, "80%", true) | ||
| 248 | } | 255 | } |
| 249 | } | 256 | } |
| 250 | } | ||
| 251 | </script> | 257 | </script> |
| 252 | 258 | ... | ... |
| ... | @@ -101,6 +101,7 @@ | ... | @@ -101,6 +101,7 @@ |
| 101 | import { datas, sendThis } from "./dbxdata"; | 101 | import { datas, sendThis } from "./dbxdata"; |
| 102 | import { searchTaskToDo, deleteFlow, claimTask } from "@/api/ywbl"; | 102 | import { searchTaskToDo, deleteFlow, claimTask } from "@/api/ywbl"; |
| 103 | import { judgeUserTaskPermission } from "@/api/fqsq"; | 103 | import { judgeUserTaskPermission } from "@/api/fqsq"; |
| 104 | import { log } from 'bpmn-js-token-simulation'; | ||
| 104 | export default { | 105 | export default { |
| 105 | name: "dbx", | 106 | name: "dbx", |
| 106 | components: { searchBox }, | 107 | components: { searchBox }, | ... | ... |
| ... | @@ -56,7 +56,7 @@ | ... | @@ -56,7 +56,7 @@ |
| 56 | </el-form> | 56 | </el-form> |
| 57 | </div> | 57 | </div> |
| 58 | <div class="from-clues-content"> | 58 | <div class="from-clues-content"> |
| 59 | <lb-table ref="table" @row-dblclick="handleRowClick" :page-size="pageData.pageSize" :heightNum="400" | 59 | <lb-table ref="table" @row-dblclick="handleRowClick" :page-size="pageData.pageSize" :calcHeight="400" |
| 60 | :current-page.sync="pageData.currentPage" :total="zrztableData.total" @size-change="handleSizeChange" | 60 | :current-page.sync="pageData.currentPage" :total="zrztableData.total" @size-change="handleSizeChange" |
| 61 | @p-current-change="handleCurrentChange" @selection-change="handleSelectionChange" :column="zrztableData.columns" | 61 | @p-current-change="handleCurrentChange" @selection-change="handleSelectionChange" :column="zrztableData.columns" |
| 62 | :data="zrztableData.data"> | 62 | :data="zrztableData.data"> |
| ... | @@ -107,7 +107,7 @@ | ... | @@ -107,7 +107,7 @@ |
| 107 | </el-form> | 107 | </el-form> |
| 108 | </div> | 108 | </div> |
| 109 | <div class="from-clues-content loadingtext"> | 109 | <div class="from-clues-content loadingtext"> |
| 110 | <lb-table ref="table" @row-dblclick="handleRowClick" :page-size="pageData.pageSize" :calcHeight="300" | 110 | <lb-table ref="table" @row-dblclick="handleRowClick" :page-size="pageData.pageSize" :calcHeight="400" |
| 111 | :current-page.sync="pageData.currentPage" :total="dztableData.total" @size-change="handleSizeChange" | 111 | :current-page.sync="pageData.currentPage" :total="dztableData.total" @size-change="handleSizeChange" |
| 112 | @p-current-change="handleCurrentChange" @selection-change="handleSelectionChange" :column="dztableData.columns" | 112 | @p-current-change="handleCurrentChange" @selection-change="handleSelectionChange" :column="dztableData.columns" |
| 113 | :data="dztableData.data"> | 113 | :data="dztableData.data"> | ... | ... |
| ... | @@ -8,7 +8,7 @@ export default { | ... | @@ -8,7 +8,7 @@ export default { |
| 8 | methods: { | 8 | methods: { |
| 9 | //点击行选中或取消复选框 | 9 | //点击行选中或取消复选框 |
| 10 | handleRowClick (row, column, event) { | 10 | handleRowClick (row, column, event) { |
| 11 | (this.$refs.table.toggleRowSelection(row)) | 11 | this.$refs.table.toggleRowSelection(row) |
| 12 | }, | 12 | }, |
| 13 | jump (data, type) { | 13 | jump (data, type) { |
| 14 | const { href } = Router.resolve( | 14 | const { href } = Router.resolve( | ... | ... |
| ... | @@ -106,6 +106,7 @@ | ... | @@ -106,6 +106,7 @@ |
| 106 | if (!this.isJump) { | 106 | if (!this.isJump) { |
| 107 | this.jump(res.result, this.sqywInfo.djywbm); | 107 | this.jump(res.result, this.sqywInfo.djywbm); |
| 108 | } else { | 108 | } else { |
| 109 | this.$popupCacel() | ||
| 109 | store.dispatch('user/refreshPage', true); | 110 | store.dispatch('user/refreshPage', true); |
| 110 | } | 111 | } |
| 111 | } else { | 112 | } else { | ... | ... |
| ... | @@ -19,7 +19,7 @@ | ... | @@ -19,7 +19,7 @@ |
| 19 | <div class="right-title">常办业务列表</div> | 19 | <div class="right-title">常办业务列表</div> |
| 20 | <ul> | 20 | <ul> |
| 21 | <li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in collectList" :key="index" | 21 | <li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in collectList" :key="index" |
| 22 | @dblclick="dblclick(collectList, index)" @click="selectSqywClick(collectList, index)"> | 22 | @dblclick="dblclick(collectList, index, item)" @click="selectSqywClick(collectList, index)"> |
| 23 | <p v-if="item.nodetype == 'djqx'">{{ item.djywmc }}<br>{{ item.nodename }}</p> | 23 | <p v-if="item.nodetype == 'djqx'">{{ item.djywmc }}<br>{{ item.nodename }}</p> |
| 24 | <dt v-else>{{ item.djywmc }}</dt> | 24 | <dt v-else>{{ item.djywmc }}</dt> |
| 25 | <p class="active" @click.stop="handleCollection(item)"> | 25 | <p class="active" @click.stop="handleCollection(item)"> |
| ... | @@ -37,7 +37,7 @@ | ... | @@ -37,7 +37,7 @@ |
| 37 | <div class="right-type el-card box-card is-always-shadow"> | 37 | <div class="right-type el-card box-card is-always-shadow"> |
| 38 | <div class="right-title">登记类型</div> | 38 | <div class="right-title">登记类型</div> |
| 39 | <ul class="type-content"> | 39 | <ul class="type-content"> |
| 40 | <li :class="item.selected ? 'cactive' : ''" @dblclick="item.sffqlc == 1 && dblclick(djlxList, index)" | 40 | <li :class="item.selected ? 'cactive' : ''" @dblclick="item.sffqlc == 1 && dblclick(djlxList, index, item)" |
| 41 | @click="selectSqywClick(djlxList, index)" v-for="(item, index) in djlxList" :key="index"> | 41 | @click="selectSqywClick(djlxList, index)" v-for="(item, index) in djlxList" :key="index"> |
| 42 | <p> | 42 | <p> |
| 43 | {{ item.nodename }} | 43 | {{ item.nodename }} |
| ... | @@ -53,7 +53,7 @@ | ... | @@ -53,7 +53,7 @@ |
| 53 | <div class="right-title">登记情形</div> | 53 | <div class="right-title">登记情形</div> |
| 54 | <ul> | 54 | <ul> |
| 55 | <li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in djqxList" :key="index" | 55 | <li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in djqxList" :key="index" |
| 56 | @dblclick="dblclick(djqxList, index)" @click="selectSqywClick(djqxList, index)"> | 56 | @dblclick="dblclick(djqxList, index, item)" @click="selectSqywClick(djqxList, index)"> |
| 57 | <dt>{{ item.nodename }}</dt> | 57 | <dt>{{ item.nodename }}</dt> |
| 58 | <p :class="item.userCollect == 1 ? 'active' : ''" @click.stop="handleCollection(item)"> | 58 | <p :class="item.userCollect == 1 ? 'active' : ''" @click.stop="handleCollection(item)"> |
| 59 | <i class="el-icon-star-off"></i> | 59 | <i class="el-icon-star-off"></i> |
| ... | @@ -69,206 +69,207 @@ | ... | @@ -69,206 +69,207 @@ |
| 69 | </div> | 69 | </div> |
| 70 | </template> | 70 | </template> |
| 71 | <script> | 71 | <script> |
| 72 | import { getCollectBiz, getleftMenu, getNextNode, addCollectBiz, deleteCollectBiz } from "@/api/ywbl" | 72 | import { getCollectBiz, getleftMenu, getNextNode, addCollectBiz, deleteCollectBiz } from "@/api/ywbl" |
| 73 | export default { | 73 | export default { |
| 74 | data () { | 74 | data () { |
| 75 | return { | 75 | return { |
| 76 | //申请业务类型集合 | 76 | //申请业务类型集合 |
| 77 | sqywlxList: [ | 77 | sqywlxList: [ |
| 78 | { name: "常办业务", type: "collect" }, | 78 | { name: "常办业务", type: "collect" }, |
| 79 | { name: "一并申请", type: "together" }, | 79 | { name: "一并申请", type: "together" }, |
| 80 | { name: "登记簿补录", type: "amend" } | 80 | { name: "登记簿补录", type: "amend" } |
| 81 | ], | 81 | ], |
| 82 | //类型默认选择常办业务 | 82 | //类型默认选择常办业务 |
| 83 | selectType: "collect", | 83 | selectType: "collect", |
| 84 | //堆叠框选中第一个 | 84 | //堆叠框选中第一个 |
| 85 | activeNames: ['1'], | 85 | activeNames: ['1'], |
| 86 | //收藏业务集合 | 86 | //收藏业务集合 |
| 87 | collectList: [], | 87 | collectList: [], |
| 88 | //申请权利类型集合 | 88 | //申请权利类型集合 |
| 89 | sqywQllxList: [], | 89 | sqywQllxList: [], |
| 90 | //登记类型集合 | 90 | //登记类型集合 |
| 91 | djlxList: [], | 91 | djlxList: [], |
| 92 | //申请权利类型集合 | 92 | //申请权利类型集合 |
| 93 | djqxList: [], | 93 | djqxList: [], |
| 94 | //选中业务的参数 | 94 | //选中业务的参数 |
| 95 | selectParam: {}, | 95 | selectParam: {}, |
| 96 | //选择按钮显示或隐藏 | 96 | //选择按钮显示或隐藏 |
| 97 | btnDisabled: true, | 97 | btnDisabled: true, |
| 98 | } | ||
| 99 | }, | ||
| 100 | created () { | ||
| 101 | this.getDataList(); | ||
| 102 | }, | ||
| 103 | methods: { | ||
| 104 | getDataList () { | ||
| 105 | //获取收藏信息集合 | ||
| 106 | getCollectBiz().then(res => { | ||
| 107 | this.collectList = res.result; | ||
| 108 | this.collectList.forEach(item => { | ||
| 109 | this.$set(item, 'selected', false); | ||
| 110 | }); | ||
| 111 | }); | ||
| 112 | //获取申请权利信息集合 | ||
| 113 | getleftMenu().then(res => { | ||
| 114 | this.sqywQllxList = res.result; | ||
| 115 | }) | ||
| 116 | }, | ||
| 117 | //申请业务类型菜单事件 | ||
| 118 | sqywlxClick (item) { | ||
| 119 | this.btnDisabled = true; | ||
| 120 | this.selectType = item.type; | ||
| 121 | this.sqywQllxList.forEach(item => { | ||
| 122 | if (item.check) item.check = false; | ||
| 123 | }) | ||
| 124 | }, | ||
| 125 | //权利类型菜单事件 | ||
| 126 | qllxClick (index) { | ||
| 127 | this.btnDisabled = true; | ||
| 128 | this.sqywQllxList.forEach(item => { | ||
| 129 | if (item.check) item.check = false; | ||
| 130 | }) | ||
| 131 | this.sqywQllxList[index].check = true; | ||
| 132 | this.selectType = "apply"; | ||
| 133 | this.djlxList = []; | ||
| 134 | this.djqxList = []; | ||
| 135 | this.getNextNode(this.sqywQllxList[index].bsmSqyw); | ||
| 136 | }, | ||
| 137 | //选择申请业务事件 | ||
| 138 | selectSqywClick (data, index) { | ||
| 139 | data.forEach(item => { | ||
| 140 | item.selected = false; | ||
| 141 | }); | ||
| 142 | data[index].selected = true; | ||
| 143 | if (data[index].sffqlc == "1") { | ||
| 144 | this.selectParam = data[index]; | ||
| 145 | this.btnDisabled = false; | ||
| 146 | } else { | ||
| 147 | this.btnDisabled = true; | ||
| 148 | this.getNextNode(data[index].bsmSqyw); | ||
| 149 | } | 98 | } |
| 150 | }, | 99 | }, |
| 151 | //获取下个节点类型数据 | 100 | created () { |
| 152 | getNextNode (bsmSqyw) { | 101 | this.getDataList(); |
| 153 | getNextNode(bsmSqyw).then(res => { | 102 | }, |
| 154 | if (res.result.djqx) { | 103 | methods: { |
| 155 | this.djqxList = res.result.djqx; | 104 | getDataList () { |
| 156 | this.djqxList.forEach(item => { | 105 | //获取收藏信息集合 |
| 157 | this.$set(item, 'selected', false); | 106 | getCollectBiz().then(res => { |
| 158 | }); | 107 | this.collectList = res.result; |
| 159 | } | 108 | this.collectList.forEach(item => { |
| 160 | if (res.result.djlx) { | ||
| 161 | this.djlxList = res.result.djlx; | ||
| 162 | this.djlxList.forEach(item => { | ||
| 163 | this.$set(item, 'selected', false); | 109 | this.$set(item, 'selected', false); |
| 164 | }); | 110 | }); |
| 111 | }); | ||
| 112 | //获取申请权利信息集合 | ||
| 113 | getleftMenu().then(res => { | ||
| 114 | this.sqywQllxList = res.result; | ||
| 115 | }) | ||
| 116 | }, | ||
| 117 | //申请业务类型菜单事件 | ||
| 118 | sqywlxClick (item) { | ||
| 119 | this.btnDisabled = true; | ||
| 120 | this.selectType = item.type; | ||
| 121 | this.sqywQllxList.forEach(item => { | ||
| 122 | if (item.check) item.check = false; | ||
| 123 | }) | ||
| 124 | }, | ||
| 125 | //权利类型菜单事件 | ||
| 126 | qllxClick (index) { | ||
| 127 | this.btnDisabled = true; | ||
| 128 | this.sqywQllxList.forEach(item => { | ||
| 129 | if (item.check) item.check = false; | ||
| 130 | }) | ||
| 131 | this.sqywQllxList[index].check = true; | ||
| 132 | this.selectType = "apply"; | ||
| 133 | this.djlxList = []; | ||
| 134 | this.djqxList = []; | ||
| 135 | this.getNextNode(this.sqywQllxList[index].bsmSqyw); | ||
| 136 | }, | ||
| 137 | //选择申请业务事件 | ||
| 138 | selectSqywClick (data, index) { | ||
| 139 | data.forEach(item => { | ||
| 140 | item.selected = false; | ||
| 141 | }); | ||
| 142 | data[index].selected = true; | ||
| 143 | if (data[index].sffqlc == "1") { | ||
| 144 | this.selectParam = data[index]; | ||
| 145 | this.btnDisabled = false; | ||
| 146 | } else { | ||
| 147 | this.btnDisabled = true; | ||
| 148 | this.getNextNode(data[index].bsmSqyw); | ||
| 165 | } | 149 | } |
| 166 | }) | 150 | }, |
| 167 | }, | 151 | //获取下个节点类型数据 |
| 168 | //双击事件 | 152 | getNextNode (bsmSqyw) { |
| 169 | dblclick (data, index) { | 153 | getNextNode(bsmSqyw).then(res => { |
| 170 | this.selectSqywClick(data, index); | 154 | if (res.result.djqx) { |
| 171 | this.dialogClick(); | 155 | this.djqxList = res.result.djqx; |
| 172 | }, | 156 | this.djqxList.forEach(item => { |
| 173 | //打开弹框内容 | 157 | this.$set(item, 'selected', false); |
| 174 | dialogClick () { | 158 | }); |
| 175 | this.openDialog(); | 159 | } |
| 176 | }, | 160 | if (res.result.djlx) { |
| 177 | //收藏操作 | 161 | this.djlxList = res.result.djlx; |
| 178 | handleCollection (item) { | 162 | this.djlxList.forEach(item => { |
| 179 | let that = this | 163 | this.$set(item, 'selected', false); |
| 180 | if (item.userCollect == '2') { | 164 | }); |
| 181 | addCollectBiz(item.bsmSqyw).then(res => { | ||
| 182 | if (res.code == 200) { | ||
| 183 | item.userCollect = '1' | ||
| 184 | that.$message({ | ||
| 185 | message: '收藏成功!', | ||
| 186 | type: 'success' | ||
| 187 | }) | ||
| 188 | that.getDataList() | ||
| 189 | } | 165 | } |
| 190 | }) | 166 | }) |
| 191 | } else { | 167 | }, |
| 192 | this.$confirm('此操作将取消收藏, 是否继续?', '提示', { | 168 | //双击事件 |
| 193 | confirmButtonText: '确定', | 169 | dblclick (data, index, item) { |
| 194 | cancelButtonText: '取消', | 170 | localStorage.setItem('ywbl', JSON.stringify(item)); |
| 195 | type: 'warning' | 171 | this.selectSqywClick(data, index); |
| 196 | }).then(() => { | 172 | this.dialogClick(); |
| 197 | deleteCollectBiz(item.bsmSqyw).then(res => { | 173 | }, |
| 174 | //打开弹框内容 | ||
| 175 | dialogClick () { | ||
| 176 | this.openDialog(); | ||
| 177 | }, | ||
| 178 | //收藏操作 | ||
| 179 | handleCollection (item) { | ||
| 180 | let that = this | ||
| 181 | if (item.userCollect == '2') { | ||
| 182 | addCollectBiz(item.bsmSqyw).then(res => { | ||
| 198 | if (res.code == 200) { | 183 | if (res.code == 200) { |
| 199 | item.userCollect = '2' | 184 | item.userCollect = '1' |
| 200 | that.$message({ | 185 | that.$message({ |
| 201 | message: '取消收藏成功!', | 186 | message: '收藏成功!', |
| 202 | type: 'success' | 187 | type: 'success' |
| 203 | }) | 188 | }) |
| 204 | that.getDataList() | 189 | that.getDataList() |
| 205 | } | 190 | } |
| 206 | }) | 191 | }) |
| 192 | } else { | ||
| 193 | this.$confirm('此操作将取消收藏, 是否继续?', '提示', { | ||
| 194 | confirmButtonText: '确定', | ||
| 195 | cancelButtonText: '取消', | ||
| 196 | type: 'warning' | ||
| 197 | }).then(() => { | ||
| 198 | deleteCollectBiz(item.bsmSqyw).then(res => { | ||
| 199 | if (res.code == 200) { | ||
| 200 | item.userCollect = '2' | ||
| 201 | that.$message({ | ||
| 202 | message: '取消收藏成功!', | ||
| 203 | type: 'success' | ||
| 204 | }) | ||
| 205 | that.getDataList() | ||
| 206 | } | ||
| 207 | }) | ||
| 208 | }) | ||
| 209 | } | ||
| 210 | }, | ||
| 211 | handleSelect (item) { | ||
| 212 | this.busList.forEach(item => { | ||
| 213 | item.cselect = false | ||
| 214 | }) | ||
| 215 | item.cselect = !item.cselect | ||
| 216 | }, | ||
| 217 | // 登记类型 | ||
| 218 | handleDjlxSelect (item) { | ||
| 219 | this.djlxList.forEach(item => { | ||
| 220 | item.cselect = false | ||
| 207 | }) | 221 | }) |
| 208 | } | ||
| 209 | }, | ||
| 210 | handleSelect (item) { | ||
| 211 | this.busList.forEach(item => { | ||
| 212 | item.cselect = false | ||
| 213 | }) | ||
| 214 | item.cselect = !item.cselect | ||
| 215 | }, | ||
| 216 | // 登记类型 | ||
| 217 | handleDjlxSelect (item) { | ||
| 218 | this.djlxList.forEach(item => { | ||
| 219 | item.cselect = false | ||
| 220 | }) | ||
| 221 | this.btnDisabled = true | ||
| 222 | item.cselect = true; | ||
| 223 | this.djqxObj = item; | ||
| 224 | if (item.sffqlc == '1') { | ||
| 225 | this.btnDisabled = false | ||
| 226 | this.bsmSqyw = item.bsmSqyw | ||
| 227 | this.djywbm = item.djywbm; | ||
| 228 | } else { | ||
| 229 | this.getNextNode(item.bsmSqyw, false) | ||
| 230 | } | ||
| 231 | this.djqxList = [] | ||
| 232 | }, | ||
| 233 | handleDjqxItem (item) { | ||
| 234 | this.djlxList.forEach(item => { | ||
| 235 | item.cselect = false | ||
| 236 | }) | ||
| 237 | if (item.sffqlc == 1) { | ||
| 238 | this.djywbm = item.djywbm | ||
| 239 | this.bsmSqyw = item.bsmSqyw | ||
| 240 | item.cselect = true | ||
| 241 | this.openDialog() | ||
| 242 | this.btnDisabled = true | 222 | this.btnDisabled = true |
| 223 | item.cselect = true; | ||
| 224 | this.djqxObj = item; | ||
| 225 | if (item.sffqlc == '1') { | ||
| 226 | this.btnDisabled = false | ||
| 227 | this.bsmSqyw = item.bsmSqyw | ||
| 228 | this.djywbm = item.djywbm; | ||
| 229 | } else { | ||
| 230 | this.getNextNode(item.bsmSqyw, false) | ||
| 231 | } | ||
| 232 | this.djqxList = [] | ||
| 233 | }, | ||
| 234 | handleDjqxItem (item) { | ||
| 235 | this.djlxList.forEach(item => { | ||
| 236 | item.cselect = false | ||
| 237 | }) | ||
| 238 | if (item.sffqlc == 1) { | ||
| 239 | this.djywbm = item.djywbm | ||
| 240 | this.bsmSqyw = item.bsmSqyw | ||
| 241 | item.cselect = true | ||
| 242 | this.openDialog() | ||
| 243 | this.btnDisabled = true | ||
| 244 | } | ||
| 245 | }, | ||
| 246 | handleSelectItem (item, list) { | ||
| 247 | this.handleSelectYw(item, list) | ||
| 248 | this.openDialog() | ||
| 249 | }, | ||
| 250 | // 选择不动产信息 | ||
| 251 | bthSelectClick () { | ||
| 252 | this.openDialog() | ||
| 253 | }, | ||
| 254 | openDialog () { | ||
| 255 | let title = "申请业务:" + this.selectParam?.djywmc ? this.selectParam?.djywmc : ''; | ||
| 256 | this.$popupDialog(title, "ywbl/ywsq/selectBdc", { 'sqywInfo': this.selectParam }, "80%") | ||
| 257 | }, | ||
| 258 | loadView (view) { | ||
| 259 | return r => require.ensure([], () => r(require(`./components/${view}/${view}.vue`))) | ||
| 243 | } | 260 | } |
| 244 | }, | ||
| 245 | handleSelectItem (item, list) { | ||
| 246 | this.handleSelectYw(item, list) | ||
| 247 | this.openDialog() | ||
| 248 | }, | ||
| 249 | // 选择不动产信息 | ||
| 250 | bthSelectClick () { | ||
| 251 | this.openDialog() | ||
| 252 | }, | ||
| 253 | openDialog () { | ||
| 254 | let title = "申请业务:" + this.selectParam?.djywmc ? this.selectParam?.djywmc : ''; | ||
| 255 | this.$popupDialog(title, "ywbl/ywsq/selectBdc", { 'sqywInfo': this.selectParam }, "80%") | ||
| 256 | }, | ||
| 257 | loadView (view) { | ||
| 258 | return r => require.ensure([], () => r(require(`./components/${view}/${view}.vue`))) | ||
| 259 | } | 261 | } |
| 260 | } | 262 | } |
| 261 | } | ||
| 262 | </script> | 263 | </script> |
| 263 | <style scoped lang='scss'> | 264 | <style scoped lang='scss'> |
| 264 | @import "~@/styles/mixin.scss"; | 265 | @import "~@/styles/mixin.scss"; |
| 265 | @import './ywsq.scss'; | 266 | @import "./ywsq.scss"; |
| 266 | 267 | ||
| 267 | /deep/.el-collapse-item__content { | 268 | /deep/.el-collapse-item__content { |
| 268 | padding-bottom: 0; | 269 | padding-bottom: 0; |
| 269 | } | 270 | } |
| 270 | 271 | ||
| 271 | /deep/.el-collapse-item__wrap { | 272 | /deep/.el-collapse-item__wrap { |
| 272 | border-bottom: none; | 273 | border-bottom: none; |
| 273 | } | 274 | } |
| 274 | </style> | 275 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -8,49 +8,49 @@ | ... | @@ -8,49 +8,49 @@ |
| 8 | @updateDialog="updateDialog" /> | 8 | @updateDialog="updateDialog" /> |
| 9 | </template> | 9 | </template> |
| 10 | <script> | 10 | <script> |
| 11 | import { queueDjywmc } from "./slectBdcdata.js"; | 11 | import { queueDjywmc } from "./slectBdcdata.js"; |
| 12 | export default { | 12 | export default { |
| 13 | props: { | 13 | props: { |
| 14 | formData: { | 14 | formData: { |
| 15 | type: Object, | 15 | type: Object, |
| 16 | default: () => { } | 16 | default: () => { } |
| 17 | } | 17 | } |
| 18 | }, | ||
| 19 | data () { | ||
| 20 | return { | ||
| 21 | title: "", | ||
| 22 | router: "" | ||
| 23 | } | ||
| 24 | }, | ||
| 25 | mounted () { | ||
| 26 | if (this.formData?.sqywInfo?.djywbm || this.formData?.djywbm) { | ||
| 27 | let view = queueDjywmc(this.formData?.sqywInfo?.djywbm || this.formData?.djywbm); | ||
| 28 | this.router = this.loadView(view); | ||
| 29 | } else { | ||
| 30 | let view = queueDjywmc(this.$route.query?.sqywbm); | ||
| 31 | this.router = this.loadView(view); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | methods: { | ||
| 35 | loadView (view) { | ||
| 36 | console.log(view, 'view'); | ||
| 37 | return (r) => | ||
| 38 | require.ensure([], () => r(require(`./components/${view}.vue`))); | ||
| 39 | }, | 18 | }, |
| 40 | updateDialog () { | 19 | data () { |
| 41 | this.$popupCacel() | 20 | return { |
| 42 | this.$emit("updateDialog", true); | 21 | title: "", |
| 22 | router: "" | ||
| 23 | } | ||
| 24 | }, | ||
| 25 | mounted () { | ||
| 26 | if (this.formData?.sqywInfo?.djywbm || this.formData?.djywbm) { | ||
| 27 | let view = queueDjywmc(this.formData?.sqywInfo?.djywbm || this.formData?.djywbm); | ||
| 28 | this.router = this.loadView(view); | ||
| 29 | } else { | ||
| 30 | let view = queueDjywmc(this.$route.query?.sqywbm); | ||
| 31 | this.router = this.loadView(view); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | methods: { | ||
| 35 | loadView (view) { | ||
| 36 | console.log(view, 'view'); | ||
| 37 | return (r) => | ||
| 38 | require.ensure([], () => r(require(`./components/${view}.vue`))); | ||
| 39 | }, | ||
| 40 | updateDialog () { | ||
| 41 | this.$popupCacel() | ||
| 42 | this.$emit("updateDialog", true); | ||
| 43 | } | ||
| 43 | } | 44 | } |
| 44 | } | 45 | } |
| 45 | } | ||
| 46 | </script> | 46 | </script> |
| 47 | <style scoped lang="scss"> | 47 | <style scoped lang="scss"> |
| 48 | @import "~@/styles/mixin.scss"; | 48 | @import "~@/styles/mixin.scss"; |
| 49 | @import "~@/styles/public.scss"; | 49 | @import "~@/styles/public.scss"; |
| 50 | 50 | ||
| 51 | /deep/.submit_button { | 51 | /deep/.submit_button { |
| 52 | text-align: center; | 52 | text-align: center; |
| 53 | padding: 10px; | 53 | padding: 10px; |
| 54 | margin: 10px; | 54 | margin: 10px; |
| 55 | } | 55 | } |
| 56 | </style> | 56 | </style> | ... | ... |
-
Please register or sign in to post a comment