封装设置衣服类型的下拉菜单
This commit is contained in:
@@ -47,7 +47,9 @@
|
|||||||
v-show="file?.status === 'done'"
|
v-show="file?.status === 'done'"
|
||||||
>
|
>
|
||||||
<img :src="file?.url" class="upload_img" />
|
<img :src="file?.url" class="upload_img" />
|
||||||
<div class="operate_file_block" v-show="selectCode == 'Sketchboard'">
|
<sketchCategory v-if="selectCode == 'Sketchboard'" :disignTypeList="sketchCatecoryList" :generateList="uploadList" :item="file" ></sketchCategory>
|
||||||
|
|
||||||
|
<!-- <div class="operate_file_block" v-show="selectCode == 'Sketchboard'">
|
||||||
<div class="select_img_type">
|
<div class="select_img_type">
|
||||||
<div
|
<div
|
||||||
class="select_category"
|
class="select_category"
|
||||||
@@ -89,7 +91,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
<div
|
<div
|
||||||
class="delete_file_block"
|
class="delete_file_block"
|
||||||
@click.stop="deleteFile(index)"
|
@click.stop="deleteFile(index)"
|
||||||
@@ -136,48 +138,7 @@
|
|||||||
<div class="content_img_item" v-for="(file) in clothesList" :key="file.id" :class="{active:selectCode !== 'Moodboard'}">
|
<div class="content_img_item" v-for="(file) in clothesList" :key="file.id" :class="{active:selectCode !== 'Moodboard'}">
|
||||||
<div class="content_img_item_block" :class="{active:file?.checked}">
|
<div class="content_img_item_block" :class="{active:file?.checked}">
|
||||||
<img :class="[ selectCode == 'Printboard' ? 'print_content_img' : 'content_img']" v-lazy="file.url" :key="file.url" :alt="file.name" @click.stop="selectImgItem(file)"/>
|
<img :class="[ selectCode == 'Printboard' ? 'print_content_img' : 'content_img']" v-lazy="file.url" :key="file.url" :alt="file.name" @click.stop="selectImgItem(file)"/>
|
||||||
<div v-if="selectCode == 'Sketchboard'" class="operate_file_block">
|
<sketchCategory v-if="selectCode == 'Sketchboard'" :disignTypeList="sketchCatecoryList" :generateList="clothesList" :item="file" ></sketchCategory>
|
||||||
<div class="select_img_type">
|
|
||||||
<div
|
|
||||||
class="select_category"
|
|
||||||
@click.stop="showFileCategory(file)"
|
|
||||||
>
|
|
||||||
{{ file.level2Type }}
|
|
||||||
<div
|
|
||||||
v-if="!body"
|
|
||||||
:class="[
|
|
||||||
'icon',
|
|
||||||
'iconfont',
|
|
||||||
'icon-xiala',
|
|
||||||
file.categoryShow
|
|
||||||
? 'icon_rotate'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-if="!body"
|
|
||||||
class="category_list"
|
|
||||||
v-show="file.categoryShow"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'category_item',
|
|
||||||
file.level2Type == cate.value
|
|
||||||
? 'select_category_item'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
v-for="(
|
|
||||||
cate, index
|
|
||||||
) in disignTypeList"
|
|
||||||
:key="index"
|
|
||||||
@click.stop="selectFileCategory(file, cate)"
|
|
||||||
>
|
|
||||||
{{ cate.value }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-show="total > clothesList.length" class="material_content_list_loding" v-observe>
|
<div v-show="total > clothesList.length" class="material_content_list_loding" v-observe>
|
||||||
@@ -307,10 +268,12 @@ import DesignDetailEnd from './DesignDetailEnd.vue';
|
|||||||
import { getCookie } from "@/tool/cookie";
|
import { getCookie } from "@/tool/cookie";
|
||||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import sketchCategory from "@/component/HomePage/sketchCategory.vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
props: ["msg"],
|
props: ["msg"],
|
||||||
components:{
|
components:{
|
||||||
Draggable,Sketch,DesignDetailEnd,Chrome
|
Draggable,Sketch,DesignDetailEnd,Chrome,sketchCategory
|
||||||
},
|
},
|
||||||
setup(prop) {
|
setup(prop) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
@@ -321,10 +284,7 @@ export default defineComponent({
|
|||||||
let body = inject('body')//父组件传过来的数据
|
let body = inject('body')//父组件传过来的数据
|
||||||
let openClick = ref(1);
|
let openClick = ref(1);
|
||||||
let searchPictureName = ref('')
|
let searchPictureName = ref('')
|
||||||
//模型印花
|
|
||||||
let disignTypeList = [
|
|
||||||
|
|
||||||
]
|
|
||||||
let total = ref(0)
|
let total = ref(0)
|
||||||
let pageSize = ref(10)
|
let pageSize = ref(10)
|
||||||
let currentPage = ref(1)
|
let currentPage = ref(1)
|
||||||
@@ -342,14 +302,15 @@ export default defineComponent({
|
|||||||
let selectColorList = ref({
|
let selectColorList = ref({
|
||||||
})
|
})
|
||||||
let workspace = ref({})
|
let workspace = ref({})
|
||||||
|
let sketchCatecoryList = computed(()=>{
|
||||||
|
return store.state.Workspace.workspacePosition
|
||||||
|
})
|
||||||
let {t} = useI18n()
|
let {t} = useI18n()
|
||||||
return{
|
return{
|
||||||
store,
|
store,
|
||||||
current,
|
current,
|
||||||
openClick,
|
openClick,
|
||||||
searchPictureName,
|
searchPictureName,
|
||||||
disignTypeList,
|
|
||||||
total,
|
total,
|
||||||
pageSize,
|
pageSize,
|
||||||
currentPage,
|
currentPage,
|
||||||
@@ -367,6 +328,7 @@ export default defineComponent({
|
|||||||
workspace,
|
workspace,
|
||||||
driver__,
|
driver__,
|
||||||
body,
|
body,
|
||||||
|
sketchCatecoryList,
|
||||||
t,
|
t,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -435,18 +397,7 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
computed:{
|
computed:{
|
||||||
getSketchLabel(value) {
|
|
||||||
return (value) => {
|
|
||||||
let lable = "";
|
|
||||||
for (let item of this.disignTypeList) {
|
|
||||||
if (item.value === value) {
|
|
||||||
value = item.value;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return lable;
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
getSelectRGB(selectColor){
|
getSelectRGB(selectColor){
|
||||||
|
|
||||||
@@ -484,7 +435,6 @@ export default defineComponent({
|
|||||||
workspaceCom(newVal,oldVal){
|
workspaceCom(newVal,oldVal){
|
||||||
this.workspace = newVal
|
this.workspace = newVal
|
||||||
this.upload.gender = newVal?.sexEnum?.name
|
this.upload.gender = newVal?.sexEnum?.name
|
||||||
this.getPosition()
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
@@ -552,28 +502,7 @@ export default defineComponent({
|
|||||||
return this.store?.state?.Workspace?.workspace
|
return this.store?.state?.Workspace?.workspace
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getPosition(){
|
|
||||||
let params
|
|
||||||
if(this.workspace.sexEnum.name == 'Female'){
|
|
||||||
params = 'FemalePosition'
|
|
||||||
}else{
|
|
||||||
params = 'MalePosition'
|
|
||||||
}
|
|
||||||
Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:params}}).then((rv) => {
|
|
||||||
if (rv) {
|
|
||||||
// let arr = []
|
|
||||||
// rv.forEach((item) => {
|
|
||||||
// let obj = {
|
|
||||||
// value:item.value,
|
|
||||||
// name:item.name,
|
|
||||||
// key:item.key,
|
|
||||||
// }
|
|
||||||
// arr.push(obj)
|
|
||||||
// });
|
|
||||||
this.disignTypeList = rv
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
deleteFile(num){
|
deleteFile(num){
|
||||||
this.uploadList.splice(num, 1)
|
this.uploadList.splice(num, 1)
|
||||||
},
|
},
|
||||||
@@ -586,6 +515,12 @@ export default defineComponent({
|
|||||||
file.id = res.data.id;
|
file.id = res.data.id;
|
||||||
file.url = res.data.url;
|
file.url = res.data.url;
|
||||||
file.resData = res.data;
|
file.resData = res.data;
|
||||||
|
this.sketchCatecoryList.forEach((item) => {
|
||||||
|
if(item.value == res.data.level2Type){
|
||||||
|
file.categoryValue = item?.name;
|
||||||
|
file.category = item?.value;
|
||||||
|
}
|
||||||
|
});
|
||||||
file.designType = res.data.designType
|
file.designType = res.data.designType
|
||||||
let type = this.body?this.current.type:res.data.level2Type
|
let type = this.body?this.current.type:res.data.level2Type
|
||||||
file.level2Type = type;
|
file.level2Type = type;
|
||||||
@@ -653,31 +588,6 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
// this.getLibraryList('Moodboard')
|
// this.getLibraryList('Moodboard')
|
||||||
// this.getLibraryList('Printboard')
|
// this.getLibraryList('Printboard')
|
||||||
|
|
||||||
showFileCategory(file) {
|
|
||||||
file.categoryShow = true;
|
|
||||||
document.addEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
selectFileCategory(file, cate) {
|
|
||||||
file.level2Type = cate.name;
|
|
||||||
for (let item of this.clothesList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
for (let item of this.uploadList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
this.setSketchLibrary(file)
|
|
||||||
let DesignDetailEnd = this.$refs.DesignDetailEnd
|
|
||||||
if(DesignDetailEnd.sketchImg.id == file.id){
|
|
||||||
this.selectImgItem(file)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
hiddenFileCategory() {
|
|
||||||
for (let item of this.clothesList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
document.removeEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
setSketchLibrary(item){
|
setSketchLibrary(item){
|
||||||
let data = {
|
let data = {
|
||||||
libraryId:[item.id],
|
libraryId:[item.id],
|
||||||
@@ -727,10 +637,18 @@ export default defineComponent({
|
|||||||
size:this.pageSize+this.clothesList.length,
|
size:this.pageSize+this.clothesList.length,
|
||||||
}
|
}
|
||||||
this.isShowLoading = true
|
this.isShowLoading = true
|
||||||
|
|
||||||
Https.axiosPost(Https.httpUrls.queryLibraryPage,data).then(
|
Https.axiosPost(Https.httpUrls.queryLibraryPage,data).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
|
if(this.selectCode == 'Sketchboard'){
|
||||||
|
rv.content.forEach((vItem)=>{
|
||||||
|
this.sketchCatecoryList.forEach((item) => {
|
||||||
|
if(item.value == vItem.level2Type){
|
||||||
|
vItem.categoryValue = item.name
|
||||||
|
vItem.category = item.value
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
this.clothesList = rv.content
|
this.clothesList = rv.content
|
||||||
this.isShowLoading = false
|
this.isShowLoading = false
|
||||||
this.total = rv.total
|
this.total = rv.total
|
||||||
|
|||||||
@@ -408,7 +408,6 @@ export default defineComponent({
|
|||||||
}else{
|
}else{
|
||||||
num = 1
|
num = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
this.singleTypeList = this.position[num].value
|
this.singleTypeList = this.position[num].value
|
||||||
this.store.commit("setWorkspacePosition", this.position[num].value);
|
this.store.commit("setWorkspacePosition", this.position[num].value);
|
||||||
|
|
||||||
@@ -421,11 +420,21 @@ export default defineComponent({
|
|||||||
await new Promise(async (resolve) => {
|
await new Promise(async (resolve) => {
|
||||||
await Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:'FemalePosition'}}).then((rv: any) => {
|
await Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:'FemalePosition'}}).then((rv: any) => {
|
||||||
if (rv) {
|
if (rv) {
|
||||||
|
rv.forEach((item:any) => {
|
||||||
|
let name = item.name
|
||||||
|
item.name = item.value
|
||||||
|
item.value = name
|
||||||
|
});
|
||||||
this.position[0].value = rv
|
this.position[0].value = rv
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
await Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:'MalePosition'}}).then((rv: any) => {
|
await Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:'MalePosition'}}).then((rv: any) => {
|
||||||
if (rv) {
|
if (rv) {
|
||||||
|
rv.forEach((item:any) => {
|
||||||
|
let name = item.name
|
||||||
|
item.name = item.value
|
||||||
|
item.value = name
|
||||||
|
});
|
||||||
this.position[1].value = rv
|
this.position[1].value = rv
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal_img">
|
<div class="modal_img">
|
||||||
<div class="modal_img_item" v-for="color,index in colorList" :class="[ index == 1?'Guide_1_11_1':'',driver__.driver?'showEvents':'']" :key="color" >
|
<div class="modal_img_item" v-for="color,index in colorList" :class="[ index == 1?'Guide_1_11_1':'',driver__.driver?'showEvents':'']" :key="color" >
|
||||||
<div @click="selectColorItem(index,color)" :class="['upload_color',selectIndex === index ? 'select_upload_color' : '',]" :style="{background:`rgba(${color?.r},${color?.g},${color?.b},${color?.a})`,'background-image':color?.gradient?`linear-gradient(${color?.gradient?.angle}deg,${setGradient(color.gradient)})`:'none'}">
|
<div @click="selectColorItem(index,color)" :class="['upload_color',selectIndex === index ? 'select_upload_color' : '',]" :style="{background:`rgba(${color?.r},${color?.g},${color?.b},${color?.a})`}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@@ -49,27 +49,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="color_setting_operate" v-show="gradientShow">
|
|
||||||
<div class="color_setting_operate_item color_setting_operate_control">
|
|
||||||
<div class="operate_item_box">
|
|
||||||
<div>线性</div>
|
|
||||||
</div>
|
|
||||||
<div class="operate_item_box operate_item_angle">
|
|
||||||
<div class="operate_item_angle_box" @mousedown="mousedownGradientAngle($event)" @touchstart="mousedownGradientAngle($event)">
|
|
||||||
<div :style="{'transform':`rotate(${gradient.angle}deg)`}"></div>
|
|
||||||
</div>
|
|
||||||
<!-- <input type="number"> -->
|
|
||||||
</div>
|
|
||||||
<div class="operate_item_box">
|
|
||||||
<div>删除</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="color_setting_operate_item color_setting_operate_input">
|
|
||||||
<div class="color_setting_operate_bg" :style="{'background-image':`linear-gradient(90deg,${setGradient(gradient)})`}">
|
|
||||||
</div>
|
|
||||||
<div v-for="item,index in gradient.gradientList" :key="item" class="color_setting_operate_btn" :class="{'active':index == gradient.selectIndex}" :style="{'left':item.left,'background-color':`rgba(${item.rgba.r},${item.rgba.g},${item.rgba.b},${item.rgba.a})`}" @mousedown="mousedownGradient($event,item,index)" @touchstart="mousedownGradient($event,item,index)"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="color_review_block">
|
<!-- <div class="color_review_block">
|
||||||
<div class="clear_button" @click="clearCurrentColor()">Clear</div>
|
<div class="clear_button" @click="clearCurrentColor()">Clear</div>
|
||||||
@@ -167,30 +147,7 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
let driver__ = inject('driver__')
|
let driver__ = inject('driver__')
|
||||||
let {t} = useI18n()
|
let {t} = useI18n()
|
||||||
let gradient = ref({
|
|
||||||
gradientList:[
|
|
||||||
{
|
|
||||||
rgba:{
|
|
||||||
r:117,
|
|
||||||
g:119,
|
|
||||||
b:255,
|
|
||||||
a:1,
|
|
||||||
},
|
|
||||||
left:'0%'
|
|
||||||
},{
|
|
||||||
rgba:{
|
|
||||||
r:0,
|
|
||||||
g:222,
|
|
||||||
b:152,
|
|
||||||
a:1,
|
|
||||||
},
|
|
||||||
left:'100%'
|
|
||||||
},
|
|
||||||
],
|
|
||||||
angle:45,
|
|
||||||
selectIndex:-1,
|
|
||||||
})
|
|
||||||
let gradientShow = ref(false)
|
|
||||||
return {
|
return {
|
||||||
fileList,
|
fileList,
|
||||||
colorList,
|
colorList,
|
||||||
@@ -198,8 +155,6 @@ export default defineComponent({
|
|||||||
selectColorList,
|
selectColorList,
|
||||||
driver__,
|
driver__,
|
||||||
t,
|
t,
|
||||||
gradient,
|
|
||||||
gradientShow,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
@@ -214,21 +169,7 @@ export default defineComponent({
|
|||||||
handler(newVal,oldVal){
|
handler(newVal,oldVal){
|
||||||
this.colorList[this.selectIndex] = newVal.rgba
|
this.colorList[this.selectIndex] = newVal.rgba
|
||||||
let colorList =this.colorList.filter((v) => v && Object.keys(v).length)
|
let colorList =this.colorList.filter((v) => v && Object.keys(v).length)
|
||||||
if(this.gradient.selectIndex>-1 && this.gradientShow){
|
|
||||||
this.gradient.gradientList[this.gradient.selectIndex].color = `rgb(${newVal.rgba.r},${newVal.rgba.g},${newVal.rgba.b})`
|
|
||||||
this.gradient.gradientList[this.gradient.selectIndex].rgba = {
|
|
||||||
r:newVal.rgba.r,
|
|
||||||
g:newVal.rgba.g,
|
|
||||||
b:newVal.rgba.b,
|
|
||||||
a:1,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.colorList[this.selectIndex].gradient = JSON.parse(JSON.stringify(this.gradient))
|
|
||||||
if(this.gradientShow){
|
|
||||||
// this.colorList[this.selectIndex].gradient = JSON.parse(JSON.stringify(this.gradient))
|
|
||||||
}else{
|
|
||||||
this.colorList[this.selectIndex].gradient = ''
|
|
||||||
}
|
|
||||||
this.setColorboardList(colorList)
|
this.setColorboardList(colorList)
|
||||||
// this.clearSelectColor()
|
// this.clearSelectColor()
|
||||||
},
|
},
|
||||||
@@ -256,27 +197,6 @@ export default defineComponent({
|
|||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setGradient(){
|
|
||||||
// return this.setGradientAngle(gradient)
|
|
||||||
return (gradient)=>{
|
|
||||||
console.log(gradient,'222');
|
|
||||||
let gradientStr = ''
|
|
||||||
gradient.gradientList.sort((a, b) => {
|
|
||||||
let aArr = a.left.split('%')[0]
|
|
||||||
let bArr = b.left.split('%')[0]
|
|
||||||
return aArr - bArr;
|
|
||||||
});
|
|
||||||
gradient.gradientList.forEach((item,index)=>{
|
|
||||||
let str = ','
|
|
||||||
if(gradient.gradientList.length == index+1)str = ''
|
|
||||||
gradientStr += `rgba(${item.rgba.r},${item.rgba.g},${item.rgba.b},${item.rgba.a}) ${item.left}${str}`
|
|
||||||
|
|
||||||
})
|
|
||||||
console.log(`linear-gradient(${gradient.angle}deg, ${gradientStr})`);
|
|
||||||
return `${gradientStr}`
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
@@ -312,29 +232,9 @@ export default defineComponent({
|
|||||||
const backIcon = document.createElement('div');
|
const backIcon = document.createElement('div');
|
||||||
backIcon.classList.add('vc-sketch-color-wrap')
|
backIcon.classList.add('vc-sketch-color-wrap')
|
||||||
let dropperDom = document.getElementsByClassName("colorboard_upload_modal")[0].getElementsByClassName('vc-chrome-fields-wrap')[0]
|
let dropperDom = document.getElementsByClassName("colorboard_upload_modal")[0].getElementsByClassName('vc-chrome-fields-wrap')[0]
|
||||||
let colorDom = document.querySelector('.colorboard_upload_modal .vc-chrome-controls .vc-chrome-active-color')
|
|
||||||
// console.log(colorDom);
|
// console.log(colorDom);
|
||||||
dropperDom.appendChild(backIcon);
|
dropperDom.appendChild(backIcon);
|
||||||
colorDom.addEventListener('click',()=>{
|
|
||||||
// this.colorList[this.selectIndex]
|
|
||||||
console.log(123123123123);
|
|
||||||
this.gradient.selectIndex = 0
|
|
||||||
this.gradientShow = !this.gradientShow
|
|
||||||
if(this.gradientShow){
|
|
||||||
if(this.selectColor.rgba.r){
|
|
||||||
this.gradient.gradientList[this.gradient.selectIndex].rgba = {
|
|
||||||
r:this.selectColor.rgba.r,
|
|
||||||
g:this.selectColor.rgba.g,
|
|
||||||
b:this.selectColor.rgba.b,
|
|
||||||
a:1,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.colorList[this.selectIndex].gradient = JSON.parse(JSON.stringify(this.gradient))
|
|
||||||
}else{
|
|
||||||
this.colorList[this.selectIndex].gradient = ''
|
|
||||||
}
|
|
||||||
})
|
|
||||||
backIcon.addEventListener('click', async ()=>{
|
backIcon.addEventListener('click', async ()=>{
|
||||||
try {
|
try {
|
||||||
const dropper = new EyeDropper();
|
const dropper = new EyeDropper();
|
||||||
@@ -374,7 +274,6 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
//选择不同的色块
|
//选择不同的色块
|
||||||
selectColorItem(index,color){
|
selectColorItem(index,color){
|
||||||
this.gradientShow = false
|
|
||||||
let hex
|
let hex
|
||||||
if(color?.r){
|
if(color?.r){
|
||||||
hex = this.rgbaToHex([color.r,color.g,color.b,color.a?color.a:1])
|
hex = this.rgbaToHex([color.r,color.g,color.b,color.a?color.a:1])
|
||||||
@@ -619,59 +518,6 @@ export default defineComponent({
|
|||||||
this.selectColor = {rgba:this.colorList[0],hex:hex}, //顔色选择器默认颜色
|
this.selectColor = {rgba:this.colorList[0],hex:hex}, //顔色选择器默认颜色
|
||||||
this.store.commit('setColorboardList',colorList)
|
this.store.commit('setColorboardList',colorList)
|
||||||
},
|
},
|
||||||
mousedownGradient(event,item,index){
|
|
||||||
event.stopPropagation();
|
|
||||||
this.gradient.selectIndex = index
|
|
||||||
let gradientRgba = this.gradient.gradientList[index].rgba
|
|
||||||
let rgba = [gradientRgba.r,gradientRgba.g,gradientRgba.b,gradientRgba.a?gradientRgba.a:1]
|
|
||||||
let hex = this.rgbaToHex(rgba)
|
|
||||||
this.selectColor = {rgba:gradientRgba,hex:hex} //顔色选择器默认颜色
|
|
||||||
// isMoible() true为移动端
|
|
||||||
let gradientWidth = document.querySelector('.colorboard_upload_modal .color_setting_operate_bg').clientWidth
|
|
||||||
let position = {
|
|
||||||
x:event.x,
|
|
||||||
left:event.target.style.left?event.target.style.left.split('%')[0]:0
|
|
||||||
}
|
|
||||||
let mousedownGradient = (e)=>{
|
|
||||||
let left = (e.x - position.x)/gradientWidth*100+Number(position.left)
|
|
||||||
left = (left<0?0:left>100?100:left)
|
|
||||||
// event.target.style.left = (left<0?0:left>100?100:left)+'%'
|
|
||||||
item.left = left+'%'
|
|
||||||
}
|
|
||||||
let mouseupGradient = ()=>{
|
|
||||||
window.removeEventListener('mousemove',mousedownGradient)
|
|
||||||
window.removeEventListener('mouseup',mouseupGradient)
|
|
||||||
}
|
|
||||||
window.addEventListener('mousemove',mousedownGradient)
|
|
||||||
window.addEventListener('mouseup',mouseupGradient)
|
|
||||||
// event.target.addEventListener('touchmove',)
|
|
||||||
},
|
|
||||||
mousedownGradientAngle(event){
|
|
||||||
event.stopPropagation();
|
|
||||||
// isMoible() true为移动端
|
|
||||||
console.log(event.target.getBoundingClientRect());
|
|
||||||
let domPosition = event.target.getBoundingClientRect()
|
|
||||||
console.log(domPosition.x+domPosition.width/2);
|
|
||||||
let position = {
|
|
||||||
x:domPosition.x+domPosition.width/2,
|
|
||||||
y:domPosition.y+domPosition.height/2,
|
|
||||||
}
|
|
||||||
let angle = this.gradient.angle
|
|
||||||
let mousedownGradientAngle = (e)=>{
|
|
||||||
let X = position.x
|
|
||||||
let Y = position.y
|
|
||||||
let x = e.x - X
|
|
||||||
let y = Y - e.y
|
|
||||||
angle = Math.atan2(x,y)*(180 / Math.PI)
|
|
||||||
this.gradient.angle = angle
|
|
||||||
}
|
|
||||||
let mouseupGradientAngle = ()=>{
|
|
||||||
window.removeEventListener('mousemove',mousedownGradientAngle)
|
|
||||||
window.removeEventListener('mouseup',mouseupGradientAngle)
|
|
||||||
}
|
|
||||||
window.addEventListener('mousemove',mousedownGradientAngle)
|
|
||||||
window.addEventListener('mouseup',mouseupGradientAngle)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -78,46 +78,6 @@
|
|||||||
v-show="file?.status === 'done'"
|
v-show="file?.status === 'done'"
|
||||||
>
|
>
|
||||||
<img :src="file?.imgUrl" class="upload_img" />
|
<img :src="file?.imgUrl" class="upload_img" />
|
||||||
<div v-if="type_.type2 == 'Sketchboard'" class="operate_file_block">
|
|
||||||
<div class="select_img_type">
|
|
||||||
<div
|
|
||||||
class="select_category"
|
|
||||||
@click.stop="showFileCategory(file)"
|
|
||||||
>
|
|
||||||
{{ file.categoryValue }}
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'icon',
|
|
||||||
'iconfont',
|
|
||||||
'icon-xiala',
|
|
||||||
file.categoryShow
|
|
||||||
? 'icon_rotate'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="category_list"
|
|
||||||
v-show="file.categoryShow"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'category_item',
|
|
||||||
file.category == cate.name
|
|
||||||
? 'select_category_item'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
v-for="(
|
|
||||||
cate, index
|
|
||||||
) in sketchCatecoryList"
|
|
||||||
:key="index"
|
|
||||||
@click.stop="selectFileCategory(file, cate)"
|
|
||||||
>
|
|
||||||
{{ cate.value }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
class="delete_file_block"
|
class="delete_file_block"
|
||||||
:class="[driver__.driver?'hideEvents':'']"
|
:class="[driver__.driver?'hideEvents':'']"
|
||||||
@@ -742,23 +702,7 @@ export default defineComponent({
|
|||||||
message.warning(res.errMsg);
|
message.warning(res.errMsg);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
showFileCategory(file: any) {
|
|
||||||
file.categoryShow = true;
|
|
||||||
document.addEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
selectFileCategory(file: any, cate: any) {
|
|
||||||
file.categoryValue = cate?.value;
|
|
||||||
file.category = cate.name;
|
|
||||||
file.categoryShow = false
|
|
||||||
// this.store.commit("setSketchboardFile", this.sketchboardList);
|
|
||||||
},
|
|
||||||
hiddenFileCategory() {
|
|
||||||
for (let item of this.sketchboardList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
document.removeEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
|
|
||||||
setSketchboardItem(item:any){
|
setSketchboardItem(item:any){
|
||||||
if(this.checkboxImage){
|
if(this.checkboxImage){
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -21,46 +21,7 @@
|
|||||||
<div class="material_content_body scroll_style">
|
<div class="material_content_body scroll_style">
|
||||||
<div v-for="item,index in imgList" :key="item" class="content_img_item" :class="[ item?.checked ? 'active':'' , selectCode == 'Moodboard' ? 'moodb':'' ]" >
|
<div v-for="item,index in imgList" :key="item" class="content_img_item" :class="[ item?.checked ? 'active':'' , selectCode == 'Moodboard' ? 'moodb':'' ]" >
|
||||||
<img :src="item?.imgUrl" @click.stop="selectImgItem(item)">
|
<img :src="item?.imgUrl" @click.stop="selectImgItem(item)">
|
||||||
<div v-if="selectCode == 'Sketchboard'" class="operate_file_block">
|
<sketchCategory v-if="selectCode == 'Sketchboard'" :disignTypeList="disignTypeList" :generateList="imgList" :item="item" :isSetSketchCategory="true"></sketchCategory>
|
||||||
<div class="select_img_type">
|
|
||||||
<div
|
|
||||||
class="select_category"
|
|
||||||
@click.stop="showFileCategory(item)"
|
|
||||||
>
|
|
||||||
{{ item?.categoryValue }}
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'icon',
|
|
||||||
'iconfont',
|
|
||||||
'icon-xiala',
|
|
||||||
item?.categoryShow
|
|
||||||
? 'icon_rotate'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="category_list"
|
|
||||||
v-show="item?.categoryShow"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'category_item',
|
|
||||||
item?.category == cate.name
|
|
||||||
? 'select_category_item'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
v-for="(
|
|
||||||
cate, index
|
|
||||||
) in disignTypeList"
|
|
||||||
:key="index"
|
|
||||||
@click.stop="selectFileCategory(item, cate)"
|
|
||||||
>
|
|
||||||
{{ cate.value }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="pin_block">
|
<div v-if="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="pin_block">
|
||||||
<a-checkbox v-model:checked="item.pin">{{ $t('Material.PIN') }}</a-checkbox>
|
<a-checkbox v-model:checked="item.pin">{{ $t('Material.PIN') }}</a-checkbox>
|
||||||
</div>
|
</div>
|
||||||
@@ -86,8 +47,11 @@ import { useStore } from "vuex";
|
|||||||
import GO from '@/tool/GO';
|
import GO from '@/tool/GO';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||||
|
import sketchCategory from "@/component/HomePage/sketchCategory.vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
components: { sketchCategory },
|
||||||
|
|
||||||
props: ["msg",'disignTypeList'],
|
props: ["msg",'disignTypeList'],
|
||||||
setup(prop) {
|
setup(prop) {
|
||||||
let myMaterialModalShow = ref(false)
|
let myMaterialModalShow = ref(false)
|
||||||
@@ -388,35 +352,6 @@ export default defineComponent({
|
|||||||
this.isShowLoading = false
|
this.isShowLoading = false
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
showFileCategory(file: any) {
|
|
||||||
file.categoryShow = true;
|
|
||||||
document.addEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
selectFileCategory(file: any, cate: any) {
|
|
||||||
file.categoryValue = cate.value;
|
|
||||||
file.category = cate.name;
|
|
||||||
for (let item of (this.imgList as any)) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
this.setSketchLibrary(file)
|
|
||||||
},
|
|
||||||
hiddenFileCategory() {
|
|
||||||
for (let item of (this.imgList as any)) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
document.removeEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
setSketchLibrary(item:any){
|
|
||||||
let data = {
|
|
||||||
libraryId:[item.id],
|
|
||||||
level2Type:item.category,
|
|
||||||
}
|
|
||||||
Https.axiosPost(Https.httpUrls.setSketchLibrary,data).then(
|
|
||||||
(rv: any) => {
|
|
||||||
}
|
|
||||||
).catch((res)=>{
|
|
||||||
});
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -46,51 +46,7 @@
|
|||||||
v-show="file?.status === 'done'"
|
v-show="file?.status === 'done'"
|
||||||
>
|
>
|
||||||
<img :src="file?.imgUrl" class="upload_img" />
|
<img :src="file?.imgUrl" class="upload_img" />
|
||||||
<div class="operate_file_block">
|
<sketchCategory :disignTypeList="sketchCatecoryList" :generateList="fileList" :item="file" :driver__="driver__.driver"></sketchCategory>
|
||||||
<div class="select_img_type">
|
|
||||||
<div
|
|
||||||
class="select_category"
|
|
||||||
@click.stop="showFileCategory(file)"
|
|
||||||
>
|
|
||||||
{{ file.categoryValue }}
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'icon',
|
|
||||||
'iconfont',
|
|
||||||
'icon-xiala',
|
|
||||||
file.categoryShow
|
|
||||||
? 'icon_rotate'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="category_list"
|
|
||||||
v-show="file.categoryShow"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'category_item',
|
|
||||||
file.category == cate.value
|
|
||||||
? 'select_category_item'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
v-for="(
|
|
||||||
cate, index
|
|
||||||
) in sketchCatecoryList"
|
|
||||||
:key="index"
|
|
||||||
@click="
|
|
||||||
selectFileCategory(
|
|
||||||
file,
|
|
||||||
cate
|
|
||||||
)
|
|
||||||
"
|
|
||||||
>
|
|
||||||
{{ cate.value }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
class="delete_like_file_block"
|
class="delete_like_file_block"
|
||||||
@click.stop="deleteFile(file)"
|
@click.stop="deleteFile(file)"
|
||||||
@@ -196,53 +152,7 @@
|
|||||||
<div v-for="item,index in generateList" class="modal_imgItem Guide_1_13_2" :class="[driver__.driver?'showEvents':'',item?.checked?'active':'']">
|
<div v-for="item,index in generateList" class="modal_imgItem Guide_1_13_2" :class="[driver__.driver?'showEvents':'',item?.checked?'active':'']">
|
||||||
<img v-show="item.status != 'Success'" src="@/assets/images/homePage/loading.gif" alt="">
|
<img v-show="item.status != 'Success'" src="@/assets/images/homePage/loading.gif" alt="">
|
||||||
<img v-show="item.status == 'Success'" :src="item.imgUrl" @click.stop="generageAdd(item)">
|
<img v-show="item.status == 'Success'" :src="item.imgUrl" @click.stop="generageAdd(item)">
|
||||||
<div class="operate_file_block" :class="[driver__.driver?'hideEvents':'']">
|
<sketchCategory :disignTypeList="sketchCatecoryList" :generateList="generateList" :item="item" :driver__="driver__.driver" ></sketchCategory>
|
||||||
<div class="select_img_type">
|
|
||||||
<div
|
|
||||||
class="select_category Guide_1_13"
|
|
||||||
@click.stop="showFileCategory(item)"
|
|
||||||
>
|
|
||||||
{{ item.categoryValue }}
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'icon',
|
|
||||||
'iconfont',
|
|
||||||
'icon-xiala',
|
|
||||||
item.categoryShow
|
|
||||||
? 'icon_rotate'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="category_list Guide_1_13_1"
|
|
||||||
:class="[driver__.driver?'showEvents':'']"
|
|
||||||
v-show="item.categoryShow"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
:class="[
|
|
||||||
'category_item',
|
|
||||||
item.category == cate.name
|
|
||||||
? 'select_category_item'
|
|
||||||
: '',
|
|
||||||
]"
|
|
||||||
v-for="(
|
|
||||||
cate, index
|
|
||||||
) in sketchCatecoryList"
|
|
||||||
:key="index"
|
|
||||||
@click.stop="
|
|
||||||
selectFileCategory(
|
|
||||||
item,
|
|
||||||
cate
|
|
||||||
)
|
|
||||||
"
|
|
||||||
>
|
|
||||||
{{ cate.value }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
class="delete_like_file_block"
|
class="delete_like_file_block"
|
||||||
>
|
>
|
||||||
@@ -287,8 +197,10 @@ import scaleImage from "@/component/HomePage/scaleImage.vue";
|
|||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
|
import sketchCategory from "@/component/HomePage/sketchCategory.vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { Material, Generate,scaleImage },
|
components: { Material, Generate,scaleImage,sketchCategory },
|
||||||
setup() {
|
setup() {
|
||||||
let fileList: any = ref([
|
let fileList: any = ref([
|
||||||
]);
|
]);
|
||||||
@@ -521,7 +433,7 @@ export default defineComponent({
|
|||||||
name:'',
|
name:'',
|
||||||
}
|
}
|
||||||
this.sketchCatecoryList.forEach((item:any) => {
|
this.sketchCatecoryList.forEach((item:any) => {
|
||||||
if(item.name == res.data.level2Type){
|
if(item.value == res.data.level2Type){
|
||||||
category.value = item?.value
|
category.value = item?.value
|
||||||
category.name = item?.name
|
category.name = item?.name
|
||||||
}
|
}
|
||||||
@@ -530,8 +442,8 @@ export default defineComponent({
|
|||||||
file.resData = res.data;
|
file.resData = res.data;
|
||||||
// file.pin = false;
|
// file.pin = false;
|
||||||
//category用来数据处理
|
//category用来数据处理
|
||||||
file.categoryValue = category?.value;
|
file.categoryValue = category?.name;
|
||||||
file.category = category?.name;
|
file.category = category?.value;
|
||||||
file.categoryShow = false;
|
file.categoryShow = false;
|
||||||
file.id_ = GO.id++
|
file.id_ = GO.id++
|
||||||
file.id = res.data.id
|
file.id = res.data.id
|
||||||
@@ -580,58 +492,6 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
|
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
|
||||||
},
|
},
|
||||||
|
|
||||||
showFileCategory(file: any) {
|
|
||||||
file.categoryShow = true;
|
|
||||||
nextTick().then(()=>{
|
|
||||||
if(this.driver__.driver){
|
|
||||||
driverObj__.moveNext()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
document.addEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
|
|
||||||
selectFileCategory(file: any, cate: any) {
|
|
||||||
if(this.openClick == 3){
|
|
||||||
for (let item of this.generateList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
file.categoryValue = cate.value;
|
|
||||||
file.category = cate.name;
|
|
||||||
if(this.driver__.driver){
|
|
||||||
driverObj__.moveNext()
|
|
||||||
}
|
|
||||||
// this.store.commit("sketchGenerateFiles", this.fileList);
|
|
||||||
}else{
|
|
||||||
for (let item of this.fileList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
file.categoryValue = cate.value;
|
|
||||||
file.category = cate.name;
|
|
||||||
this.store.commit("setSketchboardFile", this.fileList);
|
|
||||||
nextTick().then(()=>{
|
|
||||||
if(this.driver__.driver){
|
|
||||||
driverObj__.moveNext()
|
|
||||||
// driverObj__.moveTo(13)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
hiddenFileCategory() {
|
|
||||||
if(this.openClick == 3){
|
|
||||||
for (let item of this.generateList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
for (let item of this.fileList) {
|
|
||||||
item.categoryShow = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
document.removeEventListener("click", this.hiddenFileCategory);
|
|
||||||
},
|
|
||||||
|
|
||||||
ifMaximumLength(){
|
ifMaximumLength(){
|
||||||
clearTimeout(this.inputTime)
|
clearTimeout(this.inputTime)
|
||||||
let inputBox = document.getElementsByClassName('sketchboard_upload_modal')[0].getElementsByClassName('input_box')[0]
|
let inputBox = document.getElementsByClassName('sketchboard_upload_modal')[0].getElementsByClassName('input_box')[0]
|
||||||
@@ -882,9 +742,9 @@ export default defineComponent({
|
|||||||
element.id_ = GO.id++
|
element.id_ = GO.id++
|
||||||
if(element.category){
|
if(element.category){
|
||||||
this.sketchCatecoryList.forEach((itemCategory:any) => {
|
this.sketchCatecoryList.forEach((itemCategory:any) => {
|
||||||
if(itemCategory.name == element.category){
|
if(itemCategory.value == element.category){
|
||||||
element.categoryValue = itemCategory?.value
|
element.categoryValue = itemCategory?.name
|
||||||
element.category = itemCategory?.name
|
element.category = itemCategory?.value
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
197
src/component/HomePage/sketchCategory.vue
Normal file
197
src/component/HomePage/sketchCategory.vue
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
<template>
|
||||||
|
<div class="operate_file_block">
|
||||||
|
<div class="select_img_type">
|
||||||
|
<div
|
||||||
|
class="select_category"
|
||||||
|
@click.stop="showFileCategory(item)"
|
||||||
|
>
|
||||||
|
{{ item.categoryValue }}
|
||||||
|
<div
|
||||||
|
:class="[
|
||||||
|
'icon',
|
||||||
|
'iconfont',
|
||||||
|
'icon-xiala',
|
||||||
|
item.categoryShow
|
||||||
|
? 'icon_rotate'
|
||||||
|
: '',
|
||||||
|
]"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="category_list"
|
||||||
|
v-show="item.categoryShow"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
:class="[
|
||||||
|
'category_item',
|
||||||
|
item.category == cate.value
|
||||||
|
? 'select_category_item'
|
||||||
|
: '',
|
||||||
|
]"
|
||||||
|
v-for="(
|
||||||
|
cate, index
|
||||||
|
) in disignTypeList"
|
||||||
|
:key="index"
|
||||||
|
@click="
|
||||||
|
selectFileCategory(
|
||||||
|
item,
|
||||||
|
cate
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ cate.name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent,ref ,nextTick} from "vue";
|
||||||
|
import { Https } from "@/tool/https";
|
||||||
|
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||||
|
export default defineComponent({
|
||||||
|
name:'filterComponent',
|
||||||
|
props:{
|
||||||
|
disignTypeList:{
|
||||||
|
type:Object
|
||||||
|
},
|
||||||
|
item:{
|
||||||
|
type:Object
|
||||||
|
},
|
||||||
|
generateList:{
|
||||||
|
type:Array
|
||||||
|
},
|
||||||
|
isSetSketchCategory:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
|
},
|
||||||
|
driver__:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setup(props:any){
|
||||||
|
let showFileCategory = (file:any)=> {
|
||||||
|
file.categoryShow = true;
|
||||||
|
nextTick().then(()=>{
|
||||||
|
if(props.driver__.driver){
|
||||||
|
driverObj__.moveNext()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
document.addEventListener("click", hiddenFileCategory);
|
||||||
|
}
|
||||||
|
let hiddenFileCategory = () => {
|
||||||
|
for (let item of props.generateList) {
|
||||||
|
item.categoryShow = false;
|
||||||
|
}
|
||||||
|
document.removeEventListener("click", hiddenFileCategory);
|
||||||
|
}
|
||||||
|
let selectFileCategory = (file: any, cate: any) => {
|
||||||
|
for (let item of props.generateList) {
|
||||||
|
item.categoryShow = false;
|
||||||
|
}
|
||||||
|
file.categoryValue = cate.name;
|
||||||
|
file.category = cate.value;
|
||||||
|
if(props.isSetSketchCategory){
|
||||||
|
setSketchLibrary(props.item)
|
||||||
|
}
|
||||||
|
if(props.driver__.driver){
|
||||||
|
driverObj__.moveNext()
|
||||||
|
}
|
||||||
|
// this.store.commit("sketchGenerateFiles", this.fileList);
|
||||||
|
|
||||||
|
}
|
||||||
|
let setSketchLibrary = (item:any)=>{
|
||||||
|
let data = {
|
||||||
|
libraryId:[item.id],
|
||||||
|
level2Type:item.category,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.setSketchLibrary,data).then(
|
||||||
|
(rv: any) => {
|
||||||
|
}
|
||||||
|
).catch((res)=>{
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
showFileCategory,
|
||||||
|
selectFileCategory,
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
//衣服类型下拉菜单
|
||||||
|
.operate_file_block{
|
||||||
|
width: 100%;
|
||||||
|
height: 3rem;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
color: #FFFFFF;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
|
||||||
|
.select_img_type{
|
||||||
|
height: 100%;
|
||||||
|
line-height: 3rem;
|
||||||
|
text-align: center;
|
||||||
|
background: rgba(0,0,0,0.6);
|
||||||
|
position: relative;
|
||||||
|
overflow: initial !important;
|
||||||
|
.select_category{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
.icon-xiala{
|
||||||
|
margin-left: 0.8rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_rotate{
|
||||||
|
-moz-transform:rotate(180deg);
|
||||||
|
-webkit-transform:rotate(180deg);
|
||||||
|
transform: rotate(180deg);
|
||||||
|
animation-direction: 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category_list{
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
cursor: pointer;
|
||||||
|
position: absolute;
|
||||||
|
// top: 3.1rem;
|
||||||
|
margin-top: .2rem;
|
||||||
|
left: 0;
|
||||||
|
// background: rgba(0,0,0,0.4);
|
||||||
|
background-color: rgb(177 177 177);
|
||||||
|
border: 1px solid #343579;
|
||||||
|
border-radius: 0.8rem;
|
||||||
|
// overflow: hidden;
|
||||||
|
z-index: 3;
|
||||||
|
height: 9rem;
|
||||||
|
overflow-x: hidden;
|
||||||
|
&.category_list::-webkit-scrollbar{display: none;}
|
||||||
|
|
||||||
|
.category_item{
|
||||||
|
text-align: left;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
padding: 1rem 1.5rem;
|
||||||
|
line-height: 1.6rem;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #595959;
|
||||||
|
|
||||||
|
&.select_category_item{
|
||||||
|
background: linear-gradient(-137deg, #eeefdb, #e7dbed);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover{
|
||||||
|
background: linear-gradient(-137deg, #eeefdb, #e7dbed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
</a-select>
|
</a-select>
|
||||||
<a-select
|
<a-select
|
||||||
ref="select"
|
ref="select"
|
||||||
v-show="selectCode == 'Sketchboard'"
|
v-show="selectCode == 'Sketchboard' && uploadGenerate != 'Generate'"
|
||||||
v-model:value="designType.value"
|
v-model:value="designType.value"
|
||||||
:options="disignTypeList"
|
:options="disignTypeList"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
@@ -240,6 +240,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="upload_file_item_content" @click.stop="setSketchboardItem(file)" v-show="file?.status === 'done'">
|
<div class="upload_file_item_content" @click.stop="setSketchboardItem(file)" v-show="file?.status === 'done'">
|
||||||
<img :src="file?.imgUrl" class="upload_img" />
|
<img :src="file?.imgUrl" class="upload_img" />
|
||||||
|
|
||||||
<div class="delete_file_block rightTop" @click.stop="deleteFile(index)" >
|
<div class="delete_file_block rightTop" @click.stop="deleteFile(index)" >
|
||||||
<span class="icon iconfont icon-shanchu"></span>
|
<span class="icon iconfont icon-shanchu"></span>
|
||||||
</div>
|
</div>
|
||||||
@@ -281,7 +282,7 @@
|
|||||||
<div :class="['content_img_item_block', selectImgList.indexOf(img.id) > -1 ? 'select_item_img' :'']">
|
<div :class="['content_img_item_block', selectImgList.indexOf(img.id) > -1 ? 'select_item_img' :'']">
|
||||||
<img v-show="img.status != 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" src="@/assets/images/homePage/loading.gif" alt="">
|
<img v-show="img.status != 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" src="@/assets/images/homePage/loading.gif" alt="">
|
||||||
<img v-show="img.status == 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" :src="img.imgUrl">
|
<img v-show="img.status == 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" :src="img.imgUrl">
|
||||||
|
|
||||||
<div class="img_item_hover">
|
<div class="img_item_hover">
|
||||||
<div class="img_operate_content">
|
<div class="img_operate_content">
|
||||||
<div class="img_operate_block">
|
<div class="img_operate_block">
|
||||||
@@ -295,6 +296,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<sketchCategory v-show="selectCode == 'Sketchboard'" :disignTypeList="disignTypeList" :generateList="generateList" :item="img"></sketchCategory>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_img_name"></div>
|
<div class="content_img_name"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -345,6 +347,7 @@ import { useStore } from "vuex";
|
|||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { getCookie } from "@/tool/cookie";
|
import { getCookie } from "@/tool/cookie";
|
||||||
import scaleImage from "@/component/HomePage/scaleImage.vue";
|
import scaleImage from "@/component/HomePage/scaleImage.vue";
|
||||||
|
import sketchCategory from "@/component/HomePage/sketchCategory.vue";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
import { ElCascader } from 'element-plus'
|
import { ElCascader } from 'element-plus'
|
||||||
import { remove } from "jszip";
|
import { remove } from "jszip";
|
||||||
@@ -358,6 +361,7 @@ export default defineComponent({
|
|||||||
// RobotAssist,
|
// RobotAssist,
|
||||||
ElCascader,
|
ElCascader,
|
||||||
scaleImage,
|
scaleImage,
|
||||||
|
sketchCategory,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
|
||||||
@@ -566,6 +570,7 @@ export default defineComponent({
|
|||||||
arr.push({
|
arr.push({
|
||||||
value:item.name,
|
value:item.name,
|
||||||
label:item.value,
|
label:item.value,
|
||||||
|
name:item.value
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
this.designType = arr[0]
|
this.designType = arr[0]
|
||||||
@@ -575,7 +580,7 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
likeFile(item:any,str:string){
|
likeFile(item:any,str:string){
|
||||||
let designType = this.selectCode == 'Sketchboard' || this.selectCode == 'MarketingSketch' ? this.designType.value : ''
|
let designType = this.selectCode == 'Sketchboard' || this.selectCode == 'MarketingSketch' ? item.category : ''
|
||||||
|
|
||||||
if(str == 'like'){
|
if(str == 'like'){
|
||||||
let data = {
|
let data = {
|
||||||
@@ -1170,13 +1175,19 @@ export default defineComponent({
|
|||||||
if(this.isShowMark){//防止取消后有正在执行的获取状态
|
if(this.isShowMark){//防止取消后有正在执行的获取状态
|
||||||
let arr:any = []
|
let arr:any = []
|
||||||
arr = rv.filter((item:any)=>item.status != 'Success' && item.status != 'Fail' && item.status != 'Invalid')
|
arr = rv.filter((item:any)=>item.status != 'Success' && item.status != 'Fail' && item.status != 'Invalid')
|
||||||
console.log(arr);
|
|
||||||
|
|
||||||
rv.forEach((element:any) => {
|
rv.forEach((element:any) => {
|
||||||
this.generateList.forEach((item:any,index:any) => {
|
this.generateList.forEach((item:any,index:any) => {
|
||||||
if(item.taskId == element.taskId && element.status == 'Success'){
|
if(item.taskId == element.taskId && element.status == 'Success'){
|
||||||
element.imgUrl = element.url
|
element.imgUrl = element.url
|
||||||
this.generateList[index] = element
|
this.generateList[index] = element
|
||||||
|
if(element.category){
|
||||||
|
this.disignTypeList.forEach((itemCategory:any) => {
|
||||||
|
if(itemCategory.value == element.category){
|
||||||
|
element.categoryValue = itemCategory?.label
|
||||||
|
element.category = itemCategory?.value
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1683,6 +1694,7 @@ export default defineComponent({
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
opacity: 0;
|
||||||
span{
|
span{
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
}
|
}
|
||||||
@@ -1693,7 +1705,14 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.upload_item:hover{
|
||||||
|
.upload_file_item{
|
||||||
|
.delete_file_block{
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user