master
lion 1 year ago
parent e1f80f2bde
commit d27b84db97

@ -14,18 +14,10 @@
<view class="signatureItem">
<view class="signatureTitle">护工签名</view>
<view class="signatureArea">
<!-- 签名组件 - 未签名时显示 -->
<l-signature
v-if="!paramedicSignImage"
ref="paramedicSignatureRef"
:penColor="penColor"
:penSize="penSize"
:openSmooth="openSmooth"
:boundingBox="boundingBox"
disableScroll
@save="onSignatureSave"
data-type="paramedic">
</l-signature>
<!-- 未签名时显示开始签名按钮(弹出全屏签名) -->
<view v-if="!paramedicSignImage" class="signatureStart" @click="openSignature('paramedic')">
开始签名
</view>
<!-- 签名图片 - 已签名时显示 -->
<image
v-if="paramedicSignImage"
@ -35,8 +27,7 @@
</image>
</view>
<view class="signatureActions">
<text class="btnClear" @click="clearSignature('paramedic')" v-if="!paramedicSignImage">清除</text>
<text class="btnSave" @click="saveSignature('paramedic')" v-if="!paramedicSignImage">保存</text>
<text class="btnSave" @click="openSignature('paramedic')" v-if="!paramedicSignImage">开始签名</text>
<text class="btnResign" @click="resignSignature('paramedic')" v-if="paramedicSignImage">重新签名</text>
</view>
</view>
@ -44,18 +35,10 @@
<view class="signatureItem">
<view class="signatureTitle">客户签名</view>
<view class="signatureArea">
<!-- 签名组件 - 未签名时显示 -->
<l-signature
v-if="!customerSignImage"
ref="customerSignatureRef"
:penColor="penColor"
:penSize="penSize"
:openSmooth="openSmooth"
:boundingBox="boundingBox"
disableScroll
@save="onSignatureSave"
data-type="customer">
</l-signature>
<!-- 未签名时显示开始签名按钮(弹出全屏签名) -->
<view v-if="!customerSignImage" class="signatureStart" @click="openSignature('customer')">
开始签名
</view>
<!-- 签名图片 - 已签名时显示 -->
<image
v-if="customerSignImage"
@ -65,41 +48,23 @@
</image>
</view>
<view class="signatureActions">
<text class="btnClear" @click="clearSignature('customer')" v-if="!customerSignImage">清除</text>
<text class="btnSave" @click="saveSignature('customer')" v-if="!customerSignImage">保存</text>
<text class="btnSave" @click="openSignature('customer')" v-if="!customerSignImage">开始签名</text>
<text class="btnResign" @click="resignSignature('customer')" v-if="customerSignImage">重新签名</text>
</view>
</view>
<view class="signatureItem">
<!-- <view class="signatureItem">
<view class="signatureTitle">公司签名</view>
<view class="signatureArea">
<!-- 签名组件 - 未签名时显示 -->
<l-signature
v-if="!companySignImage"
ref="companySignatureRef"
:penColor="penColor"
:penSize="penSize"
:openSmooth="openSmooth"
:boundingBox="boundingBox"
disableScroll
@save="onSignatureSave"
data-type="company">
</l-signature>
<!-- 签名图片 - 已签名时显示 -->
<image
v-if="companySignImage"
:src="companySignImage"
class="signatureImage"
mode="aspectFit">
</image>
</view>
<view class="signatureActions">
<text class="btnClear" @click="clearSignature('company')" v-if="!companySignImage">清除</text>
<text class="btnSave" @click="saveSignature('company')" v-if="!companySignImage">保存</text>
<text class="btnResign" @click="resignSignature('company')" v-if="companySignImage">重新签名</text>
<text class="btnSave" style="opacity:.6;">已使用公司签名</text>
</view>
</view>
</view> -->
</view>
<!-- 预览协议按钮 -->
@ -160,6 +125,39 @@
</view>
</view>
</uni-popup>
<!-- 全屏签名弹窗 -->
<uni-popup ref="signaturePopup" type="center" :mask-click="false" class="fullscreen-popup" :safe-area="false">
<view class="signaturePopup">
<view class="popupHeader">
<text class="popupTitle">{{ signaturePopupTitle }}</text>
<text class="popupClose" @click="closeSignaturePopup">×</text>
</view>
<view class="popupContent">
<view class="signatureWorkspace">
<view class="signatureInlineToast" v-if="signatureToastVisible">{{ signatureToastText }}</view>
<view class="signatureControlsRow">
<view class="signatureControlsRowInner">
<view class="btnRow btnRowClear" @click="clearPopupSignature"><view>清</view><view>除</view></view>
<view class="btnRow btnRowReset" @click="resetPopupSignature"><view>重</view><view>置</view></view>
<view class="btnRow btnRowSave" @click="savePopupSignature"><view>保</view><view>存</view></view>
</view>
</view>
<view class="signatureCanvasWrap">
<l-signature
ref="popupSignatureRef"
:penColor="penColor"
:penSize="penSize"
:openSmooth="openSmooth"
:boundingBox="boundingBox"
disableScroll
class="signatureCanvas">
</l-signature>
</view>
</view>
</view>
</view>
</uni-popup>
</view>
</template>
@ -181,7 +179,7 @@
companySignId: "",
paramedicSignImage: "", // 护工签名图片
customerSignImage: "", // 客户签名图片
companySignImage: "", // 公司签名图片
companySignImage: require('@/static/companySign.png'), // 公司签名图片(固定)
// 协议预览相关
agreementImage: "", // 协议图片路径
agreementId: "", // 协议ID
@ -195,14 +193,21 @@
boundingBox: true,
// 生成协议按钮状态
isGenerating: false, // 是否正在生成协议
generateButtonText: '生成协议' // 按钮文本
generateButtonText: '生成协议', // 按钮文本
// 全屏签名弹窗
currentSignatureType: '',
signaturePopupTitle: '',
signatureToastVisible: false,
signatureToastText: ''
}
},
onLoad: function(option) {
onLoad: function(option) {
var that = this;
that.id = option.id;
util.getOrderInfo(option.id, function(r) {
that.order = r.data;
// 初始化公司签名(固定图片)
that.initCompanySign();
// 检查是否可以预览协议
that.checkCanPreview();
// 检查协议状态一致性
@ -212,11 +217,38 @@
});
},
methods: {
// 规范化URL,去除域名后的多余斜杠以及 //storage -> /storage
normalizeUrl: function(url){
if(!url){ return url; }
let u = String(url);
// 把 :// 后面可能出现的多个 / 压缩成一个 /
u = u.replace(/(:\/\/[^/]*?)\/+/, '$1/');
// 把 //storage 归一为 /storage
u = u.replace(/\/+storage\//, '/storage/');
return u;
},
// 初始化公司签名(不需要手写)
initCompanySign: function(){
// 若后端需要ID,这里可用一个固定占位符或通过上传静态图获取ID。
// 先设置图片,ID留空或使用占位符,由后端忽略或在生成时不校验。
this.companySignImage = require('@/static/companySign.png');
this.companySignId = 'STATIC_COMPANY_SIGN';
},
tohome:function(){
uni.navigateTo({
url:"../../../../pages/index/index"
})
},
// 显示签名弹窗内的提示
showSignatureToast: function(text){
this.signatureToastText = text || '';
this.signatureToastVisible = true;
clearTimeout(this._signatureToastTimer);
this._signatureToastTimer = setTimeout(()=>{
this.signatureToastVisible = false;
}, 1600);
},
bindCancel: function(e) {
uni.navigateBack({
@ -225,8 +257,8 @@
bindsubmitFun: function(e) {
var that = this;
// 检查是否所有签名都已完成
if (!that.paramedicSignId || !that.customerSignId || !that.companySignId) {
// 检查是否所有签名都已完成(公司签名固定,不再校验 companySignId)
if (!that.paramedicSignId || !that.customerSignId) {
util.alert("请完成所有签名");
return false;
}
@ -251,6 +283,135 @@
});
},
// 打开全屏签名
openSignature: function(type){
this.currentSignatureType = type;
const typeNames = {
'paramedic': '护工签名',
'customer': '客户签名',
'company': '公司签名'
};
this.signaturePopupTitle = typeNames[type] || '签名';
this.$nextTick(()=>{
this.$refs.signaturePopup.open();
// 清空一次画布
setTimeout(()=>{
if(this.$refs.popupSignatureRef){
this.$refs.popupSignatureRef.clear();
}
}, 50);
});
},
// 关闭全屏签名
closeSignaturePopup: function(){
if(this.$refs.signaturePopup){
this.$refs.signaturePopup.close();
}
},
// 清除弹窗中的签名
clearPopupSignature: function(){
if(this.$refs.popupSignatureRef){
this.$refs.popupSignatureRef.clear();
}
},
// 重置:清空画布并清除当前签名人的已保存签名(ID与图片)
resetPopupSignature: function(){
this.clearPopupSignature();
const type = this.currentSignatureType;
switch(type){
case 'paramedic':
this.paramedicSignId = '';
this.paramedicSignImage = '';
break;
case 'customer':
this.customerSignId = '';
this.customerSignImage = '';
break;
case 'company':
this.companySignId = '';
this.companySignImage = '';
break;
}
// 签名被重置后,若已有协议,需清除以避免不一致
this.autoClearAgreement();
},
// 保存弹窗中的签名
savePopupSignature: function(){
const type = this.currentSignatureType;
if(!type){
return;
}
if(this.$refs.popupSignatureRef){
// 若未签字,禁止保存
try{
if (typeof this.$refs.popupSignatureRef.isEmpty === 'function' && this.$refs.popupSignatureRef.isEmpty()){
this.showSignatureToast('请先签名后再保存');
return;
}
}catch(e){
// 兼容无isEmpty方法的实现,继续后续流程
}
this.$refs.popupSignatureRef.canvasToTempFilePath({
quality: 0.9,
success: (res)=>{
// 将签名图像旋转为横向(如有需要)再上传
this.rotateImageToLandscape(res.tempFilePath, (rotatedDataUrl)=>{
const uploadPath = rotatedDataUrl || res.tempFilePath;
this.uploadSignature(uploadPath, type, ()=>{
this.closeSignaturePopup();
// 清理已生成协议
this.checkAndClearAgreement(type);
});
});
},
fail: ()=>{
util.alert('签名保存失败');
}
});
}
},
// 旋转图片为横向(仅在纵向时旋转-90度),回调返回 dataURL
rotateImageToLandscape: function(filePath, callback){
try{
const img = new Image();
// 避免跨域污染canvas(同源或dataURL通常安全)
img.crossOrigin = 'anonymous';
img.onload = () => {
const isPortrait = img.height > img.width;
if(!isPortrait){
// 已是横向,直接回调原路径
callback(null);
return;
}
const canvas = document.createElement('canvas');
// 旋转-90度后宽高对调
canvas.width = img.height;
canvas.height = img.width;
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#ffffff';
ctx.fillRect(0, 0, canvas.width, canvas.height);
// 移动到左下角,逆时针旋转90°,再从(0,0)绘制
ctx.translate(0, canvas.height);
ctx.rotate(-90 * Math.PI/180);
ctx.drawImage(img, 0, 0);
const dataUrl = canvas.toDataURL('image/png', 0.92);
callback(dataUrl);
};
img.onerror = () => {
// 失败则使用原图
callback(null);
};
img.src = filePath;
}catch(e){
callback(null);
}
},
// 清除签名
clearSignature: function(type) {
const refName = type + 'SignatureRef';
@ -331,10 +492,12 @@
'company': '公司'
};
const typeName = typeNames[type] || type;
util.alert(typeName + '签名已清除,请重新签名');
// 自动清除已生成的协议
this.autoClearAgreement();
// 立即弹出对应的签名区域
this.openSignature(type);
},
// 签名保存事件处理
@ -370,16 +533,17 @@
console.log('开始上传签名:', type, filePath);
// 调用真实的upload-image接口
uni.uploadFile({
url: util.HOST + 'manager/upload-image',
filePath: filePath,
name: 'file',
formData: {
'token': user.access_token,
'folder': 'public'
},
success(res) {
// 支持 dataURL(旋转后的)和本地临时路径
const doUpload = (pathToUpload) => {
uni.uploadFile({
url: util.HOST + 'manager/upload-image',
filePath: pathToUpload,
name: 'file',
formData: {
'token': user.access_token,
'folder': 'public'
},
success(res) {
console.log('签名上传响应:', res);
if (res.statusCode == "200") {
try {
@ -416,7 +580,16 @@
console.log('签名上传失败:', res);
util.alert('签名上传失败:网络错误');
}
});
});
};
if (typeof filePath === 'string' && filePath.startsWith('data:')) {
// 直接上传 dataURL
doUpload(filePath);
} else {
// 本地路径按原逻辑上传
doUpload(filePath);
}
},
// 提交协议
@ -438,7 +611,8 @@
paramedic_sign_id: that.paramedicSignId,
customer_id: that.order.customer_id,
customer_sign_id: that.customerSignId,
company_sign_id: that.companySignId,
// 后端若需要可传固定占位值
company_sign_id: that.companySignId || 'STATIC_COMPANY_SIGN',
file_id: that.file_id
},
utilSuccess: function(r) {
@ -457,8 +631,8 @@
previewAgreement: function() {
var that = this;
// 检查三个签名是否都已完成
if (!that.paramedicSignId || !that.customerSignId || !that.companySignId) {
// 检查三个签名是否都已完成(公司签名固定,不再校验 companySignId)
if (!that.paramedicSignId || !that.customerSignId) {
util.alert('请先完成所有签名');
return;
}
@ -558,14 +732,14 @@
const placeholders = {
'paramedic_sign': that.paramedicSignImage ? `<img src="${that.paramedicSignImage}" alt="护工签名" style="display: inline-block; width: 50px; height: 20px; margin: 0 5px;">` : '',
'customer_sign': that.customerSignImage ? `<img src="${that.customerSignImage}" alt="客户签名" style="display: inline-block; width: 50px; height: 20px; margin: 0 5px;">` : '',
'company_sign': that.companySignImage ? `<img src="${that.companySignImage}" alt="公司签名" style="display: inline-block; width: 50px; height: 20px; margin: 0 5px;">` : '',
'manage_sign': that.companySignImage ? `<img src="${that.companySignImage}" alt="公司签名" style="display: inline-block; width: 50px; height: 20px; margin: 0 5px;">` : '',
'company_sign': `<img class="company-stamp" src="${that.companySignImage}" alt="公司签名" style="display: inline-block;width: 80px;height: 80px;position: relative;left: -150px;margin: 0 5px;vertical-align: middle;">`,
'manage_sign': `<img class="company-stamp" src="${that.companySignImage}" alt="公司签名" style="display: inline-block; width: 80px;height: 80px;position: relative;left: -150px;margin: 0 5px;vertical-align: middle;">`,
'paramedic_sign2': that.paramedicSignImage ? `<img src="${that.paramedicSignImage}" alt="护工签名" style="display: inline-block; width: 50px; height: 20px; margin: 0 5px; margin-right: 54px;">` : '',
'customer_sign2': that.customerSignImage ? `<img src="${that.customerSignImage}" alt="客户签名" style="display: inline-block; width: 50px; height: 20px; margin: 0 5px; margin-right: 54px;">` : '',
'manage_sign2': that.companySignImage ? `<img src="${that.companySignImage}" alt="公司签名" style="display: inline-block; width: 50px; height: 20px; margin: 0 5px; margin-right: 54px;">` : '',
'manage_sign2': `<img class="company-stamp" src="${that.companySignImage}" alt="公司签名" style="display: inline-block; width: 80px;height: 80px;position: relative;left: -150px;vertical-align: middle; margin: 0 5px; margin-right: 54px;">`,
'paramedic_sign_id': that.paramedicSignId || '',
'customer_sign_id': that.customerSignId || '',
'company_sign_id': that.companySignId || '',
'company_sign_id': that.companySignId || 'STATIC_COMPANY_SIGN',
'days': that.order.days || '',
'price': that.order.price || '',
'total': that.order.total || '',
@ -661,29 +835,50 @@
tempContainer.style.minHeight = Math.max(1500, containerHeight) + 'px';
}
// 处理签名图片,确保能正确显示
const images = tempContainer.querySelectorAll('img');
// 处理签名图片,确保能正确显示
const images = tempContainer.querySelectorAll('img');
images.forEach((img, index) => {
// 修复图片路径的双斜杠问题
if (img.src) {
// 移除双斜杠问题
img.src = img.src.replace('//storage/', '/storage/');
// 确保图片路径是完整的URL
if (!img.src.startsWith('http')) {
img.src = util.HOST + img.src.replace(util.HOST, '');
images.forEach((img, index) => {
// 优先读取原始src,避免浏览器解析成绝对地址后误判
let rawSrc = img.getAttribute('src') || img.src || '';
rawSrc = this.normalizeUrl(rawSrc);
// 修复路径中的双斜杠
let fixedSrc = rawSrc.replace('//storage/', '/storage/');
// dataURL 或以 http(s) 开头的保持不变
const isHttp = /^https?:\/\//i.test(fixedSrc);
const isData = /^data:/i.test(fixedSrc);
// 仅当是后端存储相对路径(/storage/开头)时补全域名
if (!isHttp && !isData && /^\/?storage\//i.test(fixedSrc)) {
fixedSrc = fixedSrc.startsWith('/') ? fixedSrc : ('/' + fixedSrc);
fixedSrc = util.HOST.replace(/\/$/, '') + fixedSrc;
}
// 公司印章静态图:/h5/static/ 开头时也补全为绝对地址(避免相对路径在离屏容器解析异常)
if (!isHttp && !isData && /^\/?h5\/static\//i.test(fixedSrc)) {
fixedSrc = fixedSrc.startsWith('/') ? fixedSrc : ('/' + fixedSrc);
const origin = (window && window.location && window.location.origin) ? window.location.origin : '';
fixedSrc = (origin || util.HOST.replace(/\/$/, '')) + fixedSrc;
}
// 写回修正后的地址(再次规范化,防止出现双斜杠)
img.src = this.normalizeUrl(fixedSrc);
console.log("img.src", img.src);
// 设置图片样式(默认签名小图)
if (!img.classList.contains('company-stamp')) {
img.style.display = 'inline-block';
// 仅在未指定宽高时设置默认尺寸,避免覆盖占位符中的样式
if (!img.style.width || img.style.width === '') img.style.width = '50px';
if (!img.style.height || img.style.height === '') img.style.height = '20px';
img.style.margin = '0 5px';
img.style.verticalAlign = 'middle';
// 和预览保持一致:不加边框/背景
img.style.border = 'none';
img.style.backgroundColor = 'transparent';
// 确保图片可见
img.style.opacity = '1';
} else {
// 对公司印章类保留较大尺寸,不覆盖内联宽高与相对位移
img.style.border = 'none';
img.style.backgroundColor = 'transparent';
}
}
// 设置图片样式
img.style.display = 'inline-block';
img.style.width = '50px';
img.style.height = '20px';
img.style.margin = '0 5px';
img.style.verticalAlign = 'middle';
img.style.border = '1px solid #ddd';
img.style.backgroundColor = '#f9f9f9';
// 移除跨域设置,避免CORS问题
// img.crossOrigin = 'anonymous';
@ -716,35 +911,45 @@
};
});
// 预加载所有图片
const preloadImages = () => {
const imagePromises = Array.from(images).map(img => {
return new Promise((resolve, reject) => {
if (img.complete && img.naturalWidth > 0 && img.naturalHeight > 0) {
resolve(img);
} else {
img.onload = () => {
resolve(img);
};
img.onerror = () => {
reject(img);
// 预加载所有图片(确保内联样式生效后再截图)
const preloadImages = () => {
const imagePromises = Array.from(images).map(img => {
return new Promise((resolve, reject) => {
const src = img.getAttribute('src') || img.src || '';
const isHttp = /^https?:\/\//i.test(src);
let isSameOrigin = true;
try { isSameOrigin = new URL(src, window.location.href).origin === window.location.origin; } catch(e) {}
const finishWatch = () => {
if (img.complete && img.naturalWidth > 0 && img.naturalHeight > 0) {
resolve(img);
} else {
img.onload = () => resolve(img);
img.onerror = () => reject(img);
}
};
// 强制重新加载图片
const originalSrc = img.src;
img.src = '';
setTimeout(() => {
img.src = originalSrc;
}, 50);
}
// 将跨域的甲/乙签名转为 blob URL,避免 html2canvas tainted canvas
if (!img.classList.contains('company-stamp') && isHttp && !isSameOrigin && !img.dataset.blob) {
fetch(src, { mode: 'cors' })
.then(r => r.ok ? r.blob() : Promise.reject(r))
.then(b => {
const blobUrl = URL.createObjectURL(b);
img.src = blobUrl;
img.dataset.blob = '1';
finishWatch();
})
.catch(() => finishWatch());
} else {
finishWatch();
}
});
});
});
Promise.allSettled(imagePromises).then(results => {
Promise.allSettled(imagePromises).then(results => {
const successCount = results.filter(r => r.status === 'fulfilled').length;
// 给图片一点时间渲染,然后生成canvas
setTimeout(generateCanvas, 800);
// 再等待一帧确保DOM应用样式
requestAnimationFrame(()=>setTimeout(generateCanvas, 100));
});
};
@ -1107,6 +1312,15 @@
background-color: #fff;
position: relative;
}
.signatureStart {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
color: #0DC99E;
font-size: 28rpx;
}
.signatureActions {
margin-top: 15rpx;
@ -1232,6 +1446,32 @@
overflow: hidden;
}
/* 全屏签名弹窗内部 */
.signaturePopup {
width: 100vw;
height: 100vh;
background: #fff;
display: flex;
flex-direction: column;
position: relative;
z-index: 9999;
}
.signatureWorkspace{display:flex;gap:20rpx;position:relative;}
/* 左侧区域内:横向排布再整体旋转 */
.signatureControlsRow{width: 140rpx;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.signatureControlsRowInner{display:flex;gap:20rpx;transform: rotate(90deg);transform-origin:center;}
.btnRow{margin:0 20rpx;display:flex;align-items:center;justify-content:center;padding: 20rpx 40rpx;border-radius: 999rpx;text-align:center;font-size: 26rpx;}
.btnRow view{margin:0 10rpx;}
.btnRowClear{background:#f0f0f0;color:#333;border:2rpx solid #c84f3d;}
.btnRowSave{background:#0DC99E;color:#fff;}
.btnRowReset{background:#FFEFD9;color:#c84f3d;border:2rpx solid #f3c7a5;}
.signatureCanvasWrap{flex:1;}
.signatureCanvas {width: 100%;height: calc(100vh - 220rpx);background: #fff;border: 1px solid #eee;border-radius: 8rpx;}
/* 弹窗内提示,层级高于画布 */
.signatureInlineToast{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background: rgba(0,0,0,0.75);color:#fff;padding: 16rpx 24rpx;border-radius: 10rpx;font-size: 26rpx;z-index: 10;}
.agreementPopup {
width: 100vw;
height: 100vh;

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>护工管理</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/h5/static/index.883130ca.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/h5/static/js/chunk-vendors.6295c31d.js></script><script src=/h5/static/js/index.e80af248.js></script></body></html>
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/h5/static/index.883130ca.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/h5/static/js/chunk-vendors.2916c8b2.js></script><script src=/h5/static/js/index.a7ca14ad.js></script></body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["package-packagevideo-pages-videoinfo-videoinfo"],{"08bb":function(t,e,n){"use strict";n("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i={name:"topnav",props:{title:{type:String,default:""},hasHome:{type:String,default:"home"}},data:function(){return{}},methods:{toback:function(){uni.navigateBack({delta:0})},tohome:function(){this.$emit("tohome")}}};e.default=i},1304:function(t,e,n){"use strict";n.r(e);var i=n("08bb"),a=n.n(i);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);e["default"]=a.a},"26d8":function(t,e,n){var i=n("c86c");e=i(!1),e.push([t.i,"uni-page-body[data-v-a0ee2c06]{padding-top:%?160?%}.content[data-v-a0ee2c06]{padding:%?20?%}.videotitle[data-v-a0ee2c06]{margin-top:%?20?%}",""]),t.exports=e},"4f4f":function(t,e,n){"use strict";var i=n("7192"),a=n.n(i);a.a},5214:function(t,e,n){"use strict";var i=n("9b83"),a=n.n(i);a.a},"6ab8":function(t,e,n){"use strict";n("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=n("8f30"),a={data:function(){return{item:{},host:""}},onLoad:function(t){this.loadInfo(t.id),this.host=i.HOST},methods:{tohome:function(){uni.navigateTo({url:"../../../../pages/index/index"})},loadInfo:function(t){var e=this;i.request({bindThis:e,api:"manager/get-video/"+t,customLoading:!1,utilSuccess:function(t){e.item=t},utilFail:function(t){}})}}};e.default=a},7192:function(t,e,n){var i=n("8f3c");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var a=n("967d").default;a("23d72763",i,!0,{sourceMap:!1,shadowMode:!1})},"76b5":function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){return i}));var i={topnav:n("bd9e").default},a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-uni-view",[n("topnav",{attrs:{title:"视频详情"},on:{tohome:function(e){arguments[0]=e=t.$handleEvent(e),t.tohome.apply(void 0,arguments)}}}),n("v-uni-view",{staticClass:"content"},[n("v-uni-video",{staticStyle:{width:"720rpx",height:"330rpx"},attrs:{src:t.host+t.item.video,poster:t.host+t.item.poster,"object-fit":"fill"}}),n("v-uni-view",{staticClass:"videotitle"},[t._v(t._s(t.item.title))])],1)],1)},o=[]},"8f3c":function(t,e,n){var i=n("c86c");e=i(!1),e.push([t.i,".icon-home[data-v-2198d501]{padding-left:%?55?%;font-size:%?42?%}.nav[data-v-2198d501]{height:%?160?%;background-image:linear-gradient(130deg,#52d5a6,#43c9cf);display:flex;align-items:center;padding:%?0?% %?30?%;padding-top:%?48?%;position:fixed;box-sizing:border-box;top:%?0?%;left:0;width:100%;overflow:hidden;z-index:9999;justify-content:space-between}.nav .navLeft[data-v-2198d501]{display:flex}.nav .navTitle[data-v-2198d501]{font-family:SourceHanSansCN-Medium;font-size:%?36?%;color:#fff;letter-spacing:%?0.37?%;line-height:%?50?%;margin-left:%?40?%;font-weight:600}.nav .navLeft .icon-fanhui[data-v-2198d501]{color:#fff;font-size:%?45?%}.navRight[data-v-2198d501]{display:flex;align-items:center}",""]),t.exports=e},"9b83":function(t,e,n){var i=n("26d8");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var a=n("967d").default;a("5e72b9e9",i,!0,{sourceMap:!1,shadowMode:!1})},bd9e:function(t,e,n){"use strict";n.r(e);var i=n("d6ee"),a=n("1304");for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(o);n("4f4f");var d=n("828b"),c=Object(d["a"])(a["default"],i["b"],i["c"],!1,null,"2198d501",null,!1,i["a"],void 0);e["default"]=c.exports},ca9b:function(t,e,n){"use strict";n.r(e);var i=n("6ab8"),a=n.n(i);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);e["default"]=a.a},cd27:function(t,e,n){"use strict";n.r(e);var i=n("76b5"),a=n("ca9b");for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(o);n("5214");var d=n("828b"),c=Object(d["a"])(a["default"],i["b"],i["c"],!1,null,"a0ee2c06",null,!1,i["a"],void 0);e["default"]=c.exports},d6ee:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){}));var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-uni-view",[n("v-uni-view",{staticClass:"nav"},[n("v-uni-view",{staticClass:"navLeft"},[n("v-uni-view",{staticClass:"back",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.toback.apply(void 0,arguments)}}},[n("v-uni-text",{staticClass:"iconfont icon-fanhui"})],1),n("v-uni-view",{staticClass:"navTitle"},[t._v(t._s(t.title))])],1),n("v-uni-view",{staticClass:"navRight"},[t._t("default"),"home"==t.hasHome?n("v-uni-text",{staticClass:"iconfont icon-home iconTop",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.tohome.apply(void 0,arguments)}}}):t._e()],2)],1)],1)},a=[]}}]);

@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["package-packagevideo-pages-videoinfo-videoinfo"],{"0922":function(t,e,n){"use strict";n("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i={name:"topnav",props:{title:{type:String,default:""},hasHome:{type:String,default:"home"}},data:function(){return{}},methods:{toback:function(){uni.navigateBack({delta:0})},tohome:function(){this.$emit("tohome")}}};e.default=i},"13e1":function(t,e,n){"use strict";var i=n("cd50"),a=n.n(i);a.a},"284a":function(t,e,n){"use strict";var i=n("7396"),a=n.n(i);a.a},"38a1":function(t,e,n){"use strict";n.r(e);var i=n("cb1d"),a=n("8f65");for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(o);n("13e1");var d=n("828b"),c=Object(d["a"])(a["default"],i["b"],i["c"],!1,null,"a0ee2c06",null,!1,i["a"],void 0);e["default"]=c.exports},"62bf":function(t,e,n){var i=n("c86c");e=i(!1),e.push([t.i,"uni-page-body[data-v-a0ee2c06]{padding-top:%?160?%}.content[data-v-a0ee2c06]{padding:%?20?%}.videotitle[data-v-a0ee2c06]{margin-top:%?20?%}",""]),t.exports=e},7396:function(t,e,n){var i=n("7a82");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var a=n("967d").default;a("245bb68a",i,!0,{sourceMap:!1,shadowMode:!1})},"7a82":function(t,e,n){var i=n("c86c");e=i(!1),e.push([t.i,".icon-home[data-v-2198d501]{padding-left:%?55?%;font-size:%?42?%}.nav[data-v-2198d501]{height:%?160?%;background-image:linear-gradient(130deg,#52d5a6,#43c9cf);display:flex;align-items:center;padding:%?0?% %?30?%;padding-top:%?48?%;position:fixed;box-sizing:border-box;top:%?0?%;left:0;width:100%;overflow:hidden;z-index:9999;justify-content:space-between}.nav .navLeft[data-v-2198d501]{display:flex}.nav .navTitle[data-v-2198d501]{font-family:SourceHanSansCN-Medium;font-size:%?36?%;color:#fff;letter-spacing:%?0.37?%;line-height:%?50?%;margin-left:%?40?%;font-weight:600}.nav .navLeft .icon-fanhui[data-v-2198d501]{color:#fff;font-size:%?45?%}.navRight[data-v-2198d501]{display:flex;align-items:center}",""]),t.exports=e},"8f65":function(t,e,n){"use strict";n.r(e);var i=n("e24e"),a=n.n(i);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);e["default"]=a.a},9203:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){}));var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-uni-view",[n("v-uni-view",{staticClass:"nav"},[n("v-uni-view",{staticClass:"navLeft"},[n("v-uni-view",{staticClass:"back",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.toback.apply(void 0,arguments)}}},[n("v-uni-text",{staticClass:"iconfont icon-fanhui"})],1),n("v-uni-view",{staticClass:"navTitle"},[t._v(t._s(t.title))])],1),n("v-uni-view",{staticClass:"navRight"},[t._t("default"),"home"==t.hasHome?n("v-uni-text",{staticClass:"iconfont icon-home iconTop",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.tohome.apply(void 0,arguments)}}}):t._e()],2)],1)],1)},a=[]},ab66:function(t,e,n){"use strict";n.r(e);var i=n("0922"),a=n.n(i);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);e["default"]=a.a},cb1d:function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){return i}));var i={topnav:n("d8f1").default},a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-uni-view",[n("topnav",{attrs:{title:"视频详情"},on:{tohome:function(e){arguments[0]=e=t.$handleEvent(e),t.tohome.apply(void 0,arguments)}}}),n("v-uni-view",{staticClass:"content"},[n("v-uni-video",{staticStyle:{width:"720rpx",height:"330rpx"},attrs:{src:t.host+t.item.video,poster:t.host+t.item.poster,"object-fit":"fill"}}),n("v-uni-view",{staticClass:"videotitle"},[t._v(t._s(t.item.title))])],1)],1)},o=[]},cd50:function(t,e,n){var i=n("62bf");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var a=n("967d").default;a("5b5ad206",i,!0,{sourceMap:!1,shadowMode:!1})},d8f1:function(t,e,n){"use strict";n.r(e);var i=n("9203"),a=n("ab66");for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(o);n("284a");var d=n("828b"),c=Object(d["a"])(a["default"],i["b"],i["c"],!1,null,"2198d501",null,!1,i["a"],void 0);e["default"]=c.exports},e24e:function(t,e,n){"use strict";n("6a54"),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=n("e0a6"),a={data:function(){return{item:{},host:""}},onLoad:function(t){this.loadInfo(t.id),this.host=i.HOST},methods:{tohome:function(){uni.navigateTo({url:"../../../../pages/index/index"})},loadInfo:function(t){var e=this;i.request({bindThis:e,api:"manager/get-video/"+t,customLoading:!1,utilSuccess:function(t){e.item=t},utilFail:function(t){}})}}};e.default=a}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save