wenjie před 9 měsíci
rodič
revize
958e2be286

+ 5 - 5
src/api/common.js

@@ -2,7 +2,7 @@
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-16 15:14:42
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-08-16 10:45:00
+ * @LastEditTime: 2024-08-19 16:52:26
  * @FilePath: \admin-manage\src\api\common.js
  * @Description: 
  * 
@@ -131,11 +131,11 @@ export function uidToAddress(params) {
 }
 
 // 城市列表
-export function getCityList(data) {
+export function getCityList(params) {
   return request({
     url: '/productcenterserver/region/list',
     method: 'post',
-    data
+    params
   })
 }
 
@@ -149,10 +149,10 @@ export function putCity(data) {
 }
 
 // 删除城市
-export function delCity(data) {
+export function delCity(params) {
   return request({
     url: '/productcenterserver/region/remove',
     method: 'post',
-    data
+    params
   })
 }

+ 9 - 2
src/api/goods.js

@@ -2,7 +2,7 @@
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-09 11:35:30
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-08-18 16:23:43
+ * @LastEditTime: 2024-08-19 14:51:04
  * @FilePath: \admin-manage\src\api\goods.js
  * @Description: 
  * 
@@ -210,7 +210,14 @@ export function goodsStoreList(params) {
   })
 }
 
-
+// 编辑产品库
+export function upsertProduct(data) {
+  return request({
+    url: '/productcenterserver/product/data/upsert',
+    method: 'post',
+    data
+  })
+}
 
 // 首页商品黑名单列表
 export function listHidden(params) {

+ 5 - 3
src/views/operationManage/goodsManage/homeGoodsSet.vue

@@ -71,7 +71,7 @@
       <template slot-scope="scope">
         <div class="info">
         <el-image
-        v-if="scope.row.cover.length"
+        v-if="scope.row.cover&&scope.row.cover.length"
         :src="scope.row.cover[0]"
           class="small-img"
           style="width: 40px; height: 40px;"
@@ -280,7 +280,7 @@
         <el-form label-width="130px" :model="topFrom"
           ref="topFrom"
           :rules="rules2">
-            <el-form-item label="产品类型"  prop="top">
+            <el-form-item label="排序"  prop="top">
                <el-input
               v-model.number="topFrom.top"
               class="item-width-300"
@@ -345,7 +345,8 @@ export default {
       },
       topFrom:{
         pid:"",
-        top:0
+        top:0,
+        regionCode:''
       },
       tabList:[],
       rules:{
@@ -470,6 +471,7 @@ export default {
       this.topFrom.pid = row.pid
       this.dialogFormVisible2 = true
       this.topFrom.top = row.top
+      this.topFrom.regionCode = row.regionCode
     },
     // 删除
      handleDel(id,hidden) {

+ 115 - 51
src/views/operationManage/goodsManage/productLibrary.vue

@@ -73,6 +73,13 @@
         prop="salesCount"
         show-overflow-tooltip
       >
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="热度"
+        prop="hotCount"
+        show-overflow-tooltip
+      >
       </el-table-column>
        <el-table-column
         align="center"
@@ -91,7 +98,13 @@
         {{productType[scope.row.productType]||'暂无分类'}}
       </template>
       </el-table-column>
-    
+       <el-table-column align="center" label="操作">
+          <template slot-scope="scope">
+            <el-button type="text" size="small" @click="handleEdit(scope.row)"
+              >编辑</el-button
+            >
+          </template>
+        </el-table-column>
     </el-table>
     <div class="page-box">
       <el-pagination
@@ -111,36 +124,70 @@
     <el-form label-width="130px" :model="setQuery"
       ref="setQuery"
       :rules="rules">
-        <el-form-item label="活动ID"  prop="activityId">
+        <el-form-item label="产品类型">
+          <el-select
+              v-model="setQuery.productType"
+              class="item-width-300"
+              placeholder="请选择产品类型"
+              disabled
+            >
+              <el-option
+                v-for="item in typeOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+        </el-form-item>
+          <el-form-item label="产品图片:" prop="logoPath">
+          <Upload
+            type="logoPath"
+            id="logoPath"
+            width="250px"
+            height="150px"
+            uploadType="OTHER"
+            :imgUrl="setQuery.cover[0]"
+            @uploadEnd="uploadEnd"
+          ></Upload>
+        </el-form-item>
+         <el-form-item label="产品名称"  prop="title">
             <el-input
-            v-model="setQuery.activityId"
+            v-model="setQuery.title"
             class="item-width-300"
             ></el-input>
         </el-form-item>
-         <el-form-item label="活动金额"  prop="activityMoney">
+         <el-form-item label="邮政编码"  prop="regionCode">
             <el-input
-            v-model.number="setQuery.activityMoney"
+            v-model.number="setQuery.regionCode"
             class="item-width-300"
             ></el-input>
         </el-form-item>
-         <el-form-item label="活动有效期"  prop="startTime">
-            <el-date-picker
-            v-model="date"
-            size="small"
-            class="item-width-350 ml10"
-            value-format="yyyy-MM-dd hh:mm:ss"
-            type="datetimerange"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期">
-            </el-date-picker>
+         <el-form-item label="售价" >
+            <el-input
+            v-model.number="setQuery.salePrice"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+         <el-form-item label="原价">
+            <el-input
+            v-model.number="setQuery.originalPrice"
+            class="item-width-300"
+            ></el-input>
         </el-form-item>
-         <el-form-item label="活动内容"  prop="activityContent">
+         <el-form-item label="热度">
             <el-input
-            v-model.number="setQuery.activityContent"
+            v-model.number="setQuery.hotCount"
             class="item-width-300"
             ></el-input>
         </el-form-item>
+          <el-form-item label="销量">
+            <el-input
+            v-model.number="setQuery.salesCount"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+
     </el-form>
   <div slot="footer" class="dialog-footer">
     <el-button @click="dialogFormVisible = false">取 消</el-button>
@@ -154,12 +201,16 @@
   
   <script>
 import { debounce } from "@/utils/index";
-import { goodsStoreList,setHidden} from "@/api/goods";
+import { goodsStoreList,setHidden,listAllTypes,upsertProduct} from "@/api/goods";
+import Upload from "@/components/Upload";
+
 export default {
-  name: "marketing",
+  name: "productLibrary",
+  components: {
+    Upload,
+  },
   data() {
     return {
-      date:'',
       title:'',
       tableData: [],
       loading: false,
@@ -181,22 +232,26 @@ export default {
       },
       options:[],
       setQuery:{
-        "activityContent": "",
-        "activityId": "",
-        "activityMoney": 0,
-        "endTime": "",
-        "id": 0,
-        "startTime": ""
+       cover:[],
+       productType:'',
+       title:'',
+       regionCode:0,
+       salePrice:0,
+       originalPrice:0,
+       hotCount:0,
       },
       topFrom:{
         pid:"",
         top:0
       },
+      typeOptions:[],
       tabList:[],
       rules:{
-         activityId: [{ required: true, message: "请输入活动ID", trigger: "blur" }],
-         activityMoney: [{ required: true, message: "请输入活动金额", trigger: "blur" }],
-         startTime: [{ required: true, message: "请选择活动时间", trigger: "change" }],
+         productType: [{ required: true, message: "请选择产品类型", trigger: "change" }],
+         regionCode: [{ required: true, message: "请输入邮政编码", trigger: "blur" }],
+         title: [{ required: true, message: "请输入产品名称", trigger: "blur" }],
+        //  title: [{ required: true, message: "请输入产品名称", trigger: "blur" }],
+         
       },
       rules1:{
          type: [{ required: true, message: "请选择产品类型", trigger: "change" }],
@@ -247,19 +302,11 @@ export default {
       }
     };
   },
-  watch: {
-
-     date(val){
-      if(val){
-        this.setQuery.startTime = val[0]
-        this.setQuery.endTime = val[1]
-      }else{
-        this.setQuery.startTime = ''
-        this.setQuery.endTime = ''
-      }
-    },
-  },
   methods: {
+    // 图片统一上传
+    uploadEnd(val) {
+      this.setQuery.cover[0] = val.url;
+    },
     handleTab(val){
       this.query.productType = val
       this.handleSearch()
@@ -275,15 +322,20 @@ export default {
     handleEdit(row){
         this.title = '编辑'
       this.dialogFormVisible = true
+      // this.setQuery = JSON.parse(JSON.stringify(row)) 
       this.setQuery = {
-        "activityContent": row.activityContent,
-        "activityId": row.activityId,
-        "activityMoney": row.activityMoney,
-        "endTime": row.endTime,
-        "startTime": row.startTime,
-        "id":row.id
+        cover: row.cover,
+        productType: row.productType,
+        regionCode: row.regionCode,
+        title: row.title,
+        pid: row.pid,
+        top: row.top,
+        hidden: row.hidden,
+        salesCount: row.salesCount,
+        originalPrice: row.originalPrice,
+        salePrice: row.salePrice,
+        hotCount: row.hotCount,
       }
-      this.date = [row.startTime, row.endTime]
     },
     handleAdd() {
         this.title = '添加'
@@ -295,7 +347,6 @@ export default {
         "endTime": "",
         "startTime": ""
       }
-      this.data = []
     },
 
     handleTop(row){
@@ -348,11 +399,23 @@ export default {
         }
       });
     },
+    listAllTypes(){
+       listAllTypes().then((res) => {
+        if (res.state == "Success") {
+          res.content.map(item=>{
+            this.typeOptions.push({
+              value:item.productType,
+              label:item.productTypeDesc
+            })
+          })
+        }
+      });
+    },
     save(){
         this.$refs.setQuery.validate((v) => {
         if (v) {
           this.btnLoading = true
-          addOrUpdateActivityXiaoju(this.setQuery).then(res=>{
+          upsertProduct([this.setQuery]).then(res=>{
             this.btnLoading = false
             if(res.state == 'Success'){
                 this.dialogFormVisible = false
@@ -374,6 +437,7 @@ export default {
   },
   created() {
     this.getList();
+    this.listAllTypes()
   },
 };
 </script>

+ 13 - 11
src/views/setting/cityList.vue

@@ -70,9 +70,9 @@
         @size-change="handleSizeChange"
         @current-change="handleCurrentChange"
         background
-        :current-page="query.currentPage"
+        :current-page="query.page"
         :page-sizes="[10, 20, 30, 40]"
-        :page-size="query.pageSize"
+        :page-size="query.size"
         layout="total, sizes, prev, pager, next, jumper"
         :total="total"
       >
@@ -122,8 +122,8 @@ export default {
       dialogFormVisible: false,
       query: {
         name:'',
-        currentPage: 1,
-        pageSize: 10,
+        page: 1,
+        size: 10,
       },
       total: 0,
       setQuery:{
@@ -139,7 +139,7 @@ export default {
   },
   methods: {
     handleSearch(){
-        this.query.currentPage = 1;
+        this.query.page = 1;
         this.getList();
     },
     handleEdit(row){
@@ -181,22 +181,24 @@ export default {
         })
     },
     handleSizeChange(val) {
-      this.query.currentPage = 1;
-      this.query.pageSize = val;
+      this.query.page = 1;
+      this.query.size = val;
       this.getList();
     },
     handleCurrentChange(val) {
-      this.query.currentPage = val;
+      this.query.page = val;
       this.getList();
     },
 
     search() {
-      this.query.currentPage = 1;
+      this.query.page = 1;
       this.getList();
     },
     getList() {
       this.loading = true
-      getCityList(this.query).then((res) => {
+      let query = JSON.parse(JSON.stringify(this.query));
+      query.page-=1
+      getCityList(query).then((res) => {
         this.loading = false
         if (res.state == "Success") {
           this.tableData = res.content.content;
@@ -217,7 +219,7 @@ export default {
                   message: '操作成功',
                   type: 'success'
                 });
-                this.query.currentPage = 1
+                this.query.page = 1
                 this.getList();
 
             }