diff --git a/src/assets/mp3/tip.mp3 b/src/assets/mp3/tip.mp3
new file mode 100644
index 0000000..9684c72
Binary files /dev/null and b/src/assets/mp3/tip.mp3 differ
diff --git a/src/utils/speechReminder.js b/src/utils/speechReminder.js
new file mode 100644
index 0000000..961d269
--- /dev/null
+++ b/src/utils/speechReminder.js
@@ -0,0 +1,20 @@
+export function speak(text, options = {}) {
+ // 检查浏览器是否支持 speech synthesis
+ if ('speechSynthesis' in window) {
+ const utterance = new SpeechSynthesisUtterance();
+
+ // 设置传递过来的文本
+ utterance.text = text;
+
+ // 可选参数:语言、音量、语速、音调等
+ utterance.lang = options.lang || 'zh-CN'; // 默认语言为中文
+ utterance.volume = options.volume || 1; // 音量,默认值为1(范围0到1)
+ utterance.rate = options.rate || 1.5; // 语速,默认值为1(范围0.1到10)
+ utterance.pitch = options.pitch || 1; // 音调,默认值为1(范围0到2)
+
+ // 开始朗读
+ window.speechSynthesis.speak(utterance);
+ } else {
+ console.log('您的浏览器不支持语音合成');
+ }
+ }
\ No newline at end of file
diff --git a/src/views/bl/shipinquan/shipinquan.vue b/src/views/bl/shipinquan/shipinquan.vue
index 1186acc..ce6f975 100644
--- a/src/views/bl/shipinquan/shipinquan.vue
+++ b/src/views/bl/shipinquan/shipinquan.vue
@@ -3,10 +3,7 @@
状态:
-
+
@@ -15,184 +12,119 @@
姓名:
-
+
- 查询
+
+ 置顶:
+
+
+
+
+
+
+ 查询
- 重置
+ 重置
-
+
-
+
暂无图片
-
+
-
+
-
+
暂无视频
-
+
-
+
-
+
+
+ {{ scope.row.dzs }}
+
-
+
+
+ {{ scope.row.pls }}
+
-
+
待审批
已通过
已拒绝
-
+
-
+
- 删除
+ 未置顶
+ 已置顶({{scope.row.topSort}})
+
+
+
+
+ 删除
- 审批
+ 审批
- 取消审批
+
+ {{ scope.row.topSort == 0 ? '置顶' : '置顶顺序'}}
+
+ 取消置顶
+
+ 取消审批
-
+
头像:
-
-
![]()
+ ">
+
姓名:
-
+
- 内容:
-
+ 内容:
+
@@ -204,13 +136,7 @@
审批意见:
-
+
+
+
+
+
+
+
+ 暂无图片
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+ 发 布
+
+
+
+
@@ -243,6 +202,7 @@ export default {
id: "",
name: "",
status: "",
+ isTop:"",
artificerImg: "",
artificerName: "",
content: "",
@@ -252,10 +212,134 @@ export default {
dialogApproveFormVisible: false,
videoUrl: "",
dialogVideoFormVisible: false,
- videoPlayer: null
+ videoPlayer: null,
+ plDialogVisible:false,//评论管理开关
+ plTableData: [],//评论管理列表数据
+ plContent:'',//评论内容,只在评论管理弹窗中使用
+ pl_shipinquanId:'',//当前操作的视频的id
};
},
methods: {
+ //发布评论
+ releasePl(){
+ this.$http({
+ url: this.$http.adornUrl("/app/shipinquan/addContent"),
+ method: "post",
+ params: {
+ createBy: null,
+ content: this.plContent,
+ shipinquanId: this.pl_shipinquanId,
+ }
+ }).then(({ data }) => {
+ if (data.code == 0) {
+ this.handlePl({ id: this.pl_shipinquanId })
+ } else {
+ this.$message({
+ message: data.msg,
+ type: "warning",
+ duration: 1500,
+ onClose: () => {
+ },
+ });
+ }
+ }).catch(() => {
+ this.$message({
+ message: data.msg,
+ type: "warning",
+ duration: 1500,
+ onClose: () => {
+ },
+ });
+ });
+ },
+ //关闭评论管理
+ changePlDialog(sign){
+ this.plDialogVisible = sign
+ if(!sign){
+ //刷新列表
+ this.handleSelect();
+ }
+ },
+ //删除评论
+ deletePl(row){
+ this.$http({
+ url: this.$http.adornUrl("/bl/shipinquanPinglun/delete"),
+ method: "post",
+ params: {
+ id: row.id,
+ shipinquanId:this.pl_shipinquanId
+ }
+ }).then(({ data }) => {
+ this.handlePl({ id: this.pl_shipinquanId })
+ }).catch(() => {
+ this.$message({
+ message: data.msg,
+ type: "warning",
+ duration: 1500,
+ onClose: () => {
+ },
+ });
+ });
+ },
+ //打开评论
+ handlePl(row) {
+ this.plContent = ''
+ this.pl_shipinquanId = ''
+ this.$http({
+ url: this.$http.adornUrl("/app/shipinquan/contentlist"),
+ method: "get",
+ params: {
+ page: 1,
+ limit: 310,
+ shipinquanId: row.id
+ }
+ }).then(({ data }) => {
+ if(data.code == 0) this.plTableData = data.data.records
+ this.pl_shipinquanId = row.id
+ this.changePlDialog(true)
+ }).catch(() => {
+
+ });
+ },
+ //设置点赞数
+ setDzs(row) {
+ this.$prompt('当前为:' + row.dzs, '设置点赞数', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ inputPattern: /^(0|[1-9]\d*)$/,
+ inputErrorMessage: '请输入正整数'
+ }).then(({ value }) => {
+ this.$http({
+ url: this.$http.adornUrl("bl/shipinquan/modify"),
+ method: "post",
+ params: this.$http.adornParams({
+ id: row.id,
+ dzs: value,
+ }),
+ }).then(({ data }) => {
+ if (data.code == 0) {
+ this.$message({
+ message: "设置成功",
+ type: "success",
+ duration: 1500,
+ onClose: () => {
+ this.handleSelect();
+ },
+ });
+ } else {
+ this.$message({
+ message: data.msg,
+ type: "warning",
+ duration: 1500,
+ onClose: () => {
+ },
+ });
+ }
+ });
+ }).catch(() => {
+
+ });
+ },
// 获取列表数据
handleSelect() {
this.tableDataLoading = true;
@@ -266,12 +350,12 @@ export default {
page: this.page,
limit: this.limit,
artificerName: this.name,
- status: this.status
+ status: this.status,
+ isTop:this.isTop
}),
}).then(({data}) => {
if (data.code == 0) {
this.tableData = data.data;
- console.log(this.tableData);
} else {
this.$notify({
title: "提示",
@@ -287,6 +371,7 @@ export default {
handleClear() {
this.name = "";
this.status = "";
+ this.isTop = "";
this.page = 1;
this.handleSelect();
},
@@ -400,6 +485,72 @@ export default {
}
});
},
+ //取消置顶 isTop true/false
+ handleToTop(row,isTop){
+ if (isTop) {
+ this.$prompt('请输入置顶排序,值越大排名越靠前:', '置顶设置', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ inputPattern: /^(0|[1-9]\d*)$/,
+ inputErrorMessage: '请输入正整数'
+ }).then(({ value }) => {
+ this.$http({
+ url: this.$http.adornUrl("bl/shipinquan/modify"),
+ method: "post",
+ params: this.$http.adornParams({
+ id: row.id,
+ topSort: value,
+ }),
+ }).then(({ data }) => {
+ if (data.code == 0) {
+ this.$message({
+ message: "置顶成功",
+ type: "success",
+ onClose: () => {
+ this.handleSelect();
+ },
+ });
+ } else {
+ this.$message({
+ message: data.msg,
+ type: "warning",
+ onClose: () => {
+ },
+ });
+ }
+ });
+ }).catch(() => {
+
+ });
+ } else {
+ //取消置顶操作
+ this.$http({
+ url: this.$http.adornUrl("bl/shipinquan/modify"),
+ method: "post",
+ params: this.$http.adornParams({
+ id: row.id,
+ topSort: 0,
+ }),
+ }).then(({ data }) => {
+ if (data.code == 0) {
+ this.$message({
+ message: "取消置顶成功",
+ type: "success",
+ onClose: () => {
+ this.handleSelect();
+ },
+ });
+ } else {
+ this.$message({
+ message: data.msg,
+ type: "warning",
+ onClose: () => {
+ },
+ });
+ }
+ });
+ }
+ },
//取消授权
handleCancelApply(row){
let id = row.id;
diff --git a/src/views/main-navbar.vue b/src/views/main-navbar.vue
index b751c3e..74fc777 100644
--- a/src/views/main-navbar.vue
+++ b/src/views/main-navbar.vue
@@ -8,6 +8,9 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
@@ -1244,6 +1266,9 @@ import { serverPaths } from '@/utils/enumData'
export default {
data() {
return {
+ hyType:null,//会员类型 【0】月度-30天 【1】季度-90天 【2】年度-365天
+ optionUser:null,//当前操作会员的用户
+ hyDialogVisible:false,//会员配置弹窗
uploadUrl: serverPaths.uploadUrl,
uploadWatermarkUrl: serverPaths.uploadWatermarkUrl,
openValue: 1,
@@ -1353,6 +1378,16 @@ import { serverPaths } from '@/utils/enumData'
}
],
isAuthentication:'',
+ hylxOptions:[{
+ value: 0,
+ label: '月会员'
+ }, {
+ value: 1,
+ label: '季会员'
+ }, {
+ value: 2,
+ label: '年会员'
+ }],
}
},
methods: {
@@ -2031,15 +2066,31 @@ import { serverPaths } from '@/utils/enumData'
})
},
+ // 会员类型确认窗口显隐
+ changehyDialog(row,sign){
+ if(!sign){
+ this.hyDialogVisible = sign
+ } else{
+ this.optionUser = row
+ this.hyDialogVisible = sign
+ }
+ },
// 设置会员
updateVip(row){
-
+ if(this.hyType!=0 && this.hyType!=1 && this.hyType!=2){
+ this.$message({
+ message: '未设置会员类型',
+ type: 'warning',
+ duration: 1500,
+ })
+ return
+ }
this.$http({
url: this.$http.adornUrl('user/giveUserVip'),
method: 'post',
params: this.$http.adornParams({
'userId':row.userId,
- 'day':30
+ 'type':this.hyType
})
}).then(({
data
@@ -2050,6 +2101,7 @@ import { serverPaths } from '@/utils/enumData'
type: 'success',
duration: 1500,
onClose: () => {
+ this.hyDialogVisible = false
this.dataSelect()
}
})
@@ -2059,6 +2111,7 @@ import { serverPaths } from '@/utils/enumData'
type: 'warning',
duration: 1500,
onClose: () => {
+ this.hyDialogVisible = false
this.dataSelect()
}
})
diff --git a/src/views/vueMchat/vueMchat.vue b/src/views/vueMchat/vueMchat.vue
index 436acb2..5587c49 100644
--- a/src/views/vueMchat/vueMchat.vue
+++ b/src/views/vueMchat/vueMchat.vue
@@ -37,7 +37,7 @@
- {{ item.messageTime.substring(11, 16) }}
+ {{ item.messageTime.substring(0, 16) }}