ocr刷新
This commit is contained in:
@@ -535,5 +535,10 @@ module.exports = {
|
|||||||
theRelease: 'The release date should not exceed the standard implementation date',
|
theRelease: 'The release date should not exceed the standard implementation date',
|
||||||
zoneOfApplication: 'zone of application',
|
zoneOfApplication: 'zone of application',
|
||||||
releaseTime: 'release Time',
|
releaseTime: 'release Time',
|
||||||
standardImplementationTime: 'Standard implementation time'
|
standardImplementationTime: 'Standard implementation time',
|
||||||
|
onlyPicture:'only upload pictures!',
|
||||||
|
fileUploadFailed:'file upload failed',
|
||||||
|
deletedSuccessfully:'deleted successfully',
|
||||||
|
uploadSuccessful:'upload successful',
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -540,4 +540,9 @@ module.exports = {
|
|||||||
zoneOfApplication:'适用地区',
|
zoneOfApplication:'适用地区',
|
||||||
releaseTime:'发布时间',
|
releaseTime:'发布时间',
|
||||||
standardImplementationTime:'标准实施时间',
|
standardImplementationTime:'标准实施时间',
|
||||||
|
onlyPicture:'只能上传图片!',
|
||||||
|
fileUploadFailed:'文件上传失败',
|
||||||
|
deletedSuccessfully:'删除成功',
|
||||||
|
uploadSuccessful:'上传成功',
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
class="ant-upload-list"
|
class="ant-upload-list"
|
||||||
name="file"
|
name="file"
|
||||||
|
:list-type="listType"
|
||||||
:file-list="myfileList"
|
:file-list="myfileList"
|
||||||
:multiple="false"
|
:multiple="false"
|
||||||
:action = 'uploadAction'
|
:action = 'uploadAction'
|
||||||
@@ -25,7 +26,7 @@
|
|||||||
import { ACCESS_TOKEN } from "@/store/mutation-types"
|
import { ACCESS_TOKEN } from "@/store/mutation-types"
|
||||||
export default {
|
export default {
|
||||||
name: 'ocrUpload',
|
name: 'ocrUpload',
|
||||||
props:['disableds','disabled','thisFileUploadUrl','readonly','thisFileType','accept'],
|
props:['disableds','disabled','thisFileUploadUrl','readonly','thisFileType','accept','title','listType'],
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
visible:false,
|
visible:false,
|
||||||
@@ -35,7 +36,6 @@
|
|||||||
fileList:[],
|
fileList:[],
|
||||||
fileTypeSatus:false,
|
fileTypeSatus:false,
|
||||||
headers:{},
|
headers:{},
|
||||||
title:this.$t('UploadFile')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
|
|||||||
@@ -0,0 +1,183 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-modal v-model="visible" :maskClosable="false" :footer="[]" :title="title">
|
||||||
|
<a-upload-dragger
|
||||||
|
accept='*.*'
|
||||||
|
:disabled="disabled"
|
||||||
|
class="ant-upload-list"
|
||||||
|
name="file"
|
||||||
|
:file-list="myfileList"
|
||||||
|
:multiple="true"
|
||||||
|
:action='uploadAction'
|
||||||
|
:headers="headers"
|
||||||
|
:list-type="listType"
|
||||||
|
@preview="preview"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:remove='remove'
|
||||||
|
@change="handleChange">
|
||||||
|
<p>
|
||||||
|
<a-icon class="action-upload" type="cloud-upload"/>
|
||||||
|
</p>
|
||||||
|
<p class="ant-upload-text" style="font-size: 14px;line-height: 30px">{{this.$t('clickUpload')}}</p>
|
||||||
|
</a-upload-dragger>
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Vue from 'vue'
|
||||||
|
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||||
|
import { getAction, postAction, downFile, downloadFile } from '@/api/manage'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'file',
|
||||||
|
props: ['disableds', 'disabled', 'thisFileUploadUrl', 'readonly', 'thisFileType','accept','title','listType','splitVisible'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload',
|
||||||
|
upDataList: [],
|
||||||
|
downLoadFileUrl: window._CONFIG['domianURL'] + '/sys/common/static',
|
||||||
|
fileList: [],
|
||||||
|
myfileList: [],
|
||||||
|
isLoding: false,
|
||||||
|
headers:'',
|
||||||
|
previewImage:{}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||||
|
this.headers = { 'X-Access-Token': token }
|
||||||
|
this.containerId = 'container-ty-' + new Date().getTime()
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.visible=this.splitVisible
|
||||||
|
// console.log(this.thisFileType,this.thisFileSize,this.thisFileUploadUrl);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
perentHandleFunc(data) {
|
||||||
|
this.myfileList = data
|
||||||
|
if (data && data.length > 0) {
|
||||||
|
this.myfileList.forEach((res) => {
|
||||||
|
res.name = res.fileName
|
||||||
|
res.uid = res.id
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.myfileList = []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeUpload(file) {
|
||||||
|
|
||||||
|
if(file.type.split('/')[0]!='image'){
|
||||||
|
this.$message.warning(this.$t('onlyPicture'))
|
||||||
|
this.fileTypeSatus = false
|
||||||
|
}else{
|
||||||
|
// let thisFileType = this.thisFileType.replace(/\s+/g, "");
|
||||||
|
this.fileTypeSatus = true
|
||||||
|
//TODO 客户要求不拦截文件
|
||||||
|
this.$message.destroy()
|
||||||
|
// 207M.doc文件大小超出100MB限制, 请压缩或降低文件质量!
|
||||||
|
this.errorMessage = file.name + '文件大小超出1000MB限制, 请压缩或降低文件质量!'
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
remove() {
|
||||||
|
this.fileTypeSatus = true
|
||||||
|
},
|
||||||
|
mypreview(item) {
|
||||||
|
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + encodeURIComponent(this.downLoadFileUrl + '/' + item.ext1)
|
||||||
|
window.open(url, '_blank')
|
||||||
|
},
|
||||||
|
handleChange(info) {
|
||||||
|
console.log('file',info)
|
||||||
|
let { file,fileList } = info
|
||||||
|
const status = info.file.status
|
||||||
|
info.fileList.forEach((val, index) => {
|
||||||
|
if (val.response && !val.response.result) {
|
||||||
|
this.$message.error(val.response.message)
|
||||||
|
info.fileList.splice(index, 1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (this.fileTypeSatus) {
|
||||||
|
if (file.size > 1000000000) {
|
||||||
|
this.$message.error(this.errorMessage)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if (status === 'error') {
|
||||||
|
this.$emit('uploadSuccess', this.fileList)
|
||||||
|
this.$message.destroy()
|
||||||
|
this.$message.error(`${info.file.name} `+this.$t('fileUploadFailed'))
|
||||||
|
} else if (status === 'removed') {
|
||||||
|
this.myfileList = info.fileList
|
||||||
|
this.fileList = []
|
||||||
|
this.myfileList.forEach((res) => {
|
||||||
|
if (res.response) {
|
||||||
|
this.fileList.push(res.response.result)
|
||||||
|
} else {
|
||||||
|
this.fileList.push(res)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.$emit('uploadSuccess', this.fileList,fileList)
|
||||||
|
if (this.myfileList.length > 0) {
|
||||||
|
this.$message.destroy()
|
||||||
|
this.$message.success(`${info.file.name} `+this.$t('deletedSuccessfully'))
|
||||||
|
}
|
||||||
|
} else if (status === 'done') {
|
||||||
|
this.fileList = []
|
||||||
|
this.myfileList = info.fileList
|
||||||
|
if (info.fileList.length > 20) {
|
||||||
|
info.fileList.splice(20)
|
||||||
|
this.myfileList = info.fileList
|
||||||
|
this.myfileList.forEach((res) => {
|
||||||
|
if (res.response) {
|
||||||
|
this.fileList.push(res.response.result)
|
||||||
|
} else {
|
||||||
|
this.fileList.push(res)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.$emit('uploadSuccess', this.fileList,fileList)
|
||||||
|
this.$message.destroy()
|
||||||
|
this.$message.error('最多只能上传二十个')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.myfileList.forEach((res) => {
|
||||||
|
if (res.response) {
|
||||||
|
this.fileList.push(res.response.result)
|
||||||
|
} else {
|
||||||
|
this.fileList.push(res)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.$emit('uploadSuccess', this.fileList,fileList)
|
||||||
|
if (this.myfileList.length > 0) {
|
||||||
|
this.$message.destroy()
|
||||||
|
this.$message.success(`${info.file.name} `+this.$t('uploadSuccessful'))
|
||||||
|
}
|
||||||
|
} else if (status === 'uploading') {
|
||||||
|
this.myfileList = info.fileList
|
||||||
|
// this.$message.success(`${info.file.name} 文件上传成功。`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resetFileList() {
|
||||||
|
this.myfileList = []
|
||||||
|
this.fileList = []
|
||||||
|
},
|
||||||
|
preview(file) {
|
||||||
|
console.log('file111',file)
|
||||||
|
this.previewImage = file.response.path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.ant-upload-list-item-name {
|
||||||
|
color: rgba(0, 0, 0, 0.65) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-upload {
|
||||||
|
font-size: 67px;
|
||||||
|
color: #c0c4cc;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -68,7 +68,8 @@
|
|||||||
lockReconnect: false,
|
lockReconnect: false,
|
||||||
heartCheck: null,
|
heartCheck: null,
|
||||||
formData: {},
|
formData: {},
|
||||||
openPath: ''
|
openPath: '',
|
||||||
|
timer:''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -82,6 +83,11 @@
|
|||||||
this.initWebSocket()
|
this.initWebSocket()
|
||||||
this.heartCheckFun()
|
this.heartCheckFun()
|
||||||
},
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
if(this.timer){
|
||||||
|
clearInterval(this.timer)
|
||||||
|
}
|
||||||
|
},
|
||||||
destroyed: function() { // 离开页面生命周期函数
|
destroyed: function() { // 离开页面生命周期函数
|
||||||
this.websocketOnclose()
|
this.websocketOnclose()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<doc-table v-if="drawVisible" :drawVisible="drawVisible" :drawTableSorce="drawTableSorce" @visible="docVisible" @exportVisible="exportVisible"></doc-table>
|
<doc-table v-if="drawVisible" :drawVisible="drawVisible" :drawTableSorce="drawTableSorce" @visible="docVisible" @exportVisible="exportVisible"></doc-table>
|
||||||
<ocr-upload ref="uploadFile1" :disabled="disabled" :accept="accept" @uploadSuccess="uploadSuccess"></ocr-upload>
|
<ocr-upload ref="uploadFile1" :disabled="disabled" :accept="accept" :title="title" :listType='listType' @uploadSuccess="uploadSuccess"></ocr-upload>
|
||||||
</a-card>
|
</a-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -153,7 +153,9 @@
|
|||||||
record:{},
|
record:{},
|
||||||
accept:'application/pdf',
|
accept:'application/pdf',
|
||||||
today:'',
|
today:'',
|
||||||
timer:''
|
timer:'',
|
||||||
|
title:this.$t('UploadFile'),
|
||||||
|
listType:'text',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
@@ -182,7 +184,8 @@
|
|||||||
console.log("------------WebSocket连接成功");
|
console.log("------------WebSocket连接成功");
|
||||||
// WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https
|
// WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https
|
||||||
let userId = store.getters.userInfo.id;
|
let userId = store.getters.userInfo.id;
|
||||||
let url = window._CONFIG['domianWebSocketURL'].replace("https://","wss://").replace("http://","ws://") + '/websocket/' + userId;
|
let url = window._CONFIG['domianWebSocketURL'].replace("https://","wss://").replace("http://","ws://") + '/websocket/socketServer'
|
||||||
|
// let url = 'http://10.0.1.25:8080/jero-boot'.replace("https://","wss://").replace("http://","ws://") + '/websocket/socketServer'
|
||||||
this.websock = new WebSocket(url);
|
this.websock = new WebSocket(url);
|
||||||
this.websock.onopen = this.websocketOnopen;
|
this.websock.onopen = this.websocketOnopen;
|
||||||
this.websock.onerror = this.websocketOnerror;
|
this.websock.onerror = this.websocketOnerror;
|
||||||
@@ -190,16 +193,30 @@
|
|||||||
this.websock.onclose = this.websocketOnclose;
|
this.websock.onclose = this.websocketOnclose;
|
||||||
},
|
},
|
||||||
websocketOnopen: function (e) {
|
websocketOnopen: function (e) {
|
||||||
console.log("WebSocket连接成功");
|
// console.log("WebSocket连接成功");
|
||||||
// console.log('eee',e)
|
// console.log('eee',e)
|
||||||
|
|
||||||
|
// 添加心跳检测,每10秒发一次数据,防止连接断开(这跟服务器的设置有关,如果服务器没有设置每隔多长时间不发消息断开,可以不进行心跳设置)
|
||||||
|
let self = this;
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
try {
|
||||||
|
self.websock.send('test')
|
||||||
|
// console.log('发送消息');
|
||||||
|
}catch(err){
|
||||||
|
console.log('断开了:' + err);
|
||||||
|
self.connection()
|
||||||
|
}
|
||||||
|
}, 10000)
|
||||||
},
|
},
|
||||||
websocketOnerror: function (e) {
|
websocketOnerror: function (e) {
|
||||||
console.log("WebSocket连接发生错误");
|
// console.log("WebSocket连接发生错误");
|
||||||
this.reconnect();
|
this.reconnect();
|
||||||
},
|
},
|
||||||
websocketOnmessage: function (e) {
|
websocketOnmessage: function (e) {
|
||||||
console.log("WebSocket连接数据");
|
// console.log("WebSocket连接数据1111");
|
||||||
|
if(e.data=='1'){
|
||||||
|
eventBUs.$emit('searchReset')
|
||||||
|
}
|
||||||
},
|
},
|
||||||
websocketOnclose: function (e) {
|
websocketOnclose: function (e) {
|
||||||
this.reconnect();
|
this.reconnect();
|
||||||
@@ -218,7 +235,7 @@
|
|||||||
that.lockReconnect = true;
|
that.lockReconnect = true;
|
||||||
//没连接上会一直重连,设置延迟避免请求过多
|
//没连接上会一直重连,设置延迟避免请求过多
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
console.info("尝试重连...");
|
// console.info("尝试重连...");
|
||||||
that.initWebSocket();
|
that.initWebSocket();
|
||||||
that.lockReconnect = false;
|
that.lockReconnect = false;
|
||||||
}, 5000);
|
}, 5000);
|
||||||
|
|||||||
@@ -160,8 +160,8 @@
|
|||||||
this.visible = false;
|
this.visible = false;
|
||||||
this.$emit('visible',false)
|
this.$emit('visible',false)
|
||||||
},
|
},
|
||||||
onSelectChange(){
|
onSelectChange(keys){
|
||||||
|
this.selectedRowKeys=keys
|
||||||
},
|
},
|
||||||
|
|
||||||
//搜索
|
//搜索
|
||||||
|
|||||||
@@ -129,8 +129,8 @@
|
|||||||
this.visible = false;
|
this.visible = false;
|
||||||
this.$emit('visible',false)
|
this.$emit('visible',false)
|
||||||
},
|
},
|
||||||
onSelectChange(){
|
onSelectChange(keys){
|
||||||
|
this.selectedRowKeys=keys
|
||||||
},
|
},
|
||||||
|
|
||||||
//搜索
|
//搜索
|
||||||
|
|||||||
@@ -58,13 +58,20 @@
|
|||||||
<!-- 内容简介-->
|
<!-- 内容简介-->
|
||||||
<span class="con-divider">{{$t('contentValidity')}}</span>
|
<span class="con-divider">{{$t('contentValidity')}}</span>
|
||||||
<a-divider dashed />
|
<a-divider dashed />
|
||||||
|
<div class="table-operator">
|
||||||
|
<div class="operator-text" @click="splitAdd('-1')">
|
||||||
|
<a-icon type="plus" />
|
||||||
|
{{$t('Add')}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<a-row :gutter="24" class="split-content" id="split-content" v-for="(item, index) in contentList" :key="item.id">
|
<a-row :gutter="24" class="split-content" id="split-content" v-for="(item, index) in contentList" :key="item.id">
|
||||||
<div class="split-row">
|
<div class="split-row">
|
||||||
<div class="row-left">
|
<div class="row-left">
|
||||||
<a-textarea v-if="item.type=='TEXT'" v-model="item.textContent" placeholder="$t('pleaseEnter')+$t('content')" auto-size />
|
<a-textarea v-if="item.type=='TEXT'" v-model="item.textContent" :placeholder="$t('pleaseEnter')+$t('content')" auto-size />
|
||||||
|
<img v-if="item.type=='IMG'" :src="item.src" alt="" @click="preImg(item)">
|
||||||
</div>
|
</div>
|
||||||
<div class="row-right">
|
<div class="row-right">
|
||||||
<a-button class="row-btn-add" @click="splitAdd">{{$t('Add')}}</a-button>
|
<a-button class="row-btn-add" @click="splitAdd(index)">{{$t('Add')}}</a-button>
|
||||||
<a-button @click="splitDelete">{{$t('delete')}}</a-button>
|
<a-button @click="splitDelete">{{$t('delete')}}</a-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -75,6 +82,18 @@
|
|||||||
<a-button type="primary" class="footer-btn-save" @click="splitSave">{{$t('preservation')}}</a-button>
|
<a-button type="primary" class="footer-btn-save" @click="splitSave">{{$t('preservation')}}</a-button>
|
||||||
<a-button type="primary" @click="splitCancel">{{$t('cancel')}}</a-button>
|
<a-button type="primary" @click="splitCancel">{{$t('cancel')}}</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 图片预览-->
|
||||||
|
<a-modal
|
||||||
|
:title="TitlePreImg"
|
||||||
|
class="split-img"
|
||||||
|
:visible="preImgVisible"
|
||||||
|
:confirm-loading="confirmLoading"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handlePreImgCancel"
|
||||||
|
:footer="false"
|
||||||
|
>
|
||||||
|
<img :src="itemSrc" alt="">
|
||||||
|
</a-modal>
|
||||||
<!-- 类型选择弹框-->
|
<!-- 类型选择弹框-->
|
||||||
<a-modal
|
<a-modal
|
||||||
:title="Title"
|
:title="Title"
|
||||||
@@ -92,10 +111,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="title-num" v-if="selectedNum">
|
<div class="title-num" v-if="selectedNum">
|
||||||
<span class="title-num-add">添加数量</span>
|
<span class="title-num-add">添加数量</span>
|
||||||
<a-input-number class="title-num-edit" :min="1" v-model="textNumber" placeholder="请输入数据"></a-input-number>
|
<a-input-number class="title-num-edit" :min="1" v-model="textNumber" placeholder="请输入数据" :formatter="limitNumber" :parser="limitNumber"></a-input-number>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<!-- 上传图片弹框-->
|
||||||
|
<split-upload v-if="splitVisible" ref="uploadFile2" :disabled="disabled" :accept="accept" :title="titleImg" :listType='listType' :splitVisible="splitVisible" @uploadSuccess="uploadSuccess"></split-upload>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -103,11 +124,16 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
import splitUpload from '@/components/splitUpload/index'
|
||||||
export default {
|
export default {
|
||||||
name: 'splitAddForm',
|
name: 'splitAddForm',
|
||||||
|
components:{
|
||||||
|
splitUpload
|
||||||
|
},
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
title:this.$t('newClause'),
|
title:this.$t('newClause'),
|
||||||
|
TitlePreImg:'',
|
||||||
contentList:[
|
contentList:[
|
||||||
{
|
{
|
||||||
id:'001',
|
id:'001',
|
||||||
@@ -139,13 +165,25 @@
|
|||||||
form:{},
|
form:{},
|
||||||
validatorRules:{
|
validatorRules:{
|
||||||
number:[
|
number:[
|
||||||
{ required:true,message: '请输入条款号',trigger: 'blur' }
|
{ required:true,message: '请输入条款号',trigger: 'blur' },
|
||||||
|
{ min:1, max: 200, message: this.$t('cantExeed')+'200'+this.$t('characters'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
name:[
|
name:[
|
||||||
{ required:true,message: '请输入条款名称',trigger: 'blur' }
|
{ required:true,message: '请输入条款名称',trigger: 'blur' },
|
||||||
|
{ min:1, max: 200, message: this.$t('cantExeed')+'200'+this.$t('characters'), trigger: 'blur' }
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
addIndex:'',
|
||||||
|
addImgVisible:false, //上传图片弹框
|
||||||
|
titleImg:this.$t('uploadPictures'),
|
||||||
|
accept:'image/*',
|
||||||
|
listType:'picture',
|
||||||
|
disabled:false,
|
||||||
|
splitVisible:false,
|
||||||
|
tableVisible:false,
|
||||||
|
preImgVisible:false, //图片预览
|
||||||
|
itemSrc:'' //预览图片
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
@@ -170,10 +208,15 @@
|
|||||||
onClose(){
|
onClose(){
|
||||||
this.$emit('closeVisible',false)
|
this.$emit('closeVisible',false)
|
||||||
},
|
},
|
||||||
//增加按钮
|
|
||||||
splitAdd(){
|
|
||||||
this.addConVisible=true
|
|
||||||
|
|
||||||
|
//增加按钮
|
||||||
|
splitAdd(val){
|
||||||
|
this.addConVisible=true
|
||||||
|
if(val=='-1'){
|
||||||
|
this.addIndex=this.contentList.length-1
|
||||||
|
}else{
|
||||||
|
this.addIndex=val
|
||||||
|
}
|
||||||
},
|
},
|
||||||
//删除按钮
|
//删除按钮
|
||||||
splitDelete(){
|
splitDelete(){
|
||||||
@@ -195,9 +238,29 @@
|
|||||||
//确定增加的类型
|
//确定增加的类型
|
||||||
handleOk(){
|
handleOk(){
|
||||||
this.addConVisible=false
|
this.addConVisible=false
|
||||||
if(this.selected==1){
|
console.log('addIndex',this.addIndex)
|
||||||
|
let contentLength=this.contentList.length
|
||||||
|
if(this.selected==1){ //文本类型
|
||||||
|
for(let i=this.contentList.length;i>this.addIndex;i--){
|
||||||
|
this.contentList[i+contentLength-1]=this.contentList[i-1]
|
||||||
|
}
|
||||||
|
for(let j=0;j<this.textNumber;j++){
|
||||||
|
this.contentList[++this.addIndex]={
|
||||||
|
id:'003',
|
||||||
|
type:'TEXT',
|
||||||
|
textContent:''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(this.selected==2){ //图片类型
|
||||||
|
|
||||||
|
this.splitVisible=true
|
||||||
|
|
||||||
|
}else if(this.selected==3){ //表格类型
|
||||||
|
this.tableVisible=true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
console.log('conteend',this.contentList)
|
||||||
},
|
},
|
||||||
handleCancel(){
|
handleCancel(){
|
||||||
this.addConVisible=false
|
this.addConVisible=false
|
||||||
@@ -205,12 +268,48 @@
|
|||||||
selectTitle(val){
|
selectTitle(val){
|
||||||
this.selected=val
|
this.selected=val
|
||||||
|
|
||||||
}
|
},
|
||||||
|
//上传文件
|
||||||
|
uploadSuccess(data,imgs) {
|
||||||
|
let lengthImg=imgs.length
|
||||||
|
for(let i = this.contentList.length;i>this.addIndex;i--){
|
||||||
|
this.contentList[i+lengthImg-1]=this.contentList[i-1]
|
||||||
|
}
|
||||||
|
if(imgs && imgs.length > 0){
|
||||||
|
imgs.forEach(item => {
|
||||||
|
this.contentList[++this.addIndex]={
|
||||||
|
type:'IMG',
|
||||||
|
src:item.thumbUrl
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.splitVisible=false
|
||||||
|
},
|
||||||
|
//点击图片预览
|
||||||
|
preImg(item){
|
||||||
|
this.itemSrc=item.src
|
||||||
|
this.preImgVisible=true
|
||||||
|
},
|
||||||
|
//关闭预览图片
|
||||||
|
handlePreImgCancel(){
|
||||||
|
this.preImgVisible=false
|
||||||
|
},
|
||||||
|
//正则替换小数点
|
||||||
|
limitNumber(value) {
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
return !isNaN(Number(value)) ? value.replace(/\./g, '') : 0
|
||||||
|
} else if (typeof value === 'number') {
|
||||||
|
return !isNaN(value) ? String(value).replace(/\./g, '') : 0
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
.split-add-form{
|
.split-add-form{
|
||||||
.split-add-form-wrapper{
|
.split-add-form-wrapper{
|
||||||
|
|
||||||
@@ -223,13 +322,23 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: rgba(0, 0, 0, 0.85)
|
color: rgba(0, 0, 0, 0.85)
|
||||||
}
|
}
|
||||||
|
.table-operator{
|
||||||
|
margin-bottom: 20px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
.split-row{
|
.split-row{
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin: 0 20px 20px;
|
margin: 0 20px 20px;
|
||||||
.row-left{
|
.row-left{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|
||||||
/*border:1px solid #9e9e9e;*/
|
/*border:1px solid #9e9e9e;*/
|
||||||
|
img{
|
||||||
|
cursor: pointer;
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.row-right{
|
.row-right{
|
||||||
min-width: 150px;
|
min-width: 150px;
|
||||||
@@ -284,7 +393,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.split-img{
|
||||||
|
margin-top: 20px;
|
||||||
|
text-align: center;
|
||||||
|
img{
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
|
|||||||
+11
-11
@@ -1,5 +1,5 @@
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const CompressionPlugin = require("compression-webpack-plugin")
|
const CompressionPlugin = require('compression-webpack-plugin')
|
||||||
|
|
||||||
function resolve(dir) {
|
function resolve(dir) {
|
||||||
return path.join(__dirname, dir)
|
return path.join(__dirname, dir)
|
||||||
@@ -14,10 +14,10 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
|
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
|
||||||
productionSourceMap: false,
|
productionSourceMap: false,
|
||||||
//打包app时放开该配置
|
// 打包app时放开该配置
|
||||||
//publicPath:'./',
|
// publicPath:'./',
|
||||||
configureWebpack: config => {
|
configureWebpack: config => {
|
||||||
//生产环境取消 console.log
|
// 生产环境取消 console.log
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
|
config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@ module.exports = {
|
|||||||
.set('@comp', resolve('src/components'))
|
.set('@comp', resolve('src/components'))
|
||||||
.set('@views', resolve('src/views'))
|
.set('@views', resolve('src/views'))
|
||||||
|
|
||||||
//生产环境,开启js\css压缩
|
// 生产环境,开启js\css压缩
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
config.plugin('compressionPlugin').use(new CompressionPlugin({
|
config.plugin('compressionPlugin').use(new CompressionPlugin({
|
||||||
test: /\.(js|css|less)$/, // 匹配文件名
|
test: /\.(js|css|less)$/, // 匹配文件名
|
||||||
@@ -63,7 +63,6 @@ module.exports = {
|
|||||||
.use()
|
.use()
|
||||||
.loader('babel-loader')
|
.loader('babel-loader')
|
||||||
.end()
|
.end()
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
css: {
|
css: {
|
||||||
@@ -73,9 +72,9 @@ module.exports = {
|
|||||||
/* less 变量覆盖,用于自定义 ant design 主题 */
|
/* less 变量覆盖,用于自定义 ant design 主题 */
|
||||||
'primary-color': '#00B3BE',
|
'primary-color': '#00B3BE',
|
||||||
'link-color': '#00B3BE',
|
'link-color': '#00B3BE',
|
||||||
'border-radius-base': '4px',
|
'border-radius-base': '4px'
|
||||||
},
|
},
|
||||||
javascriptEnabled: true,
|
javascriptEnabled: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -90,14 +89,15 @@ module.exports = {
|
|||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'/jero-boot': '' //默认所有请求都加了jero-boot前缀,需要去掉
|
'/jero-boot': '' //默认所有请求都加了jero-boot前缀,需要去掉
|
||||||
}
|
}
|
||||||
},*/
|
}, */
|
||||||
'/jero-boot': {
|
'/jero-boot': {
|
||||||
target: 'http://localhost:8080', //请求本地 jero-boot后台项目
|
target: 'http://localhost:8080', //请求本地 jero-boot后台项目
|
||||||
|
// target: 'http://10.0.1.25:8080',
|
||||||
ws: false,
|
ws: false,
|
||||||
changeOrigin: true
|
changeOrigin: true
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
lintOnSave: undefined
|
lintOnSave: undefined
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user