Commit 67c6180f authored by songrui's avatar songrui

健康指导宣教、nim测试

parent fb6fde85
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
"name": "frontend-h5", "name": "frontend-h5",
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"@yxim/nim-web-sdk": "^9.18.1",
"axios": "^1.7.2", "axios": "^1.7.2",
"core-js": "^3.8.3", "core-js": "^3.8.3",
"dayjs": "^1.11.11", "dayjs": "^1.11.11",
...@@ -3261,6 +3262,11 @@ ...@@ -3261,6 +3262,11 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true "dev": true
}, },
"node_modules/@yxim/nim-web-sdk": {
"version": "9.18.1",
"resolved": "https://registry.npmmirror.com/@yxim/nim-web-sdk/-/nim-web-sdk-9.18.1.tgz",
"integrity": "sha512-vvAOX0pfmqDN2iEayVANuYpTEClBGhY/kqUdV+/PmG6NlYun9kZ0udQZDpEvSfgk7v25ppRIUvIzMyOGmonP0g=="
},
"node_modules/accepts": { "node_modules/accepts": {
"version": "1.3.8", "version": "1.3.8",
"resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
...@@ -16007,6 +16013,11 @@ ...@@ -16007,6 +16013,11 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true "dev": true
}, },
"@yxim/nim-web-sdk": {
"version": "9.18.1",
"resolved": "https://registry.npmmirror.com/@yxim/nim-web-sdk/-/nim-web-sdk-9.18.1.tgz",
"integrity": "sha512-vvAOX0pfmqDN2iEayVANuYpTEClBGhY/kqUdV+/PmG6NlYun9kZ0udQZDpEvSfgk7v25ppRIUvIzMyOGmonP0g=="
},
"accepts": { "accepts": {
"version": "1.3.8", "version": "1.3.8",
"resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
"build": "vue-cli-service build --report" "build": "vue-cli-service build --report"
}, },
"dependencies": { "dependencies": {
"@yxim/nim-web-sdk": "^9.18.1",
"axios": "^1.7.2", "axios": "^1.7.2",
"core-js": "^3.8.3", "core-js": "^3.8.3",
"dayjs": "^1.11.11", "dayjs": "^1.11.11",
......
...@@ -107,3 +107,13 @@ body { ...@@ -107,3 +107,13 @@ body {
margin-left: var(--van-padding-sm); margin-left: var(--van-padding-sm);
} }
} }
// 顶部导航栏
.doc-nav-bar {
position: relative;
border-bottom: 1px solid #3C3C435C;
.back-bt {
position: absolute;
left: .16rem;
}
}
\ No newline at end of file
<template>
<div class="test">
nim-test
<input v-model="info"/>
<button @click="onPost">发送</button>
</div>
</template>
<script>
import SDK from '@yxim/nim-web-sdk'
export default {
data() {
return {
nim: null
}
},
computed: {
accountId() {
return this.$route.query.accountId
}
},
async created() {
// const nim = NIM.getInstance({
// appkey: "6c51376a55f54b2fa586d7b4c85757f8",
// debugLevel: "debug",
// apiVersion: "v2"
// })
// if (!this.accountId) {
// console.log('缺少账号信息')
// return
// }
// try {
// const token = '123456'
// await nim.V2NIMLoginService.login(this.accountId, token, {
// "forceMode": false
// })
// console.log('登录成功')
// this.nim = nim
// nim.V2NIMMessageService.on("onReceiveMessages", function (messages) {
// console.log('监听消息==============================>')
// console.log(messages)
// })
// } catch (err) {
// // TODO failed, check code
// console.log(err)
// }
this.nim = SDK.NIM.getInstance({
debug: true,
appKey: '6c51376a55f54b2fa586d7b4c85757f8',
account: this.accountId,
token: '123456',
onmsg: function (msg) {
console.log('收到新消息', msg);
}
});
},
methods: {
async onPost() {
// try {
// // 创建一条文本消息
// const message = this.nim.V2NIMMessageCreator.createTextMessage("hello world")
// console.log('message==============================>')
// console.log(message)
// // 发送消息
// const res = await this.nim.V2NIMMessageService.sendMessage(message, '18487350810|1|18987175004')
// } catch (err) {
// // todo error
// console.log('onPost', err)
// }
let msg = this.nim.sendText({
scene: 'p2p',
to: '18987175004',
text: 'hello',
done: function sendMsgDone (error, msg) {
console.log('sendText', error, msg)
}
});
}
}
}
</script>
<style lang="less" scoped>
</style>
<template>
<div class="flex flex-col guide-list" style="height: 100vh">
<div class="p-3 text-16 text-black text-center shrink-0 doc-nav-bar">
<span>健康指导</span>
</div>
<van-tabs v-model:active='activeTab' class='shrink-0' v-if='tabList.length'
@change='tabChange'
shrink>
<van-tab v-for='item in tabList' :key='item.name'
:title='item.title' :name='item.name'></van-tab>
</van-tabs>
<div class='grow overflow-y-auto card-list' ref='list'>
<van-pull-refresh v-model='loadingRefresh' @refresh='onRefresh'
:disabled='isRefreshDisable'>
<van-list
v-model:loading='loading'
:finished='finished'
:finished-text="list.length ? '没有更多了' : ''"
:immediate-check='false'
@load='onMore'
>
<div v-for='item in list' :key='item.id' class='p-4 mt-3 card' @click.stop='toDetail(item)'>
<div class='flex items-center'>
<div class='detail-left'>日期</div>
<div class='detail-right'></div>
</div>
<div class='flex items-center'>
<div class='detail-left'>指导单位</div>
<div class='detail-right'></div>
</div>
<div class='flex items-center'>
<div class='detail-left'>指导科室</div>
<div class='detail-right'></div>
</div>
<span class='px-3 float-bt'>健康指导</span>
<span class='px-3 float-bt'>健康宣教</span>
</div>
</van-list>
<div class='text-center shrink-0 empty' v-if='!list.length'>
<img src='@/assets/image/doctor/empty.png' alt='' style='width: 1.2rem;'>
<p>暂无数据</p>
</div>
</van-pull-refresh>
</div>
</div>
</template>
<script>
export default {
data() {
return {
activeTab: undefined,
list: [],
pagination: {
total: 0,
pageIndex: 1,
pageSize: 4
},
loading: false,
finished: false,
loadingRefresh: false,
isRefreshDisable: false
}
},
computed: {
tabList() {
const list = [
{ title: '全部', name: '' },
{ title: '健康指导', name: '' },
{ title: '健康宣教', name: '' },
]
return list
}
},
methods: {
load() {
},
onMore() {
this.pagination.pageIndex++
this.load()
},
onRefresh() {
this.list = []
this.pagination.pageIndex = 1
this.load(false)
},
tabChange() {
this.list = []
this.pagination.pageIndex = 1
this.load()
},
toDetail(record) {
}
}
}
</script>
<style lang="less" scoped>
.card-list {
padding-bottom: 76px;
}
.card {
position: relative;
background-color: #fff;
.detail-left {
width: 8em;
color: #8C8C8C;
flex-shrink: 0;
}
.float-bt {
position: absolute;
top: 10px;
right: 0;
background-color: var(--van-primary-color);
color: #fff;
border-top-left-radius: 40px;
border-bottom-left-radius: 40px;
height: 26px;
line-height: 26px;
}
}
</style>
...@@ -95,23 +95,33 @@ const routes = [ ...@@ -95,23 +95,33 @@ const routes = [
children: [ children: [
{ {
path: 'screening/list', path: 'screening/list',
name: 'residentWX-list', name: 'residentWX-screening-list',
component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/screening/List.vue') component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/screening/List.vue')
}, },
{ {
path: 'screening/firstDetail/:id', path: 'screening/firstDetail/:id',
name: 'resident-screening-first-detail-id', name: 'resident-screening-firstDetail',
component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/screening/FirstDetail.vue') component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/screening/FirstDetail.vue')
}, },
{ {
path: 'screening/secondDetail/:id', path: 'screening/secondDetail/:id',
name: 'resident-screening-first-detail-id', name: 'resident-screening-secondDetail',
component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/screening/SecondDetail.vue') component: () => import(/* webpackChunkName: "residentWX-screening" */ '@/residentWX/screening/SecondDetail.vue')
} },
// 健康指导宣教
{
path: 'guide/list',
name: 'residentWX-guide-list',
component: () => import(/* webpackChunkName: "residentWX-guide" */ '@/residentWX/guide/List.vue')
},
] ]
}, },
{
path: '/nim',
name: 'nim',
component: () => import(/* webpackChunkName: "nim" */ '@/nim/Test.vue'),
}
] ]
const router = createRouter({ const router = createRouter({
......
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 to comment