Explorar el Código

Merge remote-tracking branch 'origin/master' into master

肖路 hace 3 días
padre
commit
0888085e29

+ 1 - 0
public/img/up_down.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1782376477427" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9083" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><path d="M460.80041 972.796314V51.203686a51.19959 51.19959 0 0 0-102.399181 0v809.977521l-171.518628-147.454821a51.19959 51.19959 0 0 0-66.559468 77.823378l255.997952 220.158238A51.19959 51.19959 0 0 0 460.80041 972.796314zM563.19959 51.203686v921.592628a51.19959 51.19959 0 0 0 102.399181 0V162.818793l171.518628 147.454821a51.19959 51.19959 0 1 0 66.559468-77.823378l-255.997952-220.158238A51.19959 51.19959 0 0 0 563.19959 51.203686z" fill="#515151" p-id="9084"></path></svg>

+ 2 - 2
src/components/heat-map/index.vue

@@ -24,10 +24,10 @@
             @mousedown="mouseDown($event, index)"
           >
             <span>{{ Number(index) + 1 }}</span>
-            <template v-if="item.link">
+            <!-- <template v-if="item.link">
               <span class="p-[4px]">|</span>
               <span>{{ item.link }}</span>
-            </template>
+            </template> -->
             <span class="box1" @mousedown.stop="resizeMouseDown($event, index)"></span>
             <span class="box2" @mousedown.stop="resizeMouseDown($event, index)"></span>
             <span class="box3" @mousedown.stop="resizeMouseDown($event, index)"></span>

+ 10 - 3
src/views/diy/pcEdit.vue

@@ -17,7 +17,8 @@
       <!-- :loading="loading" -->
     </el-header>
     <div class="full-container flex flex-row flex-1 bg-page">
-      <div class="component-list w-[192px]">
+      <!-- w-[192px] -->
+      <div class="component-list">
         <!-- 组件列表区域 -->
         <el-collapse v-model="activeNames" @change="handleChange">
           <el-collapse-item v-for="(item, key) in collapse" :key="key" :title="item.name" :name="key">
@@ -71,7 +72,8 @@
       </div>
 
       <!-- 编辑组件属性区域 -->
-      <div class="edit-attribute-wrap w-[400px]">
+      <!-- w-[400px] -->
+      <div class="edit-attribute-wrap">
         <!-- 编辑组件属性区域 -->
         <el-scrollbar>
           <el-card class="box-card" shadow="never">
@@ -339,7 +341,7 @@ const save = (type?: number) => {
 <style lang="scss" scoped>
 .pcEdit-pages {
   // min-height: calc(100vh - 84px);
-  // min-width: 1900px;
+  min-width: 2000px;
   height: calc(100vh);
 
   .full-container {
@@ -350,6 +352,8 @@ const save = (type?: number) => {
       height: 100%;
       background-color: #ffffff;
       padding: 0 10px;
+      min-width: 190px;
+      width: 190px;
     }
 
     .component-list ul li {
@@ -378,6 +382,7 @@ const save = (type?: number) => {
         // zoom: 0.7;
         // height: calc(100vh - 194px);
         height: 100%;
+        padding-top: 15px;
 
         /* 为了兼容某些情况,可能还需要配合 display */
         display: inline-block;
@@ -409,6 +414,8 @@ const save = (type?: number) => {
 
     //编辑组件属性区域
     .edit-attribute-wrap {
+      width: 400px;
+      min-width: 400px;
       background: var(--el-bg-color);
     }
 

+ 18 - 18
src/views/diy/pccomponents/index.ts

@@ -93,24 +93,24 @@ const borderEditRef = shallowRef(borderEdit);
 
 // 组件列表配置
 export const componentImportConfigs: any = [
-  {
-    name: '头部组件',
-    icon: 'iconfont iconfuwenbenpc',
-    id: 1,
-    enabled: true,
-    components: markRaw(headRef.value),
-    edit: markRaw(headEditRef.value),
-    fid: 1
-  },
-  {
-    name: '站点头部',
-    icon: 'iconfont iconfuwenbenpc',
-    id: 18,
-    enabled: true,
-    components: markRaw(headDataRef.value),
-    edit: markRaw(headDataEditRef.value),
-    fid: 1
-  },
+  // {
+  //   name: '头部组件',
+  //   icon: 'iconfont iconfuwenbenpc',
+  //   id: 1,
+  //   enabled: true,
+  //   components: markRaw(headRef.value),
+  //   edit: markRaw(headEditRef.value),
+  //   fid: 1
+  // },
+  // {
+  //   name: '站点头部',
+  //   icon: 'iconfont iconfuwenbenpc',
+  //   id: 18,
+  //   enabled: true,
+  //   components: markRaw(headDataRef.value),
+  //   edit: markRaw(headDataEditRef.value),
+  //   fid: 1
+  // },
   {
     name: '文本标题',
     icon: 'iconfont iconbiaotipc',

+ 11 - 9
src/views/enterprisePurchase/index.vue

@@ -256,7 +256,7 @@
                 <el-input v-model="quickEntrySettings.moduleName" placeholder="如:企业工作台" />
               </el-form-item>
               <el-form-item label="跳转地址:">
-                <el-input v-model="quickEntrySettings.jumpLink" placeholder="标题点击跳转地址" style="width: 300px" />
+                <WebLinkInput v-model="quickEntrySettings.jumpLink" placeholder="标题点击跳转地址" style="width: 300px" />
               </el-form-item>
             </el-form>
           </div>
@@ -1084,7 +1084,7 @@
     </el-dialog>
 
     <!-- 分类设置编辑弹窗 -->
-    <el-dialog v-model="categoryDialogVisible" :title="categoryDialogType === 'add' ? '新增分类' : '修改分类'" width="900px" destroy-on-close>
+    <el-dialog v-model="categoryDialogVisible" :title="categoryDialogType === 'add' ? '新增分类' : '修改分类'" width="1000px" destroy-on-close>
       <el-form :model="categoryForm" label-width="100px" class="dialog-form-inner">
         <el-tabs type="border-card">
           <el-tab-pane label="基础设置">
@@ -1944,7 +1944,8 @@ const carouselForm = reactive({
   image: '',
   link: '',
   target: '_self',
-  status: 1
+  status: 1,
+  sortOrder: 0
 });
 
 const handleAddCarousel = () => {
@@ -1963,6 +1964,7 @@ const handleEditCarousel = (row) => {
   carouselForm.link = row.link;
   carouselForm.target = row.target;
   carouselForm.status = row.status;
+  carouselForm.sortOrder = row.sortOrder ?? 0;
   dialogVisible.value = true;
 };
 
@@ -1976,7 +1978,7 @@ const submitCarouselForm = async () => {
     link: carouselForm.link,
     target: carouselForm.target,
     status: carouselForm.status,
-    sortOrder: carouselList.value.length
+    sortOrder: dialogType.value === 'add' ? carouselList.value.length : carouselForm.sortOrder
   };
 
   try {
@@ -2191,11 +2193,11 @@ const getSubNames = (item: any) => {
 };
 
 const handleSubMenuClick = (subName: string, item: any) => {
-  ElMessage.success(`您点击了子分类:${subName} (属于 ${item.name} 一级分类)`);
+  // ElMessage.success(`您点击了子分类:${subName} (属于 ${item.name} 一级分类)`);
 };
 
 const handleGroupTitleClick = (title: string, item: any) => {
-  ElMessage.success(`您点击了二级分类:${title} (属于 ${item.name} 一级分类)`);
+  // ElMessage.success(`您点击了二级分类:${title} (属于 ${item.name} 一级分类)`);
 };
 
 const getCategoryAds = (item: any) => {
@@ -2259,7 +2261,7 @@ const getCategoryList = async () => {
             mainTitle: (item as any).panelMainTitle || '',
             subTitle: (item as any).panelSubTitle || '',
             notes: extra.notes || [],
-            groups: extra.groups?.length ? extra.groups : (item as any).panelData?.groups || []
+            groups: (item as any).panelData?.groups?.length ? (item as any).panelData.groups : extra.groups || []
           } as any
         };
       });
@@ -3352,7 +3354,7 @@ const submitRecommendForm = async () => {
     categoryPath: (recommendForm.categoryValue || []).join(','),
     selectedProductIds: JSON.stringify(selectedProducts),
     status: recommendForm.status,
-    sortOrder: recommendList.value.length
+    sortOrder: recommendEditIndex.value > -1 ? (recommendForm as any).sortOrder ?? recommendList.value.length : recommendList.value.length
   };
 
   try {
@@ -3770,7 +3772,7 @@ const submitQuickEntryForm = async () => {
     tagText: quickEntryForm.tag,
     jumpLink: quickEntryForm.link,
     status: quickEntryForm.status,
-    sortOrder: quickEntryList.value.length
+    sortOrder: quickEntryDialogType.value === 'add' ? quickEntryList.value.length : ((quickEntryForm as any).sortOrder ?? quickEntryList.value.length)
   };
 
   try {

+ 10 - 8
src/views/platform/decoration/flashSale/index.vue

@@ -31,8 +31,7 @@
           <div v-for="(item, index) in brandList" :key="item.id" class="brand-item">
             <el-icon class="close-icon" @click.stop="handleRemoveBrand(index)"><CircleClose /></el-icon>
             <div class="sort-icon" @click.stop="handleSort(index)">
-              <span class="arrow-down">↓</span>
-              <span class="arrow-up">↑</span>
+              <img class="arrow-up" src="/img/up_down.svg" alt="" />
             </div>
             <div class="brand-logo">
               <el-image :src="item.logoUrl" fit="contain" class="logo-image">
@@ -389,7 +388,7 @@ const loadBrandList = async () => {
         id: brand.id || link.brandId,
         linkId: link.id,
         title: brand.brandName || `品牌${link.brandId}`,
-        description: brand.brandDescribe || brand.brandName || '',
+        description: brand.brandTitle || brand.brandName || '',
         logoUrl: brand.brandBigImageUrl || brand.brandLogo,
         sort: link.sort || 0
       };
@@ -659,7 +658,7 @@ onMounted(() => {
     top: 8px;
     right: 8px;
     font-size: 18px;
-    color: #999;
+    color: #515151;
     cursor: pointer;
     &:hover {
       color: #f56c6c;
@@ -668,15 +667,14 @@ onMounted(() => {
 
   .sort-icon {
     position: absolute;
-    top: 50%;
-    right: 6px;
+    top: 38%;
+    right: 9px;
     transform: translateY(-50%);
     cursor: pointer;
     display: flex;
     gap: 0;
 
-    .arrow-down,
-    .arrow-up {
+    .arrow-down {
       font-size: 16px;
       font-weight: bold;
       color: #999;
@@ -684,6 +682,10 @@ onMounted(() => {
         color: #409eff;
       }
     }
+    .arrow-up {
+      width: 16px;
+      height: 16px;
+    }
   }
 
   .brand-logo {

+ 19 - 11
src/views/platform/decoration/floor/index.vue

@@ -146,7 +146,7 @@ import { ref, reactive, onMounted } from 'vue';
 import { useRouter } from 'vue-router';
 import { ElMessage } from 'element-plus';
 import { listFloor, getFloor, addFloor, updateFloor, delFloor } from '@/api/system/floor';
-import { listFloorLabel, addFloorLabel, delFloorLabel } from '@/api/system/floorLabel';
+import { listFloorLabel, addFloorLabel, updateFloorLabel, delFloorLabel } from '@/api/system/floorLabel';
 
 // 标签类型
 interface LabelItem {
@@ -334,21 +334,29 @@ const confirmAddLabel = async () => {
 
   if (currentFloorNo.value) {
     try {
-      // 编辑模式下先删除旧标签
       if (isEdit) {
         const oldLabel = form.value.labels[editingLabelIndex.value];
         if (oldLabel?.id) {
-          await delFloorLabel(oldLabel.id);
+          await updateFloorLabel({
+            id: oldLabel.id,
+            floorNo: currentFloorNo.value,
+            labelName: labelForm.value.labelName,
+            labelLink: labelForm.value.labelLink,
+            labelDescribe: labelForm.value.labelDescribe,
+            position: 1,
+            isShow: '1'
+          });
         }
+      } else {
+        await addFloorLabel({
+          floorNo: currentFloorNo.value,
+          labelName: labelForm.value.labelName,
+          labelLink: labelForm.value.labelLink,
+          labelDescribe: labelForm.value.labelDescribe,
+          position: 1,
+          isShow: '1'
+        });
       }
-      await addFloorLabel({
-        floorNo: currentFloorNo.value,
-        labelName: labelForm.value.labelName,
-        labelLink: labelForm.value.labelLink,
-        labelDescribe: labelForm.value.labelDescribe,
-        position: 1,
-        isShow: '1'
-      });
       ElMessage.success(isEdit ? '修改成功' : '添加成功');
       // 重新获取标签列表
       const labelRes = await listFloorLabel({ floorNo: currentFloorNo.value, position: 1, pageSize: 100 });