123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 |
- <template>
- <view class="page">
- <view class="list_info">
- <view class="">
- <!-- 基础设置组 -->
- <view class="group-header">基础设置</view>
- <view
- class="item basic"
- v-for="(item, index) in basicSettings"
- :key="item.name + index"
- @click="goPage(item.path)"
- >
- <view class="item-left">
- <image class="icon" :src="item.icon" mode="widthFix"></image>
- <text>{{ item.name }}</text>
- </view>
- <view class="item-right">
- <switch
- v-if="item.switch == 1"
- checked
- class="custom-switch"
- color="#acf934"
- style="transform: scale(0.7)"
- />
- <image
- v-else
- class="arrow"
- src="../../static/me/arrow_right_gray.png"
- mode="widthFix"
- ></image>
- </view>
- </view>
- </view>
- <view class="">
- <!-- 更多设置组 -->
- <view class="group-header" style="margin-top: 20rpx">更多</view>
- <view
- class="item more"
- v-for="(item, index) in moreSettings"
- :key="index + item.name"
- @click="goPage(item.path, item)"
- >
- <view class="item-left">
- <image class="icon" :src="item.icon" mode="widthFix"></image>
- <text>{{ item.name }}</text>
- </view>
- <view class="item-right">
- <switch
- v-if="item.switch == 1"
- color="#acf934"
- @change="switch1Change"
- :checked="isContentRecommendation"
- class="custom-switch"
- style="transform: scale(0.7)"
- />
- <image
- v-else
- class="arrow"
- src="../../static/me/arrow_right_gray.png"
- mode="widthFix"
- ></image>
- </view>
- </view>
- </view>
- </view>
- <!-- 版本信息 -->
- <view class="version-info">
- <text>版本号 {{ version }}</text>
- </view>
- <!-- 退出登录按钮 -->
- <view class="btn_submit" @click="logout">退出登录</view>
- <DialogBox ref="DialogBox"></DialogBox>
- <CustomerServicePopup ref="customerServicePopup"></CustomerServicePopup>
- </view>
- </template>
- <script>
- import CustomerServicePopup from "@/components/CustomerServicePopup/CustomerServicePopup.vue";
- import { getStorage, setStorage, removeStorage } from "@/common/util.js";
- export default {
- components: { CustomerServicePopup },
- data() {
- return {
- title: "",
- sel: 1,
- myinfo: {},
- version: "",
- basicSettings: [
- {
- name: "账户与安全",
- desc: "",
- path: "/pages/my/security",
- icon: "../../static/me/wd_icon_zhanghuyuanquan.png",
- propup: "",
- },
- {
- name: "基本资料",
- desc: "",
- path: "/pages/my/editInfo",
- icon: "../../static/me/wd_icon_jibenziliao.png",
- propup: "",
- },
- {
- name: "青少年模式",
- switch: 0,
- desc: "",
- // 'path': '/pages/my/idcheck',实名认证
- path: "/pages/my/adolescent",
- icon: "../../static/me/wd_icon_qingshaonianmoshi.png",
- propup: "",
- },
- ],
- moreSettings: [
- {
- name: "通知设置",
- desc: "",
- path: "pushSet",
- icon: "../../static/me/wd_icon_tonzhishezhi.png",
- propup: "",
- },
- {
- name: "服务条款",
- desc: "",
- path: "/pages/AboutUs/xieyi",
- icon: "../../static/me/wd_icon_fuwutiaokuan.png",
- propup: "",
- },
- {
- name: "接收内容推荐",
- switch: 1,
- desc: "",
- path: "",
- icon: "../../static/me/wd_icon_jieshouneirongtuijian.png",
- propup: "",
- },
- {
- name: "联系客服",
- desc: "",
- path: "kefu",
- icon: "../../static/me/wd_icon_lianxikefu.png",
- propup: "customPopup",
- },
- ],
- isContentRecommendation: true,
- };
- },
- onLoad() {
- this.getAppVersion();
- },
- onShow() {
- this.loadData();
- //
- var isContentRecommendation = getStorage("isContentRecommendation");
- if (isContentRecommendation != undefined) {
- this.isContentRecommendation =
- isContentRecommendation == "false" ? false : true;
- } else {
- setStorage("isContentRecommendation", true);
- }
- },
- methods: {
- openCustomPopup() {
- this.$refs.customerServicePopup.$refs.customPopup.open();
- },
- getAppVersion() {
- uni.getSystemInfo({
- success: (info) => {
- // app系统环境
- let appPlatform = info.platform;
- console.log("appPlatform", info);
- // #ifdef H5
- this.version = "V" + info.appVersion;
- // #endif
- // #ifdef APP-PLUS
- plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
- this.version = "V" + wgtinfo.version;
- });
- // #endif
- },
- });
- },
- switch1Change(e) {
- setStorage("isContentRecommendation", e.detail.value);
- },
- onBack() {},
- chkSel() {
- if (this.sel == 1) {
- this.sel = 0;
- } else {
- this.sel = 1;
- }
- },
- goPage(page) {
- if (page == "delete") {
- this.DelMem();
- } else if (page == "yszc") {
- // #ifdef APP-PLUS
- plus.runtime.openURL("https://e.zhichao.art/web/yszc.php"); // plus.runtime.openWeb(href);
- // #endif
- // #ifdef H5
- window.open("https://e.zhichao.art/web/yszc.php");
- // #endif
- } else if (page == "kefu") {
- // let that = this;
- // // #ifdef APP-PLUS
- // plus.share.getServices(res => {
- // const wechat = res.find(i => i.id === 'weixin')
- // if (wechat) {
- // wechat.openCustomerServiceChat({
- // corpid: 'wwbc06aa8311b6ac08',
- // // url: 'https://work.weixin.qq.com/kfid/kfc4b0bcb4038d00a50'
- // url: that.myinfo.wxkf
- // }, src => {
- // console.log("success:")
- // }, err => {
- // console.log("error:")
- // })
- // } else {
- // uni.showToast({
- // title: '没有检测到微信,请先安装',
- // icon: "error"
- // });
- // }
- // });
- // // #endif
- this.openCustomPopup();
- } else if (page == "pushSet") {
- // #ifdef APP-PLUS
- if (uni.getSystemInfoSync().platform === 'android') {
- const main = plus.android.runtimeMainActivity();
- const NotificationManagerCompat = plus.android.importClass('androidx.core.app.NotificationManagerCompat');
- const Context = plus.android.importClass('android.content.Context');
-
- // 获取NotificationManagerCompat实例
- const notificationManager = NotificationManagerCompat.from(main);
-
- // 检查通知权限
- const areNotificationsEnabled = notificationManager.areNotificationsEnabled();
-
- if (areNotificationsEnabled) {
- uni.showToast({
- title: '通知权限已开启',
- icon: 'success'
- });
- } else {
- // 引导用户去设置页面开启通知
- this.$refs["DialogBox"]
- .confirm({
- title: "开启通知",
- content: "为了及时接收重要消息,请开启通知权限",
- DialogType: "inquiry",
- btn1: "取消",
- btn2: "确定",
- animation: 0,
- })
- .then(() => {
- const Intent = plus.android.importClass('android.content.Intent');
- const Settings = plus.android.importClass('android.provider.Settings');
- const Uri = plus.android.importClass('android.net.Uri');
-
- const intent = new Intent();
- intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
- intent.putExtra(Settings.EXTRA_APP_PACKAGE, main.getPackageName());
- main.startActivity(intent);
- });
- }
- } else {
- // iOS
- const UIApplication = plus.ios.import("UIApplication");
- const NSURL = plus.ios.import("NSURL");
- const setting = NSURL.URLWithString("app-settings:");
- const application = UIApplication.sharedApplication();
- application.openURL(setting);
- }
- // #endif
-
- // #ifdef H5
- uni.showToast({
- title: 'H5环境不支持此功能',
- icon: 'none'
- });
- // #endif
- } else if (page != "") {
- uni.navigateTo({
- url: page,
- });
- }
- },
-
- DelMem() {
- var that = this;
- this.$refs["DialogBox"]
- .confirm({
- title: "警告",
- content:
- "1、注销账号是不可逆操作,该账号下所有一切资料一旦注销无法恢复;\n2、注销后,你账号下所有权益将被清除。",
- DialogType: "inquiry",
- btn1: "否",
- btn2: "是",
- animation: 0,
- })
- .then(() => {
- uni.request({
- url: that.$apiHost + "/My/delete", //检测是否已绑定
- data: {
- uuid: getApp().globalData.uuid,
- },
- header: {
- "content-type": "application/json", //自定义请求头信息
- },
- success: (res) => {
- uni.removeStorageSync("wapptoken");
- uni.redirectTo({
- url: "/pages/login/login",
- });
- },
- });
- });
- },
- loadData() {
- console.log({
- uuid: getApp().globalData.uuid,
- skey: getApp().globalData.skey,
- });
- uni.request({
- url: this.$apiHost + "/Web/getinfo",
- data: {
- uuid: getApp().globalData.uuid,
- },
- header: {
- "content-type": "application/json",
- sign: getApp().globalData.headerSign,
- },
- success: (res) => {
- console.log("----:", res.data);
- this.myinfo = res.data;
- },
- complete: (com) => {
- // uni.hideLoading();
- },
- fail: (e) => {
- console.log("----e:", e);
- },
- });
- },
- EditNickname() {
- let that = this;
- this.$refs["DialogBox"]
- .confirm({
- title: "更改昵称",
- placeholder: "请输入修改的昵称",
- value: that.myinfo.nickname,
- DialogType: "input",
- animation: 0,
- })
- .then((res) => {
- if (res.value.length < 1) {
- uni.showToast({
- title: "请输入有效的昵称",
- icon: "none",
- });
- return;
- }
- that.myinfo.nickname = res.value;
- let obj2 = {
- nickname: res.value,
- };
- const postData = Object.assign(
- {},
- getApp().globalData.postHeader,
- obj2
- );
- uni.request({
- url: that.$apiHost + "/Gushi/editinfo", //检测是否已绑定
- data: postData,
- method: "POST",
- header: {
- "content-type": "application/json", //自定义请求头信息
- "Access-Control-Allow-Origin": "*",
- },
- success: (res) => {
- uni.showToast({
- title: res.data.str,
- icon: "none",
- });
- },
- });
- });
- },
- logout() {
- this.$refs["DialogBox"]
- .confirm({
- title: "提示",
- content: "确定要退出登录吗?",
- DialogType: "inquiry",
- btn1: "取消",
- btn2: "确定",
- animation: 0,
- })
- .then(() => {
- uni.removeStorageSync("wapptoken");
- uni.removeStorageSync("nickname");
- uni.removeStorageSync("avator");
- uni.removeStorageSync("mobile");
- uni.removeStorageSync("uuid");
- uni.removeStorageSync("user_id");
- uni.removeStorageSync("is_login");
- uni.redirectTo({
- url: "/pages/login/login",
- });
- });
- },
- },
- };
- </script>
- <style scoped lang="scss">
- @import "setting.scss";
- </style>
|