diff --git a/enterprise-manager-ui/admin/src/components/Editor.vue b/enterprise-manager-ui/admin/src/components/Editor.vue
index 7924a73c9784c877906b68e8f1cdedf7a4d1816d..8d62f1d1837bcd5dec9df1bb8e19e29abee7ac3c 100644
--- a/enterprise-manager-ui/admin/src/components/Editor.vue
+++ b/enterprise-manager-ui/admin/src/components/Editor.vue
@@ -1,11 +1,11 @@
 <template>
-    <div>
-      <el-upload
+  <div>
+    <el-upload
       v-show="isshow"
       name="file"
       list-type="picture-card"
       class="avatar-uploader2"
-      :data="{filename:'infomation'}"
+      :data="{ filename: 'infomation' }"
       :show-upload-list="false"
       :action="uploadFileUrl"
       :before-upload="beforeUpload"
@@ -13,8 +13,7 @@
     >
     </el-upload>
     <div class="editor" ref="editor" :style="styles"></div>
-
-    </div>
+  </div>
 </template>
 
 <script>
@@ -45,11 +44,11 @@ export default {
     readOnly: {
       type: Boolean,
       default: false,
-    }
+    },
   },
   data() {
     return {
-      isshow:false,
+      isshow: false,
       uploadFileUrl: "/enterprise/file/commonupload", // 涓婁紶鐨勫湴鍧€
       Quill: null,
       currentValue: "",
@@ -59,32 +58,30 @@ export default {
         debug: "warn",
         modules: {
           // 宸ュ叿鏍忛厤缃�
-          toolbar:{ 
-            container:[
-              ["bold", "italic", "underline", "strike"],       // 鍔犵矖 鏂滀綋 涓嬪垝绾� 鍒犻櫎绾�
-              ["blockquote", "code-block"],                    // 寮曠敤  浠g爜鍧�
-              [{ list: "ordered" }, { list: "bullet" }],       // 鏈夊簭銆佹棤搴忓垪琛�
-              [{ indent: "-1" }, { indent: "+1" }],            // 缂╄繘
-              [{ size: ["small", false, "large", "huge"] }],   // 瀛椾綋澶у皬
-              [{ header: [1, 2, 3, 4, 5, 6, false] }],         // 鏍囬
-              [{ color: [] }, { background: [] }],             // 瀛椾綋棰滆壊銆佸瓧浣撹儗鏅鑹�
-              [{ align: [] }],                                 // 瀵归綈鏂瑰紡
-              ["clean"],                                       // 娓呴櫎鏂囨湰鏍煎紡
-              ["link", "image", "video"]                       // 閾炬帴銆佸浘鐗囥€佽棰�
+          toolbar: {
+            container: [
+              ["bold", "italic", "underline", "strike"], // 鍔犵矖 鏂滀綋 涓嬪垝绾� 鍒犻櫎绾�
+              ["blockquote", "code-block"], // 寮曠敤  浠g爜鍧�
+              [{ list: "ordered" }, { list: "bullet" }], // 鏈夊簭銆佹棤搴忓垪琛�
+              [{ indent: "-1" }, { indent: "+1" }], // 缂╄繘
+              [{ size: ["small", false, "large", "huge"] }], // 瀛椾綋澶у皬
+              [{ header: [1, 2, 3, 4, 5, 6, false] }], // 鏍囬
+              [{ color: [] }, { background: [] }], // 瀛椾綋棰滆壊銆佸瓧浣撹儗鏅鑹�
+              [{ align: [] }], // 瀵归綈鏂瑰紡
+              ["clean"], // 娓呴櫎鏂囨湰鏍煎紡
+              ["link", "image", "video"], // 閾炬帴銆佸浘鐗囥€佽棰�
             ],
             handlers: {
-              "image": function (value) {
+              image: function (value) {
                 if (value) {
                   // 璋冪敤element鐨勫浘鐗囦笂浼犵粍浠�
-                  document.querySelector('.avatar-uploader2 input').click()
-                  
+                  document.querySelector(".avatar-uploader2 input").click();
                 } else {
-                  this.quill.format('image', false)
-                  
+                  this.quill.format("image", false);
                 }
-              }
-            }
-          }
+              },
+            },
+          },
         },
         placeholder: "璇疯緭鍏ュ唴瀹�",
         readOnly: this.readOnly,
@@ -123,50 +120,53 @@ export default {
     this.Quill = null;
   },
   methods: {
-
-      // 涓婁紶鍥剧墖鎴愬姛
-      uploadSuccessEdit(res, file) {
-        // res涓哄浘鐗囨湇鍔″櫒杩斿洖鐨勬暟鎹�
-        // 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
-        let quill = this.Quill
-        // 濡傛灉涓婁紶鎴愬姛
-        if (res.code == 1) {
-          // 鑾峰彇鍏夋爣鎵€鍦ㄤ綅缃�
-          let length = quill.getSelection().index;
-          // 鎻掑叆鍥剧墖  res.data.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧€
-          quill.insertEmbed(length, 'image', res.url)
-          // quill.insertEmbed(length, 'image','https://02c4e834b47bd7c8.jomoxc.com:9082/fs6ca4aaf6.a.bdydns.com/0/bjh/news/5ed45c62f6d447320a096e85187dcc24.gif?r=BzcbRhcCTngfXBtDNFsvRw0nHEIFTAg0QVYXAGlUJwFALQpBFxdUMgsBTQ5wBCtfC3dbAVcKUTZfDE4IfgN8UVgnDFVWDE8wBlMAMwpYB1wPZgBFHQMlUiNY&xcid=3042c042cee643c3b324dcf1d0aefe2f&max_age=2592000&xcsched=1572413558&xclogid=5361435651673602026&xauzkey=mngx_d1cd221672f72b38bac902fc48026343_1697182784&f_ver=v1&bcecdn_trace_info=FGEFXgoaW3UDT0wOMgF6S0NhHxReGhk0C1taEAAzClgHXA9mAEUdAyVSI1g%3D')
-          // 璋冩暣鍏夋爣鍒版渶鍚�
-          quill.setSelection(length + 1)
-        } else {
-          this.$message.error('鍥剧墖鎻掑叆澶辫触')
-        }
-        // loading鍔ㄧ敾娑堝け
-        this.quillUpdateImg = false
-      },
-      handleChange(info) {
-        console.log(info);
-        // if (info.file.status === 'done') {
-        //   // Get this url from response in real world.
-        //   if(info.file.response && info.file.response.code == 1){
-        //     let imgurl = `${BASE_URL}/${info.file.response.data}`
-        //     let quill = this.$refs.myTextEditor.quill
-        //     // 鑾峰彇鍏夋爣鎵€鍦ㄤ綅缃�
-        //     let length = quill.getSelection().index;
-        //     // 鎻掑叆鍥剧墖锛宺es涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囬摼鎺ュ湴鍧€
-        //     quill.insertEmbed(length, 'image', imgurl)
-        //   }
-        // }
-      },
-      beforeUpload(file) {
-        const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif';
-        if (!isJpgOrPng) {
-          this.$message.error('璇蜂笂浼爅peg銆乸ng鎴杇if鏍煎紡鐨勫浘鐗�');
-        }
-        return isJpgOrPng;
-      },
-
-
+    // 涓婁紶鍥剧墖鎴愬姛
+    uploadSuccessEdit(res, file) {
+      // res涓哄浘鐗囨湇鍔″櫒杩斿洖鐨勬暟鎹�
+      // 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
+      let quill = this.Quill;
+      // 濡傛灉涓婁紶鎴愬姛
+      if (res.code == 1) {
+        // 鑾峰彇鍏夋爣鎵€鍦ㄤ綅缃�
+        let length = quill.getSelection().index;
+        // 鎻掑叆鍥剧墖  res.data.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧€
+        quill.insertEmbed(length, "image", res.url);
+        // quill.insertEmbed(length, 'image','https://02c4e834b47bd7c8.jomoxc.com:9082/fs6ca4aaf6.a.bdydns.com/0/bjh/news/5ed45c62f6d447320a096e85187dcc24.gif?r=BzcbRhcCTngfXBtDNFsvRw0nHEIFTAg0QVYXAGlUJwFALQpBFxdUMgsBTQ5wBCtfC3dbAVcKUTZfDE4IfgN8UVgnDFVWDE8wBlMAMwpYB1wPZgBFHQMlUiNY&xcid=3042c042cee643c3b324dcf1d0aefe2f&max_age=2592000&xcsched=1572413558&xclogid=5361435651673602026&xauzkey=mngx_d1cd221672f72b38bac902fc48026343_1697182784&f_ver=v1&bcecdn_trace_info=FGEFXgoaW3UDT0wOMgF6S0NhHxReGhk0C1taEAAzClgHXA9mAEUdAyVSI1g%3D')
+        // 璋冩暣鍏夋爣鍒版渶鍚�
+        quill.setSelection(length + 1);
+      } else {
+        this.$message.error("鍥剧墖鎻掑叆澶辫触");
+      }
+      // loading鍔ㄧ敾娑堝け
+      this.quillUpdateImg = false;
+    },
+    handleChange(info) {
+      console.log(info);
+      // if (info.file.status === 'done') {
+      //   // Get this url from response in real world.
+      //   if(info.file.response && info.file.response.code == 1){
+      //     let imgurl = `${BASE_URL}/${info.file.response.data}`
+      //     let quill = this.$refs.myTextEditor.quill
+      //     // 鑾峰彇鍏夋爣鎵€鍦ㄤ綅缃�
+      //     let length = quill.getSelection().index;
+      //     // 鎻掑叆鍥剧墖锛宺es涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囬摼鎺ュ湴鍧€
+      //     quill.insertEmbed(length, 'image', imgurl)
+      //   }
+      // }
+    },
+    beforeUpload(file) {
+      const isJpgOrPng =
+        file.type === "image/jpeg" ||
+        file.type === "image/png" ||
+        file.type === "image/gif" ||
+        file.type === "image/jpg" ||
+        file.type === "image/bmp" ||
+        file.type === "image/webp";
+      if (!isJpgOrPng) {
+        this.$message.error("璇蜂笂浼爅peg銆乸ng銆亀ebp銆乯pg銆乥mp鎴杇if鏍煎紡鐨勫浘鐗�");
+      }
+      return isJpgOrPng;
+    },
 
     init() {
       const editor = this.$refs.editor;
@@ -195,8 +195,9 @@ export default {
 </script>
 
 <style>
-.editor, .ql-toolbar {
-  white-space: pre-wrap!important;
+.editor,
+.ql-toolbar {
+  white-space: pre-wrap !important;
   line-height: normal !important;
 }
 .quill-img {
diff --git a/enterprise-manager-ui/admin/src/components/ImageUpload.vue b/enterprise-manager-ui/admin/src/components/ImageUpload.vue
index 3ef7161bcbc7643d461ea71f7e78b11b9cad36b9..76922cf8dc49a14d387d076f7f8ba8ec9389e561 100644
--- a/enterprise-manager-ui/admin/src/components/ImageUpload.vue
+++ b/enterprise-manager-ui/admin/src/components/ImageUpload.vue
@@ -10,6 +10,7 @@
       name="file"
       :show-file-list="false"
       :headers="headers"
+      accept=".jpeg,.png,.jpg,.bmp,.gif,.webp"
       style="display: inline-block; vertical-align: top"
       v-if="!isList"
     >
@@ -50,7 +51,7 @@
       :before-upload="handleBeforeUpload"
       :on-preview="handlePictureCardPreview"
       :file-list="imgList"
-      accept=".jpeg,.png,.jpg,.bmp,.gif"
+      accept=".jpeg,.png,.jpg,.bmp,.gif,.webp"
       :headers="headers"
       :limit="limit"
       v-else
diff --git a/enterprise-manager-ui/admin/src/views/product/list.vue b/enterprise-manager-ui/admin/src/views/product/list.vue
index 4725db149ef47d51e64c11a15f34c758bf4b81bd..6ab49ae65606db93b74321f2770b8d3cc46319ac 100644
--- a/enterprise-manager-ui/admin/src/views/product/list.vue
+++ b/enterprise-manager-ui/admin/src/views/product/list.vue
@@ -105,6 +105,20 @@ export default {
       this.ishot = val;
       this.onSearch();
     },
+    // 鏄惁涓婃灦鎿嶄綔
+    handleUp(row) {
+      this.$post("product/save", row)
+        .then((res) => {
+          if (res.code == 1) {
+            this.$message.success(res.msg);
+          } else {
+            this.$message.error(res.msg);
+          }
+        })
+        .catch((error) => {
+          this.$message.error(error.message);
+        });
+    },
   },
   data() {
     return {
@@ -169,7 +183,26 @@ export default {
             formatter: this.formatterYES,
             width: 60,
           },
-
+          {
+            label: "鏄惁涓婃灦",
+            formatter: (row) => {
+              return (
+                <div>
+                  <el-switch
+                    v-model={row.shelves}
+                    active-color="#13ce66"
+                    onChange={() => {
+                      this.handleUp(row);
+                    }}
+                    active-value={1}
+                    inactive-value={0}
+                  ></el-switch>
+                </div>
+              );
+            },
+            width: 120,
+            align: "center",
+          },
           {
             label: "鏈€杩戞洿鏂版椂闂�",
             prop: "updateTime",