修复bug
This commit is contained in:
@@ -1071,7 +1071,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
margin: 0 3rem 0 1rem;
|
margin: 0 3rem 0 1rem;
|
||||||
}
|
}
|
||||||
.ant-message {
|
.ant-message {
|
||||||
z-index: 1049 !important;
|
z-index: 9999 !important;
|
||||||
top: 6rem;
|
top: 6rem;
|
||||||
}
|
}
|
||||||
.ant-modal-confirm-btns .ant-btn:hover {
|
.ant-modal-confirm-btns .ant-btn:hover {
|
||||||
|
|||||||
@@ -1172,7 +1172,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
margin: 0 3rem 0 1rem;
|
margin: 0 3rem 0 1rem;
|
||||||
}
|
}
|
||||||
.ant-message{
|
.ant-message{
|
||||||
z-index: 1049 !important;
|
z-index: 9999 !important;
|
||||||
top: 6rem;
|
top: 6rem;
|
||||||
}
|
}
|
||||||
.ant-modal-confirm-btns{
|
.ant-modal-confirm-btns{
|
||||||
|
|||||||
@@ -296,7 +296,7 @@
|
|||||||
<div class="generalModelOperate_btn_ok" :class="[credits < (allExportSR.filter(item=> item.checked ).length*5)?'active':'']" @click="setExportSR">OK</div>
|
<div class="generalModelOperate_btn_ok" :class="[credits < (allExportSR.filter(item=> item.checked ).length*5)?'active':'']" @click="setExportSR">OK</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<publish ref="publish" ></publish>
|
<publish ref="publish" @clearPublish="clearPublish"></publish>
|
||||||
<liquefaction ref="liquefaction" @submitLiquefaction="submitLiquefaction"></liquefaction>
|
<liquefaction ref="liquefaction" @submitLiquefaction="submitLiquefaction"></liquefaction>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
@@ -1200,7 +1200,10 @@ export default defineComponent({
|
|||||||
let keyDown = []
|
let keyDown = []
|
||||||
let oldOperation = ''
|
let oldOperation = ''
|
||||||
let canvasKeyDown = (event) => {
|
let canvasKeyDown = (event) => {
|
||||||
event.preventDefault();
|
let keys = ['Enter','Delete','ControlLeft','KeyZ','ShiftLeft','KeyC','KeyV','BracketLeft','BracketRight','KeyI','KeyD','KeyO','Backquote']
|
||||||
|
if(keys.indexOf(event.key) > -1){
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
if(keyDown.indexOf(event.code)>-1){
|
if(keyDown.indexOf(event.code)>-1){
|
||||||
}else{
|
}else{
|
||||||
keyDown.push(event.code)
|
keyDown.push(event.code)
|
||||||
@@ -1218,7 +1221,6 @@ export default defineComponent({
|
|||||||
paste()
|
paste()
|
||||||
}else if(keyDown.indexOf('BracketLeft') > -1){
|
}else if(keyDown.indexOf('BracketLeft') > -1){
|
||||||
let width = canvasPencilWidth.value[operation.value]
|
let width = canvasPencilWidth.value[operation.value]
|
||||||
console.log(width);
|
|
||||||
canvasPencilWidth.value[operation.value] = (width - 5) < 3?3:(width - 5)
|
canvasPencilWidth.value[operation.value] = (width - 5) < 3?3:(width - 5)
|
||||||
console.log(canvasPencilWidth.value[operation.value]);
|
console.log(canvasPencilWidth.value[operation.value]);
|
||||||
setPencilWidth()
|
setPencilWidth()
|
||||||
@@ -2018,6 +2020,12 @@ export default defineComponent({
|
|||||||
userlikeGroupId:userlikeGroupId,
|
userlikeGroupId:userlikeGroupId,
|
||||||
}
|
}
|
||||||
publishModal.init(data)
|
publishModal.init(data)
|
||||||
|
document.removeEventListener("keydown", setCanvasKeyDown);
|
||||||
|
document.removeEventListener("keyup", clearCanvasKeyDown);
|
||||||
|
}
|
||||||
|
const clearPublish = ()=>{
|
||||||
|
document.addEventListener("keydown", setCanvasKeyDown);
|
||||||
|
document.addEventListener("keyup", clearCanvasKeyDown);
|
||||||
}
|
}
|
||||||
let setSubmit = ()=>{
|
let setSubmit = ()=>{
|
||||||
let data = setCanvasContent(false)
|
let data = setCanvasContent(false)
|
||||||
@@ -2139,6 +2147,7 @@ export default defineComponent({
|
|||||||
uploadImage,//上传图帕
|
uploadImage,//上传图帕
|
||||||
setLayerIndex,//设置选中元素的层级
|
setLayerIndex,//设置选中元素的层级
|
||||||
brushList,//笔触列表
|
brushList,//笔触列表
|
||||||
|
clearPublish,
|
||||||
textureList,//材质列表
|
textureList,//材质列表
|
||||||
canvasPencilColor,//input选择颜色
|
canvasPencilColor,//input选择颜色
|
||||||
canvasPencilWidth,//input选择宽度
|
canvasPencilWidth,//input选择宽度
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ import { useI18n } from 'vue-i18n';
|
|||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
emits: ['clearPublish'],
|
||||||
setup(prop,{emit}) {
|
setup(prop,{emit}) {
|
||||||
let {t} = useI18n()
|
let {t} = useI18n()
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
@@ -199,6 +200,7 @@ export default defineComponent({
|
|||||||
publish.value = false
|
publish.value = false
|
||||||
publishData.isShowMark = false
|
publishData.isShowMark = false
|
||||||
publishData.subPublishDate = {}
|
publishData.subPublishDate = {}
|
||||||
|
emit('clearPublish')
|
||||||
}
|
}
|
||||||
let cancelDsign = ()=>{
|
let cancelDsign = ()=>{
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="echarts_box">
|
<div class="echarts_box">
|
||||||
<div class="title generalModel_state">
|
<div class="title generalModel_state">
|
||||||
<div class="radio">
|
<!-- <div class="radio">
|
||||||
<label>
|
<label>
|
||||||
<input name="pric" type="radio" value="monthly" v-model="current.type" @change="setPricType('monthly')">
|
<input name="pric" type="radio" value="monthly" v-model="current.type" @change="setPricType('monthly')">
|
||||||
Monthly
|
Monthly
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<input name="pric" type="radio" value="year" v-model="current.type" @change="setPricType('year')">
|
<input name="pric" type="radio" value="year" v-model="current.type" @change="setPricType('year')">
|
||||||
Yearly
|
Yearly
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="date generalModel_state_item">
|
<div class="date generalModel_state_item">
|
||||||
<a-date-picker
|
<a-date-picker
|
||||||
class="range_picker"
|
class="range_picker"
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
<div class="title">{{ item.title }}</div>
|
<div class="title">{{ item.title }}</div>
|
||||||
<div class="info">{{ item.info }}</div>
|
<div class="info">{{ item.info }}</div>
|
||||||
<div class="detail">{{ item.detail }}</div>
|
<div class="detail">{{ item.detail }}</div>
|
||||||
<div class="highlight">{{ item.highlight }}</div>
|
<div class="highlight" v-if="item.highlight">{{ item.highlight }}</div>
|
||||||
<div class="gallery_btn gallery_btn_radius" @click="createAccount">Create account</div>
|
<div class="gallery_btn gallery_btn_radius" :class="{active:item.title == '------------------'}" @click="createAccount">Create account</div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="product_detail">
|
<ul class="product_detail">
|
||||||
<li v-for="detailItem in item.detailList">{{ detailItem }}</li>
|
<li v-for="detailItem in item.detailList">{{ detailItem }}</li>
|
||||||
@@ -69,6 +69,31 @@
|
|||||||
'Suitable for individual creators and freelance designers to use'
|
'Suitable for individual creators and freelance designers to use'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title:"------------------",
|
||||||
|
info:"--- / Year",
|
||||||
|
detail:"---------------------------------------------",
|
||||||
|
// highlight:"---------------",
|
||||||
|
detailList:[
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
]
|
||||||
|
},{
|
||||||
|
title:"------------------",
|
||||||
|
info:"--- / Year",
|
||||||
|
detail:"---------------------------------------------",
|
||||||
|
// highlight:"---------------",
|
||||||
|
detailList:[
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
'---------------------------------------',
|
||||||
|
]
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// title:"Education Edition",
|
// title:"Education Edition",
|
||||||
// info:"XXX / Year",
|
// info:"XXX / Year",
|
||||||
@@ -216,6 +241,9 @@
|
|||||||
border: 2px solid #000;
|
border: 2px solid #000;
|
||||||
padding: 3rem;
|
padding: 3rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
.active{
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.product_detail{
|
.product_detail{
|
||||||
margin-top: 4rem;
|
margin-top: 4rem;
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { defineComponent, ref, reactive, watch, onMounted, nextTick, toRefs } from "vue";
|
import { defineComponent, ref, reactive, watch, onMounted, nextTick, toRefs, onBeforeUnmount } from "vue";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
import { getMousePosition } from "@/tool/mdEvent";
|
import { getMousePosition } from "@/tool/mdEvent";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
@@ -84,6 +84,8 @@ export default defineComponent({
|
|||||||
transform:`translateY(-100%) rotate(${90}deg)`,
|
transform:`translateY(-100%) rotate(${90}deg)`,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
let records = []//撤回
|
||||||
|
let normalCanvasState = []//反撤回
|
||||||
let canvas
|
let canvas
|
||||||
let canvasImgData = {
|
let canvasImgData = {
|
||||||
width:0,
|
width:0,
|
||||||
@@ -91,8 +93,12 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
let downX
|
let downX
|
||||||
let downY
|
let downY
|
||||||
|
let context
|
||||||
let init = async (data)=>{
|
let init = async (data)=>{
|
||||||
|
records = []
|
||||||
liqufeaction.value = true
|
liqufeaction.value = true
|
||||||
|
document.addEventListener("keydown", kyeDown);
|
||||||
|
document.addEventListener("keyup", KeyUp);
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
resolve()
|
resolve()
|
||||||
@@ -115,7 +121,7 @@ export default defineComponent({
|
|||||||
canvas.width = width
|
canvas.width = width
|
||||||
canvas.height = height
|
canvas.height = height
|
||||||
let optfor = false
|
let optfor = false
|
||||||
const context = canvas.getContext('2d');
|
context = canvas.getContext('2d');
|
||||||
context.drawImage(img, 1, 1, canvas.width, canvas.height);
|
context.drawImage(img, 1, 1, canvas.width, canvas.height);
|
||||||
let imgData = context.getImageData(0, 0, canvas.width, canvas.height)
|
let imgData = context.getImageData(0, 0, canvas.width, canvas.height)
|
||||||
|
|
||||||
@@ -160,7 +166,9 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
distance = 0
|
distance = 0
|
||||||
arrows.value.show = false
|
arrows.value.show = false
|
||||||
context.putImageData(imgData, 0, 0);
|
const copiedImgData = new ImageData(new Uint8ClampedArray(imgData.data), imgData.width, imgData.height);
|
||||||
|
records.push(copiedImgData)
|
||||||
|
context.putImageData(copiedImgData, 0, 0);
|
||||||
optfor = false
|
optfor = false
|
||||||
canvasBox.removeEventListener('mousemove', mouseMove);
|
canvasBox.removeEventListener('mousemove', mouseMove);
|
||||||
canvasBox.removeEventListener('touchmove', touchmove);
|
canvasBox.removeEventListener('touchmove', touchmove);
|
||||||
@@ -203,7 +211,10 @@ export default defineComponent({
|
|||||||
}else{
|
}else{
|
||||||
img.src = data
|
img.src = data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let distanceSqr = (x1, y1, x2, y2) => sqr(x1 - x2) + sqr(y1 - y2);
|
let distanceSqr = (x1, y1, x2, y2) => sqr(x1 - x2) + sqr(y1 - y2);
|
||||||
let sqr = (x) => x * x;;
|
let sqr = (x) => x * x;;
|
||||||
let eachCircleDot = (imageData, ox, oy, r, callback)=>{
|
let eachCircleDot = (imageData, ox, oy, r, callback)=>{
|
||||||
@@ -244,6 +255,44 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let keyDowns = []
|
||||||
|
let kyeDown = (event)=>{
|
||||||
|
if(keyDowns.indexOf(event.code)>-1){
|
||||||
|
}else{
|
||||||
|
keyDowns.push(event.code)
|
||||||
|
if(keyDowns.indexOf('ControlLeft') > -1 && keyDowns.indexOf('KeyZ') > -1 && keyDowns.indexOf('ShiftLeft') > -1){
|
||||||
|
historyState('')
|
||||||
|
}else if(keyDowns.indexOf('ControlLeft') > -1 && keyDowns.indexOf('KeyZ') > -1){
|
||||||
|
historyState('reverse')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let KeyUp = (event) =>{
|
||||||
|
keyDowns = keyDowns.filter(function(item) {
|
||||||
|
return event.code !== item;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const historyState = (str)=>{
|
||||||
|
console.log(str);
|
||||||
|
let obj
|
||||||
|
if(str == 'reverse' && records.length > 0){//反撤回
|
||||||
|
obj = records.pop()
|
||||||
|
normalCanvasState.push(obj);
|
||||||
|
}else if(str == '' && normalCanvasState.length > 1){
|
||||||
|
obj = normalCanvasState.pop()
|
||||||
|
records.push(obj);
|
||||||
|
}else{
|
||||||
|
return
|
||||||
|
}
|
||||||
|
console.log(obj,context);
|
||||||
|
context.putImageData(obj, 0, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
onBeforeUnmount(()=>{
|
||||||
|
document.removeEventListener("keydown", kyeDown);
|
||||||
|
document.removeEventListener("keyup", KeyUp);
|
||||||
|
})
|
||||||
let copyImageDataBuff = (imgData)=>{
|
let copyImageDataBuff = (imgData)=>{
|
||||||
var data = imgData.data,
|
var data = imgData.data,
|
||||||
imgDataBuff = [];
|
imgDataBuff = [];
|
||||||
|
|||||||
@@ -222,12 +222,12 @@ const userHabit : Module<UserHabit,RootState> = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
state.userDetail.email = data.email?data.email:'------'
|
state.userDetail.email = data.email?data.email:'------'
|
||||||
let current = Math.floor(Date.now() / 1000);
|
let current = Math.floor(Date.now() );
|
||||||
let timeData
|
let timeData
|
||||||
if(data.expireTime){
|
if(data.validEndTime){
|
||||||
timeData = {
|
timeData = {
|
||||||
isExpiration:current<data.expireTime,
|
isExpiration:current<data.validEndTime,
|
||||||
text:new Date(parseInt(String(data.expireTime*1000))).toLocaleDateString()
|
text:new Date(parseInt(String(data.validEndTime))).toLocaleDateString()
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
timeData = {
|
timeData = {
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ axios.interceptors.response.use((res) =>{
|
|||||||
} else if(res.data.errCode === 2){
|
} else if(res.data.errCode === 2){
|
||||||
return Promise.reject(res.data);
|
return Promise.reject(res.data);
|
||||||
}else if(res.data.errCode === -1){
|
}else if(res.data.errCode === -1){
|
||||||
|
console.log(23);
|
||||||
message.error(res.data.errMsg)
|
message.error(res.data.errMsg)
|
||||||
return Promise.reject(res.data);
|
return Promise.reject(res.data);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -349,7 +349,11 @@ export default defineComponent({
|
|||||||
'userDetail.email':{
|
'userDetail.email':{
|
||||||
handler(newVal, oldVal){
|
handler(newVal, oldVal){
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
if(newVal == '-------------')this.setBindEmail()//如果没有绑定邮箱就弹窗
|
if(newVal == '-------------'){
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.setBindEmail()//如果没有绑定邮箱就弹窗
|
||||||
|
},1000)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
immediate: true
|
immediate: true
|
||||||
|
|||||||
@@ -127,6 +127,11 @@
|
|||||||
)">
|
)">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="content_img_block" v-show="showDesignMark">
|
||||||
|
<div class="content_img_flex" >
|
||||||
|
<img class="content_img" src="@/assets/images/homePage/loading.gif" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<!-- </draggable> -->
|
<!-- </draggable> -->
|
||||||
<div class="content_img_block" :style="collStyle" v-for="(
|
<div class="content_img_block" :style="collStyle" v-for="(
|
||||||
design, index
|
design, index
|
||||||
@@ -151,12 +156,7 @@
|
|||||||
">
|
">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_img_block" v-show="showDesignMark">
|
|
||||||
<div class="content_img_flex" >
|
|
||||||
<!-- <img class="content_img" v-lazy="''" /> -->
|
|
||||||
<img class="content_img" src="@/assets/images/homePage/loading.gif" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -708,7 +708,6 @@ export default defineComponent({
|
|||||||
objectSignList:data.requestIdList.join(),
|
objectSignList:data.requestIdList.join(),
|
||||||
requestId:rv
|
requestId:rv
|
||||||
}
|
}
|
||||||
this.store.commit("setDesignCollectionList",[]);
|
|
||||||
this.getDesignResult(value,'newDesign')
|
this.getDesignResult(value,'newDesign')
|
||||||
this.startDesignType = "design";
|
this.startDesignType = "design";
|
||||||
}
|
}
|
||||||
@@ -736,7 +735,7 @@ export default defineComponent({
|
|||||||
const item = arr[index];
|
const item = arr[index];
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.designCollectionList.push(item)
|
this.designCollectionList.unshift(item)
|
||||||
resolve('')
|
resolve('')
|
||||||
}, 200);
|
}, 200);
|
||||||
})
|
})
|
||||||
@@ -802,7 +801,6 @@ export default defineComponent({
|
|||||||
requestId:rv
|
requestId:rv
|
||||||
}
|
}
|
||||||
this.getDesignResult(value,'resDesign')
|
this.getDesignResult(value,'resDesign')
|
||||||
this.store.commit("setDesignCollectionList",[]);
|
|
||||||
this.startDesignType = "resDesign";
|
this.startDesignType = "resDesign";
|
||||||
this.isShowMark = false
|
this.isShowMark = false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user