فهرست منبع

等待添加组合商品

1
mo 3 سال پیش
والد
کامیت
ff935a9148

+ 1 - 0
src/layout/components/Navbar.vue

@@ -238,6 +238,7 @@
 <script>
 import qs from "qs";
 import Logo from "./Sidebar/Logo";
+import axios from "axios";
 import { mapGetters } from "vuex";
 // import Breadcrumb from '@/components/Breadcrumb'
 // import Hamburger from '@/components/Hamburger'

+ 409 - 99
src/views/businessManager/shopManager/shopList.vue

@@ -69,7 +69,7 @@
             placeholder="商品编号/货号/商品名称"
           ></el-input>
         </el-form-item>
-        <el-form-item prop="organId">
+        <!-- <el-form-item prop="organId">
           <el-select
             v-model.trim="searchForm.organId"
             clearable
@@ -82,6 +82,76 @@
               :value="item.id.toString()"
             ></el-option>
           </el-select>
+        </el-form-item> -->
+        <el-form-item prop="studentShowOrganId">
+          <el-select
+            v-model.trim="searchForm.studentShowOrganId"
+            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="educationShowOrganId">
+          <el-select
+            v-model.trim="searchForm.educationShowOrganId"
+            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="courseFeeShowOrganId">
+          <el-select
+            v-model.trim="searchForm.courseFeeShowOrganId"
+            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="memberFeeShowOrganId">
+          <el-select
+            v-model.trim="searchForm.memberFeeShowOrganId"
+            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">
+          <el-select
+            v-model.trim="searchForm.replacementShowOrganId"
+            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="type">
           <el-select
@@ -131,7 +201,7 @@
             <el-option label="否" value="0"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="clientShow">
+        <!-- <el-form-item prop="clientShow">
           <el-select
             v-model.trim="searchForm.clientShow"
             clearable
@@ -140,8 +210,8 @@
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
           </el-select>
-        </el-form-item>
-        <el-form-item prop="educationalShow">
+        </el-form-item> -->
+        <!-- <el-form-item prop="educationalShow">
           <el-select
             v-model.trim="searchForm.educationalShow"
             clearable
@@ -150,8 +220,8 @@
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
           </el-select>
-        </el-form-item>
-        <el-form-item prop="musicGroupShow">
+        </el-form-item> -->
+        <!-- <el-form-item prop="musicGroupShow">
           <el-select
             v-model.trim="searchForm.musicGroupShow"
             clearable
@@ -160,8 +230,8 @@
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
           </el-select>
-        </el-form-item>
-        <el-form-item prop="courseViewType">
+        </el-form-item> -->
+        <!-- <el-form-item prop="courseViewType">
           <el-select
             v-model.trim="searchForm.courseViewType"
             placeholder="乐团收费模式"
@@ -171,8 +241,8 @@
             <el-option label="系统收费" value="1"></el-option>
             <el-option label="云教练收费" value="2"></el-option>
           </el-select>
-        </el-form-item>
-        <el-form-item prop="replacementShow">
+        </el-form-item> -->
+        <!-- <el-form-item prop="replacementShow">
           <el-select
             v-model.trim="searchForm.replacementShow"
             clearable
@@ -181,7 +251,7 @@
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <!-- <el-form-item>
           <el-date-picker v-model.trim="orderDate" style="width:410px;" type="daterange" value-format="yyyy-MM-dd"
             @change="searchOrderDate" range-separator="至" :picker-options="{ firstDayOfWeek: 1 }" start-placeholder="开始日期"
@@ -204,7 +274,12 @@
           </el-table-column>
           <el-table-column align="center" prop="brand" label="品牌">
           </el-table-column>
-          <el-table-column align="center" prop="name" label="商品名称" width="150px">
+          <el-table-column
+            align="center"
+            prop="name"
+            label="商品名称"
+            width="150px"
+          >
             <template slot-scope="scope">
               <overflow-text :text="scope.row.name" width="100%" />
             </template>
@@ -214,26 +289,28 @@
               {{ scope.row.complementGoodsIdList ? "是" : "否" }}
             </template>
           </el-table-column>
-          <el-table-column align="center" label="学员是否展示">
+          <!-- <el-table-column align="center" label="学员是否展示">
             <template slot-scope="scope">
               {{ scope.row.clientShow ? "是" : "否" }}
             </template>
-          </el-table-column>
-          <el-table-column align="center" label="教务端是否展示">
+          </el-table-column> -->
+          <!-- <el-table-column align="center" label="教务端是否展示">
             <template slot-scope="scope">
               {{ scope.row.educationalShow ? "是" : "否" }}
             </template>
-          </el-table-column>
-          <el-table-column align="center" label="乐团是否展示">
+          </el-table-column> -->
+          <!-- <el-table-column align="center" label="乐团是否展示">
             <template slot-scope="scope">
               {{ scope.row.musicGroupShow ? "是" : "否" }}
             </template>
-          </el-table-column>
-          <el-table-column align="center" label="乐团收费模式">
+          </el-table-column> -->
+          <!-- <el-table-column align="center" label="乐团收费模式">
             <template slot-scope="scope">
-              <Tooltip :content="scope.row.courseViewType | courseViewTypeFormat" />
+              <Tooltip
+                :content="scope.row.courseViewType | courseViewTypeFormat"
+              />
             </template>
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column align="center" label="是否库存预警">
             <template slot-scope="scope">
               <span v-if="!scope.row.complementGoodsIdList">
@@ -241,13 +318,13 @@
               </span>
             </template>
           </el-table-column>
-          <el-table-column align="center" label="是否参与置换">
+          <!-- <el-table-column align="center" label="是否参与置换">
             <template slot-scope="scope">
               <span>
                 {{ scope.row.replacementShow ? "是" : "否" }}
               </span>
             </template>
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column align="center" label="商品类型">
             <template slot-scope="scope">
               {{ scope.row.type | shopType }}
@@ -317,11 +394,14 @@
               <img class="shopImage" :src="scope.row.image" alt="" srcset="" />
             </template>
           </el-table-column>
-          <el-table-column align="center" label="所属分部">
+          <!-- <el-table-column align="center" label="所属分部">
             <template slot-scope="scope">
-              <Tooltip :content="scope.row.organName" />
+              <div>
+                 <Tooltip :content="scope.row.organName" />
+              </div>
+
             </template>
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column align="center" label="商品描述">
             <template slot-scope="scope">
               <Tooltip :content="scope.row.brief" />
@@ -359,28 +439,37 @@
               >
               <el-button
                 v-if="
-                  scope.row.status == 1 && permission('goods/updateGoodsStatus/downGoods')
+                  scope.row.status == 1 &&
+                  permission('goods/updateGoodsStatus/downGoods')
                 "
                 @click="onUpdate(scope.row, 1)"
                 type="text"
                 >下架</el-button
               >
               <el-button
-                v-if="scope.row.status == 0 && permission('/shopOperation/updateShop')"
+                v-if="
+                  scope.row.status == 0 &&
+                  permission('/shopOperation/updateShop')
+                "
                 @click="onShopOperation('update', scope.row)"
                 type="text"
                 >修改</el-button
               >
               <el-button
                 v-if="
-                  scope.row.status == 1 &&
-                  permission('/shopOperation/shopLook')
+                  scope.row.status == 1 && permission('/shopOperation/shopLook')
                 "
                 @click="onShopOperation('look', scope.row)"
                 type="text"
-                >查看</el-button>
+                >查看</el-button
+              >
 
-              <el-button v-if="permission('/shopOperation/copyShop')" @click="onShopOperation('copy', scope.row)" type="text" >复制</el-button>
+              <el-button
+                v-if="permission('/shopOperation/copyShop')"
+                @click="onShopOperation('copy', scope.row)"
+                type="text"
+                >复制</el-button
+              >
               <!-- <el-button v-if="scope.row.status == 0"
                          v-permission="'goods/del'"
                          @click="onDelete(scope.row)"
@@ -404,15 +493,22 @@
       destroy-on-close
       :visible.sync="routeShopStatus"
       @close="onFormClose('ruleForm')"
-      width="600px"
+      width="1000px"
     >
-      <el-form :model="form" :rules="rules" ref="ruleForm">
+      <el-form :model="form" :rules="rules" ref="ruleForm" :inline="true">
+        <el-alert
+          title="基础信息"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
         <el-form-item
           label="商品名称"
           prop="name"
           :label-width="formLabelWidth"
         >
           <el-input
+            style="width: 220px !important"
             placeholder="请输入商品名称"
             type="text"
             :disabled="addDisabled"
@@ -421,6 +517,7 @@
         </el-form-item>
         <el-form-item label="货号" prop="sn" :label-width="formLabelWidth">
           <el-input
+            style="width: 220px !important"
             placeholder="请输入货号"
             type="text"
             :disabled="addDisabled"
@@ -429,12 +526,13 @@
         </el-form-item>
         <el-form-item label="品牌" prop="brand" :label-width="formLabelWidth">
           <el-input
+            style="width: 220px !important"
             v-model.trim="form.brand"
             :disabled="addDisabled"
             placeholder="请输入品牌"
           ></el-input>
         </el-form-item>
-        <el-form-item label="所属分部" :label-width="formLabelWidth" prop="organIdList">
+        <!-- <el-form-item label="所属分部" :label-width="formLabelWidth" prop="organIdList">
           <select-all v-model.trim="form.organIdList"
                      filterable
                      placeholder="请选择所属分部"
@@ -448,7 +546,7 @@
               :label="item.name"
               :value="item.id.toString()"></el-option>
           </select-all>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item
           label="商品类型"
           prop="type"
@@ -457,7 +555,7 @@
           <el-select
             v-model.trim="form.type"
             :disabled="addDisabled"
-            style="width: 100% !important"
+            style="width: 220px !important"
             placeholder="请选择商品类型"
           >
             <el-option
@@ -475,7 +573,7 @@
         >
           <el-select
             v-model.trim="form.goodsCategoryId"
-            style="width: 100% !important"
+            style="width: 220px !important"
             placeholder="请选择商品分类"
             :disabled="addDisabled"
             filterable
@@ -497,6 +595,7 @@
           <el-input
             v-model.trim="form.specification"
             :disabled="addDisabled"
+            style="width: 220px !important"
             placeholder="请输入商品型号"
           ></el-input>
         </el-form-item>
@@ -505,7 +604,7 @@
           <el-form-item
             :label="'商品' + (index + 1)"
             :label-width="formLabelWidth"
-            style="display: inline-block;  width: 80% !important"
+            style="display: inline-block; width: 80% !important"
             :prop="'goodsList.' + index + '.id'"
             :rules="[
               { required: true, message: '请选择商品', trigger: 'change' },
@@ -515,8 +614,8 @@
               v-model.trim="goodsList.id"
               @change="onGoodsChange"
               filterable
-              style=" width: 100% !important"
-              :disabled="addDisabled || form.organIdList.length <= 0"
+              style="width: 220px !important"
+              :disabled="addDisabled"
               placeholder="请选择商品"
             >
               <el-option
@@ -528,7 +627,10 @@
               ></el-option>
             </el-select>
           </el-form-item>
-          <div v-if="!addDisabled && form.organIdList.length > 0" style="display: inline-block">
+          <div
+            v-if="!addDisabled"
+            style="display: inline-block"
+          >
             <el-button
               icon="el-icon-minus"
               v-if="form.goodsList.length > 1"
@@ -543,7 +645,12 @@
             ></el-button>
           </div>
         </div>
-
+        <el-alert
+          title="价格信息"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
         <el-form-item
           label="市场价"
           prop="marketPrice"
@@ -555,6 +662,7 @@
             :disabled="addDisabled"
             @mousewheel.native.prevent
             v-model.trim="form.marketPrice"
+            style="width: 220px !important"
           ></el-input>
         </el-form-item>
         <el-form-item
@@ -568,6 +676,7 @@
             :disabled="addDisabled"
             @mousewheel.native.prevent
             v-model.trim="form.discountPrice"
+            style="width: 220px !important"
           ></el-input>
         </el-form-item>
         <el-form-item
@@ -581,14 +690,20 @@
             :disabled="addDisabled"
             @mousewheel.native.prevent
             v-model.trim="form.groupPurchasePrice"
+            style="width: 220px !important"
           ></el-input>
         </el-form-item>
-        <el-form-item
+        <!-- <el-form-item
           label="学员是否展示"
           prop="clientShow"
           :label-width="formLabelWidth"
         >
-          <el-select v-model="form.clientShow" style="width: 100% !important" :disabled="addDisabled" placeholder="请选择学员是否展示">
+          <el-select
+            v-model="form.clientShow"
+            style="width: 100% !important"
+            :disabled="addDisabled"
+            placeholder="请选择学员是否展示"
+          >
             <el-option label="是" :value="1"></el-option>
             <el-option label="否" :value="0"></el-option>
           </el-select>
@@ -623,18 +738,27 @@
             <el-option label="否" :value="0"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="乐团收费模式" :label-width="formLabelWidth" prop="courseViewType">
-          <select-all v-model.trim="form.courseViewType"
-                     filterable
-                     placeholder="请选择乐团收费模式"
-                     multiple
-                     :disabled="addDisabled || (form.musicGroupShow != 0 && form.musicGroupShow != 1)"
-                     clearable>
+        <el-form-item
+          label="乐团收费模式"
+          :label-width="formLabelWidth"
+          prop="courseViewType"
+        >
+          <select-all
+            v-model.trim="form.courseViewType"
+            filterable
+            placeholder="请选择乐团收费模式"
+            multiple
+            :disabled="
+              addDisabled ||
+              (form.musicGroupShow != 0 && form.musicGroupShow != 1)
+            "
+            clearable
+          >
             <el-option label="课程收费" value="0"></el-option>
             <el-option label="系统收费" value="1"></el-option>
             <el-option label="云教练收费" value="2"></el-option>
-          </select-all>
-          <!-- <el-select
+          </select-all> -->
+        <!-- <el-select
             v-model="form.courseViewType"
             multiple
             placeholder="请选择乐团收费模式"
@@ -644,17 +768,144 @@
             <el-option label="系统收费" :value="1"></el-option>
             <el-option label="云教练收费" :value="2"></el-option>
           </el-select> -->
-        </el-form-item>
-        <el-form-item
+        <!-- </el-form-item> -->
+        <!-- <el-form-item
           label="是否参与置换"
           prop="replacementShow"
           :label-width="formLabelWidth"
         >
-          <el-select v-model="form.replacementShow" style="width: 100% !important" :disabled="addDisabled" placeholder="是否参与置换">
+          <el-select
+            v-model="form.replacementShow"
+            style="width: 100% !important"
+            :disabled="addDisabled"
+            placeholder="是否参与置换"
+          >
             <el-option label="是" :value="1"></el-option>
             <el-option label="否" :value="0"></el-option>
           </el-select>
+        </el-form-item> -->
+        <el-alert
+          title="销售渠道"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
+        <!--      :disabled="pageDisabled || pageType == 'update'" -->
+        <el-form-item
+          label="学员可见分部"
+          prop="studentShowOrganId"
+          :label-width="formLabelWidth"
+        >
+          <select-all
+            v-model.trim="form.studentShowOrganId"
+            filterable
+            placeholder="请选择学员可见分部"
+            style="width: 400px !important"
+            multiple
+            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>
+        <!--   :disabled="pageDisabled || pageType == 'update'" -->
+        <el-form-item
+          label="管理端可见分部"
+          prop="educationShowOrganId"
+          :label-width="formLabelWidth"
+        >
+          <select-all
+            v-model.trim="form.educationShowOrganId"
+            filterable
+            placeholder="请选择管理端可见分部"
+            style="width: 400px !important"
+            multiple
+            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>
+        <!--   :disabled="pageDisabled || pageType == 'update'" -->
+        <el-form-item
+          label="课程收费团可见分部"
+          prop="courseFeeShowOrganId"
+          :label-width="formLabelWidth"
+        >
+          <select-all
+            v-model.trim="form.courseFeeShowOrganId"
+            filterable
+            placeholder="请选择课程收费团可见分部"
+            style="width: 400px !important"
+            multiple
+            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>
+        <!--  :disabled="pageDisabled || pageType == 'update'" -->
+        <el-form-item
+          label="系统收费团可见分部"
+          prop="memberFeeShowOrganId"
+          :label-width="formLabelWidth"
+        >
+          <select-all
+            v-model.trim="form.memberFeeShowOrganId"
+            filterable
+            placeholder="请选择系统收费团可见分部"
+            style="width: 400px !important"
+            multiple
+            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>
+        <!--  :disabled="pageDisabled || pageType == 'update'"  -->
+        <el-form-item
+          label="参与置换可见分部"
+          prop="replacementShowOrganId"
+          :label-width="formLabelWidth"
+        >
+          <select-all
+            v-model.trim="form.replacementShowOrganId"
+            filterable
+            placeholder="请选择参与置换可见分部"
+            style="width: 400px !important"
+            multiple
+            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-alert
+          title="商品信息"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
         <el-form-item
           label="商品图片"
           prop="image"
@@ -667,7 +918,7 @@
             :imageHeightM="400"
           ></upload>
         </el-form-item>
-
+        <br />
         <el-form-item
           label="商品描述"
           prop="brief"
@@ -677,6 +928,7 @@
             type="textarea"
             :disabled="addDisabled"
             v-model.trim="form.brief"
+            style="width: 400px"
           ></el-input>
         </el-form-item>
         <el-form-item
@@ -688,6 +940,7 @@
             type="textarea"
             :disabled="addDisabled"
             v-model.trim="form.desc"
+            style="width: 400px"
           ></el-input>
         </el-form-item>
       </el-form>
@@ -783,14 +1036,14 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
-      formLabelWidth: "120px",
+      formLabelWidth: "160px",
       routeShopStatus: false,
       addType: "create",
       addString: {
         create: "添加",
         update: "修改",
         look: "查看",
-        copy: "复制"
+        copy: "复制",
       },
       addDisabled: false,
       form: {
@@ -820,6 +1073,11 @@ export default {
         brief: null,
         desc: null,
         replacementShow: null,
+        studentShowOrganId: null,
+        educationShowOrganId: null,
+        courseFeeShowOrganId: null,
+        memberFeeShowOrganId: null,
+        replacementShowOrganId: null,
       },
       goodsTree: [], // 选择商品列表
       rules: {
@@ -877,6 +1135,41 @@ export default {
             trigger: "change",
           },
         ],
+        studentShowOrganId: [
+          {
+            required: true,
+            message: "请选择学生端可见分部",
+            trigger: "change",
+          },
+        ],
+        educationShowOrganId: [
+          {
+            required: true,
+            message: "请选择管理端可见分部",
+            trigger: "change",
+          },
+        ],
+        courseFeeShowOrganId: [
+          {
+            required: true,
+            message: "请选择课程收费团可见分部",
+            trigger: "change",
+          },
+        ],
+        memberFeeShowOrganId: [
+          {
+            required: true,
+            message: "请选择会员收费团可见分部",
+            trigger: "change",
+          },
+        ],
+        replacementShowOrganId: [
+          {
+            required: true,
+            message: "请选择乐器置换展示可见分部",
+            trigger: "change",
+          },
+        ],
         goodsCategoryId: [
           {
             required: true,
@@ -940,7 +1233,7 @@ export default {
           },
         ],
         courseViewType: [
-          { required: true, message: "请选乐团收费模式", trigger: 'change' },
+          { required: true, message: "请选乐团收费模式", trigger: "change" },
         ],
         replacementShow: [
           {
@@ -1138,18 +1431,24 @@ export default {
       this.routeShopStatus = true;
       this.addType = "create";
       this.addDisabled = false;
-      if (this.$refs["ruleForm"]) {
-        this.$refs["ruleForm"].resetFields();
-      }
+
+      this.$nextTick((res) => {
+        console.log(this.$refs["ruleForm"]);
+        if (this.$refs["ruleForm"]) {
+          this.$refs["ruleForm"].resetFields();
+        }
+      });
     },
     onOrganChange(val) {
-      if(val && val.length > 0) {
+      if (val && val.length > 0) {
         // 获取所有商品
-        this.getAllGoodsList(val.join(','));
+        this.getAllGoodsList(val.join(","));
       }
     },
-    onValidGoodsStatus() {
+   async onValidGoodsStatus() {
       // 更新商品选择状态
+     await this.getAllGoodsList();
+     console.log(this.form.goodsList)
       let goodsList = this.form.goodsList;
       let tempIds = [];
       goodsList.forEach((item) => {
@@ -1174,7 +1473,10 @@ export default {
       this.addType = type;
       this.addDisabled = type == "look" ? true : false;
       // 判断是否是修改组合商品
-      if ((type == "update" || type == "look" || type == 'copy') && row.complementGoodsIdList) {
+      if (
+        (type == "update" || type == "look" || type == "copy") &&
+        row.complementGoodsIdList
+      ) {
         this.routeShopStatus = true;
 
         let form = this.form;
@@ -1191,14 +1493,15 @@ export default {
         form.goodsList = goodsList;
         form.id = row.id;
 
-        if(row.courseViewType) {
-          form.courseViewType = row.courseViewType.split(',')
+        if (row.courseViewType) {
+          form.courseViewType = row.courseViewType.split(",");
         }
 
-        if(row.organIdList) {
-          form.organIdList = row.organIdList.split(',')
-          this.getAllGoodsList(row.organIdList);
-        }
+        // if (row.organIdList) {
+        //   form.organIdList = row.organIdList.split(",");
+
+        // }
+        this.getAllGoodsList();
 
         this.onValidGoodsStatus();
       } else {
@@ -1207,8 +1510,8 @@ export default {
           pageTitle = "修改";
         } else if (type == "look") {
           pageTitle = "查看";
-        } else if(type == 'copy') {
-          pageTitle = '复制'
+        } else if (type == "copy") {
+          pageTitle = "复制";
         }
         this.$router.push(
           {
@@ -1256,16 +1559,20 @@ export default {
         params: {
           templateType: "GOODS",
         },
-        fileName: '商品导入模板.xls'
-      })
+        fileName: "商品导入模板.xls",
+      });
     },
-    exportShopList(){
-      Export(this, {
-        url: "/api-web/export/goods",
-        params: qs.stringify(cleanDeep(this.searchForm)),
-        fileName: '商品导出.xls',
-        method:'post'
-      }, '确定导出商品')
+    exportShopList() {
+      Export(
+        this,
+        {
+          url: "/api-web/export/goods",
+          params: qs.stringify(cleanDeep(this.searchForm)),
+          fileName: "商品导出.xls",
+          method: "post",
+        },
+        "确定导出商品"
+      );
     },
     onFormClose(formName) {
       // 关闭弹窗重置验证
@@ -1322,8 +1629,8 @@ export default {
             }
           });
           form.complementGoodsIdList = tempIds.join(",");
-          form.courseViewType = form.courseViewType.join(',')
-          form.organIdList = form.courseViewType.join(',')
+          form.courseViewType = form.courseViewType.join(",");
+          form.organIdList = form.courseViewType.join(",");
           form.goodsList = null;
           if (this.addType == "create" || this.addType == "copy") {
             if (this.form.id) {
@@ -1388,21 +1695,24 @@ export default {
   },
   filters: {
     courseViewTypeFormat(value) {
-      let template = ['课程收费', '系统收费', '云教练收费']
-      if(!value) {
-        return ''
+      let template = ["课程收费", "系统收费", "云教练收费"];
+      if (!value) {
+        return "";
       }
-      let ids = value.split(',')
-      let str = []
-      ids.forEach(item => {
-        str.push(template[item])
-      })
-      return str.join(',')
-    }
-  }
+      let ids = value.split(",");
+      let str = [];
+      ids.forEach((item) => {
+        str.push(template[item]);
+      });
+      return str.join(",");
+    },
+  },
 };
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+.alert {
+  margin-bottom: 22px;
+}
 .shopImage {
   width: 60px;
   height: 60px;

+ 112 - 17
src/views/businessManager/shopManager/shopOperation.vue

@@ -174,9 +174,9 @@
           class="alert"
           type="info"
         />
-        <el-form-item label="学员可见分部" prop="organIdList">
+        <el-form-item label="学员可见分部" prop="studentShowOrganId">
           <select-all
-            v-model.trim="form.organIdList"
+            v-model.trim="form.studentShowOrganId"
             filterable
             placeholder="请选择所属分部"
             style="width: 400px !important"
@@ -192,9 +192,9 @@
             ></el-option>
           </select-all>
         </el-form-item>
-        <el-form-item label="管理端可见分部" prop="organIdList">
+        <el-form-item label="管理端可见分部" prop="educationShowOrganId">
           <select-all
-            v-model.trim="form.organIdList"
+            v-model.trim="form.educationShowOrganId"
             filterable
             placeholder="请选择所属分部"
             style="width: 400px !important"
@@ -210,9 +210,9 @@
             ></el-option>
           </select-all>
         </el-form-item>
-        <el-form-item label="课程收费团可见分部" prop="organIdList">
+        <el-form-item label="课程收费团可见分部" prop="courseFeeShowOrganId">
           <select-all
-            v-model.trim="form.organIdList"
+            v-model.trim="form.courseFeeShowOrganId"
             filterable
             placeholder="请选择所属分部"
             style="width: 400px !important"
@@ -228,9 +228,9 @@
             ></el-option>
           </select-all>
         </el-form-item>
-        <el-form-item label="系统收费团可见分部" prop="organIdList">
+        <el-form-item label="系统收费团可见分部" prop="memberFeeShowOrganId">
           <select-all
-            v-model.trim="form.organIdList"
+            v-model.trim="form.memberFeeShowOrganId"
             filterable
             placeholder="请选择所属分部"
             style="width: 400px !important"
@@ -246,9 +246,9 @@
             ></el-option>
           </select-all>
         </el-form-item>
-        <el-form-item label="参与置换可见分部" prop="organIdList">
+        <el-form-item label="参与置换可见分部" prop="replacementShowOrganId">
           <select-all
-            v-model.trim="form.organIdList"
+            v-model.trim="form.replacementShowOrganId"
             filterable
             placeholder="请选择所属分部"
             style="width: 400px !important"
@@ -429,7 +429,7 @@ export default {
         name: null,
         type: null,
         goodsCategoryId: null,
-        organIdList: [],
+        // organIdList: [],
         specification: null,
         stockCount: null,
         taxStockCount: null,
@@ -446,6 +446,11 @@ export default {
         brief: null,
         desc: null,
         replacementShow: null,
+        studentShowOrganId: null,
+        educationShowOrganId: null,
+        courseFeeShowOrganId: null,
+        memberFeeShowOrganId: null,
+        replacementShowOrganId: null,
       },
       rules: {
         sn: [{ required: true, message: "请输入商品货号", trigger: "blur" }],
@@ -499,6 +504,41 @@ export default {
             trigger: "change",
           },
         ],
+        studentShowOrganId: [
+          {
+            required: true,
+            message: "请选择学生端可见分部",
+            trigger: "change",
+          },
+        ],
+        educationShowOrganId: [
+          {
+            required: true,
+            message: "请选择管理端可见分部",
+            trigger: "change",
+          },
+        ],
+        courseFeeShowOrganId: [
+          {
+            required: true,
+            message: "请选择课程收费团可见分部",
+            trigger: "change",
+          },
+        ],
+        memberFeeShowOrganId: [
+          {
+            required: true,
+            message: "请选择会员收费团可见分部",
+            trigger: "change",
+          },
+        ],
+        replacementShowOrganId: [
+          {
+            required: true,
+            message: "请选择乐器置换展示可见分部",
+            trigger: "change",
+          },
+        ],
         specification: [
           {
             required: true,
@@ -616,9 +656,34 @@ export default {
           if (tempForm.courseViewType) {
             tempForm.courseViewType = tempForm.courseViewType.join(",");
           }
-          if (tempForm.organIdList) {
-            tempForm.organIdList = tempForm.organIdList.join(",");
+          // if (tempForm.organIdList) {
+          //   tempForm.organIdList = tempForm.organIdList.join(",");
+          // }
+          if (tempForm.studentShowOrganId) {
+            tempForm.studentShowOrganId = tempForm.studentShowOrganId.join(",");
           }
+          if (tempForm.educationShowOrganId) {
+            tempForm.educationShowOrganId =
+              tempForm.educationShowOrganId.join(",");
+          }
+
+          if (tempForm.courseFeeShowOrganId) {
+            tempForm.courseFeeShowOrganId =
+              tempForm.courseFeeShowOrganId.join(",");
+          }
+          if (tempForm.memberFeeShowOrganId) {
+            tempForm.memberFeeShowOrganId =
+              tempForm.memberFeeShowOrganId.join(",");
+          }
+          if (tempForm.replacementShowOrganId) {
+            tempForm.replacementShowOrganId =
+              tempForm.replacementShowOrganId.join(",");
+          }
+          //      studentShowOrganId: null,
+          // educationShowOrganId: null,
+          // courseFeeShowOrganId: null,
+          // memberFeeShowOrganId: null,
+          // replacementShowOrganId: null,
           if (this.pageType == "create" || this.pageType == "copy") {
             if (tempForm.id) {
               // 判断有没有Id,如果有则删除
@@ -706,10 +771,35 @@ export default {
             if (result.courseViewType) {
               courseViewType = result.courseViewType.split(",");
             }
-            let organIdList = [];
-            if (result.organIdList) {
-              organIdList = result.organIdList.split(",");
+            // let organIdList = [];
+            // if (result.organIdList) {
+            //   organIdList = result.organIdList.split(",");
+            // }
+                let studentShowOrganId = [];
+            if (result.studentShowOrganId) {
+              studentShowOrganId = result.studentShowOrganId.split(",");
+            }
+                let educationShowOrganId = [];
+            if (result.educationShowOrganId) {
+              educationShowOrganId = result.educationShowOrganId.split(",");
+            }
+                let courseFeeShowOrganId = [];
+            if (result.courseFeeShowOrganId) {
+              courseFeeShowOrganId = result.courseFeeShowOrganId.split(",");
+            }
+                let memberFeeShowOrganId = [];
+            if (result.memberFeeShowOrganId) {
+              memberFeeShowOrganId = result.memberFeeShowOrganId.split(",");
+            }
+                let replacementShowOrganId = [];
+            if (result.replacementShowOrganId) {
+              replacementShowOrganId = result.replacementShowOrganId.split(",");
             }
+            /**studentShowOrganId: 1,2
+educationShowOrganId: 2,3
+courseFeeShowOrganId: 3,4
+memberFeeShowOrganId: 4,5
+replacementShowOrganId: 6,7 */
             this.form = {
               id: result.id,
               sn: result.sn,
@@ -718,7 +808,12 @@ export default {
               name: result.name,
               type: result.type,
               goodsCategoryId: result.goodsCategoryId,
-              organIdList: organIdList,
+              // organIdList: organIdList,
+              studentShowOrganId,
+              educationShowOrganId,
+              courseFeeShowOrganId,
+              memberFeeShowOrganId,
+              replacementShowOrganId,
               specification: result.specification,
               stockCount: result.stockCount,
               taxStockCount: result.taxStockCount,

+ 54 - 16
src/views/studentManager/memberList.vue

@@ -55,6 +55,20 @@
             <el-option label="即将过期" value="1"></el-option>
           </el-select>
         </el-form-item>
+                <el-form-item>
+          <el-date-picker
+            v-model.trim="searchForm.visitTime"
+            style="width: 410px"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+            range-separator="至"
+            start-placeholder="回访开始日期"
+            end-placeholder="回访结束日期"
+          ></el-date-picker>
+        </el-form-item>
         <!-- <el-form-item prop="isActive">
           <el-select
             class="multiple"
@@ -108,7 +122,24 @@
             align="center"
             prop="memberDay"
             label="会员有效期剩余天数"
-          ></el-table-column>
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.memberDay >= 0 ? scope.row.memberDay : 0 }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="memberDay"
+            label="回访日期"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.visitTime }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
@@ -118,6 +149,7 @@
                     >新增回访</el-button
                   >
                 </auth>
+
                 <auth :auths="'musicGroupQuit/directQuitMusicGroup4463'">
                   <el-button type="text" @click="quitTeam(scope.row)"
                     >退团退费</el-button
@@ -199,12 +231,16 @@ import { StudentQuit } from "@/api/buildTeam";
 import load from "@/utils/loading";
 import { getMusicMemberList } from "./api";
 import visit from "@/views/withdrawal-application/modals/visit";
+import { getTimes } from "@/utils";
 export default {
-  components: { pagination, quiteTeam,visit },
+  components: { pagination, quiteTeam, visit },
   data() {
     return {
       searchForm: {
         search: null,
+        organId:null,
+        hasMember:null,
+        visitTime:[]
       },
 
       tableList: [{}],
@@ -224,13 +260,13 @@ export default {
         isMaintenanceFee: null,
         cloudTeacherAmount: null,
         isCloudTeacherAmount: null,
-        isRefundMemberFee:null,
+        isRefundMemberFee: null,
         maintenanceFee: 0,
         reason: "",
       },
       quitVisible: false,
       activeRow: null,
-      visitVisible:false
+      visitVisible: false,
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -243,15 +279,18 @@ export default {
   },
   methods: {
     init() {
-      if(this.$route.query.hasMember){
-        this.$set(this.searchForm,'hasMember',this.$route.query.hasMember)
+      if (this.$route.query.hasMember) {
+        this.$set(this.searchForm, "hasMember", this.$route.query.hasMember);
       }
       this.getList();
     },
     async getList() {
+      // 设置时间
+           let { visitTime, ...rest } = this.searchForm;
       try {
         const res = await getMusicMemberList({
-          ...this.searchForm,
+          ...rest,
+            ...getTimes(visitTime, ["visitStartTime", "visitEndTime"]),
           page: this.rules.page,
           rows: this.rules.limit,
         });
@@ -288,7 +327,7 @@ export default {
             isRefundCourseFee: false,
             isRefundInstrumentFee: false,
             isRefundTeachingAssistantsFee: false,
-            isRefundMemberFee:false
+            isRefundMemberFee: false,
           }).then((res) => {
             this.quitForm = {
               // 退团信息确认
@@ -298,7 +337,7 @@ export default {
               isMaintenanceFee: null,
               cloudTeacherAmount: null,
               isCloudTeacherAmount: null,
-              isRefundMemberFee:null,
+              isRefundMemberFee: null,
               maintenanceFee: 0,
               reason: "",
             };
@@ -330,7 +369,7 @@ export default {
                 isRefundTeachingAssistantsFee:
                   this.quitForm.isRefundTeachingAssistantsFee,
                 maintenanceFee: this.quitForm.maintenanceFee,
-                isRefundMemberFee:this.quitForm.isRefundMemberFee
+                isRefundMemberFee: this.quitForm.isRefundMemberFee,
               };
               // 退还乐器练习云教练费用
               if (this.quitForm.isRefundMemberFee) {
@@ -348,7 +387,7 @@ export default {
                   isMaintenanceFee: null,
                   cloudTeacherAmount: null,
                   isCloudTeacherAmount: null,
-                  isRefundMemberFee:null,
+                  isRefundMemberFee: null,
                   maintenanceFee: 0,
                   reason: "",
                 };
@@ -371,8 +410,8 @@ export default {
       this.activeRow = row;
     },
   },
-  watch:{
-        quitVisible(val) {
+  watch: {
+    quitVisible(val) {
       if (!val) {
         this.quitForm = {
           // 退团信息确认
@@ -384,12 +423,11 @@ export default {
           isCloudTeacherAmount: null,
           maintenanceFee: 0,
           reason: "",
-
-        }
+        };
         this.$refs["quitForm"].$refs["quitForm"].resetFields();
       }
     },
-  }
+  },
 };
 </script>
 <style lang='scss' scoped>

+ 2 - 2
vue.config.js

@@ -17,10 +17,10 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
 // let target = 'http://192.168.3.139:8000' // 箭河
-// let target = 'http://192.168.3.148:8000' //邹璇
+let target = 'http://192.168.3.148:8000' //邹璇
 // let target = 'http://192.168.3.112:8000' //勇哥
 // let target = 'http://dev.dayaedu.com' // 开发环境
-let target = 'https://test.dayaedu.com' //测试环境
+// let target = 'https://test.dayaedu.com' //测试环境
 // let target = 'http://192.168.3.134' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {