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