9 コミット 9d0f934da3 ... 2e6840a48c

作者 SHA1 メッセージ 日付
  Long 2e6840a48c Merge branch 'master' into 会员关联项目 1 日 前
  ct 78b332aaa8 倍力优配置 2 日 前
  ct 3e6546b966 倍力优配置 2 日 前
  ct ef714232de 企微客户创建订单 2 日 前
  15376779826 30a01d8376 去除手机号必填 4 日 前
  caoliqin 4bab990b1f Merge branch 'refs/heads/master-fby' 1 週間 前
  caoliqin 046c1dd7a5 feat:会员管理和小黑屋 1 週間 前
  caoliqin ce4792e002 Merge branch 'refs/heads/master-fby' 1 週間 前
  caoliqin c43a2b22a6 feat:小黑屋 1 週間 前

+ 19 - 0
.env.prod-bly

@@ -0,0 +1,19 @@
+# 页面标题
+VUE_APP_TITLE = 倍力优SCRM管理系统
+# 公司名称
+VUE_APP_COMPANY_NAME = 倍力优(北京)健康产业科技有限公司
+# ICP备案号
+VUE_APP_ICP_RECORD = 京ICP备18042618号-2
+# ICP网站访问地址
+VUE_APP_ICP_URL =https://beian.miit.gov.cn
+# 网站LOG
+VUE_APP_LOG_URL =@/assets/logo/bly.png
+
+# 生产环境配置
+ENV = 'production'
+
+#FS管理系统/生产环境
+VUE_APP_BASE_API = '/prod-api'
+
+# 路由懒加载
+VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 1 - 0
package.json

@@ -12,6 +12,7 @@
     "build:prod-jz": "vue-cli-service build --mode prod-jz",
     "build:prod-zkzh": "vue-cli-service build --mode prod-zkzh",
     "build:prod-fby": "vue-cli-service build --mode prod-fby",
+    "build:prod-bly": "vue-cli-service build --mode prod-bly",
     "preview": "node build/index.js --preview",
     "lint": "eslint --ext .js,.vue src",
     "test:unit": "jest --clearCache && vue-cli-service test:unit",

BIN
src/assets/logo/bly.png


+ 2 - 2
src/views/member/list.vue

@@ -193,7 +193,7 @@
       </el-table-column>
       <el-table-column label="标签" align="center" prop="tag" show-overflow-tooltip />
       <el-table-column label="最后看课时间" align="center" prop="lastWatchDate" width="160" />
-      <el-table-column label="停课天数" align="center" prop="stopWatchDays" />
+<!--      <el-table-column label="停课天数" align="center" prop="stopWatchDays" />-->
       <el-table-column label="注册时间" align="center" prop="createTime" width="160" />
       <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
       <el-table-column label="所属员工" align="center" prop="companyUserNickName" />
@@ -368,7 +368,7 @@ export default {
           { required: true, message: "昵称不能为空", trigger: "blur" }
         ],
         phone: [
-          { required: true, message: "手机号码不能为空", trigger: "blur" },
+          //{ required: true, message: "手机号码不能为空", trigger: "blur" },
           { pattern: /^1[3-9]\d{9}$/, message: "请输入正确的手机号码", trigger: "blur" }
         ],
         status: [

+ 30 - 10
src/views/qw/externalContact/index.vue

@@ -357,18 +357,25 @@
             icon="el-icon-paperclip"
             @click="handleShow(scope.row)"
           >CRM客户详情</el-button>
-		  <el-button
-		     size="mini"
-		     type="text"
-		     @click="handledetails(scope.row)"
-		     >用户信息
-		  </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            @click="handledetails(scope.row)"
+            >用户信息
+          </el-button>
           <el-button
             size="mini"
             type="text"
             @click="handleViewRepeat(scope.row)"
             v-if="scope.row.isRepeat===1"
           >查看重粉</el-button>
+          <el-button
+            v-if="scope.row.fsUserId"
+            size="mini"
+            type="text"
+            @click="addPackageOrder(scope.row)"
+            >创建订单
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -510,9 +517,9 @@
       <selectUser ref="selectUser" @bindMiniCustomerId="bindMiniCustomerId"></selectUser>
     </el-dialog>
 
-	<el-dialog :title="info.title" :visible.sync="info.open"   width="1100px" append-to-body>
-	  <info  ref="Details" />
-	</el-dialog>
+    <el-dialog :title="info.title" :visible.sync="info.open"   width="1100px" append-to-body>
+      <info  ref="Details" />
+    </el-dialog>
 
     <el-dialog :title="repeatDialog.title" :visible.sync="repeatDialog.visible" width="70%" append-to-body>
       <el-table v-loading="repeatDialog.loading" :data="repeatDialog.data" border>
@@ -527,6 +534,9 @@
         <el-button @click="repeatDialog.visible = false">关 闭</el-button>
       </div>
     </el-dialog>
+    <el-dialog title="创建订单" :visible.sync="addPackageOpen" width="1000px" append-to-body>
+      <addPackage @closePackage="closePackage"   ref="addPackageVisit" :userId="fsUserId"/>
+    </el-dialog>
   </div>
 </template>
 
@@ -557,11 +567,14 @@ import  selectUser  from "@/views/qw/externalContact/selectUser.vue";
 import info from "@/views/qw/externalContact/info.vue";
 import { editTalk } from "@/api/qw/externalContactInfo";
 import {getQwRepeatData} from "@/api/user/fsUser";
+import addPackage from "@/views/store/components/addOrder";
 export default {
   name: "ExternalContact",
-  components:{mycustomer,customerDetails,SopDialog,selectUser,info},
+  components:{mycustomer,customerDetails,SopDialog,selectUser,info,addPackage},
   data() {
     return {
+      fsUserId:null,
+      addPackageOpen:false,
       user:{
         open:false,
         title:"修改客户"
@@ -738,6 +751,13 @@ export default {
 
   },
   methods: {
+    addPackageOrder(row){
+      this.fsUserId = row.fsUserId;
+      this.addPackageOpen=true;
+    },
+    closePackage(){
+      this.addPackageOpen=false;
+    },
     // 查看重粉
     handleViewRepeat(row){
       this.repeatDialog.data = [];

+ 21 - 1
src/views/qw/externalContact/myExternalContact.vue

@@ -378,6 +378,13 @@
                      icon="el-icon-setting"
                      @click="setCourseSOP(scope.row)"
           >设置课程SOP</el-button> -->
+          <el-button
+            v-if="scope.row.fsUserId"
+            size="mini"
+            type="text"
+            @click="addPackageOrder(scope.row)"
+            >创建订单
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -518,6 +525,9 @@
     <el-dialog :title="user.title" :visible.sync="user.open" width="800px" append-to-body>
       <selectUser ref="selectUser" @bindMiniCustomerId="bindMiniCustomerId"></selectUser>
     </el-dialog>
+    <el-dialog title="创建订单" :visible.sync="addPackageOpen" width="1000px" append-to-body>
+      <addPackage @closePackage="closePackage"   ref="addPackageVisit" :userId="fsUserId"/>
+    </el-dialog>
   </div>
 </template>
 
@@ -550,11 +560,14 @@ import SopDialog from '@/views/course/sop/SopDialog.vue'
 import  selectUser  from "@/views/qw/externalContact/selectUser.vue";
 import { editTalk,editAllTalk } from "@/api/qw/externalContactInfo";
 import {createLinkUrl} from "@/api/course/sopCourseLink";
+import addPackage from "@/views/store/components/addOrder";
 export default {
   name: "ExternalContact",
-  components:{mycustomer,customerDetails,SopDialog,selectUser,info},
+  components:{mycustomer,customerDetails,SopDialog,selectUser,info,addPackage},
   data() {
     return {
+      fsUserId:null,
+      addPackageOpen:false,
       user:{
         open:false,
         title:"修改客户"
@@ -712,6 +725,13 @@ export default {
 
   },
   methods: {
+    addPackageOrder(row){
+      this.fsUserId = row.fsUserId;
+      this.addPackageOpen=true;
+    },
+    closePackage(){
+      this.addPackageOpen=false;
+    },
     handledetails(row){
       this.show.open=true;
       setTimeout(() => {

+ 51 - 5
src/views/store/components/addOrder.vue

@@ -107,6 +107,26 @@
                 </el-col>
               </el-row>
             </el-form-item>
+            <el-form-item label="订单类型" prop="orderType">
+              <el-select   v-model="form.orderType" placeholder="请选择订单类型" clearable size="small" >
+              <el-option
+                      v-for="item in orderTypeOptions"
+                      :key="item.dictValue"
+                      :label="item.dictLabel"
+                      :value="item.dictValue"
+                    />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="媒体来源" prop="orderMedium" v-if="orderMediumOptions.length>0">
+              <el-select   v-model="form.orderMedium" placeholder="请选择媒体来源" clearable size="small" >
+              <el-option
+                      v-for="item in orderMediumOptions"
+                      :key="item.dictValue"
+                      :label="item.dictLabel"
+                      :value="item.dictValue"
+                    />
+              </el-select>
+            </el-form-item>
             <el-form-item label="支付方式" prop="payType">
               <el-select   v-model="form.payType" placeholder="请选择支付方式" clearable size="small" >
               <el-option
@@ -118,10 +138,10 @@
               </el-select>
             </el-form-item>
             <el-form-item label="改价" prop="payPrice">
-              <el-input-number  v-model="form.payPrice" placeholder="修改商品总价" size="medium" :precision="2" min=0.01 :step="0.1" />
+              <el-input-number  v-model="form.payPrice" placeholder="修改商品总价" size="medium" :precision="2" :min="0.01" :step="0.1" />
             </el-form-item>
             <el-form-item label="物流代收" prop="amount" v-if="form.payType == '3'">
-              <el-input-number  v-model="form.amount" placeholder="平台支付价格" size="medium" :precision="2" min=0.01 :step="0.1" />
+              <el-input-number  v-model="form.amount" placeholder="平台支付价格" size="medium" :precision="2" :min="0.01" :step="0.1" />
             </el-form-item>
             <el-form-item label="订单备注" prop="mark">
               <el-input  type="textarea" rows="2" v-model="form.mark" placeholder="" />
@@ -169,7 +189,11 @@ export default {
   props: {
     customerId: {
       type: Number, // 或 Number,根据实际情况选择
-      required: true
+      required: false
+    },
+    userId: {
+      type: Number, // 或 Number,根据实际情况选择
+      required: false
     }
   },
   data() {
@@ -186,6 +210,7 @@ export default {
       deliveryStatusOptions:[],
       dateRange: [],
       orderTypeOptions:[],
+      orderMediumOptions:[],
       payTypeOptions:[],
       payQr:{
         open:false,
@@ -315,10 +340,14 @@ export default {
     // 根据名称筛选部门树
     deptName(val) {
         this.$refs.tree.filter(val);
-      },
+    },
   },
   created() {
     this.getTreeselect();
+    // 媒体来源 如需要则增加字典 
+    this.getDicts("store_order_medium").then((response) => {
+      this.orderMediumOptions = response.data;
+    });
     this.getDicts("store_order_type").then((response) => {
       this.orderTypeOptions = response.data;
     });
@@ -341,9 +370,26 @@ export default {
     getTcmScheduleList().then(response => {
       this.scheduleOptions = response.data;
     });
-
+    this.initUser();
   },
   methods: {
+    initUser(){
+      console.log("--------------",this.userId)
+      if(this.userId != null){
+        var data={userId:this.userId}
+        this.userloading = true;
+        this.users=[];
+        this.address=[];
+        getUserList(data).then(response => {
+          this.users = response.data;
+          this.userloading = false;
+          if(this.users!=null&&this.users.length==1){
+            this.form.userId=this.users[0].userId;
+            this.getAddressList(this.form.userId)
+          }
+        });
+      }
+    },
      /** 查询部门下拉树结构 */
      getTreeselect() {
       treeselect().then((response) => {

+ 16 - 16
src/views/users/user/darkRoom.vue

@@ -45,23 +45,23 @@
         </template>
       </el-table-column>
       <el-table-column label="注册时间" align="center" prop="createTime" width="160px"/>
-      <el-table-column label="看课数量" align="center" prop="watchCourseCount" />
-      <el-table-column label="缺课数量" align="center" prop="missCourseCount" />
-      <el-table-column label="缺课状态" align="center" prop="missCourseStatus">
-        <template slot-scope="scope">
-          <el-tag effect="dark" type="danger"  v-if="scope.row.missCourseStatus === 1">已缺课</el-tag>
-          <el-tag effect="dark" type="success" v-else>未缺课</el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="参与营期数量" align="center" prop="partCourseCount" width="100px"/>
+<!--      <el-table-column label="看课数量" align="center" prop="watchCourseCount" />-->
+<!--      <el-table-column label="缺课数量" align="center" prop="missCourseCount" />-->
+<!--      <el-table-column label="缺课状态" align="center" prop="missCourseStatus">-->
+<!--        <template slot-scope="scope">-->
+<!--          <el-tag effect="dark" type="danger"  v-if="scope.row.missCourseStatus === 1">已缺课</el-tag>-->
+<!--          <el-tag effect="dark" type="success" v-else>未缺课</el-tag>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column label="参与营期数量" align="center" prop="partCourseCount" width="100px"/>-->
       <el-table-column label="最后一次看课时间" align="center" prop="lastWatchDate"  width="160px"/>
-      <el-table-column label="看课状态" align="center" prop="courseCountStatus">
-        <template slot-scope="scope">
-          <el-tag effect="dark" type="success" v-if="scope.row.courseCountStatus === 1">正常</el-tag>
-          <el-tag effect="dark" type="info"    v-else-if="scope.row.courseCountStatus === 2">停止</el-tag>
-          <el-tag effect="dark" type="danger"  v-else>未看</el-tag>
-        </template>
-      </el-table-column>
+<!--      <el-table-column label="看课状态" align="center" prop="courseCountStatus">-->
+<!--        <template slot-scope="scope">-->
+<!--          <el-tag effect="dark" type="success" v-if="scope.row.courseCountStatus === 1">正常</el-tag>-->
+<!--          <el-tag effect="dark" type="info"    v-else-if="scope.row.courseCountStatus === 2">停止</el-tag>-->
+<!--          <el-tag effect="dark" type="danger"  v-else>未看</el-tag>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
 <!--      <el-table-column label="停课天数" align="center" prop="stopWatchDays" />-->
 <!--      <el-table-column label="完播时间" align="center" prop="completeWatchDate" width="160px"/>-->
       <el-table-column label="标签名称" align="center" prop="tag" />