Commit addd16e1 by zhangpeng

first commit

parents
.project
.DS_Store
node_modules
.vs
/unpackage/
/tests/e2e/videos/
/tests/e2e/screenshots/
/static/config/index.js
# local env files
.env.local
.env.*.local
.env.development
!.gitkeep
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
build/env.js
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
"version": "0.0",
"configurations": [{
"default" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import "uview-ui/index.scss";
</style>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/main.js"></script>
</body>
</html>
import App from './App'
import uView from 'uview-ui';
Vue.use(uView);
//引入vuex
import store from './store'
// 需要在Vue.use(uView)之后执行
uni.$u.setConfig({
// 修改$u.config对象的属性
config: {
// 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
unit: 'rpx'
},
// 修改$u.props对象的属性
// props: {
// // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
// radio: {
// size: 15
// }
// // 其他组件属性配置
// // ......
// }
})
// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App,
store
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif
\ No newline at end of file
{
"name" : "hooloo",
"appid" : "",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* 模块配置 */
"modules" : {},
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios打包配置 */
"ios" : {},
/* SDK配置 */
"sdkConfigs" : {}
}
},
/* 快应用特有相关 */
"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"
}
{
"name": "hooloo",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"uview-ui": "^2.0.31"
}
},
"node_modules/uview-ui": {
"version": "2.0.31",
"resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.31.tgz",
"integrity": "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw==",
"engines": {
"HBuilderX": "^3.1.0"
}
}
},
"dependencies": {
"uview-ui": {
"version": "2.0.31",
"resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.31.tgz",
"integrity": "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw=="
}
}
}
{
"dependencies": {
"uview-ui": "^2.0.31"
}
}
{ "easycom": {
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
},
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": ""
}
},{
"path" : "pages/menu/menu",
"style" :
{
"navigationBarTitleText": "菜单",
"navigationStyle":"custom",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/order/order",
"style" :
{
"navigationBarTitleText": "订单",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/mine/mine",
"style" :
{
"navigationBarTitleText": "我的",
"navigationStyle":"custom",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "HOOLOO",
"navigationBarBackgroundColor": "#2A9BD1",
"backgroundColor": "#F8F8F8"
},
"tabBar": {
"custom":true,
"list": [
{
"pagePath": "pages/menu/menu"
},{
"pagePath": "pages/order/order"
}, {
"pagePath": "pages/mine/mine"
}
]
}
}
<template>
<u-button>分导页</u-button></u-button>
</template>
<script>
export default {
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<view>
<view>菜单</view>
<u-tabbar :list="list" inactive-color="#000000" active-color="#006ECF" :before-switch="beforeSwitch"></u-tabbar>
</view>
</template>
<script>
export default {
data() {
return {
}
},
computed:{
list(){
// tabbar List
return this.$store.state.list;
}
},
methods: {
beforeSwitch(index) {
return true;
}
}
}
</script>
<style>
</style>
<template>
<view>
我的页面
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
list: [
{
iconPath: "/static/logo.png",
selectedIconPath: "/static/logo.png",
customIcon: false,
pagePath: "/pages/menu/menu",
text: '菜单'
},
{
iconPath: "/static/logo.png",
selectedIconPath: "/static/logo.png",
pagePath: "/pages/order/order",
text: '订单',
customIcon: false
},
{
iconPath: "/static/logo.png",
selectedIconPath: "/static/logo.png",
customIcon: false,
pagePath: "/pages/mine/mine",
text: '我的'
}
],
userInfo:{},//授权信息
authorization:false//是否授权
},
mutations: {
// 设置是否授权
setAuthorization(state,data){
state.authorization=data;
},
// 设置用户信息
setUserInfo(state,userInfo){
state.userInfo=userInfo;
}
},
actions: {}
})
export default store
\ No newline at end of file
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
@import "uview-ui/theme.scss";
/* 行为相关颜色 */
$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:16;
/* 图片尺寸 */
$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;
var crypto = require('crypto')
function WXBizDataCrypt(appId, sessionKey) {
this.appId = appId
this.sessionKey = sessionKey
}
WXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {
// base64 decode
var sessionKey = new Buffer(this.sessionKey, 'base64')
encryptedData = new Buffer(encryptedData, 'base64')
iv = new Buffer(iv, 'base64')
try {
// 解密
var decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv)
// 设置自动 padding 为 true,删除填充补位
decipher.setAutoPadding(true)
var decoded = decipher.update(encryptedData, 'binary', 'utf8')
decoded += decipher.final('utf8')
decoded = JSON.parse(decoded)
} catch (err) {
throw new Error('Illegal Buffer')
}
if (decoded.watermark.appid !== this.appId) {
throw new Error('Illegal Buffer')
}
return decoded
}
module.exports = WXBizDataCrypt
import Config from '../static/config/index.js';
import WXBizDataCrypt from "./WXBizDataCrypt.js";
export default{
uniLogin() {
uni.login({
provider: 'weixin',
success: function (loginRes) {
return loginRes.code;
}})
},
async uniGetUserInfo() {
uni.getUserInfo({
provider: 'weixin',
success: function (infoRes) {
let username=infoRes.userInfo.nickName;//用户名
let gender=infoRes.userInfo.gender;//用户性别
let avatarUrl=infoRes.userInfo.avatarUrl;//头像
}})
},
// 解密手机
async onGetPhoneNumber(appid,session_key,encryptedData,iv) {
let pc = await new WXBizDataCrypt(appid,session_key);
let data = await pc.decryptData(encryptedData ,iv);
return data;
},
// 扫码方法
scanCode() {
uni.scanCode({
success:(res)=> {
this.scaninfo=res;
if(res.result){//res.result
if(res.result.includes(Config.AVScanUrl)){
uni.reLaunch({
url:`/pages/index/index?q=${res.result}`
})
}else{
uni.showToast({
title:'二维码错误',
icon:'none'
})
}
// '0016429'||
// `../pages/index/index`
// console.log(res.result,'内部扫码')
}
},
fail() {
uni.showToast({
icon:'none',
title:'扫码失败'
})
}
});
},
formatDate(value) {
var date = new Date();
date.setTime(value);
var month = date.getMonth() + 1;
if (month < 10)
month = "0" + month;
var cdate = date.getDate();
if (cdate < 10)
cdate = "0" + cdate;
var hours = date.getHours();
if (hours < 10)
hours = "0" + hours;
var minutes = date.getMinutes();
if (minutes < 10)
minutes = "0" + minutes;
var time = date.getFullYear() + "-" + month + "-" + cdate +
" " + hours + ":" + minutes;
return time;
},
// 校验营养输入输入框
async validNum(YYTJ,finaly) {
let res=true;
let YYFL={EN:'EN',PNAJS:'PN氨基酸',PNZFRJ:'PN脂肪乳剂',DQDQHY:'多腔袋全合一'};
for(let i=0;i<YYTJ.length;i++){
let item=YYTJ[i];
let index=item.med.index;
index=YYFL[index]||'';
if(item.dose!==''&&isNaN(item.dose)){
if(finaly){
uni.showToast({
title:`${index}:请输入正确的数值`,
icon:'none'
});
res=false;
break;
}else if(!finaly){
uni.showToast({
title:`${index}:请输入正确的数值`,
icon:'none'
});
}
}else if(finaly&&item.med.name==''&&item.dose!==''&&!isNaN(item.dose)){
uni.showToast({
title:`${index}:请选择药剂名称`,
icon:'none'
});
res=false;
break;
}
}
return res;
},
//过滤营养输入的方法
filterYYTJ(sourceForm){
let YYMC=['EN','PNAJS','PNZFRJ','DQDQHY'];
let form=JSON.parse(JSON.stringify(sourceForm));
YYMC.forEach(v=>{
form[v]=form[v].filter(item=>{
if(item.dose==''){
item.dose=0;
}else{
item.dose=Number(item.dose)
}
return item.med.name!=''
});
}
);
return form;
},
numberFixed(data,fixed=2){
if(data==undefined){
return undefined
}else if(data == 0){
return '0'
}else{
return (Math.round(Number(data) * Math.pow(10,fixed)) / Math.pow(10,fixed)).toFixed(fixed);
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment