Ver código fonte

添加免费乐团字段

lex 2 anos atrás
pai
commit
2e611f08ac

+ 147 - 103
src/views/businessManager/shopManager/shopList.vue

@@ -143,6 +143,20 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item prop="freeFeeShowOrganId">
+          <el-select
+            v-model.trim="searchForm.freeFeeShowOrganId"
+            clearable
+            placeholder="免费团可见分部"
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item prop="replacementShowOrganId" v-if="tenantId == 1">
           <el-select
             v-model.trim="searchForm.replacementShowOrganId"
@@ -446,7 +460,7 @@
               <el-button
                 v-if="
                   !scope.row.complementGoodsIdList &&
-                  permission('/purchaseLlist')
+                    permission('/purchaseLlist')
                 "
                 @click="onPurchaseList(scope.row)"
                 type="text"
@@ -463,7 +477,7 @@
               <el-button
                 v-if="
                   scope.row.status == 1 &&
-                  permission('goods/updateGoodsStatus/downGoods')
+                    permission('goods/updateGoodsStatus/downGoods')
                 "
                 @click="onUpdate(scope.row, 1)"
                 type="text"
@@ -472,7 +486,7 @@
               <el-button
                 v-if="
                   scope.row.status == 0 &&
-                  permission('/shopOperation/updateShop')
+                    permission('/shopOperation/updateShop')
                 "
                 @click="onShopOperation('update', scope.row)"
                 type="text"
@@ -630,7 +644,7 @@
             style="display: inline-block; width: 80% !important"
             :prop="'goodsList.' + index + '.id'"
             :rules="[
-              { required: true, message: '请选择商品', trigger: 'change' },
+              { required: true, message: '请选择商品', trigger: 'change' }
             ]"
           >
             <el-select
@@ -963,6 +977,28 @@
             ></el-option>
           </select-all>
         </el-form-item>
+        <el-form-item
+          label="免费乐团可售分部"
+          prop="freeFeeShowOrganId"
+          :label-width="formLabelWidth"
+        >
+          <select-all
+            v-model.trim="form.freeFeeShowOrganId"
+            filterable
+            placeholder="请选择会员收费团可见分部"
+            style="width: 400px !important"
+            multiple
+            clearable
+            :disabled="addDisabled"
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
+          </select-all>
+        </el-form-item>
         <!--  :disabled="pageDisabled || pageType == 'update'"  -->
         <el-form-item
           v-if="tenantId == 1"
@@ -1010,7 +1046,7 @@
             :imgSize="2"
             :imageUrl="form.image"
             @crop-upload-success="cropSuccess"
-            bucket_name='mall'
+            bucket_name="mall"
           />
           <p style="color: red">请上传大小2M以内,格式为jpg、png、gif图片</p>
         </el-form-item>
@@ -1058,7 +1094,7 @@ import {
   goodsAdd,
   goodsUpdate,
   goodsDelete,
-  updateGoodsStatus,
+  updateGoodsStatus
 } from "@/api/businessManager";
 import qs from "qs";
 import cleanDeep from "clean-deep";
@@ -1096,7 +1132,7 @@ export default {
     pagination,
     Tooltip,
     Upload,
-    ImageCropper,
+    ImageCropper
   },
   name: "shopList",
   data() {
@@ -1124,12 +1160,13 @@ export default {
         courseFeeShowOrganId: null,
         educationShowOrganId: null,
         memberFeeShowOrganId: null,
+        freeFeeShowOrganId: null,
         replacementShowOrganId: null,
-        studentShowOrganId: null,
+        studentShowOrganId: null
       },
       headers: {
         Authorization: getToken(),
-        tenantId: getTenantId(),
+        tenantId: getTenantId()
       },
       searchLsit: [],
       tableList: [],
@@ -1138,7 +1175,7 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       formLabelWidth: "160px",
       routeShopStatus: false,
@@ -1147,7 +1184,7 @@ export default {
         create: "添加",
         update: "修改",
         look: "查看",
-        copy: "复制",
+        copy: "复制"
       },
       addDisabled: false,
       form: {
@@ -1171,8 +1208,8 @@ export default {
         complementGoodsIdList: null,
         goodsList: [
           {
-            id: null,
-          },
+            id: null
+          }
         ],
         brief: null,
         desc: null,
@@ -1181,7 +1218,8 @@ export default {
         educationShowOrganId: null,
         courseFeeShowOrganId: null,
         memberFeeShowOrganId: null,
-        replacementShowOrganId: null,
+        freeFeeShowOrganId: null,
+        replacementShowOrganId: null
       },
       goodsTree: [], // 选择商品列表
       rules: {
@@ -1189,156 +1227,156 @@ export default {
           {
             required: true,
             message: "请输入商品货号",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         brand: [
           {
             required: true,
             message: "请输入品牌",
-            trigger: "blur",
+            trigger: "blur"
           },
           {
             min: 2,
             max: 30,
             message: "长度在 2 到 30 个字符",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         supplyChannel: [
           {
             required: true,
             message: "请输入备查货号",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         name: [
           {
             required: true,
             message: "请输入商品名称",
-            trigger: "blur",
+            trigger: "blur"
           },
           {
             min: 2,
             max: 30,
             message: "长度在 2 到 30 个字符",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         type: [
           {
             required: true,
             message: "请选择商品分类",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         organIdList: [
           {
             required: true,
             message: "请选择所属分部",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         goodsCategoryId: [
           {
             required: true,
             message: "请选择商品类型",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         specification: [
           {
             required: true,
             message: "请输入商品型号",
-            trigger: "blur",
+            trigger: "blur"
           },
           {
             min: 2,
             max: 30,
             message: "长度在 2 到 30 个字符",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         marketPrice: [
           {
             required: true,
             validator: validPrice,
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         discountPrice: [
           {
             required: true,
             validator: validPrice,
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         groupPurchasePrice: [
           {
             required: true,
             validator: validPrice,
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         clientShow: [
           {
             required: true,
             message: "请选择学员是否展示",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         educationalShow: [
           {
             required: true,
             message: "请选择教务端是否展示",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         musicGroupShow: [
           {
             required: true,
             message: "请选择乐团是否展示",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         courseViewType: [
-          { required: true, message: "请选乐团收费模式", trigger: "change" },
+          { required: true, message: "请选乐团收费模式", trigger: "change" }
         ],
         replacementShow: [
           {
             required: true,
             message: "请选择是否参与置换",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         stockWarning: [
           {
             required: true,
             message: "请选择是否库存预警",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         image: [
           {
             required: true,
             message: "请选择图片",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         brief: [
           {
             required: true,
             message: "请输入商品描述",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
         ],
         desc: [
           {
             required: true,
             message: "请输入商品详情",
-            trigger: "blur",
-          },
-        ],
+            trigger: "blur"
+          }
+        ]
       },
       selectGoodsList: [],
       tenantId: "",
@@ -1348,8 +1386,8 @@ export default {
         autoCropHeight: 300, //默认生成截图框高度
         fixedBox: true, //是否固定截图框大小 不允许改变
         previewsCircle: false, //预览图是否是圆形
-        title: "商品图片", //模态框上显示的标题
-      },
+        title: "商品图片" //模态框上显示的标题
+      }
     };
   },
   async mounted() {
@@ -1369,16 +1407,16 @@ export default {
     getCategory() {
       let params = {
         delFlag: 0,
-        rows: 9999,
+        rows: 9999
       };
-      categoryListTree(params).then((res) => {
+      categoryListTree(params).then(res => {
         let result = res.data;
         if (res.code == 200) {
           let tempArray = [];
-          result.rows.forEach((row) => {
+          result.rows.forEach(row => {
             tempArray.push({
               label: row.name,
-              value: row.id,
+              value: row.id
             });
           });
           this.categoryList = tempArray;
@@ -1393,13 +1431,13 @@ export default {
       this.$confirm(title, "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(async () => {
           await updateGoodsStatus({
             goodsId: row.id,
-            status: row.status ? 0 : 1,
-          }).then((res) => {
+            status: row.status ? 0 : 1
+          }).then(res => {
             this.messageTips(row.status ? "下架" : "上架", res);
           });
         })
@@ -1410,18 +1448,18 @@ export default {
         path: "/shopManager/purchaseLlist",
         query: {
           name: row.name,
-          goodsId: row.id,
-        },
+          goodsId: row.id
+        }
       });
     },
     onDelete(row) {
       this.$confirm("您确定删除该商品吗?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
-          goodsDelete(row.id).then((res) => {
+          goodsDelete(row.id).then(res => {
             this.messageTips("删除", res);
           });
         })
@@ -1450,7 +1488,7 @@ export default {
       params.organId = this.organId;
       params.rows = this.pageInfo.limit;
       params.page = this.pageInfo.page;
-      goodsQuery(params).then((res) => {
+      goodsQuery(params).then(res => {
         if (res.code == 200 && res.data) {
           this.tableList = res.data.rows;
           this.pageInfo.total = res.data.total;
@@ -1464,8 +1502,8 @@ export default {
         page: 1,
         groupGoods: 0,
         organId,
-        status: 1,
-      }).then((res) => {
+        status: 1
+      }).then(res => {
         if (res.code == 200 && res.data) {
           this.selectGoodsList = res.data.rows;
         }
@@ -1502,19 +1540,19 @@ export default {
         complementGoodsIdList: null,
         goodsList: [
           {
-            id: null,
-          },
+            id: null
+          }
         ],
         brief: null,
         desc: null,
-        replacementShow: null,
+        replacementShow: null
       };
       this.onValidGoodsStatus();
       this.routeShopStatus = true;
       this.addType = "create";
       this.addDisabled = false;
 
-      this.$nextTick((res) => {
+      this.$nextTick(res => {
         if (this.$refs["ruleForm"]) {
           this.$refs["ruleForm"].resetFields();
         }
@@ -1532,10 +1570,10 @@ export default {
       console.log(this.form.goodsList);
       let goodsList = this.form.goodsList;
       let tempIds = [];
-      goodsList.forEach((item) => {
+      goodsList.forEach(item => {
         tempIds.push(item.id);
       });
-      this.selectGoodsList.forEach((item) => {
+      this.selectGoodsList.forEach(item => {
         item.disabled = false;
         if (tempIds.includes(item.id)) {
           item.disabled = true;
@@ -1546,7 +1584,7 @@ export default {
       // 添加或修改
 
       let params = {
-        type: type,
+        type: type
       };
       if (row) {
         params.id = row.id;
@@ -1567,9 +1605,9 @@ export default {
         }
         let ids = row.complementGoodsIdList.split(",");
         let goodsList = [];
-        ids.forEach((item) => {
+        ids.forEach(item => {
           goodsList.push({
-            id: Number(item),
+            id: Number(item)
           });
         });
         form.goodsList = goodsList;
@@ -1594,6 +1632,9 @@ export default {
         if (row.memberFeeShowOrganId) {
           form.memberFeeShowOrganId = row.memberFeeShowOrganId.split(",");
         }
+        if (row.freeFeeShowOrganId) {
+          form.freeFeeShowOrganId = row.freeFeeShowOrganId.split(",");
+        }
 
         if (row.replacementShowOrganId) {
           form.replacementShowOrganId = row.replacementShowOrganId.split(",");
@@ -1619,10 +1660,10 @@ export default {
           {
             path: "/shopManager/shopOperation",
             query: {
-              paramInfo,
-            },
+              paramInfo
+            }
           },
-          (route) => {
+          route => {
             route.meta.title = pageTitle + "商品";
           }
         );
@@ -1659,9 +1700,9 @@ export default {
       Export(this, {
         url: "/api-web/import/downloadTemplate",
         params: {
-          templateType: "GOODS",
+          templateType: "GOODS"
         },
-        fileName: "商品导入模板.xls",
+        fileName: "商品导入模板.xls"
       });
     },
     exportShopList() {
@@ -1671,7 +1712,7 @@ export default {
           url: "/api-web/export/goods",
           params: qs.stringify(cleanDeep(this.searchForm)),
           fileName: "商品导出.xls",
-          method: "post",
+          method: "post"
         },
         "确定导出商品"
       );
@@ -1684,12 +1725,12 @@ export default {
       let selectGoodsList = this.selectGoodsList;
       let goodsList = this.form.goodsList;
       let tempIds = [];
-      goodsList.forEach((item) => {
+      goodsList.forEach(item => {
         if (item.id) {
           tempIds.push(item.id);
         }
       });
-      selectGoodsList.forEach((item) => {
+      selectGoodsList.forEach(item => {
         if (tempIds.includes(item.id)) {
           item.disabled = true;
         } else {
@@ -1702,7 +1743,7 @@ export default {
     removeGoodsList(item) {
       let tempId = item.id;
       let selectGoodsList = this.selectGoodsList;
-      selectGoodsList.forEach((item) => {
+      selectGoodsList.forEach(item => {
         if (item.id == tempId) {
           item.disabled = false;
         }
@@ -1717,15 +1758,15 @@ export default {
     },
     addGoodsList() {
       this.form.goodsList.push({
-        id: null,
+        id: null
       });
     },
     onShopSubmit(formName) {
-      this.$refs[formName].validate((valid) => {
+      this.$refs[formName].validate(valid => {
         if (valid) {
           let form = Object.assign({}, this.form);
           let tempIds = [];
-          form.goodsList.forEach((item) => {
+          form.goodsList.forEach(item => {
             if (item.id) {
               tempIds.push(item.id);
             }
@@ -1746,6 +1787,9 @@ export default {
           if (form.memberFeeShowOrganId) {
             form.memberFeeShowOrganId = form.memberFeeShowOrganId.join(",");
           }
+          if (form.freeFeeShowOrganId) {
+            form.freeFeeShowOrganId = form.freeFeeShowOrganId.join(",");
+          }
           if (form.replacementShowOrganId) {
             form.replacementShowOrganId = form.replacementShowOrganId.join(",");
           }
@@ -1766,11 +1810,11 @@ export default {
               delete this.form.id;
             }
             form.status = "NO"; // 默认上架
-            goodsAdd(cleanDeep(form)).then((res) => {
+            goodsAdd(cleanDeep(form)).then(res => {
               this.messageTips("保存", res);
             });
           } else if (this.addType == "update") {
-            goodsUpdate(cleanDeep(form)).then((res) => {
+            goodsUpdate(cleanDeep(form)).then(res => {
               this.messageTips("保存", res);
             });
           }
@@ -1779,7 +1823,7 @@ export default {
             let isError = document.getElementsByClassName("is-error");
             isError[0].scrollIntoView({
               block: "center",
-              behavior: "smooth",
+              behavior: "smooth"
             });
           });
           return false;
@@ -1800,7 +1844,7 @@ export default {
       let form = this.form;
       let goodsList = form.goodsList;
       let tempIds = [];
-      goodsList.forEach((item) => {
+      goodsList.forEach(item => {
         if (item.id) {
           tempIds.push(item.id);
         }
@@ -1808,7 +1852,7 @@ export default {
       let groupPurchasePrice = 0,
         marketPrice = 0,
         discountPrice = 0;
-      selectGoodsList.forEach((item) => {
+      selectGoodsList.forEach(item => {
         if (tempIds.includes(item.id)) {
           groupPurchasePrice += item.groupPurchasePrice;
           marketPrice += item.marketPrice;
@@ -1819,7 +1863,7 @@ export default {
       form.groupPurchasePrice = Number(groupPurchasePrice.toFixed(2));
       form.discountPrice = Number(discountPrice.toFixed(2));
       form.marketPrice = Number(marketPrice.toFixed(2));
-    },
+    }
   },
   filters: {
     courseViewTypeFormat(value) {
@@ -1829,12 +1873,12 @@ export default {
       }
       let ids = value.split(",");
       let str = [];
-      ids.forEach((item) => {
+      ids.forEach(item => {
         str.push(template[item]);
       });
       return str.join(",");
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 29 - 1
src/views/businessManager/shopManager/shopOperation.vue

@@ -313,6 +313,24 @@
             ></el-option>
           </select-all>
         </el-form-item>
+        <el-form-item label="免费乐团可售分部" prop="freeFeeShowOrganId">
+          <select-all
+            v-model.trim="form.freeFeeShowOrganId"
+            filterable
+            placeholder="请选择分部"
+            style="width: 400px !important"
+            multiple
+            :disabled="pageDisabled"
+            clearable
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
+          </select-all>
+        </el-form-item>
         <el-form-item
           label="乐器置换可售分部"
           prop="replacementShowOrganId"
@@ -424,7 +442,7 @@
             :imgSize="2"
             :imageUrl="form.image"
             @crop-upload-success="cropSuccess"
-            bucket_name='mall'
+            bucket_name="mall"
           />
           <p class="imageSize">
             <!-- 仅支持上传尺寸为:{{ imageWidthM }}x{{ imageHeightM }}的图片 -->
@@ -535,6 +553,7 @@ export default {
         educationShowOrganId: null,
         courseFeeShowOrganId: null,
         memberFeeShowOrganId: null,
+        freeFeeShowOrganId: null,
         replacementShowOrganId: null
       },
       rules: {
@@ -741,6 +760,9 @@ export default {
               ","
             );
           }
+          if (tempForm.freeFeeShowOrganId) {
+            tempForm.freeFeeShowOrganId = tempForm.freeFeeShowOrganId.join(",");
+          }
           if (tempForm.replacementShowOrganId) {
             tempForm.replacementShowOrganId = tempForm.replacementShowOrganId.join(
               ","
@@ -751,6 +773,7 @@ export default {
             !tempForm.educationShowOrganId &&
             !tempForm.courseFeeShowOrganId &&
             !tempForm.memberFeeShowOrganId &&
+            !tempForm.freeFeeShowOrganId &&
             !tempForm.replacementShowOrganId
           ) {
             this.$message.error("请至少选择一个可见分部");
@@ -866,6 +889,10 @@ export default {
             if (result.memberFeeShowOrganId) {
               memberFeeShowOrganId = result.memberFeeShowOrganId.split(",");
             }
+            let freeFeeShowOrganId = [];
+            if (result.freeFeeShowOrganId) {
+              freeFeeShowOrganId = result.freeFeeShowOrganId.split(",");
+            }
             let replacementShowOrganId = [];
             if (result.replacementShowOrganId) {
               replacementShowOrganId = result.replacementShowOrganId.split(",");
@@ -888,6 +915,7 @@ replacementShowOrganId: 6,7 */
               educationShowOrganId,
               courseFeeShowOrganId,
               memberFeeShowOrganId,
+              freeFeeShowOrganId,
               replacementShowOrganId,
               specification: result.specification,
               stockCount: result.stockCount,