first commit
This commit is contained in:
328
pages/video_list/video_list.js
Normal file
328
pages/video_list/video_list.js
Normal file
@@ -0,0 +1,328 @@
|
||||
const app = getApp();
|
||||
|
||||
Page({
|
||||
data: {
|
||||
inputValue: '', // 输入框的内容
|
||||
detectResult: '', // 识别结果
|
||||
detectType: 'text', // 默认识别类型为文本
|
||||
maxLength: 20000, // 最大允许的字节数
|
||||
inputLength: 0, // 当前输入的字节数
|
||||
task_id: '', // 任务ID
|
||||
detectButtonDisabled: false, // 文本检测按钮是否禁用
|
||||
modifyButtonDisabled: false // 智能修改按钮是否禁用
|
||||
},
|
||||
|
||||
onLoad: function(e) {
|
||||
wx.showShareMenu({
|
||||
withShareTicket: true,
|
||||
menus: ["shareAppMessage", "shareTimeline"]
|
||||
});
|
||||
},
|
||||
|
||||
onShow: function() {
|
||||
var t = this;
|
||||
t.resetData()
|
||||
app.getCurrentTabbar(2, this);
|
||||
app.checkUpdateVersion();
|
||||
app.getUserInfo().then(() => {
|
||||
console.log('获取用户信息完成');
|
||||
console.log(wx.getStorageSync('defaultDailyFreeParseNum'));
|
||||
const rewrittenText = wx.getStorageSync('rewrittenText'); // 从缓存中获取存储的文案
|
||||
if (rewrittenText) {
|
||||
this.setData({
|
||||
inputValue: rewrittenText // 设置到页面的数据中
|
||||
});
|
||||
wx.removeStorageSync('rewrittenText'); // 清除数据,避免下次重复加载
|
||||
wx.showToast({
|
||||
title: '点击开始检测按钮检测文本违规词。',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
|
||||
}).catch(error => {
|
||||
console.error('获取用户信息失败:', error);
|
||||
}).finally(() => {
|
||||
console.log('getUserInfo调用完成');
|
||||
});
|
||||
},
|
||||
resetData: function() {
|
||||
// 重置页面数据为默认值
|
||||
this.setData({
|
||||
inputValue: '', // 输入框的内容
|
||||
detectResult: '', // 识别结果
|
||||
detectType: 'text', // 默认识别类型为文本
|
||||
inputLength: 0, // 当前输入的字节数
|
||||
task_id: '', // 任务ID
|
||||
detectButtonDisabled: false, // 文本检测按钮是否禁用
|
||||
modifyButtonDisabled: false // 智能修改按钮是否禁用
|
||||
});
|
||||
},
|
||||
// 切换识别类型
|
||||
switchDetectType(e) {
|
||||
const detectType = e.currentTarget.dataset.type;
|
||||
this.recordClick(detectType);
|
||||
this.setData({
|
||||
detectType,
|
||||
detectResult: '' // 切换时清空结果
|
||||
});
|
||||
|
||||
if (detectType === 'audio' || detectType === 'video') {
|
||||
wx.showToast({
|
||||
title: '该功能正在开发中',
|
||||
icon: 'none'
|
||||
});
|
||||
} else {
|
||||
wx.showToast({
|
||||
title: '切换到文本识别',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 文本识别函数
|
||||
detectText() {
|
||||
const { inputValue, maxLength } = this.data;
|
||||
const byteSize = this.getByteLength(inputValue);
|
||||
|
||||
// 检查文本是否为空或长度过短
|
||||
if (!inputValue.trim() || this.getByteLength(inputValue) < 10) {
|
||||
wx.showToast({
|
||||
title: '请输入有效的文本',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 超出字节长度检测
|
||||
if (byteSize > maxLength) {
|
||||
wx.showToast({
|
||||
title: `内容不能超过 ${maxLength} 字节`,
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 禁用检测按钮
|
||||
this.setData({ detectButtonDisabled: true });
|
||||
|
||||
wx.showLoading({
|
||||
title: '正在检测...',
|
||||
});
|
||||
|
||||
// 调用后端审核接口
|
||||
app.apiRequest({
|
||||
url: '/myapp/text_review/',
|
||||
method: 'POST',
|
||||
data: {
|
||||
text: inputValue,
|
||||
openid: wx.getStorageSync('openid'),
|
||||
nickname: wx.getStorageSync('uuid')
|
||||
},
|
||||
success: (res) => {
|
||||
wx.hideLoading();
|
||||
this.setData({ detectButtonDisabled: false }); // 启用检测按钮
|
||||
if (res.data.code === 200) {
|
||||
// 审核成功
|
||||
this.setData({
|
||||
detectResult: res.data.data.result,
|
||||
task_id: res.data.task_id
|
||||
});
|
||||
console.log(res.data.data.result);
|
||||
wx.showToast({
|
||||
title: '检测成功',
|
||||
icon: 'success'
|
||||
});
|
||||
if (res.data.data.result.conclusion === '不合规') {
|
||||
wx.showModal({
|
||||
title: "提示",
|
||||
content: "检测结果不合规,是否使用智能合规功能一键修改文案?",
|
||||
confirmText: "一键修改",
|
||||
cancelText: "取消",
|
||||
success: (modalRes) => {
|
||||
if (modalRes.confirm) {
|
||||
this.modifyContent(); // 调用一键合规函数
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (res.data.code === 400 && res.data.message === '余额不足') {
|
||||
// 积分不足,提示充值
|
||||
wx.showModal({
|
||||
title: "检测文本",
|
||||
content: '创意点不足!',
|
||||
confirmColor: "#00B269",
|
||||
cancelColor: "#858585",
|
||||
success: function(e) {
|
||||
if (e.confirm) {
|
||||
console.log("确定");
|
||||
wx.navigateTo({
|
||||
url: "../vip_recharge/vip_recharge?show=true"
|
||||
});
|
||||
} else {
|
||||
console.log("取消");
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 其他失败情况
|
||||
wx.showToast({
|
||||
title: res.data.message || '检测失败,请稍后重试',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
wx.hideLoading();
|
||||
this.setData({ detectButtonDisabled: false }); // 启用检测按钮
|
||||
console.error('请求失败:', err);
|
||||
wx.showToast({
|
||||
title: '网络异常,请稍后重试',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 计算文本的字节长度(区分中英文)
|
||||
getByteLength(text) {
|
||||
return text.replace(/[^\x00-\xff]/g, 'aa').length;
|
||||
},
|
||||
|
||||
// 处理输入框内容变化
|
||||
bindInput(e) {
|
||||
const inputValue = e.detail.value;
|
||||
const inputLength = this.getByteLength(inputValue);
|
||||
|
||||
// 更新输入内容和字节长度
|
||||
this.setData({
|
||||
inputValue,
|
||||
inputLength
|
||||
});
|
||||
|
||||
// 如果字数超出最大限制,提示用户
|
||||
if (inputLength > this.data.maxLength) {
|
||||
wx.showToast({
|
||||
title: `已超出 ${this.data.maxLength} 字节`,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 复制内容
|
||||
copyContent() {
|
||||
wx.setClipboardData({
|
||||
data: this.data.inputValue,
|
||||
success() {
|
||||
wx.showToast({
|
||||
title: '内容已复制',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 清空输入框内容
|
||||
clearInput() {
|
||||
wx.showModal({
|
||||
title: "提示",
|
||||
content: "确定要清空所有内容吗?",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
this.setData({
|
||||
inputValue: '',
|
||||
inputLength: 0,
|
||||
detectResult: ''
|
||||
});
|
||||
wx.showToast({
|
||||
title: '已清空内容',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 调用智能修改(AI合规)
|
||||
modifyContent() {
|
||||
// 禁用智能修改按钮
|
||||
this.setData({ modifyButtonDisabled: true });
|
||||
|
||||
wx.showLoading({
|
||||
title: '正在修改...',
|
||||
});
|
||||
|
||||
app.apiRequest({
|
||||
url: '/myapp/ai_modify_text/',
|
||||
method: 'POST',
|
||||
data: {
|
||||
task_id: this.data.task_id,
|
||||
openid: wx.getStorageSync('openid')
|
||||
},
|
||||
success: (res) => {
|
||||
wx.hideLoading();
|
||||
this.setData({ modifyButtonDisabled: false }); // 启用智能修改按钮
|
||||
if (res.data.code === 200) {
|
||||
// 修改成功
|
||||
this.setData({
|
||||
inputValue: res.data.data.modified_text,
|
||||
detectResult: '' // 清空检测结果
|
||||
});
|
||||
wx.showToast({
|
||||
title: '修改成功',
|
||||
icon: 'success'
|
||||
});
|
||||
}else if (res.data.code === 400 && res.data.message === '积分不足,请充值') {
|
||||
// 积分不足,提示用户充值并引导
|
||||
wx.showModal({
|
||||
title: "提示",
|
||||
content: "您的积分不足,无法进行智能修改,请充值后再尝试。",
|
||||
confirmText: "去充值",
|
||||
cancelText: "取消",
|
||||
success: (modalRes) => {
|
||||
if (modalRes.confirm) {
|
||||
wx.navigateTo({
|
||||
url: "../vip_recharge/vip_recharge?show=true"
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 其他失败情况
|
||||
wx.showToast({
|
||||
title: res.data.message || '修改失败,请稍后重试',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
wx.hideLoading();
|
||||
this.setData({ modifyButtonDisabled: false }); // 启用智能修改按钮
|
||||
console.error('请求失败:', err);
|
||||
wx.showToast({
|
||||
title: '网络异常,请稍后重试',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 记录点击的功能类型
|
||||
recordClick(functionClicked) {
|
||||
app.apiRequest({
|
||||
url: `/myapp/record_click/`, // 点击统计接口
|
||||
method: 'POST',
|
||||
data: {
|
||||
openid: wx.getStorageSync('openid'),
|
||||
nickname: wx.getStorageSync('uuid'),
|
||||
function_clicked: functionClicked
|
||||
},
|
||||
header: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
success: (res) => {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user