style:宗地基本信息
Showing
5 changed files
with
1036 additions
and
1009 deletions
| ... | @@ -17,8 +17,9 @@ | ... | @@ -17,8 +17,9 @@ |
| 17 | <div class="thumb-wrap"> | 17 | <div class="thumb-wrap"> |
| 18 | <div class="thumb-wrap-button"> | 18 | <div class="thumb-wrap-button"> |
| 19 | <el-button type="primary" @click="clickImage">(放大) 显示(缩小)</el-button> | 19 | <el-button type="primary" @click="clickImage">(放大) 显示(缩小)</el-button> |
| 20 | <el-upload class="fileUpdate" action="" :show-file-list="false" multiple :auto-upload="false" | 20 | <el-upload class="fileUpdate" ref="upload" action="" :show-file-list="false" :multiple="true" :auto-upload="false" |
| 21 | :on-change="handleChange" accept=".JPG, .PNG, .JPEG,.jpg, .png, .jpeg" :before-upload="beforeUpload"> | 21 | :on-change="handleChange" |
| 22 | accept=".JPG, .PNG, .JPEG,.jpg, .png, .jpeg" :before-upload="beforeUpload"> | ||
| 22 | <el-button icon="el-icon-upload" type="primary" v-if="!this.$route.query.viewtype">上传</el-button> | 23 | <el-button icon="el-icon-upload" type="primary" v-if="!this.$route.query.viewtype">上传</el-button> |
| 23 | </el-upload> | 24 | </el-upload> |
| 24 | <el-button type="primary" icon="el-icon-delete-solid" @click="handleDelete" v-if="!this.$route.query.viewtype">删除</el-button> | 25 | <el-button type="primary" icon="el-icon-delete-solid" @click="handleDelete" v-if="!this.$route.query.viewtype">删除</el-button> |
| ... | @@ -36,262 +37,273 @@ | ... | @@ -36,262 +37,273 @@ |
| 36 | </div> | 37 | </div> |
| 37 | </template> | 38 | </template> |
| 38 | <script> | 39 | <script> |
| 39 | import PhotoZoom from '@/components/PhotoZoom' | 40 | import PhotoZoom from '@/components/PhotoZoom' |
| 40 | import { uploadSjClmx, deleteClmx } from "@/api/clxx.js"; | 41 | import { uploadSjClmx, deleteClmx } from "@/api/clxx.js"; |
| 41 | import publicPicture from '@/components/publicPicture/index.vue' | 42 | import publicPicture from '@/components/publicPicture/index.vue' |
| 42 | export default { | 43 | export default { |
| 43 | name: 'PreviewImage', | 44 | name: 'PreviewImage', |
| 44 | props: { | 45 | props: { |
| 45 | previewImg: { | 46 | previewImg: { |
| 46 | type: Object, | 47 | type: Object, |
| 47 | default: () => { } | 48 | default: () => { } |
| 48 | } | ||
| 49 | }, | ||
| 50 | components: { | ||
| 51 | PhotoZoom, | ||
| 52 | publicPicture | ||
| 53 | }, | ||
| 54 | data () { | ||
| 55 | return { | ||
| 56 | transform: { | ||
| 57 | scale: 1, | ||
| 58 | degree: 0 | ||
| 59 | }, | ||
| 60 | // 缩略图 | ||
| 61 | thumbnailImages: [], | ||
| 62 | showViewer: false, | ||
| 63 | initialIndex: undefined, | ||
| 64 | allLi: [], | ||
| 65 | } | ||
| 66 | }, | ||
| 67 | watch: { | ||
| 68 | previewImg: { | ||
| 69 | handler (newValue, oldValue) { | ||
| 70 | this.allLi = _.cloneDeep(newValue.imgList).map(item => item.fjurl) | ||
| 71 | this.thumbnailImages = newValue.imgList | ||
| 72 | }, | ||
| 73 | deep: true | ||
| 74 | } | ||
| 75 | }, | ||
| 76 | created () { | ||
| 77 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) | ||
| 78 | this.thumbnailImages = this.previewImg.imgList | ||
| 79 | }, | ||
| 80 | computed: { | ||
| 81 | isFirst () { | ||
| 82 | return this.previewImg.index === 0 | ||
| 83 | }, | ||
| 84 | isLast () { | ||
| 85 | return this.previewImg.index === this.previewImg.imgList.length - 1 | ||
| 86 | } | ||
| 87 | }, | ||
| 88 | methods: { | ||
| 89 | prev () { | ||
| 90 | let len = this.previewImg.imgList.length | ||
| 91 | if (this.isFirst || len == 0) { | ||
| 92 | this.$emit('prevPriview') | ||
| 93 | } else { | ||
| 94 | this.$parent.previewImg.index = (this.$parent.previewImg.index - 1 + len) % len | ||
| 95 | } | 49 | } |
| 96 | }, | 50 | }, |
| 97 | next () { | 51 | components: { |
| 98 | let len = this.previewImg.imgList.length | 52 | PhotoZoom, |
| 99 | if (this.isLast || len == 0) { | 53 | publicPicture |
| 100 | this.$emit('nextPriview') | ||
| 101 | } else { | ||
| 102 | this.$parent.previewImg.index = (this.$parent.previewImg.index + 1) % len | ||
| 103 | } | ||
| 104 | }, | 54 | }, |
| 105 | showCurrent (index) { | 55 | data () { |
| 106 | this.previewImg.index = index | 56 | return { |
| 57 | transform: { | ||
| 58 | scale: 1, | ||
| 59 | degree: 0 | ||
| 60 | }, | ||
| 61 | maxLength: 0, | ||
| 62 | // 缩略图 | ||
| 63 | thumbnailImages: [], | ||
| 64 | showViewer: false, | ||
| 65 | initialIndex: undefined, | ||
| 66 | allLi: [], | ||
| 67 | } | ||
| 107 | }, | 68 | }, |
| 108 | closeViewer () { | 69 | watch: { |
| 109 | this.showViewer = false | 70 | previewImg: { |
| 71 | handler (newValue, oldValue) { | ||
| 72 | this.allLi = _.cloneDeep(newValue.imgList).map(item => item.fjurl) | ||
| 73 | this.thumbnailImages = newValue.imgList | ||
| 74 | }, | ||
| 75 | deep: true | ||
| 76 | } | ||
| 110 | }, | 77 | }, |
| 111 | clickImage () { | 78 | created () { |
| 112 | this.showViewer = true | 79 | this.maxLength = 0; |
| 80 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) | ||
| 81 | this.thumbnailImages = this.previewImg.imgList | ||
| 113 | }, | 82 | }, |
| 114 | // 上传 | 83 | computed: { |
| 115 | beforeUpload (file) { | 84 | isFirst () { |
| 116 | const isJPEG = file.type === 'image/jpeg' | 85 | return this.previewImg.index === 0 |
| 117 | const isPNG = file.type === 'image/png' | 86 | }, |
| 118 | const isJPG = file.type === 'image/jpg' | 87 | isLast () { |
| 119 | const isGIF = file.type === 'image/gif' | 88 | return this.previewImg.index === this.previewImg.imgList.length - 1 |
| 120 | const isLt5M = file.size / 1024 / 1024 < 5 | ||
| 121 | if (!isJPEG && !isGIF && !isPNG && !isJPG && !isGIF) { | ||
| 122 | this.$message.error('请选择jpeg/png/jpg/bmp/gif格式的图片后重试') | ||
| 123 | this.loading = false | ||
| 124 | } | ||
| 125 | if (!isLt5M) { | ||
| 126 | this.$message.error('上传图片大小不能超过 5MB!') | ||
| 127 | this.loading = false | ||
| 128 | } | 89 | } |
| 129 | this.imgHidden = (isJPG || isJPEG || isPNG || isGIF) && isLt5M | ||
| 130 | return this.imgHidden | ||
| 131 | }, | 90 | }, |
| 132 | async handleChange (file) { | 91 | methods: { |
| 133 | let data = _.cloneDeep(this.previewImg.imgList[this.previewImg.index]) | 92 | prev () { |
| 134 | var formdata = new FormData(); | 93 | let len = this.previewImg.imgList.length |
| 135 | formdata.append("file", file.raw); | 94 | if (this.isFirst || len == 0) { |
| 136 | formdata.append("bsmSj", this.previewImg.bsmSj); | 95 | this.$emit('prevPriview') |
| 137 | formdata.append("bsmSlsq", this.previewImg.bsmSlsq); | 96 | } else { |
| 138 | uploadSjClmx(formdata).then((res) => { | 97 | this.$parent.previewImg.index = (this.$parent.previewImg.index - 1 + len) % len |
| 139 | if (res.code == 200) { | ||
| 140 | this.$emit('updateList', res.result) | ||
| 141 | this.$message({ | ||
| 142 | message: '上传成功!', | ||
| 143 | type: 'success' | ||
| 144 | }) | ||
| 145 | } | 98 | } |
| 146 | }) | 99 | }, |
| 147 | }, | 100 | next () { |
| 148 | handleDelete () { | 101 | let len = this.previewImg.imgList.length |
| 149 | let that = this | 102 | if (this.isLast || len == 0) { |
| 150 | this.$confirm('此操作将永久删除, 是否继续?', '提示', { | 103 | this.$emit('nextPriview') |
| 151 | confirmButtonText: '确定', | 104 | } else { |
| 152 | cancelButtonText: '取消', | 105 | this.$parent.previewImg.index = (this.$parent.previewImg.index + 1) % len |
| 153 | type: 'warning' | 106 | } |
| 154 | }).then(async () => { | 107 | }, |
| 155 | let bsmClmx = this.previewImg.imgList[this.previewImg.index].bsmClmx | 108 | showCurrent (index) { |
| 156 | deleteClmx(bsmClmx).then(res => { | 109 | this.previewImg.index = index |
| 157 | if (res.code == 200) { | 110 | }, |
| 158 | that.$emit('updateList', res.result) | 111 | closeViewer () { |
| 159 | that.$message({ | 112 | this.showViewer = false |
| 160 | message: '删除成功!', | 113 | }, |
| 161 | type: 'success' | 114 | clickImage () { |
| 162 | }) | 115 | this.showViewer = true |
| 163 | } | 116 | }, |
| 117 | // 上传 | ||
| 118 | beforeUpload (file) { | ||
| 119 | const isJPEG = file.type === 'image/jpeg' | ||
| 120 | const isPNG = file.type === 'image/png' | ||
| 121 | const isJPG = file.type === 'image/jpg' | ||
| 122 | const isGIF = file.type === 'image/gif' | ||
| 123 | const isLt5M = file.size / 1024 / 1024 < 5 | ||
| 124 | if (!isJPEG && !isGIF && !isPNG && !isJPG && !isGIF) { | ||
| 125 | this.$message.error('请选择jpeg/png/jpg/bmp/gif格式的图片后重试') | ||
| 126 | this.loading = false | ||
| 127 | } | ||
| 128 | if (!isLt5M) { | ||
| 129 | this.$message.error('上传图片大小不能超过 5MB!') | ||
| 130 | this.loading = false | ||
| 131 | } | ||
| 132 | this.imgHidden = (isJPG || isJPEG || isPNG || isGIF) && isLt5M | ||
| 133 | return this.imgHidden | ||
| 134 | }, | ||
| 135 | async handleChange (file, files) { | ||
| 136 | // 清空 fileList 数组 | ||
| 137 | let length = files.length; | ||
| 138 | this.maxLength = Math.max(length, this.maxLength) | ||
| 139 | this.$refs.upload.clearFiles(); | ||
| 140 | setTimeout(() => { | ||
| 141 | if (length !== this.maxLength) return | ||
| 142 | console.log(files); | ||
| 143 | // let data = _.cloneDeep(this.previewImg.imgList[this.previewImg.index]) | ||
| 144 | var formData = new FormData(); | ||
| 145 | files.forEach(file => { | ||
| 146 | formData.append('file', file.raw) | ||
| 147 | }) | ||
| 148 | formData.append("bsmSj", this.previewImg.bsmSj); | ||
| 149 | formData.append("bsmSlsq", this.previewImg.bsmSlsq); | ||
| 150 | uploadSjClmx(formData).then((res) => { | ||
| 151 | if (res.code == 200) { | ||
| 152 | this.$emit('updateList', res.result) | ||
| 153 | this.$message({ | ||
| 154 | message: '上传成功!', | ||
| 155 | type: 'success' | ||
| 156 | }) | ||
| 157 | |||
| 158 | } | ||
| 159 | }) | ||
| 164 | }) | 160 | }) |
| 165 | }).catch(() => { | 161 | }, |
| 166 | this.$message({ | 162 | handleDelete () { |
| 167 | type: 'info', | 163 | let that = this |
| 168 | message: '已取消删除' | 164 | this.$confirm('此操作将永久删除, 是否继续?', '提示', { |
| 165 | confirmButtonText: '确定', | ||
| 166 | cancelButtonText: '取消', | ||
| 167 | type: 'warning' | ||
| 168 | }).then(async () => { | ||
| 169 | let bsmClmx = this.previewImg.imgList[this.previewImg.index].bsmClmx | ||
| 170 | deleteClmx(bsmClmx).then(res => { | ||
| 171 | if (res.code == 200) { | ||
| 172 | that.$emit('updateList', res.result) | ||
| 173 | that.$message({ | ||
| 174 | message: '删除成功!', | ||
| 175 | type: 'success' | ||
| 176 | }) | ||
| 177 | } | ||
| 178 | }) | ||
| 179 | }).catch(() => { | ||
| 180 | this.$message({ | ||
| 181 | type: 'info', | ||
| 182 | message: '已取消删除' | ||
| 183 | }) | ||
| 169 | }) | 184 | }) |
| 170 | }) | 185 | } |
| 171 | } | 186 | } |
| 172 | } | 187 | } |
| 173 | } | ||
| 174 | </script> | 188 | </script> |
| 175 | |||
| 176 | <style lang="scss" scoped> | 189 | <style lang="scss" scoped> |
| 177 | // 查看大图 | 190 | // 查看大图 |
| 178 | .rlPopup { | 191 | .rlPopup { |
| 179 | position: relative; | 192 | position: relative; |
| 180 | width: 100%; | 193 | width: 100%; |
| 181 | text-align: center; | ||
| 182 | height: 100%; | ||
| 183 | |||
| 184 | .handle-btn { | ||
| 185 | position: absolute; | ||
| 186 | top: 50%; | ||
| 187 | transform: translateY(-100%); | ||
| 188 | width: 66px; | ||
| 189 | height: 66px; | ||
| 190 | line-height: 75px; | ||
| 191 | color: #fff; | ||
| 192 | background-color: rgb(239, 239, 239); | ||
| 193 | border-radius: 50%; | ||
| 194 | cursor: pointer; | ||
| 195 | text-align: center; | 194 | text-align: center; |
| 196 | transition: all 0.3s; | 195 | height: 100%; |
| 197 | |||
| 198 | i { | ||
| 199 | font-size: 24px; | ||
| 200 | } | ||
| 201 | } | ||
| 202 | |||
| 203 | .handle-btn:hover { | ||
| 204 | background-color: rgb(185, 183, 183); | ||
| 205 | } | ||
| 206 | 196 | ||
| 197 | .handle-btn { | ||
| 198 | position: absolute; | ||
| 199 | top: 50%; | ||
| 200 | transform: translateY(-100%); | ||
| 201 | width: 66px; | ||
| 202 | height: 66px; | ||
| 203 | line-height: 75px; | ||
| 204 | color: #fff; | ||
| 205 | background-color: rgb(239, 239, 239); | ||
| 206 | border-radius: 50%; | ||
| 207 | cursor: pointer; | ||
| 208 | text-align: center; | ||
| 209 | transition: all 0.3s; | ||
| 207 | 210 | ||
| 208 | .prev { | 211 | i { |
| 209 | left: 1%; | 212 | font-size: 24px; |
| 210 | } | 213 | } |
| 214 | } | ||
| 211 | 215 | ||
| 212 | .next { | 216 | .handle-btn:hover { |
| 213 | right: 1%; | 217 | background-color: rgb(185, 183, 183); |
| 214 | } | 218 | } |
| 215 | 219 | ||
| 216 | .img-list-wrap { | 220 | .prev { |
| 217 | width: 100%; | 221 | left: 1%; |
| 218 | display: flex; | 222 | } |
| 219 | justify-content: center; | ||
| 220 | height: calc(100% - 80px); | ||
| 221 | align-items: center; | ||
| 222 | background: rgba(194, 190, 190, 0.1); | ||
| 223 | overflow: scroll; | ||
| 224 | 223 | ||
| 225 | img { | 224 | .next { |
| 226 | display: block; | 225 | right: 1%; |
| 227 | object-fit: scale-down; | ||
| 228 | transition: all 0.3s; | ||
| 229 | max-width: 100%; | ||
| 230 | } | 226 | } |
| 231 | } | ||
| 232 | 227 | ||
| 233 | .thumb-wrap { | 228 | .img-list-wrap { |
| 234 | &-button { | 229 | width: 100%; |
| 235 | display: flex; | 230 | display: flex; |
| 236 | justify-content: center; | 231 | justify-content: center; |
| 232 | height: calc(100% - 80px); | ||
| 233 | align-items: center; | ||
| 234 | background: rgba(194, 190, 190, 0.1); | ||
| 235 | overflow: scroll; | ||
| 237 | 236 | ||
| 238 | .fileUpdate { | 237 | img { |
| 239 | margin: 0 10px; | 238 | display: block; |
| 239 | object-fit: scale-down; | ||
| 240 | transition: all 0.3s; | ||
| 241 | max-width: 100%; | ||
| 240 | } | 242 | } |
| 241 | } | 243 | } |
| 242 | 244 | ||
| 243 | li { | 245 | .thumb-wrap { |
| 244 | float: left; | 246 | &-button { |
| 245 | width: 60px; | 247 | display: flex; |
| 246 | height: 45px; | 248 | justify-content: center; |
| 247 | border: solid 1px #ececec; | ||
| 248 | position: relative; | ||
| 249 | margin-right: 5px; | ||
| 250 | cursor: pointer; | ||
| 251 | 249 | ||
| 252 | &:last-child { | 250 | .fileUpdate { |
| 253 | margin-right: 0; | 251 | margin: 0 10px; |
| 252 | } | ||
| 254 | } | 253 | } |
| 255 | 254 | ||
| 256 | img { | 255 | li { |
| 257 | max-width: 57px; | 256 | float: left; |
| 258 | max-height: 42px; | 257 | width: 60px; |
| 259 | display: block; | 258 | height: 45px; |
| 260 | object-fit: scale-down; | 259 | border: solid 1px #ececec; |
| 261 | position: absolute; | 260 | position: relative; |
| 262 | top: 50%; | 261 | margin-right: 5px; |
| 263 | left: 50%; | 262 | cursor: pointer; |
| 264 | transform: translate(-50%, -50%); | 263 | |
| 264 | &:last-child { | ||
| 265 | margin-right: 0; | ||
| 266 | } | ||
| 267 | |||
| 268 | img { | ||
| 269 | max-width: 57px; | ||
| 270 | max-height: 42px; | ||
| 271 | display: block; | ||
| 272 | object-fit: scale-down; | ||
| 273 | position: absolute; | ||
| 274 | top: 50%; | ||
| 275 | left: 50%; | ||
| 276 | transform: translate(-50%, -50%); | ||
| 277 | } | ||
| 265 | } | 278 | } |
| 266 | } | ||
| 267 | 279 | ||
| 268 | .active { | 280 | .active { |
| 269 | border-color: #409eff; | 281 | border-color: #409eff; |
| 282 | } | ||
| 270 | } | 283 | } |
| 271 | } | 284 | } |
| 272 | } | ||
| 273 | </style> | 285 | </style> |
| 274 | <style> | 286 | <style> |
| 275 | .zoom-on-hover { | 287 | .zoom-on-hover { |
| 276 | position: relative; | 288 | position: relative; |
| 277 | overflow: hidden; | 289 | overflow: hidden; |
| 278 | } | 290 | } |
| 279 | 291 | ||
| 280 | .zoom-on-hover .normal { | 292 | .zoom-on-hover .normal { |
| 281 | width: 100%; | 293 | width: 100%; |
| 282 | } | 294 | } |
| 283 | 295 | ||
| 284 | .zoom-on-hover .zoom { | 296 | .zoom-on-hover .zoom { |
| 285 | position: absolute; | 297 | position: absolute; |
| 286 | opacity: 0; | 298 | opacity: 0; |
| 287 | transform-origin: top left; | 299 | transform-origin: top left; |
| 288 | } | 300 | } |
| 289 | 301 | ||
| 290 | .zoom-on-hover.zoomed .zoom { | 302 | .zoom-on-hover.zoomed .zoom { |
| 291 | opacity: 1; | 303 | opacity: 1; |
| 292 | } | 304 | } |
| 293 | 305 | ||
| 294 | .zoom-on-hover.zoomed .normal { | 306 | .zoom-on-hover.zoomed .normal { |
| 295 | opacity: 0; | 307 | opacity: 0; |
| 296 | } | 308 | } |
| 297 | </style> | 309 | </style> | ... | ... |
| ... | @@ -39,7 +39,7 @@ | ... | @@ -39,7 +39,7 @@ |
| 39 | </tr> | 39 | </tr> |
| 40 | <tr> | 40 | <tr> |
| 41 | <td>权利设定方式</td> | 41 | <td>权利设定方式</td> |
| 42 | <td>{{ zdjbxx.qlsdfs }}</td> | 42 | <td>{{zdjbxx.qlsdfs | qlsdfs}}</td> |
| 43 | <td>容积率</td> | 43 | <td>容积率</td> |
| 44 | <td>{{ zdjbxx.rjl }}</td> | 44 | <td>{{ zdjbxx.rjl }}</td> |
| 45 | </tr> | 45 | </tr> |
| ... | @@ -122,79 +122,87 @@ | ... | @@ -122,79 +122,87 @@ |
| 122 | <td>{{ zdbhqks[0].dbr }}</td> | 122 | <td>{{ zdbhqks[0].dbr }}</td> |
| 123 | </tr> --> | 123 | </tr> --> |
| 124 | 124 | ||
| 125 | |||
| 126 | |||
| 127 | </table> | 125 | </table> |
| 128 | </div> | 126 | </div> |
| 129 | </template> | 127 | </template> |
| 130 | 128 | ||
| 131 | <script> | 129 | <script> |
| 132 | import { getZdjjxxBybdcdyid } from "@/api/registerBook.js"; | 130 | import store from '@/store/index.js' |
| 131 | import { getZdjjxxBybdcdyid } from "@/api/registerBook.js"; | ||
| 133 | 132 | ||
| 134 | export default { | 133 | export default { |
| 135 | data () { | 134 | data () { |
| 136 | return { | 135 | return { |
| 137 | bhqkColumns: [ | 136 | bhqkColumns: [ |
| 138 | { | 137 | { |
| 139 | prop: "ssywh", | 138 | prop: "ssywh", |
| 140 | label: "上手业务号", | 139 | label: "上手业务号", |
| 141 | }, | 140 | }, |
| 142 | { | 141 | { |
| 143 | prop: "zddm", | 142 | prop: "zddm", |
| 144 | label: "宗地代码", | 143 | label: "宗地代码", |
| 145 | }, | 144 | }, |
| 146 | { | 145 | { |
| 147 | prop: "bhqzddm", | 146 | prop: "bhqzddm", |
| 148 | label: "变化前宗地代码", | 147 | label: "变化前宗地代码", |
| 149 | }, | 148 | }, |
| 150 | { | 149 | { |
| 151 | prop: "bhnr", | 150 | prop: "bhnr", |
| 152 | label: "变化内容", | 151 | label: "变化内容", |
| 153 | }, | 152 | }, |
| 154 | { | 153 | { |
| 155 | prop: "bhyy", | 154 | prop: "bhyy", |
| 156 | label: "变化原因", | 155 | label: "变化原因", |
| 157 | }, | 156 | }, |
| 158 | { | 157 | { |
| 159 | prop: "djsj", | 158 | prop: "djsj", |
| 160 | label: "登记时间", | 159 | label: "登记时间", |
| 161 | }, | 160 | }, |
| 162 | { | 161 | { |
| 163 | prop: "dbr", | 162 | prop: "dbr", |
| 164 | label: "登簿人", | 163 | label: "登簿人", |
| 165 | }, | 164 | }, |
| 166 | { | 165 | { |
| 167 | prop: "fj", | 166 | prop: "fj", |
| 168 | label: "附记", | 167 | label: "附记", |
| 169 | }, | 168 | }, |
| 170 | ], | 169 | ], |
| 171 | bhqkTableWidth: 745, | 170 | bhqkTableWidth: 745, |
| 172 | zdjbxx: {}, | 171 | zdjbxx: {}, |
| 173 | zdbhqks: [], | 172 | zdbhqks: [], |
| 174 | propsParam: this.$attrs, | 173 | propsParam: this.$attrs, |
| 175 | showGroup: false, | 174 | showGroup: false, |
| 176 | bdclxList: ["", "宗地", "宗海", "自然幢", "多幢", "构筑物", "林权", "户"], | 175 | bdclxList: ["", "宗地", "宗海", "自然幢", "多幢", "构筑物", "林权", "户"], |
| 177 | }; | 176 | }; |
| 178 | }, | 177 | }, |
| 179 | created () { | 178 | filters: { |
| 180 | this.loadData(); | 179 | qlsdfs: function (value) { |
| 181 | }, | 180 | const foundItem = store.getters.dictData['A10'].find(item => item.dcode === String(value)); |
| 182 | methods: { | 181 | if (foundItem) { |
| 183 | loadData () { | 182 | console.log(foundItem.dname, 'foundItem.dname'); |
| 184 | getZdjjxxBybdcdyid({ bdcdyid: this.propsParam.bdcdyid }).then((res) => { | 183 | return foundItem.dname; |
| 185 | if (res.code === 200) { | ||
| 186 | this.zdjbxx = res.result.zdjbxx; | ||
| 187 | this.zdbhqks = res.result.zdbhqkList; | ||
| 188 | if (this.zdbhqks != null && this.zdbhqks.length > 0) { | ||
| 189 | this.showGroup = true; | ||
| 190 | } | ||
| 191 | } | 184 | } |
| 192 | }); | 185 | } |
| 186 | }, | ||
| 187 | created () { | ||
| 188 | this.loadData(); | ||
| 189 | }, | ||
| 190 | methods: { | ||
| 191 | loadData () { | ||
| 192 | getZdjjxxBybdcdyid({ bdcdyid: this.propsParam.bdcdyid }).then((res) => { | ||
| 193 | if (res.code === 200) { | ||
| 194 | this.zdjbxx = res.result.zdjbxx; | ||
| 195 | this.zdbhqks = res.result.zdbhqkList; | ||
| 196 | if (this.zdbhqks != null && this.zdbhqks.length > 0) { | ||
| 197 | this.showGroup = true; | ||
| 198 | } | ||
| 199 | } | ||
| 200 | }); | ||
| 201 | }, | ||
| 193 | }, | 202 | }, |
| 194 | }, | 203 | }; |
| 195 | }; | ||
| 196 | </script> | 204 | </script> |
| 197 | 205 | ||
| 198 | <style lang="scss" scoped> | 206 | <style lang="scss" scoped> |
| 199 | @import "~@/styles/tablecss.scss"; | 207 | @import "~@/styles/tablecss.scss"; |
| 200 | </style> | 208 | </style> | ... | ... |
| ... | @@ -36,497 +36,496 @@ | ... | @@ -36,497 +36,496 @@ |
| 36 | </div> | 36 | </div> |
| 37 | </template> | 37 | </template> |
| 38 | <script> | 38 | <script> |
| 39 | import { mapGetters } from "vuex"; | 39 | import { mapGetters } from "vuex"; |
| 40 | import clxxAddDialog from "./clxxAddDialog.vue"; | 40 | import clxxAddDialog from "./dialog/clxxAddDialog.vue"; |
| 41 | import imagePreview from '@/views/components/imagePreview.vue' | 41 | import imagePreview from '@/views/components/imagePreview.vue' |
| 42 | import {InitClml,saveClml,deleteSjClml,moveClml} from "@/api/clxx.js"; | 42 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; |
| 43 | export default { | 43 | export default { |
| 44 | components: { clxxAddDialog, imagePreview }, | 44 | components: { clxxAddDialog, imagePreview }, |
| 45 | data () { | 45 | data () { |
| 46 | return { | 46 | return { |
| 47 | isDialog: false, | 47 | isDialog: false, |
| 48 | menuList: [ | 48 | menuList: [ |
| 49 | { | 49 | { |
| 50 | id: "1", | 50 | id: "1", |
| 51 | label: "材料目录明细", | 51 | label: "材料目录明细", |
| 52 | }, | ||
| 53 | { | ||
| 54 | id: "2", | ||
| 55 | label: "材料预览", | ||
| 56 | }, | ||
| 57 | ], | ||
| 58 | iclass: "", | ||
| 59 | // 材料目录选中 | ||
| 60 | treeCheckIndex: 0, | ||
| 61 | treeCheckId: "", | ||
| 62 | checkedId: "1", | ||
| 63 | column: [ | ||
| 64 | { | ||
| 65 | width: "50", | ||
| 66 | renderHeader: (h, scope) => { | ||
| 67 | return ( | ||
| 68 | <div> | ||
| 69 | { | ||
| 70 | this.$route.query.viewtype == 1 ? '序号' : | ||
| 71 | <i | ||
| 72 | class="el-icon-plus pointer" | ||
| 73 | onClick={() => { | ||
| 74 | this.handleAdd() | ||
| 75 | }} | ||
| 76 | ></i> | ||
| 77 | } | ||
| 78 | </div> | ||
| 79 | ) | ||
| 80 | }, | 52 | }, |
| 81 | render: (h, scope) => { | 53 | { |
| 82 | // 新建的材料,可删除 | 54 | id: "2", |
| 83 | // v-show='scope.row.sfxjcl == 1' | 55 | label: "材料预览", |
| 84 | return ( | 56 | }, |
| 85 | <div> | 57 | ], |
| 86 | { | 58 | iclass: "", |
| 87 | this.$route.query.viewtype == 1 ? <span>{scope.$index + 1}</span> : | 59 | // 材料目录选中 |
| 88 | <i | 60 | treeCheckIndex: 0, |
| 89 | class="el-icon-minus pointer" | 61 | treeCheckId: "", |
| 90 | 62 | checkedId: "1", | |
| 91 | onClick={() => { | 63 | column: [ |
| 92 | this.handleDelete(scope.$index, scope.row); | 64 | { |
| 93 | }} | 65 | width: "50", |
| 94 | ></i> | 66 | renderHeader: (h, scope) => { |
| 95 | } | ||
| 96 | </div> | ||
| 97 | ) | ||
| 98 | } | ||
| 99 | }, | ||
| 100 | { | ||
| 101 | prop: "isrequired", | ||
| 102 | label: "是否必选", | ||
| 103 | width: "50", | ||
| 104 | render: (h, scope) => { | ||
| 105 | if (scope.row.sfxjcl === "1") { | ||
| 106 | return ( | 67 | return ( |
| 107 | <div> | 68 | <div> |
| 108 | <span>可选</span> | 69 | { |
| 70 | this.$route.query.viewtype == 1 ? '序号' : | ||
| 71 | <i | ||
| 72 | class="el-icon-plus pointer" | ||
| 73 | onClick={() => { | ||
| 74 | this.handleAdd() | ||
| 75 | }} | ||
| 76 | ></i> | ||
| 77 | } | ||
| 109 | </div> | 78 | </div> |
| 110 | ); | 79 | ) |
| 111 | } | 80 | }, |
| 112 | else { | 81 | render: (h, scope) => { |
| 82 | // 新建的材料,可删除 | ||
| 83 | // v-show='scope.row.sfxjcl == 1' | ||
| 113 | return ( | 84 | return ( |
| 114 | <div> | 85 | <div> |
| 115 | <span>必选</span> | 86 | { |
| 87 | this.$route.query.viewtype == 1 ? <span>{scope.$index + 1}</span> : | ||
| 88 | <i | ||
| 89 | class="el-icon-minus pointer" | ||
| 90 | |||
| 91 | onClick={() => { | ||
| 92 | this.handleDelete(scope.$index, scope.row); | ||
| 93 | }} | ||
| 94 | ></i> | ||
| 95 | } | ||
| 116 | </div> | 96 | </div> |
| 117 | ); | 97 | ) |
| 118 | } | 98 | } |
| 119 | }, | 99 | }, |
| 120 | }, | 100 | { |
| 121 | { | 101 | prop: "isrequired", |
| 122 | prop: "sjmc", | 102 | label: "是否必选", |
| 123 | label: "材料名称", | 103 | width: "50", |
| 124 | }, | 104 | render: (h, scope) => { |
| 125 | { | 105 | if (scope.row.sfxjcl === "1") { |
| 126 | prop: "sjlx", | 106 | return ( |
| 127 | label: "材料类型", | 107 | <div> |
| 128 | width: "80", | 108 | <span>可选</span> |
| 129 | render: (h, scope) => { | 109 | </div> |
| 130 | return ( | 110 | ); |
| 131 | <div> | 111 | } |
| 132 | <span>{this.dicStatus(scope.row.sjlx, "A40")}</span> | 112 | else { |
| 133 | </div> | 113 | return ( |
| 134 | ); | 114 | <div> |
| 115 | <span>必选</span> | ||
| 116 | </div> | ||
| 117 | ); | ||
| 118 | } | ||
| 119 | }, | ||
| 120 | }, | ||
| 121 | { | ||
| 122 | prop: "sjmc", | ||
| 123 | label: "材料名称", | ||
| 135 | }, | 124 | }, |
| 136 | }, | 125 | { |
| 137 | { | 126 | prop: "sjlx", |
| 138 | prop: "sjsl", | 127 | label: "材料类型", |
| 139 | label: "份数", | 128 | width: "80", |
| 140 | width: "50" | 129 | render: (h, scope) => { |
| 141 | }, | ||
| 142 | { | ||
| 143 | prop: "smzt", | ||
| 144 | label: "扫描状态", | ||
| 145 | width: "80", | ||
| 146 | render: (h, scope) => { | ||
| 147 | if (scope.row.children.length > 0) { | ||
| 148 | return ( | 130 | return ( |
| 149 | <div> | 131 | <div> |
| 150 | <span>已扫描</span> | 132 | <span>{this.dicStatus(scope.row.sjlx, "A40")}</span> |
| 151 | </div> | 133 | </div> |
| 152 | ); | 134 | ); |
| 153 | } else { | 135 | }, |
| 136 | }, | ||
| 137 | { | ||
| 138 | prop: "sjsl", | ||
| 139 | label: "份数", | ||
| 140 | width: "50" | ||
| 141 | }, | ||
| 142 | { | ||
| 143 | prop: "smzt", | ||
| 144 | label: "扫描状态", | ||
| 145 | width: "80", | ||
| 146 | render: (h, scope) => { | ||
| 147 | if (scope.row.children.length > 0) { | ||
| 148 | return ( | ||
| 149 | <div> | ||
| 150 | <span>已扫描</span> | ||
| 151 | </div> | ||
| 152 | ); | ||
| 153 | } else { | ||
| 154 | return ( | ||
| 155 | <div> | ||
| 156 | <span>未扫描</span> | ||
| 157 | </div> | ||
| 158 | ); | ||
| 159 | } | ||
| 160 | }, | ||
| 161 | }, | ||
| 162 | { | ||
| 163 | prop: "ys", | ||
| 164 | label: "扫描页数", | ||
| 165 | width: "50" | ||
| 166 | }, | ||
| 167 | { | ||
| 168 | label: "操作", | ||
| 169 | width: "80", | ||
| 170 | render: (h, scope) => { | ||
| 154 | return ( | 171 | return ( |
| 155 | <div> | 172 | <div> |
| 156 | <span>未扫描</span> | 173 | <el-button |
| 174 | type="text" | ||
| 175 | disabled={scope.$index == 0} | ||
| 176 | onClick={() => { | ||
| 177 | this.moveUpward(scope.$index, scope.row); | ||
| 178 | }} | ||
| 179 | > | ||
| 180 | 上移 | ||
| 181 | </el-button> | ||
| 182 | <el-button | ||
| 183 | type="text" | ||
| 184 | disabled={scope.$index + 1 == this.tableData.length} | ||
| 185 | onClick={() => { | ||
| 186 | this.moveDown(scope.$index, scope.row); | ||
| 187 | }} | ||
| 188 | > | ||
| 189 | 下移 | ||
| 190 | </el-button> | ||
| 157 | </div> | 191 | </div> |
| 158 | ); | 192 | ); |
| 159 | } | 193 | }, |
| 160 | }, | 194 | }, |
| 161 | }, | 195 | ], |
| 162 | { | 196 | key: 0, |
| 163 | prop: "ys", | 197 | tableData: [], |
| 164 | label: "扫描页数", | 198 | previewImg: { |
| 165 | width: "50" | 199 | // 收件标识码 |
| 166 | }, | 200 | bsmSj: '', |
| 167 | { | 201 | bsmSlsq: this.$parent.bsmSlsq, |
| 168 | label: "操作", | 202 | index: 0, |
| 169 | width: "80", | 203 | selectedIndex: 0, |
| 170 | render: (h, scope) => { | 204 | imgList: [] |
| 171 | return ( | 205 | } |
| 172 | <div> | ||
| 173 | <el-button | ||
| 174 | type="text" | ||
| 175 | disabled={scope.$index == 0} | ||
| 176 | onClick={() => { | ||
| 177 | this.moveUpward(scope.$index, scope.row); | ||
| 178 | }} | ||
| 179 | > | ||
| 180 | 上移 | ||
| 181 | </el-button> | ||
| 182 | <el-button | ||
| 183 | type="text" | ||
| 184 | disabled={scope.$index + 1 == this.tableData.length} | ||
| 185 | onClick={() => { | ||
| 186 | this.moveDown(scope.$index, scope.row); | ||
| 187 | }} | ||
| 188 | > | ||
| 189 | 下移 | ||
| 190 | </el-button> | ||
| 191 | </div> | ||
| 192 | ); | ||
| 193 | }, | ||
| 194 | }, | ||
| 195 | ], | ||
| 196 | key: 0, | ||
| 197 | tableData: [], | ||
| 198 | previewImg: { | ||
| 199 | // 收件标识码 | ||
| 200 | bsmSj: '', | ||
| 201 | bsmSlsq: this.$parent.bsmSlsq, | ||
| 202 | index: 0, | ||
| 203 | selectedIndex: 0, | ||
| 204 | imgList: [] | ||
| 205 | } | ||
| 206 | } | ||
| 207 | }, | ||
| 208 | computed: { | ||
| 209 | ...mapGetters(["dictData"]) | ||
| 210 | }, | ||
| 211 | created () { | ||
| 212 | this.clmlInitList() | ||
| 213 | }, | ||
| 214 | methods: { | ||
| 215 | // 自动预览 | ||
| 216 | nextPriview () { | ||
| 217 | if (this.treeCheckIndex < this.tableData.length) { | ||
| 218 | this.treeCheckIndex++ | ||
| 219 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 220 | this.previewImg.index = 0 | ||
| 221 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 222 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 223 | } | 206 | } |
| 224 | }, | 207 | }, |
| 225 | prevPriview () { | 208 | computed: { |
| 226 | if (this.treeCheckIndex >= 1) { | 209 | ...mapGetters(["dictData"]) |
| 227 | this.treeCheckIndex-- | ||
| 228 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 229 | this.previewImg.index = this.previewImg.imgList.length | ||
| 230 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 231 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 232 | } | ||
| 233 | }, | 210 | }, |
| 234 | // 材料目录明细初始化 | 211 | created () { |
| 235 | clmlInitList () { | 212 | this.clmlInitList() |
| 236 | return new Promise(resolve => { | ||
| 237 | this.unitData = this.$parent.unitData; | ||
| 238 | var formdata = new FormData(); | ||
| 239 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
| 240 | formdata.append("bsmSlsq", this.$parent.bsmSlsq); | ||
| 241 | InitClml(formdata).then((res) => { | ||
| 242 | if(res.result.code == 200){ | ||
| 243 | resolve(res.code) | ||
| 244 | if (res.result.result && res.result.result.length > 0) { | ||
| 245 | this.tableData = res.result.result; | ||
| 246 | this.treeCheckId = this.tableData[0].bsmSj; | ||
| 247 | this.title = this.tableData[0].sjmc; | ||
| 248 | this.titleYs = 1; | ||
| 249 | this.titleNum = this.tableData[0].children.length; | ||
| 250 | |||
| 251 | this.previewImg.imgList = this.tableData[0]?.children; | ||
| 252 | this.previewImg.bsmSj = this.tableData[0]?.bsmSj; | ||
| 253 | } | ||
| 254 | }else{ | ||
| 255 | this.$message.error(res.result.message) | ||
| 256 | } | ||
| 257 | }) | ||
| 258 | }) | ||
| 259 | }, | 213 | }, |
| 260 | updateList (val) { | 214 | methods: { |
| 261 | let that = this | 215 | // 自动预览 |
| 262 | if (val != null) { //删除最后一张图片时 val=null | 216 | nextPriview () { |
| 263 | this.tableData.forEach(item => { | 217 | if (this.treeCheckIndex < this.tableData.length) { |
| 264 | if (item.bsmSj === val.bsmSj) { | 218 | this.treeCheckIndex++ |
| 265 | item.children = val.children | 219 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj |
| 266 | } | 220 | this.previewImg.index = 0 |
| 267 | }) | 221 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children |
| 268 | this.previewImg.imgList = _.cloneDeep(val.children) | 222 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj |
| 269 | if (this.previewImg.index == this.previewImg.imgList.length) { | ||
| 270 | this.previewImg.index = this.previewImg.index - 1 | ||
| 271 | } | 223 | } |
| 272 | } else { | 224 | }, |
| 273 | this.previewImg.imgList = [] | 225 | prevPriview () { |
| 274 | this.tableData.forEach((item, index) => { | 226 | if (this.treeCheckIndex >= 1) { |
| 275 | if (this.treeCheckId == item.bsmSj) { | 227 | this.treeCheckIndex-- |
| 276 | item.children = [] | 228 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj |
| 277 | that.treeCheckIndex = index | 229 | this.previewImg.index = this.previewImg.imgList.length |
| 278 | } | 230 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children |
| 279 | }) | 231 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj |
| 280 | } | 232 | } |
| 233 | }, | ||
| 234 | // 材料目录明细初始化 | ||
| 235 | clmlInitList () { | ||
| 236 | return new Promise(resolve => { | ||
| 237 | this.unitData = this.$parent.unitData; | ||
| 238 | var formdata = new FormData(); | ||
| 239 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
| 240 | formdata.append("bsmSlsq", this.$parent.bsmSlsq); | ||
| 241 | InitClml(formdata).then((res) => { | ||
| 242 | if (res.result.code == 200) { | ||
| 243 | resolve(res.code) | ||
| 244 | if (res.result.result && res.result.result.length > 0) { | ||
| 245 | this.tableData = res.result.result; | ||
| 246 | this.treeCheckId = this.tableData[0].bsmSj; | ||
| 247 | this.title = this.tableData[0].sjmc; | ||
| 248 | this.titleYs = 1; | ||
| 249 | this.titleNum = this.tableData[0].children.length; | ||
| 281 | 250 | ||
| 282 | }, | 251 | this.previewImg.imgList = this.tableData[0]?.children; |
| 283 | // 左侧菜单点击 | 252 | this.previewImg.bsmSj = this.tableData[0]?.bsmSj; |
| 284 | menuClick (item) { | 253 | } |
| 285 | this.checkedId = item.id | 254 | } else { |
| 286 | }, | 255 | this.$message.error(res.result.message) |
| 287 | // 添加材料目录 | 256 | } |
| 288 | handleAdd () { | ||
| 289 | this.isDialog = true; | ||
| 290 | }, | ||
| 291 | // 上移 | ||
| 292 | moveUpward (index, row) { | ||
| 293 | let obj = { | ||
| 294 | xh: row.xh, | ||
| 295 | bsmSlsq: row.bsmSlsq, | ||
| 296 | moveDirection: "UP", | ||
| 297 | }; | ||
| 298 | // 接口待调 | ||
| 299 | moveClml(obj).then(async (res) => { | ||
| 300 | if (res.code == 200) { | ||
| 301 | let res = await this.clmlInitList() | ||
| 302 | if (res == 200) this.$message({ | ||
| 303 | message: '上移成功', | ||
| 304 | type: 'success' | ||
| 305 | }) | 257 | }) |
| 306 | } else { | 258 | }) |
| 307 | this.$message.error(res.message); | 259 | }, |
| 308 | } | 260 | updateList (val) { |
| 309 | }) | 261 | let that = this |
| 310 | }, | 262 | if (val != null) { //删除最后一张图片时 val=null |
| 311 | // 下移 | 263 | this.tableData.forEach(item => { |
| 312 | moveDown (index, row) { | 264 | if (item.bsmSj === val.bsmSj) { |
| 313 | let obj = { | 265 | item.children = val.children |
| 314 | xh: row.xh, | 266 | } |
| 315 | bsmSlsq: row.bsmSlsq, | ||
| 316 | moveDirection: "DOWN", | ||
| 317 | } | ||
| 318 | // 接口待调 | ||
| 319 | moveClml(obj).then(async (res) => { | ||
| 320 | if (res.code == 200) { | ||
| 321 | let res = await this.clmlInitList() | ||
| 322 | if (res == 200) this.$message({ | ||
| 323 | message: '下移成功', | ||
| 324 | type: 'success' | ||
| 325 | }) | 267 | }) |
| 268 | this.previewImg.imgList = _.cloneDeep(val.children) | ||
| 269 | if (this.previewImg.index == this.previewImg.imgList.length) { | ||
| 270 | this.previewImg.index = this.previewImg.index - 1 | ||
| 271 | } | ||
| 326 | } else { | 272 | } else { |
| 327 | this.$message.error(res.message); | 273 | this.previewImg.imgList = [] |
| 328 | } | 274 | this.tableData.forEach((item, index) => { |
| 329 | }) | 275 | if (this.treeCheckId == item.bsmSj) { |
| 330 | }, | 276 | item.children = [] |
| 331 | // 新增弹窗保存 | 277 | that.treeCheckIndex = index |
| 332 | addSave (data) { | 278 | } |
| 333 | let obj = { | ||
| 334 | bsmSlsq: this.$parent.bsmSlsq, | ||
| 335 | isrequired: "1", | ||
| 336 | sjmc: data.clmc, | ||
| 337 | sjsl: 0, | ||
| 338 | smzt: '', | ||
| 339 | ys: 0, | ||
| 340 | sjlx: data.cllx, | ||
| 341 | sfxjcl: "1", // 是否必选 | ||
| 342 | }; | ||
| 343 | saveClml(obj).then(async (res) => { | ||
| 344 | if (res.code == 200) { | ||
| 345 | let res = await this.clmlInitList() | ||
| 346 | if (res == 200) this.$message({ | ||
| 347 | message: "新增成功", | ||
| 348 | type: "success", | ||
| 349 | }) | 279 | }) |
| 350 | } | 280 | } |
| 351 | }); | 281 | |
| 352 | }, | 282 | }, |
| 353 | // 材料目录删除 | 283 | // 左侧菜单点击 |
| 354 | handleDelete (index, row) { | 284 | menuClick (item) { |
| 355 | let that = this | 285 | this.checkedId = item.id |
| 356 | this.$confirm('此操作将永久删除该 是否继续?', '提示', { | 286 | }, |
| 357 | confirmButtonText: '确定', | 287 | // 添加材料目录 |
| 358 | cancelButtonText: '取消', | 288 | handleAdd () { |
| 359 | type: 'warning' | 289 | this.isDialog = true; |
| 360 | }).then(() => { | 290 | }, |
| 361 | deleteSjClml({ sjBsm: row.bsmSj }).then(async (res) => { | 291 | // 上移 |
| 292 | moveUpward (index, row) { | ||
| 293 | let obj = { | ||
| 294 | xh: row.xh, | ||
| 295 | bsmSlsq: row.bsmSlsq, | ||
| 296 | moveDirection: "UP", | ||
| 297 | }; | ||
| 298 | // 接口待调 | ||
| 299 | moveClml(obj).then(async (res) => { | ||
| 362 | if (res.code == 200) { | 300 | if (res.code == 200) { |
| 363 | let res = await that.clmlInitList() | 301 | let res = await this.clmlInitList() |
| 364 | if (res == 200) that.$message({ | 302 | if (res == 200) this.$message({ |
| 365 | message: "删除成功", | 303 | message: '上移成功', |
| 366 | type: "success", | 304 | type: 'success' |
| 367 | }) | 305 | }) |
| 306 | } else { | ||
| 307 | this.$message.error(res.message); | ||
| 368 | } | 308 | } |
| 369 | }) | 309 | }) |
| 370 | }).catch(() => { | 310 | }, |
| 371 | this.$message({ | 311 | // 下移 |
| 372 | type: 'info', | 312 | moveDown (index, row) { |
| 373 | message: '已取消删除' | 313 | let obj = { |
| 314 | xh: row.xh, | ||
| 315 | bsmSlsq: row.bsmSlsq, | ||
| 316 | moveDirection: "DOWN", | ||
| 317 | } | ||
| 318 | // 接口待调 | ||
| 319 | moveClml(obj).then(async (res) => { | ||
| 320 | if (res.code == 200) { | ||
| 321 | let res = await this.clmlInitList() | ||
| 322 | if (res == 200) this.$message({ | ||
| 323 | message: '下移成功', | ||
| 324 | type: 'success' | ||
| 325 | }) | ||
| 326 | } else { | ||
| 327 | this.$message.error(res.message); | ||
| 328 | } | ||
| 374 | }) | 329 | }) |
| 375 | }) | 330 | }, |
| 376 | }, | 331 | // 新增弹窗保存 |
| 377 | // 材料目录点击选中 | 332 | addSave (data) { |
| 378 | treeClick (item, index) { | 333 | let obj = { |
| 379 | this.previewImg.index = 0 | 334 | bsmSlsq: this.$parent.bsmSlsq, |
| 380 | this.treeCheckId = item?.bsmSj | 335 | isrequired: "1", |
| 381 | this.treeCheckIndex = index | 336 | sjmc: data.clmc, |
| 382 | this.previewImg.imgList = item?.children | 337 | sjsl: 0, |
| 383 | this.previewImg.bsmSj = item?.bsmSj | 338 | smzt: '', |
| 384 | }, | 339 | ys: 0, |
| 385 | // 小图片点击 | 340 | sjlx: data.cllx, |
| 386 | imgClick (item, index) { | 341 | sfxjcl: "1", // 是否必选 |
| 387 | this.showImg = item; | 342 | }; |
| 388 | this.titleYs = index + 1; | 343 | saveClml(obj).then(async (res) => { |
| 389 | }, | 344 | if (res.code == 200) { |
| 390 | // 字典 | 345 | let res = await this.clmlInitList() |
| 391 | dicStatus (val, code) { | 346 | if (res == 200) this.$message({ |
| 392 | let data = this.$store.getters.dictData[code], | 347 | message: "新增成功", |
| 393 | name = "暂无"; | 348 | type: "success", |
| 394 | if (data) { | 349 | }) |
| 395 | data.map((item) => { | ||
| 396 | if (item.dcode == val) { | ||
| 397 | name = item.dname; | ||
| 398 | } | 350 | } |
| 399 | }); | 351 | }); |
| 400 | return name; | 352 | }, |
| 401 | } | 353 | // 材料目录删除 |
| 354 | handleDelete (index, row) { | ||
| 355 | let that = this | ||
| 356 | this.$confirm('此操作将永久删除该 是否继续?', '提示', { | ||
| 357 | confirmButtonText: '确定', | ||
| 358 | cancelButtonText: '取消', | ||
| 359 | type: 'warning' | ||
| 360 | }).then(() => { | ||
| 361 | deleteSjClml({ sjBsm: row.bsmSj }).then(async (res) => { | ||
| 362 | if (res.code == 200) { | ||
| 363 | let res = await that.clmlInitList() | ||
| 364 | if (res == 200) that.$message({ | ||
| 365 | message: "删除成功", | ||
| 366 | type: "success", | ||
| 367 | }) | ||
| 368 | } | ||
| 369 | }) | ||
| 370 | }).catch(() => { | ||
| 371 | this.$message({ | ||
| 372 | type: 'info', | ||
| 373 | message: '已取消删除' | ||
| 374 | }) | ||
| 375 | }) | ||
| 376 | }, | ||
| 377 | // 材料目录点击选中 | ||
| 378 | treeClick (item, index) { | ||
| 379 | this.previewImg.index = 0 | ||
| 380 | this.treeCheckId = item?.bsmSj | ||
| 381 | this.treeCheckIndex = index | ||
| 382 | this.previewImg.imgList = item?.children | ||
| 383 | this.previewImg.bsmSj = item?.bsmSj | ||
| 384 | }, | ||
| 385 | // 小图片点击 | ||
| 386 | imgClick (item, index) { | ||
| 387 | this.showImg = item; | ||
| 388 | this.titleYs = index + 1; | ||
| 389 | }, | ||
| 390 | // 字典 | ||
| 391 | dicStatus (val, code) { | ||
| 392 | let data = this.$store.getters.dictData[code], | ||
| 393 | name = "暂无"; | ||
| 394 | if (data) { | ||
| 395 | data.map((item) => { | ||
| 396 | if (item.dcode == val) { | ||
| 397 | name = item.dname; | ||
| 398 | } | ||
| 399 | }); | ||
| 400 | return name; | ||
| 401 | } | ||
| 402 | }, | ||
| 402 | }, | 403 | }, |
| 403 | }, | 404 | }; |
| 404 | }; | ||
| 405 | </script> | 405 | </script> |
| 406 | <style scoped lang='scss'> | 406 | <style scoped lang='scss'> |
| 407 | @import "~@/styles/mixin.scss"; | 407 | @import "~@/styles/mixin.scss"; |
| 408 | |||
| 409 | .active { | ||
| 410 | background: $light-blue !important; | ||
| 411 | color: #fff; | ||
| 412 | } | ||
| 413 | |||
| 414 | .required { | ||
| 415 | font-size: 12px; | ||
| 416 | color: $pink; | ||
| 417 | float: left; | ||
| 418 | } | ||
| 419 | 408 | ||
| 420 | .cl_number { | 409 | .active { |
| 421 | float: right; | 410 | background: $light-blue !important; |
| 422 | } | 411 | color: #fff; |
| 423 | 412 | } | |
| 424 | .clxx { | ||
| 425 | width: 100%; | ||
| 426 | display: flex; | ||
| 427 | padding-left: 5px; | ||
| 428 | height: calc(100vh - 125px); | ||
| 429 | |||
| 430 | .left { | ||
| 431 | display: flex; | ||
| 432 | flex-direction: column; | ||
| 433 | justify-content: space-between; | ||
| 434 | 413 | ||
| 435 | .item { | 414 | .required { |
| 436 | width: 28px; | 415 | font-size: 12px; |
| 437 | height: 49%; | 416 | color: $pink; |
| 438 | @include flex-center; | 417 | float: left; |
| 439 | background-color: #E4E7ED; | 418 | } |
| 440 | border-bottom-right-radius: 10px; | ||
| 441 | padding: 5px; | ||
| 442 | cursor: pointer; | ||
| 443 | transition: all 0.3s; | ||
| 444 | 419 | ||
| 445 | &:hover { | 420 | .cl_number { |
| 446 | @extend .active; | 421 | float: right; |
| 447 | } | ||
| 448 | } | ||
| 449 | } | 422 | } |
| 450 | 423 | ||
| 451 | .right { | 424 | .clxx { |
| 452 | width: 100%; | 425 | width: 100%; |
| 453 | height: 100%; | 426 | display: flex; |
| 427 | padding-left: 5px; | ||
| 428 | height: calc(100vh - 125px); | ||
| 454 | 429 | ||
| 455 | .clmlmx-box { | 430 | .left { |
| 456 | margin: 0 auto; | 431 | display: flex; |
| 432 | flex-direction: column; | ||
| 433 | justify-content: space-between; | ||
| 457 | 434 | ||
| 458 | .title { | 435 | .item { |
| 459 | text-align: center; | 436 | width: 28px; |
| 460 | height: 60px; | 437 | height: 49%; |
| 461 | line-height: 60px; | 438 | @include flex-center; |
| 462 | border: 1px solid #dfe6ec; | 439 | background-color: #e4e7ed; |
| 463 | font-size: 20px; | 440 | border-bottom-right-radius: 10px; |
| 464 | background: #81d3f81a; | 441 | padding: 5px; |
| 465 | margin-bottom: -1px; | 442 | cursor: pointer; |
| 443 | transition: all 0.3s; | ||
| 444 | |||
| 445 | &:hover { | ||
| 446 | @extend .active; | ||
| 447 | } | ||
| 466 | } | 448 | } |
| 467 | } | 449 | } |
| 468 | 450 | ||
| 469 | .clyl-box { | 451 | .right { |
| 470 | width: 100%; | 452 | width: 100%; |
| 471 | height: 100%; | 453 | height: 100%; |
| 472 | display: flex; | ||
| 473 | |||
| 474 | .menu-tree { | ||
| 475 | width: 20%; | ||
| 476 | min-width: 160px; | ||
| 477 | height: 100%; | ||
| 478 | margin-right: 10px; | ||
| 479 | border-right: 1px dotted #d9d9d9; | ||
| 480 | padding: 0 15px; | ||
| 481 | 454 | ||
| 455 | .clmlmx-box { | ||
| 456 | margin: 0 auto; | ||
| 482 | 457 | ||
| 483 | .item { | 458 | .title { |
| 484 | line-height: 30px; | ||
| 485 | padding-top: 5px; | ||
| 486 | border-bottom: 1px solid #e8e8e8; | ||
| 487 | font-size: 16px; | ||
| 488 | text-align: center; | 459 | text-align: center; |
| 489 | color: $light-blue; | 460 | height: 60px; |
| 461 | line-height: 60px; | ||
| 462 | border: 1px solid #dfe6ec; | ||
| 463 | font-size: 20px; | ||
| 464 | background: #81d3f81a; | ||
| 465 | margin-bottom: -1px; | ||
| 466 | } | ||
| 467 | } | ||
| 490 | 468 | ||
| 491 | .itemIcon { | 469 | .clyl-box { |
| 492 | float: right; | 470 | width: 100%; |
| 493 | line-height: 60px; | 471 | height: 100%; |
| 494 | cursor: pointer; | 472 | display: flex; |
| 495 | } | ||
| 496 | 473 | ||
| 497 | .child { | 474 | .menu-tree { |
| 498 | line-height: 32px; | 475 | width: 20%; |
| 499 | border-bottom: 1px solid #e8e8e8; | 476 | min-width: 160px; |
| 500 | padding-left: 10px; | 477 | height: 100%; |
| 501 | color: #6b6b6b; | 478 | margin-right: 10px; |
| 502 | cursor: pointer; | 479 | border-right: 1px dotted #d9d9d9; |
| 503 | box-sizing: border-box; | 480 | padding: 0 15px; |
| 504 | border-radius: 6px; | ||
| 505 | line-height: 20px; | ||
| 506 | transition: all 0.3s; | ||
| 507 | padding: 8px 0; | ||
| 508 | } | ||
| 509 | 481 | ||
| 510 | .child:hover { | 482 | .item { |
| 483 | line-height: 30px; | ||
| 484 | padding-top: 5px; | ||
| 485 | border-bottom: 1px solid #e8e8e8; | ||
| 486 | font-size: 16px; | ||
| 487 | text-align: center; | ||
| 511 | color: $light-blue; | 488 | color: $light-blue; |
| 512 | transform: scale(1.1); | ||
| 513 | } | ||
| 514 | 489 | ||
| 515 | .checked { | 490 | .itemIcon { |
| 516 | border: 1px solid $light-blue; | 491 | float: right; |
| 517 | color: $light-blue; | 492 | line-height: 60px; |
| 493 | cursor: pointer; | ||
| 494 | } | ||
| 495 | |||
| 496 | .child { | ||
| 497 | line-height: 32px; | ||
| 498 | border-bottom: 1px solid #e8e8e8; | ||
| 499 | padding-left: 10px; | ||
| 500 | color: #6b6b6b; | ||
| 501 | cursor: pointer; | ||
| 502 | box-sizing: border-box; | ||
| 503 | border-radius: 6px; | ||
| 504 | line-height: 20px; | ||
| 505 | transition: all 0.3s; | ||
| 506 | padding: 8px 0; | ||
| 507 | } | ||
| 508 | |||
| 509 | .child:hover { | ||
| 510 | color: $light-blue; | ||
| 511 | transform: scale(1.1); | ||
| 512 | } | ||
| 513 | |||
| 514 | .checked { | ||
| 515 | border: 1px solid $light-blue; | ||
| 516 | color: $light-blue; | ||
| 517 | } | ||
| 518 | } | 518 | } |
| 519 | } | 519 | } |
| 520 | } | ||
| 521 | 520 | ||
| 522 | .clyl-img { | 521 | .clyl-img { |
| 523 | width: 75%; | 522 | width: 75%; |
| 524 | height: 100%; | 523 | height: 100%; |
| 525 | background: #f3f4f7; | 524 | background: #f3f4f7; |
| 526 | margin: 0 auto; | 525 | margin: 0 auto; |
| 527 | position: relative; | 526 | position: relative; |
| 527 | } | ||
| 528 | } | 528 | } |
| 529 | } | 529 | } |
| 530 | } | 530 | } |
| 531 | } | ||
| 532 | </style> | 531 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
| 4 | <!-- 材料预览 --> | 4 | <!-- 材料预览 --> |
| 5 | <div class="clyl-box"> | 5 | <div class="clyl-box"> |
| 6 | <div class="menu-tree"> | 6 | <div class="menu-tree"> |
| 7 | <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button> | 7 | <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button> |
| 8 | <div class="item"> | 8 | <div class="item"> |
| 9 | 材料目录({{tableData.length}}) | 9 | 材料目录({{tableData.length}}) |
| 10 | <div style="margin-top:10px"> | 10 | <div style="margin-top:10px"> |
| ... | @@ -24,310 +24,309 @@ | ... | @@ -24,310 +24,309 @@ |
| 24 | </div> | 24 | </div> |
| 25 | </div> | 25 | </div> |
| 26 | <clxxAddDialog v-model="isDialog" /> | 26 | <clxxAddDialog v-model="isDialog" /> |
| 27 | <clxxDetailDialog v-model="detailDialog" :data="tableData"/> | 27 | <clxxDetailDialog v-model="detailDialog" :data="tableData" /> |
| 28 | </div> | 28 | </div> |
| 29 | </template> | 29 | </template> |
| 30 | <script> | 30 | <script> |
| 31 | import { mapGetters } from "vuex"; | 31 | import { mapGetters } from "vuex"; |
| 32 | import clxxAddDialog from "./clxxAddDialog.vue"; | 32 | import clxxAddDialog from "./dialog/clxxAddDialog.vue"; |
| 33 | import clxxDetailDialog from "./clxxDetailDialog.vue"; | 33 | import clxxDetailDialog from "./clxxDetailDialog.vue"; |
| 34 | import imagePreview from '@/views/components/imagePreview.vue' | 34 | import imagePreview from '@/views/components/imagePreview.vue' |
| 35 | import {InitClml,saveClml,deleteSjClml,moveClml} from "@/api/clxx.js"; | 35 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; |
| 36 | import { popupDialog } from "@/utils/popup.js"; | 36 | import { popupDialog } from "@/utils/popup.js"; |
| 37 | export default { | 37 | export default { |
| 38 | components: { clxxAddDialog, imagePreview,clxxDetailDialog }, | 38 | components: { clxxAddDialog, imagePreview, clxxDetailDialog }, |
| 39 | data () { | 39 | data () { |
| 40 | return { | 40 | return { |
| 41 | isDialog: false, | 41 | isDialog: false, |
| 42 | detailDialog: false, | 42 | detailDialog: false, |
| 43 | iclass: "", | 43 | iclass: "", |
| 44 | // 材料目录选中 | 44 | // 材料目录选中 |
| 45 | treeCheckIndex: 0, | 45 | treeCheckIndex: 0, |
| 46 | treeCheckId: "", | 46 | treeCheckId: "", |
| 47 | key: 0, | 47 | key: 0, |
| 48 | tableData: [], | 48 | tableData: [], |
| 49 | previewImg: { | 49 | previewImg: { |
| 50 | // 收件标识码 | 50 | // 收件标识码 |
| 51 | bsmSj: '', | 51 | bsmSj: '', |
| 52 | bsmSlsq: this.$parent.bsmSlsq, | 52 | bsmSlsq: this.$parent.bsmSlsq, |
| 53 | index: 0, | 53 | index: 0, |
| 54 | selectedIndex: 0, | 54 | selectedIndex: 0, |
| 55 | imgList: [] | 55 | imgList: [] |
| 56 | } | 56 | } |
| 57 | } | ||
| 58 | }, | ||
| 59 | computed: { | ||
| 60 | ...mapGetters(["dictData"]) | ||
| 61 | }, | ||
| 62 | created () { | ||
| 63 | this.clmlInitList(1) | ||
| 64 | }, | ||
| 65 | methods: { | ||
| 66 | // 自动预览 | ||
| 67 | nextPriview () { | ||
| 68 | if (this.treeCheckIndex < this.tableData.length) { | ||
| 69 | this.treeCheckIndex++ | ||
| 70 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 71 | this.previewImg.index = 0 | ||
| 72 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 73 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 74 | } | 57 | } |
| 75 | }, | 58 | }, |
| 76 | prevPriview () { | 59 | computed: { |
| 77 | if (this.treeCheckIndex >= 1) { | 60 | ...mapGetters(["dictData"]) |
| 78 | this.treeCheckIndex-- | ||
| 79 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 80 | this.previewImg.index = this.previewImg.imgList.length | ||
| 81 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 82 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 83 | } | ||
| 84 | }, | 61 | }, |
| 85 | // 材料目录明细初始化 | 62 | created () { |
| 86 | clmlInitList (type) { | 63 | this.clmlInitList(1) |
| 87 | //type 1:列表初始化 2:新增材料 | 64 | }, |
| 88 | return new Promise(resolve => { | 65 | methods: { |
| 89 | this.unitData = this.$parent.unitData; | 66 | // 自动预览 |
| 90 | var formdata = new FormData(); | 67 | nextPriview () { |
| 91 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | 68 | if (this.treeCheckIndex < this.tableData.length) { |
| 92 | formdata.append("bsmSlsq", this.$parent.bsmSlsq); | 69 | this.treeCheckIndex++ |
| 93 | InitClml(formdata).then((res) => { | 70 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj |
| 94 | if(res.code == 200){ | 71 | this.previewImg.index = 0 |
| 95 | resolve(res.code) | 72 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children |
| 96 | if (res.result && res.result.length > 0) { | 73 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj |
| 97 | this.tableData = res.result; | 74 | } |
| 98 | if(type == 1){ | 75 | }, |
| 99 | this.treeClick(this.tableData[0],0); | 76 | prevPriview () { |
| 100 | }else{ | 77 | if (this.treeCheckIndex >= 1) { |
| 101 | //新增材料后刷新列表焦点置于新增的对象上 | 78 | this.treeCheckIndex-- |
| 102 | this.treeClick(this.tableData[this.tableData.length - 1],this.tableData.length - 1); | 79 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj |
| 80 | this.previewImg.index = this.previewImg.imgList.length | ||
| 81 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 82 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 83 | } | ||
| 84 | }, | ||
| 85 | // 材料目录明细初始化 | ||
| 86 | clmlInitList (type) { | ||
| 87 | //type 1:列表初始化 2:新增材料 | ||
| 88 | return new Promise(resolve => { | ||
| 89 | this.unitData = this.$parent.unitData; | ||
| 90 | var formdata = new FormData(); | ||
| 91 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
| 92 | formdata.append("bsmSlsq", this.$parent.bsmSlsq); | ||
| 93 | InitClml(formdata).then((res) => { | ||
| 94 | if (res.code == 200) { | ||
| 95 | resolve(res.code) | ||
| 96 | if (res.result && res.result.length > 0) { | ||
| 97 | this.tableData = res.result; | ||
| 98 | if (type == 1) { | ||
| 99 | this.treeClick(this.tableData[0], 0); | ||
| 100 | } else { | ||
| 101 | //新增材料后刷新列表焦点置于新增的对象上 | ||
| 102 | this.treeClick(this.tableData[this.tableData.length - 1], this.tableData.length - 1); | ||
| 103 | } | ||
| 103 | } | 104 | } |
| 105 | } else { | ||
| 106 | this.$message.error(res.message) | ||
| 104 | } | 107 | } |
| 105 | }else{ | 108 | }) |
| 106 | this.$message.error(res.message) | ||
| 107 | } | ||
| 108 | }) | ||
| 109 | }) | ||
| 110 | }, | ||
| 111 | setChecked(item){ | ||
| 112 | this.treeCheckId = item.bsmSj; | ||
| 113 | this.title = item.sjmc; | ||
| 114 | this.titleYs = 1; | ||
| 115 | this.titleNum = item.children.length; | ||
| 116 | this.previewImg.imgList = item.children; | ||
| 117 | this.previewImg.bsmSj = item.bsmSj; | ||
| 118 | }, | ||
| 119 | updateList (val) { | ||
| 120 | let that = this | ||
| 121 | if (val != null) { //删除最后一张图片时 val=null | ||
| 122 | this.tableData.forEach(item => { | ||
| 123 | if (item.bsmSj === val.bsmSj) { | ||
| 124 | item.children = val.children | ||
| 125 | } | ||
| 126 | }) | 109 | }) |
| 127 | this.previewImg.imgList = _.cloneDeep(val.children) | 110 | }, |
| 128 | if (this.previewImg.index == this.previewImg.imgList.length) { | 111 | setChecked (item) { |
| 129 | this.previewImg.index = this.previewImg.index - 1 | 112 | this.treeCheckId = item.bsmSj; |
| 130 | } | 113 | this.title = item.sjmc; |
| 131 | } else { | 114 | this.titleYs = 1; |
| 132 | this.previewImg.imgList = [] | 115 | this.titleNum = item.children.length; |
| 133 | this.tableData.forEach((item, index) => { | 116 | this.previewImg.imgList = item.children; |
| 134 | if (this.treeCheckId == item.bsmSj) { | 117 | this.previewImg.bsmSj = item.bsmSj; |
| 135 | item.children = [] | 118 | }, |
| 136 | that.treeCheckIndex = index | 119 | updateList (val) { |
| 120 | let that = this | ||
| 121 | if (val != null) { //删除最后一张图片时 val=null | ||
| 122 | this.tableData.forEach(item => { | ||
| 123 | if (item.bsmSj === val.bsmSj) { | ||
| 124 | item.children = val.children | ||
| 125 | } | ||
| 126 | }) | ||
| 127 | this.previewImg.imgList = _.cloneDeep(val.children) | ||
| 128 | if (this.previewImg.index == this.previewImg.imgList.length) { | ||
| 129 | this.previewImg.index = this.previewImg.index - 1 | ||
| 137 | } | 130 | } |
| 138 | }) | 131 | } else { |
| 139 | } | 132 | this.previewImg.imgList = [] |
| 140 | 133 | this.tableData.forEach((item, index) => { | |
| 141 | }, | 134 | if (this.treeCheckId == item.bsmSj) { |
| 142 | // 添加材料目录 | 135 | item.children = [] |
| 143 | handleAdd () { | 136 | that.treeCheckIndex = index |
| 144 | this.isDialog = true; | 137 | } |
| 145 | }, | ||
| 146 | // 新增弹窗保存 | ||
| 147 | addSave (data) { | ||
| 148 | let obj = { | ||
| 149 | bsmSlsq: this.$parent.bsmSlsq, | ||
| 150 | isrequired: "1", | ||
| 151 | sjmc: data.clmc, | ||
| 152 | sjsl: 0, | ||
| 153 | smzt: '', | ||
| 154 | ys: 0, | ||
| 155 | sjlx: data.cllx, | ||
| 156 | sfxjcl: "1", // 是否必选 | ||
| 157 | }; | ||
| 158 | saveClml(obj).then(async (res) => { | ||
| 159 | if (res.code == 200) { | ||
| 160 | let res = await this.clmlInitList(2) | ||
| 161 | if (res == 200) this.$message({ | ||
| 162 | message: "新增成功", | ||
| 163 | type: "success", | ||
| 164 | }) | 138 | }) |
| 165 | } | 139 | } |
| 166 | }); | 140 | |
| 167 | }, | 141 | }, |
| 168 | // 材料目录点击选中 | 142 | // 添加材料目录 |
| 169 | treeClick (item, index) { | 143 | handleAdd () { |
| 170 | this.previewImg.index = 0 | 144 | this.isDialog = true; |
| 171 | this.treeCheckId = item?.bsmSj | 145 | }, |
| 172 | this.treeCheckIndex = index | 146 | // 新增弹窗保存 |
| 173 | this.previewImg.imgList = item?.children | 147 | addSave (data) { |
| 174 | this.previewImg.bsmSj = item?.bsmSj | 148 | let obj = { |
| 175 | }, | 149 | bsmSlsq: this.$parent.bsmSlsq, |
| 176 | // 小图片点击 | 150 | isrequired: "1", |
| 177 | imgClick (item, index) { | 151 | sjmc: data.clmc, |
| 178 | this.showImg = item; | 152 | sjsl: 0, |
| 179 | this.titleYs = index + 1; | 153 | smzt: '', |
| 180 | }, | 154 | ys: 0, |
| 181 | // 字典 | 155 | sjlx: data.cllx, |
| 182 | dicStatus (val, code) { | 156 | sfxjcl: "1", // 是否必选 |
| 183 | let data = this.$store.getters.dictData[code], | 157 | }; |
| 184 | name = "暂无"; | 158 | saveClml(obj).then(async (res) => { |
| 185 | if (data) { | 159 | if (res.code == 200) { |
| 186 | data.map((item) => { | 160 | let res = await this.clmlInitList(2) |
| 187 | if (item.dcode == val) { | 161 | if (res == 200) this.$message({ |
| 188 | name = item.dname; | 162 | message: "新增成功", |
| 163 | type: "success", | ||
| 164 | }) | ||
| 189 | } | 165 | } |
| 190 | }); | 166 | }); |
| 191 | return name; | 167 | }, |
| 192 | } | 168 | // 材料目录点击选中 |
| 193 | }, | 169 | treeClick (item, index) { |
| 194 | //查看明细 | 170 | this.previewImg.index = 0 |
| 195 | viewDetail(){ | 171 | this.treeCheckId = item?.bsmSj |
| 172 | this.treeCheckIndex = index | ||
| 173 | this.previewImg.imgList = item?.children | ||
| 174 | this.previewImg.bsmSj = item?.bsmSj | ||
| 175 | }, | ||
| 176 | // 小图片点击 | ||
| 177 | imgClick (item, index) { | ||
| 178 | this.showImg = item; | ||
| 179 | this.titleYs = index + 1; | ||
| 180 | }, | ||
| 181 | // 字典 | ||
| 182 | dicStatus (val, code) { | ||
| 183 | let data = this.$store.getters.dictData[code], | ||
| 184 | name = "暂无"; | ||
| 185 | if (data) { | ||
| 186 | data.map((item) => { | ||
| 187 | if (item.dcode == val) { | ||
| 188 | name = item.dname; | ||
| 189 | } | ||
| 190 | }); | ||
| 191 | return name; | ||
| 192 | } | ||
| 193 | }, | ||
| 194 | //查看明细 | ||
| 195 | viewDetail () { | ||
| 196 | this.detailDialog = true; | 196 | this.detailDialog = true; |
| 197 | }, | 197 | }, |
| 198 | //设置tableData | 198 | //设置tableData |
| 199 | setTableData(tableData){ | 199 | setTableData (tableData) { |
| 200 | this.$nextTick(res => { | 200 | this.$nextTick(res => { |
| 201 | this.tableData = tableData; | 201 | this.tableData = tableData; |
| 202 | }) | 202 | }) |
| 203 | }, | ||
| 203 | }, | 204 | }, |
| 204 | }, | 205 | }; |
| 205 | }; | ||
| 206 | </script> | 206 | </script> |
| 207 | <style scoped lang='scss'> | 207 | <style scoped lang='scss'> |
| 208 | @import "~@/styles/mixin.scss"; | 208 | @import "~@/styles/mixin.scss"; |
| 209 | |||
| 210 | .active { | ||
| 211 | background: $light-blue !important; | ||
| 212 | color: #fff; | ||
| 213 | } | ||
| 214 | |||
| 215 | .required { | ||
| 216 | font-size: 12px; | ||
| 217 | color: $pink; | ||
| 218 | float: left; | ||
| 219 | } | ||
| 220 | 209 | ||
| 221 | .cl_number { | 210 | .active { |
| 222 | float: right; | 211 | background: $light-blue !important; |
| 223 | } | 212 | color: #fff; |
| 224 | 213 | } | |
| 225 | .clxx { | ||
| 226 | width: 100%; | ||
| 227 | display: flex; | ||
| 228 | padding-left: 5px; | ||
| 229 | height: calc(100vh - 125px); | ||
| 230 | |||
| 231 | .left { | ||
| 232 | display: flex; | ||
| 233 | flex-direction: column; | ||
| 234 | justify-content: space-between; | ||
| 235 | 214 | ||
| 236 | .item { | 215 | .required { |
| 237 | width: 28px; | 216 | font-size: 12px; |
| 238 | height: 49%; | 217 | color: $pink; |
| 239 | @include flex-center; | 218 | float: left; |
| 240 | background-color: #E4E7ED; | 219 | } |
| 241 | border-bottom-right-radius: 10px; | ||
| 242 | padding: 5px; | ||
| 243 | cursor: pointer; | ||
| 244 | transition: all 0.3s; | ||
| 245 | 220 | ||
| 246 | &:hover { | 221 | .cl_number { |
| 247 | @extend .active; | 222 | float: right; |
| 248 | } | ||
| 249 | } | ||
| 250 | } | 223 | } |
| 251 | 224 | ||
| 252 | .right { | 225 | .clxx { |
| 253 | width: 100%; | 226 | width: 100%; |
| 254 | height: 100%; | 227 | display: flex; |
| 228 | padding-left: 5px; | ||
| 229 | height: calc(100vh - 125px); | ||
| 230 | |||
| 231 | .left { | ||
| 232 | display: flex; | ||
| 233 | flex-direction: column; | ||
| 234 | justify-content: space-between; | ||
| 255 | 235 | ||
| 256 | .clmlmx-box { | 236 | .item { |
| 257 | margin: 0 auto; | 237 | width: 28px; |
| 238 | height: 49%; | ||
| 239 | @include flex-center; | ||
| 240 | background-color: #e4e7ed; | ||
| 241 | border-bottom-right-radius: 10px; | ||
| 242 | padding: 5px; | ||
| 243 | cursor: pointer; | ||
| 244 | transition: all 0.3s; | ||
| 258 | 245 | ||
| 259 | .title { | 246 | &:hover { |
| 260 | text-align: center; | 247 | @extend .active; |
| 261 | height: 60px; | 248 | } |
| 262 | line-height: 60px; | ||
| 263 | border: 1px solid #dfe6ec; | ||
| 264 | font-size: 20px; | ||
| 265 | background: #81d3f81a; | ||
| 266 | margin-bottom: -1px; | ||
| 267 | } | 249 | } |
| 268 | } | 250 | } |
| 269 | 251 | ||
| 270 | .clyl-box { | 252 | .right { |
| 271 | width: 100%; | 253 | width: 100%; |
| 272 | height: 100%; | 254 | height: 100%; |
| 273 | display: flex; | ||
| 274 | |||
| 275 | .menu-tree { | ||
| 276 | width: 20%; | ||
| 277 | min-width: 160px; | ||
| 278 | height: 100%; | ||
| 279 | margin-right: 10px; | ||
| 280 | border-right: 1px dotted #d9d9d9; | ||
| 281 | padding: 0 15px; | ||
| 282 | 255 | ||
| 256 | .clmlmx-box { | ||
| 257 | margin: 0 auto; | ||
| 283 | 258 | ||
| 284 | .item { | 259 | .title { |
| 285 | line-height: 30px; | ||
| 286 | padding-top: 5px; | ||
| 287 | border-bottom: 1px solid #e8e8e8; | ||
| 288 | font-size: 16px; | ||
| 289 | text-align: center; | 260 | text-align: center; |
| 290 | color: $light-blue; | 261 | height: 60px; |
| 262 | line-height: 60px; | ||
| 263 | border: 1px solid #dfe6ec; | ||
| 264 | font-size: 20px; | ||
| 265 | background: #81d3f81a; | ||
| 266 | margin-bottom: -1px; | ||
| 267 | } | ||
| 268 | } | ||
| 291 | 269 | ||
| 292 | .itemIcon { | 270 | .clyl-box { |
| 293 | float: right; | 271 | width: 100%; |
| 294 | line-height: 60px; | 272 | height: 100%; |
| 295 | cursor: pointer; | 273 | display: flex; |
| 296 | } | ||
| 297 | 274 | ||
| 298 | .child { | 275 | .menu-tree { |
| 299 | line-height: 32px; | 276 | width: 20%; |
| 300 | border-bottom: 1px solid #e8e8e8; | 277 | min-width: 160px; |
| 301 | padding-left: 10px; | 278 | height: 100%; |
| 302 | color: #6b6b6b; | 279 | margin-right: 10px; |
| 303 | cursor: pointer; | 280 | border-right: 1px dotted #d9d9d9; |
| 304 | box-sizing: border-box; | 281 | padding: 0 15px; |
| 305 | border-radius: 6px; | ||
| 306 | line-height: 20px; | ||
| 307 | transition: all 0.3s; | ||
| 308 | padding: 8px 0; | ||
| 309 | } | ||
| 310 | 282 | ||
| 311 | .child:hover { | 283 | .item { |
| 284 | line-height: 30px; | ||
| 285 | padding-top: 5px; | ||
| 286 | border-bottom: 1px solid #e8e8e8; | ||
| 287 | font-size: 16px; | ||
| 288 | text-align: center; | ||
| 312 | color: $light-blue; | 289 | color: $light-blue; |
| 313 | transform: scale(1.1); | ||
| 314 | } | ||
| 315 | 290 | ||
| 316 | .checked { | 291 | .itemIcon { |
| 317 | border: 1px solid $light-blue; | 292 | float: right; |
| 318 | color: $light-blue; | 293 | line-height: 60px; |
| 294 | cursor: pointer; | ||
| 295 | } | ||
| 296 | |||
| 297 | .child { | ||
| 298 | line-height: 32px; | ||
| 299 | border-bottom: 1px solid #e8e8e8; | ||
| 300 | padding-left: 10px; | ||
| 301 | color: #6b6b6b; | ||
| 302 | cursor: pointer; | ||
| 303 | box-sizing: border-box; | ||
| 304 | border-radius: 6px; | ||
| 305 | line-height: 20px; | ||
| 306 | transition: all 0.3s; | ||
| 307 | padding: 8px 0; | ||
| 308 | } | ||
| 309 | |||
| 310 | .child:hover { | ||
| 311 | color: $light-blue; | ||
| 312 | transform: scale(1.1); | ||
| 313 | } | ||
| 314 | |||
| 315 | .checked { | ||
| 316 | border: 1px solid $light-blue; | ||
| 317 | color: $light-blue; | ||
| 318 | } | ||
| 319 | } | 319 | } |
| 320 | } | 320 | } |
| 321 | } | ||
| 322 | 321 | ||
| 323 | .clyl-img { | 322 | .clyl-img { |
| 324 | width: 75%; | 323 | width: 75%; |
| 325 | height: 100%; | 324 | height: 100%; |
| 326 | background: #f3f4f7; | 325 | background: #f3f4f7; |
| 327 | margin: 0 auto; | 326 | margin: 0 auto; |
| 328 | position: relative; | 327 | position: relative; |
| 328 | } | ||
| 329 | } | 329 | } |
| 330 | } | 330 | } |
| 331 | } | 331 | } |
| 332 | } | ||
| 333 | </style> | 332 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-05-09 09:20:10 | ||
| 5 | --> | ||
| 1 | <template> | 6 | <template> |
| 2 | <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit" | 7 | <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit" |
| 3 | :isFullscreen="false"> | 8 | :isFullscreen="false"> |
| ... | @@ -24,48 +29,52 @@ | ... | @@ -24,48 +29,52 @@ |
| 24 | </template> | 29 | </template> |
| 25 | 30 | ||
| 26 | <script> | 31 | <script> |
| 27 | import { mapGetters } from "vuex"; | 32 | import { mapGetters } from "vuex"; |
| 28 | export default { | 33 | export default { |
| 29 | props: { | 34 | props: { |
| 30 | value: { type: Boolean, default: false }, | 35 | value: { type: Boolean, default: false }, |
| 31 | }, | 36 | }, |
| 32 | data () { | 37 | data () { |
| 33 | return { | 38 | return { |
| 34 | myValue: this.value, | 39 | myValue: this.value, |
| 35 | ruleForm: { | 40 | ruleForm: { |
| 36 | cllx: "", | 41 | cllx: "", |
| 37 | clmc: "", | 42 | clmc: "", |
| 38 | }, | 43 | }, |
| 39 | }; | 44 | }; |
| 40 | }, | 45 | }, |
| 41 | computed: { | 46 | computed: { |
| 42 | ...mapGetters(["dictData"]), | 47 | ...mapGetters(["dictData"]), |
| 43 | }, | ||
| 44 | watch: { | ||
| 45 | value (val) { | ||
| 46 | this.myValue = val; | ||
| 47 | }, | 48 | }, |
| 48 | }, | 49 | watch: { |
| 49 | methods: { | 50 | value (val) { |
| 50 | closeDialog () { | 51 | this.myValue = val; |
| 51 | this.$emit("input", false); | 52 | }, |
| 52 | this.ruleForm = { | ||
| 53 | cllx: "", | ||
| 54 | clmc: "", | ||
| 55 | } | ||
| 56 | }, | 53 | }, |
| 57 | handleSubmit () { | 54 | methods: { |
| 58 | this.$parent.addSave(this.ruleForm); | 55 | closeDialog () { |
| 59 | this.$emit("input", false); | 56 | this.$emit("input", false); |
| 57 | this.ruleForm = { | ||
| 58 | cllx: "", | ||
| 59 | clmc: "", | ||
| 60 | } | ||
| 61 | }, | ||
| 62 | handleSubmit () { | ||
| 63 | this.$parent.addSave(this.ruleForm); | ||
| 64 | this.ruleForm = { | ||
| 65 | cllx: "", | ||
| 66 | clmc: "", | ||
| 67 | } | ||
| 68 | this.$emit("input", false); | ||
| 69 | }, | ||
| 60 | }, | 70 | }, |
| 61 | }, | 71 | }; |
| 62 | }; | ||
| 63 | </script> | 72 | </script> |
| 64 | <style scoped lang="scss"> | 73 | <style scoped lang="scss"> |
| 65 | .submit-button { | 74 | .submit-button { |
| 66 | text-align: center; | 75 | text-align: center; |
| 67 | height: 52px; | 76 | height: 52px; |
| 68 | padding-top: 10px; | 77 | padding-top: 10px; |
| 69 | background-color: #fff; | 78 | background-color: #fff; |
| 70 | } | 79 | } |
| 71 | </style> | 80 | </style> | ... | ... |
-
Please register or sign in to post a comment