1
0
forked from dyf/APP
Files
APP/pages/common/sosSet/TxtMsgSetting.vue
2026-04-14 15:19:05 +08:00

251 lines
4.7 KiB
Vue

<template>
<view class="maincontent contentBg">
<view class="text-content">
<view class="uni-textarea">
<textarea class="textarea" v-model="txt" placeholder-class="placehoderClass"
placeholder="SOS求救短信内容二十字以内" :auto-height="true" maxlength="20" cursor-color="#BBE600" />
</view>
</view>
<view class="footBtn">
<view class="fright convert" @click.stop="saveTxt()">保存</view>
<view class="clear"></view>
</view>
<view class="title">常用短信</view>
<view class="staItem" v-for="item,index in list" @click="copyTo(item,index)">{{item}}</view>
<MsgBox ref="msgPop" />
<global-loading ref="loading" />
</view>
</template>
<script>
import request from '@/utils/request.js';
import {
showLoading,
hideLoading,
updateLoading
} from '@/utils/loading.js';
import {
MsgSuccess,
MsgError,
MsgClose,
MsgWarning,
showPop,
MsgInfo
} from '@/utils/MsgPops.js'
import Common from '@/utils/Common.js';
var these = null;
var eventChannel = null;
export default {
data() {
return {
txt: '',
oldTxt:'',
list: ['出现危险,速来救我!', '被困险境,万分危急,求援!', '生死关头,请立刻报警'],
device: {
id: "",
deviceName: "",
deviceImei: "",
deviceMac: "",
communicationMode: 0,
devicePic: "",
typeName: "",
bluetoothName: null,
deviceStatus: null,
bindingTime: "",
onlineStatus: 0,
battery: "0",
latitude: null,
longitude: null,
alarmStatus: null,
detailPageUrl: "",
showConfirm: false
}
}
},
computed: {
},
onUnload() {
},
onShow() {
},
onHide: function() {
},
onLoad() {
these = this;
eventChannel = this.getOpenerEventChannel();
eventChannel.on('device', (data)=> {
console.log("收到父页面的参数:" + JSON.stringify(data));
these.device = data;
if(data.sosSmsMsg){
this.txt=data.sosSmsMsg;
}
});
},
methods: {
copyTo(item, index) {
this.txt = item;
},
saveTxt() {
if (this.txt.replace(/ /g, '') == '') {
MsgError('请输入通知内容', '', these);
return;
}
showLoading(this, {
text: '请稍候...'
});
console.log("this.device=",this.device);
request({
url: '/app/hby018a/device/SetSmsMsg',
method: 'POST',
data: {
sendMsg: this.txt,
deviceIds: [this.device.id]
}
}).then(res => {
if (res && res.code == 200) {
MsgSuccess('操作成功', '', these);
if(eventChannel){
eventChannel.emit('MsgOver', this.txt);
}
return;
}
MsgError(res.msg, '', these);
}).catch(ex => {
MsgError('出现错误,操作失败', '', these);
}).finally(() => {
hideLoading(these)
})
}
}
}
</script>
<style>
.staItem {
width: 100%;
height: 80rpx;
line-height: 80rpx;
border-radius: 8px;
background: rgba(26, 26, 26, 1);
text-indent: 30rpx;
color: rgba(255, 255, 255, 0.6);
font-family: "PingFang SC";
font-style: Regular;
font-size: 28rpx;
font-weight: 400;
letter-spacing: 0.07px;
margin-bottom: 25rpx;
}
.title {
color: rgba(255, 255, 255, 0.87);
margin: 15rpx 0rpx;
font-family: "PingFang SC";
font-style: Regular;
font-size: 28rpx;
font-weight: 400;
line-height: 40rpx;
width: 100%;
height: 40rpx;
letter-spacing: 0.07px;
text-align: left;
}
.footBtn .convert {
/* 组合 99 */
width: 130rpx;
height: 55rpx;
line-height: 55rpx;
border-radius: 180px;
color: #232323;
background-color: #AED600;
text-align: center;
font-family: 'PingFang SC';
font-size: 24rpx;
font-weight: 400;
letter-spacing: 12rpx;
}
.placehoderClass {
color: rgba(255, 255, 255, 0.6);
font-family: PingFang SC;
font-size: 32rpx;
font-weight: 400;
line-height: 44rpx;
letter-spacing: 0.14px;
}
.textarea {
min-height: 200rpx;
width: 100%;
box-sizing: border-box;
}
.text-content {
border-radius: 16rpx;
background: rgba(26, 26, 26, 1);
width: 100%;
height: auto;
box-sizing: border-box;
padding: 20rpx;
margin-bottom: 20rpx;
}
.content {
padding: 30rpx;
width: 100%;
min-height: 100vh;
height: auto;
}
.navbarRight .img {
width: 35rpx;
height: 35rpx;
margin-right: 20rpx;
}
.uni-navbar--fixed {
top: 0rpx;
}
/deep/ .uni-navbar--fixed {
top: 0px;
}
/deep/ .uni-navbar__placeholder {
display: none !important;
}
</style>