diff --git a/components.d.ts b/components.d.ts
index 27d9abac..fb059677 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -9,8 +9,10 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
ABadge: typeof import('ant-design-vue/es')['Badge']
+ ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb']
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
+ ADatePicker: typeof import('ant-design-vue/es')['DatePicker']
ADrawer: typeof import('ant-design-vue/es')['Drawer']
ADropdown: typeof import('ant-design-vue/es')['Dropdown']
AImage: typeof import('ant-design-vue/es')['Image']
@@ -24,9 +26,13 @@ declare module 'vue' {
ASelect: typeof import('ant-design-vue/es')['Select']
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
ASlider: typeof import('ant-design-vue/es')['Slider']
+ ASpace: typeof import('ant-design-vue/es')['Space']
ASpin: typeof import('ant-design-vue/es')['Spin']
+ ASubMenu: typeof import('ant-design-vue/es')['SubMenu']
ASwitch: typeof import('ant-design-vue/es')['Switch']
ATable: typeof import('ant-design-vue/es')['Table']
+ ATabPane: typeof import('ant-design-vue/es')['TabPane']
+ ATabs: typeof import('ant-design-vue/es')['Tabs']
AUpload: typeof import('ant-design-vue/es')['Upload']
ElCascader: typeof import('element-plus/es')['ElCascader']
RouterLink: typeof import('vue-router')['RouterLink']
diff --git a/src/component/Account/frontPage/bindPage.vue b/src/component/Account/frontPage/bindPage.vue
index 61e81949..7ec33f51 100644
--- a/src/component/Account/frontPage/bindPage.vue
+++ b/src/component/Account/frontPage/bindPage.vue
@@ -28,7 +28,7 @@
-
{{ $t('frontPage.BindNow') }}
+
{{ $t('frontPage.BindNow') }}
{{ $t('frontPage.Unbind') }}
@@ -276,7 +276,7 @@ export default defineComponent({
> .gallery_btn{
position: relative;
z-index: 2;
- pointer-events: none;
+
}
#g_id_bind{
position: absolute;
diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue
index 359f350a..39a2d0d1 100644
--- a/src/component/Canvas/CanvasEditor/index.vue
+++ b/src/component/Canvas/CanvasEditor/index.vue
@@ -468,13 +468,14 @@ onMounted(async () => {
// 使用window的resize事件代替ResizeObserver
// 只有当窗口大小变化时才更新画布尺寸
// window.addEventListener("resize", handleWindowResize);
-
if(props.config.initZoom) {
const width = canvasManager.width;
const height = canvasManager.height;
const cwidth = props.config.width;
const cheight = props.config.height;
- setZoom(Math.min(width/cwidth,height/cheight)); // 设置画布缩放
+ let zoom = Math.min(1,width/cwidth,height/cheight);
+ if(zoom < 1) zoom -= 0.05;
+ setZoom(zoom); // 设置画布缩放
}
});
@@ -540,20 +541,20 @@ function handleWindowResize() {
function resetZoom() {
canvasManager.resetZoom();
}
+
function setZoom(zoom) {
setTimeout(()=>{
if (!canvasManager) return;
- const newZoom = Math.max(zoom / 1.1, 0.1); // 减少10%,最小0.1倍
-
+ const newZoom = Math.max(zoom, 0.1); // 减少10%,最小0.1倍
// 使用画布中心作为缩放点
const centerPoint = {
x: canvasManager.canvas.width / 2,
y: canvasManager.canvas.height / 2,
};
-
canvasManager.animateZoom(centerPoint, newZoom);
})
}
+
function zoomIn() {
if (!canvasManager) return;
diff --git a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
index 0070d03a..a0abed05 100644
--- a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
@@ -811,7 +811,7 @@ export class CanvasManager {
* @param {Array} options.layerIdArray 导出多个图层ID数组
* @param {String} options.expPicType 导出图片类型 (png/jpg/svg)
* @param {Boolean} options.restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
- * @param {Boolean} options.isEnhanceImg 是否是增强图片
+ * @param {Boolean} options.isEnhanceImg 是否是增强图片
* @returns {String} 导出的图片数据URL
*/
async exportImage(options = {}) {
diff --git a/src/component/Canvas/CanvasEditor/managers/ExportManager.js b/src/component/Canvas/CanvasEditor/managers/ExportManager.js
index d9107e26..14bca2bd 100644
--- a/src/component/Canvas/CanvasEditor/managers/ExportManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/ExportManager.js
@@ -18,12 +18,12 @@ export class ExportManager {
* @param {Object} options 导出选项
* @param {Boolean} options.isContainBg 是否包含背景图层
* @param {Boolean} options.isContainFixed 是否包含固定图层
- * @param {Boolean} options.isCropByBg 是否使用背景大小裁剪
+ * @param {Boolean} options.isCropByBg 是否使用背景大小裁剪
* @param {String} options.layerId 导出具体图层ID
* @param {Array} options.layerIdArray 导出多个图层ID数组
* @param {String} options.expPicType 导出图片类型 (png/jpg/svg)
* @param {Boolean} options.restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
- * @param {Boolean} options.isEnhanceImg 是否是增强图片
+ * @param {Boolean} options.isEnhanceImg 是否是增强图片
* @returns {String} 导出的图片数据URL
*/
exportImage(options = {}) {
@@ -48,7 +48,7 @@ export class ExportManager {
isRedGreenMode,
restoreOpacityInRedGreen,
isCropByBg,
- isEnhanceImg,
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -62,7 +62,7 @@ export class ExportManager {
isRedGreenMode,
restoreOpacityInRedGreen,
isCropByBg,
- isEnhanceImg
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -74,7 +74,7 @@ export class ExportManager {
isRedGreenMode,
restoreOpacityInRedGreen,
isCropByBg,
- isEnhanceImg
+ isEnhanceImg, // 是否是增强图片
);
} catch (error) {
console.error("导出图片失败:", error);
@@ -98,7 +98,7 @@ export class ExportManager {
expPicType,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg,
+ isCropByBg, // 是否使用背景大小裁剪
isEnhanceImg, // 是否是增强图片
) {
if (!this.layerManager) {
@@ -127,7 +127,9 @@ export class ExportManager {
return this._exportWithRedGreenMode(
objectsToExport,
expPicType,
- restoreOpacityInRedGreen
+ restoreOpacityInRedGreen,
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -149,7 +151,7 @@ export class ExportManager {
* @param {Boolean} isContainFixed 是否包含固定图层
* @param {Boolean} isRedGreenMode 是否为红绿图模式
* @param {Boolean} restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
- * @param {Boolean} isCropByBg 是否根据背景裁剪
+ * @param {Boolean} isCropByBg 是否使用背景大小裁剪
* @param {Boolean} isEnhanceImg 是否是增强图片
* @returns {String} 图片数据URL
* @private
@@ -161,7 +163,7 @@ export class ExportManager {
isContainFixed,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg, // 是否根据背景裁剪
+ isCropByBg, // 是否使用背景大小裁剪
isEnhanceImg, // 是否是增强图片
) {
if (!this.layerManager) {
@@ -194,7 +196,7 @@ export class ExportManager {
objectsToExport,
expPicType,
restoreOpacityInRedGreen,
- isCropByBg, // 是否根据背景裁剪
+ isCropByBg, // 是否使用背景大小裁剪
isEnhanceImg, // 是否是增强图片
);
}
@@ -206,7 +208,7 @@ export class ExportManager {
* @param {Boolean} isContainFixed 是否包含固定图层
* @param {Boolean} isRedGreenMode 是否为红绿图模式
* @param {Boolean} restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
- * @param {Boolean} isCropByBg 是否根据背景裁剪
+ * @param {Boolean} isCropByBg 是否使用背景大小裁剪
* @param {Boolean} isEnhanceImg 是否是增强图片
* @returns {String} 图片数据URL
* @private
@@ -217,8 +219,8 @@ export class ExportManager {
isContainFixed,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg,
- isEnhanceImg
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
) {
// 按图层顺序收集对象(从底到顶)
const objectsToExport = this._collectObjectsByLayerOrder(
@@ -272,7 +274,7 @@ export class ExportManager {
expPicType,
restoreOpacityInRedGreen,
canvasClipPath,
- isCropByBg, // 是否根据背景裁剪
+ isCropByBg, // 是否使用背景大小裁剪
isEnhanceImg, // 是否是增强图片
);
}
@@ -635,7 +637,7 @@ export class ExportManager {
objectsToExport,
expPicType,
restoreOpacityInRedGreen,
- maskObject,
+ maskObject, // 裁剪对象
isCropByBg, // 是否使用背景大小裁剪
isEnhanceImg, // 是否是增强图片
) {
@@ -656,7 +658,7 @@ export class ExportManager {
trimWhitespace: true, // 裁剪空白
trimPadding: 0, // 裁剪边距
restoreOpacityInRedGreen,
- isCropByBg, // 是否根据背景裁剪
+ isCropByBg, // 是否使用背景大小裁剪
isEnhanceImg, // 是否是增强图片
});
diff --git a/src/component/Canvas/CanvasEditor/utils/selectionToImage.js b/src/component/Canvas/CanvasEditor/utils/selectionToImage.js
index 70c6920f..2f518624 100644
--- a/src/component/Canvas/CanvasEditor/utils/selectionToImage.js
+++ b/src/component/Canvas/CanvasEditor/utils/selectionToImage.js
@@ -42,7 +42,7 @@ export const createRasterizedImage = async ({
clippingObject,
isReturenDataURL,
selectionManager, // 传递选区管理器
- isEnhanceImg, // 是否是增强图片
+ isEnhanceImg, // 是否是增强图片
});
}
@@ -83,7 +83,7 @@ const createClippedObjects = async ({
clippingObject,
isReturenDataURL,
selectionManager = null, // 新增选区管理器参数
- isEnhanceImg, // 是否是增强图片
+ isEnhanceImg, // 是否是增强图片
}) => {
try {
console.log("🎯 使用新的图像遮罩裁剪方法创建对象");
@@ -113,7 +113,7 @@ const createClippedObjects = async ({
clippingObject,
selectionBounds: optimizedBounds, // 使用优化后的边界框
featherAmount,
- isEnhanceImg, // 是否是增强图片
+ isEnhanceImg, // 是否是增强图片
});
}
@@ -124,7 +124,7 @@ const createClippedObjects = async ({
clippingObject,
selectionBounds: optimizedBounds, // 使用优化后的边界框
featherAmount,
- isEnhanceImg, // 是否是增强图片
+ isEnhanceImg, // 是否是增强图片
});
// 将DataURL转换为fabric.Image对象
@@ -178,7 +178,7 @@ const createClippedDataURLByCanvas = async ({
clippingObject,
selectionBounds,
featherAmount = 0,
- isEnhanceImg = false, // 是否是增强图片
+ isEnhanceImg = false, // 是否是增强图片
}) => {
try {
console.log("🖼️ 使用图像遮罩裁剪方法生成DataURL");
@@ -192,7 +192,7 @@ const createClippedDataURLByCanvas = async ({
// 使用高分辨率以保证质量
const pixelRatio = window.devicePixelRatio || 1;
const qualityMultiplier = !!isEnhanceImg ? Math.max(2, pixelRatio) : 1;
-
+
console.log("使用高分辨率以保证质量:" + isEnhanceImg, optimizedBounds);
const canvasWidth = Math.ceil(optimizedBounds.width * qualityMultiplier);
@@ -463,7 +463,7 @@ const createLegacyRasterization = async ({
quality,
format,
isReturenDataURL,
- isCropByBg, // 是否根据背景裁剪
+ isCropByBg, // 是否根据背景裁剪
isEnhanceImg, // 是否是增强图片
}) => {
console.log("⚠️ 使用兼容的离屏渲染方法");
@@ -491,7 +491,7 @@ const createLegacyRasterization = async ({
format,
currentZoom,
isReturenDataURL,
- isCropByBg, // 是否根据背景裁剪
+ isCropByBg, // 是否根据背景裁剪
isEnhanceImg, // 是否是增强图片
});
};
diff --git a/src/component/Detail/DesignDetail.vue b/src/component/Detail/DesignDetail.vue
index 4c18d58e..0da7011a 100644
--- a/src/component/Detail/DesignDetail.vue
+++ b/src/component/Detail/DesignDetail.vue
@@ -167,61 +167,64 @@ export default defineComponent({
}
const showDesignDetailModal = (data:any,str:any)=>{
- // let url = Https.httpUrls.getDesignDetail + `?designItemId=${77770}&designPythonOutfitId=${77423}`
- let url = Https.httpUrls.getDesignDetail + `?designItemId=${data.design.designItemId}&designPythonOutfitId=${data.design.designOutfitId}`
- detailData.loadingShow = true
- Https.axiosGet(url).then(
- async (rv: any) => {
- store.commit('DesignDetail/setDesignDetail',rv)
- rv.clothes.forEach((item:any)=>{
- let a
- item.designType='Library'
- if(item.layersObject[0].imageCategory.indexOf("back") == -1){
- a = item.layersObject[0]
- item.layersObject[0] = item.layersObject[1]
- item.layersObject[1] = a
- }
- if(item.color){
- item.color.rgba = {
- r:item.color.r,
- g:item.color.g,
- b:item.color.b,
+ return new Promise
((resolve, reject) => {
+ store.commit('DesignDetail/clearDetailData')
+ // let url = Https.httpUrls.getDesignDetail + `?designItemId=${77770}&designPythonOutfitId=${77423}`
+ let url = Https.httpUrls.getDesignDetail + `?designItemId=${data.design.designItemId}&designPythonOutfitId=${data.design.designOutfitId}`
+ detailData.loadingShow = true
+ Https.axiosGet(url).then(
+ async (rv: any) => {
+ store.commit('DesignDetail/setDesignDetail',rv)
+ rv.clothes.forEach((item:any)=>{
+ let a
+ item.designType='Library'
+ if(item.layersObject[0].imageCategory.indexOf("back") == -1){
+ a = item.layersObject[0]
+ item.layersObject[0] = item.layersObject[1]
+ item.layersObject[1] = a
}
- }else{
- item.color = {
- // rgba:{
- // r:undefined,
- // g:undefined,
- // b:undefined,
- // }
+ if(item.color){
+ item.color.rgba = {
+ r:item.color.r,
+ g:item.color.g,
+ b:item.color.b,
+ }
+ }else{
+ item.color = {
+ // rgba:{
+ // r:undefined,
+ // g:undefined,
+ // b:undefined,
+ // }
+ }
}
- }
- if(item.gradient){
- item.color.gradient = item.gradient
- }
- if(item.printObject.prints == null)item.printObject.prints = []
- item.printObject.prints.forEach((element:any) => {
- if(!element.designType){
- element.designType = 'Library'
+ if(item.gradient){
+ item.color.gradient = item.gradient
}
- });
- })
- detailData.singleOveral.value = rv.singleOverall
- detailData.designDetailShow = true
- // this.deleteShow = false
- initialize()
- setRevocation()
- detailData.loadingShow = false
- if(rv.singleOverall == "single"){
- console.log(rv.clothes)
- store.commit('DesignDetail/setDesignColthes',rv.clothes[0].id)
+ if(item.printObject.prints == null)item.printObject.prints = []
+ item.printObject.prints.forEach((element:any) => {
+ if(!element.designType){
+ element.designType = 'Library'
+ }
+ });
+ })
+ detailData.singleOveral.value = rv.singleOverall
+ detailData.designDetailShow = true
+ // this.deleteShow = false
+ initialize()
+ setRevocation()
+ detailData.loadingShow = false
+ if(rv.singleOverall == "single"){
+ store.commit('DesignDetail/setDesignColthes',rv.clothes[0].id)
+ }
+ resolve(rv)
}
-
- }
-
- ).catch(rv=>{
- detailData.loadingShow = false
- })
+ ).catch(rv=>{
+ detailData.loadingShow = false
+ resolve(rv)
+ })
+ })
+
}
const initialize = ()=>{//design后初始化
@@ -299,7 +302,6 @@ export default defineComponent({
// 0.35822305
// ]
let isCurrent = list[i].id == detailData?.selectDetail?.id
- console.log(isCurrent,newData)
let color = (detailData.currentDetailType == 'color' && isCurrent && !detailData.isEditPattern.value)?
(newData?.rgba?.r?`${newData.rgba.r} ${newData.rgba.g} ${newData.rgba.b}`:''):
(list[i].color?.rgba?.r?
@@ -380,6 +382,7 @@ export default defineComponent({
delete detailData.designDetail.newModel
store.commit('DesignDetail/setPraeview',value)
detailData.loadingShow = false
+ canvasReload()
// setRevocation()
}).catch(res=>{
detailData.loadingShow = false
diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue
index 3b53ff1f..9d3d59cc 100644
--- a/src/component/Detail/canvas/index.vue
+++ b/src/component/Detail/canvas/index.vue
@@ -257,7 +257,6 @@ export default defineComponent({
detailData.isShowMark = true
}
const index = detailData.designDetail.clothes.findIndex(item => item.id === detailData.selectDetail.id);
- console.log(index,detailData.selectDetail.id)
await new Promise((resolve, reject) => {
if(!detailDom?.editCanvas)return resolve()
let canvasJSON = detailDom?.editCanvas?.getJSON()
@@ -302,8 +301,7 @@ export default defineComponent({
if(front?.oldImageUrl)front.imageUrl = front.oldImageUrl
if(front?.oldMaskUrl)front.maskUrl = front.oldMaskUrl
if(back?.oldImageUrl)back.imageUrl = back.oldImageUrl
- console.log(front)
- if(front?.oldMaskUrl)store.commit('DesignDetail/updataDetailItem',{maskUrl:front.oldMaskUrl})
+ if(front?.oldMaskUrl)store.commit('DesignDetail/updataDetailItem',{maskUrl:front.maskUrl})
sessionStorage.removeItem('frontBackEdit');
sessionStorage.removeItem('sketchEdit');
diff --git a/src/component/Detail/detailRight/editPrintElement.vue b/src/component/Detail/detailRight/editPrintElement.vue
index 23ffa117..3f776923 100644
--- a/src/component/Detail/detailRight/editPrintElement.vue
+++ b/src/component/Detail/detailRight/editPrintElement.vue
@@ -334,7 +334,7 @@ export default defineComponent({
}
if(!editPrintElementData.selectDetail.printObject.prints)return
let state = true
- editPrintElementData.stateOverallSingle = 'single'
+ // editPrintElementData.stateOverallSingle = 'single'
let arr:any = editPrintElementData.selectDetail.printObject.prints
if(props.type == 'element'){
arr = editPrintElementData.selectDetail.trims.prints
@@ -344,7 +344,7 @@ export default defineComponent({
}
if(arr && arr.length > 0){
arr.forEach((item:any)=>{
- if(!item.ifSingle){
+ if(!item.ifSingle && arr.length == 1){
editPrintElementData.stateOverallSingle = 'overall',
state = false
}
diff --git a/src/component/Detail/model/modelNav.vue b/src/component/Detail/model/modelNav.vue
index 4c565ffe..3e924ebf 100644
--- a/src/component/Detail/model/modelNav.vue
+++ b/src/component/Detail/model/modelNav.vue
@@ -71,31 +71,31 @@ export default defineComponent({
},{immediate:true})
const selectDetailItem = (item:any,index:number)=>{
new Promise((resolve, reject) => {
- // if(detailData.isEditPattern.value &&
- // detailData.selectDetail?.id &&
- // detailData?.getCanvasIfEdit?.fun&&detailData?.getCanvasIfEdit?.fun() > 0
- // ){
- // Modal.confirm({
- // title: t('collectionModal.jsContent2'),
- // icon: createVNode(ExclamationCircleOutlined),
- // okText: 'Yes',
- // cancelText: 'No',
- // mask:false,
- // centered:true,
- // onOk() {
- // resolve(true)
- // emit('canvasReload')
- // },
- // onCancel(){
- // resolve(false)
- // }
- // });
- // }else{
+ if(detailData.isEditPattern.value &&
+ detailData.selectDetail?.id &&
+ detailData?.getCanvasIfEdit?.fun&&detailData?.getCanvasIfEdit?.fun() > 0
+ ){
+ Modal.confirm({
+ title: t('collectionModal.jsContent6'),
+ icon: createVNode(ExclamationCircleOutlined),
+ okText: 'Yes',
+ cancelText: 'No',
+ mask:false,
+ centered:true,
+ onOk() {
+ resolve(true)
+ emit('canvasReload')
+ },
+ onCancel(){
+ resolve(false)
+ }
+ });
+ }else{
resolve(true)
if(detailData.selectDetail.id !== item.id){
emit('canvasReload')
}
- // }
+ }
}).then((rv)=>{
if(rv)store.commit('DesignDetail/setDesignColthes',item.id)
})
diff --git a/src/component/Detail/model/modelPosition.vue b/src/component/Detail/model/modelPosition.vue
index e57e5df3..c3ad850a 100644
--- a/src/component/Detail/model/modelPosition.vue
+++ b/src/component/Detail/model/modelPosition.vue
@@ -4,7 +4,7 @@
-
+
@@ -239,38 +239,41 @@ export default defineComponent({
// }
}
const itemMoveMousedown = async (index:any,e:any)=>{
+ if(detailData.selectDetail.id != detailData.frontBack.front[index].id)return
let isOpen = false
let isModal = false
await new Promise((resolve, reject) => {
- if(
- detailData.isEditPattern.value &&
- selectItem.selectDetail?.id &&
- (detailData.frontBack.front[index].id != selectItem.selectDetail.id)
- ){
- isModal = true
- Modal.confirm({
- title: t('collectionModal.jsContent2'),
- icon: createVNode(ExclamationCircleOutlined),
- okText: 'Yes',
- cancelText: 'No',
- mask:false,
- centered:true,
- onOk() {
- resolve(true)
- isOpen = true
- },
- onCancel(){
- resolve(false)
- isOpen = false
- }
- });
- }else{
- if(detailData.frontBack.front[index].id != selectItem.selectDetail.id){
- isOpen = true
- }
- resolve(true)
- isModal = false
- }
+ // if(
+ // detailData.isEditPattern.value &&
+ // selectItem.selectDetail?.id &&
+ // (detailData.frontBack.front[index].id != selectItem.selectDetail.id)
+ // ){
+ // isModal = true
+ // Modal.confirm({
+ // title: t('collectionModal.jsContent2'),
+ // icon: createVNode(ExclamationCircleOutlined),
+ // okText: 'Yes',
+ // cancelText: 'No',
+ // mask:false,
+ // centered:true,
+ // onOk() {
+ // resolve(true)
+ // isOpen = true
+ // },
+ // onCancel(){
+ // resolve(false)
+ // isOpen = false
+ // }
+ // });
+ // }else{
+ // if(detailData.frontBack.front[index].id != selectItem.selectDetail.id){
+ // isOpen = true
+ // }
+ // resolve(true)
+ // isModal = false
+ // }
+ resolve(true)
+ isOpen = true
}).then((rv)=>{
})
if(isOpen){
diff --git a/src/component/HomePage/bindEmail.vue b/src/component/HomePage/bindEmail.vue
index 7ffd5464..409e5fe6 100644
--- a/src/component/HomePage/bindEmail.vue
+++ b/src/component/HomePage/bindEmail.vue
@@ -365,7 +365,7 @@ export default defineComponent({
title:this.selectSex,
surname:this.surname,
givenName:this.givenName,
- userId:this.userDetail.userId,
+ userId:this.userDetail?.userId,
};
if(this.loginTime){
this.loginTime = false
diff --git a/src/component/home/design/collection/MoodboardUpload.vue b/src/component/home/design/collection/MoodboardUpload.vue
index 0b04d394..93d3ad27 100644
--- a/src/component/home/design/collection/MoodboardUpload.vue
+++ b/src/component/home/design/collection/MoodboardUpload.vue
@@ -339,7 +339,7 @@ export default defineComponent({
},
deleteFile(item: any) {
- if(item.type_.type1 == 'generate' || item.type_.type1 == 'material'){
+ if(item?.type_?.type1 == 'generate' || item?.type_?.type1 == 'material'){
item.jsContent1 = this.t('uploadFile.jsContent1',{maxImg:8})
item.state = 'delete'
this.store.commit("addGenerateMaterialFils", item);
diff --git a/src/component/home/design/collection/PrintboardUpload.vue b/src/component/home/design/collection/PrintboardUpload.vue
index e92add64..d1d37d96 100644
--- a/src/component/home/design/collection/PrintboardUpload.vue
+++ b/src/component/home/design/collection/PrintboardUpload.vue
@@ -385,7 +385,7 @@ export default defineComponent({
deleteFile(item:any){
// this.fileList.splice(item, 1)
// this.store.commit('setPrintboardFile',this.fileList)
- if(item.type_.type1 == 'generate' || item.type_.type1 == 'material'){
+ if(item?.type_?.type1 == 'generate' || item?.type_?.type1 == 'material'){
item.jsContent1 = this.t('uploadFile.jsContent1',{maxImg:16})
item.state = 'delete'
this.store.commit("addGenerateMaterialFils", item);
@@ -610,7 +610,6 @@ export default defineComponent({
}
this.fileList.push(data)
}
- console.log(this.fileList)
this.store.commit('setPrintboardFile',this.fileList)
},
diff --git a/src/component/home/design/collection/more.vue b/src/component/home/design/collection/more.vue
index a912c326..1c77c9ce 100644
--- a/src/component/home/design/collection/more.vue
+++ b/src/component/home/design/collection/more.vue
@@ -124,6 +124,14 @@ export default defineComponent({
designType:props.item.resData.designType,
}
}else{
+ rv.imgUrl = rv.url
+ rv.category = props.item.category
+ rv.categoryValue = props.item.categoryValue
+ rv.resData = {
+ id:rv.id,
+ url:rv.url,
+ designType:props.item.resData.designType,
+ }
props.list.unshift(rv)
}
}
diff --git a/src/component/home/design/index.vue b/src/component/home/design/index.vue
index afbb8946..7999a1ef 100644
--- a/src/component/home/design/index.vue
+++ b/src/component/home/design/index.vue
@@ -2129,13 +2129,14 @@ export default defineComponent({
type: string
) {
// if()
- if(this.isMove)return
+ if(this.isMove || this.isShowMark)return
this.store.commit('setOpenChatStatus',false)
if(design.resultType != "Design"){
this.selectEditBtn = design
this.setEditDesignType(collectionList,index,design.resultType,'edit',type)
return
}
+ this.isShowMark = true
design.designOutfitId = design.designPythonOutfitId?design.designPythonOutfitId:design.designOutfitId
let data = {
design: design,
@@ -2146,7 +2147,9 @@ export default defineComponent({
this.detailDestroy = true
nextTick(()=>{
let designDetail: any = this.$refs.designDetail;
- designDetail.showDesignDetailModal(data);
+ designDetail.showDesignDetailModal(data).then(()=>{
+ this.isShowMark = false
+ })
})
},
diff --git a/src/lang/cn.ts b/src/lang/cn.ts
index 16463cb9..28913e24 100644
--- a/src/lang/cn.ts
+++ b/src/lang/cn.ts
@@ -583,6 +583,7 @@ export default {
jsContent2: "上传的文件不会保存,是否继续? ",
jsContent3: "您必须选择一种或多种颜色进行下一步。",
jsContent5: "我们检测到您的({str})上的PIN数量超过了八个,这可能会导致一些已钉住的项目未被使用。您是否仍要继续?",
+ jsContent6: "画布内容没有保存,请点击预保存后继续。",
},
DesignDetail: {
Details: "详情",
diff --git a/src/lang/en.ts b/src/lang/en.ts
index 720d4f63..3d374a36 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -583,6 +583,7 @@ export default {
jsContent2: "The uploaded files will not be saved, being sure to continue? ",
jsContent3: "You must choose one or more colors for further process.",
jsContent5: "We've detected that the number of pins on your ({str}) exceeds eight, which may result in some pinned items not being used. Would you like to continue anyway?",
+ jsContent6: 'The content on the canvas has not been saved. Please click "Preview" to continue.',
},
DesignDetail: {
Details: "Details",
diff --git a/src/store/Detail/designDetail.ts b/src/store/Detail/designDetail.ts
index 23f7b844..23c265e2 100644
--- a/src/store/Detail/designDetail.ts
+++ b/src/store/Detail/designDetail.ts
@@ -28,7 +28,21 @@ const DesignDetail : Module = {
currentPrintElement:null,
},
mutations:{
+ clearDetailData(state){
+ state.designDetail = null
+ state.designPreviewData = {}
+ state.frontBack = {
+ front:[],
+ back:[],
+ body:{},
+ }
+ state.selectDetail = null
+ state.printZIndex = -1
+ state.currentDetailType = ''
+ state.currentPrintElement = null
+ },
setDesignDetail(state,data){
+ console.log(data)
if(data.others.length > 0 && data.others[0].type == "Body"){
state.frontBack.body = data.others[0]
}
@@ -255,7 +269,7 @@ const DesignDetail : Module = {
})
if(state.currentDetailType != 'models'){
state.selectDetail.change = item.change
- if(state.selectDetail?.newDetail?.color){
+ if(state.selectDetail?.newDetail?.color && currentType != 'color'){
state.selectDetail.color = state.selectDetail?.newDetail?.color
state.selectDetail.newDetail.color = null
}
@@ -272,12 +286,20 @@ const DesignDetail : Module = {
state.selectDetail.printObject = item.printObject
state.selectDetail.trims = item.trims
state.selectDetail.type = item.type
+ state.selectDetail.color = {
+ ...item.color,
+ rgba:{
+ r:item.color?.r,
+ g:item.color?.g,
+ b:item.color?.b,
+ }
+ }
state.selectDetail.undividedLayer = item.undividedLayer
if(state.selectDetail.newDetail?.sketch?.id && !state.selectDetail.id){
state.designDetail.clothes.push(state.selectDetail)
}
state.selectDetail.id = item.id
- if(currentType)if(state.selectDetail.newDetail?.[currentType])delete state.selectDetail.newDetail[currentType]
+ if(currentType)if(state.selectDetail.newDetail?.[currentType] && currentType != 'color')delete state.selectDetail.newDetail[currentType]
}
}
if(value.fun)value.fun()
diff --git a/src/tool/https.js b/src/tool/https.js
index e9844967..c74f825a 100644
--- a/src/tool/https.js
+++ b/src/tool/https.js
@@ -38,20 +38,6 @@ const CancelToken = axios.CancelToken;
const source = CancelToken.source();
// console.log(import.meta.env.VITE_APP_BASE_URL);
let isLoginTime = false
-const filterHttpsUrl = [
- // '/api/portfolio/page',
- '/api/third/party/parseGoogleCredential',
- '/api/account/resetPwd',
- '/api/portfolio/detail',
- '/api/account/preLogin',
- '/api/account/designWorksRegister',
- '/api/account/schoolLogin',
- '/api/account/enterpriseLogin',
- '/api/account/login',
- '/api/account/organizationNameSearch',
- '/api/account/designWorksRegisterCode',
- '/api/third/party/parseWeChatCode',
- '/api/account/sendEmail']
//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {
//在发送请求之前做某件事
@@ -64,23 +50,7 @@ axios.interceptors.request.use((config) => {
// config.data = JSON.stringify(config.data);
}
// config.headers.Authorization = 'Bearer-eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiIyIiwic3ViIjoie1wiaWRcIjoyLFwidXNlcm5hbWVcIjpcImxpcnNcIn0iLCJpYXQiOjE2NjU3NDEwODcsImlzcyI6IkRXSiIsImF1dGhvcml0aWVzIjoiW10iLCJleHAiOjE2NzQzODEwODd9.ShM9R_NNFD7oo1OvxrEgg7PFeWinOuAKkuInUCMQupp66s64Hhv8tN0Wwr83nIN4rHPqtn95wmd4msWcvaFYJA';
- if(filterHttpsUrl.indexOf(config.url) == -1){
- if (!getCookie('token')) {
- console.log('无Token,取消请求');
- if(!isLoginTime){
- isLoginTime = true
- router.replace('/')
- message.warning('Please login and try again~')
- setTimeout(()=>[
- isLoginTime = false
- ],2000)
- }
- return Promise.reject(new Error('缺少Token,请求被拦截')); // 阻止请求
- }
- config.headers.Authorization = getCookie('token');
- }else{
- config.headers.Authorization = '';
- }
+ config.headers.Authorization = getCookie('token');
return config;
},(error) =>{
return Promise.reject(error);
diff --git a/src/views/HomeMain.vue b/src/views/HomeMain.vue
index 28fe6c47..ca3e155f 100644
--- a/src/views/HomeMain.vue
+++ b/src/views/HomeMain.vue
@@ -403,12 +403,10 @@ export default defineComponent({
homeMainData.openType = Object.keys(query)[0]
homeMainData.openTypeChild = query[Object.keys(query)[0]]
}
- console.log('homeMainData.openType',homeMainData.openType,'route.path',route.path)
- if (homeMainData.openType == 'history' && route.path !== '/home/history') {
- homeMainData.openType = ''
- homeMainData.openTypeChild = ''
+ if((query?.id || query?.history) && !await getIdExistToHistory()){
+ router.push('/home')
+ return
}
-
}else{
homeMainData.openType = ''
homeMainData.openTypeChild = ''