2023-11-16-1

This commit is contained in:
X1627315083
2023-11-16 09:44:53 +08:00
parent 0ad232a381
commit 5be355374e
18 changed files with 318 additions and 474 deletions

View File

@@ -1,18 +1,22 @@
@font-face {
font-family: "iconfont"; /* Project id 4292253 */
src: url('iconfont.woff2?t=1698742679640') format('woff2'),
url('iconfont.woff?t=1698742679640') format('woff'),
url('iconfont.ttf?t=1698742679640') format('truetype');
src: url('iconfont.woff2?t=1700017557054') format('woff2'),
url('iconfont.woff?t=1700017557054') format('woff'),
url('iconfont.ttf?t=1700017557054') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 1.6rem;
font-size: 1.8rem;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-biaoqian:before {
content: "\e603";
}
.icon-yuyan:before {
content: "\e85f";
}

Binary file not shown.

Binary file not shown.

View File

@@ -341,11 +341,11 @@ li {
.pin_block .ant-checkbox-wrapper span.ant-checkbox-checked::after {
border: 1px solid rgba(0, 0, 0, 0);
}
.pin_block .ant-checkbox-wrapper .ant-checkbox-inner {
.ant-checkbox-inner {
width: 1.6rem;
height: 1.6rem;
}
.pin_block .ant-checkbox-wrapper .ant-checkbox-inner::after {
.ant-checkbox-inner::after {
width: 0.57142857rem;
height: 0.91428571rem;
}

View File

@@ -396,16 +396,17 @@ ul,li{
border: 1px solid rgba(0,0,0,0);
}
}
.ant-checkbox-inner{
width: 1.6rem;
height: 1.6rem;
}
.ant-checkbox-inner::after{
width: .571428571rem;
height: .914285714rem;
}
}
}
.ant-checkbox-inner{
width: 1.6rem;
height: 1.6rem;
}
.ant-checkbox-inner::after{
width: .571428571rem;
height: .914285714rem;
}
.ant-checkbox-wrapper{
font-size: 1.4rem;
span{

View File

@@ -230,10 +230,6 @@ export default defineComponent({
'workspaceItem.id_':{
handler(newVal:any,oldVal:any){
// this.store.state.Workspace.workspace
// if(!newVal){
// this.store.commit("setWorkspace", this.workspaceItem);
// }
this.workspace.workspaceList.forEach((v:any)=>{
if(v.id == this.workspaceItem.id_){
this.workspaceItem = v
@@ -248,7 +244,26 @@ export default defineComponent({
this.getMannequins()
}
},
// 'workspaceItem.sex':{
'openType.workspace':{
handler(newVal:any,oldVal:any){
this.openType.addWorkspace = false
this.workspace.workspaceList.forEach((item:any) => {
item.putName = false
});
// this.workspace.workspaceList.forEach((v:any)=>{
// if(v.id == this.workspaceItem.id_){
// this.workspaceItem = v
// this.workspaceItem.id_ = v.id
// }
// if(v.id == oldVal){
// delete v.isLastIndex
// this.putWorkspace(v,newVal)
// // this.getDetail(newVal)
// }
// })
}
},
// 'workspa,ceItem.sex':{
// handler(newVal:any,oldVal:any){
// console.log(oldVal);
@@ -467,6 +482,7 @@ export default defineComponent({
this.workspace.workspaceList.forEach((v:any )=> {
v.putName = false
});
this.openType.addWorkspace = false
if(v == 'put'){
this.workspaceItemName = this.workspace.workspaceList[index].workSpaceName
this.workspace.workspaceList[index].putName = true
@@ -525,6 +541,9 @@ export default defineComponent({
newWorkspace(){
this.workspaceItemName = ''
this.openType.addWorkspace = true
this.workspace.workspaceList.forEach((item:any) => {
item.putName = false
});
},
setSex(v:any){
this.openType.sex = false

View File

@@ -246,6 +246,8 @@ export default defineComponent({
let inputTime = ref()
let {t} = useI18n()
let isTest = ref()
return {
imgList,
selectImgList,
@@ -273,6 +275,7 @@ export default defineComponent({
inputShow,
inputTime,
t,
isTest,
};
},
data(prop) {
@@ -307,6 +310,8 @@ export default defineComponent({
// })
// this.store.commit("addGenerateFils", this.fileList);
this.token = getCookie("token") || "";
this.isTest = getCookie("isTest");
this.uploadUrl = getUploadUrl();
this.workspace = this.store.state.Workspace.workspace
},
@@ -390,6 +395,12 @@ export default defineComponent({
},
getgenerate(){
if(this.isTest){//试用用户禁止使用
message.warning(
this.t('isTest.available')
);
return
}
if(!this.searchPictureName){
message.warning(
this.t('Generate.jsContent3')

View File

@@ -392,8 +392,14 @@ export default defineComponent({
if (rv) {
let token = rv;
setCookie("token", token);
location.reload()
this.getLang(v)
this.getLang('')
// if(this.$router.currentRoute._value.path == '/home'){
// this.$router.push("/home")
// }else{
// this.$router.push("/home")
// }
this.store.commit('clearAllData')
window.location.reload()
}
}
})

View File

@@ -164,6 +164,7 @@ export default defineComponent({
let inputShow = ref(false)
let inputTime = ref()
let {t} = useI18n()
let isTest = ref()
return {
fileList,
printImgList,
@@ -176,6 +177,7 @@ export default defineComponent({
inputShow,
inputTime,
t,
isTest,
}
},
computed:{
@@ -219,6 +221,7 @@ export default defineComponent({
},
mounted(){
this.token = getCookie('token') || ''
this.isTest = getCookie('isTest') || ''
this.uploadUrl = getUploadUrl()
},
methods:{
@@ -500,6 +503,12 @@ export default defineComponent({
},500)
},
getgenerate(){
if(this.isTest){//试用用户禁止使用
message.warning(
this.t('isTest.available')
);
return
}
//如果是通过moodboard随即图片生成
let generage:any = this.$refs.Generate
let generateType = generage.checkbox.filter((v:any)=>v.type)[0].name

View File

@@ -280,6 +280,7 @@ export default defineComponent({
let inputTime = ref()
let {t} = useI18n()
let isTest = ref()
return {
fileList,
openClick,
@@ -291,6 +292,7 @@ export default defineComponent({
inputShow,
inputTime,
t,
isTest,
};
},
data() {
@@ -339,6 +341,7 @@ export default defineComponent({
},
mounted() {
this.token = getCookie("token") || "";
this.isTest = getCookie('isTest') || ''
this.uploadUrl = getUploadUrl();
this.workspaceCom = computed(()=>{
return this.store?.state?.Workspace?.workspace
@@ -469,6 +472,8 @@ export default defineComponent({
this.inputTime = setTimeout(()=>{
// let num1 = ((input as HTMLInputElement).value.match(/ /g) || []).length
// let num2 = (input as HTMLInputElement).value.split(' ').length
console.log(this.captionGeneration);
if(this.captionGeneration.split(/\s+/).length > 75){
this.inputShow = true
}else{
@@ -500,6 +505,7 @@ export default defineComponent({
generateDetailId:item.id,
level1Type:"Sketchboard",
level2Type: item.category,
gender:this.workspace.sex,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
}
Https.axiosPost(Https.httpUrls.generateLike, data).then(
@@ -569,6 +575,12 @@ export default defineComponent({
},
//发送请求生成图片
getgenerate(){
if(this.isTest){//试用用户禁止使用
message.warning(
this.t('isTest.available')
);
return
}
let generage:any = this.$refs.Generate
let generateType = generage.checkbox.filter((v:any)=>v.type)[0].name
let data = {

View File

@@ -259,7 +259,6 @@ export default defineComponent({
let image:any = new Image()
image.src = this.option.img
let imgbox:any = this.$refs.imgbox
console.log(imgbox);
let imgBoxSize = imgbox.getElementsByClassName('cropper-crop-box')[0]
let imgBoxSizeBG = imgbox.getElementsByClassName('cropper-view-box')[0]
let divTop:any = document.createElement('div');
@@ -293,7 +292,7 @@ export default defineComponent({
})
},300)
},800)
},
realTime(data:any) {
clearTimeout(this.cropperTime)

View File

@@ -1,344 +0,0 @@
<template>
<a-modal class="library_setLabel"
v-model:visible="setLabelShow"
:footer="null"
title="Edit tag"
width="65%"
:maskClosable="false"
:centered="true"
@onCancel="clearSetLabel"
>
<div class="setLabel_centent">
<ul class="optionsItem">
<li class="optionsItem_title" v-for="optionsItem,optionsIndex in options" :key="optionsItem.id">
<div class="setLabel_text">
<a-checkbox v-model:checked="optionsItem.checkAll" @change="onCheckAllChange(optionsItem)"></a-checkbox>
<span v-show="!optionsItem.openType">{{ optionsItem.label }}</span>
<input v-show="optionsItem.openType" type="text" v-model="itemName">
<i v-show="optionsItem.openType" @click.stop="putName(index,'affirm',optionsItem)" class="fi fi-br-check"></i>
<i v-show="!optionsItem.openType" @click.stop="putName(optionsIndex,'put',optionsItem)" class="fi fi-rr-edit"></i>
</div>
<ul class="childrenItem active" v-mousewheel>
<li class="childrenItem_title setLabel_text" v-for="childrenItem,childrenIndex in optionsItem.children" :key="childrenItem.id">
<a-checkbox v-model:checked="childrenItem.checkAll"></a-checkbox>
<span v-show="!childrenItem.openType">{{ childrenItem.label }}</span>
<input v-show="childrenItem.openType" type="text" v-model="itemName">
<i v-show="childrenItem.openType" @click.stop="putName(index,'affirm',childrenItem)" class="fi fi-br-check"></i>
<i v-show="!childrenItem.openType" @click.stop="putName(childrenIndex,'put',childrenItem)" class="fi fi-rr-edit"></i>
</li>
<li @click="newWorkspace(optionsItem)" class="newWorkspace setLabel_text">
<input v-show="optionsItem.addOpenType" type="text" v-model="itemName">
<i @click.stop="putName(-1,'affirm',optionsItem)" v-show="optionsItem.addOpenType" class="fi fi-br-check"></i>
<div v-show="!optionsItem.addOpenType">+</div>
</li>
</ul>
</li>
<li @click="newWorkspace('')" class="newWorkspace setLabel_text optionsItem_title">
<input v-show="openType" type="text" v-model="itemName">
<i @click.stop="putName(-1,'affirm',optionsItem)" v-show="openType" class="fi fi-br-check"></i>
<div v-show="!openType">+</div>
</li>
</ul>
</div>
</a-modal>
</template>
<script lang="ts">
import { defineComponent,ref,createVNode,watch,nextTick} from 'vue'
import { Https } from "@/tool/https";
import {dataURLtoFile,base64toFile} from "@/tool/util"
import { getCookie } from "@/tool/cookie";
import 'vue-cropper/dist/index.css'
import { VueCropper } from "vue-cropper";
import { useStore } from "vuex";
import { useI18n } from 'vue-i18n';
import { Modal,message,Upload,CascaderProps } from 'ant-design-vue';
export default defineComponent({
components:{
VueCropper,
},
setup() {
let multiple = ref(false)
let indeterminate = ref(true)
const options:any = ref([
{
label: 'Light',
value: 'light',
checkAll:false,
children: new Array(10)
.fill(null)
.map((_, index) => ({ label: `Number ${index}`, value: index })),
},
{
label: 'Bamboo',
value: 'bamboo',
checkAll:false,
children: [
{
label: 'Little',
checkAll:false,
value: 'little',
children: [
{
label: `'Toy Fish'`,
value: 'fish',
},
{
label: 'Toy Cards',
value: 'cards',
},
{
label: 'Toy Bird',
value: 'bird',
},
],
},
],
},
]);
let checkedList = ref([])
let openType = ref(false)
let itemName = ref('')
let {t} = useI18n()
return {
multiple,
indeterminate,
value: ref<string[]>([]),
options,
checkedList,
openType,
itemName,
t
}
},
data(){
return{
setLabelShow:false,
}
},
mounted(){
},
watch: {
},
directives:{
mousewheel:{
mounted (el) {
let bodyDom:any = document.getElementsByClassName('optionsItem')[0]
nextTick().then(()=>{
let dom:any = document.getElementsByClassName('childrenItem')
let domParent:any = document.getElementsByClassName('optionsItem_title')
let mouseover = ()=>{
bodyDom.classList.add('active')
}
let mouseleave = ()=>{
bodyDom.classList.remove('active')
}
// domParent?.forEach((item:any) => {
// item.addEventListener('mouseover',mouseover)
// item.addEventListener('mouseleave',mouseleave)
// });
for (let index = 0; index < domParent.length; index++) {
domParent[index].addEventListener('mouseover',mouseover)
domParent[index].addEventListener('mouseover',mouseleave)
}
el.addEventListener('wheel',(e:WheelEvent)=>{
let num = 0
if(e.deltaY > 0){
num = 25
}else{
num = -25
}
el.scrollBy(num, 0);
},true)
})
}
}
},
methods:{
init(str:any){
this.setLabelShow = true
if(str === 'add'){
this.multiple = false
}else{
this.multiple = true
}
},
clearSetLabel(){
this.setLabelShow = false
},
onCheckAllChange(value:any){
value.children.forEach((item:any) => {
item.checkAll = value.checkAll
});
},
putName(index:number,v:string,item:any){
if(v == 'put'){
this.options.forEach((optionsItem:any) => {
optionsItem.openType = false
optionsItem.addOpenType = false
optionsItem.children.forEach((childrenItem:any) => {
childrenItem.openType = false
});
});
item.openType = true
this.itemName = item.label
// this.options[index].openType = true
// this.itemName = this.workspace.workspaceList[index].workSpaceName
}else if(v == 'affirm'){
if(index == -1){
if(this.itemName == ''){
message.warning(this.t('Habit.jsContent2'));
}else{
console.log(this.itemName);
item.addOpenType = false
}
}else{
item.label = this.itemName
item.openType = false
}
}
},
newWorkspace(item:any){
// console.log(index);
if(item){
this.itemName = ''
item.addOpenType = true
}else{
this.openType = true
}
// console.log(item.addOpenType);
// this.options.forEach((optionsItem:any) => {
// optionsItem.openType = false
// optionsItem.children.forEach((childrenItem:any) => {
// childrenItem.openType = false
// });
// });
// this.itemName = ''
// item.openType = true
}
}
})
</script>
<style lang="less">
.library_setLabel{
.setLabel_centent{
display: flex;
flex-direction: column;
// height: 300px;
max-height: 65rem;
overflow-y: auto;
// border-radius: ;
ul{
display: flex;
li{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
i{
cursor: pointer;
}
input{
border: 0;
width: 80%;
background: rgba(0,0,0,0);
}
}
.setLabel_text{
display: flex;
flex-direction: row;
align-items: center;
margin: 0 2rem;
width: 12rem;
justify-content: space-between;
flex-shrink: 0;
i{
display: flex;
}
}
}
.optionsItem{
flex-direction: column;
&.active{
overflow: hidden;
}
>li{
>label{
align-items: center;
}
.childrenItem{
max-width: 100%;
overflow: hidden;
overflow-x: auto;
height: 7rem;
margin: 2rem 0;
&.active::-webkit-scrollbar-button:single-button{
display: none;
}
&.active::-webkit-scrollbar {
/* 竖轴的宽度 */
width: 1rem;
/* 横轴的高度 */
height: 1rem;
transition: all .3s;
}
/* 进度 */
&.active::-webkit-scrollbar-thumb {
border-radius: 1rem;
background: rgba(238, 238, 244, 0);
}
/* 轨道 */
&.active::-webkit-scrollbar-track {
border-radius: 1rem;
background: rgba(238, 238, 244, 0);
}
&.active:hover {
// overflow-x: scroll;
&.active::-webkit-scrollbar-thumb {
background: #543087;
}
/* 轨道 */
&.active::-webkit-scrollbar-track {
background: rgba(84, 48, 135,.2);
}
}
}
}
.newWorkspace{
text-align: center;
justify-content: center;
cursor: pointer;
div{
border-radius: 50%;
border: 1px solid #000;
display: inline-block;
width: 2rem;
height: 2rem;
line-height: 2rem;
text-align: center;
}
i{
cursor: pointer;
}
}
}
}
}
</style>

View File

@@ -36,7 +36,7 @@
</li>
<li class="newLabel setLabel_text optionsItem_title">
<div>
<input v-show="openType" type="text" v-model="itemName">
<input v-show="openType" type="text" autofocus v-model="itemName">
<i @click.stop="putName(-1,'affirm','')" v-show="openType" class="fi fi-br-check"></i>
<div class="addLabel" v-show="!openType" @click="newLabel('','')">+</div>
</div>
@@ -160,8 +160,8 @@ export default defineComponent({
this.options.forEach((optionsItem:any) => {
optionsItem.openType = false
optionsItem.addOpenType = false
if(optionsItem?.children){
optionsItem?.children?.forEach((childrenItem:any) => {
if(optionsItem?.childList){
optionsItem?.childList?.forEach((childrenItem:any) => {
childrenItem.openType = false
});
}
@@ -172,6 +172,7 @@ export default defineComponent({
let data:any
if(v == 'put'){
this.clearOpenType()
item.openType = true
this.itemName = item.classificationName
// this.options[index].openType = true
@@ -298,6 +299,7 @@ export default defineComponent({
display: flex;
flex-direction: column;
// height: 300px;
min-height: 50rem;
max-height: 65rem;
overflow-y: auto;
// border-radius: ;
@@ -323,6 +325,7 @@ export default defineComponent({
border: 0;
width: 80%;
background: rgba(0,0,0,0);
border-bottom: 1px solid #b5b5b5;
}
}
@@ -353,6 +356,7 @@ export default defineComponent({
.optionsItem{
flex-direction: column;
padding: 1rem;
flex: 1;
.optionsItem_title{
margin-bottom: 2rem;
border-radius: 1rem;
@@ -434,6 +438,8 @@ export default defineComponent({
position: sticky;
background: #fff;
border: none;
// margin-top: auto;
bottom: 0;
>div{
}
.started_btn{

View File

@@ -315,4 +315,7 @@ export default {
uploadFile:{
jsContent1:'You can select up to 8 images',
},
isTest:{
available:"This feature is not available to trial users",
}
}

View File

@@ -117,8 +117,9 @@ export const Https = {
saveOrUpdate:`/api/classification/saveOrUpdate`,//标签类别新增修改
classificationDelete:`/api/classification/delete`,//标签类别新增修改
relationLibrary:`/api/classification/relationLibrary`,//标签类别新增修改
getRelClassificationIdList:`/api/classification/getRelClassificationIdList`,//标签类别新增修改
batchUpdateLibraryName:'/api/library/batchUpdateLibraryName',//Library修改用户文件名
batchDeleteLibrary:'/api/library/batchDeleteLibrary',//删除library

View File

@@ -65,7 +65,7 @@
</div>
</template>
<script lang="ts">
import { defineComponent,ref,createVNode} from 'vue'
import { defineComponent,ref,createVNode,computed} from 'vue'
import HeaderComponent from "@/component/HomePage/Header.vue";
import HistoryDetail from "@/component/Detail/HistoryDetail.vue";
import { Https } from "@/tool/https";
@@ -83,23 +83,25 @@ export default defineComponent({
setup() {
let rangePickerValue:any = ref([])
let renameData:any = ref({}) //修改名字选中的数据
const columns:any = ref([
{ title: useI18n().t('HistoryPage.CollectionsName'), align:'center', ellipsis: true, width: 150, dataIndex: 'name', key: 'collectionName' },
{ title: useI18n().t('HistoryPage.UptateTime'), align:'center', ellipsis: true,width: 150, dataIndex: 'updateDate', key: 'updateTime',customRender:(record:any)=>{
let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss')
return time
}},
{ title: useI18n().t('HistoryPage.SketchCounts'), align:'center', ellipsis: true, width: 150, dataIndex: 'sketchCount', key: 'sketchCounts' },
{
title: useI18n().t('HistoryPage.Operations'),
key: 'operation',
align:'center',
fixed: 'right',
width: 150,
// slots:{customRender:'action'}
Operations:true,
},
]);
const columns:any = computed(()=>{
return [
{ title: useI18n().t('HistoryPage.CollectionsName'), align:'center', ellipsis: true, width: 150, dataIndex: 'name', key: 'collectionName' },
{ title: useI18n().t('HistoryPage.UptateTime'), align:'center', ellipsis: true,width: 150, dataIndex: 'updateDate', key: 'updateTime',customRender:(record:any)=>{
let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss')
return time
}},
{ title: useI18n().t('HistoryPage.SketchCounts'), align:'center', ellipsis: true, width: 150, dataIndex: 'sketchCount', key: 'sketchCounts' },
{
title: useI18n().t('HistoryPage.Operations'),
key: 'operation',
align:'center',
fixed: 'right',
width: 150,
// slots:{customRender:'action'}
Operations:true,
},
]
});
let collectionList:any = ref([])
let {t} = useI18n()
return {

View File

@@ -89,22 +89,37 @@
</div>
<div class="content_search_block">
<input class="search_input" :placeholder="$t('LibraryPage.inputContent1')" v-model="searchPictureName" @keydown.enter="getLibraryList()">
<a-cascader
@click.stop="dropdownVisibleChange"
ref="cascader"
v-model:value="value.labelValue"
style="width: 60%"
:field-names="{ label: 'classificationName', value: 'id', children: 'childList'}"
multiple
@change="setLabel1"
max-tag-count="responsive"
:options="options"
placeholder="Please select"
:show-search="{ filter }"
:open="labelOpen.labelOpen"
dropdownClassName="libraryPageCascader"
>
</a-cascader>
<div class="search_cascader">
<a-cascader
@click.stop="dropdownVisibleChange"
ref="cascader"
v-model:value="value.labelValue"
style="width: 100%"
:field-names="{ label: 'label', value: 'value', children: 'childList'}"
multiple
@change="setLabel1"
:changeOnSelect="false"
max-tag-count="responsive"
:options="options"
placeholder="Please select"
:show-search="{ filter }"
:open="false"
dropdownClassName="libraryPageCascader"
>
</a-cascader>
<div v-show="labelOpen.labelOpen" @click.stop="" class="search_cascader_checkbox">
<a-checkbox-group
v-model:value="value.labelValue"
:options="options"
/>
<br>
<a-checkbox-group
v-model:value="value.labelValue"
:options="options.childList"
/>
</div>
</div>
<!-- <div class="search_icon_block" @click="getLibraryList()"><span class="icon iconfont icon-sousuo"></span></div> -->
<div class="generage_btn search_icon_block" @click="getLibraryList()"><span class="icon iconfont icon-sousuo"></span></div>
@@ -126,7 +141,7 @@
<span class="icon iconfont icon-tianxie operate_icon"></span>
</div>
<div class="img_operate_block" @click.stop="showRenameModal(img,'single')">
<span class="icon iconfont icon-zhongmingming operate_icon"></span>
<span class="icon iconfont icon-biaoqian operate_icon"></span>
</div>
<div class="img_operate_block" @click.stop="deleteSinglePic(img,index)">
<span class="icon iconfont icon-shanchu operate_icon"></span>
@@ -189,7 +204,7 @@
</div>
<div class="input_box" :class="{active:inputShow}">
<input class="search_input" @input="ifMaximumLength" :maxlength='inputShow?0:9999' :class="{active:checkbox[0].type}" :readonly="checkbox[0].type" :placeholder="$t('LibraryPage.inputContent2')" v-model="captionGeneration">
<input class="search_input" @input="ifMaximumLength" :maxlength='inputShow?0:9999' :class="{active:checkbox[0].type}" @keydown.enter="getgenerate" :readonly="checkbox[0].type" :placeholder="$t('LibraryPage.inputContent2')" v-model="captionGeneration">
<div class="generage_btn started_btn" @click.stop="getgenerate">{{ $t('LibraryPage.Generate') }}</div>
<span>{{ $t('LibraryPage.maximumLength') }}</span>
</div>
@@ -250,12 +265,12 @@
</div>
<div class="content_body_table scroll_style">
<div class="content_img_item" v-for="(img,index) in generateList" :key="img.id" @click="selectImgItem(img)">
<div class="content_img_item" v-for="(img,index) in generateList" :key="img.id">
<div :class="['content_img_item_block', selectImgList.indexOf(img.id) > -1 ? 'select_item_img' :'']">
<img v-lazy="img.imgUrl" :key="img.imgUrl" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']"/>
<div class="img_item_hover">
<div class="img_operate_content">
<div class="img_operate_block" @click.stop="editPlacementClick(img)">
<div class="img_operate_block">
<i v-if="!img.like" class="fi fi-rr-heart operate_icon" @click.stop="likeFile(img,'like')"></i>
<i v-else class="fi fi-sr-heart operate_icon" @click.stop="likeFile(img,'noLike')"></i>
</div>
@@ -330,7 +345,7 @@
</template>
<script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue";
import { defineComponent,h ,ref,createVNode,nextTick,provide} from 'vue'
import { defineComponent,h ,ref,createVNode,nextTick,provide,computed} from 'vue'
import HeaderComponent from "@/component/HomePage/Header.vue";
import ModelPlacement from '@/component/LibraryPage/ModelPlacement.vue';
import setLabel from '@/component/LibraryPage/setLabel.vue';
@@ -354,15 +369,17 @@ export default defineComponent({
},
setup() {
let menuList = ref([
{title:useI18n().t('LibraryPage.Moodboard'),code:'Moodboard',icon:'fi fi-rr-grid',showChildren:false,children:[]},
{title:useI18n().t('LibraryPage.Prints'),code:'Printboard',icon:'fi fi-rs-objects-column',showChildren:false,children:[]},
// {title:'Sketches',code:'SketchboardFirst',icon:'fi icon iconfont icon-a-waitao_changkuanwaitao11x',showChildren:false,children:[{title:'Apparel',code:'Sketchboard'}]},
{title:useI18n().t('LibraryPage.Sketches'),code:'Sketchboard',icon:'fi icon iconfont icon-a-waitao_changkuanwaitao11x',showChildren:false,children:[]},
// {title:'Market Sketch',code:'MarketingSketch',icon:'icon-fuwushichang',showChildren:false,children:[]},
{title:useI18n().t('LibraryPage.Mannequins'),code:'Models',icon:'fi fi-rs-people',showChildren:false,children:[]},
let menuList = computed(()=>{
return [
{title:useI18n().t('LibraryPage.Moodboard'),code:'Moodboard',icon:'fi fi-rr-grid',showChildren:false,children:[]},
{title:useI18n().t('LibraryPage.Prints'),code:'Printboard',icon:'fi fi-rs-objects-column',showChildren:false,children:[]},
// {title:'Sketches',code:'SketchboardFirst',icon:'fi icon iconfont icon-a-waitao_changkuanwaitao11x',showChildren:false,children:[{title:'Apparel',code:'Sketchboard'}]},
{title:useI18n().t('LibraryPage.Sketches'),code:'Sketchboard',icon:'fi icon iconfont icon-a-waitao_changkuanwaitao11x',showChildren:false,children:[]},
// {title:'Market Sketch',code:'MarketingSketch',icon:'icon-fuwushichang',showChildren:false,children:[]},
{title:useI18n().t('LibraryPage.Mannequins'),code:'Models',icon:'fi fi-rs-people',showChildren:false,children:[]},
])
]
})
let selectImgList:any = ref([])
let selectCode:any = ref('Moodboard')
let searchPictureName = ref('')
@@ -414,7 +431,7 @@ export default defineComponent({
name:useI18n().t('LibraryPage.model')+'1'
})
let {t} = useI18n()
const options = ref([
const options:any = ref([
]);
let type:any = {
selectCode:selectCode,
@@ -432,6 +449,8 @@ export default defineComponent({
labelOpen:false,
editLabelOpen:false,
})
let isTest = ref()
return {
menuList,
selectImgList,
@@ -467,6 +486,7 @@ export default defineComponent({
filter,
t,
labelOpen,
isTest,
}
},
data(this_) {
@@ -488,6 +508,7 @@ export default defineComponent({
},
async mounted(){
let userInfo:any = getCookie("userInfo")
this.isTest = getCookie('isTest') || ''
this.userInfo = JSON.parse(userInfo);
this.uploadUrl = getUploadUrl()
this.getLibraryList()
@@ -539,11 +560,14 @@ export default defineComponent({
})
},
likeFile(item:any,str:string){
let designType = this.selectCode == 'Sketchboard' || this.selectCode == 'MarketingSketch' ? this.designType : ''
if(str == 'like'){
let data = {
generateDetailId:item.id,
level1Type:this.selectCode,
level2Type: item.category,
level2Type: designType,
gender:this.sex,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
}
Https.axiosPost(Https.httpUrls.generateLike, data).then(
@@ -569,22 +593,24 @@ export default defineComponent({
if(menu.children?.length){ //证明是有子菜单
menu.showChildren = !menu.showChildren
}else{
this.selectCode = menu.code
if(menu.code != this.upload.level1Type){
this.selectCode = menu.code
this.currentPage = 1,
this.total = 0,
this.searchPictureName = ''
this.imgList = [],
this.sex = 'Female',
this.designType = 'Outwear',
this.selectImgList = []
this.selectSingleImg = {}
this.getLibraryList()
this.getClass()
this.uploadGenerate = 'Upload'
this.captionGeneration = ''
this.selectGenerateList = []
this.generateList = []
}
this.upload.level1Type = menu.code
this.currentPage = 1,
this.total = 0,
this.searchPictureName = ''
this.imgList = [],
this.sex = 'Female',
this.designType = 'Outwear',
this.selectImgList = []
this.selectSingleImg = {}
this.getLibraryList()
this.getClass()
this.uploadGenerate = 'Upload'
this.captionGeneration = ''
this.selectGenerateList = []
this.generateList = []
}
},
@@ -671,9 +697,17 @@ export default defineComponent({
// ).catch((res)=>{
// this.closeRenameModal()
// });
console.log(this.value);
let labelArr:any = []
this.value.editLabelValue.forEach((item:any)=>{
// if(item.length > 1){
// labelArr.push(item[item.length-1])
// }else{
// }
labelArr.push(item[item.length-1])
})
let designType = this.selectCode == 'Sketchboard' || this.selectCode == 'MarketingSketch' ? this.designType : ''
let data2 = {
@@ -686,16 +720,16 @@ export default defineComponent({
"updateTime": "",
"userId": 0
}
Https.axiosPost(Https.httpUrls.relationLibrary, data2).then(
(rv: any) => {
console.log(rv);
this.getLibraryList()
this.closeRenameModal()
// Https.axiosPost(Https.httpUrls.relationLibrary, data2).then(
// (rv: any) => {
// console.log(rv);
// this.getLibraryList()
// this.closeRenameModal()
}
).catch((res)=>{
this.closeRenameModal()
});
// }
// ).catch((res)=>{
// this.closeRenameModal()
// });
},
//打开修改名称弹窗
@@ -706,10 +740,48 @@ export default defineComponent({
this.newPicName = ''
return
}
let classData = {
"classificationIdList": [],
"classificationName": "",
"createTime": "",
"deleteConfirm": 0,
"id": 0,
"isDeleted": 0,
"libraryIdList": [data.id],
"parentId": 0,
"type": "",
"updateTime": "",
"userId": 0
}
if(type === 'single'){
this.selectSingleImg = data
this.newPicName = data.name
Https.axiosPost(Https.httpUrls.getRelClassificationIdList, classData).then(
(rv: any) => {
let arr:any = []
this.options.forEach((item:any)=>{
rv.forEach((rvItem:any) => {
if(item.id == rvItem){
arr.push(item.id)
}else{
item.childList.forEach((optionsItem:any) => {
if(optionsItem.id == rvItem){
arr.push([optionsItem.parentId,optionsItem.id])
}
});
}
});
})
this.value.editLabelValue = arr
}
).catch((res)=>{
});
}
this.renameType = type
this.labelOpen.labelOpen = false
this.renameVisivle = true
@@ -718,11 +790,12 @@ export default defineComponent({
},
uploadGenerateOpen(str:any){
if(this.uploadGenerate == str){
this.uploadGenerate = str
}else{
this.uploadGenerate = str
if(this.uploadGenerate == 'Generate'){
if(str != 'Generate'){
this.getLibraryList()
}
}
this.uploadGenerate = str
},
//删除单个图片
deleteSinglePic(data:any,index:any){
@@ -989,6 +1062,12 @@ export default defineComponent({
}
},
getgenerate(){
if(this.isTest){//试用用户禁止使用
message.warning(
this.t('isTest.available')
);
return
}
let generateType = this.checkbox.filter((v:any)=>v.type)[0].name
let generageImg = this.selectGenerateList.filter((v:any)=>v.checked)[0]
let data = {
@@ -1040,6 +1119,8 @@ export default defineComponent({
arr = {
id:v.generateItemId,
imgUrl:v.generateItemUrl,
like:v.isLiked
}
this.generateList.push(arr)
})
@@ -1054,37 +1135,40 @@ export default defineComponent({
dropdownVisibleChange(){
this.labelOpen.labelOpen = true
document.addEventListener('click',this.setClick)
nextTick().then(()=>{
let cascader = document.getElementsByClassName('libraryPageCascader')[0]
let cascaderChild = cascader.children[0].children[0]
cascader.addEventListener('click',(event)=>{
event.stopPropagation()
})
if(cascader.children[0].children[0].children.length > 1){
}else{
// nextTick().then(()=>{
// let cascader = document.getElementsByClassName('libraryPageCascader')[0]
// let cascaderChild = cascader.children[0].children[0]
// cascader.addEventListener('click',(event)=>{
// event.stopPropagation()
// })
// if(cascader.children[0].children[0].children.length > 1){
// }else{
let button1:any = document.createElement("span")
button1.classList.add('started_btn','cascader_btn1')
let button2:any = document.createElement("span")
button2.classList.add('started_btn','cascader_btn2')
let divMax:any = document.createElement("div")
divMax.classList.add('cascader_btn_max')
button1.textContent = 'redact'
// button2.textContent = '删除'
button1.addEventListener('click',this.addLabel,false)
// button2.addEventListener('click',this.removeLabel,false)
divMax.appendChild(button1)
// divMax.appendChild(button2)
cascaderChild?.insertAdjacentElement("afterbegin", divMax);
// let button1:any = document.createElement("span")
// button1.classList.add('started_btn','cascader_btn1')
// let button2:any = document.createElement("span")
// button2.classList.add('started_btn','cascader_btn2')
// let divMax:any = document.createElement("div")
// divMax.classList.add('cascader_btn_max')
// button1.textContent = 'redact'
// // button2.textContent = '删除'
// button1.addEventListener('click',this.addLabel,false)
// // button2.addEventListener('click',this.removeLabel,false)
// divMax.appendChild(button1)
// // divMax.appendChild(button2)
// cascaderChild?.insertAdjacentElement("afterbegin", divMax);
// cascader.addEventListener('click',this.cascaderClick)
}
})
// // cascader.addEventListener('click',this.cascaderClick)
// }
// })
},
// cascaderClick(e:Event){
// console.log(e.target)
// },
setLabel1(value:any,selectedOptions:any){
setLabel1(value:any){
console.log(value);
console.log(this.value.labelValue);
// this.value.labelValue = [[31,32],[31,33],[31,35],[31,40],[31,41],[31,42]]
let myCascader:any = this.$refs.cascader
},
setClick(){
@@ -1136,6 +1220,16 @@ export default defineComponent({
(rv: any) => {
console.log(rv);
this.options = rv
rv.forEach((rvItem:any,rvIndex:number) => {
this.options[rvIndex].value = rvItem.id
this.options[rvIndex].label = rvItem.classificationName
rvItem.childList.forEach((childItem:any,index:number) => {
this.options[rvIndex].childList[index].value = childItem.id
this.options[rvIndex].childList[index].label = childItem.classificationName
});
});
console.log(this.options);
}
).catch((res)=>{
@@ -1301,7 +1395,23 @@ export default defineComponent({
color: #C2C2C2;
}
}
.search_cascader{
width: 60%;
display: flex;
position: relative;
.search_cascader_checkbox{
position: absolute;
top: 3rem;
background: #fff;
z-index: 2;
border: 1px solid;
.ant-checkbox-group{
display: flex;
flex-direction: column;
}
}
}
.search_icon_block{
width: 5.2rem;
height: 2.8rem;
@@ -1580,6 +1690,9 @@ export default defineComponent({
.operate_icon{
font-size: 1.8rem;
color: #fff;
&.fi-sr-heart{
color: red;
}
}
}
}

View File

@@ -453,7 +453,9 @@ export default defineComponent({
if (rv) {
this.createTimer();
let token = rv.token;
let isTest = true
setCookie("token", token);
setCookie("isTest", isTest);
setCookie("userInfo", JSON.stringify(rv));
this.turnToHomePage();
}