This commit is contained in:
zoujiandong 2025-06-17 11:22:56 +08:00
parent bbc99ec0dd
commit d955894b45
8 changed files with 99 additions and 20 deletions

View File

@ -0,0 +1,44 @@
<template>
<div id="player"></div>
</template>
<script setup>
import { onMounted, onUnmounted, ref } from 'vue';
const playJs=ref("//player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js");
const player=ref(null);
const props=defineProps({
vid:{
type: String,
default:''
}
})
const loadPlayerScript=(callback)=> {
if (!window.polyvLivePlayer) {
const myScript = document.createElement('script');
myScript.setAttribute('src', playJs.value);
myScript.onload = callback;
document.body.appendChild(myScript);
} else {
callback();
}
};
const loadPlayer=()=> {
const polyvLivePlayer = window.polyvLivePlayer;
player.value = polyvLivePlayer({
wrap: '#player',
width: '100%',
height: 250,
vid: props.vid,
});
}
onMounted(()=>{
loadPlayerScript(loadPlayer);
})
onUnmounted(()=>{
player.value.destroy();
})
</script>
<style>
</style>

View File

@ -261,7 +261,7 @@ onShow(()=>{
}
.deal {
margin-top: 20rpx;
padding-top: 20rpx;
display: flex;
color: #4B5563;
font-size: 24rpx;
@ -327,7 +327,7 @@ onShow(()=>{
margin: 30rpx 30rpx;
.name {
margin: 20rpx 0 20rpx 15rpx;
padding: 20rpx 0 20rpx 15rpx;
font-size: 27rpx;
color: #333333;
}

View File

@ -83,7 +83,7 @@
</view>
<view class="time">
<up-icon name="clock" color="#6B7280" size="28rpx"></up-icon>
<view class="num">{{ formatDay(info.updated_at) }}</view>
<view class="num">{{ formatDay(info.push_date) }}</view>
</view>
</view>
</view>
@ -109,11 +109,13 @@
>
</polyv-player>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<div id="player"></div>
<!-- #ifdef h5 -->
<view class="videobox" v-if="type == 'video'">
<baoliVideo :vid="info.video_no" ></baoliVideo>
</view>
<!-- #endif -->
</view>
<view class="videobox" v-else-if="type == 'article'">
<view class="videobox" v-else-if="type == 'article'" style="min-height:350rpx">
<view class="content" v-html="info.article_content"></view>
</view>
<view class="videobox" v-else>
@ -541,6 +543,10 @@ import list from "@/uni_modules/z-paging/components/z-paging/z-paging";
import api from "@/api/api";
import { onLoad } from "@dcloudio/uni-app";
import dayjs from "dayjs";
// #ifdef h5
import baoliVideo from "@/components/baoliVideo/baoliVideo.vue";
// #endif
const paging = ref(null);
const dataList = ref([]);
const total = ref(0);
@ -570,7 +576,7 @@ const clickIndex = ref(0);
const is_top = ref(false);
const option_id = ref("");
const point=ref(0)
const playJs=ref("//player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js");
const confirmGive = () => {
showGive.value = false;

View File

@ -3,15 +3,15 @@
<view class="page">
<view class="databox">
<view class="cell">
<view class="num">{{ numInfo.article_collect_num }}</view>
<view class="num">{{ numInfo.article_num }}</view>
<view class="name">文章</view>
</view>
<view class="cell">
<view class="num">{{ numInfo.video_collect_num }}</view>
<view class="num">{{ numInfo.video_num }}</view>
<view class="name">视频</view>
</view>
<view class="cell">
<view class="num">{{ numInfo.video_read_num+numInfo.article_read_num }}</view>
<view class="num" >{{(numInfo.video_read_num && numInfo.article_read_num)?numInfo.video_read_num+numInfo.article_read_num:0}}</view>
<view class="name">阅读量</view>
</view>
</view>

View File

@ -94,6 +94,7 @@
</view>
<view class="row" style="margin-top: 120rpx" v-else>
<up-button
v-if="checked"
:customStyle="customStyle"
class="custom-style"
type="success"
@ -103,16 +104,26 @@
color="#3cc7c0"
size="large"
></up-button>
<up-button
v-else
:customStyle="customStyle"
class="custom-style"
type="success"
@click="alertAgree"
text="手机号快捷登录"
color="#3cc7c0"
size="large"
></up-button>
</view>
<view class="row">
<view class="left" @click="switchType">
{{ isPhoneLogin ? "用短信验证码登录" : "快捷登录" }}
{{ isPhoneLogin ? "用短信验证码登录" : "快捷登录" }}
</view>
<view class="right" @click="goRegister"> 注册 </view>
</view>
<view class="row" style="margin-top:10rpx">
<radio-group @click="radioChange">
<label class="radio"><radio value="1" :checked="checked" color="rgb(41, 121, 255)" />
<radio-group @click="radioChange" :labelDisabled="true" >
<label class="radio"><radio :labelDisabled="true" value="1" :checked="checked" color="rgb(41, 121, 255)" />
我已阅读并同意<a class="agree">用户协议</a>
</label>
</radio-group>
@ -174,6 +185,12 @@ const hasRedirectUrl = ref(false);
const radioChange = (e) => {
checked.value =!checked.value;
};
const alertAgree=()=>{
uni.showToast({
title: '请先同意用户协议',
icon:'none'
})
};
onLoad((options) => {
if (options.redirectUrl) {
hasRedirectUrl.value = true
@ -260,6 +277,13 @@ const phoneLogin = () => {
});
return false
};
if(!checked.value){
uni.showToast({
title: '请先同意用户协议',
icon:'none'
})
return false;
}
auth().then((res) => {
api.mobileLogin({
code: code.value,

View File

@ -31,8 +31,10 @@
placeholder="患者基本情况,检查结果,诊疗图片或视频"
eid="editor-id"
@ready="ready"
pasteMode="origin"
@focus="focusInfo"
@blur="blurInfo"
@epaste="epaste"
></sv-editor>
<!-- <editor
id="editor"
@ -512,6 +514,9 @@ const goBack = () => {
const closeCase = () => {
showCase.value = false;
};
const epaste=(e)=>{
console.log(e)
}
const addOption = () => {
voteData.case_exchange_vote_option.push({
option_value: "",
@ -609,7 +614,7 @@ const ready = (e) => {
editorCtx.value = e;
let html =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/>";
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
editorCtx.value.initHtml(html);
};
const readyResult = (e) => {
@ -754,7 +759,7 @@ const alertSave = async () => {
}else{
const res = await editorCtx.value.getLastContent();
//let html = editorCtx.value.exportHtml(res.html);
//const initInfo= "<p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/>";
//const initInfo= "<p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/><br/>";
const resContent = await editorCtxResult.value.getLastContent();
//let reshtml = editorCtxResult.value.exportHtml(resContent.html);
if (
@ -776,7 +781,7 @@ const alertSave = async () => {
};
const publish = async () => {
const initInfo =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/>";
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
if (form.exchange_title == "") {
uni.showToast({
title: "请输入标题",
@ -1325,7 +1330,7 @@ onLoad(() => {
}
#editor {
padding: 0 30rpx;
height: calc(100vh - 600rpx);
height: calc(100vh - 700rpx);
}
#editorRes {
min-height: 300rpx;

View File

@ -63,7 +63,7 @@
<script setup>
import { ref, reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
const src = ref("https://wx.igandan.com/hcp/toRegister");
const src = ref("https://wx.igandan.com/hcp/toRegister?fromType=wx");
const model = reactive({
name: "",
});

View File

@ -332,7 +332,7 @@ const searchList = async (params) => {
}
.deal {
margin-top: 20rpx;
padding-top: 20rpx;
display: flex;
color: #4b5563;
font-size: 24rpx;
@ -398,7 +398,7 @@ const searchList = async (params) => {
margin: 30rpx 30rpx;
.name {
margin: 20rpx 0 20rpx 15rpx;
padding: 20rpx 0 20rpx 15rpx;
font-size: 27rpx;
color: #333333;
}