Authored by 李进

初始化

Showing 76 changed files with 2204 additions and 0 deletions
  1 +<script>
  2 + export default {
  3 + onLaunch: function() {
  4 + console.log('App Launch')
  5 + },
  6 + onShow: function() {
  7 + console.log('App Show')
  8 + },
  9 + onHide: function() {
  10 + console.log('App Hide')
  11 + }
  12 + }
  13 +</script>
  14 +
  15 +<style>
  16 + /*每个页面公共css */
  17 +</style>
  1 +<template>
  2 + <view class="navigation" :style="{height: getNavigationHeight}">
  3 + <view class="back_btn" :style="{marginTop: statusHeight}" @click="backClick">
  4 + <image class="image" src="../static/navigation_back.png" mode="aspectFit"></image>
  5 + </view>
  6 + <view class="title" :style="{top: statusHeight}">{{title}}</view>
  7 + </view>
  8 +</template>
  9 +
  10 +<script>
  11 +
  12 + export default {
  13 + props: {
  14 + title: String
  15 + },
  16 + data() {
  17 + return {
  18 + }
  19 + },
  20 +
  21 + computed: {
  22 + safeAreaInsets() {
  23 + return uni.getSystemInfoSync().safeAreaInsets.bottom
  24 + },
  25 + statusHeight() {
  26 + let device = uni.getSystemInfoSync();
  27 + return device.statusBarHeight + "px";
  28 + },
  29 + getNavigationHeight() {
  30 + var h = 0;
  31 + let device = uni.getSystemInfoSync();
  32 + let statusBarHeight = device.statusBarHeight;
  33 + h += 44;
  34 + return h + "px";
  35 + }
  36 + },
  37 + onLoad() {
  38 +
  39 + },
  40 + methods: {
  41 + backClick() {
  42 + uni.navigateBack()
  43 + }
  44 + }
  45 + }
  46 +</script>
  47 +
  48 +<style lang="scss" scoped>
  49 + .navigation {
  50 + display: flex;
  51 + flex-direction: row;
  52 + position: relative;
  53 + background: linear-gradient(to right, #D82222, #B81F1F);
  54 + // justify-content: center;
  55 + align-items: center;
  56 + .back_btn {
  57 + display: flex;
  58 + width: 44px;
  59 + height: 44px;
  60 + justify-content: center;
  61 + align-items: center;
  62 + .image {
  63 + width: 20px;
  64 + height: 20px;
  65 + }
  66 + }
  67 + .title {
  68 + display: flex;
  69 + // position: absolute;
  70 + top: 0;
  71 + left: 50%;
  72 + right: 50%;
  73 + height: 44px;
  74 + width: 100%;
  75 + margin-right: 44px;
  76 + justify-content: center;
  77 + align-items: center;
  78 + flex-direction: row;
  79 + color: #FFE8C3;
  80 + }
  81 + }
  82 +</style>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <script>
  6 + var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
  7 + CSS.supports('top: constant(a)'))
  8 + document.write(
  9 + '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
  10 + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
  11 + </script>
  12 + <title></title>
  13 + <!--preload-links-->
  14 + <!--app-context-->
  15 + </head>
  16 + <body>
  17 + <div id="app"><!--app-html--></div>
  18 + <script type="module" src="/main.js"></script>
  19 + </body>
  20 +</html>
  1 +// const ApiRootUrl = 'http://camp.cultivationhit.com'; // 测试
  2 +// const ApiRootUrl = 'http://172.27.254.247:9928'; // 测试
  3 +// const ApiRootUrl = 'https://cetustalk.harbourmooc.com/api'; // 正式
  4 +// const ApiRootUrl = "http://39.99.131.18:9253"; // const ApiRootUrl = 'http://192.168.0.153:10087/zhongkehaobo/';
  5 +const ApiRootUrl = "https://app.dyguoxin.com/api";
  6 +// request get 请求
  7 +
  8 +const getData = (url, param) => {
  9 + return new Promise((resolve, reject) => {
  10 + uni.request({
  11 + url: ApiRootUrl + url,
  12 + method: 'GET',
  13 + header: {
  14 + 'content-type': 'application/json' // 默认值,返回的数据设置为json数组格式
  15 +
  16 + /*'Authorization': wx.getStorageSync("tokenHead")+' '+wx.getStorageSync("token"),
  17 + 'Source':'wx'*/
  18 +
  19 + },
  20 + data: param,
  21 + success(res) {
  22 + /*if (res.data.code!=200){
  23 + wx.showToast({
  24 + title: res.data.message,
  25 + icon: 'none',
  26 + duration: 2000
  27 + })
  28 + }
  29 + resolve(res.data)*/
  30 + if (res && res.data && res.data.code && res.data.code == 200) {
  31 + resolve(res.data);
  32 + } else {
  33 + // uni.showToast({
  34 + // title: res.data.msg,
  35 + // icon: 'none',
  36 + // duration: 2000
  37 + // });
  38 + resolve(res.data);
  39 + }
  40 + },
  41 +
  42 + fail(err) {
  43 + reject(err);
  44 + }
  45 +
  46 + });
  47 + });
  48 +}; // request post 请求 Welcome1
  49 +
  50 +
  51 +const postData = (url, param) => {
  52 + return new Promise((resolve, reject) => {
  53 + uni.request({
  54 + url: ApiRootUrl + url,
  55 + method: 'POST',
  56 + header: {
  57 + 'content-type': 'application/json' // 默认值,返回的数据设置为json数组格式
  58 +
  59 + /* 'Authorization': wx.getStorageSync("tokenHead")+' '+wx.getStorageSync("token"),
  60 + 'Source':'wx'*/
  61 +
  62 + },
  63 + data: param,
  64 +
  65 + success(res) {
  66 + //console.log(res)
  67 + resolve(res.data);
  68 + },
  69 +
  70 + fail(err) {
  71 + console.log('fail',err)
  72 + reject(err);
  73 + }
  74 +
  75 + });
  76 + });
  77 +}; //获取阿里OSS
  78 +
  79 +
  80 +const getAliOss = url => {
  81 + return new Promise((resolve, reject) => {
  82 + uni.request({
  83 + url: ApiRootUrl + url,
  84 + method: 'get',
  85 +
  86 + success(res) {
  87 + resolve(res.data);
  88 + },
  89 +
  90 + fail(err) {
  91 + reject(err);
  92 + }
  93 +
  94 + });
  95 + });
  96 +}; // request post 请求 Welcome1
  97 +
  98 +
  99 +const getloninData = (url, param) => {
  100 + return new Promise((resolve, reject) => {
  101 + uni.request({
  102 + url: ApiRootUrl + url,
  103 + method: 'GET',
  104 + header: {
  105 + 'content-type': 'application/json' // 默认值,返回的数据设置为json数组格式
  106 +
  107 + },
  108 + data: param,
  109 +
  110 + success(res) {
  111 + //console.log(res)
  112 + resolve(res.data);
  113 + },
  114 +
  115 + fail(err) {
  116 + //console.log(err)
  117 + reject(err);
  118 + }
  119 +
  120 + });
  121 + });
  122 +};
  123 +
  124 +const postloninData = (url, param) => {
  125 + return new Promise((resolve, reject) => {
  126 + uni.request({
  127 + url: ApiRootUrl + url,
  128 + method: 'POST',
  129 + header: {
  130 + 'content-type': 'application/json' // 默认值,返回的数据设置为json数组格式
  131 +
  132 + },
  133 + data: param,
  134 +
  135 + success(res) {
  136 + // console.log('success',res)
  137 + resolve(res.data);
  138 + },
  139 +
  140 + fail(err) {
  141 + // console.log('fail',err)
  142 + reject(err);
  143 + }
  144 +
  145 + });
  146 + });
  147 +}; // loading加载提示
  148 +
  149 +
  150 +const showLoading = () => {
  151 + return new Promise((resolve, reject) => {
  152 + uni.showLoading({
  153 + title: '加载中...',
  154 + mask: true,
  155 +
  156 + success(res) {
  157 + uni.showLoading();
  158 + resolve(res);
  159 + },
  160 +
  161 + fail(err) {
  162 + reject(err);
  163 + }
  164 +
  165 + });
  166 + });
  167 +}; // 关闭loading
  168 +
  169 +
  170 +const hideLoading = () => {
  171 + return new Promise(resolve => {
  172 + uni.hideLoading();
  173 + resolve();
  174 + });
  175 +};
  176 +
  177 +module.exports = {
  178 + ApiRootUrl,
  179 + getData,
  180 + postData,
  181 + showLoading,
  182 + hideLoading,
  183 + getloninData,
  184 + postloninData,
  185 + getAliOss
  186 +};
  1 +const app = getApp();
  2 +const api = app.globalData.api;
  3 +
  4 +// 检查版本更新 2iOS 1安卓
  5 +export function checkVersion(type) {
  6 + return api.getData('/app/common/getVersion/' + type)
  7 +}
  8 +/// eula:用户协议 pp:隐私政策 help:使用帮助
  9 +export function getPrivacy(type) {
  10 + return api.getData('/app/common/getProtocol/' + type)
  11 +}
  1 +import deepMerge from '../vendors/deep-merge.js';
  2 +import deepClone from '../vendors/clone.js';
  3 +/**
  4 + * 格式化时间
  5 + * @param {Datetime} source 时间对象
  6 + * @param {String} format 格式
  7 + * @return {String} 格式化过后的时间
  8 + */
  9 +
  10 +const formatDate = (source, format) => {
  11 + const o = {
  12 + 'M+': source.getMonth() + 1,
  13 + // 月份
  14 + 'd+': source.getDate(),
  15 + // 日
  16 + 'H+': source.getHours(),
  17 + // 小时
  18 + 'm+': source.getMinutes(),
  19 + // 分
  20 + 's+': source.getSeconds(),
  21 + // 秒
  22 + 'q+': Math.floor((source.getMonth() + 3) / 3),
  23 + // 季度
  24 + 'f+': source.getMilliseconds() // 毫秒
  25 +
  26 + };
  27 +
  28 + if (/(y+)/.test(format)) {
  29 + format = format.replace(RegExp.$1, (source.getFullYear() + '').substr(4 - RegExp.$1.length));
  30 + }
  31 +
  32 + for (let k in o) {
  33 + if (new RegExp('(' + k + ')').test(format)) {
  34 + format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
  35 + }
  36 + }
  37 +
  38 + return format;
  39 +};
  40 +
  41 +const smartDate = originDate => {
  42 + let nowDate = new Date(),
  43 + isToday = false,
  44 + isYesterday = false,
  45 + isPastYear = false,
  46 + isPreviousYear = false,
  47 + originYear,
  48 + originMonth,
  49 + originDay,
  50 + diffMinute,
  51 + formatedDate;
  52 + originDate = new Date(originDate * 1000);
  53 + diffMinute = Math.round((nowDate.getTime() - originDate.getTime()) / (1000 * 60));
  54 + originYear = originDate.getFullYear();
  55 + originMonth = originDate.getMonth() + 1;
  56 + originDay = originDate.getDate();
  57 +
  58 + if (diffMinute <= nowDate.getHours() * 60) {
  59 + isToday = true;
  60 + }
  61 +
  62 + if (nowDate.getDate() - originDay == 1) {
  63 + isYesterday = true;
  64 + }
  65 +
  66 + if (nowDate.getFullYear() - originYear == 1) {
  67 + isPreviousYear = true;
  68 + } else if (nowDate.getFullYear() - originYear > 1) {
  69 + isPastYear = true;
  70 + }
  71 +
  72 + if (diffMinute < 30 && isToday) {
  73 + formatedDate = '刚刚';
  74 + } else if (diffMinute < 60 && isToday) {
  75 + formatedDate = `${diffMinute} 分钟前`;
  76 + } else if (diffMinute < 60 * 24 && isToday) {
  77 + formatedDate = `${Math.floor(diffMinute / 60)} 小时前`;
  78 + } else if (diffMinute < 60 * 24 * 2 && isYesterday) {
  79 + formatedDate = '昨天';
  80 + } else if (isPreviousYear) {
  81 + formatedDate = '去年';
  82 + } else if (isPastYear) {
  83 + formatedDate = `${originYear} 年`;
  84 + } else {
  85 + formatedDate = `${originMonth} ${originDay} 日`;
  86 + }
  87 +
  88 + return formatedDate;
  89 +};
  90 +
  91 +const isObject = val => {
  92 + return val != null && typeof val === 'object' && Array.isArray(val) === false;
  93 +};
  94 +
  95 +const isEmptyObject = obj => {
  96 + return Object.keys(obj).length == 0 && obj.constructor == Object;
  97 +};
  98 +
  99 +const assign = function (target) {
  100 + // We must check against these specific cases.
  101 + if (target === undefined || target === null) {
  102 + throw new TypeError('Cannot convert undefined or null to object');
  103 + }
  104 +
  105 + var output = Object(target);
  106 +
  107 + for (var index = 1; index < arguments.length; index++) {
  108 + var source = arguments[index];
  109 +
  110 + if (source !== undefined && source !== null) {
  111 + for (var nextKey in source) {
  112 + if (source.hasOwnProperty(nextKey)) {
  113 + output[nextKey] = source[nextKey];
  114 + }
  115 + }
  116 + }
  117 + }
  118 +
  119 + return output;
  120 +};
  121 +
  122 +const merge = (oldObj, newObj, genre = 'override') => {
  123 + let arrayMerge = (destArr, srcArr) => {
  124 + switch (genre) {
  125 + case 'concat':
  126 + return destArr.concat(srcArr);
  127 +
  128 + default:
  129 + return srcArr;
  130 + }
  131 + };
  132 +
  133 + return deepMerge(oldObj, newObj, {
  134 + arrayMerge: arrayMerge
  135 + });
  136 +};
  137 +
  138 +const clone = originData => deepClone(originData);
  139 +
  140 +const updateItemInArray = (array, itemId, updateItemCallback) => {
  141 + const updatedArray = array.map(item => {
  142 + if (item.id !== itemId) {
  143 + return item;
  144 + }
  145 +
  146 + return updateItemCallback(item);
  147 + });
  148 + return updatedArray;
  149 +};
  150 +
  151 +const trim = s => {
  152 + return s.replace(/(^\s*)|(\s*$)/g, "");
  153 +};
  154 +
  155 +const ArrayIndexOf = (arr, val) => {
  156 + for (let i = 0; i < arr.length; i++) {
  157 + if (arr[i] == val) return i;
  158 + }
  159 +
  160 + return -1;
  161 +};
  162 +
  163 +const ArrayRemove = (arr, val) => {
  164 + const index = ArrayIndexOf(arr, val);
  165 +
  166 + if (index > -1) {
  167 + arr.splice(index, 1);
  168 + }
  169 +
  170 + return arr;
  171 +}; //坐标系之间的转换
  172 +
  173 +
  174 +const coordinateChange = (lng, lat) => {
  175 + //定义一些常量
  176 + const x_PI = 3.14159265358979324 * 3000.0 / 180.0;
  177 + const PI = 3.1415926535897932384626;
  178 + const a = 6378245.0;
  179 + const ee = 0.00669342162296594323;
  180 +
  181 + const transformlat = (lng, lat) => {
  182 + const lat1 = +lat;
  183 + const lng1 = +lng;
  184 + let ret = -100.0 + 2.0 * lng1 + 3.0 * lat1 + 0.2 * lat1 * lat1 + 0.1 * lng1 * lat1 + 0.2 * Math.sqrt(Math.abs(lng1));
  185 + ret += (20.0 * Math.sin(6.0 * lng1 * PI) + 20.0 * Math.sin(2.0 * lng1 * PI)) * 2.0 / 3.0;
  186 + ret += (20.0 * Math.sin(lat1 * PI) + 40.0 * Math.sin(lat1 / 3.0 * PI)) * 2.0 / 3.0;
  187 + ret += (160.0 * Math.sin(lat1 / 12.0 * PI) + 320 * Math.sin(lat1 * PI / 30.0)) * 2.0 / 3.0;
  188 + return ret;
  189 + };
  190 +
  191 + const transformlng = (lng, lat) => {
  192 + const lat1 = +lat;
  193 + const lng1 = +lng;
  194 + let ret = 300.0 + lng1 + 2.0 * lat1 + 0.1 * lng1 * lng1 + 0.1 * lng1 * lat1 + 0.1 * Math.sqrt(Math.abs(lng1));
  195 + ret += (20.0 * Math.sin(6.0 * lng1 * PI) + 20.0 * Math.sin(2.0 * lng1 * PI)) * 2.0 / 3.0;
  196 + ret += (20.0 * Math.sin(lng1 * PI) + 40.0 * Math.sin(lng1 / 3.0 * PI)) * 2.0 / 3.0;
  197 + ret += (150.0 * Math.sin(lng1 / 12.0 * PI) + 300.0 * Math.sin(lng1 / 30.0 * PI)) * 2.0 / 3.0;
  198 + return ret;
  199 + };
  200 +
  201 + const lat2 = +lat;
  202 + const lng2 = +lng;
  203 + let dlat = transformlat(lng2 - 105.0, lat2 - 35.0);
  204 + let dlng = transformlng(lng2 - 105.0, lat2 - 35.0);
  205 + let radlat = lat2 / 180.0 * PI;
  206 + let magic = Math.sin(radlat);
  207 + magic = 1 - ee * magic * magic;
  208 + const sqrtmagic = Math.sqrt(magic);
  209 + dlat = dlat * 180.0 / (a * (1 - ee) / (magic * sqrtmagic) * PI);
  210 + dlng = dlng * 180.0 / (a / sqrtmagic * Math.cos(radlat) * PI);
  211 + let mglat = lat2 + dlat;
  212 + let mglng = lng2 + dlng;
  213 + mglat = +mglat;
  214 + mglng = +mglng;
  215 + const z = Math.sqrt(mglng * mglng + mglat * mglat) + 0.00002 * Math.sin(mglat * x_PI);
  216 + const theta = Math.atan2(mglat, mglng) + 0.000003 * Math.cos(mglng * x_PI);
  217 + const bd_lng = Number((z * Math.cos(theta) + 0.0065).toString().match(/^\d+(?:\.\d{0,5})?/));
  218 + const bd_lat = Number((z * Math.sin(theta) + 0.0065).toString().match(/^\d+(?:\.\d{0,5})?/));
  219 + return [bd_lng, bd_lat];
  220 +};
  221 +
  222 +module.exports = {
  223 + formatDate,
  224 + // 格式化时间
  225 + smartDate,
  226 + // 美化时间
  227 + isObject,
  228 + // 是不是对象
  229 + isEmptyObject,
  230 + // 是不是空对象
  231 + assign,
  232 + // 深复制
  233 + merge,
  234 + // 拼接 override 覆盖 concat 连接
  235 + clone,
  236 + // 克隆
  237 + updateItemInArray,
  238 + // 更新数组里某一项
  239 + trim,
  240 + // 去除前后空格
  241 + ArrayIndexOf,
  242 + // 数组里查找元素位置
  243 + ArrayRemove,
  244 + // 删除数组里的元素
  245 + coordinateChange //坐标系之间的转换
  246 +
  247 +};
  1 +import App from './App'
  2 +
  3 +// #ifndef VUE3
  4 +import Vue from 'vue'
  5 +import './uni.promisify.adaptor'
  6 +Vue.config.productionTip = false
  7 +App.mpType = 'app'
  8 +const app = new Vue({
  9 + ...App
  10 +})
  11 +app.$mount()
  12 +// #endif
  13 +
  14 +// #ifdef VUE3
  15 +import { createSSRApp } from 'vue'
  16 +export function createApp() {
  17 + const app = createSSRApp(App)
  18 + return {
  19 + app
  20 + }
  21 +}
  22 +// #endif
  1 +{
  2 + "name" : "download",
  3 + "appid" : "__UNI__E60B92C",
  4 + "description" : "",
  5 + "versionName" : "1.0.0",
  6 + "versionCode" : "100",
  7 + "transformPx" : false,
  8 + /* 5+App特有相关 */
  9 + "app-plus" : {
  10 + "usingComponents" : true,
  11 + "nvueStyleCompiler" : "uni-app",
  12 + "compilerVersion" : 3,
  13 + "splashscreen" : {
  14 + "alwaysShowBeforeRender" : true,
  15 + "waiting" : true,
  16 + "autoclose" : true,
  17 + "delay" : 0
  18 + },
  19 + /* 模块配置 */
  20 + "modules" : {},
  21 + /* 应用发布信息 */
  22 + "distribute" : {
  23 + /* android打包配置 */
  24 + "android" : {
  25 + "permissions" : [
  26 + "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
  27 + "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
  28 + "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
  29 + "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
  30 + "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
  31 + "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
  32 + "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
  33 + "<uses-permission android:name=\"android.permission.CAMERA\"/>",
  34 + "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
  35 + "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
  36 + "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
  37 + "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
  38 + "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
  39 + "<uses-feature android:name=\"android.hardware.camera\"/>",
  40 + "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
  41 + ]
  42 + },
  43 + /* ios打包配置 */
  44 + "ios" : {},
  45 + /* SDK配置 */
  46 + "sdkConfigs" : {}
  47 + }
  48 + },
  49 + /* 快应用特有相关 */
  50 + "quickapp" : {},
  51 + /* 小程序特有相关 */
  52 + "mp-weixin" : {
  53 + "appid" : "",
  54 + "setting" : {
  55 + "urlCheck" : false
  56 + },
  57 + "usingComponents" : true
  58 + },
  59 + "mp-alipay" : {
  60 + "usingComponents" : true
  61 + },
  62 + "mp-baidu" : {
  63 + "usingComponents" : true
  64 + },
  65 + "mp-toutiao" : {
  66 + "usingComponents" : true
  67 + },
  68 + "uniStatistics" : {
  69 + "enable" : false
  70 + },
  71 + "vueVersion" : "3"
  72 +}
  1 +{
  2 + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
  3 + {
  4 + "path": "pages/home",
  5 + "style": {
  6 + "navigationStyle": "custom",
  7 + "navigationBarTitleText": "uni-app"
  8 + }
  9 + },
  10 + {
  11 + "path": "pages/function",
  12 + "style": {
  13 + "navigationStyle": "custom",
  14 + "navigationBarTitleText": "产品功能"
  15 + }
  16 + },
  17 + {
  18 + "path": "pages/privacy",
  19 + "style": {
  20 + "navigationStyle": "custom",
  21 + "navigationBarTitleText": "隐私政策"
  22 + }
  23 + },
  24 + {
  25 + "path": "pages/permission",
  26 + "style": {
  27 + "navigationStyle": "custom",
  28 + "navigationBarTitleText": "应用权限"
  29 + }
  30 + }
  31 + ],
  32 + "globalStyle": {
  33 + "navigationBarTextStyle": "black",
  34 + "navigationBarTitleText": "uni-app",
  35 + "navigationBarBackgroundColor": "#F8F8F8",
  36 + "backgroundColor": "#F8F8F8"
  37 + },
  38 + "uniIdRouter": {}
  39 +}
  1 +<template>
  2 + <view class="page-home">
  3 + <navigation-bar :title="'产品功能'"/>
  4 + <view class="content">
  5 + <view class="title">你写我记是一款基于传统书写的智能笔记类APP,用户可根据自己习惯自由书写,书写内容实时呈现在你写我记APP上,线下线上任务同步进行使得工作学习效率更高。</view>
  6 + <view class="list_item" v-for="(item,index) in list" :key="index">
  7 + <view class="image_wrapper">
  8 + <image class="image" :src="item.icon" mode="aspectFit"></image>
  9 + </view>
  10 + <view class="des_wrapper" :style="{ borderColor: index % 2 == 0 ? '#D65656' : '#A5A5A5' }">{{item.title}}</view>
  11 + </view>
  12 + </view>
  13 + </view>
  14 +</template>
  15 +
  16 +<script>
  17 + import navigationBar from '../components/navigationBar.vue';
  18 + export default {
  19 + components: {
  20 + navigationBar
  21 + },
  22 + data() {
  23 + return {
  24 + list: [{title: "实体纸笔,传统书写", icon: "../static/function_list_1.png"},
  25 + {title: "蓝牙传输,一键连接", icon: "../static/function_list_2.png"},
  26 + {title: "线上线下,同步展示", icon: "../static/function_list_3.png"},
  27 + {title: "笔迹色彩,随心变换", icon: "../static/function_list_4.png"},
  28 + {title: "自由擦写,分类保存", icon: "../static/function_list_5.png"}
  29 + ]
  30 + }
  31 + },
  32 + onLoad() {
  33 +
  34 + },
  35 + methods: {
  36 +
  37 + getClass(index) {
  38 + return index % 2 == 0 ? "" : "";
  39 + }
  40 + }
  41 + }
  42 +
  43 +</script>
  44 +
  45 +<style lang="scss" scoped>
  46 + .page-home {
  47 + display: flex;
  48 + position: relative;
  49 + flex-direction: column;
  50 + width: 100%;
  51 + height:100vh;
  52 + background-color: #F5F5F5;
  53 + .content {
  54 + display: flex;
  55 + flex-direction: column;
  56 + // align-items: center;
  57 + // justify-content: center;
  58 + position: relative;
  59 + width: 100%;
  60 + .title {
  61 + display: flex;
  62 + margin-top: 20px;
  63 + margin-left: 20px;
  64 + margin-right: 20px;
  65 + flex-wrap: wrap;
  66 + line-height: 24px;
  67 + font-size: 14px;
  68 + color: #1F2229;
  69 + }
  70 + .list_item {
  71 + display: flex;
  72 + position: relative;
  73 + flex-direction: column;
  74 + // justify-content: center;
  75 + align-items: center;
  76 + margin-top: 30px;
  77 + .image_wrapper {
  78 + display: flex;
  79 + position: absolute;
  80 + top: 0;
  81 + left: 50%;
  82 + right: 50%;
  83 + width: 32px;
  84 + height: 32px;
  85 + .image {
  86 + width: 32px;
  87 + height: 32px;
  88 + }
  89 + }
  90 + .des_wrapper {
  91 + display: flex;
  92 + justify-content: center;
  93 + align-items: center;
  94 + // border-color: #D65656;
  95 + border-radius: 8px;
  96 + border-style: solid;
  97 + border-width: 1px;
  98 + width: 80%;
  99 + height: 50px;
  100 + margin-top: 20px;
  101 + font-size: 16px;
  102 + color: #2D2D2D;
  103 + font-weight: 500;
  104 + }
  105 + }
  106 + }
  107 + }
  108 +</style>
  1 +<template>
  2 + <view class="page-home">
  3 + <view class="top_bg"></view>
  4 + <view class="content">
  5 +
  6 + <view class="close_wrapper">
  7 + <image class="image" src="../static/download_close.png" mode="aspectFit"></image>
  8 + </view>
  9 + <view class="title">app下载</view>
  10 + <view class="logo_wrapper">
  11 + <image class="image" src="/static/logo.png" mode="aspectFit"></image>
  12 + </view>
  13 + <view class="appname_wrapper">
  14 + <image class="image" src="../static/download_title.png" mode="aspectFit"></image>
  15 + </view>
  16 + <view class="des_wrapper">开启智慧党建学习之旅</view>
  17 + <view class="download_type_item" @click="gotoDownloadIOS">
  18 + <view class="icon_wrapper">
  19 + <image class="image" src="/static/home_apple.png" mode="aspectFit"></image>
  20 + <view class="item_title">iOS版</view>
  21 + </view>
  22 + <view class="item_version">v1.0.1</view>
  23 + </view>
  24 + <view class="download_type_item" @click="gotoDownloadAndroid">
  25 + <view class="icon_wrapper">
  26 + <image class="image" src="/static/home_anzhuo.png" mode="aspectFit"></image>
  27 + <view class="item_title">Android版</view>
  28 + </view>
  29 + <view class="item_version">v1.0.1</view>
  30 + </view>
  31 + <!-- <view class="download_normal">
  32 + <view class="download_type_item" style="justify-content: center;">立即下载</view>
  33 + <view class="download_version">v1.0.1</view>
  34 + </view> -->
  35 + </view>
  36 + <view class="bottom_wrapper">
  37 + <view class="bottom_item_wrapper">
  38 + <view class="bottom_item" @click="goto(1)">应用权限</view>
  39 + <view class="line"></view>
  40 + <view class="bottom_item" @click="goto(2)">隐私政策</view>
  41 + <view class="line"></view>
  42 + <view class="bottom_item" @click="goto(3)">产品功能</view>
  43 + </view>
  44 + <view class="bottom_title">开发者:大有国信(北京)技术有限公司</view>
  45 + </view>
  46 + </view>
  47 +</template>
  48 +
  49 +<script>
  50 + export default {
  51 + data() {
  52 + return {
  53 + title: 'Hello',
  54 + apkUrl: "https://app.dyguoxin.com/android/smartPen.apk",
  55 + iosURl: "https://testflight.apple.com/join/2etMUNQS",
  56 + }
  57 + },
  58 + onLoad() {
  59 +
  60 + },
  61 + methods: {
  62 + gotoDownloadAndroid() {
  63 +
  64 + if (process.env.UNI_PLATFORM === 'h5') {
  65 + // 这里是H5环境下使用的代码
  66 + console.error('h5')
  67 + window.location.href = this.apkUrl;
  68 + } else {
  69 + // 这里是APP环境下使用的代码
  70 + this.redirectToStore()
  71 + }
  72 +
  73 + },
  74 + gotoDownloadIOS() {
  75 + if (process.env.UNI_PLATFORM === 'h5') {
  76 + // 这里是H5环境下使用的代码
  77 + window.location.href = this.iosURl;
  78 + } else {
  79 + // 这里是APP环境下使用的代码
  80 + this.redirectToStore()
  81 + }
  82 + },
  83 + safeAreaInsets() {
  84 + return uni.getSystemInfoSync().safeAreaInsets.bottom
  85 + },
  86 + redirectToStore() {
  87 +
  88 + let platform = plus.os.name.toLocaleLowerCase();
  89 + if (platform.toLowerCase() === 'android') {
  90 + if (this.apkUrl) {
  91 + // 如果有提供的APK链接,则尝试直接下载并安装
  92 + plus.runtime.openURL(this.apkUrl);
  93 + } else {
  94 + // 否则,打开Google Play或其他市场的链接
  95 + plus.runtime.openURL(`market://details?id=${appId}`);
  96 + }
  97 + } else if (platform.toLowerCase() === 'ios') {
  98 + plus.runtime.openURL(this.iosURl);
  99 + }
  100 + },
  101 + //全屏高
  102 + getCurrentHeight() {
  103 + var h = 0;
  104 + let device = uni.getSystemInfoSync();
  105 + let screenHeight = device.screenHeight;
  106 + let statusBarHeight = device.statusBarHeight;
  107 + let safeAreaInsets = device.safeAreaInsets.bottom
  108 + h = screenHeight - statusBarHeight;
  109 + h -= 44;
  110 + h -= 60;
  111 + if (isLoadMore.value) {
  112 + h -= 40;
  113 + }
  114 + return h - safeAreaInsets + "px";
  115 + },
  116 + goto(index) {
  117 +
  118 + var url = ""
  119 + if (index == 1) {
  120 + url = "/pages/permission"
  121 +
  122 + } else if (index == 2) {
  123 + url = "/pages/privacy"
  124 + } else {
  125 + url = "/pages/function"
  126 + }
  127 + uni.navigateTo({
  128 + url: url
  129 + })
  130 + }
  131 + }
  132 + }
  133 +</script>
  134 +
  135 +<style lang="scss" scoped>
  136 + .page-home {
  137 + display: flex;
  138 + position: relative;
  139 + flex-direction: column;
  140 + justify-content: space-between;
  141 + width: 100%;
  142 + height:100vh;
  143 + background-color: #F5F5F5;
  144 + .top_bg {
  145 + display: flex;
  146 + position: absolute;
  147 + width: 100%;
  148 + height: 310px;
  149 + top: 0;
  150 + left: 0;
  151 + background: linear-gradient(to bottom, #BC1212, #f5f5f5);
  152 + z-index: 0;
  153 + }
  154 + .content {
  155 + display: flex;
  156 + flex-direction: column;
  157 + align-items: center;
  158 + justify-content: center;
  159 + position: relative;
  160 + flex-direction: column;
  161 + width: 100%;
  162 +
  163 + .title {
  164 + margin-top: 54px;
  165 + color: #FFE8C3;
  166 + font-size: 17px;
  167 + }
  168 +
  169 + .logo_wrapper {
  170 + margin-top: 60px;
  171 + display: flex;
  172 + justify-content: center;
  173 + align-items: center;
  174 + width: 72px;
  175 + height: 72px;
  176 + background: #ffffff;
  177 + border-radius: 10px;
  178 +
  179 + .image {
  180 + width: 42px;
  181 + height: 47px;
  182 + }
  183 + }
  184 +
  185 + .appname_wrapper {
  186 + display: flex;
  187 + justify-content: center;
  188 + align-items: center;
  189 + width: 88px;
  190 + height: 20px;
  191 + margin-top: 22px;
  192 + .image {
  193 + width: 88px;
  194 + height: 20px;
  195 + }
  196 + }
  197 + .des_wrapper {
  198 + margin-top: 21px;
  199 + font-size: 16px;
  200 + color: #757373;
  201 + }
  202 +
  203 +
  204 +
  205 + .close_wrapper {
  206 + display: flex;
  207 + position: absolute;
  208 + top: 52px;
  209 + left: 10px;
  210 + width: 44px;
  211 + height: 44px;
  212 +
  213 + .image {
  214 + width: 20px;
  215 + height: 20px;
  216 + }
  217 + }
  218 +
  219 + .download_type_item {
  220 + display: flex;
  221 + flex-direction: row;
  222 + justify-content: space-between;
  223 + border-radius: 10px;
  224 + height: 60px;
  225 + width: 60%;
  226 + background: linear-gradient(to right, #D82222, #B81F1F);
  227 + margin-top: 20px;
  228 + align-items: center;
  229 + color: #ffffff;
  230 +
  231 + .icon_wrapper {
  232 + display: flex;
  233 + flex-direction: row;
  234 + margin-left: 19px;
  235 +
  236 + .image {
  237 + width: 20px;
  238 + height: 24px;
  239 + }
  240 +
  241 + .item_title {
  242 + color: #ffffff;
  243 + margin-left: 14px;
  244 + }
  245 + }
  246 +
  247 + .item_version {
  248 + color: #F3AFAF;
  249 + margin-right: 14px;
  250 + }
  251 + }
  252 +
  253 + .download_normal {
  254 + display: flex;
  255 + flex-direction: column;
  256 + width: 100%;
  257 + align-items: center;
  258 +
  259 + .download_version {
  260 + color: #D67C7C;
  261 + margin-top: 10px;
  262 + }
  263 + }
  264 +
  265 +
  266 + }
  267 +
  268 + .bottom_wrapper {
  269 + display: flex;
  270 + width: 100%;
  271 + flex-direction: column;
  272 + margin-bottom: 30px;
  273 + .bottom_item_wrapper {
  274 + display: flex;
  275 + flex-direction: row;
  276 + justify-content: center;
  277 + align-items: center;
  278 + margin-bottom: 11px;
  279 +
  280 + .bottom_item {
  281 + color: #626B76;
  282 + font-size: 12px;
  283 + }
  284 +
  285 + .line {
  286 + width: 1px;
  287 + height: 10px;
  288 + background-color: #626B76;
  289 + margin-left: 8px;
  290 + margin-right: 8px;
  291 + }
  292 +
  293 + }
  294 +
  295 + .bottom_title {
  296 + display: flex;
  297 + width: 100%;
  298 + flex-direction: column;
  299 + align-items: center;
  300 + color: #626B76;
  301 + font-size: 12px;
  302 + }
  303 + }
  304 + }
  305 +</style>
  1 +<template>
  2 + <view class="content">
  3 + <image class="logo" src="/static/logo.png"></image>
  4 + <view class="text-area">
  5 + <text class="title">{{title}}</text>
  6 + </view>
  7 + </view>
  8 +</template>
  9 +
  10 +<script>
  11 + export default {
  12 + data() {
  13 + return {
  14 + title: 'Hello'
  15 + }
  16 + },
  17 + onLoad() {
  18 +
  19 + },
  20 + methods: {
  21 +
  22 + }
  23 + }
  24 +</script>
  25 +
  26 +<style>
  27 + .content {
  28 + display: flex;
  29 + flex-direction: column;
  30 + align-items: center;
  31 + justify-content: center;
  32 + }
  33 +
  34 + .logo {
  35 + height: 200rpx;
  36 + width: 200rpx;
  37 + margin-top: 200rpx;
  38 + margin-left: auto;
  39 + margin-right: auto;
  40 + margin-bottom: 50rpx;
  41 + }
  42 +
  43 + .text-area {
  44 + display: flex;
  45 + justify-content: center;
  46 + }
  47 +
  48 + .title {
  49 + font-size: 36rpx;
  50 + color: #8f8f94;
  51 + }
  52 +</style>
  1 +<template>
  2 + <view class="page-home">
  3 + <navigation-bar :title="'应用权限'"/>
  4 + <view class="content">
  5 + <view class="list_item" v-for="(item,index) in list" :key="index">
  6 + <view class="image_wrapper">
  7 + <image class="image" :src="item.icon" mode="aspectFit"></image>
  8 + </view>
  9 + <view class="text_wrapper">
  10 + <view class="title">{{item.title}}</view>
  11 + <view class="des">{{item.des}}</view>
  12 + </view>
  13 + </view>
  14 + </view>
  15 + </view>
  16 +</template>
  17 +
  18 +<script>
  19 + import navigationBar from '../components/navigationBar.vue';
  20 + export default {
  21 + data() {
  22 + return {
  23 + list: [{title: "网络权限", icon: "../static/permission_1.png", des: "允许查看、访问网络连接"},
  24 + {title: "蓝牙权限 ", icon: "../static/permission_2.png", des: "允许使用蓝牙,允许发现和配对新的蓝牙设备,允许程序连接配对过的蓝牙设备"},
  25 + {title: "储存权限", icon: "../static/permission_3.png", des: "允许查看、使用内部储存,上传/下载笔记相关的文字图片"},
  26 + {title: "相机权限", icon: "../static/permission_4.png", des: "允许使用摄像头,拍照设置用户头像"}
  27 + ]
  28 + }
  29 + },
  30 + components: {
  31 + navigationBar
  32 + },
  33 + onLoad() {
  34 +
  35 + },
  36 + methods: {
  37 +
  38 + }
  39 + }
  40 +
  41 +</script>
  42 +
  43 +<style lang="scss" scoped>
  44 + .page-home {
  45 + display: flex;
  46 + position: relative;
  47 + flex-direction: column;
  48 + width: 100%;
  49 + height:100vh;
  50 + background-color: #F5F5F5;
  51 + .content {
  52 + display: flex;
  53 + flex-direction: column;
  54 + position: relative;
  55 + width: 100%;
  56 + .list_item {
  57 + display: flex;
  58 + position: relative;
  59 + flex-direction: row;
  60 + justify-content: space-between;
  61 + margin-top: 30px;
  62 +
  63 + .image_wrapper {
  64 + display: flex;
  65 + margin-left: 24px;
  66 + width: 56px;
  67 + height: 56px;
  68 + .image {
  69 + width: 56px;
  70 + height: 56px;
  71 + }
  72 + }
  73 + .text_wrapper {
  74 + display: flex;
  75 + flex: 1;
  76 + flex-direction: column;
  77 + margin-left: 16px;
  78 + margin-right: 26px;
  79 + .title {
  80 + display: flex;
  81 + height: 25px;
  82 + // justify-content: center;
  83 + font-size: 18px;
  84 + color: #2D2D2D;
  85 + font-weight: 500;
  86 + }
  87 + .des {
  88 + font-size: 14px;
  89 + color: #626B76;
  90 + flex-wrap: wrap;
  91 + margin-top: 8px;
  92 + line-height: 20px;
  93 + }
  94 + }
  95 +
  96 + }
  97 + }
  98 + }
  99 +</style>
  1 +<template>
  2 + <view class="page-home">
  3 + <navigation-bar :title="'隐私政策'"/>
  4 + <view class="content">
  5 +
  6 +
  7 + </view>
  8 + </view>
  9 +</template>
  10 +
  11 +<script>
  12 + import navigationBar from '../components/navigationBar.vue';
  13 + import * as API_download from "@/libs/download.js";
  14 +
  15 + export default {
  16 + components: {
  17 + navigationBar
  18 + },
  19 + data() {
  20 + return {
  21 +
  22 + }
  23 + },
  24 + onLoad() {
  25 + this.requestPrivacy()
  26 + },
  27 + methods: {
  28 + requestPrivacy() {
  29 + // API_download.getPrivacy("pp").then((res) => {
  30 + // console.log("getPrivacy", res)
  31 + // }).catch((error) => {
  32 + // console.log(error)
  33 + // })
  34 + }
  35 + }
  36 + }
  37 +
  38 +</script>
  39 +
  40 +<style lang="scss" scoped>
  41 + .page-home {
  42 + display: flex;
  43 + position: relative;
  44 + flex-direction: column;
  45 + justify-content: space-between;
  46 + width: 100%;
  47 + height:100vh;
  48 + background-color: #F5F5F5;
  49 + .content {
  50 + display: flex;
  51 + flex-direction: column;
  52 + align-items: center;
  53 + justify-content: center;
  54 + position: relative;
  55 + flex-direction: column;
  56 + width: 100%;
  57 +
  58 + }
  59 + }
  60 +</style>
  1 +uni.addInterceptor({
  2 + returnValue (res) {
  3 + if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
  4 + return res;
  5 + }
  6 + return new Promise((resolve, reject) => {
  7 + res.then((res) => {
  8 + if (!res) return resolve(res)
  9 + return res[0] ? reject(res[0]) : resolve(res[1])
  10 + });
  11 + });
  12 + },
  13 +});
  1 +/**
  2 + * 这里是uni-app内置的常用样式变量
  3 + *
  4 + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
  5 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
  6 + *
  7 + */
  8 +
  9 +/**
  10 + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
  11 + *
  12 + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
  13 + */
  14 +
  15 +/* 颜色变量 */
  16 +
  17 +/* 行为相关颜色 */
  18 +$uni-color-primary: #007aff;
  19 +$uni-color-success: #4cd964;
  20 +$uni-color-warning: #f0ad4e;
  21 +$uni-color-error: #dd524d;
  22 +
  23 +/* 文字基本颜色 */
  24 +$uni-text-color:#333;//基本色
  25 +$uni-text-color-inverse:#fff;//反色
  26 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
  27 +$uni-text-color-placeholder: #808080;
  28 +$uni-text-color-disable:#c0c0c0;
  29 +
  30 +/* 背景颜色 */
  31 +$uni-bg-color:#ffffff;
  32 +$uni-bg-color-grey:#f8f8f8;
  33 +$uni-bg-color-hover:#f1f1f1;//点击状态颜色
  34 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
  35 +
  36 +/* 边框颜色 */
  37 +$uni-border-color:#c8c7cc;
  38 +
  39 +/* 尺寸变量 */
  40 +
  41 +/* 文字尺寸 */
  42 +$uni-font-size-sm:12px;
  43 +$uni-font-size-base:14px;
  44 +$uni-font-size-lg:16px;
  45 +
  46 +/* 图片尺寸 */
  47 +$uni-img-size-sm:20px;
  48 +$uni-img-size-base:26px;
  49 +$uni-img-size-lg:40px;
  50 +
  51 +/* Border Radius */
  52 +$uni-border-radius-sm: 2px;
  53 +$uni-border-radius-base: 3px;
  54 +$uni-border-radius-lg: 6px;
  55 +$uni-border-radius-circle: 50%;
  56 +
  57 +/* 水平间距 */
  58 +$uni-spacing-row-sm: 5px;
  59 +$uni-spacing-row-base: 10px;
  60 +$uni-spacing-row-lg: 15px;
  61 +
  62 +/* 垂直间距 */
  63 +$uni-spacing-col-sm: 4px;
  64 +$uni-spacing-col-base: 8px;
  65 +$uni-spacing-col-lg: 12px;
  66 +
  67 +/* 透明度 */
  68 +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
  69 +
  70 +/* 文章场景相关 */
  71 +$uni-color-title: #2C405A; // 文章标题颜色
  72 +$uni-font-size-title:20px;
  73 +$uni-color-subtitle: #555555; // 二级标题颜色
  74 +$uni-font-size-subtitle:26px;
  75 +$uni-color-paragraph: #3F536E; // 文章段落颜色
  76 +$uni-font-size-paragraph:15px;
  1 +{
  2 + "hash": "05be0357",
  3 + "configHash": "19a5217b",
  4 + "lockfileHash": "218b67e7",
  5 + "browserHash": "b372db73",
  6 + "optimized": {},
  7 + "chunks": {}
  8 +}
  1 +{
  2 + "type": "module"
  3 +}
  1 +"use strict";
  2 +Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
  3 +const common_vendor = require("./common/vendor.js");
  4 +if (!Math) {
  5 + "./pages/home.js";
  6 + "./pages/function.js";
  7 + "./pages/privacy.js";
  8 + "./pages/permission.js";
  9 +}
  10 +const _sfc_main = {
  11 + onLaunch: function() {
  12 + console.log("App Launch");
  13 + },
  14 + onShow: function() {
  15 + console.log("App Show");
  16 + },
  17 + onHide: function() {
  18 + console.log("App Hide");
  19 + }
  20 +};
  21 +function createApp() {
  22 + const app = common_vendor.createSSRApp(_sfc_main);
  23 + return {
  24 + app
  25 + };
  26 +}
  27 +createApp().app.mount("#app");
  28 +exports.createApp = createApp;
  1 +{
  2 + "pages": [
  3 + "pages/home",
  4 + "pages/function",
  5 + "pages/privacy",
  6 + "pages/permission"
  7 + ],
  8 + "window": {
  9 + "navigationBarTextStyle": "black",
  10 + "navigationBarTitleText": "uni-app",
  11 + "navigationBarBackgroundColor": "#F8F8F8",
  12 + "backgroundColor": "#F8F8F8"
  13 + },
  14 + "usingComponents": {}
  15 +}
  1 +
  2 + /*每个页面公共css */
  3 +page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}
  1 +"use strict";
  2 +const _imports_0$1 = "/static/download_close.png";
  3 +const _imports_1 = "/static/logo.png";
  4 +const _imports_2 = "/static/download_title.png";
  5 +const _imports_3 = "/static/home_apple.png";
  6 +const _imports_4 = "/static/home_anzhuo.png";
  7 +const _imports_0 = "/static/navigation_back.png";
  8 +exports._imports_0 = _imports_0$1;
  9 +exports._imports_0$1 = _imports_0;
  10 +exports._imports_1 = _imports_1;
  11 +exports._imports_2 = _imports_2;
  12 +exports._imports_3 = _imports_3;
  13 +exports._imports_4 = _imports_4;
This diff could not be displayed because it is too large.
  1 +"use strict";
  2 +const common_vendor = require("../common/vendor.js");
  3 +const common_assets = require("../common/assets.js");
  4 +const _sfc_main = {
  5 + props: {
  6 + title: String
  7 + },
  8 + data() {
  9 + return {};
  10 + },
  11 + computed: {
  12 + safeAreaInsets() {
  13 + return common_vendor.index.getSystemInfoSync().safeAreaInsets.bottom;
  14 + },
  15 + statusHeight() {
  16 + let device = common_vendor.index.getSystemInfoSync();
  17 + return device.statusBarHeight + "px";
  18 + },
  19 + getNavigationHeight() {
  20 + var h = 0;
  21 + let device = common_vendor.index.getSystemInfoSync();
  22 + device.statusBarHeight;
  23 + h += 44;
  24 + return h + "px";
  25 + }
  26 + },
  27 + onLoad() {
  28 + },
  29 + methods: {
  30 + backClick() {
  31 + common_vendor.index.navigateBack();
  32 + }
  33 + }
  34 +};
  35 +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  36 + return {
  37 + a: common_assets._imports_0$1,
  38 + b: $options.statusHeight,
  39 + c: common_vendor.o((...args) => $options.backClick && $options.backClick(...args)),
  40 + d: common_vendor.t($props.title),
  41 + e: $options.statusHeight,
  42 + f: $options.getNavigationHeight
  43 + };
  44 +}
  45 +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d53d6386"]]);
  46 +wx.createComponent(Component);
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
  1 +<view class="navigation data-v-d53d6386" style="{{'height:' + f}}"><view class="back_btn data-v-d53d6386" style="{{'margin-top:' + b}}" bindtap="{{c}}"><image class="image data-v-d53d6386" src="{{a}}" mode="aspectFit"></image></view><view class="title data-v-d53d6386" style="{{'top:' + e}}">{{d}}</view></view>
  1 +/**
  2 + * 这里是uni-app内置的常用样式变量
  3 + *
  4 + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
  5 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
  6 + *
  7 + */
  8 +/**
  9 + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
  10 + *
  11 + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
  12 + */
  13 +/* 颜色变量 */
  14 +/* 行为相关颜色 */
  15 +/* 文字基本颜色 */
  16 +/* 背景颜色 */
  17 +/* 边框颜色 */
  18 +/* 尺寸变量 */
  19 +/* 文字尺寸 */
  20 +/* 图片尺寸 */
  21 +/* Border Radius */
  22 +/* 水平间距 */
  23 +/* 垂直间距 */
  24 +/* 透明度 */
  25 +/* 文章场景相关 */
  26 +.navigation.data-v-d53d6386 {
  27 + display: flex;
  28 + flex-direction: row;
  29 + position: relative;
  30 + background: linear-gradient(to right, #D82222, #B81F1F);
  31 + align-items: center;
  32 +}
  33 +.navigation .back_btn.data-v-d53d6386 {
  34 + display: flex;
  35 + width: 44px;
  36 + height: 44px;
  37 + justify-content: center;
  38 + align-items: center;
  39 +}
  40 +.navigation .back_btn .image.data-v-d53d6386 {
  41 + width: 20px;
  42 + height: 20px;
  43 +}
  44 +.navigation .title.data-v-d53d6386 {
  45 + display: flex;
  46 + top: 0;
  47 + left: 50%;
  48 + right: 50%;
  49 + height: 44px;
  50 + width: 100%;
  51 + margin-right: 44px;
  52 + justify-content: center;
  53 + align-items: center;
  54 + flex-direction: row;
  55 + color: #FFE8C3;
  56 +}
  1 +"use strict";
  2 +const app = getApp();
  3 +app.globalData.api;
  1 +"use strict";
  2 +const common_vendor = require("../common/vendor.js");
  3 +const navigationBar = () => "../components/navigationBar.js";
  4 +const _sfc_main = {
  5 + components: {
  6 + navigationBar
  7 + },
  8 + data() {
  9 + return {
  10 + list: [
  11 + { title: "实体纸笔,传统书写", icon: "../static/function_list_1.png" },
  12 + { title: "蓝牙传输,一键连接", icon: "../static/function_list_2.png" },
  13 + { title: "线上线下,同步展示", icon: "../static/function_list_3.png" },
  14 + { title: "笔迹色彩,随心变换", icon: "../static/function_list_4.png" },
  15 + { title: "自由擦写,分类保存", icon: "../static/function_list_5.png" }
  16 + ]
  17 + };
  18 + },
  19 + onLoad() {
  20 + },
  21 + methods: {
  22 + getClass(index) {
  23 + return index % 2 == 0 ? "" : "";
  24 + }
  25 + }
  26 +};
  27 +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  28 + return {
  29 + a: common_vendor.f($data.list, (item, index, i0) => {
  30 + return {
  31 + a: item.icon,
  32 + b: common_vendor.t(item.title),
  33 + c: index % 2 == 0 ? "#D65656" : "#A5A5A5",
  34 + d: index
  35 + };
  36 + })
  37 + };
  38 +}
  39 +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-6d5a3fba"]]);
  40 +wx.createPage(MiniProgramPage);
  1 +{
  2 + "navigationStyle": "custom",
  3 + "navigationBarTitleText": "产品功能",
  4 + "usingComponents": {}
  5 +}
  1 +<view class="page-home data-v-6d5a3fba"><navigation-bar class="data-v-6d5a3fba" title="{{'产品功能'}}"/><view class="content data-v-6d5a3fba"><view class="title data-v-6d5a3fba">你写我记是一款基于传统书写的智能笔记类APP,用户可根据自己习惯自由书写,书写内容实时呈现在你写我记APP上,线下线上任务同步进行使得工作学习效率更高。</view><view wx:for="{{a}}" wx:for-item="item" wx:key="d" class="list_item data-v-6d5a3fba"><view class="image_wrapper data-v-6d5a3fba"><image class="image data-v-6d5a3fba" src="{{item.a}}" mode="aspectFit"></image></view><view class="des_wrapper data-v-6d5a3fba" style="{{'border-color:' + item.c}}">{{item.b}}</view></view></view></view>
  1 +/**
  2 + * 这里是uni-app内置的常用样式变量
  3 + *
  4 + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
  5 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
  6 + *
  7 + */
  8 +/**
  9 + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
  10 + *
  11 + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
  12 + */
  13 +/* 颜色变量 */
  14 +/* 行为相关颜色 */
  15 +/* 文字基本颜色 */
  16 +/* 背景颜色 */
  17 +/* 边框颜色 */
  18 +/* 尺寸变量 */
  19 +/* 文字尺寸 */
  20 +/* 图片尺寸 */
  21 +/* Border Radius */
  22 +/* 水平间距 */
  23 +/* 垂直间距 */
  24 +/* 透明度 */
  25 +/* 文章场景相关 */
  26 +.page-home.data-v-6d5a3fba {
  27 + display: flex;
  28 + position: relative;
  29 + flex-direction: column;
  30 + width: 100%;
  31 + height: 100vh;
  32 + background-color: #F5F5F5;
  33 +}
  34 +.page-home .content.data-v-6d5a3fba {
  35 + display: flex;
  36 + flex-direction: column;
  37 + position: relative;
  38 + width: 100%;
  39 +}
  40 +.page-home .content .title.data-v-6d5a3fba {
  41 + display: flex;
  42 + margin-top: 20px;
  43 + margin-left: 20px;
  44 + margin-right: 20px;
  45 + flex-wrap: wrap;
  46 + line-height: 24px;
  47 + font-size: 14px;
  48 + color: #1F2229;
  49 +}
  50 +.page-home .content .list_item.data-v-6d5a3fba {
  51 + display: flex;
  52 + position: relative;
  53 + flex-direction: column;
  54 + align-items: center;
  55 + margin-top: 30px;
  56 +}
  57 +.page-home .content .list_item .image_wrapper.data-v-6d5a3fba {
  58 + display: flex;
  59 + position: absolute;
  60 + top: 0;
  61 + left: 50%;
  62 + right: 50%;
  63 + width: 32px;
  64 + height: 32px;
  65 +}
  66 +.page-home .content .list_item .image_wrapper .image.data-v-6d5a3fba {
  67 + width: 32px;
  68 + height: 32px;
  69 +}
  70 +.page-home .content .list_item .des_wrapper.data-v-6d5a3fba {
  71 + display: flex;
  72 + justify-content: center;
  73 + align-items: center;
  74 + border-radius: 8px;
  75 + border-style: solid;
  76 + border-width: 1px;
  77 + width: 80%;
  78 + height: 50px;
  79 + margin-top: 20px;
  80 + font-size: 16px;
  81 + color: #2D2D2D;
  82 + font-weight: 500;
  83 +}
  1 +"use strict";
  2 +const common_vendor = require("../common/vendor.js");
  3 +const common_assets = require("../common/assets.js");
  4 +const _sfc_main = {
  5 + data() {
  6 + return {
  7 + title: "Hello",
  8 + apkUrl: "https://app.dyguoxin.com/android/smartPen.apk",
  9 + iosURl: "https://testflight.apple.com/join/2etMUNQS"
  10 + };
  11 + },
  12 + onLoad() {
  13 + },
  14 + methods: {
  15 + gotoDownloadAndroid() {
  16 + this.redirectToStore();
  17 + },
  18 + gotoDownloadIOS() {
  19 + this.redirectToStore();
  20 + },
  21 + safeAreaInsets() {
  22 + return common_vendor.index.getSystemInfoSync().safeAreaInsets.bottom;
  23 + },
  24 + redirectToStore() {
  25 + let platform = plus.os.name.toLocaleLowerCase();
  26 + if (platform.toLowerCase() === "android") {
  27 + if (this.apkUrl) {
  28 + plus.runtime.openURL(this.apkUrl);
  29 + } else {
  30 + plus.runtime.openURL(`market://details?id=${appId}`);
  31 + }
  32 + } else if (platform.toLowerCase() === "ios") {
  33 + plus.runtime.openURL(this.iosURl);
  34 + }
  35 + },
  36 + //全屏高
  37 + getCurrentHeight() {
  38 + var h = 0;
  39 + let device = common_vendor.index.getSystemInfoSync();
  40 + let screenHeight = device.screenHeight;
  41 + let statusBarHeight = device.statusBarHeight;
  42 + let safeAreaInsets = device.safeAreaInsets.bottom;
  43 + h = screenHeight - statusBarHeight;
  44 + h -= 44;
  45 + h -= 60;
  46 + if (isLoadMore.value) {
  47 + h -= 40;
  48 + }
  49 + return h - safeAreaInsets + "px";
  50 + },
  51 + goto(index) {
  52 + var url = "";
  53 + if (index == 1) {
  54 + url = "/pages/permission";
  55 + } else if (index == 2) {
  56 + url = "/pages/privacy";
  57 + } else {
  58 + url = "/pages/function";
  59 + }
  60 + common_vendor.index.navigateTo({
  61 + url
  62 + });
  63 + }
  64 + }
  65 +};
  66 +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  67 + return {
  68 + a: common_assets._imports_0,
  69 + b: common_assets._imports_1,
  70 + c: common_assets._imports_2,
  71 + d: common_assets._imports_3,
  72 + e: common_vendor.o((...args) => $options.gotoDownloadIOS && $options.gotoDownloadIOS(...args)),
  73 + f: common_assets._imports_4,
  74 + g: common_vendor.o((...args) => $options.gotoDownloadAndroid && $options.gotoDownloadAndroid(...args)),
  75 + h: common_vendor.o(($event) => $options.goto(1)),
  76 + i: common_vendor.o(($event) => $options.goto(2)),
  77 + j: common_vendor.o(($event) => $options.goto(3))
  78 + };
  79 +}
  80 +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-41317691"]]);
  81 +wx.createPage(MiniProgramPage);
  1 +{
  2 + "navigationStyle": "custom",
  3 + "navigationBarTitleText": "uni-app",
  4 + "usingComponents": {}
  5 +}
  1 +<view class="page-home data-v-41317691"><view class="top_bg data-v-41317691"></view><view class="content data-v-41317691"><view class="close_wrapper data-v-41317691"><image class="image data-v-41317691" src="{{a}}" mode="aspectFit"></image></view><view class="title data-v-41317691">app下载</view><view class="logo_wrapper data-v-41317691"><image class="image data-v-41317691" src="{{b}}" mode="aspectFit"></image></view><view class="appname_wrapper data-v-41317691"><image class="image data-v-41317691" src="{{c}}" mode="aspectFit"></image></view><view class="des_wrapper data-v-41317691">开启智慧党建学习之旅</view><view class="download_type_item data-v-41317691" bindtap="{{e}}"><view class="icon_wrapper data-v-41317691"><image class="image data-v-41317691" src="{{d}}" mode="aspectFit"></image><view class="item_title data-v-41317691">iOS版</view></view><view class="item_version data-v-41317691">v1.0.1</view></view><view class="download_type_item data-v-41317691" bindtap="{{g}}"><view class="icon_wrapper data-v-41317691"><image class="image data-v-41317691" src="{{f}}" mode="aspectFit"></image><view class="item_title data-v-41317691">Android版</view></view><view class="item_version data-v-41317691">v1.0.1</view></view></view><view class="bottom_wrapper data-v-41317691"><view class="bottom_item_wrapper data-v-41317691"><view class="bottom_item data-v-41317691" bindtap="{{h}}">应用权限</view><view class="line data-v-41317691"></view><view class="bottom_item data-v-41317691" bindtap="{{i}}">隐私政策</view><view class="line data-v-41317691"></view><view class="bottom_item data-v-41317691" bindtap="{{j}}">产品功能</view></view><view class="bottom_title data-v-41317691">开发者:大有国信(北京)技术有限公司</view></view></view>
  1 +/**
  2 + * 这里是uni-app内置的常用样式变量
  3 + *
  4 + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
  5 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
  6 + *
  7 + */
  8 +/**
  9 + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
  10 + *
  11 + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
  12 + */
  13 +/* 颜色变量 */
  14 +/* 行为相关颜色 */
  15 +/* 文字基本颜色 */
  16 +/* 背景颜色 */
  17 +/* 边框颜色 */
  18 +/* 尺寸变量 */
  19 +/* 文字尺寸 */
  20 +/* 图片尺寸 */
  21 +/* Border Radius */
  22 +/* 水平间距 */
  23 +/* 垂直间距 */
  24 +/* 透明度 */
  25 +/* 文章场景相关 */
  26 +.page-home.data-v-41317691 {
  27 + display: flex;
  28 + position: relative;
  29 + flex-direction: column;
  30 + justify-content: space-between;
  31 + width: 100%;
  32 + height: 100vh;
  33 + background-color: #F5F5F5;
  34 +}
  35 +.page-home .top_bg.data-v-41317691 {
  36 + display: flex;
  37 + position: absolute;
  38 + width: 100%;
  39 + height: 310px;
  40 + top: 0;
  41 + left: 0;
  42 + background: linear-gradient(to bottom, #BC1212, #f5f5f5);
  43 + z-index: 0;
  44 +}
  45 +.page-home .content.data-v-41317691 {
  46 + display: flex;
  47 + flex-direction: column;
  48 + align-items: center;
  49 + justify-content: center;
  50 + position: relative;
  51 + flex-direction: column;
  52 + width: 100%;
  53 +}
  54 +.page-home .content .title.data-v-41317691 {
  55 + margin-top: 54px;
  56 + color: #FFE8C3;
  57 + font-size: 17px;
  58 +}
  59 +.page-home .content .logo_wrapper.data-v-41317691 {
  60 + margin-top: 60px;
  61 + display: flex;
  62 + justify-content: center;
  63 + align-items: center;
  64 + width: 72px;
  65 + height: 72px;
  66 + background: #ffffff;
  67 + border-radius: 10px;
  68 +}
  69 +.page-home .content .logo_wrapper .image.data-v-41317691 {
  70 + width: 42px;
  71 + height: 47px;
  72 +}
  73 +.page-home .content .appname_wrapper.data-v-41317691 {
  74 + display: flex;
  75 + justify-content: center;
  76 + align-items: center;
  77 + width: 88px;
  78 + height: 20px;
  79 + margin-top: 22px;
  80 +}
  81 +.page-home .content .appname_wrapper .image.data-v-41317691 {
  82 + width: 88px;
  83 + height: 20px;
  84 +}
  85 +.page-home .content .des_wrapper.data-v-41317691 {
  86 + margin-top: 21px;
  87 + font-size: 16px;
  88 + color: #757373;
  89 +}
  90 +.page-home .content .close_wrapper.data-v-41317691 {
  91 + display: flex;
  92 + position: absolute;
  93 + top: 52px;
  94 + left: 10px;
  95 + width: 44px;
  96 + height: 44px;
  97 +}
  98 +.page-home .content .close_wrapper .image.data-v-41317691 {
  99 + width: 20px;
  100 + height: 20px;
  101 +}
  102 +.page-home .content .download_type_item.data-v-41317691 {
  103 + display: flex;
  104 + flex-direction: row;
  105 + justify-content: space-between;
  106 + border-radius: 10px;
  107 + height: 60px;
  108 + width: 60%;
  109 + background: linear-gradient(to right, #D82222, #B81F1F);
  110 + margin-top: 20px;
  111 + align-items: center;
  112 + color: #ffffff;
  113 +}
  114 +.page-home .content .download_type_item .icon_wrapper.data-v-41317691 {
  115 + display: flex;
  116 + flex-direction: row;
  117 + margin-left: 19px;
  118 +}
  119 +.page-home .content .download_type_item .icon_wrapper .image.data-v-41317691 {
  120 + width: 20px;
  121 + height: 24px;
  122 +}
  123 +.page-home .content .download_type_item .icon_wrapper .item_title.data-v-41317691 {
  124 + color: #ffffff;
  125 + margin-left: 14px;
  126 +}
  127 +.page-home .content .download_type_item .item_version.data-v-41317691 {
  128 + color: #F3AFAF;
  129 + margin-right: 14px;
  130 +}
  131 +.page-home .content .download_normal.data-v-41317691 {
  132 + display: flex;
  133 + flex-direction: column;
  134 + width: 100%;
  135 + align-items: center;
  136 +}
  137 +.page-home .content .download_normal .download_version.data-v-41317691 {
  138 + color: #D67C7C;
  139 + margin-top: 10px;
  140 +}
  141 +.page-home .bottom_wrapper.data-v-41317691 {
  142 + display: flex;
  143 + width: 100%;
  144 + flex-direction: column;
  145 + margin-bottom: 30px;
  146 +}
  147 +.page-home .bottom_wrapper .bottom_item_wrapper.data-v-41317691 {
  148 + display: flex;
  149 + flex-direction: row;
  150 + justify-content: center;
  151 + align-items: center;
  152 + margin-bottom: 11px;
  153 +}
  154 +.page-home .bottom_wrapper .bottom_item_wrapper .bottom_item.data-v-41317691 {
  155 + color: #626B76;
  156 + font-size: 12px;
  157 +}
  158 +.page-home .bottom_wrapper .bottom_item_wrapper .line.data-v-41317691 {
  159 + width: 1px;
  160 + height: 10px;
  161 + background-color: #626B76;
  162 + margin-left: 8px;
  163 + margin-right: 8px;
  164 +}
  165 +.page-home .bottom_wrapper .bottom_title.data-v-41317691 {
  166 + display: flex;
  167 + width: 100%;
  168 + flex-direction: column;
  169 + align-items: center;
  170 + color: #626B76;
  171 + font-size: 12px;
  172 +}
  1 +"use strict";
  2 +const common_vendor = require("../common/vendor.js");
  3 +const navigationBar = () => "../components/navigationBar.js";
  4 +const _sfc_main = {
  5 + data() {
  6 + return {
  7 + list: [
  8 + { title: "网络权限", icon: "../static/permission_1.png", des: "允许查看、访问网络连接" },
  9 + { title: "蓝牙权限 ", icon: "../static/permission_2.png", des: "允许使用蓝牙,允许发现和配对新的蓝牙设备,允许程序连接配对过的蓝牙设备" },
  10 + { title: "储存权限", icon: "../static/permission_3.png", des: "允许查看、使用内部储存,上传/下载笔记相关的文字图片" },
  11 + { title: "相机权限", icon: "../static/permission_4.png", des: "允许使用摄像头,拍照设置用户头像" }
  12 + ]
  13 + };
  14 + },
  15 + components: {
  16 + navigationBar
  17 + },
  18 + onLoad() {
  19 + },
  20 + methods: {}
  21 +};
  22 +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  23 + return {
  24 + a: common_vendor.f($data.list, (item, index, i0) => {
  25 + return {
  26 + a: item.icon,
  27 + b: common_vendor.t(item.title),
  28 + c: common_vendor.t(item.des),
  29 + d: index
  30 + };
  31 + })
  32 + };
  33 +}
  34 +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-8aa5a9a1"]]);
  35 +wx.createPage(MiniProgramPage);
  1 +{
  2 + "navigationStyle": "custom",
  3 + "navigationBarTitleText": "应用权限",
  4 + "usingComponents": {}
  5 +}
  1 +<view class="page-home data-v-8aa5a9a1"><navigation-bar class="data-v-8aa5a9a1" title="{{'应用权限'}}"/><view class="content data-v-8aa5a9a1"><view wx:for="{{a}}" wx:for-item="item" wx:key="d" class="list_item data-v-8aa5a9a1"><view class="image_wrapper data-v-8aa5a9a1"><image class="image data-v-8aa5a9a1" src="{{item.a}}" mode="aspectFit"></image></view><view class="text_wrapper data-v-8aa5a9a1"><view class="title data-v-8aa5a9a1">{{item.b}}</view><view class="des data-v-8aa5a9a1">{{item.c}}</view></view></view></view></view>
  1 +/**
  2 + * 这里是uni-app内置的常用样式变量
  3 + *
  4 + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
  5 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
  6 + *
  7 + */
  8 +/**
  9 + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
  10 + *
  11 + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
  12 + */
  13 +/* 颜色变量 */
  14 +/* 行为相关颜色 */
  15 +/* 文字基本颜色 */
  16 +/* 背景颜色 */
  17 +/* 边框颜色 */
  18 +/* 尺寸变量 */
  19 +/* 文字尺寸 */
  20 +/* 图片尺寸 */
  21 +/* Border Radius */
  22 +/* 水平间距 */
  23 +/* 垂直间距 */
  24 +/* 透明度 */
  25 +/* 文章场景相关 */
  26 +.page-home.data-v-8aa5a9a1 {
  27 + display: flex;
  28 + position: relative;
  29 + flex-direction: column;
  30 + width: 100%;
  31 + height: 100vh;
  32 + background-color: #F5F5F5;
  33 +}
  34 +.page-home .content.data-v-8aa5a9a1 {
  35 + display: flex;
  36 + flex-direction: column;
  37 + position: relative;
  38 + width: 100%;
  39 +}
  40 +.page-home .content .list_item.data-v-8aa5a9a1 {
  41 + display: flex;
  42 + position: relative;
  43 + flex-direction: row;
  44 + justify-content: space-between;
  45 + margin-top: 30px;
  46 +}
  47 +.page-home .content .list_item .image_wrapper.data-v-8aa5a9a1 {
  48 + display: flex;
  49 + margin-left: 24px;
  50 + width: 56px;
  51 + height: 56px;
  52 +}
  53 +.page-home .content .list_item .image_wrapper .image.data-v-8aa5a9a1 {
  54 + width: 56px;
  55 + height: 56px;
  56 +}
  57 +.page-home .content .list_item .text_wrapper.data-v-8aa5a9a1 {
  58 + display: flex;
  59 + flex: 1;
  60 + flex-direction: column;
  61 + margin-left: 16px;
  62 + margin-right: 26px;
  63 +}
  64 +.page-home .content .list_item .text_wrapper .title.data-v-8aa5a9a1 {
  65 + display: flex;
  66 + height: 25px;
  67 + font-size: 18px;
  68 + color: #2D2D2D;
  69 + font-weight: 500;
  70 +}
  71 +.page-home .content .list_item .text_wrapper .des.data-v-8aa5a9a1 {
  72 + font-size: 14px;
  73 + color: #626B76;
  74 + flex-wrap: wrap;
  75 + margin-top: 8px;
  76 + line-height: 20px;
  77 +}
  1 +"use strict";
  2 +require("../libs/download.js");
  3 +const common_vendor = require("../common/vendor.js");
  4 +const navigationBar = () => "../components/navigationBar.js";
  5 +const _sfc_main = {
  6 + components: {
  7 + navigationBar
  8 + },
  9 + data() {
  10 + return {};
  11 + },
  12 + onLoad() {
  13 + this.requestPrivacy();
  14 + },
  15 + methods: {
  16 + requestPrivacy() {
  17 + }
  18 + }
  19 +};
  20 +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  21 + return {};
  22 +}
  23 +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-82ab98bb"]]);
  24 +wx.createPage(MiniProgramPage);
  1 +{
  2 + "navigationStyle": "custom",
  3 + "navigationBarTitleText": "隐私政策",
  4 + "usingComponents": {}
  5 +}
  1 +<view class="page-home data-v-82ab98bb"><navigation-bar class="data-v-82ab98bb" title="{{'隐私政策'}}"/><view class="content data-v-82ab98bb"></view></view>
  1 +/**
  2 + * 这里是uni-app内置的常用样式变量
  3 + *
  4 + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
  5 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
  6 + *
  7 + */
  8 +/**
  9 + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
  10 + *
  11 + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
  12 + */
  13 +/* 颜色变量 */
  14 +/* 行为相关颜色 */
  15 +/* 文字基本颜色 */
  16 +/* 背景颜色 */
  17 +/* 边框颜色 */
  18 +/* 尺寸变量 */
  19 +/* 文字尺寸 */
  20 +/* 图片尺寸 */
  21 +/* Border Radius */
  22 +/* 水平间距 */
  23 +/* 垂直间距 */
  24 +/* 透明度 */
  25 +/* 文章场景相关 */
  26 +.page-home.data-v-82ab98bb {
  27 + display: flex;
  28 + position: relative;
  29 + flex-direction: column;
  30 + justify-content: space-between;
  31 + width: 100%;
  32 + height: 100vh;
  33 + background-color: #F5F5F5;
  34 +}
  35 +.page-home .content.data-v-82ab98bb {
  36 + display: flex;
  37 + flex-direction: column;
  38 + align-items: center;
  39 + justify-content: center;
  40 + position: relative;
  41 + flex-direction: column;
  42 + width: 100%;
  43 +}
  1 +{
  2 + "description": "项目配置文件。",
  3 + "packOptions": {
  4 + "ignore": [],
  5 + "include": []
  6 + },
  7 + "setting": {
  8 + "urlCheck": false,
  9 + "es6": true,
  10 + "postcss": false,
  11 + "minified": false,
  12 + "newFeature": true,
  13 + "bigPackageSizeSupport": true,
  14 + "babelSetting": {
  15 + "ignore": [],
  16 + "disablePlugins": [],
  17 + "outputPath": ""
  18 + }
  19 + },
  20 + "compileType": "miniprogram",
  21 + "libVersion": "3.7.1",
  22 + "appid": "touristappid",
  23 + "projectname": "download",
  24 + "condition": {},
  25 + "editorSetting": {
  26 + "tabIndent": "insertSpaces",
  27 + "tabSize": 2
  28 + }
  29 +}
  1 +{
  2 + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
  3 + "projectname": "download",
  4 + "setting": {
  5 + "compileHotReLoad": true
  6 + }
  7 +}