4e163b1a by renchao@pashanhoo.com

Merge branch 'dev'

2 parents 57301a31 784f3522
......@@ -40,5 +40,8 @@ import { popupDialog,popupCacel} from "@/utils/popup.js";
popupDialog(title, "xxxx", data);
popupCacel() 可以关闭弹框
<!-- 高拍仪类型 -->
<!-- lt:良田 jy:捷宇 -->
......
......@@ -34,7 +34,9 @@
"vue-router": "3.0.2",
"vue-seamless-scroll": "^1.1.23",
"vuex": "3.1.0",
"x2js": "^3.4.4"
"x2js": "^3.4.4",
"xlsx": "^0.17.0",
"xlsx-style": "^0.8.13"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.4",
......
......@@ -2,5 +2,6 @@
"TITLE": "不动产登记系统",
"SERVERAPI": "/bdcdj",
"IDCARDURL": "http://127.0.0.1:33088/function=get_idcard&readnew=0",
"adapter": "dysqs-630222"
"adapter": "dysqs-630222",
"gaopaiyi": "jy"
}
\ No newline at end of file
......
......@@ -126,6 +126,13 @@ export const asyncRoutes = [
component: () => import('@/views/ywbl/ybx/ybx.vue'),
name: 'ybx',
meta: { title: '已办箱' }
}, {
path: 'ycsl',
id: '24',
parentId: '2',
component: () => import('@/views/ywbl/ycsl/ycsl.vue'),
name: 'ycsl',
meta: { title: '一窗受理' }
},
]
},
......
......@@ -66,7 +66,6 @@ export function judgeSort (arr) {
}
return arr
}
// 上下移动
/**
* @description: 上下移动
* @param {*} bsmDict
......@@ -98,7 +97,6 @@ export function realMove (bsmDict, operate, data) {
}
data = judgeSort(changeSort(data, bsmDict));
}
// 获取所有父节点
/**
* @description: 获取所有父节点
* @param {*} treeData
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-14 13:25:36
* @LastEditTime: 2023-12-13 13:44:24
-->
<template>
<div class="rlPopup">
......@@ -12,7 +12,8 @@
<i class="el-icon-arrow-right"></i>
</div>
<div class="img-list-wrap" v-Loading="loading">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="高拍仪">
<img id="photo" src="" v-show="isScan && this.BASE_API.gaopaiyi=='jy'" alt="高拍仪捷宇">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan && this.BASE_API.gaopaiyi=='lt'" alt="高拍仪良田">
<div v-for="(img, i) in previewImg.imgList" :key="i" v-else>
<photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2"
overlayStyle="width: 100%;height:100%">
......@@ -89,6 +90,7 @@
showViewer: false,
initialIndex: 0,
allLi: [],
webSocket: null
}
},
watch: {
......@@ -107,9 +109,37 @@
}
},
created () {
let that = this
this.maxLength = 0;
this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl)
this.thumbnailImages = this.previewImg.imgList
if (this.BASE_API.gaopaiyi == 'jy') {
this.webSocket = new WebSocket('ws://localhost:1818');
this.webSocket.onmessage = function (event) {
let begin_data = "data:image/jpeg;base64,";
document.getElementById('photo').src = begin_data + event.data;
if (event.data.indexOf('BeginsGetBase64') >= 0) {
let blob = that.dataURLtoBlob('data:image/png;base64,' + event.data.replace('BeginsGetBase64', '').replace('EndsGetBase64', ''));
let file = that.blobToFile(blob);
var formData = new FormData();
formData.append('file', file)
formData.append("bsmSj", that.previewImg.bsmSj);
formData.append("bsmSlsq", that.previewImg.bsmSlsq);
if (that.previewImg.imgList.length > 0) {
formData.append("ssBsmClmx", that.previewImg.imgList[that.previewImg.index].bsmClmx);
}
uploadSjClmx(formData).then((res) => {
if (res.code == 200) {
that.$emit('updateList', { children: res.result, bsmSj: that.previewImg.bsmSj })
that.$message({
message: '上传成功!',
type: 'success'
})
}
})
}
}
}
},
computed: {
isFirst () {
......@@ -164,32 +194,36 @@
* @description: 拍照
* @author: renchao
*/
handleViewScan () {
function dataURLtoBlob (base64String) {
const arr = base64String.split(',');
if (arr.length !== 2) {
throw new Error('Invalid Base64 format');
}
const mime = arr[0].match(/:(.*?);/)[1];
if (!mime) {
throw new Error('Cannot retrieve MIME type');
}
const bstr = atob(arr[1]);
const n = bstr.length;
const u8arr = new Uint8Array(n);
for (let i = 0; i < n; i++) {
u8arr[i] = bstr.charCodeAt(i);
}
return new Blob([u8arr], { type: mime });
dataURLtoBlob (base64String) {
const arr = base64String.split(',');
if (arr.length !== 2) {
throw new Error('Invalid Base64 format');
}
const mime = arr[0].match(/:(.*?);/)[1];
if (!mime) {
throw new Error('Cannot retrieve MIME type');
}
const bstr = atob(arr[1]);
const n = bstr.length;
const u8arr = new Uint8Array(n);
for (let i = 0; i < n; i++) {
u8arr[i] = bstr.charCodeAt(i);
}
function blobToFile (blob) {
let name = getUuid(8) + '.jpg'
const file = new File([blob], name);
return file;
return new Blob([u8arr], { type: mime });
},
blobToFile (blob) {
let name = getUuid(8) + '.jpg'
const file = new File([blob], name);
return file;
},
handleViewScan () {
if (this.BASE_API.gaopaiyi == 'jy') {
this.webSocket.send('sGetBase64');
return
}
getAltimeterInfo().then(res => {
let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64);
let file = blobToFile(blob);
let blob = this.dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64);
let file = this.blobToFile(blob);
var formData = new FormData();
formData.append('file', file)
formData.append("bsmSj", this.previewImg.bsmSj);
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-14 13:25:42
* @LastEditTime: 2023-12-13 14:19:09
-->
<template>
<div class="rlPopup">
......@@ -12,7 +12,8 @@
<i class="el-icon-arrow-right"></i>
</div>
<div class="img-list-wrap" v-Loading="loading">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="高拍仪">
<img id="photo" src="" v-show="isScan && this.BASE_API.gaopaiyi=='jy'" alt="高拍仪捷宇">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan && this.BASE_API.gaopaiyi=='lt'" alt="高拍仪">
<div v-for="(img, i) in previewImg.imgList" :key="i" v-else>
<photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2"
overlayStyle="width: 100%;height:100%">
......@@ -89,6 +90,7 @@
showViewer: false,
initialIndex: 0,
allLi: [],
webSocket: null
}
},
watch: {
......@@ -107,9 +109,36 @@
}
},
created () {
let that = this
this.maxLength = 0;
this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl)
this.thumbnailImages = this.previewImg.imgList
if (this.BASE_API.gaopaiyi == 'jy') {
this.webSocket = new WebSocket('ws://localhost:1818');
this.webSocket.onmessage = function (event) {
let begin_data = "data:image/jpeg;base64,";
document.getElementById('photo').src = begin_data + event.data;
if (event.data.indexOf('BeginsGetBase64') >= 0) {
let blob = that.dataURLtoBlob('data:image/png;base64,' + event.data.replace('BeginsGetBase64', '').replace('EndsGetBase64', ''));
let file = that.blobToFile(blob);
var formData = new FormData();
formData.append('file', file)
formData.append("bsmSj", that.previewImg.bsmSj);
if (that.previewImg.imgList.length > 0) {
formData.append("index", that.previewImg.imgList[that.previewImg.index].sxh);
}
uploadSjClmx(formData).then((res) => {
if (res.code == 200) {
that.$emit('updateList', { children: res.result, bsmSj: that.previewImg.bsmSj })
that.$message({
message: '上传成功!',
type: 'success'
})
}
})
}
}
}
},
computed: {
isFirst () {
......@@ -164,28 +193,32 @@
* @description: 拍照
* @author: renchao
*/
handleViewScan () {
function dataURLtoBlob (base64String) {
const arr = base64String.split(',');
if (arr.length !== 2) {
throw new Error('Invalid Base64 format');
}
const mime = arr[0].match(/:(.*?);/)[1];
if (!mime) {
throw new Error('Cannot retrieve MIME type');
}
const bstr = atob(arr[1]);
const n = bstr.length;
const u8arr = new Uint8Array(n);
for (let i = 0; i < n; i++) {
u8arr[i] = bstr.charCodeAt(i);
}
return new Blob([u8arr], { type: mime });
dataURLtoBlob (base64String) {
const arr = base64String.split(',');
if (arr.length !== 2) {
throw new Error('Invalid Base64 format');
}
const mime = arr[0].match(/:(.*?);/)[1];
if (!mime) {
throw new Error('Cannot retrieve MIME type');
}
const bstr = atob(arr[1]);
const n = bstr.length;
const u8arr = new Uint8Array(n);
for (let i = 0; i < n; i++) {
u8arr[i] = bstr.charCodeAt(i);
}
function blobToFile (blob) {
let name = getUuid(8) + '.jpg'
const file = new File([blob], name);
return file;
return new Blob([u8arr], { type: mime });
},
blobToFile (blob) {
let name = getUuid(8) + '.jpg'
const file = new File([blob], name);
return file;
},
handleViewScan () {
if (this.BASE_API.gaopaiyi == 'jy') {
this.webSocket.send('sGetBase64');
return
}
getAltimeterInfo().then(res => {
let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64);
......
......@@ -46,6 +46,7 @@
</div>
<image-preview
ref="imageRef"
:key="imgKey"
v-if="tableData.length > 0"
:previewImg="previewImg"
@updateList="updateList"
......@@ -75,6 +76,7 @@
},
data () {
return {
imgKey: 0,
isDialog: false,
iclass: "",
// 材料目录选中
......@@ -284,6 +286,7 @@
if (this.$refs.imageRef) {
this.$refs.imageRef.initialIndex = 0
}
this.imgKey++
},
/**
* @description: 小图片点击
......
......@@ -57,8 +57,8 @@
.home-left {
width: 70%;
padding-right: 3px;
height: 100%;
font-size: 14px;
min-height: 625px;
.list-title {
overflow: hidden;
......@@ -81,7 +81,8 @@
.box-mountNode {
flex: 1;
height: calc(100% - 490px);
// height: calc(100% - 490px);
min-height: 130px;
}
.home-right {
......@@ -89,6 +90,7 @@
width: 30%;
display: flex;
flex-direction: column;
min-height: 620px;
.list-title {
overflow: hidden;
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 09:50:45
* @LastEditTime: 2023-11-30 17:07:18
-->
<template>
<div id="login">
......@@ -260,7 +260,12 @@
position: absolute;
left: 50%;
top: calc(50% + 10px);
transform: translate(-50%, -50%);
margin: -225px 0 0 -468px;
}
@media screen and (max-width: 1440px) {
.login-content-wrap {
transform: scale(0.8);
}
}
.login-logo {
height: 70px;
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-14 13:25:49
* @LastEditTime: 2023-12-13 13:59:52
-->
<template>
<div class="rlPopup">
......@@ -12,8 +12,7 @@
<i class="el-icon-arrow-right"></i>
</div>
<div class="img-list-wrap" v-Loading="loading">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="">
<div v-for="(img, i) in previewImg.imgList" :key="i" v-else>
<div v-for="(img, i) in previewImg.imgList" :key="i">
<photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2"
overlayStyle="width: 100%;height:100%">
</photo-zoom>
......@@ -60,8 +59,6 @@
loading: false,
key: 0,
isScan: false,
// 打开高拍仪
scanTitle: '打开高拍仪',
transform: {
scale: 1,
degree: 0
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-10 10:36:22
* @LastEditTime: 2023-12-13 14:24:09
-->
<template>
<div class="content loadingtext">
......@@ -57,8 +57,6 @@
<script>
import { getBdcqljqtsx, getBdcqljqtsxBdcdyh } from "@/api/djbDetail.js";
import { loadTreeData, loadsfqData, getNode } from "./djbFrameData.js";
import { searchTaskToDo } from "@/api/workflow/search.js";
import { leftMenu } from "@/api/workFlow.js";
export default {
data () {
return {
......@@ -106,57 +104,6 @@
obj = obj.substring(index + 1, obj.length);
return obj;
},
// 通过不动产业务号获取参数
/**
* @description: 通过不动产业务号获取参数
* @author: renchao
*/
// getdata () {
// this.queryForm = {
// bdcdyh: this.getCaption(window.location.href),
// currentPage: 1,
// djlx: "",
// pageSize: 10,
// qllx: "",
// ywh: "",
// ywly: "",
// };
// if (this.queryForm) {
// this.$startLoading();
// searchTaskToDo({
// ...this.queryForm,
// }).then((res) => {
// if (res.code === 200) {
// let { records } = res.result;
// this.loadBdcdylist(records[0].bsmSlsq, records[0].bestepid);
// this.$endLoading();
// }
// });
// }
// },
// 获取不动产信息
/**
* @description: 获取不动产信息
* @param {*} a
* @param {*} b
* @author: renchao
*/
// loadBdcdylist (a, b) {
// var formdata = new FormData();
// formdata.append("bsmSlsq", a);
// formdata.append("bestepid", b);
// leftMenu(formdata).then((res) => {
// if (res.code === 200) {
// if (res.result) {
// this.currentSelectProps = res.result[0];
// this.loadData(this.currentSelectProps.bdcdyh);
// }
// }
// });
// },
/**
* @description: getBdcdyh
* @author: miaofang
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 15:04:26
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="queryForm" ref="queryForm" label-width="70px">
<el-row>
<el-col :span="5">
<el-form-item label="接口类型">
<el-input
placeholder="请输入编号"
v-model="queryForm.jklx"
class="width200px"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="调用状态">
<el-input
placeholder="请输入编号"
v-model="queryForm.dyzt"
class="width200px"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="访问IP">
<el-input
placeholder="请输入IP"
v-model="queryForm.fwip"
class="width200px"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="访问时间">
<el-input placeholder="请输入业务号" v-model="queryForm.fwsj" clearable class="width200px">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="请求地址">
<el-input
placeholder="请输入url"
v-model="queryForm.qqdz"
class="width500px"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="请求头数据">
<el-input
placeholder="请输入请求头数据"
v-model="queryForm.qqtsj"
class="width500px"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="入参数据">
<el-input
placeholder="请输入参数"
v-model="queryForm.rcsj"
class="width500px"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="调用描述">
<el-input
placeholder="调用描述"
v-model="queryForm.dyms"
class="width200px"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="返回数据">
<el-input
placeholder="返回数据"
v-model="queryForm.fhsj"
class="width200px"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="btnColRight">
<el-form-item>
<el-button type="primary" @click="queryClick()">发送</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 表格 -->
<div class="duijie">
<img src="../../../image/duijie.png" alt="">
</div>
</template>
<script>
export default {
export default {
}
</script>
data () {
return {
queryForm: {
jklx: "",
dyzt: "",
fwip: "",
fwsj: "",
qqdz: "",
qqtsj: "",
rcsj: "",
dyms: "",
fhsj: "",
},
}
},
<style lang="scss" scoped>
.duijie{
width: 100%;
height: 100%;
margin: auto;
text-align: center
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
</style>
\ No newline at end of file
}
</style>
......
......@@ -22,7 +22,7 @@ class data extends filter {
)
}
},
{
label: "推送状态",
render: (h, scope) => {
......@@ -52,12 +52,12 @@ class data extends filter {
// width: '110',
},
{
prop: "ywh1",
prop: "djywmc",
label: "登记业务名称",
// width: '110',
},
{
prop: "ywh2",
prop: "djqxmc",
label: "登记情形名称",
// width: '110',
},
......@@ -75,8 +75,8 @@ class data extends filter {
label: "推送时间",
},
{
prop: "createtime1",
label: "响应时",
prop: "xysj",
label: "响应时",
},
{
label: '操作',
......
......@@ -22,7 +22,7 @@ class data extends filter {
)
}
},
{
label: "推送状态",
render: (h, scope) => {
......@@ -52,12 +52,12 @@ class data extends filter {
// width: '110',
},
{
prop: "ywh1",
prop: "djywmc",
label: "登记业务名称",
// width: '110',
},
{
prop: "ywh2",
prop: "djqxmc",
label: "登记情形名称",
// width: '110',
},
......@@ -75,8 +75,8 @@ class data extends filter {
label: "推送时间",
},
{
prop: "createtime1",
label: "响应时",
prop: "xysj",
label: "响应时",
},
{
label: '操作',
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-21 16:30:43
* @LastEditTime: 2023-11-23 13:29:37
-->
<template>
<el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules">
......@@ -109,6 +109,7 @@
* @author: renchao
*/
addTemplate () {
store.dispatch('user/refreshPage', false);
addPrintTemplate(this.ruleForm).then(res => {
if (res.code == 200) {
store.dispatch('user/refreshPage', true);
......
......@@ -34,10 +34,7 @@
<el-col :span="5" class="btnColRight">
<el-form-item>
<el-button
type="primary"
native-type="submit"
@click="handleSearch"
<el-button type="primary" native-type="submit" @click="chchch"
>查询</el-button
>
<el-button type="primary" native-type="submit" @click="derive"
......@@ -53,6 +50,7 @@
</template>
<script>
import * as echarts from "echarts";
import XLSX from "xlsx";
export default {
components: {},
data() {
......@@ -76,23 +74,21 @@ export default {
data3: [],
xAxisData: [
"赵龙龙",
"刘龙龙",
"田龙龙",
"任龙龙",
"孙龙龙",
"李龙龙",
"周龙龙",
"刘刚",
"任启亮",
"梁亚博",
"李含",
"周路",
],
};
},
mounted() {
this.setdata();
this.setdata();
// 创建一个 ECharts 实例
this.chart = echarts.init(this.$refs.chart);
// 在 ECharts 实例中配置图表
this.chart.setOption(this.getOption());
this.chooseDateQuick(0);
},
methods: {
setdata() {
......@@ -102,9 +98,24 @@ export default {
}
},
// 导出
derive() {},
derive() {
this.exdata = [["受理人员", "收件数", "退件数", "推荐率"]];
this.xAxisData.forEach((item, index) => {
console.log("this.exdata[index+1]", this.exdata[index + 1]);
this.exdata.push([]);
this.exdata[index + 1].push(item);
this.exdata[index + 1].push(this.data1[index]);
this.exdata[index + 1].push(this.data2[index]);
this.exdata[index + 1].push(this.data3[index]);
});
console.log("this.exdata", this.exdata);
const ws = XLSX.utils.aoa_to_sheet(this.exdata);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
XLSX.writeFile(wb, "收件与超时统计情况.xlsx");
},
// 查询
handleSearch() {
chchch() {
console.log("dateRange", this.dateRange);
},
getOption() {
......@@ -289,10 +300,16 @@ export default {
return `${year}-${month}-${day}`;
},
// 某日期向前/向后num天
jumpNumDay(date, num, linkStr = '-') {
date = new Date(date.getTime() + (num * 24 * 60 * 60 * 1000))
return date.getFullYear() + linkStr + this.changeNum(date.getMonth() + 1) + linkStr + this.changeNum(date.getDate())
},
jumpNumDay(date, num, linkStr = "-") {
date = new Date(date.getTime() + num * 24 * 60 * 60 * 1000);
return (
date.getFullYear() +
linkStr +
this.changeNum(date.getMonth() + 1) +
linkStr +
this.changeNum(date.getDate())
);
},
},
};
</script>
......@@ -306,8 +323,6 @@ jumpNumDay(date, num, linkStr = '-') {
padding-top: 3px;
background-color: #ffffff;
margin-bottom: 10px;
}
.rowAc {
margin-left: 10px;
......
......@@ -37,7 +37,7 @@
<el-button
type="primary"
native-type="submit"
@click="handleSearch"
@click="chchch"
>查询</el-button
>
<el-button type="primary" native-type="submit" @click="derive"
......@@ -53,6 +53,7 @@
</template>
<script>
import * as echarts from "echarts";
import XLSX from 'xlsx';
export default {
components: {},
data() {
......@@ -75,13 +76,13 @@ export default {
data2: [1, 4, 1, 3, 2, 3, 4],
data3: [],
xAxisData: [
"赵红红",
"刘红红",
"田红红",
"任红红",
"孙红红",
"李红红",
"周红红",
"任超",
"杨威",
"魏娜",
"张祎旋",
"苗菁",
"王文刚",
"单帅旗",
],
};
},
......@@ -102,9 +103,27 @@ export default {
}
},
// 导出
derive() {},
// 导出
derive() {
this.exdata = [
['受理人员', '收件数','退件数','推荐率']
];
this.xAxisData.forEach((item,index) => {
console.log("this.exdata[index+1]",this.exdata[index+1]);
this.exdata.push([])
this.exdata[index+1].push(item)
this.exdata[index+1].push(this.data1[index])
this.exdata[index+1].push(this.data2[index])
this.exdata[index+1].push(this.data3[index])
})
console.log("this.exdata",this.exdata);
const ws = XLSX.utils.aoa_to_sheet(this.exdata);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
XLSX.writeFile(wb, '收件与退件统计情况.xlsx');
},
// 查询
handleSearch() {
chchch() {
console.log("dateRange", this.dateRange);
},
getOption() {
......@@ -135,8 +154,6 @@ export default {
<span font-size: 16px; font-weight: 600;"> ${params.name}: ${
Number(params.value).toFixed(2) + "%"
} </span>
</div>`;
},
},
......
......@@ -46,6 +46,7 @@
</div>
<image-preview
ref="imageRef"
:key="imgKey"
v-if="tableData.length > 0"
:previewImg="previewImg"
:ableOperation="ableOperation"
......@@ -66,6 +67,7 @@
components: { clxxAddDialog, imagePreview, clxxDetailDialog },
data () {
return {
imgKey: 0,
//表单是否可操作
ableOperation: true,
isDialog: false,
......@@ -292,6 +294,7 @@
if (this.$refs.imageRef) {
this.$refs.imageRef.initialIndex = 0
}
this.imgKey++
},
/**
* @description: 小图片点击
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-23 17:20:01
-->
<template>
<iframe :src="ip +'/txdw/#/' + formData.bsmZd" frameborder="0" style="width: 100%; height:710px;"></iframe>
</template>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-14 13:25:52
* @LastEditTime: 2023-12-13 13:56:14
-->
<template>
<div class="rlPopup">
......@@ -12,7 +12,8 @@
<i class="el-icon-arrow-right"></i>
</div>
<div class="img-list-wrap" v-Loading="loading">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="高拍仪">
<img id="photo" src="" v-show="isScan && this.BASE_API.gaopaiyi=='jy'" alt="高拍仪捷宇">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan && this.BASE_API.gaopaiyi=='lt'" alt="高拍仪良田">
<div v-for="(img, i) in previewImg.imgList" :key="i" v-else>
<photo-zoom :url="img.fileurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2"
overlayStyle="width: 100%;height:100%">
......@@ -89,6 +90,7 @@
showViewer: false,
initialIndex: 0,
allLi: [],
webSocket: null
}
},
watch: {
......@@ -107,9 +109,35 @@
}
},
created () {
let that = this
this.maxLength = 0;
this.allLi = _.cloneDeep(this.previewImg.imgList).map(item => item.fjurl)
this.thumbnailImages = this.previewImg.imgList
if (this.BASE_API.gaopaiyi == 'jy') {
this.webSocket = new WebSocket('ws://localhost:1818');
this.webSocket.onmessage = function (event) {
let begin_data = "data:image/jpeg;base64,";
document.getElementById('photo').src = begin_data + event.data;
if (event.data.indexOf('BeginsGetBase64') >= 0) {
let blob = that.dataURLtoBlob('data:image/png;base64,' + event.data.replace('BeginsGetBase64', '').replace('EndsGetBase64', ''));
let file = that.blobToFile(blob);
var formData = new FormData();
formData.append('file', file)
if (that.previewImg.imgList.length > 0) {
formData.append("index", that.previewImg.imgList[that.previewImg.index].sxh);
}
uploadSjClmx(formData, that.previewImg.bsmMaterial).then((res) => {
if (res.code == 200) {
that.$emit('updateList', { children: res.result, bsmMaterial: that.previewImg.bsmMaterial })
that.$message({
message: '上传成功!',
type: 'success'
})
}
})
}
}
}
},
computed: {
isFirst () {
......@@ -168,28 +196,32 @@
* @description: 拍照
* @author: renchao
*/
handleViewScan () {
function dataURLtoBlob (base64String) {
const arr = base64String.split(',');
if (arr.length !== 2) {
throw new Error('Invalid Base64 format');
}
const mime = arr[0].match(/:(.*?);/)[1];
if (!mime) {
throw new Error('Cannot retrieve MIME type');
}
const bstr = atob(arr[1]);
const n = bstr.length;
const u8arr = new Uint8Array(n);
for (let i = 0; i < n; i++) {
u8arr[i] = bstr.charCodeAt(i);
}
return new Blob([u8arr], { type: mime });
dataURLtoBlob (base64String) {
const arr = base64String.split(',');
if (arr.length !== 2) {
throw new Error('Invalid Base64 format');
}
const mime = arr[0].match(/:(.*?);/)[1];
if (!mime) {
throw new Error('Cannot retrieve MIME type');
}
const bstr = atob(arr[1]);
const n = bstr.length;
const u8arr = new Uint8Array(n);
for (let i = 0; i < n; i++) {
u8arr[i] = bstr.charCodeAt(i);
}
function blobToFile (blob) {
let name = getUuid(8) + '.jpg'
const file = new File([blob], name);
return file;
return new Blob([u8arr], { type: mime });
},
blobToFile (blob) {
let name = getUuid(8) + '.jpg'
const file = new File([blob], name);
return file;
},
handleViewScan () {
if (this.BASE_API.gaopaiyi == 'jy') {
this.webSocket.send('sGetBase64');
return
}
getAltimeterInfo().then(res => {
let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64);
......
......@@ -46,6 +46,7 @@
</div>
<image-preview
ref="imageRef"
:key="imgKey"
v-if="tableData.length > 0"
:previewImg="previewImg"
@updateList="updateList"
......@@ -75,6 +76,7 @@
},
data () {
return {
imgKey: 0,
isDialog: false,
iclass: "",
// 材料目录选中
......@@ -275,6 +277,7 @@
if (this.$refs.imageRef) {
this.$refs.imageRef.initialIndex = 0
}
this.imgKey++
},
/**
* @description: 小图片点击
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-15 09:41:55
-->
<template>
<div class="from-clues">
<!-- 家庭房产 -->
<div class="from-clues-header">
<el-form :model="queryForm" @submit.native.prevent ref="queryForm" label-width="70px">
<el-row>
<el-col :span="5">
<el-form-item label="申请编号">
<el-input placeholder="申请编号" v-model="queryForm.sqbh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="9" class="flex">
<el-form-item label="申请时间">
<el-date-picker v-model="queryForm.date1" type="date" placeholder="开始日期" value-format="yyyy-MM-dd" clearable>
</el-date-picker>
<el-date-picker v-model="queryForm.date2" type="date" placeholder="结束日期" value-format="yyyy-MM-dd" clearable>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="权利人">
<el-input placeholder="权利人" v-model="queryForm.qlr" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="义务人">
<el-input placeholder="义务人" v-model="queryForm.ywr" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="办理状态">
<el-input placeholder="办理状态" v-model="queryForm.blzt" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="19" class="btnColRight">
<el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button>
</el-col>
</el-row>
</el-form>
</div>
<!-- 表格 -->
<div class="from-clues-content">
<lb-table :page-size="pageData.size" class="loadingtext" :current-page.sync="pageData.current"
:total="tableData.total" @size-change="handleSizeChange" @p-current-change="handleCurrentChange"
:column="tableData.columns" :data="tableData.data">
</lb-table>
</div>
<div class="duijie">
<img src="../../../image/duijie.png" alt="">
</div>
</template>
<script>
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./data";
export default {
name: "jtfc",
mixins: [table],
mounted () {
sendThis(this);
this.queryClick();
},
data () {
return {
sqcxBsm: "",
queryForm: {
sqbh: "",
date1: "",
date2: "",
qlr: "",
ywr: "",
blzt: ""
},
tableData: {
columns: datas.columns(),
data: [{}]
}
}
},
activated () {
this.queryClick()
},
methods: {
/**
* @description: 初始化数据
* @author: renchao
*/
queryClick () {
// this.$startLoading()
},
handleViewClick () {
this.$popupDialog("查看详情", "ywbl/ycsl/components/detail", {}, "75%")
}
}
}
export default {
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
<style lang="scss" scoped>
.duijie{
width: 100%;
height: 100%;
margin: auto;
text-align: center
}
</style>
......
......@@ -63,6 +63,9 @@ module.exports = {
entry: {
app: './src/main.js'
},
externals: [{
'./cptable': 'var cptable'
}],
resolve: {
alias: {
'@': resolve('src')
......