+
'"
{{$t('account.AllRead')}}
diff --git a/src/component/Administrator/SE/allUser/index.vue b/src/component/Administrator/SE/allUser/index.vue
index 521e80df..ebfe2ca1 100644
--- a/src/component/Administrator/SE/allUser/index.vue
+++ b/src/component/Administrator/SE/allUser/index.vue
@@ -324,7 +324,11 @@ export default defineComponent({
filterData.orderBy = 'credits'
}
}
- filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ if(sorter.order){
+ filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ }else{
+ filterData.order = ''
+ }
gettrialList();
};
diff --git a/src/component/Administrator/Transaction/TransactionTable.vue b/src/component/Administrator/Transaction/TransactionTable.vue
index 48c4d595..d8b09c93 100644
--- a/src/component/Administrator/Transaction/TransactionTable.vue
+++ b/src/component/Administrator/Transaction/TransactionTable.vue
@@ -97,7 +97,7 @@
>
- Total Amount:
+ Total Amount: {{ totalPayer }}
@@ -210,6 +210,8 @@ export default defineComponent({
orderBy:'',
status: "",
type: "",
+ totalPayer:0,
+
});
let selectList=reactive({
platformList:[
@@ -405,8 +407,11 @@ export default defineComponent({
filterData.orderBy = 'credits'
}
}
- filterData.order = sorter.order == "descend" ? "DESC" : "ASC";
-
+ if(sorter.order){
+ filterData.order = sorter.order == "descend" ? "DESC" : "ASC";
+ }else{
+ filterData.order = ''
+ }
gettrialList();
};
@@ -466,6 +471,9 @@ export default defineComponent({
filter.dataList = rv.content;
filterData.total = rv.total;
filter.tableLoading = false;
+ rv.content.forEach((item: any) => {
+ filterData.totalPayer += Number(item.payerTotal)
+ })
// this.workspaceItem.position = this.singleTypeList[0].label
}
diff --git a/src/component/Administrator/affiliate/affiliateAudit/affiliateAudit.vue b/src/component/Administrator/affiliate/affiliateAudit/affiliateAudit.vue
index 107d4934..24f1dff7 100644
--- a/src/component/Administrator/affiliate/affiliateAudit/affiliateAudit.vue
+++ b/src/component/Administrator/affiliate/affiliateAudit/affiliateAudit.vue
@@ -115,6 +115,13 @@ export default defineComponent({
width: 100,
dataIndex: "status",
key: "status",
+ },{
+ title: 'Visits',
+ align: "center",
+ ellipsis: true,
+ width: 100,
+ dataIndex: "visits",
+ key: "visits",
},{
title: 'Commission Percent',
align: "center",
diff --git a/src/component/Administrator/affiliate/affiliateAudit/editAudit.vue b/src/component/Administrator/affiliate/affiliateAudit/editAudit.vue
index 209d21d9..3333b858 100644
--- a/src/component/Administrator/affiliate/affiliateAudit/editAudit.vue
+++ b/src/component/Administrator/affiliate/affiliateAudit/editAudit.vue
@@ -57,6 +57,11 @@
style="width: 250px"
/>
+ {{ currentState }}
+
Close
@@ -96,14 +101,29 @@ export default defineComponent({
id: "",
commission: "",
});
+ let currentState = ref('')
+ let state = ref([
+ {
+ label:'Active',
+ value:'Active',
+ },
+ {
+ label:'Delete',
+ value:'Delete',
+ },
+ {
+ label:'Inactive',
+ value:'Inactive',
+ },
+ ])
let init = (data) => {
let funStr = 'Edit'
- console.log(data)
operations.operationsModal = true;
operations.title = funStr;
if (funStr == "Edit") {
operationsData.id = data.id;
operationsData.commission = data.commissionPercent;
+ currentState.value = data.status;
}
};
@@ -111,11 +131,13 @@ export default defineComponent({
return {
id: operationsData.id,
commission: operationsData.commission,
+ operationType: currentState.value,
};
};
let cancelDsign = () => {
operationsData.id = "";
operationsData.commission = "";
+ currentState.value = "";
operations.operationsModal = false;
};
let setOk = () => {
@@ -125,7 +147,7 @@ export default defineComponent({
!data.commission
)
return message.warning("Please check the input box marked with *");
- Https.axiosGet(Https.httpUrls.updateCommission, {params:data}).then(
+ Https.axiosGet(Https.httpUrls.editAffiliate, {params:data}).then(
(rv) => {
if (rv) {
cancelDsign();
@@ -139,6 +161,8 @@ export default defineComponent({
...toRefs(operationsData),
cancelDsign,
init,
+ state,
+ currentState,
setOk,
};
},
diff --git a/src/component/Administrator/allUser.vue b/src/component/Administrator/allUser.vue
index 2bff6e11..a1ab6876 100644
--- a/src/component/Administrator/allUser.vue
+++ b/src/component/Administrator/allUser.vue
@@ -394,8 +394,11 @@ export default defineComponent({
filterData.orderBy = 'credits'
}
}
- filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
-
+ if(sorter.order){
+ filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ }else{
+ filterData.order = ''
+ }
gettrialList();
};
diff --git a/src/component/Administrator/recentActiveUser.vue b/src/component/Administrator/recentActiveUser.vue
index 9a8cd832..daa044e9 100644
--- a/src/component/Administrator/recentActiveUser.vue
+++ b/src/component/Administrator/recentActiveUser.vue
@@ -242,7 +242,11 @@ export default defineComponent({
filterData.orderBy = 'credits'
}
}
- filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ if(sorter.order){
+ filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ }else{
+ filterData.order = ''
+ }
gettrialList();
}
diff --git a/src/component/Administrator/recentNewUser.vue b/src/component/Administrator/recentNewUser.vue
index 33bed9d4..26dd113c 100644
--- a/src/component/Administrator/recentNewUser.vue
+++ b/src/component/Administrator/recentNewUser.vue
@@ -268,7 +268,11 @@ export default defineComponent({
filterData.orderBy = 'credits'
}
}
- filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ if(sorter.order){
+ filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ }else{
+ filterData.order = ''
+ }
gettrialList();
}
diff --git a/src/component/Administrator/trialAllUser.vue b/src/component/Administrator/trialAllUser.vue
index 696e815d..3d5bd635 100644
--- a/src/component/Administrator/trialAllUser.vue
+++ b/src/component/Administrator/trialAllUser.vue
@@ -201,7 +201,11 @@ export default defineComponent({
filterData.orderBy = 'time'
}
}
- filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ if(sorter.order){
+ filterData.order = sorter.order == "descend" ? "Descending" : "Ascending";
+ }else{
+ filterData.order = ''
+ }
gettrialList();
}
diff --git a/src/component/Canvas/CanvasEditor/commands/FillGroupLayerBackgroundCommand.js b/src/component/Canvas/CanvasEditor/commands/FillGroupLayerBackgroundCommand.js
index b38a3954..98eb683a 100644
--- a/src/component/Canvas/CanvasEditor/commands/FillGroupLayerBackgroundCommand.js
+++ b/src/component/Canvas/CanvasEditor/commands/FillGroupLayerBackgroundCommand.js
@@ -18,6 +18,7 @@ export class FillGroupLayerBackgroundCommand extends Command {
this.canvas = options.canvas;
this.layers = options.layers;
this.canvasManager = options.canvasManager;
+ this.layerManager = options.layerManager;
this.layerId = options.layerId;
this.fillColor = options.fillColor;
this.oldFill = null;
@@ -211,6 +212,7 @@ export class FillGroupLayerBackgroundCommand extends Command {
this.group.set({
id: layerObjects[0]?.id || generateId("group-"),
layerId: this.layer?.id,
+ layerName: this.layer?.name,
});
// this.group.setCoords();
// this.group.setObjectsCoords();
@@ -225,7 +227,7 @@ export class FillGroupLayerBackgroundCommand extends Command {
this.group.clipPath = clipPath;
}
layer.fabricObjects = [
- this.group.toObject(["id", "layerId"]) || this.group,
+ this.group.toObject(["id", "layerId", "layerName"]) || this.group,
];
// removeCanvasObjectByObject(this.canvas, layerObjects?.[0]);
insertObjectAtZIndex(this.canvas, this.group, insertIndex, false, true);
diff --git a/src/component/Canvas/CanvasEditor/commands/LayerCommands.js b/src/component/Canvas/CanvasEditor/commands/LayerCommands.js
index 66880184..cec13748 100644
--- a/src/component/Canvas/CanvasEditor/commands/LayerCommands.js
+++ b/src/component/Canvas/CanvasEditor/commands/LayerCommands.js
@@ -528,6 +528,7 @@ export class RemoveLayerCommand extends Command {
this.layerIndex = this.layers.value.findIndex(
(layer) => layer.id === this.layerId
);
+
this.removedLayer = this.layers.value[this.layerIndex];
this.isActiveLayer = this.layerId === this.activeLayerId.value;
@@ -593,6 +594,9 @@ export class RemoveLayerCommand extends Command {
}
});
+ this.layerIndex = this.layers.value.findIndex(
+ (layer) => layer.id === this.layerId
+ );
// 从图层列表中删除
this.layers.value.splice(this.layerIndex, 1);
@@ -604,6 +608,9 @@ export class RemoveLayerCommand extends Command {
);
if (newActiveLayer) {
this.activeLayerId.value = newActiveLayer.id;
+ if(this.canvas.toolId === OperationType.SELECT){
+ this.layerManager.selectLayerObjects(newActiveLayer.id);
+ }
} else {
this.activeLayerId.value = null;
}
@@ -2595,7 +2602,7 @@ export class CreateImageLayerCommand extends Command {
// 生成图层名称
const fileName =
- this.layerName || `图片 ${new Date().toLocaleTimeString()}`;
+ this.layerName || `${new Date().toLocaleTimeString()}`;
this.fabricImage.set({
id: this.imageId,
diff --git a/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js b/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js
index 7088029a..54c6285b 100644
--- a/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js
+++ b/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js
@@ -15,6 +15,8 @@ import {
import { createRasterizedImage } from "../utils/rasterizedImage";
import { message } from "ant-design-vue";
import { restoreFabricObject } from "../utils/objectHelper";
+import i18n from "@/lang/index.ts";
+const { t } = i18n.global;
/**
* 组合图层命令
@@ -338,7 +340,7 @@ export class RasterizeLayerCommand extends Command {
// 创建新的组合图层
this.rasterizedLayer = createLayer({
id: this.rasterizedLayerId,
- name: `${this.layer.name} (组合)`,
+ name: `${this.layer.name} (${t('Canvas.group')})`,
type: LayerType.BITMAP,
visible: this.layer.visible,
locked: this.layer.locked,
@@ -491,7 +493,7 @@ export class ExportLayerToImageCommand extends Command {
this._collectLayersAndObjects();
}
- async execute() {
+ async execute(isDownload = true) {
if (!this.layer) {
throw new Error(`图层 ${this.layerId} 不存在`);
}
@@ -530,18 +532,21 @@ export class ExportLayerToImageCommand extends Command {
fabricObjects: this.objectsToRasterize,
isReturenDataURL: true,
maskObject: clippingMaskFabricObject || null, // 不处理遮罩
+ scaleFactor: isDownload ? 2 : 1,
});
+
// 模拟浏览器下载
- const link = document.createElement("a");
- link.href = imageBase64;
- link.download = `${this.layer.name}.png`;
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
-
+ if (isDownload) {
+ const link = document.createElement("a");
+ link.href = imageBase64;
+ link.download = `${this.layer.name}.png`;
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ }
console.log(`✅ 图层 ${this.layer.name} 导出完成`);
- return true;
+ return imageBase64;
} catch (error) {
console.error("导出图层失败:", error);
throw error;
diff --git a/src/component/Canvas/CanvasEditor/commands/TextCommands.js b/src/component/Canvas/CanvasEditor/commands/TextCommands.js
index c9c464ef..8e6c80c0 100644
--- a/src/component/Canvas/CanvasEditor/commands/TextCommands.js
+++ b/src/component/Canvas/CanvasEditor/commands/TextCommands.js
@@ -321,6 +321,7 @@ export class CreateTextCommand extends Command {
this.x = options.x;
this.y = options.y;
this.textOptions = options.textOptions || {};
+ this.options = options;
// 生成唯一ID
this.textId = options?.textId || generateId("text_");
this.layerId = options?.layerId || generateId("text_layer_");
@@ -331,7 +332,7 @@ export class CreateTextCommand extends Command {
// 默认文本属性
this.defaultOptions = {
- text: t('Canvas.DoubleClickText'),
+ text: options.text || t('Canvas.DoubleClickText'),
fontFamily: "Arial",
fontSize: 24,
fontWeight: "normal",
@@ -373,8 +374,8 @@ export class CreateTextCommand extends Command {
originY: "center",
});
- // 创建文本图层
- const layerName = this.textOptions.layerName || "文本图层";
+ // 创建文本图层 取15
+ const layerName = this.options.text?.substring(0, 25) || t('Canvas.TextLayer');
const layer = createLayer({
id: this.layerId,
name: layerName,
diff --git a/src/component/Canvas/CanvasEditor/components/CropImage.vue b/src/component/Canvas/CanvasEditor/components/CropImage.vue
new file mode 100644
index 00000000..6eb5d7b7
--- /dev/null
+++ b/src/component/Canvas/CanvasEditor/components/CropImage.vue
@@ -0,0 +1,695 @@
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
📷
+
{{ $t("Canvas.NoPicture") }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue b/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue
index 2b5d104a..675c9db4 100644
--- a/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue
+++ b/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue
@@ -21,6 +21,7 @@ const props = defineProps({
type: Boolean,
default: true, // 是否显示图层面板
},
+ isBackgroundChangeable: Boolean,
});
const emit = defineEmits([
@@ -312,7 +313,7 @@ onMounted(() => {
"
/>
-
@@ -354,7 +358,7 @@ import selectMenu from '@/component/modules/selectMenu.vue'
import { forEach } from "jszip";
export default defineComponent({
- name: "homePage",
+ name: "designPage",
components: {
collectionModal,
// HeaderComponent,
@@ -625,7 +629,6 @@ export default defineComponent({
collItemSize.collValue = Math.floor(parentWidth / collItemSize.widthValue.value)
collItemSize.padding = Math.floor(parentWidth - (collItemSize.collValue * collItemSize.widthValue.value))
let value = collItemSize.collValue
-
collItemSize.itemStyle.width = (parentWidth - collItemSize.padding - (value * 10)) / value
collItemSize.itemStyle.height = collItemSize.itemStyle.width * 1.54
@@ -1072,7 +1075,6 @@ export default defineComponent({
})
}
const upDataSort = (generateCourseItem:any,likeIndex:number)=>{
- console.log(generateCourseItem.sort)
let list = likeDesignCollectionList.value
if(list[likeIndex].childList.length == 0)return
list[likeIndex].childList.forEach((likeItem:any,index:any)=>{
@@ -1081,7 +1083,6 @@ export default defineComponent({
}
// if(generateCourseItem.sort >= likeItem.sort && str == 'batch'){
// likeItem.sort += 1
- // console.log(likeItem.sort)
// }
})
}
@@ -1151,7 +1152,6 @@ export default defineComponent({
await nextTick().then(()=>{
designData.isUnfold = true
- console.log('111s')
uploadLikeDom()
})
setPrductimgAll()
@@ -1347,6 +1347,7 @@ export default defineComponent({
}
return {
store,
+ locale,
...toRefs(editDesignType),
likeDesignCollectionList,
deleteDesignCollectionList,
@@ -1464,56 +1465,12 @@ export default defineComponent({
// window.removeEventListener('resize', this.setItemPosition)
if(this.observerData?.observer)this.observerData.observer.unobserve(this.$refs.rightContentBlockBox);
},
+
async mounted() {
- // if(window.innerWidth < 1200){
- // this.widthList = [
- // {
- // label:'Medium',
- // value:70,
- // },{
- // label:'Large',
- // value:150,
- // },{
- // label:'Extra-large',
- // value:200,
- // }
- // ]
- // this.widthValue = {
- // label:'Medium',
- // value:70,
- // }
- // }
- window.addEventListener('beforeunload', (event)=>{
- this.store.commit("clearAllCollection");
- });
- // window.addEventListener('resize', this.setItemPosition)
-
- this.$refs.rightContentBlockBox
- this.observerData.observer = new ResizeObserver(entries => {
- for (let entry of entries) {
- clearTimeout(this.observerData.time)
- if(entries[0].contentRect.width > 800){
- this.likeDesignTools = true
- }else{
- this.likeDesignTools = false
- }
- this.observerData.time = setTimeout(()=>{
-
- this.setSystemDesigner(0)
- this.setDesignItemStyle()
- },100)
- // const { width } = entry.contentRect;
- }
- });
- this.observerData.observer.observe(this.$refs.rightContentBlockBox);
- if(this.designCollectionList?.length > 0){
- nextTick(()=>{
- this.setDesignItemStyle()
- this.setShowHide('recycleDomHidden')
- })
- }
- this.isUnfold = true
- this.setUnfold()
+ // window.addEventListener('beforeunload', (event)=>{
+ // this.store.commit("clearAllCollection");
+ // });
+ this.init()
},
directives:{
mousewheel:{
@@ -1545,12 +1502,6 @@ export default defineComponent({
}
},
methods: {
- // addTeam (team:any) {
- // this.likeDesignCollectionList.push(team)
- // },
- openSetData(){
- this.setItemPosition()
- },
setItemPosition(){
this.setSystemDesigner(0)
this.setDesignItemStyle()
@@ -1561,7 +1512,36 @@ export default defineComponent({
affiche.init(text)
})
},
-
+ init(){
+
+ this.$refs.rightContentBlockBox
+ this.observerData.observer = new ResizeObserver(entries => {
+ for (let entry of entries) {
+ if(entries[0].contentRect.width == 0)return
+ clearTimeout(this.observerData.time)
+ if(entries[0].contentRect.width > 800){
+ this.likeDesignTools = true
+ }else{
+ this.likeDesignTools = false
+ }
+ this.observerData.time = setTimeout(()=>{
+
+ this.setSystemDesigner(0)
+ this.setDesignItemStyle()
+ },100)
+ // const { width } = entry.contentRect;
+ }
+ });
+ this.observerData.observer.observe(this.$refs.rightContentBlockBox);
+ if(this.designCollectionList?.length > 0){
+ nextTick(()=>{
+ this.setDesignItemStyle()
+ this.setShowHide('recycleDomHidden')
+ })
+ }
+ this.isUnfold = true
+ this.setUnfold()
+ },
//判断模特和当前start的sketch是否匹配
isMannequin(){
this.isMannequinShow = false
@@ -2249,7 +2229,18 @@ export default defineComponent({
}
}
}
-
+ .info{
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ > img{
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ }
+ }
.designPage_body {
width: 100%;
height: 100%;
diff --git a/src/component/home/design/tools.vue b/src/component/home/design/tools.vue
index 09764d2e..7c77be77 100644
--- a/src/component/home/design/tools.vue
+++ b/src/component/home/design/tools.vue
@@ -56,6 +56,7 @@
@changeCanvas="changeCanvas"
@trigger-library="triggerLibrary"
:canvasJSON="canvasJSON"
+ :hideCanvas="hideCanvas"
ref="editCanvas">
@@ -100,6 +101,7 @@ import JSZip, { forEach } from "jszip";
import publish from "@/component/WorksPage/publish.vue";
import canvasAA from '@/component/Canvas/canvasExample.vue'
import SelectImages from '@/component/common/SelectImages.vue'
+import { useRouter, useRoute } from 'vue-router'
export default defineComponent({
@@ -117,12 +119,14 @@ export default defineComponent({
const store = useStore();
let locale = null as any;
let t = null as any;
+ const route = useRoute()
const data = reactive({
designTools:false,
isShowMark:false,
openType:'',
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
canvasJSON:computed(()=>store.state.HomeStoreModule.canvasData.canvas),
+ hideCanvas: computed(()=>store.state.Workspace.projectPath !== route.fullPath),
createProbject:inject('createProbject',()=>{}) as any,
likeDesignList:[],
canvasSelectList:[] as any,
@@ -199,7 +203,10 @@ export default defineComponent({
})
}
const unLike = (item)=>{
- data.unLikeList.push(item)
+ const hasSame = data.unLikeList.some((unlikeItem:any)=>unlikeItem?.id === item?.id)
+ if(!hasSame){
+ data.unLikeList.push(item)
+ }
}
let cleardata = async ()=>{
let list = []
@@ -216,10 +223,12 @@ export default defineComponent({
const { newLike, ...rest } = item; // 解构赋值移除 newLike
return item.oldSort ? { ...rest, sort: item.oldSort } : rest;
});
+ const addIdSet = new Set(generateCourse.map((item:any)=>item?.id))
+ const deleteList = data.unLikeList.filter((item:any)=>!addIdSet.has(item?.id))
let emitData = {
status:'add',
addList:generateCourse,
- deleteList:data.unLikeList,
+ deleteList,
}
emit('editToolsSuccess',emitData,'batch')
@@ -485,9 +494,6 @@ export default defineComponent({
// .ant-modal-mask{
// position: absolute;
// }
- .ant-modal-wrap,.ant-modal-mask{
-
- }
> .ant-modal-root{
> .ant-modal-centered{
> .fullScreen{
diff --git a/src/component/home/index.vue b/src/component/home/index.vue
index 87a5bf90..45a0b998 100644
--- a/src/component/home/index.vue
+++ b/src/component/home/index.vue
@@ -4,16 +4,26 @@
+
+
+
+
-
+
+
@@ -30,14 +40,13 @@ import { Https } from "@/tool/https";
import { useStore } from "vuex";
import { useI18n } from 'vue-i18n'
import { useRouter,useRoute } from 'vue-router'
-import design from "./design/index.vue"
import newPorject from "./newProject/index.vue"
import router from '@/router';
import {getMinioUrl, getUniversalZoomLevel} from '@/tool/util'
import chat from "./chat/index.vue"
export default defineComponent({
components:{
- design,newPorject,chat
+ newPorject,chat
},
emits:['setTask','setNewProject'],
setup(props,{emit}) {
@@ -51,6 +60,7 @@ export default defineComponent({
selectObject:computed(()=>store.state.Workspace.probjects) as any,//选择的项目
chatData:null as any,
dataLoad:true as any,
+ cachedRoutes:computed(()=>store.state.Workspace.cachedRoutes),//
})
let settingGetHistory:any = inject('settingGetHistory')
const setIsShowMark = (boolean:boolean)=>{
@@ -69,26 +79,65 @@ export default defineComponent({
// getHistory(route.query.history)
// }
// })
-
+ watch(
+ () => route,
+ (newRoute) => {
+ const routeName = newRoute.name as string
+ const shouldCache = newRoute.meta?.cache === true
+ if (shouldCache && routeName && !data.cachedRoutes.includes(routeName)) {
+ if(routeName == 'tools' && !route.query?.id)return
+ data.cachedRoutes.push(routeName)// 保证缓存只有一个项目
+ } else if ((!route.query?.id && shouldCache) || (!shouldCache && routeName && data.cachedRoutes.includes(routeName))) {
+ // } else if (!shouldCache && routeName && data.cachedRoutes.includes(routeName)) {
+ for (let i = data.cachedRoutes.length - 1; i >= 0; i--) {
+ if (data.cachedRoutes[i] !== routeName) {
+ data.cachedRoutes.splice(i, 1);
+ }
+ }
+ }
+ },
+ { immediate: true, deep: true }
+ )
watch(() => route.query,
(query:any, oldQuery:any) => {
data.routeQuery = query
if(query.history)data.componentKey = query.history
- const key = Object.keys(query)?.[0]
+ let key = Object.keys(query)?.[0]
+ if(route.params?.id)key = 'history'
if(key){
- data.openType = Object.keys(query)[0]
+ data.openType = key
}else{
data.openType = ''
data.dataLoad = false
return
}
- // if((query.history || query.id) != (oldQuery.history || oldQuery.id)){
- // }
- if(query.history && query.history != query.history){
+ // 检查是否需要重新初始化
+ const currentPath = route.fullPath
+ const storedPath = store.state.Workspace.projectPath
+ const isSameProject = currentPath === storedPath
+
+ if((data.openType == 'history' && route.params?.id) || (data.openType == 'tools' && query.id)){
+ store.commit('setProjectPath',route.fullPath)
+ }
+
+ // 如果是同一个项目且openType为history,跳过重新初始化
+ // if(oldQuery?.id && !query?.id)return createData()
+ const tempUrl = new URL(storedPath, window.location.origin);
+ const params2 = {
+ tools: tempUrl.searchParams.get('tools'),
+ id: tempUrl.searchParams.get('id')
+ };
+ if(isSameProject || (!route.params?.id && !query.id) || params2.id){
+ data.dataLoad = false
+ // dataDom.design?.init()
+ return
}
nextTick(()=>{
- if(query.history || query.id){
+ if(route.params?.id || query?.id){
+ //切换新项目需要清除首次design提示
+ sessionStorage.removeItem('firstDesign');
+
if(data.openType == 'tools')data.isShowMark = true
data.dataLoad = true
if(query?.source != 'batch'){
@@ -101,7 +150,7 @@ export default defineComponent({
store.commit("createProbject");
store.commit("clearAllData");
}
- getHistory(query.id || query.history)
+ getHistory(query.id || route.params?.id)
}else{
data.dataLoad = false
createData()
@@ -524,7 +573,8 @@ export default defineComponent({
}else{
chatModel = false
}
- router.push(`home?history=${value.id}&chatMode=${chatModel}`)
+ router.push(`/home/history/${value?.id}`)
+ // router.push(`home?history=${value.id}&chatMode=${chatModel}`)
settingGetHistory()
data.chatData = value
diff --git a/src/component/home/newProject/indexCopy.vue b/src/component/home/newProject/indexCopy.vue
index 2529b68a..4d845517 100644
--- a/src/component/home/newProject/indexCopy.vue
+++ b/src/component/home/newProject/indexCopy.vue
@@ -359,10 +359,10 @@ export default defineComponent({
margin-top: .4rem;
border-radius: 2.4rem;
position: relative;
- background: #f5f5f5;
+ background: #F9FAFA;
> textarea{
padding: 1.6rem 2rem 0;
- background: #f5f5f5;
+ background: #F9FAFA;
width: 100%;
min-height: 7.2rem;
border-radius: 2.4rem;
@@ -464,7 +464,7 @@ export default defineComponent({
overflow: hidden; /* 溢出部分隐藏 */
text-overflow: ellipsis; /* 显示省略号 */
&:hover{
- background: #f5f5f5;
+ background: #F9FAFA;
}
:first-child{
margin-right: 0;
diff --git a/src/component/home/newProject/setting.vue b/src/component/home/newProject/setting.vue
index 42de4e16..731444f3 100644
--- a/src/component/home/newProject/setting.vue
+++ b/src/component/home/newProject/setting.vue
@@ -29,7 +29,7 @@
{{ $t('newProjectg.projectSetting') }}
-
+
@@ -56,6 +56,7 @@ export default defineComponent({
const data = reactive({
habitSetStyle:false,
isShowMark:false,
+ sourceType:'',
projectData:{} as any,
})
const dataDom = reactive({
@@ -64,9 +65,10 @@ export default defineComponent({
const setIsShowMark = (boolean:boolean)=>{
data.isShowMark = boolean
}
- const init = (value:any)=>{
+ const init = (value:any,type:string = 'create')=>{
data.projectData = value
data.habitSetStyle = true
+ data.sourceType = type
getHistory(value.id)
}
provide('setIsShowMark',setIsShowMark)
diff --git a/src/component/home/newProject/workspace.vue b/src/component/home/newProject/workspace.vue
index a2f21bcc..92f0a20a 100644
--- a/src/component/home/newProject/workspace.vue
+++ b/src/component/home/newProject/workspace.vue
@@ -84,7 +84,7 @@