Ui
yfx
2026-03-13 96d9683a79178e3ad505bba6762c7a1ae1d55c4e
Ui
12 files added
1217 ■■■■■ changed files
.gitignore 22 ●●●●● patch | view | raw | blame | history
App.vue 115 ●●●●● patch | view | raw | blame | history
androidPrivacy.json 38 ●●●●● patch | view | raw | blame | history
index.html 20 ●●●●● patch | view | raw | blame | history
main.js 82 ●●●●● patch | view | raw | blame | history
manifest.json 185 ●●●●● patch | view | raw | blame | history
package-lock.json 24 ●●●●● patch | view | raw | blame | history
package.json 5 ●●●●● patch | view | raw | blame | history
pages.json 281 ●●●●● patch | view | raw | blame | history
uni.promisify.adaptor.js 13 ●●●●● patch | view | raw | blame | history
uni.scss 76 ●●●●● patch | view | raw | blame | history
util.js 356 ●●●●● patch | view | raw | blame | history
.gitignore
New file
@@ -0,0 +1,22 @@
.DS_Store
unpackage/
dist/
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.project
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
App.vue
New file
@@ -0,0 +1,115 @@
<script>
    export default {
        onShow: function() {
            // #ifdef APP-PLUS
            var args= plus.runtime.arguments;
            if(args){
                // 处理args参数,如直达到某新页面等
                console.log('args', args)
                if(args.indexOf('lzzzsc-app') >= 0) {
                    args = args.replace("lzzzsc-app://", "/")
                    return uni.redirectTo({
                        url: args
                    })
                }
            }
            // #endif
        },
        onLaunch: function(options) {
            let t = this
            t.$util.post('Index/getConfig').then(res => {
                console.log('getConfig', res.data)
                if(res.code == 1){
                    try {
                        const token = uni.getStorageSync('lzsc-token');
                        if (!token) {
                            /*
                            uni.redirectTo({
                                url: '/pages/login/login'
                            })
                            return false
                            */
                        }
                    } catch (e) {
                            uni.redirectTo({
                                url: '/pages/login/login'
                            })
                            return false
                    }
                    uni.setStorageSync('Config', JSON.stringify(res.data))
                    // #ifdef APP-PLUS
                    //机型
                    let platform = uni.getSystemInfoSync().platform.toLocaleLowerCase()
                    //console.log('platform', uni.getSystemInfoSync())
                    plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
                        //下载地址
                        let downUrl = res.data.downUrl
                        //更新标志
                        let updateFlag = false
                        //更新内容
                        let updesc = ''
                        if(platform == 'ios' && parseInt(widgetInfo.versionCode) != parseInt(res.data.ios.code)){
                            updateFlag = !updateFlag
                            updesc = res.data.ios.desc
                        }
                        if(platform == 'android' && parseInt(widgetInfo.versionCode) != parseInt(res.data.android.code)){
                            updateFlag = !updateFlag
                            updesc = res.data.android.desc
                        }
                        if (downUrl && updateFlag) {
                            uni.showModal({
                                showCancel: false,
                                confirmText: '立即更新',
                                title: '温馨提示!',
                                content: updesc || '有最新版本,请更新APP!',
                                success: res => {
                                    if (res.confirm) {
                                        plus.runtime.openURL(downUrl)
                                    }
                                }
                            })
                        }
                    })
                    // #endif
                }
            })
        },
        onHide: function() {
        }
    }
</script>
<style>
    /*每个页面公共css */
    .startBar {
        width: 100%;
        height: var(--status-bar-height);
    }
    .noData{
        width: 100%;
        font-size: 28rpx;
    }
    .noData image{
        width: 120rpx;
        height: 100rpx;
        display: block;
        margin: 100rpx auto 30rpx;
    }
    .noData view{
        width: 100%;
        text-align: center;
        color: #666666;
    }
    .noDataBtn{
        width: 240rpx !important;
        margin: 50rpx auto;
        background-color: #ff7945;
        color: #ffffff !important;
        letter-spacing: 10rpx;
        height: 70rpx;
        line-height: 70rpx;
        border-radius: 50rpx;
    }
</style>
androidPrivacy.json
New file
@@ -0,0 +1,38 @@
{
    "version" : "1",
    "prompt" : "template",
    "title" : "荔枝商城注册协议和隐私政策",
    "message" : "  请你务必审慎阅读、充分理解“注册协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https://www.ncmiruo.com/index/?gp=1 \">《注册协议》</a>和<a href=\"https://www.ncmiruo.com/?gp=2 \">《隐私政策》</a>了解详细信息。并且我们会申请读取您的设备信息,以向您提供安全风控服务。同时您应特别注意前述协议中免除或者限制我们责任的条款、对您权利进行限制的条款。如您已详细阅读并同意金喜易购服务协议和隐私政策,请点击【同意并继续】开始使用我们的服务。",
    "buttonAccept" : "同意并继续",
    "buttonRefuse" : "暂不同意",
    "hrefLoader" : "system",
    "backToExit" : "false",
    "second" : {
        "title" : "确认提示",
        "message" : "  进入应用前,你需先同意<a href=\"https://www.ncmiruo.com/?gp=1\">《注册协议》</a>和<a href=\"https://www.ncmiruo.com/?gp=2\">《隐私政策》</a>,否则将退出应用。",
        "buttonAccept" : "同意并继续",
        "buttonRefuse" : "退出应用"
    },
    "disagreeMode" : {
        "support" : false,
        "loadNativePlugins" : false,
        "visitorEntry" : false,
        "showAlways" : false
    },
    "styles" : {
        "backgroundColor" : "#FFFFFF",
        "borderRadius" : "5px",
        "title" : {
            "color" : "#000000"
        },
        "buttonAccept" : {
            "color" : "#000000"
        },
        "buttonRefuse" : {
            "color" : "#666666"
        },
        "buttonVisitor" : {
            "color" : "#00ffff"
        }
    }
}
index.html
New file
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <script>
      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
        CSS.supports('top: constant(a)'))
      document.write(
        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
    </script>
    <title></title>
    <!--preload-links-->
    <!--app-context-->
  </head>
  <body>
    <div id="app"><!--app-html--></div>
    <script type="module" src="/main.js"></script>
  </body>
</html>
main.js
New file
@@ -0,0 +1,82 @@
import App from './App'
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
import util from './util.js'
Vue.config.productionTip = false
App.mpType = 'app'
Vue.prototype.$webHost = 'https://rbb98765.zrgy-bbg.com'
if(process.env.NODE_ENV !== 'production' || window.location.host.includes('test') ){
    Vue.prototype.$webHost = 'https://rbb98765.zrgy-bbg.com'
}
Vue.prototype.$util = util
Vue.prototype.$baseUrl = 'https://tmy.xjzbh.com'
Vue.prototype.$bank = [
    '中国工商银行',
    '中国建设银行',
    '中国银行',
    '中国农业银行',
    '中国邮政储蓄银行',
    '中国交通银行',
    '浦东发展银行',
    '中信银行',
    '华夏银行',
    '中国民生银行',
    '广发银行',
    '兴业银行',
    '平安银行',
    '浙商银行',
    '恒丰银行',
    '渤海银行',
    '上海银行',
    '北京银行',
]
Vue.prototype.$job = [
    '个体工商户',
    '公司企业',
    '政府机关',
    '事业单位',
    '社会组织',
    '灵活就业',
]
Vue.prototype.$relation = [
    '父母',
    '配偶',
    '同事',
    '好友',
    '同学',
    '其他',
]
Vue.prototype.$income = [
    '1000-5000',
    '5000-10000',
    '10000-20000',
    '20000-30000',
    '30000以上',
]
// 全局跳转方法
Vue.prototype.$goWebUrl = function(url) {
  // #ifdef APP-PLUS
    plus.runtime.openURL(url)
    // #endif
    // #ifdef H5 || WEB
    this.$refs.popup_agree.open()
    // #endif
}
const app = new Vue({
  ...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif
manifest.json
New file
@@ -0,0 +1,185 @@
{
    "name" : "齐享购",
    "appid" : "__UNI__3333B1D",
    "description" : "",
    "versionName" : "1.3.6",
    "versionCode" : 136,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
        "statusbar" : {
            "immersed" : false
        },
        "compatible" : {
            "ignoreVersion" : true
        },
        "usingComponents" : true,
        "nvueStyleCompiler" : "uni-app",
        "compilerVersion" : 3,
        "splashscreen" : {
            "alwaysShowBeforeRender" : true,
            "waiting" : true,
            "autoclose" : true,
            "delay" : 0
        },
        /* 模块配置 */
        "modules" : {
            "Contacts" : {},
            "Camera" : {},
            "Barcode" : {},
            "Share" : {},
            "Payment" : {},
            "Geolocation" : {}
        },
        /* 应用发布信息 */
        "distribute" : {
            /* android打包配置 */
            "android" : {
                "permissions" : [
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_CALL_LOG\"/>",
                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
                    "<uses-permission android:name=\"android.permission.SEND_RESPOND_VIA_MESSAGE\"/>",
                    "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
                    "<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_CALL_LOG\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>"
                ],
                "minSdkVersion" : 29,
                "schemes" : "miruo-app",
                "targetSdkVersion" : 30,
                "abiFilters" : [ "arm64-v8a" ]
            },
            /* ios打包配置 */
            "ios" : {
                "privacyDescription" : {
                    "NSPhotoLibraryUsageDescription" : "访问您的照片修改头像、扫描和用于拍照、发送图片,需要获取读写手机(系统提示为访问设备的照片、媒体内容和文件)权限,请允许!",
                    "NSPhotoLibraryAddUsageDescription" : "访问您的照片修改头像、扫描和用于拍照、发送图片,需要获取读写手机(系统提示为访问设备的照片、媒体内容和文件)权限,请允许!",
                    "NSCameraUsageDescription" : "访问您的摄像头 方便用户拍摄上传修改头像 反馈问题"
                },
                "dSYMs" : false,
                "capabilities" : {
                    "entitlements" : {
                        "com.apple.developer.associated-domains" : [ "applinks:www.ncmiruo.com" ]
                    }
                },
                "urltypes" : "miruo-app"
            },
            /* SDK配置 */
            "sdkConfigs" : {
                "share" : {
                    "weixin" : {
                        "appid" : "wxf640033dc64c32e3",
                        "UniversalLinks" : "https://www.ncmiruo.com/uni-universallinks/__UNI__1C9E60B/"
                    }
                },
                "payment" : {
                    "weixin" : {
                        "__platform__" : [ "ios", "android" ],
                        "appid" : "wxf640033dc64c32e3",
                        "UniversalLinks" : "https://www.ncmiruo.com/uni-universallinks/__UNI__1C9E60B/"
                    }
                },
                "geolocation" : {
                    "system" : {
                        "__platform__" : [ "ios", "android" ]
                    }
                }
            },
            "splashscreen" : {
                "useOriginalMsgbox" : true
            },
            "icons" : {
                "android" : {
                    "hdpi" : "unpackage/res/icons/72x72.png",
                    "xhdpi" : "unpackage/res/icons/96x96.png",
                    "xxhdpi" : "unpackage/res/icons/144x144.png",
                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
                },
                "ios" : {
                    "appstore" : "unpackage/res/icons/1024x1024.png",
                    "ipad" : {
                        "app" : "unpackage/res/icons/76x76.png",
                        "app@2x" : "unpackage/res/icons/152x152.png",
                        "notification" : "unpackage/res/icons/20x20.png",
                        "notification@2x" : "unpackage/res/icons/40x40.png",
                        "proapp@2x" : "unpackage/res/icons/167x167.png",
                        "settings" : "unpackage/res/icons/29x29.png",
                        "settings@2x" : "unpackage/res/icons/58x58.png",
                        "spotlight" : "unpackage/res/icons/40x40.png",
                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
                    },
                    "iphone" : {
                        "app@2x" : "unpackage/res/icons/120x120.png",
                        "app@3x" : "unpackage/res/icons/180x180.png",
                        "notification@2x" : "unpackage/res/icons/40x40.png",
                        "notification@3x" : "unpackage/res/icons/60x60.png",
                        "settings@2x" : "unpackage/res/icons/58x58.png",
                        "settings@3x" : "unpackage/res/icons/87x87.png",
                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
                    }
                }
            }
        },
        "nativePlugins" : {
            "DC-WBFaceServiceV2" : {
                "__plugin_info__" : {
                    "name" : "DC-WBFaceServiceV2",
                    "description" : "核身服务",
                    "platforms" : "Android,iOS",
                    "url" : "https://ext.dcloud.net.cn/plugin?id=10378",
                    "android_package_name" : "",
                    "ios_bundle_id" : "com.qxg.app",
                    "isCloud" : true,
                    "bought" : 1,
                    "pid" : "10378",
                    "parameters" : {}
                }
            }
        }
    },
    /* 快应用特有相关 */
    "quickapp" : {},
    /* 小程序特有相关 */
    "mp-weixin" : {
        "appid" : "",
        "setting" : {
            "urlCheck" : false
        },
        "usingComponents" : true
    },
    "mp-alipay" : {
        "usingComponents" : true
    },
    "mp-baidu" : {
        "usingComponents" : true
    },
    "mp-toutiao" : {
        "usingComponents" : true
    },
    "uniStatistics" : {
        "enable" : false
    },
    "vueVersion" : "2",
    "_spaceID" : "mp-85f4a702-1f48-4988-b9b0-b9d8b333fccd"
}
package-lock.json
New file
@@ -0,0 +1,24 @@
{
  "name": "gold",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "dependencies": {
        "crypto-js": "^4.2.0"
      }
    },
    "node_modules/crypto-js": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
      "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
    }
  },
  "dependencies": {
    "crypto-js": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
      "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
    }
  }
}
package.json
New file
@@ -0,0 +1,5 @@
{
  "dependencies": {
    "crypto-js": "^4.2.0"
  }
}
pages.json
New file
@@ -0,0 +1,281 @@
{
    "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
        {
            "path": "pages/index/index",
            "style": {
                "navigationStyle":"custom",
                "navigationBarTitleText": "齐享购"
            }
        },
        {
            "path" : "pages/cates/cates",
            "style" :
            {
                "navigationBarTitleText": "分类"
            }
        },
        {
            "path" : "pages/my/my",
            "style" :
            {
                "navigationStyle":"custom",
                "navigationBarTitleText": "我的",
                "navigationBarBackgroundColor": "#e3b400",
                "app-plus": {
                    "titleNView": false
                }
            }
        },
        {
            "path" : "pages/carts/carts",
            "style" :
            {
                "navigationBarTitleText" : "购物车"
            }
        },
        {
            "path" : "pages/idcard/idcard",
            "style" :
            {
                "navigationBarTitleText" : "实名认证"
            }
        },
        {
            "path" : "pages/login/login",
            "style" :
            {
                "navigationBarTitleText" : "账号登录"
            }
        },
        {
            "path" : "pages/ginfo/ginfo",
            "style" :
            {
                "navigationStyle":"custom",
                "navigationBarTitleText": "商品详情"
            }
        },
        {
            "path" : "pages/collect/collect",
            "style" :
            {
                "navigationBarTitleText" : "我的收藏"
            }
        },
        {
            "path" : "pages/address/address",
            "style" :
            {
                "navigationBarTitleText" : "我的地址"
            }
        },
        {
            "path" : "pages/addAddr/addAddr",
            "style" :
            {
                "navigationBarTitleText" : "编辑地址"
            }
        },
        {
            "path" : "pages/pays/pays",
            "style" :
            {
                "navigationBarTitleText" : "确认订单"
            }
        },
        {
            "path" : "pages/bank/bank",
            "style" :
            {
                "navigationBarTitleText" : "银行卡"
            }
        },
        {
            "path" : "pages/addBank/addBank",
            "style" :
            {
                "navigationBarTitleText" : "编辑银行卡"
            }
        },
        {
            "path" : "pages/face/face",
            "style" :
            {
                "navigationBarTitleText" : "人脸认证"
            }
        },
        {
            "path" : "pages/order/order",
            "style" :
            {
                "navigationBarTitleText" : "我的订单"
            }
        },
        {
            "path" : "pages/edu/edu",
            "style" :
            {
                "navigationBarTitleText" : "授信额度"
            }
        },
        {
            "path" : "pages/logs/logs",
            "style" :
            {
                "navigationBarTitleText" : "账单信息"
            }
        },
        {
            "path" : "pages/profile/profile",
            "style" :
            {
                "navigationBarTitleText" : "个人资料"
            }
        },
        {
            "path" : "pages/search/search",
            "style" :
            {
                "navigationStyle":"custom",
                "navigationBarTitleText": "商品搜索"
            }
        },
        {
            "path" : "pages/catesList/catesList",
            "style" :
            {
                "navigationBarTitleText" : ""
            }
        },
        {
            "path" : "pages/regist/regist",
            "style" :
            {
                "navigationBarTitleText" : "账号注册"
            }
        },
        {
            "path" : "pages/findpass/findpass",
            "style" :
            {
                "navigationBarTitleText" : "忘记密码"
            }
        },
        {
            "path" : "pages/entrust/entrust",
            "style" :
            {
                "navigationBarTitleText" : "会员服务协议"
            }
        },
        {
            "path" : "pages/agree/agree",
            "style" :
            {
                "navigationBarTitleText" : "委托扣款确认书"
            }
        },
        {
            "path" : "pages/job/job",
            "style" :
            {
                "navigationBarTitleText" : "工作资料"
            }
        },
        {
            "path" : "pages/esign/esign",
            "style" :
            {
                "navigationBarTitleText" : ""
            }
        },
        {
            "path" : "pages/orderinfo/orderinfo",
            "style" :
            {
                "navigationBarTitleText" : "订单详情"
            }
        },
        {
            "path" : "pages/wallet/wallet",
            "style" :
            {
                "navigationStyle":"custom",
                "navigationBarTitleText": "钱包"
            }
        },
        {
            "path": "pages/customer/customer",
            "style": {
                "navigationBarTitleText": "联系客服"
            }
        },
        {
            "path": "pages/quanyi/index",
            "style": {
                "navigationBarTitleText": "权益",
                "navigationStyle":"custom"
            }
        },
        {
            "path": "pages/quanyi/add",
            "style": {
                "navigationBarTitleText": "绑卡",
                "navigationStyle":"custom"
            }
        },
        {
            "path": "pages/quanshou/index",
            "style": {
                "navigationBarTitleText": "绑卡",
                "navigationStyle":"custom"
            }
        },
        {
            "path": "pages/web/index",
            "style": {
                "navigationBarTitleText": "绑卡",
                "navigationStyle":"custom"
            }
        }
    ],
    "tabBar": {
        "color": "#252938",
        "selectedColor": "#FF1472",
        "borderStyle": "black",
        "backgroundColor": "#FFFFFF",
        "list": [
            {
                "pagePath": "pages/index/index",
                "iconPath": "static/imgs/tab-1.png",
                "selectedIconPath": "static/imgs/tab-s-1.png",
                "text": "首页"
            },
            {
                "pagePath": "pages/cates/cates",
                "iconPath": "static/imgs/tab-2.png",
                "selectedIconPath": "static/imgs/tab-s-2.png",
                "text": "分类"
            },
            {
                "pagePath": "pages/carts/carts",
                "iconPath": "static/imgs/tab-3.png",
                "selectedIconPath": "static/imgs/tab-s-3.png",
                "text": "购物车"
            },
            {
                "pagePath": "pages/my/my",
                "iconPath": "static/imgs/tab-4.png",
                "selectedIconPath": "static/imgs/tab-s-4.png",
                "text": "我的"
            }
        ]
    },
    "globalStyle": {
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "齐享购",
        "navigationBarBackgroundColor": "#F8F8F8",
        "backgroundColor": "#F8F8F8"
    },
    "uniIdRouter": {}
}
uni.promisify.adaptor.js
New file
@@ -0,0 +1,13 @@
uni.addInterceptor({
  returnValue (res) {
    if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
      return res;
    }
    return new Promise((resolve, reject) => {
      res.then((res) => {
        if (!res) return resolve(res)
        return res[0] ? reject(res[0]) : resolve(res[1])
      });
    });
  },
});
uni.scss
New file
@@ -0,0 +1,76 @@
/**
 * 这里是uni-app内置的常用样式变量
 *
 * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
 * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
 *
 */
/**
 * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
 *
 * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
 */
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:12px;
$uni-font-size-base:14px;
$uni-font-size-lg:16px;
/* 图片尺寸 */
$uni-img-size-sm:20px;
$uni-img-size-base:26px;
$uni-img-size-lg:40px;
/* Border Radius */
$uni-border-radius-sm: 2px;
$uni-border-radius-base: 3px;
$uni-border-radius-lg: 6px;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 5px;
$uni-spacing-row-base: 10px;
$uni-spacing-row-lg: 15px;
/* 垂直间距 */
$uni-spacing-col-sm: 4px;
$uni-spacing-col-base: 8px;
$uni-spacing-col-lg: 12px;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:20px;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:26px;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:15px;
util.js
New file
@@ -0,0 +1,356 @@
import CryptoJS from './node_modules/crypto-js/crypto-js.js'
const baseUrl = 'https://tmy.xjzbh.com/api/'
const cryptKey = '2025Shop2025Shop'
const cryptIv  = '2025Shop2025Shop'
// 加密
const encryptDes = (data) => {
    // 将key解析为字节
    let aes_key = CryptoJS.enc.Utf8.parse(cryptKey);
    // 将iv解析为字节
    let new_iv = CryptoJS.enc.Utf8.parse(cryptIv);
    // AES加密 CBC模式 ZeroPadding
    let encrypted = CryptoJS.AES.encrypt(data, aes_key, {
        iv: new_iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    // 返回字符串
    return encrypted.toString();
}
//解密
const decryptDes = (data) => {
    let aes_key = CryptoJS.enc.Utf8.parse(cryptKey);
    let aes_iv = CryptoJS.enc.Utf8.parse(cryptIv);
    // 将数据编码成Base64格式
    let baseResult = CryptoJS.enc.Base64.parse(data);
    let ciphertext = CryptoJS.enc.Base64.stringify(baseResult);
    // AES解密 CBC模式 ZeroPadding
    let decryptResult = CryptoJS.AES.decrypt(ciphertext, aes_key, {
        iv: aes_iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    // 返回字符串
    let resData = decryptResult.toString(CryptoJS.enc.Utf8).toString();
    return resData;
}
const getHeader = () => {
    let token = uni.getStorageSync('lzsc-token')
    let header = {
        'Accept': 'application/json',
        'Content-type': 'application/json',
        'authorization': token,
    }
    let platform = null
    // #ifdef H5
    platform = 'h5'
    // #endif
    // #ifdef APP-PLUS
    platform = uni.getSystemInfoSync().platform
    // #endif
    header.platform = platform
    return header
}
const post = (url = '', params = null) => {
    let header = getHeader()
    let data = encryptDes(JSON.stringify(params))
    //console.log('postUrl', baseUrl + url)
    return new Promise((resolve, reject) => {
        uni.showLoading({
            title: '加载中'
        })
        uni.request({
            method: 'POST',
            url: baseUrl + url,
            data: {data: data},
            header: header,
            dataType: 'json',
        }).then((response) => {
            //console.log('response', response)
            uni.hideLoading()
            let respon = {
                code: response.data.code,
                data: response.data.data.length > 0 ? JSON.parse(decryptDes(response.data.data)) : [],
                msg: response.data.msg
            }
            resolve(respon)
        }).catch(error => {
            uni.hideLoading()
            //let [err, res] = error
            //console.log('error', error)
        })
    })
}
const sendMsg = (url = '', params = null) => {
    let header = getHeader()
    let data = encryptDes(JSON.stringify(params))
    return new Promise((resolve, reject) => {
        uni.request({
            method: 'POST',
            url: baseUrl + url,
            data: {data: data},
            header: header,
            dataType: 'json',
        }).then((response) => {
            let respon = {
                code: response.data.code,
                data: response.data.data.length > 0 ? JSON.parse(decryptDes(response.data.data)) : [],
                msg: response.data.msg
            }
            resolve(respon)
        }).catch(error => {
            uni.hideLoading()
            //let [err, res] = error
            //console.log('error', error)
        })
    })
}
const goPages = (url) => {
    uni.navigateTo({
        url: url
    })
}
const goBack = () => {
    uni.navigateBack()
}
//身份证号严格校验
const identityIDCard = (code) => {
    //身份证号前两位代表区域
    var city = {
        11: "北京",
        12: "天津",
        13: "河北",
        14: "山西",
        15: "内蒙古",
        21: "辽宁",
        22: "吉林",
        23: "黑龙江 ",
        31: "上海",
        32: "江苏",
        33: "浙江",
        34: "安徽",
        35: "福建",
        36: "江西",
        37: "山东",
        41: "河南",
        42: "湖北 ",
        43: "湖南",
        44: "广东",
        45: "广西",
        46: "海南",
        50: "重庆",
        51: "四川",
        52: "贵州",
        53: "云南",
        54: "西藏 ",
        61: "陕西",
        62: "甘肃",
        63: "青海",
        64: "宁夏",
        65: "新疆",
        71: "台湾",
        81: "香港",
        82: "澳门",
        91: "国外 "
    };
    //身份证格式正则表达式
    var idCardReg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
    var errorMsg = ""; //错误提示信息
    var isPass = true; //身份证验证是否通过(true通过、false未通过)
    //如果身份证不满足格式正则表达式
    if (!idCardReg.test(code)) {
        errorMsg = "身份证格式有误!";
        isPass = false;
    }
    //区域数组中不包含需验证的身份证前两位
    else if (!city[code.substr(0, 2)]) {
        errorMsg = "身份证地址编码有误!";
        isPass = false;
    } else {
        //18位身份证需要验证最后一位校验位
        if (code.length == 18) {
            code = code.split('');
            //∑(ai×Wi)(mod 11)
            //加权因子
            var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
            //校验位
            var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
            var sum = 0;
            var ai = 0;
            var wi = 0;
            for (var i = 0; i < 17; i++) {
                ai = code[i];
                wi = factor[i];
                sum += ai * wi;
            }
            var last = parity[sum % 11];
            if (parity[sum % 11] != code[17]) {
                errorMsg = "身份证号不存在!";
                isPass = false;
            }
        }
    }
    var returnParam = {
        'errorMsg': errorMsg,
        'isPass': isPass
    }
    return returnParam;
}
const checkLogin = (url = '', burl = '') => {
    let token = uni.getStorageSync('lzsc-token') ? uni.getStorageSync('lzsc-token') : null
    if(token == null){
        uni.showModal({
            title: '温馨提示',
            content: '请您先登录账号!',
            success: function (res) {
                if (res.confirm) {
                    let goUrl = ''
                    if(burl != ''){
                        goUrl = '/pages/login/login?backUrl=' + burl
                    } else{
                        goUrl = '/pages/login/login'
                    }
                    uni.navigateTo({
                        url: goUrl
                    })
                }
            }
        })
        return false
    }else if(url != ''){
        uni.navigateTo({
            url: url
        })
    }
    return true
}
const checkGoPages = (url = '', burl = '', isgo = 1) => {
    let token = uni.getStorageSync('lzsc-token') ? uni.getStorageSync('lzsc-token') : null
    console.log('token', token)
    if(token == null){
        uni.showModal({
            title: '温馨提示',
            content: '请您先登录账号!',
            success: function (res) {
                if (res.confirm) {
                    let goUrl = ''
                    if(burl != ''){
                        goUrl = '/pages/login/login?backUrl=' + burl
                    } else{
                        goUrl = '/pages/login/login'
                    }
                    uni.navigateTo({
                        url: goUrl
                    })
                }
            }
        })
        return false
    } else {
        let userInfo = getUserInfo()
        let goUrl = ''
        if(userInfo.idcard_auth == 0){
            goUrl = '/pages/idcard/idcard'
        } else if(userInfo.face_auth == 0){
            goUrl = '/pages/face/face'
        } else if(userInfo.job_auth == 0){
            goUrl = '/pages/job/job'
        } else if(userInfo.bank_auth == 0){
            goUrl = '/pages/addBank/addBank?backUrl=/pages/face/face'
        }
        console.log('goUrl', goUrl)
        if(goUrl != ''){
            uni.showModal({
                title: '温馨提示',
                content: '根据国家法律法规规定,使用本服务需要完成实名认证,是否前往认证?',
                success: function (res) {
                    if (res.confirm) {
                        uni.navigateTo({
                            url: goUrl
                        })
                    }
                }
            })
            return false
        }
        if(url != '' && isgo == 1){
            uni.navigateTo({
                url: url
            })
        } else {
            return true
        }
    }
}
const goSwitch = (url) => {
    uni.switchTab({
        url: url
    })
}
const getUserInfo = () => {
    let userStr = uni.getStorageSync('user-info') ? uni.getStorageSync('user-info') : null
    if(userStr != null) {
        userStr = JSON.parse(userStr)
    }
    return userStr
}
const goSetting = () => {
    var Intent = plus.android.importClass("android.content.Intent")
    var Uri = plus.android.importClass("android.net.Uri")
    var Settings = plus.android.importClass("android.provider.Settings")
    var activity = plus.android.runtimeMainActivity()
    var intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
    var uri = Uri.fromParts("package", activity.getPackageName(), null)
    intent.setData(uri)
    activity.startActivity(intent)
}
const goAgree = (t) => {
    let userInfo = null
    let userStr = uni.getStorageSync('user-info') ? uni.getStorageSync('user-info') : null
    if(userStr != null) {
        userInfo = JSON.parse(userStr)
    }
    console.log(userInfo)
    // #ifdef APP-PLUS
    let url = ''
    if(userInfo != null && userInfo.realname != null && userInfo.idcard != null && userInfo.phone != null){
        let url = this.$baseUrl + '/?gp=' + t + '&name=' + userInfo.realname + '&idcard=' + userInfo.idcard + '&phone=' + userInfo.phone
    } else {
        let url = this.$baseUrl + '/?gp=' + t
    }
    console.log(url)
    plus.runtime.openURL(url)
    // #endif
}
export default {
    goBack: goBack,
    post: post,
    goPages: goPages,
    decryptDes: decryptDes,
    identityIDCard: identityIDCard,
    checkGoPages: checkGoPages,
    goSwitch: goSwitch,
    getUserInfo: getUserInfo,
    goSetting: goSetting,
    goAgree: goAgree,
    checkLogin: checkLogin,
    sendMsg: sendMsg,
}