This commit is contained in:
X1627315083
2024-12-18 17:38:43 +08:00
90 changed files with 3220 additions and 865 deletions

View File

@@ -166,7 +166,6 @@ import { Https } from "@/tool/https";
import GO from "@/tool/GO";
import { defineComponent, h,ref,inject, nextTick } from 'vue'
import { LoadingOutlined } from '@ant-design/icons-vue';
import {getCookie} from '@/tool/cookie'
import {getUploadUrl,rgbToHsv,isMoible} from '@/tool/util'
import {useStore} from 'vuex'
import ColorThief from '@/tool/colorthief/colorthief'
@@ -351,7 +350,6 @@ export default defineComponent({
level1Type:'Moodboard',
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
},
token:'',
uploadUrl:'',
store:useStore(),
colorPickerVisible: true,
@@ -361,7 +359,6 @@ export default defineComponent({
},
mounted(){
nextTick(()=>{
this.token = getCookie('token') || ''
this.uploadUrl = getUploadUrl()
})

View File

@@ -178,7 +178,7 @@
<label class="uploadImage">
<i class="fi fi-br-upload" ></i>
<input type="file" @change="uploadImage">
<input type="file" @change="uploadImage" accept="image/*">
</label>
<i class="icon iconfont" @click="setOperation('text')" :class="{active:operation == 'text'}">T</i>
<i class="icon iconfont icon-IC-yehua" @click="setLiquefaction()"></i>
@@ -302,7 +302,7 @@
</div>
</template>
<script>
import {defineComponent, computed, h, ref, nextTick, inject, reactive, onMounted,
import {defineComponent, computed, h, ref, nextTick, inject, reactive, onMounted,onBeforeUnmount
} from "vue";
import { Https } from "@/tool/https";
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
@@ -734,6 +734,7 @@ export default defineComponent({
imgUrl = data.designOutfitUrl;
imgWidth[key] = setImageWidth(key,img);
}
if(key == 'upImgFiles')imgWidth[key] = setImageWidth(key,img);
let url = imgUrl.split('?')[0]
var match = url.match(/:(\d+)\/(.*)/);
@@ -1197,8 +1198,10 @@ export default defineComponent({
// let brushwork = ref('')
// 监听键盘的 keydown 和 keyup 事件
let keyDown = []
let oldOperation = ''
let canvasKeyDown = (event) => {
if(keyDown.indexOf(event.key)>-1){
event.preventDefault();
if(keyDown.indexOf(event.code)>-1){
}else{
keyDown.push(event.code)
if(event.key === 'Enter' && operation.value == 'fold'){
@@ -1213,13 +1216,54 @@ export default defineComponent({
copy()
}else if(keyDown.indexOf('ControlLeft') > -1 && keyDown.indexOf('KeyV') > -1){
paste()
}else if(keyDown.indexOf('BracketLeft') > -1){
let width = canvasPencilWidth.value[operation.value]
console.log(width);
canvasPencilWidth.value[operation.value] = (width - 5) < 3?3:(width - 5)
console.log(canvasPencilWidth.value[operation.value]);
setPencilWidth()
}else if(keyDown.indexOf('BracketRight') > -1){
let width = canvasPencilWidth.value[operation.value]
canvasPencilWidth.value[operation.value] = (width + 5) > 50?50:(width + 5)
setPencilWidth()
}else if(keyDown.indexOf('KeyI') > -1){
getColor()//吸色
}else if(keyDown.indexOf('ControlLeft') > -1 && keyDown.indexOf('KeyD') > -1){
canvas.discardActiveObject().renderAll();
}else if(keyDown.indexOf('ControlLeft') > -1 && keyDown.indexOf('KeyO') > -1){
let input = document.querySelector('.uploadImage input')
input.click()
}else if(keyDown.indexOf('Backquote') > -1){
if(operation.value == 'pencil' || operation.value == 'texture'){
oldOperation = operation.value
setOperation('eraser')
}
}
}
}
let getColor = async ()=>{
try {
const dropper = new EyeDropper();
const result = await dropper.open();
let hex = result.sRGBHex.replace("#", "");
// 将十六进制颜色码拆分成红、绿、蓝三个部分
// const r = parseInt(hex.substring(0, 2), 16);
// const g = parseInt(hex.substring(2, 4), 16);
// const b = parseInt(hex.substring(4, 6), 16);
canvasPencilColor.value = result.sRGBHex;
setPencilColor()
} catch (e) {
message.info(this.t('ColorboardUpload.jsContent1'))
}
}
let canvasKeyUp = (event) =>{
keyDown = keyDown.filter(function(item) {
return event.code !== item;
})
if(event.code == 'Backquote' && oldOperation){
setOperation(oldOperation)
oldOperation = ''
}
}
let setCanvasKeyDown = (event)=>{
// let e = event || window.event
@@ -1378,6 +1422,7 @@ export default defineComponent({
Https.axiosPost(Https.httpUrls.canvasElementUpload, formData,config).then((rv)=>{
rv.imgUrl = rv.minioUrl
fabric.Image.fromURL(rv.minioUrl,(img) => {
console.log(canvas.wrapperEl.parentNode.scrollTop);
setCanvasImage(img,"upImgFiles",0,canvas.wrapperEl.parentNode.scrollTop,rv)
canvas.add(img);
},{ crossOrigin: "Anonymous" })
@@ -1570,6 +1615,7 @@ export default defineComponent({
setFontFamily()
return
}
console.log(canvasPencilColor.value);
// brushIndicator.fill = canvasPencilColor.value;
if(canvas.freeDrawingBrush.isEraser){
}else{
@@ -2061,6 +2107,10 @@ export default defineComponent({
fontFamily.value = arr[0].value
});
onBeforeUnmount(()=>{
document.removeEventListener("keydown", setCanvasKeyDown);
document.removeEventListener("keyup", clearCanvasKeyDown);
})
return {
toSvg,
t,

View File

@@ -127,8 +127,27 @@
@click.stop=""
v-model="searchPictureName"
></textarea>
<div v-show="!isGenerate" class="generage_btn started_btn" :class="{Guide_1_2_8:type_.type2 == 'Printboard'}" @click.stop="getgenerate">
{{ $t('Generate.Generate') }}
<div class="generage_btn_box" v-show="!isGenerate">
<div class="generage_btn started_btn">
<div :class="{Guide_1_2_8:type_.type2 == 'Printboard'}" @click.stop="getgenerate">
<span
v-if="
type_.type2 == 'Moodboard' ||
(type_.type2 == 'Printboard' && scene?.value == 'Pattern') ||
(type_.type2 == 'Sketchboard' && scene?.value == 'generate')"
>
{{ speedData.label }}
</span>
<span v-else>{{ $t('Generate.Generate') }}</span>
</div>
<div class="icon iconfont icon-xiala" v-show="
type_.type2 == 'Moodboard' ||
(type_.type2 == 'Printboard' && scene?.value == 'Pattern') ||
(type_.type2 == 'Sketchboard' && scene?.value == 'generate')" :class="{active:speedState}" @click.stop="openSpeed"></div>
</div>
<div class="content" v-show="speedState">
<div v-for="item in speedList" :key="item.value" @click="setSpeed(item)" :title="item.title">{{ item.label }}</div>
</div>
</div>
<div v-show="isGenerate && !remGenerate" class="generage_btn started_btn" :class="{Guide_1_2_8:type_.type2 == 'Printboard'}" @click="getgenerate">
<i class="fi fi-br-loading"></i>
@@ -182,7 +201,7 @@
<script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue";
import { message, Upload, Modal } from "ant-design-vue";
import { defineComponent, computed, createVNode, h, ref,watch, nextTick, inject } from "vue";
import { defineComponent, computed, reactive, createVNode, h, ref,watch, nextTick, inject, toRefs } from "vue";
import { Https } from "@/tool/https";
import { useStore } from "vuex";
import GO from "@/tool/GO";
@@ -206,7 +225,9 @@ export default defineComponent({
props: ["msg",'sketchCatecoryList','scene'],
setup(props) {
// console.log(prop.msg);
let userDetail:any= computed(()=>{
return store.state.UserHabit.userDetail
})
let printModelList:any = ref([])
let sketchStyleList:any = ref([])
let printModel:any = ref({
@@ -234,7 +255,6 @@ export default defineComponent({
let driver__:any = inject('driver__')
let {t} = useI18n()
let isTest = ref()
let userInfo:any = {}
let generateTime:any = ref()
let generateProceedList:any = ref([])
let remGenerate:any = ref(false)
@@ -243,7 +263,39 @@ export default defineComponent({
let generateLevel2Type = ''
let isSloganHint:any = ref(' ')
let loadingShow =ref(false)
let speed = reactive({
speedList:[
{
title:'Picture quality is average, speed is fast',
label:'Low Quality',
value:'fast',
},{
title:'Picture quality is high, speed is slow',
label:'High Quality',
value:'high',
},
],
speedState:false,
speedData:{
title:'Picture quality is average, speed is fast',
label:'Low Quality',
value:'fast',
},
})
const openSpeed = ()=>{
speed.speedState = !speed.speedState
if(speed.speedState){
document.addEventListener('click',openSpeed)
}else{
document.removeEventListener('click',openSpeed)
}
}
const setSpeed = (item:any)=>{
speed.speedData = item
}
return {
userDetail,
searchPictureName,
searchPictureSeed,
store,
@@ -264,7 +316,6 @@ export default defineComponent({
driver__,
t,
isTest,
userInfo,
generateTime,
generateProceedList,
remGenerate,
@@ -273,6 +324,9 @@ export default defineComponent({
generateLevel2Type,
isSloganHint,
loadingShow,
...toRefs(speed),
openSpeed,
setSpeed,
};
},
data(prop) {
@@ -309,8 +363,6 @@ export default defineComponent({
// item.id_ = GO.id++
// })
// this.store.commit("addGenerateFils", this.fileList);
let userInfo:any = getCookie("userInfo")
this.userInfo = JSON.parse(userInfo);
this.token = getCookie("token") || "";
let isTest:any = getCookie('isTest')
this.isTest =JSON.parse(isTest)
@@ -322,17 +374,17 @@ export default defineComponent({
if(this.type_.type2 == 'Printboard'){
this.printModelList = [
{
num:'',
num:1,
optype:false,
value:'Painting Style',
label:useI18n().t('Generate.Model1')
},{
num:'',
num:2,
optype:false,
value:'Illustration Style',
label:useI18n().t('Generate.Model2')
},{
num:'',
num:3,
optype:false,
value:'Real Style',
label:useI18n().t('Generate.Model3')
@@ -340,7 +392,7 @@ export default defineComponent({
]
}else if(this.type_.type2 == 'Sketchboard'){
this.printModelList = JSON.parse(JSON.stringify(this.store.state.UserHabit.SketchStyle))
let imgList = ['/image/sketch/sketch-fine.jpg','/image/sketch/sketch-medium.jpg','/image/sketch/sketch-thick.jpg']
let imgList = ['/image/sketch/sketch-thick.jpg','/image/sketch/sketch-medium.jpg','/image/sketch/sketch-fine.jpg']
this.printModelList.forEach((item:any,index:number)=>{
item.img = imgList[index]
})
@@ -536,9 +588,9 @@ export default defineComponent({
level2Type:level2Type,
text:sloganText,
seed:this.searchPictureSeed,
userId:this?.userInfo?.userId,
userId:this?.userDetail?.userId,
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
version:1,//为1就是Print
version:this.speedData.value,//为1就是Print
isTestUser:this.driver__.driver?false:this.isTest,
gender:this.workspace.sexEnum.value,
sloganBase64:base64,
@@ -649,7 +701,7 @@ export default defineComponent({
}
let data = {
uniqueId:str,
userId:this?.userInfo?.userId,
userId:this?.userDetail?.userId,
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
type: type
}

View File

@@ -420,7 +420,6 @@ export default defineComponent({
(rv) => {
if (rv) {
this.userInfo.email = this.email;
setCookie("userInfo", JSON.stringify(this.userInfo));
(this.bindEmailVisible = false),
(this.bindEmailStep = 1);
this.clearTimer();

View File

@@ -85,7 +85,6 @@ export default defineComponent({
let record:any = ref([
])
const userInfo:any = {}
let bloodBars:any = ref(0)
let {t} = useI18n()
let isTest = ref()
@@ -95,6 +94,9 @@ export default defineComponent({
return store.state.Guide.guide
})
let driver__Time:any = ref()
let userDetail:any= computed(()=>{
return store.state.UserHabit.userDetail
})
return {
robotTop,
robotInput,
@@ -104,14 +106,14 @@ export default defineComponent({
robotChildDom,
timeTop,
timeInput,
userInfo,
bloodBars,
t,
isTest,
store,
workspace,
driver__,
driver__Time
driver__Time,
userDetail
};
},
data() {
@@ -171,10 +173,8 @@ export default defineComponent({
},
mounted() {
this.textScroll()
let userInfo:any = getCookie("userInfo")
let isTest:any = getCookie('isTest')
this.isTest =JSON.parse(isTest)
this.userInfo = JSON.parse(userInfo);
if (sessionStorage.getItem("record") == null) {
this.record = []
}else{
@@ -220,7 +220,7 @@ export default defineComponent({
this.createTimer()
},
getBloodBars(){
Https.axiosGet(Https.httpUrls.getBloodBars,{params:{userId:this?.userInfo?.userId}}).then((rv: any) => {
Https.axiosGet(Https.httpUrls.getBloodBars,{params:{userId:this?.userDetail?.userId}}).then((rv: any) => {
if (rv) {
if(rv <= 0){
rv = 0
@@ -277,7 +277,7 @@ export default defineComponent({
// sessionStorage.removeItem
let a = true
let data = {
"user_id" : this.userInfo?.userId,
"user_id" : this.userDetail?.userId,
"session_id":sessionId,
"message" : this.chatCentent,
gender:this.workspace.sexEnum.value,
@@ -386,7 +386,7 @@ export default defineComponent({
likeFile(item:any,imgIndex:number,index:number){
let data = {
...item,
"userId" : this.userInfo?.userId,
"userId" : this.userDetail?.userId,
}
Https.axiosPost(Https.httpUrls.pictureLikeOrUnLike, data).then(
(rv) => {

View File

@@ -221,7 +221,6 @@ export default defineComponent({
let {t} = useI18n()
let driver__:any = inject('driver__')
let isTest = ref()
let userInfo:any = {}
let useGenerate:any = ref({
imgId : '',
imgUrl:1,
@@ -249,7 +248,6 @@ export default defineComponent({
t,
driver__,
isTest,
userInfo,
useGenerate,
scene,
openMenu,
@@ -347,8 +345,6 @@ export default defineComponent({
}
},
mounted() {
let userInfo:any = getCookie("userInfo")
this.userInfo = JSON.parse(userInfo);
this.token = getCookie("token") || "";
let isTest:any = getCookie('isTest')
this.isTest =JSON.parse(isTest)

View File

@@ -28,9 +28,6 @@
<script lang="ts">
import { defineComponent, h, ref ,computed,reactive, nextTick} from "vue";
// import { Https } from "@/tool/https";
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
// import { getCookie } from "@/tool/cookie";
import { openGuide,driverObj__ } from "@/tool/guide";
// import domTurnImg from '@/tool/domTurnImg'

View File

@@ -87,8 +87,6 @@
<script>
import { defineComponent, ref, reactive, watch, onMounted, nextTick, toRefs } from "vue";
import { Https } from "@/tool/https";
import { formatTime } from "@/tool/util";
import { setCookie, getCookie } from "@/tool/cookie";
import { Modal, message } from "ant-design-vue";
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
import allOrder from "@/component/Pay/allOrder.vue";

View File

@@ -60,7 +60,6 @@ import { useStore } from "vuex";
import { Https } from "@/tool/https";
import { openGuide,driverObj__ } from "@/tool/guide";
import { getUploadUrl } from "@/tool/util";
import { getCookie } from "@/tool/cookie";
import { message, Upload, Modal } from "ant-design-vue";
export default defineComponent({
name:'filterComponent',
@@ -170,7 +169,6 @@ import { message, Upload, Modal } from "ant-design-vue";
level1Type: 'Sketchboard',
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
},
token: "",
uploadUrl: "",
type_: {
type1: "generate",
@@ -183,7 +181,6 @@ import { message, Upload, Modal } from "ant-design-vue";
},
mounted() {
this.uploadUrl = getUploadUrl();
this.token = getCookie("token") || "";
this.upload.gender = this.store?.state?.Workspace?.workspace?.sexEnum?.value
}
});

View File

@@ -40,7 +40,6 @@ import { Https } from "@/tool/https";
import { useRouter,useRoute } from 'vue-router'
import { Modal,message } from 'ant-design-vue';
import { useStore } from "vuex";
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
import { useI18n } from 'vue-i18n'
export default defineComponent({
components:{

View File

@@ -244,7 +244,6 @@
<script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue";
import { defineComponent,watch,createVNode, h, ref ,toRefs,computed,reactive,triggerRef, nextTick} from "vue";
// import { getCookie } from "@/tool/cookie";
import { Https } from "@/tool/https";
import { getCookie,setCookie } from "@/tool/cookie";
// import domTurnImg from '@/tool/domTurnImg'
@@ -268,6 +267,9 @@ export default defineComponent({
props: ['setTask'],
setup(props,{emit}) {
const store = useStore();
let userDetail:any= computed(()=>{
return store.state.UserHabit.userDetail
})
const {t} = useI18n()
const upload:any = ref({})
let driver__:any = computed(()=>{
@@ -610,12 +612,11 @@ export default defineComponent({
productImgData.isProductimg = false
productImgData.remProductimg= false
clearInterval(prductimgTime)
let userInfo:any = getCookie("userInfo")
if(generateProceedList){
// let str = generateProceedList.map((obj:any) => obj.taskId).join(',');
let str = generateProceedList.join(',')
let data = {
uniqueId:str,userId:JSON.parse(userInfo).userId,
uniqueId:str,userId:userDetail.value.userId,
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
type:productimgMenu.value.value,
}

View File

@@ -138,12 +138,11 @@
</template>
<script lang="ts">
import { defineComponent, h, ref ,toRefs,createVNode,reactive, nextTick} from "vue";
import { defineComponent, h, ref ,toRefs,createVNode,reactive, computed} from "vue";
import { Https } from "@/tool/https";
import { Modal } from "ant-design-vue";
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { downloadIamge } from "@/tool/util";
import { getCookie,setCookie } from "@/tool/cookie";
import { useI18n } from "vue-i18n";
import { useStore } from "vuex";
import generalMiniCanvas from "@/component/modules/generalMiniCanvas.vue";
@@ -170,6 +169,9 @@ export default defineComponent({
},
setup(props:any,{emit}) {
const store = useStore();
let userDetail:any= computed(()=>{
return store.state.UserHabit.userDetail
})
let {t} = useI18n()
let productimg = reactive({
isProductimg:false,
@@ -292,13 +294,12 @@ export default defineComponent({
productimg.productimgIsProductimg = false
productimg.productimgRemProductimg= false
clearInterval(prductimgTime)
let userInfo:any = getCookie("userInfo")
if(generateProceedList){
// let str = generateProceedList.map((obj:any) => obj.taskId).join(',');
let str = generateProceedList.join(',')
let data = {
uniqueId:str,
userId:JSON.parse(userInfo).userId,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
userId:userDetail.value.userId,
type:scaleImageList.value[scaleImageIndex.value]?.resultType
}
Https.axiosGet(Https.httpUrls.generateStopWaiting, {params:data}).then(

View File

@@ -53,12 +53,10 @@
<script lang="ts">
import { defineComponent,watch,createVNode, h, ref ,toRefs,computed,reactive,triggerRef, nextTick} from "vue";
// import { getCookie } from "@/tool/cookie";
import { message,Modal } from "ant-design-vue";
import { LoadingOutlined ,ExclamationCircleOutlined} from "@ant-design/icons-vue";
import { Https } from "@/tool/https";
import { getCookie,setCookie } from "@/tool/cookie";
// import domTurnImg from '@/tool/domTurnImg'
import { downloadIamge } from "@/tool/util";
import { useI18n } from "vue-i18n";