فهرست منبع

Merge remote-tracking branch 'origin/master'

吴树波 1 روز پیش
والد
کامیت
238d1499b2

+ 4 - 4
.env.prod-shdn

@@ -1,11 +1,11 @@
 # 页面标题
-VUE_APP_TITLE =互联网医院管理系统
+VUE_APP_TITLE =德宁健康管理系统
 # 首页菜单标题
-VUE_APP_TITLE_INDEX =宽益堂管理系统
+VUE_APP_TITLE_INDEX =德宁健康管理系统
 # 公司名称
-VUE_APP_COMPANY_NAME =重庆云联融智科技有限公司
+VUE_APP_COMPANY_NAME =淄博德宁健康科技有限责任公司
 # ICP备案号
-VUE_APP_ICP_RECORD =渝ICP备2024031984号-1
+VUE_APP_ICP_RECORD =鲁ICP备2024100689号-2
 # ICP网站访问地址
 VUE_APP_ICP_URL =https://beian.miit.gov.cn
 # 网站LOG

+ 8 - 1
.env.prod-ylrz

@@ -26,7 +26,14 @@ VUE_APP_COS_REGION = ap-chongqing
 # 线路一地址
 VUE_APP_VIDEO_LINE_1 = https://ylrztcpv.ylrzcloud.com
 # 线路二地址
-VUE_APP_VIDEO_LINE_2 = https://myhkkobs.ylrztop.com
+VUE_APP_VIDEO_LINE_2 = https://cdhytobs.ylrztop.com
+#火山云视频地址域名
+VUE_APP_VIDEO_URL = https://ylrzvolcengine.ylrztop.com
+#火山云视频点播空间名
+VUE_APP_HSY_SPACE = ylrz-2114522511
+
+#直播解码路径
+VUE_APP_LIVE_PATH = /live
 
 # 开发环境配置
 ENV = 'production'

+ 2 - 4
Dockerfile

@@ -1,7 +1,5 @@
-
-
 #基于官方 NGINX 镜像部署(精简镜像)
-FROM nginx:alpine
+FROM swr.cn-east-2.myhuaweicloud.com/library/nginx:alpine
 
 # 复制本地打包好的 dist 目录到 NGINX 静态资源目录
 COPY ./dist /usr/share/nginx/html
@@ -13,4 +11,4 @@ COPY ./nginx.conf /etc/nginx/nginx.conf
 #EXPOSE 80
 
 # 启动 NGINX(前台运行,避免容器启动后退出)
-CMD ["nginx", "-g", "daemon off;"]
+CMD ["nginx", "-g", "daemon off;"]

+ 2 - 2
src/api/live/liveData.js

@@ -28,9 +28,9 @@ export function getLiveDataDetailBySql(liveId) {
   })
 }
 
-export function getLiveUserDetailListBySql(liveId) {
+export function getLiveUserDetailListBySql(liveId, pageNum, pageSize) {
   return request({
-    url: '/liveData/liveData/getLiveUserDetailListBySql?liveId=' + liveId,
+    url: '/liveData/liveData/getLiveUserDetailListBySql?liveId=' + liveId + '&pageNum=' + (pageNum || 1) + '&pageSize=' + (pageSize || 100),
     method: 'get'
   })
 }

+ 3 - 3
src/views/course/coursePlaySourceConfig/index.vue

@@ -589,13 +589,13 @@ export default {
       this.bindCurrentRow = row;  // 保存当前行数据
       this.bindForm.bindShow = true;
     },
-    changeSysPayModes(value){
-      console.log(value)
+    changeSysPayModes(value,row){
       const query = {
         pageNum: 1,
         pageSize: 100,
         merchantType: value,
-        isDeleted: 0
+        isDeleted: 0,
+        appId:this.bindCurrentRow.appid
       }
       listMerchantAppConfig(query).then( response => {
           this.merchantAppConfigList = response.rows;

+ 18 - 1
src/views/his/userCoupon/index.vue

@@ -186,21 +186,29 @@
           :title="show.title" :visible.sync="storeOpen">
       <storeOrderDetails  ref="storeDetails" />
     </el-drawer>
+    <el-drawer
+         :with-header="false"
+         size="75%"
+          :title="show.title" :visible.sync="storeOpenTypeThree">
+      <packageOrderDetails  ref="DetailsTypeThree" />
+    </el-drawer>
   </div>
 </template>
 <script>
 import { listUserCoupon, getUserCoupon, delUserCoupon, addUserCoupon, updateUserCoupon, exportUserCoupon } from "@/api/his/userCoupon";
 import inquiryOrderDetails from '../../components/his/inquiryOrderDetails.vue';
 import storeOrderDetails from '../../components/his/storeOrderDetails.vue';
+import packageOrderDetails from '../../components/his/packageOrderDetails.vue';
 export default {
   name: "UserCoupon",
-  components: { inquiryOrderDetails,storeOrderDetails },
+  components: { inquiryOrderDetails,storeOrderDetails,packageOrderDetails },
   data() {
     return {
       show:{
         open:false,
         },
       storeOpen:false,
+      storeOpenTypeThree:false,
       // 遮罩层
       createTime:[],
       useTime:[],
@@ -290,6 +298,15 @@ export default {
               setTimeout(() => {
                    this.$refs.storeDetails.getDetails(row.businessId);
               }, 1);
+            }else if(row.businessType==3){
+              console.log('进入 businessType=3 分支');
+              this.storeOpenTypeThree=true;
+              console.log('设置 storeOpenTypeThree = true 后:', this.storeOpenTypeThree);
+              setTimeout(() => {
+                   console.log('调用 DetailsTypeThree 组件 getDetails');
+                   
+                   this.$refs.DetailsTypeThree.getDetails(row.businessId);
+              }, 1);
             }
         },
     handleClickX(tab, event) {

+ 31 - 10
src/views/live/liveData/index.vue

@@ -363,25 +363,25 @@
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">>20分钟人数(直播):</span>
+                <span class="detail-label">>=20分钟人数(直播):</span>
                 <span class="detail-value">{{ detailData.liveOver20Minutes || 0 }}</span>
               </div>
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">>30分钟人数(直播):</span>
+                <span class="detail-label">>=30分钟人数(直播):</span>
                 <span class="detail-value">{{ detailData.liveOver30Minutes || 0 }}</span>
               </div>
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">到课完课率直播(>20分钟):</span>
+                <span class="detail-label">到课完课率直播(>=20分钟):</span>
                 <span class="detail-value">{{ formatPercent(detailData.liveCompletionRate20) }}</span>
               </div>
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">到课完课率直播(>30分钟):</span>
+                <span class="detail-label">到课完课率直播(>=30分钟):</span>
                 <span class="detail-value">{{ formatPercent(detailData.liveCompletionRate30) }}</span>
               </div>
             </el-col>
@@ -399,25 +399,25 @@
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">>20分钟人数(回放):</span>
+                <span class="detail-label">>=20分钟人数(回放):</span>
                 <span class="detail-value">{{ detailData.playbackOver20Minutes || 0 }}</span>
               </div>
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">>30分钟人数(回放):</span>
+                <span class="detail-label">>=30分钟人数(回放):</span>
                 <span class="detail-value">{{ detailData.playbackOver30Minutes || 0 }}</span>
               </div>
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">到课完课率回放(>20分钟):</span>
+                <span class="detail-label">到课完课率回放(>=20分钟):</span>
                 <span class="detail-value">{{ formatPercent(detailData.playbackCompletionRate20) }}</span>
               </div>
             </el-col>
             <el-col :span="12">
               <div class="detail-item">
-                <span class="detail-label">到课完课率回放(>30分钟):</span>
+                <span class="detail-label">到课完课率回放(>=30分钟):</span>
                 <span class="detail-value">{{ formatPercent(detailData.playbackCompletionRate30) }}</span>
               </div>
             </el-col>
@@ -555,6 +555,16 @@
           <el-table-column prop="companyName" label="分公司" min-width="150"></el-table-column>
           <el-table-column prop="salesName" label="销售" min-width="120"></el-table-column>
         </el-table>
+        <!-- 用户详情分页组件 -->
+        <pagination
+          v-show="userDetailTotal > 0"
+          :total="userDetailTotal"
+          :page.sync="userDetailQueryParams.pageNum"
+          :limit.sync="userDetailQueryParams.pageSize"
+          :page-sizes="[10, 100, 1000]"
+          @pagination="handleViewUserDetail"
+          style="margin-top: 20px;"
+        />
       </div>
     </el-drawer>
   </div>
@@ -633,7 +643,12 @@ export default {
       userDetailList: [],
       userDetailLoading: false,
       showUserDetail: false,
-      userDetailExportLoading: false
+      userDetailExportLoading: false,
+      userDetailTotal: 0,
+      userDetailQueryParams: {
+        pageNum: 1,
+        pageSize: 10
+      }
     };
   },
   created() {
@@ -882,9 +897,10 @@ export default {
       if (!this.currentLiveId) return;
       this.showUserDetail = true;
       this.userDetailLoading = true;
-      getLiveUserDetailListBySql(this.currentLiveId).then(response => {
+      getLiveUserDetailListBySql(this.currentLiveId, this.userDetailQueryParams.pageNum, this.userDetailQueryParams.pageSize).then(response => {
         if (response.code === 200) {
           this.userDetailList = response.data || [];
+          this.userDetailTotal = response.total || 0;
         }
         this.userDetailLoading = false;
       }).catch(() => {
@@ -898,6 +914,11 @@ export default {
       this.detailData = {};
       this.userDetailList = [];
       this.currentLiveId = null;
+      this.userDetailTotal = 0;
+      this.userDetailQueryParams = {
+        pageNum: 1,
+        pageSize: 100
+      };
     },
     /** 格式化百分比 */
     formatPercent(value) {

+ 50 - 39
src/views/live/order/index.vue

@@ -161,37 +161,37 @@
 <!--        </el-select>-->
 <!--      </el-form-item>-->
 
-      <el-form-item label="结算状态" prop="deliveryPayStatus">
-        <el-select v-model="queryParams.deliveryPayStatus" placeholder="请选择物流结算状态" clearable size="small">
-          <el-option
-            v-for="item in deliveryPayStatusOptions"
-            :key="item.dictValue"
-            :label="item.dictLabel"
-            :value="item.dictValue"
-          />
-        </el-select>
-      </el-form-item>
+<!--      <el-form-item label="结算状态" prop="deliveryPayStatus">-->
+<!--        <el-select v-model="queryParams.deliveryPayStatus" placeholder="请选择物流结算状态" clearable size="small">-->
+<!--          <el-option-->
+<!--            v-for="item in deliveryPayStatusOptions"-->
+<!--            :key="item.dictValue"-->
+<!--            :label="item.dictLabel"-->
+<!--            :value="item.dictValue"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
 
-      <el-form-item label="小程序" prop="appId">
-        <el-select v-model="queryParams.appId" placeholder="请选择所属小程序" clearable size="small">
-          <el-option
-            v-for="dict in appMallOptions"
-            :key="dict.appid"
-            :label="dict.name + '(' + dict.appid + ')'"
-            :value="dict.appid"
-          />
-        </el-select>
-      </el-form-item>
+<!--      <el-form-item label="小程序" prop="appId">-->
+<!--        <el-select v-model="queryParams.appId" placeholder="请选择所属小程序" clearable size="small">-->
+<!--          <el-option-->
+<!--            v-for="dict in appMallOptions"-->
+<!--            :key="dict.appid"-->
+<!--            :label="dict.name + '(' + dict.appid + ')'"-->
+<!--            :value="dict.appid"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
 
-      <el-form-item label="商品规格" prop="productSpec">
-        <el-input
-          v-model="queryParams.productSpec"
-          placeholder="请输入商品规格"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="商品规格" prop="productSpec">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.productSpec"-->
+<!--          placeholder="请输入商品规格"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
 <!--      <el-form-item label="商品数量" prop="totalNum">-->
 <!--        <el-input-->
@@ -232,6 +232,15 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="汇付商户订单号" prop="hfshh">
+        <el-input
+          v-model="queryParams.hfshh"
+          placeholder="请输入汇付商户订单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
 
 <!--      <el-form-item label="成本价格" prop="cost">-->
 <!--        <el-input-->
@@ -253,16 +262,16 @@
 <!--        />-->
 <!--      </el-form-item>-->
 
-      <el-form-item label="档期归属" prop="scheduleId">
-        <el-select filterable style="width: 215px" v-model="queryParams.scheduleId" placeholder="请选择档期" clearable size="small">
-          <el-option
-            v-for="item in scheduleOptions"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          />
-        </el-select>
-      </el-form-item>
+<!--      <el-form-item label="档期归属" prop="scheduleId">-->
+<!--        <el-select filterable style="width: 215px" v-model="queryParams.scheduleId" placeholder="请选择档期" clearable size="small">-->
+<!--          <el-option-->
+<!--            v-for="item in scheduleOptions"-->
+<!--            :key="item.id"-->
+<!--            :label="item.name"-->
+<!--            :value="item.id"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
 
       <el-form-item label="代服账户" prop="erpAccount" v-if="SFDFopen">
         <el-select v-model="queryParams.erpAccount" style="width: 215px" placeholder="ERP账户" clearable size="small">
@@ -447,6 +456,7 @@
       <el-table-column label="手机号" align="center" prop="userPhone" width="120px" />
       <el-table-column label="商品规格" align="center" prop="productSpec" width="120px" />
       <el-table-column label="商品数量" align="center" prop="totalNum" width="100px" />
+      <el-table-column label="汇付商户订单号" align="center" prop="hfshh" width="100px" />
       <el-table-column label="订单金额" align="center" prop="totalPrice" width="100px">
         <template slot-scope="scope">
           <span v-if="scope.row.totalPrice != null">{{ scope.row.totalPrice.toFixed(2) }}</span>
@@ -717,6 +727,7 @@ export default {
         pageSize: 10,
         companyId: null,
         deptId: null,
+        hfshh: null,
         orderTypeFilter: null,
         salesName: null,
         orderCodes: [],

+ 9 - 9
src/views/qw/qwCompany/index.vue

@@ -200,14 +200,14 @@
         <el-form-item label="聊天工具栏实际运用地址" prop="chatToolbarOauth">
           <el-input v-model="form.chatToolbarOauth" placeholder="请输入聊天工具栏实际运用地址" />
         </el-form-item>
-        <el-form-item label="app分享小程序原始id" prop="yjfyyAppId">
-          <el-input v-model="form.yjfyyAppId" placeholder="app分享小程序原始id" />
+        <el-form-item label="app分享小程序原始id" prop="shareAppId">
+          <el-input v-model="form.shareAppId" placeholder="app分享小程序原始id" />
         </el-form-item>
-        <el-form-item label="app分享小程序应用id" prop="yjfyyAgentId">
-          <el-input v-model="form.yjfyyAgentId" placeholder="app分享小程序应用id" />
+        <el-form-item label="app分享小程序应用id" prop="shareAgentId">
+          <el-input v-model="form.shareAgentId" placeholder="app分享小程序应用id" />
         </el-form-item>
-        <el-form-item label="app分享小程序schma" prop="yjfyySchema">
-          <el-input v-model="form.yjfyySchema" placeholder="app分享小程序schema" />
+        <el-form-item label="app分享小程序schma" prop="shareSchema">
+          <el-input v-model="form.shareSchema" placeholder="app分享小程序schema" />
         </el-form-item>
         <el-form-item label="关联公司" prop="companyIds">
 
@@ -369,9 +369,9 @@ export default {
         createTime: null,
         updateTime: null,
         createBy: null,
-        yjfyyAppId: null,
-        yjfyyAgentId: null,
-        yjfyySchema: null,
+        shareAppId: null,
+        shareAgentId: null,
+        shareSchema: null,
       };
       this.resetForm("form");
     },