封装设置衣服类型的下拉菜单

This commit is contained in:
X1627315083
2024-04-25 14:39:28 +08:00
parent d66a07785a
commit 4cfd33bcc7
8 changed files with 284 additions and 556 deletions

View File

@@ -47,7 +47,9 @@
v-show="file?.status === 'done'"
>
<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_category"
@@ -89,7 +91,7 @@
</div>
</div>
</div>
</div>
</div> -->
<div
class="delete_file_block"
@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_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)"/>
<div v-if="selectCode == 'Sketchboard'" class="operate_file_block">
<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>
<sketchCategory v-if="selectCode == 'Sketchboard'" :disignTypeList="sketchCatecoryList" :generateList="clothesList" :item="file" ></sketchCategory>
</div>
</div>
<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 { openGuide,driverObj__ } from "@/tool/guide";
import { useI18n } from 'vue-i18n';
import sketchCategory from "@/component/HomePage/sketchCategory.vue";
export default defineComponent({
props: ["msg"],
components:{
Draggable,Sketch,DesignDetailEnd,Chrome
Draggable,Sketch,DesignDetailEnd,Chrome,sketchCategory
},
setup(prop) {
const store = useStore();
@@ -321,10 +284,7 @@ export default defineComponent({
let body = inject('body')//父组件传过来的数据
let openClick = ref(1);
let searchPictureName = ref('')
//模型印花
let disignTypeList = [
]
let total = ref(0)
let pageSize = ref(10)
let currentPage = ref(1)
@@ -342,14 +302,15 @@ export default defineComponent({
let selectColorList = ref({
})
let workspace = ref({})
let sketchCatecoryList = computed(()=>{
return store.state.Workspace.workspacePosition
})
let {t} = useI18n()
return{
store,
current,
openClick,
searchPictureName,
disignTypeList,
total,
pageSize,
currentPage,
@@ -367,6 +328,7 @@ export default defineComponent({
workspace,
driver__,
body,
sketchCatecoryList,
t,
}
},
@@ -435,18 +397,7 @@ export default defineComponent({
},
},
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){
@@ -484,7 +435,6 @@ export default defineComponent({
workspaceCom(newVal,oldVal){
this.workspace = newVal
this.upload.gender = newVal?.sexEnum?.name
this.getPosition()
},
},
mounted () {
@@ -552,28 +502,7 @@ export default defineComponent({
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){
this.uploadList.splice(num, 1)
},
@@ -586,6 +515,12 @@ export default defineComponent({
file.id = res.data.id;
file.url = res.data.url;
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
let type = this.body?this.current.type:res.data.level2Type
file.level2Type = type;
@@ -653,31 +588,6 @@ export default defineComponent({
},
// this.getLibraryList('Moodboard')
// 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){
let data = {
libraryId:[item.id],
@@ -727,10 +637,18 @@ export default defineComponent({
size:this.pageSize+this.clothesList.length,
}
this.isShowLoading = true
Https.axiosPost(Https.httpUrls.queryLibraryPage,data).then(
(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.isShowLoading = false
this.total = rv.total