Merge branch 'dev'
Showing
25 changed files
with
324 additions
and
431 deletions
| ... | @@ -40,5 +40,8 @@ import { popupDialog,popupCacel} from "@/utils/popup.js"; | ... | @@ -40,5 +40,8 @@ import { popupDialog,popupCacel} from "@/utils/popup.js"; |
| 40 | popupDialog(title, "xxxx", data); | 40 | popupDialog(title, "xxxx", data); |
| 41 | popupCacel() 可以关闭弹框 | 41 | popupCacel() 可以关闭弹框 |
| 42 | 42 | ||
| 43 | <!-- 高拍仪类型 --> | ||
| 44 | <!-- lt:良田 jy:捷宇 --> | ||
| 45 | |||
| 43 | 46 | ||
| 44 | 47 | ... | ... |
| ... | @@ -34,7 +34,9 @@ | ... | @@ -34,7 +34,9 @@ |
| 34 | "vue-router": "3.0.2", | 34 | "vue-router": "3.0.2", |
| 35 | "vue-seamless-scroll": "^1.1.23", | 35 | "vue-seamless-scroll": "^1.1.23", |
| 36 | "vuex": "3.1.0", | 36 | "vuex": "3.1.0", |
| 37 | "x2js": "^3.4.4" | 37 | "x2js": "^3.4.4", |
| 38 | "xlsx": "^0.17.0", | ||
| 39 | "xlsx-style": "^0.8.13" | ||
| 38 | }, | 40 | }, |
| 39 | "devDependencies": { | 41 | "devDependencies": { |
| 40 | "@vue/cli-plugin-babel": "4.4.4", | 42 | "@vue/cli-plugin-babel": "4.4.4", | ... | ... |
| ... | @@ -2,5 +2,6 @@ | ... | @@ -2,5 +2,6 @@ |
| 2 | "TITLE": "不动产登记系统", | 2 | "TITLE": "不动产登记系统", |
| 3 | "SERVERAPI": "/bdcdj", | 3 | "SERVERAPI": "/bdcdj", |
| 4 | "IDCARDURL": "http://127.0.0.1:33088/function=get_idcard&readnew=0", | 4 | "IDCARDURL": "http://127.0.0.1:33088/function=get_idcard&readnew=0", |
| 5 | "adapter": "dysqs-630222" | 5 | "adapter": "dysqs-630222", |
| 6 | "gaopaiyi": "jy" | ||
| 6 | } | 7 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
src/image/duijie.png
0 → 100644
415 KB
| ... | @@ -126,6 +126,13 @@ export const asyncRoutes = [ | ... | @@ -126,6 +126,13 @@ export const asyncRoutes = [ |
| 126 | component: () => import('@/views/ywbl/ybx/ybx.vue'), | 126 | component: () => import('@/views/ywbl/ybx/ybx.vue'), |
| 127 | name: 'ybx', | 127 | name: 'ybx', |
| 128 | meta: { title: '已办箱' } | 128 | meta: { title: '已办箱' } |
| 129 | }, { | ||
| 130 | path: 'ycsl', | ||
| 131 | id: '24', | ||
| 132 | parentId: '2', | ||
| 133 | component: () => import('@/views/ywbl/ycsl/ycsl.vue'), | ||
| 134 | name: 'ycsl', | ||
| 135 | meta: { title: '一窗受理' } | ||
| 129 | }, | 136 | }, |
| 130 | ] | 137 | ] |
| 131 | }, | 138 | }, | ... | ... |
| ... | @@ -66,7 +66,6 @@ export function judgeSort (arr) { | ... | @@ -66,7 +66,6 @@ export function judgeSort (arr) { |
| 66 | } | 66 | } |
| 67 | return arr | 67 | return arr |
| 68 | } | 68 | } |
| 69 | // 上下移动 | ||
| 70 | /** | 69 | /** |
| 71 | * @description: 上下移动 | 70 | * @description: 上下移动 |
| 72 | * @param {*} bsmDict | 71 | * @param {*} bsmDict |
| ... | @@ -98,7 +97,6 @@ export function realMove (bsmDict, operate, data) { | ... | @@ -98,7 +97,6 @@ export function realMove (bsmDict, operate, data) { |
| 98 | } | 97 | } |
| 99 | data = judgeSort(changeSort(data, bsmDict)); | 98 | data = judgeSort(changeSort(data, bsmDict)); |
| 100 | } | 99 | } |
| 101 | // 获取所有父节点 | ||
| 102 | /** | 100 | /** |
| 103 | * @description: 获取所有父节点 | 101 | * @description: 获取所有父节点 |
| 104 | * @param {*} treeData | 102 | * @param {*} treeData | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-11-14 13:25:36 | 4 | * @LastEditTime: 2023-12-13 13:44:24 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <div class="rlPopup"> | 7 | <div class="rlPopup"> |
| ... | @@ -12,7 +12,8 @@ | ... | @@ -12,7 +12,8 @@ |
| 12 | <i class="el-icon-arrow-right"></i> | 12 | <i class="el-icon-arrow-right"></i> |
| 13 | </div> | 13 | </div> |
| 14 | <div class="img-list-wrap" v-Loading="loading"> | 14 | <div class="img-list-wrap" v-Loading="loading"> |
| 15 | <img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="高拍仪"> | 15 | <img id="photo" src="" v-show="isScan && this.BASE_API.gaopaiyi=='jy'" alt="高拍仪捷宇"> |
| 16 | <img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan && this.BASE_API.gaopaiyi=='lt'" alt="高拍仪良田"> | ||
| 16 | <div v-for="(img, i) in previewImg.imgList" :key="i" v-else> | 17 | <div v-for="(img, i) in previewImg.imgList" :key="i" v-else> |
| 17 | <photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" | 18 | <photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" |
| 18 | overlayStyle="width: 100%;height:100%"> | 19 | overlayStyle="width: 100%;height:100%"> |
| ... | @@ -89,6 +90,7 @@ | ... | @@ -89,6 +90,7 @@ |
| 89 | showViewer: false, | 90 | showViewer: false, |
| 90 | initialIndex: 0, | 91 | initialIndex: 0, |
| 91 | allLi: [], | 92 | allLi: [], |
| 93 | webSocket: null | ||
| 92 | } | 94 | } |
| 93 | }, | 95 | }, |
| 94 | watch: { | 96 | watch: { |
| ... | @@ -107,9 +109,37 @@ | ... | @@ -107,9 +109,37 @@ |
| 107 | } | 109 | } |
| 108 | }, | 110 | }, |
| 109 | created () { | 111 | created () { |
| 112 | let that = this | ||
| 110 | this.maxLength = 0; | 113 | this.maxLength = 0; |
| 111 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) | 114 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) |
| 112 | this.thumbnailImages = this.previewImg.imgList | 115 | this.thumbnailImages = this.previewImg.imgList |
| 116 | if (this.BASE_API.gaopaiyi == 'jy') { | ||
| 117 | this.webSocket = new WebSocket('ws://localhost:1818'); | ||
| 118 | this.webSocket.onmessage = function (event) { | ||
| 119 | let begin_data = "data:image/jpeg;base64,"; | ||
| 120 | document.getElementById('photo').src = begin_data + event.data; | ||
| 121 | if (event.data.indexOf('BeginsGetBase64') >= 0) { | ||
| 122 | let blob = that.dataURLtoBlob('data:image/png;base64,' + event.data.replace('BeginsGetBase64', '').replace('EndsGetBase64', '')); | ||
| 123 | let file = that.blobToFile(blob); | ||
| 124 | var formData = new FormData(); | ||
| 125 | formData.append('file', file) | ||
| 126 | formData.append("bsmSj", that.previewImg.bsmSj); | ||
| 127 | formData.append("bsmSlsq", that.previewImg.bsmSlsq); | ||
| 128 | if (that.previewImg.imgList.length > 0) { | ||
| 129 | formData.append("ssBsmClmx", that.previewImg.imgList[that.previewImg.index].bsmClmx); | ||
| 130 | } | ||
| 131 | uploadSjClmx(formData).then((res) => { | ||
| 132 | if (res.code == 200) { | ||
| 133 | that.$emit('updateList', { children: res.result, bsmSj: that.previewImg.bsmSj }) | ||
| 134 | that.$message({ | ||
| 135 | message: '上传成功!', | ||
| 136 | type: 'success' | ||
| 137 | }) | ||
| 138 | } | ||
| 139 | }) | ||
| 140 | } | ||
| 141 | } | ||
| 142 | } | ||
| 113 | }, | 143 | }, |
| 114 | computed: { | 144 | computed: { |
| 115 | isFirst () { | 145 | isFirst () { |
| ... | @@ -164,32 +194,36 @@ | ... | @@ -164,32 +194,36 @@ |
| 164 | * @description: 拍照 | 194 | * @description: 拍照 |
| 165 | * @author: renchao | 195 | * @author: renchao |
| 166 | */ | 196 | */ |
| 167 | handleViewScan () { | 197 | dataURLtoBlob (base64String) { |
| 168 | function dataURLtoBlob (base64String) { | 198 | const arr = base64String.split(','); |
| 169 | const arr = base64String.split(','); | 199 | if (arr.length !== 2) { |
| 170 | if (arr.length !== 2) { | 200 | throw new Error('Invalid Base64 format'); |
| 171 | throw new Error('Invalid Base64 format'); | 201 | } |
| 172 | } | 202 | const mime = arr[0].match(/:(.*?);/)[1]; |
| 173 | const mime = arr[0].match(/:(.*?);/)[1]; | 203 | if (!mime) { |
| 174 | if (!mime) { | 204 | throw new Error('Cannot retrieve MIME type'); |
| 175 | throw new Error('Cannot retrieve MIME type'); | 205 | } |
| 176 | } | 206 | const bstr = atob(arr[1]); |
| 177 | const bstr = atob(arr[1]); | 207 | const n = bstr.length; |
| 178 | const n = bstr.length; | 208 | const u8arr = new Uint8Array(n); |
| 179 | const u8arr = new Uint8Array(n); | 209 | for (let i = 0; i < n; i++) { |
| 180 | for (let i = 0; i < n; i++) { | 210 | u8arr[i] = bstr.charCodeAt(i); |
| 181 | u8arr[i] = bstr.charCodeAt(i); | ||
| 182 | } | ||
| 183 | return new Blob([u8arr], { type: mime }); | ||
| 184 | } | 211 | } |
| 185 | function blobToFile (blob) { | 212 | return new Blob([u8arr], { type: mime }); |
| 186 | let name = getUuid(8) + '.jpg' | 213 | }, |
| 187 | const file = new File([blob], name); | 214 | blobToFile (blob) { |
| 188 | return file; | 215 | let name = getUuid(8) + '.jpg' |
| 216 | const file = new File([blob], name); | ||
| 217 | return file; | ||
| 218 | }, | ||
| 219 | handleViewScan () { | ||
| 220 | if (this.BASE_API.gaopaiyi == 'jy') { | ||
| 221 | this.webSocket.send('sGetBase64'); | ||
| 222 | return | ||
| 189 | } | 223 | } |
| 190 | getAltimeterInfo().then(res => { | 224 | getAltimeterInfo().then(res => { |
| 191 | let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64); | 225 | let blob = this.dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64); |
| 192 | let file = blobToFile(blob); | 226 | let file = this.blobToFile(blob); |
| 193 | var formData = new FormData(); | 227 | var formData = new FormData(); |
| 194 | formData.append('file', file) | 228 | formData.append('file', file) |
| 195 | formData.append("bsmSj", this.previewImg.bsmSj); | 229 | formData.append("bsmSj", this.previewImg.bsmSj); | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-11-14 13:25:42 | 4 | * @LastEditTime: 2023-12-13 14:19:09 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <div class="rlPopup"> | 7 | <div class="rlPopup"> |
| ... | @@ -12,7 +12,8 @@ | ... | @@ -12,7 +12,8 @@ |
| 12 | <i class="el-icon-arrow-right"></i> | 12 | <i class="el-icon-arrow-right"></i> |
| 13 | </div> | 13 | </div> |
| 14 | <div class="img-list-wrap" v-Loading="loading"> | 14 | <div class="img-list-wrap" v-Loading="loading"> |
| 15 | <img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="高拍仪"> | 15 | <img id="photo" src="" v-show="isScan && this.BASE_API.gaopaiyi=='jy'" alt="高拍仪捷宇"> |
| 16 | <img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan && this.BASE_API.gaopaiyi=='lt'" alt="高拍仪"> | ||
| 16 | <div v-for="(img, i) in previewImg.imgList" :key="i" v-else> | 17 | <div v-for="(img, i) in previewImg.imgList" :key="i" v-else> |
| 17 | <photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" | 18 | <photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" |
| 18 | overlayStyle="width: 100%;height:100%"> | 19 | overlayStyle="width: 100%;height:100%"> |
| ... | @@ -89,6 +90,7 @@ | ... | @@ -89,6 +90,7 @@ |
| 89 | showViewer: false, | 90 | showViewer: false, |
| 90 | initialIndex: 0, | 91 | initialIndex: 0, |
| 91 | allLi: [], | 92 | allLi: [], |
| 93 | webSocket: null | ||
| 92 | } | 94 | } |
| 93 | }, | 95 | }, |
| 94 | watch: { | 96 | watch: { |
| ... | @@ -107,9 +109,36 @@ | ... | @@ -107,9 +109,36 @@ |
| 107 | } | 109 | } |
| 108 | }, | 110 | }, |
| 109 | created () { | 111 | created () { |
| 112 | let that = this | ||
| 110 | this.maxLength = 0; | 113 | this.maxLength = 0; |
| 111 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) | 114 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) |
| 112 | this.thumbnailImages = this.previewImg.imgList | 115 | this.thumbnailImages = this.previewImg.imgList |
| 116 | if (this.BASE_API.gaopaiyi == 'jy') { | ||
| 117 | this.webSocket = new WebSocket('ws://localhost:1818'); | ||
| 118 | this.webSocket.onmessage = function (event) { | ||
| 119 | let begin_data = "data:image/jpeg;base64,"; | ||
| 120 | document.getElementById('photo').src = begin_data + event.data; | ||
| 121 | if (event.data.indexOf('BeginsGetBase64') >= 0) { | ||
| 122 | let blob = that.dataURLtoBlob('data:image/png;base64,' + event.data.replace('BeginsGetBase64', '').replace('EndsGetBase64', '')); | ||
| 123 | let file = that.blobToFile(blob); | ||
| 124 | var formData = new FormData(); | ||
| 125 | formData.append('file', file) | ||
| 126 | formData.append("bsmSj", that.previewImg.bsmSj); | ||
| 127 | if (that.previewImg.imgList.length > 0) { | ||
| 128 | formData.append("index", that.previewImg.imgList[that.previewImg.index].sxh); | ||
| 129 | } | ||
| 130 | uploadSjClmx(formData).then((res) => { | ||
| 131 | if (res.code == 200) { | ||
| 132 | that.$emit('updateList', { children: res.result, bsmSj: that.previewImg.bsmSj }) | ||
| 133 | that.$message({ | ||
| 134 | message: '上传成功!', | ||
| 135 | type: 'success' | ||
| 136 | }) | ||
| 137 | } | ||
| 138 | }) | ||
| 139 | } | ||
| 140 | } | ||
| 141 | } | ||
| 113 | }, | 142 | }, |
| 114 | computed: { | 143 | computed: { |
| 115 | isFirst () { | 144 | isFirst () { |
| ... | @@ -164,28 +193,32 @@ | ... | @@ -164,28 +193,32 @@ |
| 164 | * @description: 拍照 | 193 | * @description: 拍照 |
| 165 | * @author: renchao | 194 | * @author: renchao |
| 166 | */ | 195 | */ |
| 167 | handleViewScan () { | 196 | dataURLtoBlob (base64String) { |
| 168 | function dataURLtoBlob (base64String) { | 197 | const arr = base64String.split(','); |
| 169 | const arr = base64String.split(','); | 198 | if (arr.length !== 2) { |
| 170 | if (arr.length !== 2) { | 199 | throw new Error('Invalid Base64 format'); |
| 171 | throw new Error('Invalid Base64 format'); | 200 | } |
| 172 | } | 201 | const mime = arr[0].match(/:(.*?);/)[1]; |
| 173 | const mime = arr[0].match(/:(.*?);/)[1]; | 202 | if (!mime) { |
| 174 | if (!mime) { | 203 | throw new Error('Cannot retrieve MIME type'); |
| 175 | throw new Error('Cannot retrieve MIME type'); | 204 | } |
| 176 | } | 205 | const bstr = atob(arr[1]); |
| 177 | const bstr = atob(arr[1]); | 206 | const n = bstr.length; |
| 178 | const n = bstr.length; | 207 | const u8arr = new Uint8Array(n); |
| 179 | const u8arr = new Uint8Array(n); | 208 | for (let i = 0; i < n; i++) { |
| 180 | for (let i = 0; i < n; i++) { | 209 | u8arr[i] = bstr.charCodeAt(i); |
| 181 | u8arr[i] = bstr.charCodeAt(i); | ||
| 182 | } | ||
| 183 | return new Blob([u8arr], { type: mime }); | ||
| 184 | } | 210 | } |
| 185 | function blobToFile (blob) { | 211 | return new Blob([u8arr], { type: mime }); |
| 186 | let name = getUuid(8) + '.jpg' | 212 | }, |
| 187 | const file = new File([blob], name); | 213 | blobToFile (blob) { |
| 188 | return file; | 214 | let name = getUuid(8) + '.jpg' |
| 215 | const file = new File([blob], name); | ||
| 216 | return file; | ||
| 217 | }, | ||
| 218 | handleViewScan () { | ||
| 219 | if (this.BASE_API.gaopaiyi == 'jy') { | ||
| 220 | this.webSocket.send('sGetBase64'); | ||
| 221 | return | ||
| 189 | } | 222 | } |
| 190 | getAltimeterInfo().then(res => { | 223 | getAltimeterInfo().then(res => { |
| 191 | let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64); | 224 | let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64); | ... | ... |
| ... | @@ -46,6 +46,7 @@ | ... | @@ -46,6 +46,7 @@ |
| 46 | </div> | 46 | </div> |
| 47 | <image-preview | 47 | <image-preview |
| 48 | ref="imageRef" | 48 | ref="imageRef" |
| 49 | :key="imgKey" | ||
| 49 | v-if="tableData.length > 0" | 50 | v-if="tableData.length > 0" |
| 50 | :previewImg="previewImg" | 51 | :previewImg="previewImg" |
| 51 | @updateList="updateList" | 52 | @updateList="updateList" |
| ... | @@ -75,6 +76,7 @@ | ... | @@ -75,6 +76,7 @@ |
| 75 | }, | 76 | }, |
| 76 | data () { | 77 | data () { |
| 77 | return { | 78 | return { |
| 79 | imgKey: 0, | ||
| 78 | isDialog: false, | 80 | isDialog: false, |
| 79 | iclass: "", | 81 | iclass: "", |
| 80 | // 材料目录选中 | 82 | // 材料目录选中 |
| ... | @@ -284,6 +286,7 @@ | ... | @@ -284,6 +286,7 @@ |
| 284 | if (this.$refs.imageRef) { | 286 | if (this.$refs.imageRef) { |
| 285 | this.$refs.imageRef.initialIndex = 0 | 287 | this.$refs.imageRef.initialIndex = 0 |
| 286 | } | 288 | } |
| 289 | this.imgKey++ | ||
| 287 | }, | 290 | }, |
| 288 | /** | 291 | /** |
| 289 | * @description: 小图片点击 | 292 | * @description: 小图片点击 | ... | ... |
| ... | @@ -57,8 +57,8 @@ | ... | @@ -57,8 +57,8 @@ |
| 57 | .home-left { | 57 | .home-left { |
| 58 | width: 70%; | 58 | width: 70%; |
| 59 | padding-right: 3px; | 59 | padding-right: 3px; |
| 60 | height: 100%; | ||
| 61 | font-size: 14px; | 60 | font-size: 14px; |
| 61 | min-height: 625px; | ||
| 62 | 62 | ||
| 63 | .list-title { | 63 | .list-title { |
| 64 | overflow: hidden; | 64 | overflow: hidden; |
| ... | @@ -81,7 +81,8 @@ | ... | @@ -81,7 +81,8 @@ |
| 81 | 81 | ||
| 82 | .box-mountNode { | 82 | .box-mountNode { |
| 83 | flex: 1; | 83 | flex: 1; |
| 84 | height: calc(100% - 490px); | 84 | // height: calc(100% - 490px); |
| 85 | min-height: 130px; | ||
| 85 | } | 86 | } |
| 86 | 87 | ||
| 87 | .home-right { | 88 | .home-right { |
| ... | @@ -89,6 +90,7 @@ | ... | @@ -89,6 +90,7 @@ |
| 89 | width: 30%; | 90 | width: 30%; |
| 90 | display: flex; | 91 | display: flex; |
| 91 | flex-direction: column; | 92 | flex-direction: column; |
| 93 | min-height: 620px; | ||
| 92 | 94 | ||
| 93 | .list-title { | 95 | .list-title { |
| 94 | overflow: hidden; | 96 | overflow: hidden; | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-07-19 09:50:45 | 4 | * @LastEditTime: 2023-11-30 17:07:18 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <div id="login"> | 7 | <div id="login"> |
| ... | @@ -260,7 +260,12 @@ | ... | @@ -260,7 +260,12 @@ |
| 260 | position: absolute; | 260 | position: absolute; |
| 261 | left: 50%; | 261 | left: 50%; |
| 262 | top: calc(50% + 10px); | 262 | top: calc(50% + 10px); |
| 263 | transform: translate(-50%, -50%); | 263 | margin: -225px 0 0 -468px; |
| 264 | } | ||
| 265 | @media screen and (max-width: 1440px) { | ||
| 266 | .login-content-wrap { | ||
| 267 | transform: scale(0.8); | ||
| 268 | } | ||
| 264 | } | 269 | } |
| 265 | .login-logo { | 270 | .login-logo { |
| 266 | height: 70px; | 271 | height: 70px; | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-11-14 13:25:49 | 4 | * @LastEditTime: 2023-12-13 13:59:52 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <div class="rlPopup"> | 7 | <div class="rlPopup"> |
| ... | @@ -12,8 +12,7 @@ | ... | @@ -12,8 +12,7 @@ |
| 12 | <i class="el-icon-arrow-right"></i> | 12 | <i class="el-icon-arrow-right"></i> |
| 13 | </div> | 13 | </div> |
| 14 | <div class="img-list-wrap" v-Loading="loading"> | 14 | <div class="img-list-wrap" v-Loading="loading"> |
| 15 | <img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt=""> | 15 | <div v-for="(img, i) in previewImg.imgList" :key="i"> |
| 16 | <div v-for="(img, i) in previewImg.imgList" :key="i" v-else> | ||
| 17 | <photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" | 16 | <photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" |
| 18 | overlayStyle="width: 100%;height:100%"> | 17 | overlayStyle="width: 100%;height:100%"> |
| 19 | </photo-zoom> | 18 | </photo-zoom> |
| ... | @@ -60,8 +59,6 @@ | ... | @@ -60,8 +59,6 @@ |
| 60 | loading: false, | 59 | loading: false, |
| 61 | key: 0, | 60 | key: 0, |
| 62 | isScan: false, | 61 | isScan: false, |
| 63 | // 打开高拍仪 | ||
| 64 | scanTitle: '打开高拍仪', | ||
| 65 | transform: { | 62 | transform: { |
| 66 | scale: 1, | 63 | scale: 1, |
| 67 | degree: 0 | 64 | degree: 0 | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-11-10 10:36:22 | 4 | * @LastEditTime: 2023-12-13 14:24:09 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <div class="content loadingtext"> | 7 | <div class="content loadingtext"> |
| ... | @@ -57,8 +57,6 @@ | ... | @@ -57,8 +57,6 @@ |
| 57 | <script> | 57 | <script> |
| 58 | import { getBdcqljqtsx, getBdcqljqtsxBdcdyh } from "@/api/djbDetail.js"; | 58 | import { getBdcqljqtsx, getBdcqljqtsxBdcdyh } from "@/api/djbDetail.js"; |
| 59 | import { loadTreeData, loadsfqData, getNode } from "./djbFrameData.js"; | 59 | import { loadTreeData, loadsfqData, getNode } from "./djbFrameData.js"; |
| 60 | import { searchTaskToDo } from "@/api/workflow/search.js"; | ||
| 61 | import { leftMenu } from "@/api/workFlow.js"; | ||
| 62 | export default { | 60 | export default { |
| 63 | data () { | 61 | data () { |
| 64 | return { | 62 | return { |
| ... | @@ -106,57 +104,6 @@ | ... | @@ -106,57 +104,6 @@ |
| 106 | obj = obj.substring(index + 1, obj.length); | 104 | obj = obj.substring(index + 1, obj.length); |
| 107 | return obj; | 105 | return obj; |
| 108 | }, | 106 | }, |
| 109 | // 通过不动产业务号获取参数 | ||
| 110 | /** | ||
| 111 | * @description: 通过不动产业务号获取参数 | ||
| 112 | * @author: renchao | ||
| 113 | */ | ||
| 114 | // getdata () { | ||
| 115 | // this.queryForm = { | ||
| 116 | // bdcdyh: this.getCaption(window.location.href), | ||
| 117 | // currentPage: 1, | ||
| 118 | // djlx: "", | ||
| 119 | // pageSize: 10, | ||
| 120 | // qllx: "", | ||
| 121 | // ywh: "", | ||
| 122 | // ywly: "", | ||
| 123 | // }; | ||
| 124 | // if (this.queryForm) { | ||
| 125 | // this.$startLoading(); | ||
| 126 | // searchTaskToDo({ | ||
| 127 | // ...this.queryForm, | ||
| 128 | // }).then((res) => { | ||
| 129 | // if (res.code === 200) { | ||
| 130 | // let { records } = res.result; | ||
| 131 | |||
| 132 | // this.loadBdcdylist(records[0].bsmSlsq, records[0].bestepid); | ||
| 133 | // this.$endLoading(); | ||
| 134 | // } | ||
| 135 | // }); | ||
| 136 | // } | ||
| 137 | // }, | ||
| 138 | |||
| 139 | // 获取不动产信息 | ||
| 140 | /** | ||
| 141 | * @description: 获取不动产信息 | ||
| 142 | * @param {*} a | ||
| 143 | * @param {*} b | ||
| 144 | * @author: renchao | ||
| 145 | */ | ||
| 146 | // loadBdcdylist (a, b) { | ||
| 147 | // var formdata = new FormData(); | ||
| 148 | // formdata.append("bsmSlsq", a); | ||
| 149 | // formdata.append("bestepid", b); | ||
| 150 | // leftMenu(formdata).then((res) => { | ||
| 151 | // if (res.code === 200) { | ||
| 152 | // if (res.result) { | ||
| 153 | // this.currentSelectProps = res.result[0]; | ||
| 154 | // this.loadData(this.currentSelectProps.bdcdyh); | ||
| 155 | // } | ||
| 156 | // } | ||
| 157 | // }); | ||
| 158 | // }, | ||
| 159 | |||
| 160 | /** | 107 | /** |
| 161 | * @description: getBdcdyh | 108 | * @description: getBdcdyh |
| 162 | * @author: miaofang | 109 | * @author: miaofang | ... | ... |
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-07-19 15:04:26 | ||
| 5 | --> | ||
| 6 | <template> | 1 | <template> |
| 7 | <div class="from-clues"> | 2 | <div class="duijie"> |
| 8 | <!-- 表单部分 --> | 3 | <img src="../../../image/duijie.png" alt=""> |
| 9 | <div class="from-clues-header"> | ||
| 10 | <el-form :model="queryForm" ref="queryForm" label-width="70px"> | ||
| 11 | <el-row> | ||
| 12 | <el-col :span="5"> | ||
| 13 | <el-form-item label="接口类型"> | ||
| 14 | <el-input | ||
| 15 | placeholder="请输入编号" | ||
| 16 | v-model="queryForm.jklx" | ||
| 17 | class="width200px" | ||
| 18 | clearable></el-input> | ||
| 19 | </el-form-item> | ||
| 20 | </el-col> | ||
| 21 | <el-col :span="5"> | ||
| 22 | <el-form-item label="调用状态"> | ||
| 23 | <el-input | ||
| 24 | placeholder="请输入编号" | ||
| 25 | v-model="queryForm.dyzt" | ||
| 26 | class="width200px" | ||
| 27 | clearable></el-input> | ||
| 28 | </el-form-item> | ||
| 29 | </el-col> | ||
| 30 | </el-row> | ||
| 31 | <el-row> | ||
| 32 | <el-col :span="5"> | ||
| 33 | <el-form-item label="访问IP"> | ||
| 34 | |||
| 35 | <el-input | ||
| 36 | placeholder="请输入IP" | ||
| 37 | v-model="queryForm.fwip" | ||
| 38 | class="width200px" | ||
| 39 | clearable></el-input> | ||
| 40 | |||
| 41 | </el-form-item> | ||
| 42 | </el-col> | ||
| 43 | <el-col :span="5"> | ||
| 44 | <el-form-item label="访问时间"> | ||
| 45 | <el-input placeholder="请输入业务号" v-model="queryForm.fwsj" clearable class="width200px"> | ||
| 46 | </el-input> | ||
| 47 | </el-form-item> | ||
| 48 | </el-col> | ||
| 49 | </el-row> | ||
| 50 | <el-row> | ||
| 51 | <el-col :span="10"> | ||
| 52 | <el-form-item label="请求地址"> | ||
| 53 | |||
| 54 | <el-input | ||
| 55 | placeholder="请输入url" | ||
| 56 | v-model="queryForm.qqdz" | ||
| 57 | class="width500px" | ||
| 58 | clearable></el-input> | ||
| 59 | |||
| 60 | </el-form-item> | ||
| 61 | </el-col> | ||
| 62 | </el-row> | ||
| 63 | |||
| 64 | </el-row> | ||
| 65 | <el-row> | ||
| 66 | <el-col :span="20"> | ||
| 67 | <el-form-item label="请求头数据"> | ||
| 68 | |||
| 69 | <el-input | ||
| 70 | placeholder="请输入请求头数据" | ||
| 71 | v-model="queryForm.qqtsj" | ||
| 72 | class="width500px" | ||
| 73 | clearable></el-input> | ||
| 74 | |||
| 75 | </el-form-item> | ||
| 76 | </el-col> | ||
| 77 | </el-row> | ||
| 78 | <el-row> | ||
| 79 | <el-col :span="20"> | ||
| 80 | <el-form-item label="入参数据"> | ||
| 81 | |||
| 82 | <el-input | ||
| 83 | placeholder="请输入参数" | ||
| 84 | v-model="queryForm.rcsj" | ||
| 85 | class="width500px" | ||
| 86 | clearable></el-input> | ||
| 87 | |||
| 88 | </el-form-item> | ||
| 89 | </el-col> | ||
| 90 | </el-row> | ||
| 91 | |||
| 92 | <el-row> | ||
| 93 | <el-col :span="5"> | ||
| 94 | <el-form-item label="调用描述"> | ||
| 95 | |||
| 96 | <el-input | ||
| 97 | placeholder="调用描述" | ||
| 98 | v-model="queryForm.dyms" | ||
| 99 | class="width200px" | ||
| 100 | clearable></el-input> | ||
| 101 | |||
| 102 | </el-form-item> | ||
| 103 | </el-col> | ||
| 104 | </el-row> | ||
| 105 | |||
| 106 | <el-row> | ||
| 107 | <el-col :span="5"> | ||
| 108 | <el-form-item label="返回数据"> | ||
| 109 | |||
| 110 | <el-input | ||
| 111 | placeholder="返回数据" | ||
| 112 | v-model="queryForm.fhsj" | ||
| 113 | class="width200px" | ||
| 114 | clearable></el-input> | ||
| 115 | |||
| 116 | </el-form-item> | ||
| 117 | </el-col> | ||
| 118 | </el-row> | ||
| 119 | |||
| 120 | <el-row> | ||
| 121 | <el-col :span="4" class="btnColRight"> | ||
| 122 | <el-form-item> | ||
| 123 | <el-button type="primary" @click="queryClick()">发送</el-button> | ||
| 124 | |||
| 125 | </el-form-item> | ||
| 126 | </el-col> | ||
| 127 | </el-row> | ||
| 128 | </el-form> | ||
| 129 | </div> | ||
| 130 | <!-- 表格 --> | ||
| 131 | |||
| 132 | </div> | 4 | </div> |
| 133 | </template> | 5 | </template> |
| 6 | |||
| 134 | <script> | 7 | <script> |
| 135 | 8 | ||
| 9 | export default { | ||
| 136 | 10 | ||
| 137 | export default { | 11 | } |
| 12 | </script> | ||
| 138 | 13 | ||
| 139 | data () { | 14 | <style lang="scss" scoped> |
| 140 | return { | 15 | .duijie{ |
| 141 | queryForm: { | 16 | width: 100%; |
| 142 | jklx: "", | 17 | height: 100%; |
| 143 | dyzt: "", | 18 | margin: auto; |
| 144 | fwip: "", | 19 | text-align: center |
| 145 | fwsj: "", | ||
| 146 | qqdz: "", | ||
| 147 | qqtsj: "", | ||
| 148 | rcsj: "", | ||
| 149 | dyms: "", | ||
| 150 | fhsj: "", | ||
| 151 | }, | ||
| 152 | } | ||
| 153 | }, | ||
| 154 | 20 | ||
| 155 | } | ||
| 156 | </script> | ||
| 157 | <style scoped lang="scss"> | ||
| 158 | @import "~@/styles/public.scss"; | ||
| 159 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 21 | } | ||
| 22 | |||
| 23 | </style> | ... | ... |
| ... | @@ -22,7 +22,7 @@ class data extends filter { | ... | @@ -22,7 +22,7 @@ class data extends filter { |
| 22 | ) | 22 | ) |
| 23 | } | 23 | } |
| 24 | }, | 24 | }, |
| 25 | 25 | ||
| 26 | { | 26 | { |
| 27 | label: "推送状态", | 27 | label: "推送状态", |
| 28 | render: (h, scope) => { | 28 | render: (h, scope) => { |
| ... | @@ -52,12 +52,12 @@ class data extends filter { | ... | @@ -52,12 +52,12 @@ class data extends filter { |
| 52 | // width: '110', | 52 | // width: '110', |
| 53 | }, | 53 | }, |
| 54 | { | 54 | { |
| 55 | prop: "ywh1", | 55 | prop: "djywmc", |
| 56 | label: "登记业务名称", | 56 | label: "登记业务名称", |
| 57 | // width: '110', | 57 | // width: '110', |
| 58 | }, | 58 | }, |
| 59 | { | 59 | { |
| 60 | prop: "ywh2", | 60 | prop: "djqxmc", |
| 61 | label: "登记情形名称", | 61 | label: "登记情形名称", |
| 62 | // width: '110', | 62 | // width: '110', |
| 63 | }, | 63 | }, |
| ... | @@ -75,8 +75,8 @@ class data extends filter { | ... | @@ -75,8 +75,8 @@ class data extends filter { |
| 75 | label: "推送时间", | 75 | label: "推送时间", |
| 76 | }, | 76 | }, |
| 77 | { | 77 | { |
| 78 | prop: "createtime1", | 78 | prop: "xysj", |
| 79 | label: "响应时间", | 79 | label: "响应时长", |
| 80 | }, | 80 | }, |
| 81 | { | 81 | { |
| 82 | label: '操作', | 82 | label: '操作', | ... | ... |
| ... | @@ -22,7 +22,7 @@ class data extends filter { | ... | @@ -22,7 +22,7 @@ class data extends filter { |
| 22 | ) | 22 | ) |
| 23 | } | 23 | } |
| 24 | }, | 24 | }, |
| 25 | 25 | ||
| 26 | { | 26 | { |
| 27 | label: "推送状态", | 27 | label: "推送状态", |
| 28 | render: (h, scope) => { | 28 | render: (h, scope) => { |
| ... | @@ -52,12 +52,12 @@ class data extends filter { | ... | @@ -52,12 +52,12 @@ class data extends filter { |
| 52 | // width: '110', | 52 | // width: '110', |
| 53 | }, | 53 | }, |
| 54 | { | 54 | { |
| 55 | prop: "ywh1", | 55 | prop: "djywmc", |
| 56 | label: "登记业务名称", | 56 | label: "登记业务名称", |
| 57 | // width: '110', | 57 | // width: '110', |
| 58 | }, | 58 | }, |
| 59 | { | 59 | { |
| 60 | prop: "ywh2", | 60 | prop: "djqxmc", |
| 61 | label: "登记情形名称", | 61 | label: "登记情形名称", |
| 62 | // width: '110', | 62 | // width: '110', |
| 63 | }, | 63 | }, |
| ... | @@ -75,8 +75,8 @@ class data extends filter { | ... | @@ -75,8 +75,8 @@ class data extends filter { |
| 75 | label: "推送时间", | 75 | label: "推送时间", |
| 76 | }, | 76 | }, |
| 77 | { | 77 | { |
| 78 | prop: "createtime1", | 78 | prop: "xysj", |
| 79 | label: "响应时间", | 79 | label: "响应时长", |
| 80 | }, | 80 | }, |
| 81 | { | 81 | { |
| 82 | label: '操作', | 82 | label: '操作', | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-11-21 16:30:43 | 4 | * @LastEditTime: 2023-11-23 13:29:37 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules"> | 7 | <el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules"> |
| ... | @@ -109,6 +109,7 @@ | ... | @@ -109,6 +109,7 @@ |
| 109 | * @author: renchao | 109 | * @author: renchao |
| 110 | */ | 110 | */ |
| 111 | addTemplate () { | 111 | addTemplate () { |
| 112 | store.dispatch('user/refreshPage', false); | ||
| 112 | addPrintTemplate(this.ruleForm).then(res => { | 113 | addPrintTemplate(this.ruleForm).then(res => { |
| 113 | if (res.code == 200) { | 114 | if (res.code == 200) { |
| 114 | store.dispatch('user/refreshPage', true); | 115 | store.dispatch('user/refreshPage', true); | ... | ... |
| ... | @@ -34,10 +34,7 @@ | ... | @@ -34,10 +34,7 @@ |
| 34 | 34 | ||
| 35 | <el-col :span="5" class="btnColRight"> | 35 | <el-col :span="5" class="btnColRight"> |
| 36 | <el-form-item> | 36 | <el-form-item> |
| 37 | <el-button | 37 | <el-button type="primary" native-type="submit" @click="chchch" |
| 38 | type="primary" | ||
| 39 | native-type="submit" | ||
| 40 | @click="handleSearch" | ||
| 41 | >查询</el-button | 38 | >查询</el-button |
| 42 | > | 39 | > |
| 43 | <el-button type="primary" native-type="submit" @click="derive" | 40 | <el-button type="primary" native-type="submit" @click="derive" |
| ... | @@ -53,6 +50,7 @@ | ... | @@ -53,6 +50,7 @@ |
| 53 | </template> | 50 | </template> |
| 54 | <script> | 51 | <script> |
| 55 | import * as echarts from "echarts"; | 52 | import * as echarts from "echarts"; |
| 53 | import XLSX from "xlsx"; | ||
| 56 | export default { | 54 | export default { |
| 57 | components: {}, | 55 | components: {}, |
| 58 | data() { | 56 | data() { |
| ... | @@ -76,23 +74,21 @@ export default { | ... | @@ -76,23 +74,21 @@ export default { |
| 76 | data3: [], | 74 | data3: [], |
| 77 | xAxisData: [ | 75 | xAxisData: [ |
| 78 | "赵龙龙", | 76 | "赵龙龙", |
| 79 | "刘龙龙", | 77 | "刘刚", |
| 80 | "田龙龙", | 78 | "任启亮", |
| 81 | "任龙龙", | 79 | "梁亚博", |
| 82 | "孙龙龙", | 80 | "李含", |
| 83 | "李龙龙", | 81 | "周路", |
| 84 | "周龙龙", | ||
| 85 | ], | 82 | ], |
| 86 | }; | 83 | }; |
| 87 | }, | 84 | }, |
| 88 | mounted() { | 85 | mounted() { |
| 89 | this.setdata(); | 86 | this.setdata(); |
| 90 | // 创建一个 ECharts 实例 | 87 | // 创建一个 ECharts 实例 |
| 91 | this.chart = echarts.init(this.$refs.chart); | 88 | this.chart = echarts.init(this.$refs.chart); |
| 92 | // 在 ECharts 实例中配置图表 | 89 | // 在 ECharts 实例中配置图表 |
| 93 | this.chart.setOption(this.getOption()); | 90 | this.chart.setOption(this.getOption()); |
| 94 | this.chooseDateQuick(0); | 91 | this.chooseDateQuick(0); |
| 95 | |||
| 96 | }, | 92 | }, |
| 97 | methods: { | 93 | methods: { |
| 98 | setdata() { | 94 | setdata() { |
| ... | @@ -102,9 +98,24 @@ export default { | ... | @@ -102,9 +98,24 @@ export default { |
| 102 | } | 98 | } |
| 103 | }, | 99 | }, |
| 104 | // 导出 | 100 | // 导出 |
| 105 | derive() {}, | 101 | derive() { |
| 102 | this.exdata = [["受理人员", "收件数", "退件数", "推荐率"]]; | ||
| 103 | this.xAxisData.forEach((item, index) => { | ||
| 104 | console.log("this.exdata[index+1]", this.exdata[index + 1]); | ||
| 105 | this.exdata.push([]); | ||
| 106 | this.exdata[index + 1].push(item); | ||
| 107 | this.exdata[index + 1].push(this.data1[index]); | ||
| 108 | this.exdata[index + 1].push(this.data2[index]); | ||
| 109 | this.exdata[index + 1].push(this.data3[index]); | ||
| 110 | }); | ||
| 111 | console.log("this.exdata", this.exdata); | ||
| 112 | const ws = XLSX.utils.aoa_to_sheet(this.exdata); | ||
| 113 | const wb = XLSX.utils.book_new(); | ||
| 114 | XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); | ||
| 115 | XLSX.writeFile(wb, "收件与超时统计情况.xlsx"); | ||
| 116 | }, | ||
| 106 | // 查询 | 117 | // 查询 |
| 107 | handleSearch() { | 118 | chchch() { |
| 108 | console.log("dateRange", this.dateRange); | 119 | console.log("dateRange", this.dateRange); |
| 109 | }, | 120 | }, |
| 110 | getOption() { | 121 | getOption() { |
| ... | @@ -289,10 +300,16 @@ export default { | ... | @@ -289,10 +300,16 @@ export default { |
| 289 | return `${year}-${month}-${day}`; | 300 | return `${year}-${month}-${day}`; |
| 290 | }, | 301 | }, |
| 291 | // 某日期向前/向后num天 | 302 | // 某日期向前/向后num天 |
| 292 | jumpNumDay(date, num, linkStr = '-') { | 303 | jumpNumDay(date, num, linkStr = "-") { |
| 293 | date = new Date(date.getTime() + (num * 24 * 60 * 60 * 1000)) | 304 | date = new Date(date.getTime() + num * 24 * 60 * 60 * 1000); |
| 294 | return date.getFullYear() + linkStr + this.changeNum(date.getMonth() + 1) + linkStr + this.changeNum(date.getDate()) | 305 | return ( |
| 295 | }, | 306 | date.getFullYear() + |
| 307 | linkStr + | ||
| 308 | this.changeNum(date.getMonth() + 1) + | ||
| 309 | linkStr + | ||
| 310 | this.changeNum(date.getDate()) | ||
| 311 | ); | ||
| 312 | }, | ||
| 296 | }, | 313 | }, |
| 297 | }; | 314 | }; |
| 298 | </script> | 315 | </script> |
| ... | @@ -306,8 +323,6 @@ jumpNumDay(date, num, linkStr = '-') { | ... | @@ -306,8 +323,6 @@ jumpNumDay(date, num, linkStr = '-') { |
| 306 | padding-top: 3px; | 323 | padding-top: 3px; |
| 307 | background-color: #ffffff; | 324 | background-color: #ffffff; |
| 308 | margin-bottom: 10px; | 325 | margin-bottom: 10px; |
| 309 | |||
| 310 | |||
| 311 | } | 326 | } |
| 312 | .rowAc { | 327 | .rowAc { |
| 313 | margin-left: 10px; | 328 | margin-left: 10px; | ... | ... |
| ... | @@ -37,7 +37,7 @@ | ... | @@ -37,7 +37,7 @@ |
| 37 | <el-button | 37 | <el-button |
| 38 | type="primary" | 38 | type="primary" |
| 39 | native-type="submit" | 39 | native-type="submit" |
| 40 | @click="handleSearch" | 40 | @click="chchch" |
| 41 | >查询</el-button | 41 | >查询</el-button |
| 42 | > | 42 | > |
| 43 | <el-button type="primary" native-type="submit" @click="derive" | 43 | <el-button type="primary" native-type="submit" @click="derive" |
| ... | @@ -53,6 +53,7 @@ | ... | @@ -53,6 +53,7 @@ |
| 53 | </template> | 53 | </template> |
| 54 | <script> | 54 | <script> |
| 55 | import * as echarts from "echarts"; | 55 | import * as echarts from "echarts"; |
| 56 | import XLSX from 'xlsx'; | ||
| 56 | export default { | 57 | export default { |
| 57 | components: {}, | 58 | components: {}, |
| 58 | data() { | 59 | data() { |
| ... | @@ -75,13 +76,13 @@ export default { | ... | @@ -75,13 +76,13 @@ export default { |
| 75 | data2: [1, 4, 1, 3, 2, 3, 4], | 76 | data2: [1, 4, 1, 3, 2, 3, 4], |
| 76 | data3: [], | 77 | data3: [], |
| 77 | xAxisData: [ | 78 | xAxisData: [ |
| 78 | "赵红红", | 79 | "任超", |
| 79 | "刘红红", | 80 | "杨威", |
| 80 | "田红红", | 81 | "魏娜", |
| 81 | "任红红", | 82 | "张祎旋", |
| 82 | "孙红红", | 83 | "苗菁", |
| 83 | "李红红", | 84 | "王文刚", |
| 84 | "周红红", | 85 | "单帅旗", |
| 85 | ], | 86 | ], |
| 86 | }; | 87 | }; |
| 87 | }, | 88 | }, |
| ... | @@ -102,9 +103,27 @@ export default { | ... | @@ -102,9 +103,27 @@ export default { |
| 102 | } | 103 | } |
| 103 | }, | 104 | }, |
| 104 | // 导出 | 105 | // 导出 |
| 105 | derive() {}, | 106 | // 导出 |
| 107 | derive() { | ||
| 108 | this.exdata = [ | ||
| 109 | ['受理人员', '收件数','退件数','推荐率'] | ||
| 110 | ]; | ||
| 111 | this.xAxisData.forEach((item,index) => { | ||
| 112 | console.log("this.exdata[index+1]",this.exdata[index+1]); | ||
| 113 | this.exdata.push([]) | ||
| 114 | this.exdata[index+1].push(item) | ||
| 115 | this.exdata[index+1].push(this.data1[index]) | ||
| 116 | this.exdata[index+1].push(this.data2[index]) | ||
| 117 | this.exdata[index+1].push(this.data3[index]) | ||
| 118 | }) | ||
| 119 | console.log("this.exdata",this.exdata); | ||
| 120 | const ws = XLSX.utils.aoa_to_sheet(this.exdata); | ||
| 121 | const wb = XLSX.utils.book_new(); | ||
| 122 | XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); | ||
| 123 | XLSX.writeFile(wb, '收件与退件统计情况.xlsx'); | ||
| 124 | }, | ||
| 106 | // 查询 | 125 | // 查询 |
| 107 | handleSearch() { | 126 | chchch() { |
| 108 | console.log("dateRange", this.dateRange); | 127 | console.log("dateRange", this.dateRange); |
| 109 | }, | 128 | }, |
| 110 | getOption() { | 129 | getOption() { |
| ... | @@ -135,8 +154,6 @@ export default { | ... | @@ -135,8 +154,6 @@ export default { |
| 135 | <span font-size: 16px; font-weight: 600;"> ${params.name}: ${ | 154 | <span font-size: 16px; font-weight: 600;"> ${params.name}: ${ |
| 136 | Number(params.value).toFixed(2) + "%" | 155 | Number(params.value).toFixed(2) + "%" |
| 137 | } </span> | 156 | } </span> |
| 138 | |||
| 139 | |||
| 140 | </div>`; | 157 | </div>`; |
| 141 | }, | 158 | }, |
| 142 | }, | 159 | }, | ... | ... |
| ... | @@ -46,6 +46,7 @@ | ... | @@ -46,6 +46,7 @@ |
| 46 | </div> | 46 | </div> |
| 47 | <image-preview | 47 | <image-preview |
| 48 | ref="imageRef" | 48 | ref="imageRef" |
| 49 | :key="imgKey" | ||
| 49 | v-if="tableData.length > 0" | 50 | v-if="tableData.length > 0" |
| 50 | :previewImg="previewImg" | 51 | :previewImg="previewImg" |
| 51 | :ableOperation="ableOperation" | 52 | :ableOperation="ableOperation" |
| ... | @@ -66,6 +67,7 @@ | ... | @@ -66,6 +67,7 @@ |
| 66 | components: { clxxAddDialog, imagePreview, clxxDetailDialog }, | 67 | components: { clxxAddDialog, imagePreview, clxxDetailDialog }, |
| 67 | data () { | 68 | data () { |
| 68 | return { | 69 | return { |
| 70 | imgKey: 0, | ||
| 69 | //表单是否可操作 | 71 | //表单是否可操作 |
| 70 | ableOperation: true, | 72 | ableOperation: true, |
| 71 | isDialog: false, | 73 | isDialog: false, |
| ... | @@ -292,6 +294,7 @@ | ... | @@ -292,6 +294,7 @@ |
| 292 | if (this.$refs.imageRef) { | 294 | if (this.$refs.imageRef) { |
| 293 | this.$refs.imageRef.initialIndex = 0 | 295 | this.$refs.imageRef.initialIndex = 0 |
| 294 | } | 296 | } |
| 297 | this.imgKey++ | ||
| 295 | }, | 298 | }, |
| 296 | /** | 299 | /** |
| 297 | * @description: 小图片点击 | 300 | * @description: 小图片点击 | ... | ... |
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-11-23 17:20:01 | ||
| 5 | --> | ||
| 1 | <template> | 6 | <template> |
| 2 | <iframe :src="ip +'/txdw/#/' + formData.bsmZd" frameborder="0" style="width: 100%; height:710px;"></iframe> | 7 | <iframe :src="ip +'/txdw/#/' + formData.bsmZd" frameborder="0" style="width: 100%; height:710px;"></iframe> |
| 3 | </template> | 8 | </template> | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-11-14 13:25:52 | 4 | * @LastEditTime: 2023-12-13 13:56:14 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <div class="rlPopup"> | 7 | <div class="rlPopup"> |
| ... | @@ -12,7 +12,8 @@ | ... | @@ -12,7 +12,8 @@ |
| 12 | <i class="el-icon-arrow-right"></i> | 12 | <i class="el-icon-arrow-right"></i> |
| 13 | </div> | 13 | </div> |
| 14 | <div class="img-list-wrap" v-Loading="loading"> | 14 | <div class="img-list-wrap" v-Loading="loading"> |
| 15 | <img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="高拍仪"> | 15 | <img id="photo" src="" v-show="isScan && this.BASE_API.gaopaiyi=='jy'" alt="高拍仪捷宇"> |
| 16 | <img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan && this.BASE_API.gaopaiyi=='lt'" alt="高拍仪良田"> | ||
| 16 | <div v-for="(img, i) in previewImg.imgList" :key="i" v-else> | 17 | <div v-for="(img, i) in previewImg.imgList" :key="i" v-else> |
| 17 | <photo-zoom :url="img.fileurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" | 18 | <photo-zoom :url="img.fileurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2" |
| 18 | overlayStyle="width: 100%;height:100%"> | 19 | overlayStyle="width: 100%;height:100%"> |
| ... | @@ -89,6 +90,7 @@ | ... | @@ -89,6 +90,7 @@ |
| 89 | showViewer: false, | 90 | showViewer: false, |
| 90 | initialIndex: 0, | 91 | initialIndex: 0, |
| 91 | allLi: [], | 92 | allLi: [], |
| 93 | webSocket: null | ||
| 92 | } | 94 | } |
| 93 | }, | 95 | }, |
| 94 | watch: { | 96 | watch: { |
| ... | @@ -107,9 +109,35 @@ | ... | @@ -107,9 +109,35 @@ |
| 107 | } | 109 | } |
| 108 | }, | 110 | }, |
| 109 | created () { | 111 | created () { |
| 112 | let that = this | ||
| 110 | this.maxLength = 0; | 113 | this.maxLength = 0; |
| 111 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) | 114 | this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl) |
| 112 | this.thumbnailImages = this.previewImg.imgList | 115 | this.thumbnailImages = this.previewImg.imgList |
| 116 | if (this.BASE_API.gaopaiyi == 'jy') { | ||
| 117 | this.webSocket = new WebSocket('ws://localhost:1818'); | ||
| 118 | this.webSocket.onmessage = function (event) { | ||
| 119 | let begin_data = "data:image/jpeg;base64,"; | ||
| 120 | document.getElementById('photo').src = begin_data + event.data; | ||
| 121 | if (event.data.indexOf('BeginsGetBase64') >= 0) { | ||
| 122 | let blob = that.dataURLtoBlob('data:image/png;base64,' + event.data.replace('BeginsGetBase64', '').replace('EndsGetBase64', '')); | ||
| 123 | let file = that.blobToFile(blob); | ||
| 124 | var formData = new FormData(); | ||
| 125 | formData.append('file', file) | ||
| 126 | if (that.previewImg.imgList.length > 0) { | ||
| 127 | formData.append("index", that.previewImg.imgList[that.previewImg.index].sxh); | ||
| 128 | } | ||
| 129 | uploadSjClmx(formData, that.previewImg.bsmMaterial).then((res) => { | ||
| 130 | if (res.code == 200) { | ||
| 131 | that.$emit('updateList', { children: res.result, bsmMaterial: that.previewImg.bsmMaterial }) | ||
| 132 | that.$message({ | ||
| 133 | message: '上传成功!', | ||
| 134 | type: 'success' | ||
| 135 | }) | ||
| 136 | } | ||
| 137 | }) | ||
| 138 | } | ||
| 139 | } | ||
| 140 | } | ||
| 113 | }, | 141 | }, |
| 114 | computed: { | 142 | computed: { |
| 115 | isFirst () { | 143 | isFirst () { |
| ... | @@ -168,28 +196,32 @@ | ... | @@ -168,28 +196,32 @@ |
| 168 | * @description: 拍照 | 196 | * @description: 拍照 |
| 169 | * @author: renchao | 197 | * @author: renchao |
| 170 | */ | 198 | */ |
| 171 | handleViewScan () { | 199 | dataURLtoBlob (base64String) { |
| 172 | function dataURLtoBlob (base64String) { | 200 | const arr = base64String.split(','); |
| 173 | const arr = base64String.split(','); | 201 | if (arr.length !== 2) { |
| 174 | if (arr.length !== 2) { | 202 | throw new Error('Invalid Base64 format'); |
| 175 | throw new Error('Invalid Base64 format'); | 203 | } |
| 176 | } | 204 | const mime = arr[0].match(/:(.*?);/)[1]; |
| 177 | const mime = arr[0].match(/:(.*?);/)[1]; | 205 | if (!mime) { |
| 178 | if (!mime) { | 206 | throw new Error('Cannot retrieve MIME type'); |
| 179 | throw new Error('Cannot retrieve MIME type'); | 207 | } |
| 180 | } | 208 | const bstr = atob(arr[1]); |
| 181 | const bstr = atob(arr[1]); | 209 | const n = bstr.length; |
| 182 | const n = bstr.length; | 210 | const u8arr = new Uint8Array(n); |
| 183 | const u8arr = new Uint8Array(n); | 211 | for (let i = 0; i < n; i++) { |
| 184 | for (let i = 0; i < n; i++) { | 212 | u8arr[i] = bstr.charCodeAt(i); |
| 185 | u8arr[i] = bstr.charCodeAt(i); | ||
| 186 | } | ||
| 187 | return new Blob([u8arr], { type: mime }); | ||
| 188 | } | 213 | } |
| 189 | function blobToFile (blob) { | 214 | return new Blob([u8arr], { type: mime }); |
| 190 | let name = getUuid(8) + '.jpg' | 215 | }, |
| 191 | const file = new File([blob], name); | 216 | blobToFile (blob) { |
| 192 | return file; | 217 | let name = getUuid(8) + '.jpg' |
| 218 | const file = new File([blob], name); | ||
| 219 | return file; | ||
| 220 | }, | ||
| 221 | handleViewScan () { | ||
| 222 | if (this.BASE_API.gaopaiyi == 'jy') { | ||
| 223 | this.webSocket.send('sGetBase64'); | ||
| 224 | return | ||
| 193 | } | 225 | } |
| 194 | getAltimeterInfo().then(res => { | 226 | getAltimeterInfo().then(res => { |
| 195 | let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64); | 227 | let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64); | ... | ... |
| ... | @@ -46,6 +46,7 @@ | ... | @@ -46,6 +46,7 @@ |
| 46 | </div> | 46 | </div> |
| 47 | <image-preview | 47 | <image-preview |
| 48 | ref="imageRef" | 48 | ref="imageRef" |
| 49 | :key="imgKey" | ||
| 49 | v-if="tableData.length > 0" | 50 | v-if="tableData.length > 0" |
| 50 | :previewImg="previewImg" | 51 | :previewImg="previewImg" |
| 51 | @updateList="updateList" | 52 | @updateList="updateList" |
| ... | @@ -75,6 +76,7 @@ | ... | @@ -75,6 +76,7 @@ |
| 75 | }, | 76 | }, |
| 76 | data () { | 77 | data () { |
| 77 | return { | 78 | return { |
| 79 | imgKey: 0, | ||
| 78 | isDialog: false, | 80 | isDialog: false, |
| 79 | iclass: "", | 81 | iclass: "", |
| 80 | // 材料目录选中 | 82 | // 材料目录选中 |
| ... | @@ -275,6 +277,7 @@ | ... | @@ -275,6 +277,7 @@ |
| 275 | if (this.$refs.imageRef) { | 277 | if (this.$refs.imageRef) { |
| 276 | this.$refs.imageRef.initialIndex = 0 | 278 | this.$refs.imageRef.initialIndex = 0 |
| 277 | } | 279 | } |
| 280 | this.imgKey++ | ||
| 278 | }, | 281 | }, |
| 279 | /** | 282 | /** |
| 280 | * @description: 小图片点击 | 283 | * @description: 小图片点击 | ... | ... |
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-11-15 09:41:55 | ||
| 5 | --> | ||
| 6 | <template> | 1 | <template> |
| 7 | <div class="from-clues"> | 2 | <div class="duijie"> |
| 8 | <!-- 家庭房产 --> | 3 | <img src="../../../image/duijie.png" alt=""> |
| 9 | <div class="from-clues-header"> | ||
| 10 | <el-form :model="queryForm" @submit.native.prevent ref="queryForm" label-width="70px"> | ||
| 11 | <el-row> | ||
| 12 | <el-col :span="5"> | ||
| 13 | <el-form-item label="申请编号"> | ||
| 14 | <el-input placeholder="申请编号" v-model="queryForm.sqbh" clearable class="width100"> | ||
| 15 | </el-input> | ||
| 16 | </el-form-item> | ||
| 17 | </el-col> | ||
| 18 | <el-col :span="9" class="flex"> | ||
| 19 | <el-form-item label="申请时间"> | ||
| 20 | <el-date-picker v-model="queryForm.date1" type="date" placeholder="开始日期" value-format="yyyy-MM-dd" clearable> | ||
| 21 | </el-date-picker> 至 | ||
| 22 | <el-date-picker v-model="queryForm.date2" type="date" placeholder="结束日期" value-format="yyyy-MM-dd" clearable> | ||
| 23 | </el-date-picker> | ||
| 24 | </el-form-item> | ||
| 25 | </el-col> | ||
| 26 | <el-col :span="5"> | ||
| 27 | <el-form-item label="权利人"> | ||
| 28 | <el-input placeholder="权利人" v-model="queryForm.qlr" clearable class="width100"> | ||
| 29 | </el-input> | ||
| 30 | </el-form-item> | ||
| 31 | </el-col> | ||
| 32 | <el-col :span="5"> | ||
| 33 | <el-form-item label="义务人"> | ||
| 34 | <el-input placeholder="义务人" v-model="queryForm.ywr" clearable class="width100"> | ||
| 35 | </el-input> | ||
| 36 | </el-form-item> | ||
| 37 | </el-col> | ||
| 38 | <el-col :span="5"> | ||
| 39 | <el-form-item label="办理状态"> | ||
| 40 | <el-input placeholder="办理状态" v-model="queryForm.blzt" clearable class="width100"> | ||
| 41 | </el-input> | ||
| 42 | </el-form-item> | ||
| 43 | </el-col> | ||
| 44 | <el-col :span="19" class="btnColRight"> | ||
| 45 | <el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button> | ||
| 46 | </el-col> | ||
| 47 | </el-row> | ||
| 48 | </el-form> | ||
| 49 | </div> | ||
| 50 | <!-- 表格 --> | ||
| 51 | <div class="from-clues-content"> | ||
| 52 | <lb-table :page-size="pageData.size" class="loadingtext" :current-page.sync="pageData.current" | ||
| 53 | :total="tableData.total" @size-change="handleSizeChange" @p-current-change="handleCurrentChange" | ||
| 54 | :column="tableData.columns" :data="tableData.data"> | ||
| 55 | </lb-table> | ||
| 56 | </div> | ||
| 57 | </div> | 4 | </div> |
| 58 | </template> | 5 | </template> |
| 6 | |||
| 59 | <script> | 7 | <script> |
| 60 | import table from "@/utils/mixin/table"; | 8 | |
| 61 | import { datas, sendThis } from "./data"; | 9 | export default { |
| 62 | export default { | 10 | |
| 63 | name: "jtfc", | 11 | } |
| 64 | mixins: [table], | ||
| 65 | mounted () { | ||
| 66 | sendThis(this); | ||
| 67 | this.queryClick(); | ||
| 68 | }, | ||
| 69 | data () { | ||
| 70 | return { | ||
| 71 | sqcxBsm: "", | ||
| 72 | queryForm: { | ||
| 73 | sqbh: "", | ||
| 74 | date1: "", | ||
| 75 | date2: "", | ||
| 76 | qlr: "", | ||
| 77 | ywr: "", | ||
| 78 | blzt: "" | ||
| 79 | }, | ||
| 80 | tableData: { | ||
| 81 | columns: datas.columns(), | ||
| 82 | data: [{}] | ||
| 83 | } | ||
| 84 | } | ||
| 85 | }, | ||
| 86 | activated () { | ||
| 87 | this.queryClick() | ||
| 88 | }, | ||
| 89 | methods: { | ||
| 90 | /** | ||
| 91 | * @description: 初始化数据 | ||
| 92 | * @author: renchao | ||
| 93 | */ | ||
| 94 | queryClick () { | ||
| 95 | // this.$startLoading() | ||
| 96 | }, | ||
| 97 | handleViewClick () { | ||
| 98 | this.$popupDialog("查看详情", "ywbl/ycsl/components/detail", {}, "75%") | ||
| 99 | } | ||
| 100 | } | ||
| 101 | } | ||
| 102 | </script> | 12 | </script> |
| 103 | <style scoped lang="scss"> | 13 | |
| 104 | @import "~@/styles/public.scss"; | 14 | <style lang="scss" scoped> |
| 15 | .duijie{ | ||
| 16 | width: 100%; | ||
| 17 | height: 100%; | ||
| 18 | margin: auto; | ||
| 19 | text-align: center | ||
| 20 | |||
| 21 | } | ||
| 22 | |||
| 105 | </style> | 23 | </style> | ... | ... |
| ... | @@ -63,6 +63,9 @@ module.exports = { | ... | @@ -63,6 +63,9 @@ module.exports = { |
| 63 | entry: { | 63 | entry: { |
| 64 | app: './src/main.js' | 64 | app: './src/main.js' |
| 65 | }, | 65 | }, |
| 66 | externals: [{ | ||
| 67 | './cptable': 'var cptable' | ||
| 68 | }], | ||
| 66 | resolve: { | 69 | resolve: { |
| 67 | alias: { | 70 | alias: { |
| 68 | '@': resolve('src') | 71 | '@': resolve('src') | ... | ... |
-
Please register or sign in to post a comment