wangxiaohua 2 years ago
parent
commit
e0d59916b7
36 changed files with 7912 additions and 14 deletions
  1. +100
    -4
      App.vue
  2. +26
    -1
      config.js
  3. +58
    -8
      pages.json
  4. +344
    -0
      pages/index/learning.vue
  5. +1
    -0
      pages/index/personal.vue
  6. +1593
    -0
      pages/learning/Equinoctial/index.vue
  7. +1567
    -0
      pages/learning/Equinoctial/index2.vue
  8. +222
    -0
      pages/learning/Equinoctiallearning.vue
  9. +140
    -0
      pages/learning/Keywordsearch.vue
  10. +99
    -0
      pages/learning/ScoringPlaylist.vue
  11. +1630
    -0
      pages/learning/Thefulltext/index.vue
  12. +1549
    -0
      pages/learning/Thefulltext/index2.vue
  13. +137
    -0
      pages/learning/Thefulltext/search.vue
  14. +1
    -0
      pages/login/index.vue
  15. +1
    -0
      pages/login/yinzhongmalogin.vue
  16. +444
    -1
      pages/mine/equipment/index.vue
  17. BIN
      static/images/biaoqianya.png
  18. BIN
      static/images/newimg/dianliang.png
  19. BIN
      static/images/newimg/dianliang456.png
  20. BIN
      static/images/newimg/search.png
  21. BIN
      static/images/newimg/xinhao0.png
  22. BIN
      static/images/newimg/xinhao1.png
  23. BIN
      static/images/newimg/xinhao2.png
  24. BIN
      static/images/newimg/xinhao3.png
  25. BIN
      static/images/newimg/xinhao4.png
  26. BIN
      static/images/newimg/xinhao5.png
  27. BIN
      static/images/recordingManagement/add.png
  28. BIN
      static/images/recordingManagement/calendar.png
  29. BIN
      static/images/recordingManagement/download.png
  30. BIN
      static/images/recordingManagement/edit.png
  31. BIN
      static/images/recordingManagement/like.png
  32. BIN
      static/images/recordingManagement/likeActive.png
  33. BIN
      static/images/recordingManagement/like_gray.png
  34. BIN
      static/images/recordingManagement/play.png
  35. BIN
      static/images/recordingManagement/voice.png
  36. BIN
      static/images/testimg.png

+ 100
- 4
App.vue View File

@@ -6,14 +6,110 @@
//app.js
var config = require("./config");
export default {
onLaunch: function(options) {},

onLaunch: function(options) {
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function(res) {
if (res.hasUpdate) {
updateManager.onUpdateReady(function() {
uni.showModal({
title: '更新提示',
cancelColor: "#999999",
content: '新版本已经准备好,是否重启应用?',
success: function(res) {
if (res.confirm) {
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function() {
uni.showModal({
title: '已经有新版本了哟~',
cancelColor: "#999999",
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
})
})
}
})
} else {
uni.showModal({
title: '提示',
cancelColor: "#999999",
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
}
const token = uni.getStorageSync("weapp_session_login_data")
if (typeof token.token != "string") {
return
}
this.$u.get("/user/getUser").then(data => {
uni.setStorageSync("weapp_session_userInfo_data", data)
})
wx.setInnerAudioOption({
obeyMuteSwitch: false
});
},
onShow(options) {
const token = uni.getStorageSync("weapp_session_login_data")
if (typeof token.token != "string") {
console.log("没有")
return
}else{
this.infoscoket()
}
},
onHide() {},
methods: {
infoscoket(){
let pushon=uni.getStorageSync('weapp_session_userInfo_data').loginName
uni.connectSocket({
url: 'wss://hfju.com/ws?uid='+pushon+'_applets',
header: {
"content-type": "application/json",
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
}
});
uni.onSocketOpen(function (res) {
console.log('WebSocket连接已打开!');
});
uni.onSocketError(function (res) {
console.log('WebSocket连接打开失败,请检查!');
});
uni.onSocketMessage(function (res) {
console.log('收到服务器内容:' + res.data);
let cedata=JSON.stringify(res);
let data=JSON.parse(cedata);
let zdata=JSON.parse(data.data)
if(zdata.to=="recCmd"){
uni.$emit('update',{msg:'页面更新'})
return
}
uni.showModal({
title: '提示',
content: zdata.to+'的设备电量过低请检查!',
cancelText: "取消", // 取消按钮的文字
confirmText: "查看", // 确认按钮文字
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
uni.navigateTo({
url: `/pages/main/toviewtherecording/index?jump=`+"jump"
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
});
},
Closewebsocke(){
uni.closeSocket();
uni.onSocketClose(function (res) {
console.log('WebSocket 已关闭!');
});
},
}
};
</script>


+ 26
- 1
config.js View File

@@ -34,7 +34,32 @@ var config = {
upload: `${host}/user/update`,
// 上传头像
uploadHeadImg:`${host}/user/uploadHeadPortrait`,
//分点学习标签
findSelectedLabel:`${host}/addtodigest/findSelectedLabel`,
//获取全部学习
findAllZATD:`${host}/addtodigest/findAllZATD`,
//查询点赞列表
likegetLike:`${host}/like/getLike`,
// 获取评论
cmmentList:`${host}/comment/list`,
// 新增评论
saveCmment:`${host}/comment/saveCmment`,
// 新增文件评论
saveCmmentUpload:`${host}/comment/upload`,
// 点赞
saveLike:`${host}/like/saveLike`,
// 取消点赞
cancelLike:`${host}/like/cancelLike`,
//同音转译接口3
getCorpusAnal: `${host}/corpus/splicAudioPlay`,
//转写内容获取快进时间是第几个文件
fastForward:`${host}/corpus/fastForward`,
//标记顾问
markConsultant:`${host}/corpus/markConsultant`,
//同音转译接口
getSpeechAnalysis: `${host}/cms/mobile/getBytargetId`,
//同音转译接口2
getCorpusAnalysis: `${host}/corpus/audioPlay`,
}
};
module.exports = config;

+ 58
- 8
pages.json View File

@@ -159,20 +159,70 @@
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
}
}
]
},
{
"root": "pages/learning",//学习
"name": "learning",
"pages": [
{
"path": "Thefulltext/index",
"style": {
"navigationBarTitleText": "全文学习",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Thefulltext/index2",
"style": {
"navigationBarTitleText": "全文学习",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Thefulltext/search",
"style": {
"navigationBarTitleText": "搜索",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Keywordsearch",
"style": {
"navigationBarTitleText": "搜索",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Equinoctiallearning",
"style": {
"navigationBarTitleText": "分点学习",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Equinoctial/index",
"style": {
"navigationBarTitleText": "分点学习",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Equinoctial/index2",
"style": {
"navigationBarTitleText": "分点学习",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
}
]
},


+ 344
- 0
pages/index/learning.vue View File

@@ -1,4 +1,347 @@
<template>
<view class="main">
<view class="tab-box">
<view class="tab-item-wrap">
<view v-for="(item, index) in tablist" :key="index"
:class="activeClass == index ? 'bottom' : ''" @tap="clocktab(index, item.id)">
{{ item.name }}
<view class="bottomLine" v-if="activeClass == index"></view>
</view>
</view>
</view>
<view class="cented" v-if="activeClass==0">
<view class="ceninfo" v-for="(item,index) in alllist" :key="index">
<view class="infoview">
<view class="infozuo">
<view class="infozuochiud1">{{item.jbaName}}</view>
<view class="infozuochiud2">置业顾问</view>
</view>
<view class="infoyou">
<view class="infoyouchiud2" @click="quclick(item)">去学习</view>
</view>
</view>
<view class="footerinfo">
<view class="footerinfozuo">{{item.assignedTime}}</view>
<view class="footerinfoyou"></view>
</view>
</view>
</view>
<view class="biaoqianview" v-if="activeClass==1">
<view class="boxintention">
<view class="title">分点标签列表</view>
<view class="boxcenten" v-for="(item,index) in equinoctial" :key="index" @click="routerclick(item)">
<view class="boxcenteninfotext">{{item.name}}</view>
<view class="boxcenteninfoimg"><u-icon size="20px" name="arrow-right"></u-icon></view>
</view>
</view>
</view>
</view>
</template>

<script>
var config = require("../../config");
var util = require("@/utils/util.js");
export default {
data() {
return {
tablist:[
{name:"全文"},
{name:"分点"}
],
activeClass:0,
equinoctial:[],
alllist:[],
buildingID:''
};
},
onShow(){
var i=uni.getStorageSync('fendianindex')
this.buildingID=uni.getStorageSync('buildingID').id;
this.clocktab(i)
},
methods: {
//全部学习跳转
quclick(item){
const parames = {
pageNum: 1,
pageSize: 100,
query: {
customerId: item.carId,
}
}
var cet={
bg:0,
customerId:item.id,
id:''
}
this.$u.post("/corpus/findByPage", parames).then(res => {
var newobj = res[0];
if(res[0].recordDuration>360){
uni.navigateTo({
url: `/pages/learning/Thefulltext/index2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(cet)}&stateisshow=${"2"}`
})
}else{
uni.navigateTo({
url: `/pages/learning/Thefulltext/index?customerId=${newobj.customerId}`
})
}
})
},
//分点学习跳转
routerclick(item){
uni.navigateTo({
url: "/pages/learning/Equinoctiallearning?id="+item.marketingId+"&biaoqian="+item.name
})
},
// tab切换
clocktab(index) {
this.activeClass = index;
if(this.activeClass==0){
uni.setStorageSync("fendianindex", 0); //写入缓存
this.ceninit()
}else{
uni.setStorageSync("fendianindex", 1); //写入缓存
this.infoinit()
}
},
ceninit(){
let infoobj={
"pageNum":1,
"pageSize":100,
"query":{
"status":0,
'itemId':this.buildingID,
}
}
uni.request({
url: config.service.findAllZATD,
method:"POST",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
data:infoobj,
success: (data) => {
if(data.data.code==10000){
this.alllist=data.data.data.results
}else{
uni.showToast({
title: data.data.message,
duration: 2000
});
}
}
})
},
infoinit(){
let obj={
itemId:this.buildingID
}
uni.request({
url: config.service.findSelectedLabel,
method:"POST",
data:obj,
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
if(data.data.code==10000){
this.equinoctial=data.data.data
}else{
uni.showToast({
title: data.data.message,
duration: 2000
});
}
}
})
}
},
}
</script>

<style lang="scss" scoped>
.main {
background: #F1F1F1;;
min-height: 100vh;
}
.tab-box {
height: auto;
overflow: auto;
width: 100%;
.tab-item-wrap {
height: 100rpx;
width: 80%;
margin: 0 auto;
line-height: 100rpx;
display: flex;
justify-content: space-around;
font-size: 36rpx;
color: #959dad;
}
}
.bottom {
color: #008EF2;
position: relative;
}
.bottomLine {
position: absolute;
width: 96rpx;
height: 6rpx;
top: 80rpx;
background-color: #298dff;
border-radius: 8rpx 8rpx 0rpx 0rpx;
left: -13rpx;
}
.cented{
width: 100%;
padding-top: 14rpx;
.ceninfo{
width: 690rpx;
height: 160rpx;
background: #FFFFFF;
border-radius: 8rpx;
margin: 0 auto;
margin-top: 20rpx;
padding-top: 23rpx;
position: relative;
.infoview{
width: 100%;
height: 64rpx;
display: flex;
.infozuo{
width: 454rpx;
height: 100%;
display: flex;
align-items: center;
.infozuochiud1{
font-size: 36rpx;
font-weight: 600;
color: #0C0C0C;
text-indent: 28rpx;
}
.infozuochiud2{
width: 113rpx;
height: 42rpx;
border-radius: 5rpx;
margin-left: 19rpx;
border: 1px solid #008EF2;
font-size: 24rpx;
font-weight: 400;
color: #008EF2;
line-height: 42rpx;
text-align: center;
}
}
.infoyou{
width:236rpx;
height: 100%;
display: flex;
align-items: center;
.infoyouchiud1{
display: block;
width: 64rpx;
height: 64rpx;
border-radius: 50%;
}
.infoyouchiud2{
width: 133rpx;
height: 56rpx;
background: #008EF2;
border-radius: 8rpx;
text-align: center;
color: #FFFFFF;
font-size: 30rpx;
line-height: 56rpx;
margin-left: 80rpx;
}
}
}
.footerinfo{
width: 100%;
height: 42rpx;
display: flex;
margin-top: 14rpx;
.footerinfozuo{
width: 454rpx;
font-size: 30rpx;
color: #0C0C0C;
line-height: 42rpx;
margin-left: 26rpx;
}
.footerinfoyou{
width: 236rpx;
font-size: 24rpx;
color: #999999;
line-height: 42rpx;
text-indent: 42rpx;
}
}
.dingwei{
width: 100%;
height: 60rpx;
border: 1px solid red;
position: absolute;
top: 160rpx;
left: 0rpx;
}
}
}
.biaoqianview{
width: 100%;
.boxintention {
width: 690rpx;
margin: 0 auto;
.title {
font-size: 36upx;
color: #333333;
position: relative;
display: flex;
align-items: center;
padding-left: 19upx;
&:before {
content: '';
position: absolute;
left: 0;
height: 30upx;
width: 9upx;
background: #008ef2;
border-radius: 5rpx;
}
}
.boxcenten{
width: 100%;
height: 100rpx;
background: #FFFFFF;
border-radius: 8rpx;
margin-top: 22rpx;
display: flex;
.boxcenteninfotext{
width: 90%;
height: 100%;
text-indent: 20rpx;
line-height: 100rpx;
font-size: 30rpx;
color: #0C0C0C;
}
.boxcenteninfoimg{
width: 10%;
height: 100%;
line-height: 100rpx;
}
}
}
}
</style>



<!-- <template>
<view class="cented-box">
<view class="search-box">
<view class="search">
@@ -209,3 +552,4 @@
}
}
</style>
-->

+ 1
- 0
pages/index/personal.vue View File

@@ -97,6 +97,7 @@
showCancel: true,
success(res) {
if (res.confirm) {
app.Closewebsocke()
uni.clearStorageSync(); //清除缓存
uni.showToast({
icon: "none",


+ 1593
- 0
pages/learning/Equinoctial/index.vue
File diff suppressed because it is too large
View File


+ 1567
- 0
pages/learning/Equinoctial/index2.vue
File diff suppressed because it is too large
View File


+ 222
- 0
pages/learning/Equinoctiallearning.vue View File

@@ -0,0 +1,222 @@
<template>
<view class="main">
<view class="cented">
<view class="ceninfo" v-for="(item,index) in alllist" :key="index">
<view class="infoview">
<view class="infozuo">
<view class="infozuochiud1">{{item.jbaName}}</view>
<view class="infozuochiud2">置业顾问</view>
</view>
<view class="infoyou">
<view class="infoyouchiud2" @click="quclick(item)">去学习</view>
</view>
</view>
<view class="footerinfo">
<view class="footerinfozuo">{{item.assignedTime}}</view>
<view class="footerinfoyou"></view>
</view>
</view>
</view>

</view>
</template>


<script>
var config = require("../../config");
var util = require("../../utils/util.js");
export default {
data() {
return {
alllist: [],
id: "",
biaoqian:""
};
},
onLoad(options) {
this.id = options.id;
this.biaoqian=options.biaoqian
this.ceninit()
},
methods: {
quclick(item) {
const parames = {
pageNum: 1,
pageSize: 100,
query: {
whetherFinish: 1,
customerId: item.carId,
id:item.startFile
}
}
var cet={
bg:0,
customerId:item.id,
id:''
}
this.$u.post("/corpus/fendianFindByPage", parames).then(res => {
var newobj = res[0];
if(res[0].recordDuration>360){
uni.navigateTo({
url: `/pages/learning/Equinoctial/index2?customerId=${newobj.customerId}&biaoqian=${this.biaoqian}&startTime=${item.startTime}&startFile=${item.startFile}`
})
}else{
uni.navigateTo({
url: `/pages/learning/Equinoctial/index?customerId=${newobj.customerId}&biaoqian=${this.biaoqian}&startTime=${item.startTime}&startFile=${item.startFile}`
})
}
})
},
ceninit() {
let itemid=uni.getStorageSync('buildingID').id;
let infoobj = {
"pageNum": 1,
"pageSize": 100,
"query": {
"status": 1,
"marketingId": this.id,
"itemId":itemid
}
}
uni.request({
url: config.service.findAllZATD,
method: "POST",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
data: infoobj,
success: (data) => {
console.log(data.data.data.results, "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");
if (data.data.code == 10000) {
this.alllist = data.data.data.results
} else {
uni.showToast({
title: data.data.message,
duration: 2000
});
}
}
})
},



},
}
</script>

<style lang="scss" scoped>
.main {
background: #F1F1F1;
;
min-height: 100vh;
padding-top: 30rpx;
}

.cented {
width: 100%;
padding-top: 14rpx;

.ceninfo {
width: 690rpx;
height: 160rpx;
background: #FFFFFF;
border-radius: 8rpx;
margin: 0 auto;
padding-top: 23rpx;
position: relative;
margin-top: 20rpx;
.infoview {
width: 100%;
height: 64rpx;
display: flex;

.infozuo {
width: 454rpx;
height: 100%;
display: flex;
align-items: center;

.infozuochiud1 {
font-size: 36rpx;
font-weight: 600;
color: #0C0C0C;
text-indent: 28rpx;
}

.infozuochiud2 {
width: 113rpx;
height: 42rpx;
border-radius: 5rpx;
margin-left: 19rpx;
border: 1px solid #008EF2;
font-size: 24rpx;
font-weight: 400;
color: #008EF2;
line-height: 42rpx;
text-align: center;
}
}

.infoyou {
width: 236rpx;
height: 100%;
display: flex;
align-items: center;

.infoyouchiud1 {
display: block;
width: 64rpx;
height: 64rpx;
border-radius: 50%;
}

.infoyouchiud2 {
width: 133rpx;
height: 56rpx;
background: #008EF2;
border-radius: 8rpx;
text-align: center;
color: #FFFFFF;
font-size: 30rpx;
line-height: 56rpx;
margin-left: 80rpx;
}
}
}

.footerinfo {
width: 100%;
height: 42rpx;
display: flex;
margin-top: 14rpx;

.footerinfozuo {
width: 454rpx;
font-size: 30rpx;
color: #0C0C0C;
line-height: 42rpx;
margin-left: 26rpx;
}

.footerinfoyou {
width: 236rpx;
font-size: 24rpx;
color: #999999;
line-height: 42rpx;
text-indent: 42rpx;
}
}

.dingwei {
width: 100%;
height: 60rpx;
border: 1px solid red;
position: absolute;
top: 160rpx;
left: 0rpx;
}
}
}
</style>

+ 140
- 0
pages/learning/Keywordsearch.vue View File

@@ -0,0 +1,140 @@
<template>
<view class="translation">
<view style="width: 690rpx;height: 64rpx;margin: 0 auto;margin-top: 30rpx;background: #F2F2F2;border-radius: 32rpx;
display: flex;align-items: center;">
<view style="width: 10%;height: 64rpx;display: flex;align-items: center;">
<image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/customer/search.png" mode=""></image>
</view>
<view style="width: 90%;height: 64rpx;display: flex;align-items: center;">
<input type="text" @input="searchinfo" :disabled="disabled" v-model="keyword" placeholder="请输入关键字"
style="width: 100%;color: #999999;font-size: 24rpx;"/>
</view>
</view>
<view style="width: 690rpx;margin: 0 auto;margin-top: 10rpx;">
<view style="width: 100%;border-bottom: 1px solid #E0E0E0;display: flex;padding-bottom: 10rpx;margin-top: 40rpx;"
v-for="(item,index) in listarr" :key='index' @click="toaidoinfo(item.Content,item.corpusId,item.index)">
<view style="width: 26rpx;height: 36rpx;margin-top: 4rpx;">
<image style="width: 26rpx;height: 28rpx;" src="../../static/images/testimg.png" mode=""></image>
</view>
<view v-html="item.Content.text" style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx;width: 10%;width: 14%;text-align: right;">{{item.Content.time}}</view>
</view>
</view>
</view>
</template>

<script>
var util = require("../../utils/util.js");
var config = require("../../config");
export default {
data() {
return {
customerId:'',
listarr:[],
keyword:'',
skpl:'',
disabled:false
};
},
onLoad: function(options) {
this.customerId = options.customerId;
this.keyword=options.keyword;
this.skpl=options.skpl;
if(this.skpl==2){
this.searchinfo()
this.disabled=true;
}else{
this.disabled=false;
}
},
methods: {
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
let second = num % 60;
if (second < 10) second = '0' + second;
let min = Math.floor(num / 60);
if (min < 10) min = '0' + min;
return min + ":" + second;
},
searchinfo(){
if(this.keyword.length==0){
return
}else{
let parames={
keyword:this.keyword,
customerId:this.customerId
}
this.$u.post("/corpus/keyWordsMatching", parames).then(res => {
res.forEach(item=>{
item.Content=JSON.parse(item.transferContent)
})
res.forEach(cet=>{
cet.Content.time=this.formatTime(cet.Content.bg/1000)
cet.Content.text=this.brightKeyword(cet.Content.onebest)
})
this.listarr=res;
})
}
},
//替换方法
brightKeyword(val) {
if (val.indexOf(this.keyword) !== -1) {
return val.replace(this.keyword, `<font style='color: red'>${this.keyword}</font>`);
} else {
return val;
}
},
//跳转
toaidoinfo(item,id,index){
item.customerId=this.customerId;
item.id=id;
item.index=index;
if(this.skpl==2){
this.infostust(item)
}else{
let pages = getCurrentPages() //获取当前页面栈的信息
let prevPage = pages[pages.length - 2] //获取上一个页面
prevPage.setData({ //把需要回传的值保存到上一个页面
info: item
});
wx.navigateBack({ //然后返回上一个页面
delta: 1
})
}
},
//只有一条的时候
infostust(item){
console.log("zobudao")
let d = JSON.parse(JSON.stringify([item]))
d[0].onebest=""
const parames = {
pageNum: 1,
pageSize: 100,
query: {
customerId: this.customerId,
}
}
this.$u.post("/corpus/findByPage", parames).then(res => {
if(res[0].recordDuration>360){
let newobj = res[0];
uni.navigateTo({
url: `/pages/main/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
})
}else{
let newobj = res[0];
uni.navigateTo({
url: `/pages/main/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
})
}
})
},
},
}
</script>
<style lang="scss" scoped>

</style>

+ 99
- 0
pages/learning/ScoringPlaylist.vue View File

@@ -0,0 +1,99 @@
<template>
<view class="translation">
<view style="width: 690rpx;margin: 0 auto;margin-top: 10rpx;">
<view style="width: 100%;border-bottom: 1px solid #E0E0E0;display: flex;padding-bottom: 10rpx;margin-top: 40rpx;"
v-for="(item,index) in listarr" :key='index' @click="toaidoinfo(item.Content,item.corpusId,item.index)">
<view style="width: 26rpx;height: 36rpx;margin-top: 4rpx;">
<image style="width: 26rpx;height: 28rpx;" src="../../../static/images/testimg.png" mode=""></image>
</view>
<view v-html="item.Content.onebest" style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx;width: 10%;width: 14%;text-align: right;">{{item.Content.time}}</view>
</view>
</view>
</view>
</template>

<script>
var util = require("../../../utils/util.js");
var config = require("../../../config");
export default {
data() {
return {
customerId:'',
listarr:[],
id:'',
};
},
onLoad: function(options) {
this.customerId = options.customerId;
this.id=options.id;
this.searchinfo()
},
methods: {
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
let second = num % 60;
if (second < 10) second = '0' + second;
let min = Math.floor(num / 60);
if (min < 10) min = '0' + min;
return min + ":" + second;
},
//搜索
searchinfo(){
let parames={
marketingId:this.id,
customerId:this.customerId
}
this.$u.post("/corpus/pinWordMatching", parames).then(res => {
res.forEach(item=>{
item.Content=JSON.parse(item.transferContent)
})
res.forEach(cet=>{
cet.Content.time=this.formatTime(cet.Content.bg/1000)
})
this.listarr=res;
})
},
//跳转
toaidoinfo(item,id,index){
item.customerId=this.customerId;
item.id=id;
item.index=index;
this.infostust(item)
},
//只有一条的时候
infostust(item){
console.log("zobudao")
let d = JSON.parse(JSON.stringify([item]))
d[0].onebest=""
const parames = {
pageNum: 1,
pageSize: 100,
query: {
customerId: this.customerId,
}
}
this.$u.post("/corpus/findByPage", parames).then(res => {
if(res[0].recordDuration>360){
let newobj = res[0];
uni.navigateTo({
url: `/pages/main/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
})
}else{
let newobj = res[0];
uni.navigateTo({
url: `/pages/main/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
})
}
})
},
},
}
</script>
<style lang="scss" scoped>

</style>

+ 1630
- 0
pages/learning/Thefulltext/index.vue
File diff suppressed because it is too large
View File


+ 1549
- 0
pages/learning/Thefulltext/index2.vue
File diff suppressed because it is too large
View File


+ 137
- 0
pages/learning/Thefulltext/search.vue View File

@@ -0,0 +1,137 @@
<template>
<view class="translation">
<view style="width: 690rpx;height: 64rpx;margin: 0 auto;margin-top: 30rpx;background: #F2F2F2;border-radius: 32rpx;
display: flex;align-items: center;">
<view style="width: 10%;height: 64rpx;display: flex;align-items: center;">
<image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/search.png" mode=""></image>
</view>
<view style="width: 90%;height: 64rpx;display: flex;align-items: center;">
<input type="text" @input="searchinfo" :disabled="disabled" v-model="keyword" placeholder="请输入关键字"
style="width: 100%;color: #999999;font-size: 24rpx;"/>
</view>
</view>
<view style="width: 690rpx;margin: 0 auto;margin-top: 10rpx;">
<view style="width: 100%;border-bottom: 1px solid #E0E0E0;display: flex;padding-bottom: 10rpx;margin-top: 40rpx;"
v-for="(item,index) in listarr" :key='index' @click="toaidoinfo(item.Content,item.corpusId,item.index)">
<view style="width: 26rpx;height: 36rpx;margin-top: 4rpx;">
<image style="width: 26rpx;height: 28rpx;" src="../../../../static/images/testimg.png" mode=""></image>
</view>
<view v-html="item.Content.text" style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx;width: 10%;width: 14%;text-align: right;">{{item.Content.time}}</view>
</view>
</view>
</view>
</template>

<script>
var util = require("../../../utils/util.js");
var config = require("../../../config");
export default {
data() {
return {
customerId:'',
listarr:[],
keyword:'',
skpl:'',
disabled:false
};
},
onLoad: function(options) {
this.customerId = options.customerId;
this.keyword=options.keyword;
this.skpl=options.skpl;
},
methods: {
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
let second = num % 60;
if (second < 10) second = '0' + second;
let min = Math.floor(num / 60);
if (min < 10) min = '0' + min;
return min + ":" + second;
},
searchinfo(){
if(this.keyword.length==0){
return
}else{
let parames={
keyword:this.keyword,
customerId:this.customerId
}
this.$u.post("/corpus/keyWordsMatching", parames).then(res => {
res.forEach(item=>{
item.Content=JSON.parse(item.transferContent)
})
res.forEach(cet=>{
cet.Content.time=this.formatTime(cet.Content.bg/1000)
cet.Content.text=this.brightKeyword(cet.Content.onebest)
})
this.listarr=res;
})
}
},
//替换方法
brightKeyword(val) {
if (val.indexOf(this.keyword) !== -1) {
return val.replace(this.keyword, `<font style='color: red'>${this.keyword}</font>`);
} else {
return val;
}
},
//跳转
toaidoinfo(item,id,index){
item.customerId=this.customerId;
item.id=id;
item.index=index;
if(this.skpl==2){
this.infostust(item)
}else{
let pages = getCurrentPages() //获取当前页面栈的信息
let prevPage = pages[pages.length - 2] //获取上一个页面
prevPage.setData({ //把需要回传的值保存到上一个页面
info: item
});
wx.navigateBack({ //然后返回上一个页面
delta: 1
})
}
},
//只有一条的时候
infostust(item){
let d = JSON.parse(JSON.stringify([item]))
var itemobjhh={
bg:d[0].bg,
customerId:d[0].customerId,
id:''
}
const parames = {
pageNum: 1,
pageSize: 100,
query: {
customerId: this.customerId,
}
}
this.$u.post("/corpus/findByPage", parames).then(res => {
if(res[0].recordDuration>360){
let newobj = res[0];
uni.navigateTo({
url: `/pages/main/learning/Thefulltext/index2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(itemobjhh)}&stateisshow=${'2'}`
})
}else{
let newobj = res[0];
uni.navigateTo({
url: `/pages/main/learning/Thefulltext/index1?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(itemobjhh)}&stateisshow=${'2'}`
})
}
})
},
},
}
</script>
<style lang="scss" scoped>

</style>

+ 1
- 0
pages/login/index.vue View File

@@ -138,6 +138,7 @@
id: data.zkProperties[0].id,
name: data.zkProperties[0].propertyName
}
uni.setStorageSync("fendianindex", 0); //写入缓存
uni.setStorageSync("weapp_session_userInfo_data", data); //写入缓存
uni.setStorageSync("buildingID", lopan); //楼盘id写入缓存
uni.switchTab({


+ 1
- 0
pages/login/yinzhongmalogin.vue View File

@@ -148,6 +148,7 @@
id: data.zkProperties[0].id,
name: data.zkProperties[0].propertyName
}
uni.setStorageSync("fendianindex", 0); //写入缓存
uni.setStorageSync("weapp_session_userInfo_data", data); //写入缓存
uni.setStorageSync("buildingID", lopan); //楼盘id写入缓存
uni.switchTab({


+ 444
- 1
pages/mine/equipment/index.vue View File

@@ -1,8 +1,451 @@
<template>
<view class="cented">
<view class="infoinputbox">
<input type="text" v-model="imei" placeholder="请输入设备编号或领用人进行搜索" class="infoinput" />
<view class="dingweiinfo" @click="shecs()">
<image class="sehoimg" src="../../../static/images/newimg/search.png" mode=""></image>
</view>
</view>
<view class="tab-box">
<view class="tab-item-wrap">
<view v-for="(item, index) in tablist" :key="index" :class="activeClass == index ? 'bottom' : ''" @tap="clocktab(index)">
{{item.names}}( {{item.num}} )
<view class="bottomLine" v-if="activeClass == index"></view>
</view>
</view>
</view>
<view class="infoet">
<view class="infoviewbox" v-for="(item,index) in newListdata" :key="index">
<view class="infobox1">
<view class="box1-zuo">领用人:{{item.accName}}</view>
<view class="box1-you">
<view class="you1" v-if="item.electricity>20">
<view class="youimg" :style="{ height: item.electricity + '%' }"></view>
</view>
<view class="you11" v-if="item.electricity<20">
<view class="youimg" :style="{ height: item.electricity + '%' }"></view>
</view>
<view class="you2">电量:
<text v-if="item.electricity>20">{{item.electricity}}%</text>
<text v-if="item.electricity<20" style="color: red;">{{item.electricity}}%</text>
</view>
<view class="you3">
<image v-if="item.signalDevice==''" class="youimg" src="../../../static/images/newimg/xinhao0.png" mode=""></image>
<image v-if="item.signalDevice<20 && item.signalDevice>0" class="youimg" src="../../../static/images/newimg/xinhao1.png" mode=""></image>
<image v-if="item.signalDevice<50 && item.signalDevice>20" class="youimg" src="../../../static/images/newimg/xinhao2.png" mode=""></image>
<image v-if="item.signalDevice<70 && item.signalDevice>50" class="youimg" src="../../../static/images/newimg/xinhao3.png" mode=""></image>
<image v-if="item.signalDevice<90 && item.signalDevice>70" class="youimg" src="../../../static/images/newimg/xinhao4.png" mode=""></image>
<image v-if="item.signalDevice<=100 && item.signalDevice>90" class="youimg" src="../../../static/images/newimg/xinhao5.png" mode=""></image>
</view>
<view class="you4" v-if="item.signalDevice=='' ">信号:0</view>
<view class="you4" v-else>信号:{{item.signalDevice}}</view>
</view>
</view>
<view class="infobox2">
<view class="box2-zuo">设备编号</view>
<view class="box2-you">{{item.imei}}</view>
</view>
<view class="infobox2">
<view class="box2-zuo">录音状态</view>
<view class="box2-you" v-if="item.audioStatus=='false'">关闭</view>
<view class="box2-you" v-if="item.audioStatus=='true'">开启</view>
<view class="box2-you" v-if="item.audioStatus=='' ">关闭</view>
</view>
<view class="infobox2">
<view class="box2-zuo">上传状态</view>
<view class="box2-you" v-if="item.audioUploadStatus=='false'">无上传</view>
<view class="box2-you" v-if="item.audioUploadStatus=='true'">上传中</view>
<view class="box2-you" v-if="item.audioUploadStatus=='' ">无上传</view>
</view>
<view class="infobox2">
<view class="box2-zuo">更新时间</view>
<view class="box2-you">{{item.updateTime}}</view>
</view>
<view class="infobox2" v-if="activeClass==1">
<view class="box2-zuo">最后使用时间</view>
<view class="box2-you" style="font-size: 28rpx;color: red;">{{item.updateTime | formatDate}}</view>
</view>
</view>
</view>



</view>
</template>

<script>
var util = require("../../../utils/util.js");
export default {
data() {
return {
tablist: [{
names: "在线数量",
num: "0"
},
{
names: "离线数量",
num: "0"
},
{
names: "低电量设备",
num: "0"
}
],
activeClass: 0,
pageNum:1,
pageSize:5,
imei:"",
orgcode:"",
onLine:1,
newListdata:[],
buildingID:'',
electricity:'',
jump:''
};
},
onReachBottom() {
this.pageNum +=1;
this.init()
},
onLoad(options) {
this.jump=options.jump;
if(this.jump=="jump"){
this.activeClass=2;
this.electricity=20;
}
this.init()
},
filters: {
formatDate: (dateTimeStamp) => {
var newDate = new Date(dateTimeStamp.replace(/-/g, '/')).getTime();
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var halfamonth = day * 15;
var month = day * 30;
var now = new Date().getTime();
var diffValue = now - newDate;
if(diffValue < 0){return;}
var monthC =diffValue/month;
var weekC =diffValue/(7*day);
var dayC =diffValue/day;
var hourC =diffValue/hour;
var minC =diffValue/minute;
var result = '';
if(weekC>=1){
result= "1周前";
}else if(dayC>=1){
result=""+ parseInt(dayC) +"天前";
} else if(hourC>=1){
result=""+ parseInt(hourC) +"小时前";
}
else if(minC>=1){
result=""+ parseInt(minC) +"分钟前";
}else{
result="刚刚";
}
return result;
}
},
methods: {
shecs(){
this.newListdata=[]
this.pageNum=1;
this.pageSize=5;
this.init()
},
// tab
clocktab(index) {
this.newListdata=[]
this.pageNum=1;
this.pageSize=5;
this.activeClass = index;
if(this.activeClass==0){
this.onLine=1;
this.electricity='';
}else if(this.activeClass==1){
this.onLine=0;
this.electricity='';
}else{
this.onLine=1;
this.electricity=20;
}
this.init()
},
init(){
this.buildingID=uni.getStorageSync('buildingID').id;
const parames = {
pageNum: this.pageNum,
pageSize: this.pageSize,
query:{
imei:this.imei,
onLine:this.onLine,
propertyId:this.buildingID,
electricity:this.electricity,
orderType:1
}
}
this.$u.post("/equipment/apiFindByPage", parames).then(res => {
this.tablist[0].num=res.eqOnLineCount
this.tablist[1].num=res.eqOffLineCount
this.tablist[2].num=res.lowElectricityCount
if(res.obj.list.results==null){
if (this.pageNum == 1){
return
}else{
uni.showToast({
title: '已经到底了!',
duration: 2000
});
}
}else{
res.obj.list.results.forEach(item=>{
if(this.activeClass==1){
item.signalDevice=0
}
if(item.electricity==''){
item.electricity=0
}
if(item.electricity>100){
item.electricity=100
}
let num=this.ascformatDate(item.updateTime)
if(num>12){
item.electricity=0
}
})
if (this.pageNum == 1) {
this.newListdata=res.obj.list.results
} else {
this.newListdata = [...this.newListdata, ...res.obj.list.results];
}
}
})
},
ascformatDate(dateTimeStamp){
let newDate = new Date(dateTimeStamp.replace(/-/g, '/')).getTime();
let minute = 1000 * 60;
let hour = minute * 60;
let day = hour * 24;
let halfamonth = day * 15;
let month = day * 30;
let now = new Date().getTime();
let diffValue = now - newDate;
let result =diffValue/hour;
return result;
}
},
}
</script>

<style>
<style lang="scss">
.cented {
width: 100%;
height: 100vh;
background: #F7F7F7;
padding-top: 33rpx;
}

.infoinputbox {
width: 100%;
height: 61rpx;
position: relative;

.infoinput {
width: 690rpx;
height: 61rpx;
background: #DEDEDE;
border-radius: 31rpx;
margin: 0 auto;
color: #999999;
font-size: 26rpx;
padding-left: 20rpx;
}

.dingweiinfo {
width: 40rpx;
height: 61rpx;
background-color: #DEDEDE;
position: absolute;
top: 0rpx;
left: 660rpx;
display: flex;
align-items: center;
z-index: 1000;
.sehoimg {
display: block;
width: 40rpx;
height: 40rpx;
}
}
}

.tab-box {
width: 100%;

.tab-item-wrap {
height: 88rpx;
line-height: 88rpx;
display: flex;
justify-content: space-around;
font-size: 4vw;
background: linear-gradient(180deg, #e5e5e5, #e5e5e5, rgba(229, 229, 229, 0)) bottom left no-repeat;
background-size: 100% 1px;
color: #959dad;
}
}

.bottom {
color: #209fff;
position: relative;
}

.bottomLine {
position: absolute;
width: 156rpx;
height: 6rpx;
top: 80rpx;
background-color: #298dff;
border-radius: 8rpx 8rpx 0rpx 0rpx;
left: 16rpx;
}

.infoet {
width: 100%;

.infoviewbox {
width: 690rpx;
padding-bottom: 20rpx;
background: #FFFFFF;
box-shadow: 0px 0px 8rpx 6rpx rgba(0, 0, 0, 0.06);
border-radius: 20rpx;
margin: 0 auto;
margin-top: 20rpx;

.infobox1 {
width: 652rpx;
height: 88rpx;
border-bottom: 1rpx solid #D9D9D9;
margin: 0 auto;
display: flex;

.box1-zuo {
width: 50%;
height: 100%;
font-size: 30rpx;
color: #333333;
line-height: 88rpx;
}

.box1-you {
width: 50%;
height: 100%;
display: flex;
align-items: center;

.you1 {
width: 20rpx;
height: 28rpx;
margin-left: 32rpx;
background-image: url(../../../static/images/newimg/dianliang.png);
background-size: 100% 100%;
display: flex;
flex-direction: column-reverse;

.youimg {
width: 100%;
background-color: #333333;
}
}
.you11 {
width: 20rpx;
height: 28rpx;
margin-left: 32rpx;
background-image: url(../../../static/images/newimg/dianliang456.png);
background-size: 100% 100%;
display: flex;
flex-direction: column-reverse;
.youimg {
width: 100%;
background-color: red;
}
}

.you2 {
width: 114rpx;
height: 30rpx;
// border: 1rpx solid red;
font-size: 20rpx;
color: #333333;
margin-left: 6rpx;
}
.you22 {
width: 114rpx;
height: 30rpx;
// border: 1rpx solid red;
font-size: 20rpx;
color: red;
margin-left: 6rpx;
}

.you3 {
width: 30rpx;
height: 28rpx;
margin-left: 16rpx;

.youimg {
display: block;
width: 30rpx;
height: 28rpx;
}
}

.you4 {
width: 100rpx;
height: 30rpx;
// border: 1rpx solid red;
font-size: 20rpx;
color: #333333;
margin-left: 6rpx;
}

}
}

.infobox2 {
width: 652rpx;
height: 33rpx;
margin: 0 auto;
display: flex;
margin-top: 19rpx;

.box2-zuo {
width: 40%;
height: 100%;
line-height: 33rpx;
font-size: 24rpx;
color: #333333;
text-indent: 6rpx;
}

.box2-you {
width: 60%;
height: 100%;
line-height: 33rpx;
font-size: 24rpx;
color: #333333;
text-indent: 30rpx;
}
}
}
}
</style>

BIN
static/images/biaoqianya.png View File

Before After
Width: 1254  |  Height: 374  |  Size: 10 KiB

BIN
static/images/newimg/dianliang.png View File

Before After
Width: 15  |  Height: 27  |  Size: 393 B

BIN
static/images/newimg/dianliang456.png View File

Before After
Width: 29  |  Height: 47  |  Size: 533 B

BIN
static/images/newimg/search.png View File

Before After
Width: 84  |  Height: 88  |  Size: 2.1 KiB

BIN
static/images/newimg/xinhao0.png View File

Before After
Width: 32  |  Height: 25  |  Size: 720 B

BIN
static/images/newimg/xinhao1.png View File

Before After
Width: 31  |  Height: 25  |  Size: 673 B

BIN
static/images/newimg/xinhao2.png View File

Before After
Width: 31  |  Height: 25  |  Size: 641 B

BIN
static/images/newimg/xinhao3.png View File

Before After
Width: 31  |  Height: 25  |  Size: 591 B

BIN
static/images/newimg/xinhao4.png View File

Before After
Width: 31  |  Height: 25  |  Size: 550 B

BIN
static/images/newimg/xinhao5.png View File

Before After
Width: 30  |  Height: 23  |  Size: 216 B

BIN
static/images/recordingManagement/add.png View File

Before After
Width: 100  |  Height: 100  |  Size: 2.1 KiB

BIN
static/images/recordingManagement/calendar.png View File

Before After
Width: 70  |  Height: 70  |  Size: 1.4 KiB

BIN
static/images/recordingManagement/download.png View File

Before After
Width: 82  |  Height: 70  |  Size: 470 B

BIN
static/images/recordingManagement/edit.png View File

Before After
Width: 60  |  Height: 56  |  Size: 1.3 KiB

BIN
static/images/recordingManagement/like.png View File

Before After
Width: 76  |  Height: 78  |  Size: 2.1 KiB

BIN
static/images/recordingManagement/likeActive.png View File

Before After
Width: 76  |  Height: 78  |  Size: 1.7 KiB

BIN
static/images/recordingManagement/like_gray.png View File

Before After
Width: 76  |  Height: 78  |  Size: 1.4 KiB

BIN
static/images/recordingManagement/play.png View File

Before After
Width: 116  |  Height: 116  |  Size: 1.6 KiB

BIN
static/images/recordingManagement/voice.png View File

Before After
Width: 88  |  Height: 88  |  Size: 2.8 KiB

BIN
static/images/testimg.png View File

Before After
Width: 52  |  Height: 56  |  Size: 1.2 KiB

Loading…
Cancel
Save