Commit 87937939 by lingyu0918

提交静态页面

parent 988eca60
Showing with 4242 additions and 17 deletions
File mode changed
<template>
</template>
<script>
</script>
<style>
</style>
\ No newline at end of file
<template>
<view class="head-tabs flex items-center ft30 pl32 pr32">
<view class="tabs-item" :class="active == 1 ? 'active' : ''" @click="handleTbs(1)">
病情概要
<view class="btm-slide" v-if="active == 1"></view>
</view>
<view class="tabs-item" :class="active == 2 ? 'active' : ''" @click="handleTbs(2)">
聊天室
<view class="btm-slide" v-if="active == 2"></view>
</view>
<view class="tabs-item" :class="active == 3 ? 'active' : ''" @click="handleTbs(3)">
报告查询
<view class="btm-slide" v-if="active == 3"></view>
</view>
<view class="tabs-item" :class="active == 4 ? 'active' : ''" @click="handleTbs(4)">
全息视图
<view class="btm-slide" v-if="active == 4"></view>
</view>
</view>
</template>
<script>
export default {
props:{
active:{
type:Number,
default:()=>{
return 1
}
}
},
data() {
return {};
},
methods: {
handleTbs(val) {
// this.active = val;
this.$emit('handleTabs', val);
}
}
};
</script>
<style lang="scss" scoped>
.head-tabs {
width: 100%;
height: 90rpx;
background-color: #fff;
border-bottom: 2rpx solid #F5F6F7;
.tabs-item {
position: relative;
height: 90rpx;
display: flex;
flex-direction: column;
justify-content: center;
color: #666;
margin-right: 44rpx;
.btm-slide {
position: absolute;
bottom: 2rpx;
left: 50%;
transform: translateX(-50%);
width: 40rpx;
height: 6rpx;
background: linear-gradient(270deg, #77abff 0%, #035ceb 100%);
border-radius: 4rpx;
}
}
}
.active {
color: #000000 !important;
font-weight: 700;
}
</style>
<template>
<view class="">
<!-- 滑动 -->
<view class="slide-conts flex items-start" id="slide-cont">
<!-- 左侧内容 -->
<view class="slide-left-cont">
<scroll-view scroll-y="true" class="scroll-Y " :style="{ height: height + 'px' }">
<view
class="slide-left-cont-item ft24 lht34 flex column items-center content-center"
:class="slideIdx == index ? 'slide-left-active' : ''"
v-for="(item, index) in dateTimeList"
:key="index"
@click="clickMenu(index)"
>
<view class="">{{ item.title }}</view>
</view>
</scroll-view>
</view>
<!-- 右侧内容 -->
<view class="slide-right-cont">
<scroll-view scroll-y="true" class="scroll-Y " :style="{ height: height + 'px' }">
<!-- 患者关注列表 -->
<patient-name-item v-for="i in 10"></patient-name-item>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
import patientNameItem from '@/pages/components/patient-name-item.vue';
export default {
components: {
patientNameItem
},
props: {
top: {
type: Number,
default: () => {
return 0;
}
}
},
data() {
return {
height: 0,
dateTimeList: [
{
title: '默认分组'
},
{
title: '分组名称'
}
],
slideIdx: 0
};
},
created() {
this.$nextTick(() => {
if (!this.top) {
return false;
}
const query = uni.createSelectorQuery();
query
.select('#add-btn')
.boundingClientRect(data => {
uni.getSystemInfo({
success: res => {
this.height = res.windowHeight - (this.top + data.height);
}
});
})
.exec();
});
},
methods: {
clickMenu(val) {
this.slideIdx = val;
}
}
};
</script>
<style>
page {
background: #fff;
}
</style>
<style lang="scss" scoped>
.slide-conts {
width: 100%;
height: 100%;
.slide-left-cont {
width: 240rpx;
height: 100%;
.slide-left-cont-item {
position: relative;
width: 240rpx;
height: 132rpx;
background: #f5f6f7;
color: #656975;
}
}
.slide-right-cont {
padding: 0 30rpx;
width: 100%;
height: 100%;
}
}
.slide-left-active {
background: #ffffff !important;
color: #004ac2 !important;
}
</style>
<template>
<view class="patient-card flex items-start ">
<view class="patient-img"></view>
<view class="" style="flex: 1;">
<view class="pl20 flex items-center content-between">
<view class="">
<view class="patient-name flex items-center">
<text class="font500 color333 ft32 lht28">李小明</text>
<text class="info-tag color-tag ml18">开药</text>
</view>
<text class="info-tag" style="margin-top: 4rpx;">女|20岁</text>
</view>
<view class="keep">
</view>
</view>
<view class="pl20 inquiry-time ft24 pt24 lht24" style="color: #A8AAB0;">问诊时间:2022-04-24 下午17</view>
</view>
</view>
</template>
<script></script>
<style lang="scss" scoped>
.patient-card {
background-color: #fff;
padding: 32rpx 28rpx;
height: 192rpx;
border-bottom: 2rpx solid #F5F6F7;
.patient-img {
flex-shrink: 0;
width: 80rpx;
height: 80rpx;
border-radius: 50%;
background: #eee;
image {
width: 100%;
height: 100%;
}
}
.info-tag {
background: #eff4fb;
padding: 4rpx 8rpx;
border-radius: 2rpx;
color: #1c62d5;
font-size: 20rpx;
}
.keep{
width: 30rpx;
height: 30rpx;
background: #eee;
overflow: hidden;
image{
width: 100%;
height: 100%;
}
}
}
.color-tag{
background: linear-gradient(135deg, #05DDBD 0%, #32DFC2 100%) !important;
color: #fff !important;
border-radius: 4rpx !important;
}
</style>
<template>
<view class="flex items-center content-between" style="height: 96rpx;">
<view class="flex items-center">
<view class="paitent-img"></view>
<view class="paitent-name ft32 font700 color333 pl16">李小明</view>
</view>
<view class="paitent-info ft28" style="color: #656975;">女 | 20岁</view>
</view>
</template>
<script>
export default {
props: {
info: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {};
}
};
</script>
<style lang="scss" scoped>
.paitent-img {
background: #eee;
width: 60rpx;
height: 60rpx;
border-radius: 50%;
overflow: hidden;
}
.tags {
background: #eff4fb;
padding: 10rpx 14rpx;
font-size: 28rpx;
color: #1c62d5;
border-radius: 4rpx;
}
</style>
<template>
<view class="patient-list flex items-center content-between">
<view class="flex items-center ">
<view class="patient-img"></view>
<view class="patient-name pl12 ft28 lht28 color333">李小明</view>
<text class="patient-tag">女|20岁</text>
</view>
<view class="keep-icon"></view>
</view>
</template>
<script></script>
<style lang="scss" scoped>
.patient-list {
// padding: 0 28rpx;
border-bottom: 2rpx solid #F5F6F7;
height: 124rpx;
.patient-img {
width: 64rpx;
height: 64rpx;
border-radius: 50%;
overflow: hidden;
background-color: #eee;
}
.patient-name {
padding-right: 8rpx;
}
.patient-tag {
padding: 4rpx 8rpx;
background: #eff4fb;
color: #1c62d5;
font-size: 20rpx;
border-radius: 2rpx;
}
.keep-icon {
width: 32rpx;
height: 32rpx;
background-color: #eee;
}
}
</style>
<template>
<view class="drug-cont">
<view class="durg-card mb20">
<view class="flex items-center content-between">
<view class="flex items-center ">
<view class="paitent-img mr16"></view>
<view class="paitent-name pr16 ft32 font700 color333">李小明</view>
<view class="paitent-info ft24" style="color: #656975;">男 | 20岁</view>
</view>
<view class="date-time ft24" style="color: #CBCBCB;">2021-01-01 10:00:00</view>
</view>
<view class="paitent-type pt20 flex ft26 lht28">
<view class="" style="color: #656975;">
患者类型:
</view>
<view class="color333">
自费患者
</view>
</view>
<view class="paitent-describe pt14 mb30 flex ft26">
<view class="" style="color: #656975;">
病情描述:
</view>
<view class="color333">
</view>
</view>
<text class="durg-tags">
申请处方药品
</text>
<view class="pb36" style="border-bottom:2rpx solid #F5F6F7">
<view class="durg-name ft26 lht28 pt16" style="color: #656975;">
[甲]维胺酯胶囊 23mg*24粒×4盒
</view>
<view class="durg-name ft26 lht28 pt16" style="color: #656975;">
[甲]维胺酯胶囊 23mg*24粒×4盒
</view>
</view>
<view class="btm-btn flex content-end items-center">
<view class="btn-dtl ft24 colorfff flex content-center items-center">
查看详情
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
}
};
</script>
<style lang="scss" scoped>
.drug-cont{
padding: 20rpx 25rpx;
.durg-card {
padding: 40rpx 30rpx 0 30rpx;
background: #fff;
border-radius: 8rpx;
.paitent-img {
width: 40rpx;
height: 40rpx;
background: #eee;
border-radius: 50%;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.durg-tags{
background: #EFF4FB;
padding: 6rpx 8rpx;
border-radius: 8rpx;
font-size: 24rpx;
color: #1C62D5;
}
}
.btm-btn{
background: #ffffff;
height: 90rpx;
.btn-dtl{
width: 156rpx;
height: 52rpx;
background: linear-gradient(135deg, #0B57D2 0%, #77A5FF 100%);
box-shadow: 0px 4rpx 10rpx 0rpx rgba(20, 101, 232, 0.23);
border-radius: 26rpx;
}
}
}
</style>
<template>
<view class="">
</view>
</template>
<script>
</script>
<style>
</style>
\ No newline at end of file
<template>
<view class="">
<view class="head-tbs flex items-center">
<text class="tabs-item ft30 ft26 color666 mr20 " :class="active == 1 ? 'active' : ''" @click="handleTbs(1)">检查报告</text>
<text class="tabs-item ft30 ft26 color666 mr20 " :class="active == 2 ? 'active' : ''" @click="handleTbs(2)">体验报告</text>
<text class="tabs-item ft30 ft26 color666 mr20" :class="active == 3 ? 'active' : ''" @click="handleTbs(3)">体检报告</text>
</view>
</view>
</template>
<script>
export default {
props:{
active:{
type:Number,
default:()=>{
return 1
}
}
},
data() {
return {};
},
methods: {
handleTbs(val) {
this.active = val;
this.$emit('handleTags', val);
}
}
};
</script>
<style lang="scss" scoped>
.head-tbs {
padding: 0 30rpx;
background: #fff;
height: 88rpx;
border-top: 2rpx solid #f5f6f7;
.tabs-item {
padding: 6rpx 16rpx;
border-radius: 26rpx;
}
.active {
background-color: #eff4fb;
color: #004ac2;
}
}
</style>
let QRCode = {};
(function () {
/**
* 获取单个字符的utf8编码
* unicode BMP平面约65535个字符
* @param {num} code
* return {array}
*/
function unicodeFormat8(code) {
// 1 byte
var c0, c1, c2;
if (code < 128) {
return [code];
// 2 bytes
} else if (code < 2048) {
c0 = 192 + (code >> 6);
c1 = 128 + (code & 63);
return [c0, c1];
// 3 bytes
} else {
c0 = 224 + (code >> 12);
c1 = 128 + (code >> 6 & 63);
c2 = 128 + (code & 63);
return [c0, c1, c2];
}
}
/**
* 获取字符串的utf8编码字节串
* @param {string} string
* @return {array}
*/
function getUTF8Bytes(string) {
var utf8codes = [];
for (var i = 0; i < string.length; i++) {
var code = string.charCodeAt(i);
var utf8 = unicodeFormat8(code);
for (var j = 0; j < utf8.length; j++) {
utf8codes.push(utf8[j]);
}
}
return utf8codes;
}
/**
* 二维码算法实现
* @param {string} data 要编码的信息字符串
* @param {num} errorCorrectLevel 纠错等级
*/
function QRCodeAlg(data, errorCorrectLevel) {
this.typeNumber = -1; //版本
this.errorCorrectLevel = errorCorrectLevel;
this.modules = null; //二维矩阵,存放最终结果
this.moduleCount = 0; //矩阵大小
this.dataCache = null; //数据缓存
this.rsBlocks = null; //版本数据信息
this.totalDataCount = -1; //可使用的数据量
this.data = data;
this.utf8bytes = getUTF8Bytes(data);
this.make();
}
QRCodeAlg.prototype = {
constructor: QRCodeAlg,
/**
* 获取二维码矩阵大小
* @return {num} 矩阵大小
*/
getModuleCount: function () {
return this.moduleCount;
},
/**
* 编码
*/
make: function () {
this.getRightType();
this.dataCache = this.createData();
this.createQrcode();
},
/**
* 设置二位矩阵功能图形
* @param {bool} test 表示是否在寻找最好掩膜阶段
* @param {num} maskPattern 掩膜的版本
*/
makeImpl: function (maskPattern) {
this.moduleCount = this.typeNumber * 4 + 17;
this.modules = new Array(this.moduleCount);
for (var row = 0; row < this.moduleCount; row++) {
this.modules[row] = new Array(this.moduleCount);
}
this.setupPositionProbePattern(0, 0);
this.setupPositionProbePattern(this.moduleCount - 7, 0);
this.setupPositionProbePattern(0, this.moduleCount - 7);
this.setupPositionAdjustPattern();
this.setupTimingPattern();
this.setupTypeInfo(true, maskPattern);
if (this.typeNumber >= 7) {
this.setupTypeNumber(true);
}
this.mapData(this.dataCache, maskPattern);
},
/**
* 设置二维码的位置探测图形
* @param {num} row 探测图形的中心横坐标
* @param {num} col 探测图形的中心纵坐标
*/
setupPositionProbePattern: function (row, col) {
for (var r = -1; r <= 7; r++) {
if (row + r <= -1 || this.moduleCount <= row + r) continue;
for (var c = -1; c <= 7; c++) {
if (col + c <= -1 || this.moduleCount <= col + c) continue;
if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) {
this.modules[row + r][col + c] = true;
} else {
this.modules[row + r][col + c] = false;
}
}
}
},
/**
* 创建二维码
* @return {[type]} [description]
*/
createQrcode: function () {
var minLostPoint = 0;
var pattern = 0;
var bestModules = null;
for (var i = 0; i < 8; i++) {
this.makeImpl(i);
var lostPoint = QRUtil.getLostPoint(this);
if (i == 0 || minLostPoint > lostPoint) {
minLostPoint = lostPoint;
pattern = i;
bestModules = this.modules;
}
}
this.modules = bestModules;
this.setupTypeInfo(false, pattern);
if (this.typeNumber >= 7) {
this.setupTypeNumber(false);
}
},
/**
* 设置定位图形
* @return {[type]} [description]
*/
setupTimingPattern: function () {
for (var r = 8; r < this.moduleCount - 8; r++) {
if (this.modules[r][6] != null) {
continue;
}
this.modules[r][6] = (r % 2 == 0);
if (this.modules[6][r] != null) {
continue;
}
this.modules[6][r] = (r % 2 == 0);
}
},
/**
* 设置矫正图形
* @return {[type]} [description]
*/
setupPositionAdjustPattern: function () {
var pos = QRUtil.getPatternPosition(this.typeNumber);
for (var i = 0; i < pos.length; i++) {
for (var j = 0; j < pos.length; j++) {
var row = pos[i];
var col = pos[j];
if (this.modules[row][col] != null) {
continue;
}
for (var r = -2; r <= 2; r++) {
for (var c = -2; c <= 2; c++) {
if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {
this.modules[row + r][col + c] = true;
} else {
this.modules[row + r][col + c] = false;
}
}
}
}
}
},
/**
* 设置版本信息(7以上版本才有)
* @param {bool} test 是否处于判断最佳掩膜阶段
* @return {[type]} [description]
*/
setupTypeNumber: function (test) {
var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
for (var i = 0; i < 18; i++) {
var mod = (!test && ((bits >> i) & 1) == 1);
this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
}
},
/**
* 设置格式信息(纠错等级和掩膜版本)
* @param {bool} test
* @param {num} maskPattern 掩膜版本
* @return {}
*/
setupTypeInfo: function (test, maskPattern) {
var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern;
var bits = QRUtil.getBCHTypeInfo(data);
// vertical
for (var i = 0; i < 15; i++) {
var mod = (!test && ((bits >> i) & 1) == 1);
if (i < 6) {
this.modules[i][8] = mod;
} else if (i < 8) {
this.modules[i + 1][8] = mod;
} else {
this.modules[this.moduleCount - 15 + i][8] = mod;
}
// horizontal
var mod = (!test && ((bits >> i) & 1) == 1);
if (i < 8) {
this.modules[8][this.moduleCount - i - 1] = mod;
} else if (i < 9) {
this.modules[8][15 - i - 1 + 1] = mod;
} else {
this.modules[8][15 - i - 1] = mod;
}
}
// fixed module
this.modules[this.moduleCount - 8][8] = (!test);
},
/**
* 数据编码
* @return {[type]} [description]
*/
createData: function () {
var buffer = new QRBitBuffer();
var lengthBits = this.typeNumber > 9 ? 16 : 8;
buffer.put(4, 4); //添加模式
buffer.put(this.utf8bytes.length, lengthBits);
for (var i = 0, l = this.utf8bytes.length; i < l; i++) {
buffer.put(this.utf8bytes[i], 8);
}
if (buffer.length + 4 <= this.totalDataCount * 8) {
buffer.put(0, 4);
}
// padding
while (buffer.length % 8 != 0) {
buffer.putBit(false);
}
// padding
while (true) {
if (buffer.length >= this.totalDataCount * 8) {
break;
}
buffer.put(QRCodeAlg.PAD0, 8);
if (buffer.length >= this.totalDataCount * 8) {
break;
}
buffer.put(QRCodeAlg.PAD1, 8);
}
return this.createBytes(buffer);
},
/**
* 纠错码编码
* @param {buffer} buffer 数据编码
* @return {[type]}
*/
createBytes: function (buffer) {
var offset = 0;
var maxDcCount = 0;
var maxEcCount = 0;
var length = this.rsBlock.length / 3;
var rsBlocks = new Array();
for (var i = 0; i < length; i++) {
var count = this.rsBlock[i * 3 + 0];
var totalCount = this.rsBlock[i * 3 + 1];
var dataCount = this.rsBlock[i * 3 + 2];
for (var j = 0; j < count; j++) {
rsBlocks.push([dataCount, totalCount]);
}
}
var dcdata = new Array(rsBlocks.length);
var ecdata = new Array(rsBlocks.length);
for (var r = 0; r < rsBlocks.length; r++) {
var dcCount = rsBlocks[r][0];
var ecCount = rsBlocks[r][1] - dcCount;
maxDcCount = Math.max(maxDcCount, dcCount);
maxEcCount = Math.max(maxEcCount, ecCount);
dcdata[r] = new Array(dcCount);
for (var i = 0; i < dcdata[r].length; i++) {
dcdata[r][i] = 0xff & buffer.buffer[i + offset];
}
offset += dcCount;
var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
var modPoly = rawPoly.mod(rsPoly);
ecdata[r] = new Array(rsPoly.getLength() - 1);
for (var i = 0; i < ecdata[r].length; i++) {
var modIndex = i + modPoly.getLength() - ecdata[r].length;
ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0;
}
}
var data = new Array(this.totalDataCount);
var index = 0;
for (var i = 0; i < maxDcCount; i++) {
for (var r = 0; r < rsBlocks.length; r++) {
if (i < dcdata[r].length) {
data[index++] = dcdata[r][i];
}
}
}
for (var i = 0; i < maxEcCount; i++) {
for (var r = 0; r < rsBlocks.length; r++) {
if (i < ecdata[r].length) {
data[index++] = ecdata[r][i];
}
}
}
return data;
},
/**
* 布置模块,构建最终信息
* @param {} data
* @param {} maskPattern
* @return {}
*/
mapData: function (data, maskPattern) {
var inc = -1;
var row = this.moduleCount - 1;
var bitIndex = 7;
var byteIndex = 0;
for (var col = this.moduleCount - 1; col > 0; col -= 2) {
if (col == 6) col--;
while (true) {
for (var c = 0; c < 2; c++) {
if (this.modules[row][col - c] == null) {
var dark = false;
if (byteIndex < data.length) {
dark = (((data[byteIndex] >>> bitIndex) & 1) == 1);
}
var mask = QRUtil.getMask(maskPattern, row, col - c);
if (mask) {
dark = !dark;
}
this.modules[row][col - c] = dark;
bitIndex--;
if (bitIndex == -1) {
byteIndex++;
bitIndex = 7;
}
}
}
row += inc;
if (row < 0 || this.moduleCount <= row) {
row -= inc;
inc = -inc;
break;
}
}
}
}
};
/**
* 填充字段
*/
QRCodeAlg.PAD0 = 0xEC;
QRCodeAlg.PAD1 = 0x11;
//---------------------------------------------------------------------
// 纠错等级对应的编码
//---------------------------------------------------------------------
var QRErrorCorrectLevel = [1, 0, 3, 2];
//---------------------------------------------------------------------
// 掩膜版本
//---------------------------------------------------------------------
var QRMaskPattern = {
PATTERN000: 0,
PATTERN001: 1,
PATTERN010: 2,
PATTERN011: 3,
PATTERN100: 4,
PATTERN101: 5,
PATTERN110: 6,
PATTERN111: 7
};
//---------------------------------------------------------------------
// 工具类
//---------------------------------------------------------------------
var QRUtil = {
/*
每个版本矫正图形的位置
*/
PATTERN_POSITION_TABLE: [
[],
[6, 18],
[6, 22],
[6, 26],
[6, 30],
[6, 34],
[6, 22, 38],
[6, 24, 42],
[6, 26, 46],
[6, 28, 50],
[6, 30, 54],
[6, 32, 58],
[6, 34, 62],
[6, 26, 46, 66],
[6, 26, 48, 70],
[6, 26, 50, 74],
[6, 30, 54, 78],
[6, 30, 56, 82],
[6, 30, 58, 86],
[6, 34, 62, 90],
[6, 28, 50, 72, 94],
[6, 26, 50, 74, 98],
[6, 30, 54, 78, 102],
[6, 28, 54, 80, 106],
[6, 32, 58, 84, 110],
[6, 30, 58, 86, 114],
[6, 34, 62, 90, 118],
[6, 26, 50, 74, 98, 122],
[6, 30, 54, 78, 102, 126],
[6, 26, 52, 78, 104, 130],
[6, 30, 56, 82, 108, 134],
[6, 34, 60, 86, 112, 138],
[6, 30, 58, 86, 114, 142],
[6, 34, 62, 90, 118, 146],
[6, 30, 54, 78, 102, 126, 150],
[6, 24, 50, 76, 102, 128, 154],
[6, 28, 54, 80, 106, 132, 158],
[6, 32, 58, 84, 110, 136, 162],
[6, 26, 54, 82, 110, 138, 166],
[6, 30, 58, 86, 114, 142, 170]
],
G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),
G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),
G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),
/*
BCH编码格式信息
*/
getBCHTypeInfo: function (data) {
var d = data << 10;
while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {
d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15)));
}
return ((data << 10) | d) ^ QRUtil.G15_MASK;
},
/*
BCH编码版本信息
*/
getBCHTypeNumber: function (data) {
var d = data << 12;
while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {
d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18)));
}
return (data << 12) | d;
},
/*
获取BCH位信息
*/
getBCHDigit: function (data) {
var digit = 0;
while (data != 0) {
digit++;
data >>>= 1;
}
return digit;
},
/*
获取版本对应的矫正图形位置
*/
getPatternPosition: function (typeNumber) {
return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];
},
/*
掩膜算法
*/
getMask: function (maskPattern, i, j) {
switch (maskPattern) {
case QRMaskPattern.PATTERN000:
return (i + j) % 2 == 0;
case QRMaskPattern.PATTERN001:
return i % 2 == 0;
case QRMaskPattern.PATTERN010:
return j % 3 == 0;
case QRMaskPattern.PATTERN011:
return (i + j) % 3 == 0;
case QRMaskPattern.PATTERN100:
return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0;
case QRMaskPattern.PATTERN101:
return (i * j) % 2 + (i * j) % 3 == 0;
case QRMaskPattern.PATTERN110:
return ((i * j) % 2 + (i * j) % 3) % 2 == 0;
case QRMaskPattern.PATTERN111:
return ((i * j) % 3 + (i + j) % 2) % 2 == 0;
default:
throw new Error("bad maskPattern:" + maskPattern);
}
},
/*
获取RS的纠错多项式
*/
getErrorCorrectPolynomial: function (errorCorrectLength) {
var a = new QRPolynomial([1], 0);
for (var i = 0; i < errorCorrectLength; i++) {
a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));
}
return a;
},
/*
获取评价
*/
getLostPoint: function (qrCode) {
var moduleCount = qrCode.getModuleCount(),
lostPoint = 0,
darkCount = 0;
for (var row = 0; row < moduleCount; row++) {
var sameCount = 0;
var head = qrCode.modules[row][0];
for (var col = 0; col < moduleCount; col++) {
var current = qrCode.modules[row][col];
//level 3 评价
if (col < moduleCount - 6) {
if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) {
if (col < moduleCount - 10) {
if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) {
lostPoint += 40;
}
} else if (col > 3) {
if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) {
lostPoint += 40;
}
}
}
}
//level 2 评价
if ((row < moduleCount - 1) && (col < moduleCount - 1)) {
var count = 0;
if (current) count++;
if (qrCode.modules[row + 1][col]) count++;
if (qrCode.modules[row][col + 1]) count++;
if (qrCode.modules[row + 1][col + 1]) count++;
if (count == 0 || count == 4) {
lostPoint += 3;
}
}
//level 1 评价
if (head ^ current) {
sameCount++;
} else {
head = current;
if (sameCount >= 5) {
lostPoint += (3 + sameCount - 5);
}
sameCount = 1;
}
//level 4 评价
if (current) {
darkCount++;
}
}
}
for (var col = 0; col < moduleCount; col++) {
var sameCount = 0;
var head = qrCode.modules[0][col];
for (var row = 0; row < moduleCount; row++) {
var current = qrCode.modules[row][col];
//level 3 评价
if (row < moduleCount - 6) {
if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) {
if (row < moduleCount - 10) {
if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) {
lostPoint += 40;
}
} else if (row > 3) {
if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) {
lostPoint += 40;
}
}
}
}
//level 1 评价
if (head ^ current) {
sameCount++;
} else {
head = current;
if (sameCount >= 5) {
lostPoint += (3 + sameCount - 5);
}
sameCount = 1;
}
}
}
// LEVEL4
var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
lostPoint += ratio * 10;
return lostPoint;
}
};
//---------------------------------------------------------------------
// QRMath使用的数学工具
//---------------------------------------------------------------------
var QRMath = {
/*
将n转化为a^m
*/
glog: function (n) {
if (n < 1) {
throw new Error("glog(" + n + ")");
}
return QRMath.LOG_TABLE[n];
},
/*
将a^m转化为n
*/
gexp: function (n) {
while (n < 0) {
n += 255;
}
while (n >= 256) {
n -= 255;
}
return QRMath.EXP_TABLE[n];
},
EXP_TABLE: new Array(256),
LOG_TABLE: new Array(256)
};
for (var i = 0; i < 8; i++) {
QRMath.EXP_TABLE[i] = 1 << i;
}
for (var i = 8; i < 256; i++) {
QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8];
}
for (var i = 0; i < 255; i++) {
QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;
}
//---------------------------------------------------------------------
// QRPolynomial 多项式
//---------------------------------------------------------------------
/**
* 多项式类
* @param {Array} num 系数
* @param {num} shift a^shift
*/
function QRPolynomial(num, shift) {
if (num.length == undefined) {
throw new Error(num.length + "/" + shift);
}
var offset = 0;
while (offset < num.length && num[offset] == 0) {
offset++;
}
this.num = new Array(num.length - offset + shift);
for (var i = 0; i < num.length - offset; i++) {
this.num[i] = num[i + offset];
}
}
QRPolynomial.prototype = {
get: function (index) {
return this.num[index];
},
getLength: function () {
return this.num.length;
},
/**
* 多项式乘法
* @param {QRPolynomial} e 被乘多项式
* @return {[type]} [description]
*/
multiply: function (e) {
var num = new Array(this.getLength() + e.getLength() - 1);
for (var i = 0; i < this.getLength(); i++) {
for (var j = 0; j < e.getLength(); j++) {
num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));
}
}
return new QRPolynomial(num, 0);
},
/**
* 多项式模运算
* @param {QRPolynomial} e 模多项式
* @return {}
*/
mod: function (e) {
var tl = this.getLength(),
el = e.getLength();
if (tl - el < 0) {
return this;
}
var num = new Array(tl);
for (var i = 0; i < tl; i++) {
num[i] = this.get(i);
}
while (num.length >= el) {
var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0));
for (var i = 0; i < e.getLength(); i++) {
num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);
}
while (num[0] == 0) {
num.shift();
}
}
return new QRPolynomial(num, 0);
}
};
//---------------------------------------------------------------------
// RS_BLOCK_TABLE
//---------------------------------------------------------------------
/*
二维码各个版本信息[块数, 每块中的数据块数, 每块中的信息块数]
*/
var RS_BLOCK_TABLE = [
// L
// M
// Q
// H
// 1
[1, 26, 19],
[1, 26, 16],
[1, 26, 13],
[1, 26, 9],
// 2
[1, 44, 34],
[1, 44, 28],
[1, 44, 22],
[1, 44, 16],
// 3
[1, 70, 55],
[1, 70, 44],
[2, 35, 17],
[2, 35, 13],
// 4
[1, 100, 80],
[2, 50, 32],
[2, 50, 24],
[4, 25, 9],
// 5
[1, 134, 108],
[2, 67, 43],
[2, 33, 15, 2, 34, 16],
[2, 33, 11, 2, 34, 12],
// 6
[2, 86, 68],
[4, 43, 27],
[4, 43, 19],
[4, 43, 15],
// 7
[2, 98, 78],
[4, 49, 31],
[2, 32, 14, 4, 33, 15],
[4, 39, 13, 1, 40, 14],
// 8
[2, 121, 97],
[2, 60, 38, 2, 61, 39],
[4, 40, 18, 2, 41, 19],
[4, 40, 14, 2, 41, 15],
// 9
[2, 146, 116],
[3, 58, 36, 2, 59, 37],
[4, 36, 16, 4, 37, 17],
[4, 36, 12, 4, 37, 13],
// 10
[2, 86, 68, 2, 87, 69],
[4, 69, 43, 1, 70, 44],
[6, 43, 19, 2, 44, 20],
[6, 43, 15, 2, 44, 16],
// 11
[4, 101, 81],
[1, 80, 50, 4, 81, 51],
[4, 50, 22, 4, 51, 23],
[3, 36, 12, 8, 37, 13],
// 12
[2, 116, 92, 2, 117, 93],
[6, 58, 36, 2, 59, 37],
[4, 46, 20, 6, 47, 21],
[7, 42, 14, 4, 43, 15],
// 13
[4, 133, 107],
[8, 59, 37, 1, 60, 38],
[8, 44, 20, 4, 45, 21],
[12, 33, 11, 4, 34, 12],
// 14
[3, 145, 115, 1, 146, 116],
[4, 64, 40, 5, 65, 41],
[11, 36, 16, 5, 37, 17],
[11, 36, 12, 5, 37, 13],
// 15
[5, 109, 87, 1, 110, 88],
[5, 65, 41, 5, 66, 42],
[5, 54, 24, 7, 55, 25],
[11, 36, 12],
// 16
[5, 122, 98, 1, 123, 99],
[7, 73, 45, 3, 74, 46],
[15, 43, 19, 2, 44, 20],
[3, 45, 15, 13, 46, 16],
// 17
[1, 135, 107, 5, 136, 108],
[10, 74, 46, 1, 75, 47],
[1, 50, 22, 15, 51, 23],
[2, 42, 14, 17, 43, 15],
// 18
[5, 150, 120, 1, 151, 121],
[9, 69, 43, 4, 70, 44],
[17, 50, 22, 1, 51, 23],
[2, 42, 14, 19, 43, 15],
// 19
[3, 141, 113, 4, 142, 114],
[3, 70, 44, 11, 71, 45],
[17, 47, 21, 4, 48, 22],
[9, 39, 13, 16, 40, 14],
// 20
[3, 135, 107, 5, 136, 108],
[3, 67, 41, 13, 68, 42],
[15, 54, 24, 5, 55, 25],
[15, 43, 15, 10, 44, 16],
// 21
[4, 144, 116, 4, 145, 117],
[17, 68, 42],
[17, 50, 22, 6, 51, 23],
[19, 46, 16, 6, 47, 17],
// 22
[2, 139, 111, 7, 140, 112],
[17, 74, 46],
[7, 54, 24, 16, 55, 25],
[34, 37, 13],
// 23
[4, 151, 121, 5, 152, 122],
[4, 75, 47, 14, 76, 48],
[11, 54, 24, 14, 55, 25],
[16, 45, 15, 14, 46, 16],
// 24
[6, 147, 117, 4, 148, 118],
[6, 73, 45, 14, 74, 46],
[11, 54, 24, 16, 55, 25],
[30, 46, 16, 2, 47, 17],
// 25
[8, 132, 106, 4, 133, 107],
[8, 75, 47, 13, 76, 48],
[7, 54, 24, 22, 55, 25],
[22, 45, 15, 13, 46, 16],
// 26
[10, 142, 114, 2, 143, 115],
[19, 74, 46, 4, 75, 47],
[28, 50, 22, 6, 51, 23],
[33, 46, 16, 4, 47, 17],
// 27
[8, 152, 122, 4, 153, 123],
[22, 73, 45, 3, 74, 46],
[8, 53, 23, 26, 54, 24],
[12, 45, 15, 28, 46, 16],
// 28
[3, 147, 117, 10, 148, 118],
[3, 73, 45, 23, 74, 46],
[4, 54, 24, 31, 55, 25],
[11, 45, 15, 31, 46, 16],
// 29
[7, 146, 116, 7, 147, 117],
[21, 73, 45, 7, 74, 46],
[1, 53, 23, 37, 54, 24],
[19, 45, 15, 26, 46, 16],
// 30
[5, 145, 115, 10, 146, 116],
[19, 75, 47, 10, 76, 48],
[15, 54, 24, 25, 55, 25],
[23, 45, 15, 25, 46, 16],
// 31
[13, 145, 115, 3, 146, 116],
[2, 74, 46, 29, 75, 47],
[42, 54, 24, 1, 55, 25],
[23, 45, 15, 28, 46, 16],
// 32
[17, 145, 115],
[10, 74, 46, 23, 75, 47],
[10, 54, 24, 35, 55, 25],
[19, 45, 15, 35, 46, 16],
// 33
[17, 145, 115, 1, 146, 116],
[14, 74, 46, 21, 75, 47],
[29, 54, 24, 19, 55, 25],
[11, 45, 15, 46, 46, 16],
// 34
[13, 145, 115, 6, 146, 116],
[14, 74, 46, 23, 75, 47],
[44, 54, 24, 7, 55, 25],
[59, 46, 16, 1, 47, 17],
// 35
[12, 151, 121, 7, 152, 122],
[12, 75, 47, 26, 76, 48],
[39, 54, 24, 14, 55, 25],
[22, 45, 15, 41, 46, 16],
// 36
[6, 151, 121, 14, 152, 122],
[6, 75, 47, 34, 76, 48],
[46, 54, 24, 10, 55, 25],
[2, 45, 15, 64, 46, 16],
// 37
[17, 152, 122, 4, 153, 123],
[29, 74, 46, 14, 75, 47],
[49, 54, 24, 10, 55, 25],
[24, 45, 15, 46, 46, 16],
// 38
[4, 152, 122, 18, 153, 123],
[13, 74, 46, 32, 75, 47],
[48, 54, 24, 14, 55, 25],
[42, 45, 15, 32, 46, 16],
// 39
[20, 147, 117, 4, 148, 118],
[40, 75, 47, 7, 76, 48],
[43, 54, 24, 22, 55, 25],
[10, 45, 15, 67, 46, 16],
// 40
[19, 148, 118, 6, 149, 119],
[18, 75, 47, 31, 76, 48],
[34, 54, 24, 34, 55, 25],
[20, 45, 15, 61, 46, 16]
];
/**
* 根据数据获取对应版本
* @return {[type]} [description]
*/
QRCodeAlg.prototype.getRightType = function () {
for (var typeNumber = 1; typeNumber < 41; typeNumber++) {
var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel];
if (rsBlock == undefined) {
throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + this.errorCorrectLevel);
}
var length = rsBlock.length / 3;
var totalDataCount = 0;
for (var i = 0; i < length; i++) {
var count = rsBlock[i * 3 + 0];
var dataCount = rsBlock[i * 3 + 2];
totalDataCount += dataCount * count;
}
var lengthBytes = typeNumber > 9 ? 2 : 1;
if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) {
this.typeNumber = typeNumber;
this.rsBlock = rsBlock;
this.totalDataCount = totalDataCount;
break;
}
}
};
//---------------------------------------------------------------------
// QRBitBuffer
//---------------------------------------------------------------------
function QRBitBuffer() {
this.buffer = new Array();
this.length = 0;
}
QRBitBuffer.prototype = {
get: function (index) {
var bufIndex = Math.floor(index / 8);
return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1);
},
put: function (num, length) {
for (var i = 0; i < length; i++) {
this.putBit(((num >>> (length - i - 1)) & 1));
}
},
putBit: function (bit) {
var bufIndex = Math.floor(this.length / 8);
if (this.buffer.length <= bufIndex) {
this.buffer.push(0);
}
if (bit) {
this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));
}
this.length++;
}
};
// xzedit
let qrcodeAlgObjCache = [];
/**
* 二维码构造函数,主要用于绘制
* @param {参数列表} opt 传递参数
* @return {}
*/
QRCode = function (opt) {
//设置默认参数
this.options = {
text: '',
size: 256,
correctLevel: 3,
background: '#ffffff',
foreground: '#000000',
pdground: '#000000',
image: '',
imageSize: 30,
canvasId: opt.canvasId,
context: opt.context,
usingComponents: opt.usingComponents,
showLoading: opt.showLoading,
loadingText: opt.loadingText,
};
if (typeof opt === 'string') { // 只编码ASCII字符串
opt = {
text: opt
};
}
if (opt) {
for (var i in opt) {
this.options[i] = opt[i];
}
}
//使用QRCodeAlg创建二维码结构
var qrCodeAlg = null;
for (var i = 0, l = qrcodeAlgObjCache.length; i < l; i++) {
if (qrcodeAlgObjCache[i].text == this.options.text && qrcodeAlgObjCache[i].text.correctLevel == this.options.correctLevel) {
qrCodeAlg = qrcodeAlgObjCache[i].obj;
break;
}
}
if (i == l) {
qrCodeAlg = new QRCodeAlg(this.options.text, this.options.correctLevel);
qrcodeAlgObjCache.push({
text: this.options.text,
correctLevel: this.options.correctLevel,
obj: qrCodeAlg
});
}
/**
* 计算矩阵点的前景色
* @param {Obj} config
* @param {Number} config.row 点x坐标
* @param {Number} config.col 点y坐标
* @param {Number} config.count 矩阵大小
* @param {Number} config.options 组件的options
* @return {String}
*/
let getForeGround = function (config) {
var options = config.options;
if (options.pdground && (
(config.row > 1 && config.row < 5 && config.col > 1 && config.col < 5) ||
(config.row > (config.count - 6) && config.row < (config.count - 2) && config.col > 1 && config.col < 5) ||
(config.row > 1 && config.row < 5 && config.col > (config.count - 6) && config.col < (config.count - 2))
)) {
return options.pdground;
}
return options.foreground;
}
// 创建canvas
let createCanvas = function (options) {
if(options.showLoading){
uni.showLoading({
title: options.loadingText,
mask: true
});
}
var ctx = uni.createCanvasContext(options.canvasId, options.context);
var count = qrCodeAlg.getModuleCount();
var ratioSize = options.size;
var ratioImgSize = options.imageSize;
//计算每个点的长宽
var tileW = (ratioSize / count).toPrecision(4);
var tileH = (ratioSize / count).toPrecision(4);
//绘制
for (var row = 0; row < count; row++) {
for (var col = 0; col < count; col++) {
var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW));
var h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW));
var foreground = getForeGround({
row: row,
col: col,
count: count,
options: options
});
ctx.setFillStyle(qrCodeAlg.modules[row][col] ? foreground : options.background);
ctx.fillRect(Math.round(col * tileW), Math.round(row * tileH), w, h);
}
}
if (options.image) {
var x = Number(((ratioSize - ratioImgSize) / 2).toFixed(2));
var y = Number(((ratioSize - ratioImgSize) / 2).toFixed(2));
drawRoundedRect(ctx, x, y, ratioImgSize, ratioImgSize, 2, 6, true, true)
ctx.drawImage(options.image, x, y, ratioImgSize, ratioImgSize);
// 画圆角矩形
function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) {
ctxi.setLineWidth(lineWidth);
ctxi.setFillStyle(options.background);
ctxi.setStrokeStyle(options.background);
ctxi.beginPath(); // draw top and top right corner
ctxi.moveTo(x + r, y);
ctxi.arcTo(x + width, y, x + width, y + r, r); // draw right side and bottom right corner
ctxi.arcTo(x + width, y + height, x + width - r, y + height, r); // draw bottom and bottom left corner
ctxi.arcTo(x, y + height, x, y + height - r, r); // draw left and top left corner
ctxi.arcTo(x, y, x + r, y, r);
ctxi.closePath();
if (fill) {
ctxi.fill();
}
if (stroke) {
ctxi.stroke();
}
}
}
setTimeout(() => {
ctx.draw(true, () => {
// 保存到临时区域
setTimeout(() => {
uni.canvasToTempFilePath({
width: options.width,
height: options.height,
destWidth: options.width,
destHeight: options.height,
canvasId: options.canvasId,
quality: Number(1),
success: function (res) {
if (options.cbResult) {
// 由于官方还没有统一此接口的输出字段,所以先判定下 支付宝为 res.apFilePath
if (!empty(res.tempFilePath)) {
options.cbResult(res.tempFilePath)
} else if (!empty(res.apFilePath)) {
options.cbResult(res.apFilePath)
} else {
options.cbResult(res.tempFilePath)
}
}
},
fail: function (res) {
if (options.cbResult) {
options.cbResult(res)
}
},
complete: function () {
uni.hideLoading();
},
}, options.context);
}, options.text.length + 100);
});
}, options.usingComponents ? 0 : 150);
}
createCanvas(this.options);
// 空判定
let empty = function (v) {
let tp = typeof v,
rt = false;
if (tp == "number" && String(v) == "") {
rt = true
} else if (tp == "undefined") {
rt = true
} else if (tp == "object") {
if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true
} else if (tp == "string") {
if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true
} else if (tp == "function") {
rt = false
}
return rt
}
};
QRCode.prototype.clear = function (fn) {
var ctx = uni.createCanvasContext(this.options.canvasId, this.options.context)
ctx.clearRect(0, 0, this.options.size, this.options.size)
ctx.draw(false, () => {
if (fn) {
fn()
}
})
};
})()
export default QRCode
\ No newline at end of file
<template xlang="wxml" minapp="mpvue">
<view class="tki-qrcode">
<canvas class="tki-qrcode-canvas" :canvas-id="cid" :style="{width:cpSize+'px',height:cpSize+'px'}" />
<image v-show="show" :src="result" :style="{width:cpSize+'px',height:cpSize+'px'}" />
</view>
</template>
<script>
import QRCode from "./qrcode.js"
let qrcode
export default {
name: "tki-qrcode",
props: {
cid: {
type: String,
default: 'tki-qrcode-canvas'
},
size: {
type: Number,
default: 200
},
unit: {
type: String,
default: 'upx'
},
show: {
type: Boolean,
default: true
},
val: {
type: String,
default: ''
},
background: {
type: String,
default: '#ffffff'
},
foreground: {
type: String,
default: '#000000'
},
pdground: {
type: String,
default: '#000000'
},
icon: {
type: String,
default: ''
},
iconSize: {
type: Number,
default: 40
},
lv: {
type: Number,
default: 3
},
onval: {
type: Boolean,
default: false
},
loadMake: {
type: Boolean,
default: false
},
usingComponents: {
type: Boolean,
default: true
},
showLoading: {
type: Boolean,
default: true
},
loadingText: {
type: String,
default: '二维码生成中'
},
},
data() {
return {
result: '',
}
},
methods: {
_makeCode() {
let that = this
if (!this._empty(this.val)) {
qrcode = new QRCode({
context: that, // 上下文环境
canvasId:that.cid, // canvas-id
usingComponents: that.usingComponents, // 是否是自定义组件
showLoading: that.showLoading, // 是否显示loading
loadingText: that.loadingText, // loading文字
text: that.val, // 生成内容
size: that.cpSize, // 二维码大小
background: that.background, // 背景色
foreground: that.foreground, // 前景色
pdground: that.pdground, // 定位角点颜色
correctLevel: that.lv, // 容错级别
image: that.icon, // 二维码图标
imageSize: that.iconSize,// 二维码图标大小
cbResult: function (res) { // 生成二维码的回调
that._result(res)
},
});
} else {
uni.showToast({
title: '二维码内容不能为空',
icon: 'none',
duration: 2000
});
}
},
_clearCode() {
this._result('')
qrcode.clear()
},
_saveCode() {
let that = this;
if (this.result != "") {
uni.saveImageToPhotosAlbum({
filePath: that.result,
success: function () {
uni.showToast({
title: '二维码保存成功',
icon: 'success',
duration: 2000
});
}
});
}
},
_result(res) {
this.result = res;
this.$emit('result', res)
},
_empty(v) {
let tp = typeof v,
rt = false;
if (tp == "number" && String(v) == "") {
rt = true
} else if (tp == "undefined") {
rt = true
} else if (tp == "object") {
if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true
} else if (tp == "string") {
if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true
} else if (tp == "function") {
rt = false
}
return rt
}
},
watch: {
size: function (n, o) {
if (n != o && !this._empty(n)) {
this.cSize = n
if (!this._empty(this.val)) {
setTimeout(() => {
this._makeCode()
}, 100);
}
}
},
val: function (n, o) {
if (this.onval) {
if (n != o && !this._empty(n)) {
setTimeout(() => {
this._makeCode()
}, 0);
}
}
}
},
computed: {
cpSize() {
if(this.unit == "upx"){
return uni.upx2px(this.size)
}else{
return this.size
}
}
},
mounted: function () {
if (this.loadMake) {
if (!this._empty(this.val)) {
setTimeout(() => {
this._makeCode()
}, 0);
}
}
},
}
</script>
<style>
.tki-qrcode {
position: relative;
}
.tki-qrcode-canvas {
position: fixed;
top: -99999upx;
left: -99999upx;
z-index: -99999;
}
</style>
<template>
<view class="">
<!-- tabs -->
<view class=" cont flex items-center content-between">
<view class="tabs-cut flex items-center">
<text class="tabs-cut-item ft26 lht24 color666 mr10" :class="active == 1 ? 'active' : ''" @click="handleTbs(1)">门诊</text>
<text class="tabs-cut-item ft26 lht24 color666" :class="active == 2 ? 'active' : ''" @click="handleTbs(2)">网络</text>
</view>
<view class="hospital-cut flex pr24">
<view class="hospital-item ft24 lht28 flex items-center content-center" :class="hospitalType == 1 ? 'active-btn-cor' : ''" @click="handleTbsHospt(1)">
弘爱门诊
</view>
<view class="hospital-item ft24 lht28 flex items-center content-center" :class="hospitalType == 2 ? 'active-btn-cor' : ''" @click="handleTbsHospt(2)">
弘爱门诊
</view>
</view>
</view>
<!-- 滑动 -->
<view class="slide-conts flex items-start" id="slide-cont">
<!-- 左侧内容 -->
<view class="slide-left-cont">
<scroll-view scroll-y="true" class="scroll-Y " :style="{ height: height + 'px' }">
<view
class="slide-left-cont-item ft24 lht34 flex column items-center content-center"
:class="slideIdx == index ? 'slide-left-active' : ''"
v-for="(item, index) in dateTimeList"
:key="index"
@click="clickMenu(index)"
>
<view class="">{{ item.time }}</view>
<view class="">{{ item.title }}</view>
<view class="left-tags">门诊</view>
<!-- <view class="left-tags active-left-tags">
住院
</view> -->
</view>
</scroll-view>
</view>
<!-- 右侧内容 -->
<view class="slide-right-cont">
<scroll-view scroll-y="true" class="scroll-Y " :style="{ height: height + 'px' }">
<!-- 患者--门诊 -->
<template>
<view class="btm-border ">
<view class="flex items-center content-between ">
<view class="ft28 lht32" style="color: #004AC2;">2019-04-22 16:21:18</view>
<text class="tags">开药</text>
</view>
<view class="ft24 lht24 color333 pt14 ">泌尿外科 | 刘传霞</view>
</view>
<view class="btm-border flex items-center content-between">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">咨询记录</view>
</view>
<text class="tags check-tags">开药</text>
</view>
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">患病时长</view>
</view>
<view class="ft24 lht24 color333 pt14">泌尿外科 | 刘传霞</view>
</view>
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">病情描述</view>
</view>
<view class="ft24 lht34 color333 pt14">糖尿病时长期存在的高血糖,导致各种组织,特别是眼、的肾、心脏、血管</view>
</view>
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">病情描述</view>
</view>
<view class="img-list pt16 flex"><view class="img-item mr16" v-for="i in 3"></view></view>
</view>
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">咨询小结</view>
</view>
<view class="ft24 lht34 color333 pt14">糖尿病时长期存在的高血糖,导致各种组织,特别是眼、的肾、心脏、血管</view>
</view>
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">处方</view>
</view>
<view class="">
<view class="ft24 lht34 color333 pt14">[甲]达喜铝碳酸镁片</view>
<view class="color999 lht28" style="font-size: 20rpx;">1.0004次/日</view>
</view>
<view class="">
<view class="ft24 lht34 color333 pt14">[甲]达喜铝碳酸镁片</view>
<view class="color999 lht28" style="font-size: 20rpx;">1.0004次/日</view>
</view>
</view>
</template>
<!-- 患者--住院 -->
<template>
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">住院信息</view>
</view>
<view class="ft24 lht24 color333 pt14">泌尿外科 | 刘传霞</view>
</view>
<!-- 入园时间 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">入院日期</view>
</view>
<view class="ft24 lht24 color333 pt14">2020-01-01 10:00:00</view>
</view>
<!-- 入园时间 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">管床医师</view>
</view>
<view class="ft24 lht24 color333 pt14">李白</view>
</view>
</template>
<!-- 首页--个人主页--全息视图 -->
<template>
<!-- 医生 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">医生</view>
</view>
<view class="ft24 lht24 color333 pt14">消化内科门诊 刘传霞医生</view>
</view>
<!-- 诊断 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">诊断</view>
</view>
<view class="ft24 lht24 color333 pt14">健康查体</view>
</view>
<!-- 主诉 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">主诉</view>
</view>
<view class="ft24 lht24 color333 pt14">双眼干,伴头痛4天</view>
</view>
<!-- 查体 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">查体</view>
</view>
<view class="ft24 lht34 color333 pt14">T 36.8℃ R次/分 P次/分 BP</view>
</view>
<!-- 处方 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">处方</view>
</view>
<view class="">
<view class="ft24 lht34 color333 pt14">[甲]达喜铝碳酸镁片</view>
<view class="color999 lht28" style="font-size: 20rpx;">1.0004次/日</view>
</view>
<view class="">
<view class="ft24 lht34 color333 pt14">[甲]达喜铝碳酸镁片</view>
<view class="color999 lht28" style="font-size: 20rpx;">1.0004次/日</view>
</view>
</view>
<!-- 费用 -->
<view class="btm-border">
<view class="flex items-center">
<image class="img mr12" src="../../../static/image/info4.png" mode=""></image>
<view class="ft28 lht32" style="color: #004AC2;">费用</view>
</view>
<view class="flex items-center content-between">
<view class="ft24 lht34 color333 pt14">西药费</view>
<view class="ft24 lht34 color333 pt14" style="color: #EF2B2D;">¥100.00</view>
</view>
<view class="flex items-center content-between">
<view class="ft24 lht34 color333 pt14">西药费</view>
<view class="ft24 lht34 color333 pt14" style="color: #EF2B2D;">¥100.00</view>
</view>
<view class="flex items-center content-between">
<view class="ft24 lht34 color333 pt14">西药费</view>
<view class="ft24 lht34 color333 pt14" style="color: #EF2B2D;">¥100.00</view>
</view>
<view class="flex items-center content-between">
<view class="ft24 lht34 color333 pt14">西药费</view>
<view class="ft24 lht34 color333 pt14" style="color: #EF2B2D;">¥100.00</view>
</view>
</view>
</template>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
top: {
type: Number,
default: () => {
return 0;
}
}
},
data() {
return {
slideIdx: 0, //左侧菜单默认选中第一个
active: 1,
hospitalType: 1,
height: 0,
dateTimeList: [
{
time: '2020-03-20',
title: '消化内科'
},
{
time: '2020-03-20',
title: '消化内科'
},
{
time: '2020-03-20',
title: '消化内科'
},
{
time: '2020-03-20',
title: '消化内科'
},
{
time: '2020-03-20',
title: '消化内科'
},
{
time: '2020-03-20',
title: '消化内科'
}
]
};
},
created() {
uni.getSystemInfo({
success: res => {
console.log(res);
this.height = res.windowHeight - this.top;
}
});
},
methods: {
// 切换门和网络
handleTbs(val) {
this.active = val;
},
// 切换医院
handleTbsHospt(val) {
this.hospitalType = val;
},
//点击选中左侧菜单
clickMenu(val) {
this.slideIdx = val;
}
}
};
</script>
<style>
page {
background: #fff !important;
}
</style>
<style lang="scss" scoped>
.cont {
background-color: #ffffff;
.tabs-cut {
height: 90rpx;
padding: 0 32rpx;
.tabs-cut-item {
padding: 12rpx 34rpx;
border-radius: 27rpx;
}
}
.hospital-cut {
width: 304rpx;
height: 60rpx;
.hospital-item {
width: 152rpx;
height: 60rpx;
border: 2rpx solid #004ac2;
color: #004ac2;
}
.hospital-item:first-child {
border-radius: 30rpx 0 0 30rpx;
}
.hospital-item:last-child {
border-radius: 0 30rpx 30rpx 0;
}
}
.active {
background-color: #eff4fb !important;
color: #004ac2 !important;
}
.active-btn-cor {
background: #004ac2 !important;
color: #ffffff !important;
}
}
.slide-conts {
width: 100%;
height: 100%;
.slide-left-cont {
width: 240rpx;
height: 100%;
.slide-left-cont-item {
position: relative;
width: 240rpx;
height: 132rpx;
background: #f5f6f7;
color: #656975;
.left-tags {
position: absolute;
left: 0;
top: 0;
background: #004ac2;
padding: 4rpx 8rpx;
border-bottom-right-radius: 4rpx;
color: #ffffff;
font-size: 24rpx;
transform: scale(0.7);
}
.active-left-tags {
background-color: #ef2b2d !important;
}
}
}
.slide-right-cont {
padding: 0 30rpx;
width: 100%;
height: 100%;
}
}
.tags {
background: linear-gradient(135deg, #05ddbd 0%, #32dfc2 100%);
padding: 2rpx 6rpx;
border-radius: 4rpx;
font-size: 20rpx;
color: #ffffff;
}
.btm-border {
padding: 30rpx 0;
border-bottom: 2rpx solid #f5f6f7 !important;
}
.img {
width: 32rpx;
height: 32rpx;
}
.check-tags {
border: 2rpx solid #004ac2 !important;
background: #ffffff !important;
color: #004ac2;
}
.img-list {
.img-item {
width: 120rpx;
height: 120rpx;
border-radius: 4rpx;
background: #eee;
}
}
.slide-left-active {
background: #ffffff !important;
color: #004ac2 !important;
}
</style>
<template>
<view class="">
<view class="list flex items-center content-between">
<view class="flex items-center">
<view class="list-img">
<image style="width: 100%;height: 100%;" src="../../../static/image/info1.png" mode=""></image>
</view>
<view class="pl20">
<view class="title color333 lht28 ft28 font500">
超声
</view>
<view class="ft24 color999 lht24 pt12">
妇科卵巢检测
</view>
</view>
</view>
<view class="ft24 color999">
2020-01-01 10:00:00
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.list{
background: #fff;
padding: 0 28rpx;
width: 100%;
height: 132rpx;
border-bottom: 2rpx solid #F5F6F7;
.list-img{
width: 44rpx;
height: 44rpx;
border-radius: 50%;
overflow: hidden;
image{
width: 100%;
height: 100%;
}
}
}
</style>
\ No newline at end of file
<template>
<view class="">
<report-tabs @handleTags="handleTags" :active="active"></report-tabs>
<!-- 检查报告组件 -->
<view class="pt16"><physical-list></physical-list></view>
</view>
</template>
<script>
import reportTabs from '@/pages/components/report-tabs.vue';
import physicalList from './physical-list.vue';
export default {
components: {
reportTabs,
physicalList
},
data() {
return {
active: 1,//选中的标签值
};
},
methods: {
handleTags(val) {
this.active = val;
}
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped></style>
<template>
<view class="paitent-cont">
<view class="pt22">
<head-info :info="info"></head-info>
</view>
<view class="mt36"><text class="tags">病人主诉</text></view>
<view class="ft26 lht28 pt30 flex items-center">
<view class="" style="color: #656975; width: 130rpx;">身高体重:</view>
<view class="color333 pl12">123cm65kg</view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">是否怀孕:</view>
<view class="color333 pl12"></view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;">患病时长:</view>
<view class="color333 pl12">一年以上</view>
</view>
<view class="ft26 lht28 pt26 flex items-start">
<view class="" style="color: #656975;width: 130rpx; flex-shrink: 0;">病情描述:</view>
<view class="color333 pl12">糖尿病时长期存在的高血糖,导致各种组织,特别是眼、的肾、心脏、血管、神经的慢性损害、功能障碍。</view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">病史:</view>
<view class="color333 pl12"></view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">过敏史:</view>
<view class="color333 pl12"></view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">相关图片:</view>
<view class="color333 pl12"></view>
</view>
<view class="mb32" style="padding-top: 56rpx;"><text class="tags">历史处方药品</text></view>
<view class="ft26 lht28 pb40" v-for="i in 2" :key="i">
<view class="drug-title color333">[甲]维胺酯胶囊 23mg*24粒×4盒备份 2</view>
<view class="drug-explain pt16" style="color: #656975;">用法:口服,3次/日</view>
</view>
<view class="btm-btn flex content-between">
<!-- <view class="order-btn" @click="submitOrder">接单</view> -->
<view class="left-btn flex content-center items-center" @click="show = true">拒绝开方</view>
<view class="right-btn flex content-center items-center">开处方</view>
</view>
<u-popup :show="show" mode="center" @close="close" @open="open" closeable>
<view class="modal-card">
<view class="head-title font700 ft28 flex content-center pb24 pt30">请说明拒绝原因</view>
<view class="" @click="isSelect = true">
<u-input type="text" v-model="value" style="height:64rpx" disabled disabledColor="#F5F6F7">
<template slot="suffix">
<image style="width: 16rpx; height: 12rpx;" src="/static/image/arrow-down333.png" mode=""></image>
</template>
</u-input>
</view>
<view class="cont-card mt24">
<u--textarea v-model="content" style="background: #F5F6F7;" height="390rpx" border="none" maxlength="500" placeholder="请输入原因…"></u--textarea>
</view>
<view class="btm-opt flex">
<view class="cancel flex items-center content-center color666" style="flex: 1;" @click="close()">取消</view>
<view class="submit flex items-center content-center" style="color: #003893;flex:1" @click="close()">确定</view>
</view>
</view>
</u-popup>
<u-action-sheet :actions="selectList" :closeOnClickAction="true" :title="title" :show="isSelect" @close="isSelect=false" @select="select"></u-action-sheet>
</view>
</template>
<script>
import headInfo from '@/pages/components/patient-head-info.vue'
export default {
components:{
headInfo
},
data() {
return {
show: false,
title: '请说明拒绝原因',
content: '',
value: '其他',
selectList: [
{
name: '选项一'
},
{
name: '选项二禁用'
},
{
name: '开启load加载' //开启后文字不显示
}
],
isSelect: false,//拒绝下拉框状态
info:{}
};
},
methods: {
submitOrder() {
uni.showModal({
content: '是否确认订单?',
success: res => {
if (res.confirm) {
}
}
});
},
// 选中拒绝的下拉框
select(val){
this.value=val.name
this.isSelect=false
},
open() {},
close() {
this.show = false;
}
}
};
</script>
<style lang="scss" scoped>
.paitent-cont {
padding: 0 24rpx;
background-color: #fff;
.btm-btn {
position: absolute;
bottom: 0;
left: 0;
background: #fff;
width: 100%;
height: 130rpx;
box-shadow: 0px -4px 12px 0px rgba(0, 0, 0, 0.08);
padding: 32rpx 24rpx 0 24rpx;
.order-btn {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 84rpx;
background: linear-gradient(135deg, #0b57d2 0%, #77a5ff 100%);
border-radius: 8rpx;
color: #fff;
}
.left-btn,
.right-btn {
width: 336rpx;
height: 84rpx;
border-radius: 8px;
}
.left-btn {
background: #ffffff;
border-radius: 8rpx;
border: 2rpx solid #f1f1f1;
color: #333333;
font-size: 32rpx;
}
.right-btn {
background: linear-gradient(135deg, #0b57d2 0%, #77a5ff 100%);
border-radius: 8rpx;
font-weight: 500;
color: #ffffff;
font-size: 32rpx;
}
}
}
.modal-card {
width: 590rpx;
height: 720rpx;
background: #ffffff;
padding: 0 30rpx;
border-radius: 8rpx;
overflow: hidden;
}
.cont-card {
width: 100%;
height: 390rpx;
}
.btm-opt {
position: absolute;
background: #fff;
left: 0;
bottom: 0;
width: 100%;
height: 88rpx;
border-top: 2rpx solid #f1f1f1;
.cancel {
}
}
.tags {
background: #eff4fb;
padding: 10rpx 14rpx;
font-size: 28rpx;
color: #1c62d5;
border-radius: 4rpx;
}
</style>
<template>
<view class="">
<u-navbar title="药品查询" :placeholder="true" @leftClick="onNavbarLeftClick"></u-navbar>
<view class="head">
<text class="doctor-title">
弘爱互联网+药房
<view class="btm-slide"></view>
</text>
</view>
<!-- 搜索输入框 -->
<view class="pl24 pr24 pt20">
<view class="search-content flex">
<view class="pl20 pr20" style="line-height: 68rpx;"><img style="width: 28rpx;height: 28rpx;" src="/static/image/search.png" alt="" /></view>
<u--input :fontSize="'24rpx'" placeholder="请输入药品名称" border="none" v-model="value"></u--input>
</view>
</view>
<!-- 药品列表 -->
<drug-list></drug-list>
</view>
</template>
<script>
import drugList from './components/drug-list.vue';
export default {
components:{
drugList
},
data() {
return {
value: ''
};
}
};
</script>
<style lang="scss" scoped>
.head {
height: 90rpx;
border-bottom: 2rpx solid #f5f6f7;
.doctor-title {
position: relative;
padding: 20rpx 34rpx 28rpx 34rpx;
font-weight: 500;
line-height: 42rpx;
font-size: 30rpx;
color: #000000;
}
.btm-slide {
position: absolute;
bottom: -10rpx;
left: 50%;
transform: translateX(-50%);
width: 40rpx;
height: 6rpx;
background: linear-gradient(270deg, #77abff 0%, #035ceb 100%);
border-radius: 4rpx;
}
}
.search-content {
background: #f5f6f7;
width: 100%;
height: 68rpx;
border-radius: 6rpx;
}
</style>
<template>
<view class="">
<u-navbar title="处方" :placeholder="true" @leftClick="onNavbarLeftClick"></u-navbar>
<view class="head flex items-center">
<text class="drug-tag ft28">
RP
</text>
</view>
<view class="specification-list flex items-center">
<view class="flex column" style="flex: 1;">
<view class="durg-title color333 ft30 lht30">
维生素C片 *2瓶
</view>
<view class="ft24 lht24 color999 pt16">
用法用量:口服,立即,每次1片
</view>
</view>
<view class="state-img">
</view>
</view>
</view>
</template>
<script>
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.head{
background: #fff;
height: 88rpx;
padding: 0 30rpx;
.drug-tag{
background: #EFF4FB;
padding: 10rpx 30rpx;
border-radius: 4rpx;
color: #1C62D5;
font-weight: 500;
}
}
.specification-list{
padding: 36rpx 28rpx;
border-top: 2rpx solid #F5F6F7;
background: #fff;
.state-img{
flex-shrink: 0;
width: 120rpx;
height: 66rpx;
background: #eee;
overflow: hidden;
}
}
</style>
\ No newline at end of file
<template>
<view class="">
<u-navbar title="急速配药" :placeholder="true" @leftClick="onNavbarLeftClick"></u-navbar>
<view class=""><rapid-drug-list></rapid-drug-list></view>
</view>
</template>
<script>
import rapidDrugList from '@/pages/components/rapid-drug-list.vue';
export default {
components: {
rapidDrugList
},
data() {
return {};
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
</style>
<template>
<view class="">
<u-navbar title="急速配药" :placeholder="true" @leftClick="onNavbarLeftClick"></u-navbar>
<consult-tabs @handleTabs="handleTabs" :active="active"></consult-tabs>
<!-- 病情概要 -->
<template v-if="active == 1">
<state-otline></state-otline>
</template>
<!-- 报告查询 -->
<template v-if="active == 3">
<report-search></report-search>
</template>
<!-- 全息视图 -->
<template v-if="active == 4">
<view class="" id="slide-cont"><holographic-view :top="top"></holographic-view></view>
</template>
</view>
</template>
<script>
import consultTabs from '@/pages/components/consult-tabs.vue';
import stateOtline from './components/state-otline.vue'; //病情概要
import reportSearch from './components/report-search.vue'; //病情概要
import holographicView from './components/holographic-view.vue'; //病情概要
export default {
components: {
consultTabs,
stateOtline,
reportSearch,
holographicView
},
data() {
return {
active: 4,
top: 0
};
},
onLoad() {
if (this.active == 4) {
this.$nextTick(() => {
wx.createSelectorQuery()
.select('#slide-cont')
.boundingClientRect(res => {
this.top = res.top;
})
.exec();
});
}
},
methods:{
handleTabs(val){
this.active=val;
}
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
</style>
...@@ -143,8 +143,9 @@ export default { ...@@ -143,8 +143,9 @@ export default {
openId: this.openId, openId: this.openId,
unionId: this.unionId unionId: this.unionId
}); });
console.log(request)
if (request.code == 0) { if (request.code == 0) {
status = 0; this.switchTab(request)
} }
} else { } else {
const request = await loginByMobile({ const request = await loginByMobile({
...@@ -155,24 +156,9 @@ export default { ...@@ -155,24 +156,9 @@ export default {
unionId: this.unionId unionId: this.unionId
}); });
if (request.code == 0) { if (request.code == 0) {
status = 0; this.switchTab(request)
} }
} }
if (status == 0) {
uni.setStorageSync('accessToken', request.data.accessToken);
uni.setStorageSync('refreshToken', request.data.refreshToken);
uni.setStorageSync('userInfo', request.data.doctorAdmin);
uni.showToast({
title: '登录成功',
mask: true,
duration: 1500
});
setTimeout(() => {
uni.switchTab({
url: '/pages/tabbar/doctor-home'
});
}, 800);
}
}) })
.catch(errors => { .catch(errors => {
// uni.$u.toast('校验失败'); // uni.$u.toast('校验失败');
...@@ -222,6 +208,21 @@ export default { ...@@ -222,6 +208,21 @@ export default {
uni.$u.toast('倒计时结束后再发送'); uni.$u.toast('倒计时结束后再发送');
} }
}, },
switchTab(request){
uni.setStorageSync('accessToken', request.data.accessToken);
uni.setStorageSync('refreshToken', request.data.refreshToken);
uni.setStorageSync('userInfo', request.data.doctorAdmin);
uni.showToast({
title: '登录成功',
mask: true,
duration: 1500
});
setTimeout(() => {
uni.switchTab({
url: '/pages/tabbar/doctor-home'
});
}, 800);
},
end() { end() {
uni.$u.toast('倒计时结束'); uni.$u.toast('倒计时结束');
}, },
......
<template>
<view class="">
<u-navbar :title="title" :placeholder="true" @leftClick="onNavbarLeftClick"></u-navbar>
<view class="cont">
<!-- -->
<view class="card mb18">
<report-head-title :title="'就诊人信息'" :icon="iconList[0]"></report-head-title>
<view class="patient-info">
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">姓名:</view>
<view class="value-color ft28 lht28">李小明</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">性别:</view>
<view class="value-color ft28 lht28"></view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">年龄:</view>
<view class="value-color ft28 lht28">20岁</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">卡号:</view>
<view class="value-color ft28 lht28">DF1234</view>
</view>
</view>
</view>
<!-- 检验信息 -->
<view class="card">
<report-head-title :title="'检验信息'" :icon="iconList[1]"></report-head-title>
<view class="patient-info">
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">医院名称:</view>
<view class="value-color ft28 lht28">厦门弘爱医院</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">申请科室:</view>
<view class="value-color ft28 lht28">妇科门诊</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">检查日期:</view>
<view class="value-color ft28 lht28">2021-08-11岁</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">检查类型:</view>
<view class="value-color ft28 lht28">分子</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">检验医生:</view>
<view class="value-color ft28 lht28">李白</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">审核医生:</view>
<view class="value-color ft28 lht28">李白</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">审核时间:</view>
<view class="value-color ft28 lht28">2021-08-11</view>
</view>
</view>
</view>
<!-- 检验结果 -->
<view class="card">
<report-head-title :title="'检验信息'" :icon="iconList[2]"></report-head-title>
<view class="tabs flex">
<view class="tabs-item color333 font500 flex content-center items-center">检验项目</view>
<view class="tabs-item color333 font500 flex content-center items-center">结果</view>
<view class="tabs-item color333 font500 flex content-center items-center">参考值/单位</view>
</view>
<view class="result-list">
<view class="pl20 pt22 pr20 pb40 flex items-center content-between" v-for="i in 3" :key="i">
<view class="result-list-item flex content-center ft24 lht34">新型冠状病毒核酸(2019-</view>
<view class="result-list-item ft24 flex content-center lht34">阴性</view>
<view class="result-list-item ft24 flex content-center lht34">阴性</view>
</view>
</view>
</view>
<view class=""><button class="btn-all-report">查看报告</button></view>
<view class="btm-tips color999 ft24 lht34 flex content-center">
注:报告仅供参考, :表示偏高, :表示
</view>
</view>
</view>
</template>
<script>
import reportHeadTitle from '@/pages/patient/components/report-head-title.vue';
export default {
components: {
reportHeadTitle
},
data() {
return {
title: '李小明的彩超报告',
iconList: ['/static/image/icon2.png', '/static/image/icon3.png', '/static/image/icon4.png']
};
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.cont {
padding: 20rpx 26rpx;
.head-info {
background: #fff;
height: 96rpx;
padding: 0 20rpx;
border-bottom: 2rpx solid #f5f6f7;
border-radius: 8rpx 8rpx 0 0;
}
.patient-info {
background: #fff;
padding: 26rpx 28rpx 40rpx 28rpx;
border-radius: 0 0 8rpx 8rpx;
}
.tabs {
height: 80rpx;
border-bottom: 2rpx solid #f5f6f7;
.tabs-item {
flex: 1;
}
}
.result-list {
.result-list-item {
width: 194rpx;
height: 100%;
color: #656975;
}
}
.btn-all-report {
background: linear-gradient(135deg, #0b57d2 0%, #77a5ff 100%);
width: 702rpx;
height: 84rpx;
margin-top: 40rpx;
border-radius: 8rpx;
font-weight: 500;
color: #ffffff;
font-size: 32rpx;
}
.btm-tips{
padding-top: 60rpx;
}
}
.label-color {
color: #656975;
}
.value-color {
color: #333333;
}
</style>
<template>
<view class="">
<!-- 头部用户信息 -->
<view class="bgfff pl24 pr24"><head-info :info="info"></head-info></view>
<view class="">
<view class="paitent-cont ml26 mr26 mt20">
<view class=" head ft32 color333 font500 pl28 flex items-center">病人主诉</view>
<view class="ft26 lht28 pt30 flex items-center">
<view class="" style="color: #656975; width: 130rpx;">身高体重:</view>
<view class="color333 pl12">123cm65kg</view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">是否怀孕:</view>
<view class="color333 pl12"></view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;">患病时长:</view>
<view class="color333 pl12">一年以上</view>
</view>
<view class="ft26 lht28 pt26 flex items-start">
<view class="" style="color: #656975;width: 130rpx; flex-shrink: 0;">病情描述:</view>
<view class="color333 pl12">糖尿病时长期存在的高血糖,导致各种组织,特别是眼、的肾、心脏、血管、神经的慢性损害、功能障碍。</view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">病史:</view>
<view class="color333 pl12"></view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">过敏史:</view>
<view class="color333 pl12"></view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">相关图片:</view>
<view class="img-list color333 pl12 flex"><view class="img-item mr16" v-for="i in 2"></view></view>
</view>
<view class="mb32" style="padding-top: 48rpx;"><text class="tags">历史处方药品</text></view>
<view class="ft26 lht28 pb40" v-for="i in 2" :key="i">
<view class="drug-title color333">[甲]维胺酯胶囊 23mg*24粒×4盒备份 2</view>
<view class="drug-explain pt16" style="color: #656975;">用法:口服,3次/日</view>
</view>
</view>
<view class="paitent-cont ml26 mr26 mt20">
<view class=" head ft32 color333 font500 pl28 flex items-center">订单详情</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">业务类型:</view>
<view class="color333 pl12">图文</view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">患者类型:</view>
<view class="color333 pl12">自费</view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">订单号码:</view>
<view class="color333 pl12">6271467932614762916</view>
</view>
<view class="ft26 lht28 pt26 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">下单时间:</view>
<view class="color333 pl12">2021-01-01 10:00:00</view>
</view>
<view class="ft26 lht28 pt26 pb40 flex items-center">
<view class="" style="color: #656975;width: 130rpx;">支付费用:</view>
<view class="color333 pl12" style="color: #EF2B2D;">¥1.00</view>
</view>
</view>
<view class="mt48">
<view class="btm-tips flex items-center content-center">本次问诊未开始,需接诊之后开始计时</view>
<view class="btm-btn flex content-between ">
<view class="left-btn flex content-center items-center" @click="selectShow = true">退诊并退款</view>
<view class="right-btn flex content-center items-center">接诊</view>
</view>
</view>
</view>
<!-- 选择退诊理由 -->
<u-popup :show="selectShow" round="12" mode="bottom" @close="selectclose" @open="selectOpen" closeable>
<view class="select-title ft32 font500 pl24 flex items-center">请填写或选择取消理由</view>
<view class="select-cont pl24 pr24">
<view class="select-item ft28 flex items-center" v-for="(item, index) in selectList" :key="index" @click="handleSelect(item)">
<image class="mr10" style="width: 30rpx; height: 32rpx;" :src="item.image" mode="" v-if="item.image"></image>
{{ item.title }}
</view>
</view>
</u-popup>
<!-- 退诊 -->
<u-popup :show="show" mode="center" @close="close" @open="open" closeable>
<view class="modal-card" style="height: 672rpx;">
<view class="head-title font700 ft28 flex content-center pb24 pt44">请说明拒绝原因</view>
<view class="cont-card mt24"><u--textarea v-model="content" placeholderClass="placeholderClass" height="390rpx" border="none" maxlength="50" placeholder="请输入原因…"></u--textarea></view>
<view class="radio-reason flex items-center pt20">
<image style="width: 28rpx; height: 28rpx;" src="/static/image/radio1.png" mode="" v-if="reasonSte" @click="reasonSte = false"></image>
<image style="width: 28rpx; height: 28rpx;" src="/static/image/radio2.png" mode="" v-else @click="reasonSte = true"></image>
<view class="pl8 ft24 lht24 color333 ft32" style="color: #004AC2;">保存为退诊理由</view>
</view>
<view class="btm-opt flex">
<view class="cancel flex items-center content-center color666" style="flex: 1;" @click="close()">取消</view>
<view class="submit flex items-center content-center" style="color: #003893;flex:1" @click="close()">确定</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import headInfo from '@/pages/components/patient-head-info.vue';
export default {
components: {
headInfo
},
data() {
return {
selectShow: true,
show: false,
title: '请说明拒绝原因',
content: '',
value: '其他',
reasonSte: true, //保存为确诊理由状态
selectList: [
{
name: '选项一'
},
{
name: '选项二禁用'
},
{
name: '开启load加载' //开启后文字不显示
}
],
isSelect: false, //拒绝下拉框状态
info: {},
selectList: [
{
title: '手动填写拒绝理由',
image: '/static/image/edit.png'
},
{
title: '不属于我的诊疗范围',
image: ''
},
{
title: '很抱歉,暂无时间处理',
image: ''
},
{
title: '没空没空没空没空',
image: ''
}
]
};
},
methods: {
submitOrder() {
uni.showModal({
content: '是否确认订单?',
success: res => {
if (res.confirm) {
}
}
});
},
// 选中拒绝的下拉框
select(val) {
this.value = val.name;
this.isSelect = false;
},
// 选择拒绝的理由项
handleSelect(val){
this.selectclose();
if(val.image){
this.open()
}
},
open() {
this.show = true;
},
close() {
this.show = false;
},
selectOpen() {},
selectclose() {
this.selectShow = false;
}
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.placeholderClass{
background: #eee;
}
.paitent-cont {
padding: 0 24rpx;
background-color: #fff;
.head {
height: 96rpx;
border-bottom: 2rpx solid #f5f6f7;
}
.img-item {
width: 120rpx;
height: 120rpx;
border-radius: 4rpx;
overflow: hidden;
background: #eee;
image {
width: 100%;
height: 100%;
}
}
}
.modal-card {
width: 590rpx;
height: 720rpx;
// background: #ffffff;
padding: 0 30rpx;
border-radius: 8rpx;
overflow: hidden;
}
.btm-opt {
position: absolute;
background: #fff;
left: 0;
bottom: 0;
width: 100%;
height: 88rpx;
border-top: 2rpx solid #f1f1f1;
.cancel {
}
}
.tags {
background: #eff4fb;
padding: 10rpx 14rpx;
font-size: 28rpx;
color: #1c62d5;
border-radius: 4rpx;
}
.btm-tips {
background: #e5ecf8;
height: 56rpx;
color: #004ac2;
font-size: 24rpx;
}
.btm-btn {
// position: absolute;
// bottom: 0;
// left: 0;
background: #fff;
width: 100%;
height: 130rpx;
box-shadow: 0px -4px 12px 0px rgba(0, 0, 0, 0.08);
padding: 32rpx 24rpx 0 24rpx;
.order-btn {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 84rpx;
background: linear-gradient(135deg, #0b57d2 0%, #77a5ff 100%);
border-radius: 8rpx;
color: #fff;
}
.left-btn,
.right-btn {
width: 336rpx;
height: 84rpx;
border-radius: 8px;
}
.left-btn {
background: #ffffff;
border-radius: 8rpx;
border: 2rpx solid #f1f1f1;
color: #333333;
font-size: 32rpx;
}
.right-btn {
background: linear-gradient(135deg, #0b57d2 0%, #77a5ff 100%);
border-radius: 8rpx;
font-weight: 500;
color: #ffffff;
font-size: 32rpx;
}
}
.select-title {
height: 96rpx;
border-bottom: 2rpx solid #f5f6f7;
}
.select-cont {
.select-item {
height: 88rpx;
color: #4e4f50;
border-bottom: 2rpx solid #f5f6f7;
}
}
</style>
<template>
<view class="">
<view class="head-info flex items-center flex content-between">
<view class="flex">
<image style="width: 44rpx; height: 44rpx;" :src="icon" mode=""></image>
<view class="head-title color333 ft32 font500 pl16">
{{title}}
</view>
</view>
<view class="arrow-right">
<image style="width: 26rpx;height: 14rpx;" src="/static/image/arrow-down.png" mode=""></image>
</view>
</view>
</view>
</template>
<script>
export default{
props:{
title:{
type:String,
default:()=>{
return ''
}
},
icon:{
type:String,
default:()=>{
return ''
}
}
},
data(){
return{
}
}
}
</script>
<style lang="scss" scoped>
.head-info{
background: #fff;
height: 96rpx;
padding: 0 20rpx;
border-bottom: 2rpx solid #F5F6F7;
border-radius: 8rpx 8rpx 0 0;
}
.patient-info{
background: #fff;
padding: 26rpx 28rpx 40rpx 28rpx;
}
</style>
\ No newline at end of file
<template>
<view class="report-list flex items-center content-between">
<view class="flex items-center">
<image class="report-img" src="/static/image/info3.png" mode=""></image>
<view class="report-title color333 ft28 font500 pl12">
B超
</view>
</view>
<view class="create-time ft26 color999">
2020-01-01 10:00:00
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.report-list{
background: #fff;
padding: 0 30rpx;
height: 96rpx;
border-bottom: 2rpx solid #F5F6F7;
.report-img{
width: 44rpx;
height: 44rpx;
}
}
</style>
\ No newline at end of file
<template>
<view class="">
<u-navbar title="咨询记录" :placeholder="true" leftIconColor="#fff"></u-navbar>
<view class="patient-list mt16">
<view class="patient-item flex items-center content-between" v-for="i in 3">
<view class="flex items-center">
<view class="patient-img"></view>
<view class="pl20">
<view class="flex">
<view class="patient-name color333 font500 ft32 lht28">李小明</view>
<text class="patient-tag ml12">女|20岁</text>
</view>
<view class="date-time ft24 pt16 lht24">2022-04-24 17:48:00</view>
</view>
</view>
<view class="flex column">
<text class="tags ky ">开药</text>
<text class="tags dpj mt16">待评价</text>
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.patient-list {
background: #fff;
.patient-item {
padding: 0 28rpx;
height: 148rpx;
border-bottom: 2rpx solid #F5F6F7;
.patient-img {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
background: #eee;
}
.patient-tag {
background: #eff4fb;
font-size: 20rpx;
padding: 4rpx 8rpx;
color: #1c62d5;
border-radius: 2rpx;
}
.date-time{
color: #A8AAB0;
}
.tags{
padding: 2rpx 6rpx;
border-radius: 4rpx;
font-size: 20rpx
}
}
}
.ky{
background: linear-gradient(135deg, #05DDBD 0%, #32DFC2 100%);
color: #fff;
}
.dpj{
border: 2rpx solid #004AC2;
color: #004AC2;
}
</style>
<template>
<view class="">
<view class="">
</view>
</view>
</template>
<script>
export default{
data(){
return{
}
},
methods:{
}
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<view class="">
<u-navbar title="分组管理" :placeholder="true" leftIconColor="#fff"></u-navbar>
<view class="head-cont"><view class="add-btn flex items-center content-center" @click="open">+添加分组</view></view>
<view class="cont-list mt20">
<view class="cont-list-item pl24 flex items-center color333 ft30">默认关注</view>
<view class="cont-list-item pl24 flex items-center color333 ft30" style="border:0;">分组名称名称</view>
</view>
<!-- 新增弹框 -->
<u-popup :show="addShow" :closeOnClickOverlay="true" closeable :round="8" mode="center" @close="close" @open="open">
<view class="modal">
<view class=" flex content-center"><view class="moddal-title color333 ft28 lht44 font500 pt44 pb24">添加分组</view></view>
<u--input type="text" value="" border="none" :customStyle="{background:'#F5F6F7','height':'88rpx','padding':'0 20rpx'}" fontSize="28rpx" :placeholderStyle="{'color':'#999'}" placeholder="请输入分组名称" />
<view class="btm-btn flex mt32">
<view class="cancel flex content-center items-center" @click="close">
取消
</view>
<view class="submit flex content-center items-center" @click="handleAdd">
确定
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default {
data() {
return {
addShow: false
};
},
methods: {
handleAdd(){
this.close();
},
open() {
this.addShow=true;
},
close() {
this.addShow = false;
// console.log('close');
}
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.head-cont {
background: #fff;
padding: 20rpx 24rpx;
.add-btn {
background: linear-gradient(135deg, #0b57d2 0%, #77a5ff 100%);
width: 702rpx;
height: 84rpx;
padding: 0 24rpx;
border-radius: 8rpx;
font-size: 32rpx;
font-weight: 500;
color: #fff;
}
}
.cont-list {
background: #fff;
.cont-list-item {
height: 96rpx;
border-bottom: 2rpx solid #f5f6f7;
}
}
.modal {
width: 590rpx;
height: 322rpx;
padding: 0 24rpx;
.btm-btn{
display: flex;
height: 88rpx;
border-top: 2rpx solid #F1F1F1;
}
.cancel{
flex: 1;
}
.submit{
flex: 1;
color: #003893;
}
}
/deep/.u-safe-bottom{
display: none;
}
</style>
<template>
<view class="">
<u-navbar title="患者基本信息" :placeholder="true" @leftClick="onNavbarLeftClick"></u-navbar>
<view class="pl24 pr24">
<view class="info-list flex items-center">
<view class="info-title">姓名</view>
<view class="info-name">李小明</view>
</view>
<view class="info-list flex items-center">
<view class="info-title">性别</view>
<view class="info-name"></view>
</view>
<view class="info-list flex items-center">
<view class="info-title">年龄</view>
<view class="info-name">20岁</view>
</view>
</view>
<view class="slide"></view>
<view class="pl24 pr24">
<view class="info-list flex items-center">
<view class="info-title">身份证号</view>
<view class="info-name">34567787896789</view>
</view>
<view class="info-list flex items-center">
<view class="info-title">就诊卡类型</view>
<view class="info-name">34567787896789</view>
</view>
<view class="info-list flex items-center">
<view class="info-title">就诊卡号</view>
<view class="info-name">193929_DF4944606</view>
</view>
</view>
<view class="btm-btn">
<view class="submit-btn flex content-center items-center">
确定开方
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
}
};
</script>
<style></style>
<style lang="scss" scoped>
.info-list {
background: #fff;
padding: 36rpx 0 32rpx 0;
font-size: 28rpx;
line-height: 32rpx;
border-bottom: 2rpx solid #f6f6f6;
.info-title {
width: 192rpx;
color: #666666;
}
.info.name {
color: #666666;
}
}
.slide {
background: #f5f6f7;
width: 100%;
height: 16rpx;
}
.btm-btn{
position: absolute;
bottom: 0;
left: 0;
background: #fff;
width: 100%;
height: 132rpx;
padding: 32rpx 24rpx 0 24rpx;
box-shadow: 0rpx -4rpx 12rpx 0rpx rgba(0, 0, 0, 0.08);
.submit-btn{
background: linear-gradient(135deg, #0B57D2 0%, #77A5FF 100%);
width: 702rpx;
height: 84rpx;
border-radius: 8rpx;
font-size: 32rpx;
font-weight: 500;
color: #FFFFFF;
}
}
</style>
<template>
<view class="">
<u-navbar :title="title" :placeholder="true" @leftClick="onNavbarLeftClick"></u-navbar>
<!-- 头部tab项 -->
<view class=""><consult-tbs :active="active" @handleTabs="handleTabs"></consult-tbs></view>
<!-- 病情概要 -->
<view class=" " v-if="active==1">
<outline></outline>
</view>
</view>
</template>
<script>
import consultTbs from '@/pages/components/consult-tabs.vue'; //头部tab项
import outline from '../patient/components/outline.vue';
export default {
components: {
consultTbs,
outline
},
data() {
return {
title: '李小名',
active: 1
};
},
methods: {
handleTabs(val) {
this.active = val;
}
}
};
</script>
<style></style>
<template>
<view class="cont">
<view class="head-cont">
<u-navbar :placeholder="true" leftIconColor="#fff" bgColor="rgba(0,0,0,0.0)"></u-navbar>
<view class="patient-info flex content-between ">
<view class="flex items-center content-between" style="height: 92rpx;width: 100%;">
<view class="flex pt20">
<view class="patient-img"></view>
<view class=" flex column content-start pl24">
<view class="flex items-start pb18">
<view class="patient-name colorfff font700 ft36 lht36">李白</view>
<text class="patient-idcard">女|20岁</text>
</view>
<view class=" pt8 ft24 colorfff lht24" style="opacity: 0.8;">身份证号:3502***6063</view>
</view>
</view>
<view class="keep ft24 mt6 flex content-center items-center" v-if="keepSte">
<text class="pr6 font500">已关注</text>
<u-icon size="12" color="#004AC2" name="checkmark"></u-icon>
</view>
<view class="keep ft24 flex content-center items-center" v-else><text class="pr6 font500">未关注</text></view>
</view>
</view>
</view>
<view class="info-card">
<view class="patient-card">
<view class="menu-card flex items-center">
<view class="menu-item flex column items-center content-center" style="flex: 1;">
<view class="menu-icon"><image src="/static/image/menu2.png" mode=""></image></view>
<view class="menu-title ft24 color333 lht34 pt4">俱乐部</view>
</view>
<view class="menu-item flex column items-center content-center" style="flex: 1;">
<view class="menu-icon"><image src="/static/image/menu1.png" mode=""></image></view>
<view class="menu-title ft24 color333 lht34 pt4">报告查询</view>
</view>
<view class="menu-item flex column items-center content-center" style="flex: 1;">
<view class="menu-icon"><image src="/static/image/menu3.png" mode=""></image></view>
<view class="menu-title ft24 color333 lht34 pt4">咨询记录</view>
</view>
</view>
</view>
<!-- -->
<view class="card-list">
<view class="card-list-item flex items-center content-between">
<view class="flex items-center">
<image style="width: 44rpx;height: 44rpx;" src="/static/image/info4.png" mode=""></image>
<view class="ft30 color333 pl12">发消息</view>
</view>
<image style="width: 12rpx; height: 20rpx;" src="/static/image/patient-info1.png" mode=""></image>
</view>
<view class="card-list-item flex items-center content-between">
<view class="flex items-center">
<image style="width: 44rpx;height: 44rpx;" src="/static/image/patient-info2.png" mode=""></image>
<view class="ft30 color333 pl12">关注</view>
</view>
<u-switch v-model="keepSte" @change="change" activeColor="#004AC2"></u-switch>
</view>
<view class="card-list-item flex items-center content-between">
<view class="flex items-center">
<image style="width: 44rpx;height: 44rpx;" src="/static/image/patient-info3.png" mode=""></image>
<view class="ft30 color333 pl12">分组</view>
</view>
<view class="color999 ft28">
<text class="pr20">未分组</text>
<image style="width: 12rpx; height: 20rpx;" src="/static/image/arrow-right.png" mode=""></image>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
navHeight: this.navHeight, //导航栏高度
navTop: this.navTop, //胶囊距离顶部的高度
keepSte: true
};
},
methods: {
change() {}
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.head-cont {
width: 100%;
background-image: url('data:image/png;base64,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');
background-repeat: no-repeat;
background-size: 100%;
padding: 0 24rpx;
.patient-info {
height: 240rpx;
.patient-img {
width: 92rpx;
height: 92rpx;
background: #eee;
border-radius: 50%;
overflow: hidden;
}
.patient-idcard {
background: rgba(255, 255, 255, 0.14);
padding: 4rpx 8rpx;
color: #fff;
font-size: 20rpx;
}
.keep {
width: 142rpx;
height: 48rpx;
background: #ffffff;
border-radius: 24rpx;
border: 2rpx solid #004ac2;
color: #004ac2;
font-weight: 500;
}
}
}
.info-card {
position: relative;
top: -98rpx;
padding: 0 24rpx;
.patient-card {
.menu-card {
width: 100%;
height: 194rpx;
background: #fff;
border-radius: 8rpx;
.menu-icon {
width: 88rpx;
height: 88rpx;
image {
width: 100%;
height: 100%;
}
}
}
}
.card-list {
margin-top: 20rpx;
padding: 0 24rpx;
background: #fff;
border-radius: 8rpx;
.card-list-item {
height: 96rpx;
border-bottom: 2rpx solid #f5f6f7;
}
}
}
</style>
<template>
<view class="">
<u-navbar :title="title" :placeholder="true"></u-navbar>
<view class="cont">
<view class="card">
<report-head-title :title="'就诊人信息'" :icon="iconList[0]"></report-head-title>
<view class="patient-info">
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">姓名:</view>
<view class="value-color ft28 lht28">李小明</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">性别:</view>
<view class="value-color ft28 lht28"></view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">年龄:</view>
<view class="value-color ft28 lht28">20岁</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">卡号:</view>
<view class="value-color ft28 lht28">DF1234</view>
</view>
</view>
</view>
<!-- 检验信息 -->
<view class="card mt16">
<report-head-title :title="'检验信息'" :icon="iconList[1]"></report-head-title>
<view class="patient-info">
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">医院名称:</view>
<view class="value-color ft28 lht28">厦门弘爱医院</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">申请科室:</view>
<view class="value-color ft28 lht28">妇科门诊</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">检查日期:</view>
<view class="value-color ft28 lht28">2021-08-11岁</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">检查类型:</view>
<view class="value-color ft28 lht28">分子</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">检验医生:</view>
<view class="value-color ft28 lht28">李白</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">审核医生:</view>
<view class="value-color ft28 lht28">李白</view>
</view>
<view class="flex items-center pb28">
<view class="label-color ft28 lht28 pr24">审核时间:</view>
<view class="value-color ft28 lht28">2021-08-11</view>
</view>
</view>
</view>
<!-- 检查所见 -->
<view class="card mt16">
<report-head-title :title="'检查所见'" :icon="iconList[1]"></report-head-title>
<view class="patient-info ft28 color333 lht40">
糖尿病时长期存在的高血糖,导致各种组织,特别是眼、的肾、心脏、血管、神经的慢性损害、功能障碍
</view>
</view>
<!-- 检查结论 -->
<view class="card mt16">
<report-head-title :title="'检查结论'" :icon="iconList[1]"></report-head-title>
<view class="patient-info ft28 color333 lht40">
糖尿病时长期存在的高血糖,导致各种组织,特别是眼、的肾、心脏、血管、神经的慢性损害、功能障碍
</view>
</view>
</view>
</view>
</template>
<script>
import reportHeadTitle from '@/pages/patient/components/report-head-title.vue';
export default {
components: {
reportHeadTitle
},
data() {
return {
title: '李小霞的彩超报告',
iconList: ['/static/image/icon2.png', '/static/image/icon3.png', '/static/image/icon4.png'],
};
},
methods: {}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.cont {
padding: 20rpx 26rpx;
.patient-info {
background: #fff;
padding: 26rpx 28rpx 40rpx 28rpx;
border-radius: 0 0 8rpx 8rpx;
}
.patient-cont{
}
}
.label-color {
color: #656975;
}
.value-color {
color: #333333;
}
</style>
<template>
<view class="">
<u-navbar title="报告查询" :placeholder="true"></u-navbar>
<view class="head-patient flex items-center">
<view class="head-patient-img"></view>
<view class="patient-name color333 ft32 font500 pl20 pr12">李小明</view>
<text class="patient-tag">女|20岁</text>
</view>
<view class="head-tbs flex items-center mb16">
<text class="tabs-item ft30 ft26 color666 mr20 " :class="active == 1 ? 'active' : ''" @click="handleTbs(1)">检查报告</text>
<text class="tabs-item ft30 ft26 color666 mr20 " :class="active == 2 ? 'active' : ''" @click="handleTbs(2)">体验报告</text>
<text class="tabs-item ft30 ft26 color666 mr20" :class="active == 3 ? 'active' : ''" @click="handleTbs(3)">体检报告</text>
</view>
<template>
<report-item></report-item>
</template>
</view>
</template>
<script>
import reportItem from '@/pages/patient/components/report-item.vue';
export default {
components:{
reportItem
},
data() {
return {
active: 1
};
},
methods: {
handleTbs(val) {
this.active = val;
}
}
};
</script>
<style>
page{
background: #F5F6F7;
}
</style>
<style lang="scss" scoped>
.head-patient {
background-color: #fff;
height: 90rpx;
padding: 0 30rpx;
border-bottom: 2rpx solid #f5f6f7;
.head-patient-img {
width: 60rpx;
height: 60rpx;
background: #eee;
border-radius: 50%;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.patient-tag {
background-color: #eff4fb;
padding: 4rpx 8rpx;
background: #eff4fb;
border-radius: 2rpx;
color: #1c62d5;
font-size: 20rpx;
}
}
.head-tbs {
padding: 0 30rpx;
background: #fff;
height: 88rpx;
border-top: 2rpx solid #f5f6f7;
.tabs-item {
padding: 6rpx 16rpx;
border-radius: 26rpx;
}
.active {
background-color: #eff4fb;
color: #004ac2;
}
}
</style>
<template>
<view class="">
<!-- 头部内容 -->
<view class="custom_head" :style="{ height: navHeight + 'px' }">
<view class="flex items-center" :style="{ 'padding-top': navTop + 'px' }">
<view class="head-logo"></view>
<view class="">
<view class="head-title pl20 ft34 colorfff pr28">建发健康平台</view>
<view class="head-title pl20 ft34 colorfff pr28">建发健康平台</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default{
data(){
return{
navHeight: this.navHeight, //导航栏高度
navTop: this.navTop, //胶囊距离顶部的高度
}
}
}
</script>
<style lang="scss" scoped>
.custom_head {
padding: 0 30rpx;
width: 750rpx;
background: #004bb9;
color: #fff;
position: fixed;
top: 0;
z-index: 999;
.head-logo {
width: 62rpx;
height: 62rpx;
background: #fff;
border-radius: 50%;
overflow: hidden;
}
}
</style>
<template>
</template>
<script>
</script>
<style>
</style>
\ No newline at end of file
<template>
<view class="">
<view class="custom_head" :style="{ height: navHeight + 'px' }">
<view class="flex items-center" :style="{ 'padding-top': navTop + 'px' }">
<view class="head-tabs pl8 flex">
<view class="head-tabs-item color666 ft30 font500" :class="activeSte == 1 ? 'active-color' : ''" @click.stop="handleTbs(1)">
网络
<view class="btm-slide" v-if="activeSte == 1"></view>
</view>
<view class="head-tabs-item color666 ft30 font500" style="margin-left: 54rpx;" :class="activeSte == 2 ? 'active-color' : ''" @click.stop="handleTbs(2)">
关注
<view class="btm-slide" v-if="activeSte == 2"></view>
</view>
</view>
</view>
</view>
<!-- 日期 -->
<view class="head-time flex items-center" :style="{ 'margin-top': navHeight + 'px' }" v-if="activeSte == 1">
<view class="head-time-btn ft26 flex content-center items-center" @click="showTime = true">
<view class="">2022-04-16</view>
<view class="pl10 pr10">-</view>
<view class="">2022-04-16</view>
<image class="ml10" style="width: 16rpx;height: 16rpx;" src="/static/image/tabbar/arrow-down.png" mode=""></image>
</view>
</view>
<!-- 患者列表 -->
<view class="" v-if="activeSte == 1">
<patient-item></patient-item>
</view>
<view class="" :style="{ 'margin-top': navHeight + 'px' }">
<view class="head pt20 pb20"><view id="add-btn" class="add-btn ml24 flex items-center content-center ">分组管理</view></view>
<view class="" id="slide-cont" v-if="activeSte == 2"><my-attention :top="navHeight"></my-attention></view>
</view>
<!-- 日期 -->
<u-calendar :show="showTime" :closeOnClickOverlay="true" :mode="mode" @close="closeTime" @confirm="confirm"></u-calendar>
</view>
</template>
<script>
import patientItem from '@/pages/components/patient-Item.vue'; //我的患者
import myAttention from '@/pages/components/myAttention.vue'; //我的关注
export default {
components: {
patientItem,
myAttention
},
data() {
return {
activeSte: 2,
navHeight: this.navHeight, //导航栏高度
navTop: this.navTop, //胶囊距离顶部的高度
showTime: false,
mode: 'range',
top: 0
};
},
onLoad() {
if (this.activeSte == 2) {
this.$nextTick(() => {
wx.createSelectorQuery()
.select('#slide-cont')
.boundingClientRect(res => {
this.top = res.top;
})
.exec();
});
}
},
methods: {
handleTbs(val) {
this.activeSte = val;
},
// 选中的日期范围
confirm(val) {
console.log(val);
this.closeTime();
},
// 关闭日期
closeTime() {
this.showTime = false;
}
}
};
</script>
<style>
page {
background-color: #f5f6f7;
}
</style>
<style lang="scss" scoped>
.add-btn {
width: 702rpx;
height: 84rpx;
background: linear-gradient(135deg, #0b57d2 0%, #77a5ff 100%);
border-radius: 8rpx;
color: #ffffff;
font-size: 32rpx;
}
.custom_head {
padding: 0 30rpx;
width: 750rpx;
background: #fff;
color: #fff;
position: fixed;
top: 0;
z-index: 999;
.head-tabs {
height: 100%;
background: #fff;
.head-tabs-item {
position: relative;
.btm-slide {
position: absolute;
bottom: -24rpx;
left: 50%;
transform: translateX(-50%);
width: 40rpx;
height: 6rpx;
background: linear-gradient(270deg, #77abff 0%, #035ceb 100%);
border-radius: 4rpx;
}
}
}
}
.head-time {
padding: 0 24rpx;
width: 100%;
height: 90rpx;
background: #fff;
.head-time-btn {
width: 400rpx;
height: 44rpx;
background: #eff4fb;
border-radius: 28rpx;
color: #004ac2;
}
}
.active-color {
color: #000000;
}
.tags {
background: linear-gradient(135deg, #05ddbd 0%, #32dfc2 100%);
padding: 2rpx 6rpx;
border-radius: 4rpx;
font-size: 20rpx;
color: #ffffff;
}
.btm-border {
padding: 30rpx 0;
border-bottom: 2rpx solid #f5f6f7 !important;
}
.img {
width: 32rpx;
height: 32rpx;
}
.check-tags {
border: 2rpx solid #004ac2 !important;
background: #ffffff !important;
color: #004ac2;
}
.img-list {
.img-item {
width: 120rpx;
height: 120rpx;
border-radius: 4rpx;
background: #eee;
}
}
.slide-left-active {
background: #ffffff !important;
color: #004ac2 !important;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment