YOS-DRVOGPU6U78\Administrator
2023-07-17 8c166f81859481eb609963bca8725e3d066b87df
初始化项目
已添加20个文件
478 ■■■■■ 文件已修改
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
App.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/login.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
index.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/login.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/img/bg.png 补丁 | 查看 | 原始文档 | blame | 历史
static/img/bg1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
static/img/bg2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
static/img/bg3.jpg 补丁 | 查看 | 原始文档 | blame | 历史
static/img/right-arrow.png 补丁 | 查看 | 原始文档 | blame | 历史
static/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
uni.promisify.adaptor.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uni.scss 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/common.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/request.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
uni_modules
App.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
<style lang="scss">
    /* æ³¨æ„è¦å†™åœ¨ç¬¬ä¸€è¡Œï¼ŒåŒæ—¶ç»™style标签加入lang="scss"属性 */
    @import "@/uni_modules/uview-ui/index.scss";
</style>
<script>
    export default {
        onLaunch: function() {
            console.log('App Launch')
        },
        onShow: function() {
            console.log('App Show')
        },
        onHide: function() {
            console.log('App Hide')
        }
    }
</script>
<style>
    /*每个页面公共css */
</style>
api/login.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
import request from "request";
export function login(account,passward) {
    return request({
        'url': '/login',
        'method' : 'post'
    })
}
config.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
module.exports = {
    baseUrl:"http://localhost:9999",
    projectType: 'hk',//已经集成乐亿通lyt,微电wd,格林泰glt,波达boda
    Bluetooth:'false',//是否初始化蓝牙功能
    PlayYes:'false',//是否播放扫码成功
    PlayNo:'false',//是否播放操作失败
}
index.html
¶Ô±ÈÐÂÎļþ
@@ -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
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
import App from './App'
import uView from '@/uni_modules/uview-ui'
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
Vue.use(uView)
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
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
{
    "name" : "hk_pda_vue",
    "appid" : "__UNI__26663F5",
    "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"
}
pages.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
{
    "pages": [
        {
            "path": "pages/login/login",
            "style": {
                "navigationBarTitleText": "登录"
            }
        },
        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "MES-移动终端"
            }
        }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "uni-app",
        "navigationBarBackgroundColor": "#F8F8F8",
        "backgroundColor": "#F8F8F8"
    },
    "uniIdRouter": {}
}
pages/index/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
<template>
    <u-grid :col="3" @click="gotoPage" border>
        <u-grid-item v-for="item in grid" :index="item[0]">
            <u-icon name="photo" :size="46"></u-icon>
            <view class="grid-text">{{item[0]}}</view>
        </u-grid-item>
    </u-grid>
</template>
<script>
    export default {
        data() {
            return {
                grid: [
                    [
                        "巡检首检", "touliao"
                    ],
                    [
                        "采购入库", "touliao"
                    ],
                    [
                        "生产退料", "touliao"
                    ],
                    [
                        "其它入库", "touliao"
                    ],
                    [
                        "生产入库", "touliao"
                    ],
                    [
                        "采购退货", "touliao"
                    ],
                    [
                        "其它出库", "touliao"
                    ],
                    [
                        "调拔出库", "touliao"
                    ],
                    [
                        "调拔入库", "touliao"
                    ],
                    [
                        "生产报工", "touliao"
                    ],
                    [
                        "打印设置", "touliao"
                    ],
                    [
                        "生产备料", "touliao"
                    ]
                ],
                title: 'Hello'
            }
        },
        onLoad() {
        },
        methods: {
            gotoPage(e) {
                console.log(this.grid[e])
            }
        }
    }
</script>
<style>
    .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    .logo {
        height: 200rpx;
        width: 200rpx;
        margin-top: 200rpx;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 50rpx;
    }
    .text-area {
        display: flex;
        justify-content: center;
    }
    .title {
        font-size: 36rpx;
        color: #8f8f94;
    }
</style>
pages/login/login.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
<template>
    <view>
        <view>
            <image src="../../static/img/bg2.jpg" style="width: 100%; display: block;"></image>
        </view>
        <view>
            <u--form labelPosition="left" :model="userInfo" ref="uForm">
                <u-form-item label="用户名" labelWidth=65 prop="userInfo.account" borderBottom>
                    <u--input v-model="userInfo.account" border="none" placeholder="请输入用户名"></u--input>
                </u-form-item>
                <u-form-item label="密码" labelWidth=65 prop="userInfo.passward">
                    <u--input v-model="userInfo.passward" placeholder="请输入用户密码" border="none" :password="showPassward"
                        @click="this.showPassward = !this.showPassward " suffixIcon="eye-fill"
                        suffixIconStyle="color: #909399"></u--input>
                </u-form-item>
            </u--form>
            <u-button text="登陆" type="primary" style="margin-top: 10px;" @click="login()"></u-button>
        </view>
        <u-toast ref="uToast" />
    </view>
</template>
<script>
    export default {
        data() {
            return {
                showPassward: true,
                userInfo: {
                    account: '',
                    passward: ''
                }
            }
        },
        methods: {
            login() {
                // è¾“入检验
                if (this.userInfo.account == null || this.userInfo.account == '') {
                    this.$refs.uToast.show({
                        message: '用户名为空',
                        type: 'error'
                    })
                    return
                }
                if (this.userInfo.passward == null || this.userInfo.passward == '') {
                    this.$refs.uToast.show({
                        message: '密码为空',
                        type: 'error'
                    })
                    return
                }
                console.log(this.userInfo)
                uni.navigateTo({
                    url:'/pages/index/index'
                })
            }
        }
    }
</script>
<style>
    .uni-input {
        height: 28px;
        line-height: 28px;
        font-size: 15px;
        padding: 0px;
        flex: 1;
        background-color: #FFFFFF;
    }
</style>
static/img/bg.png
static/img/bg1.jpg
static/img/bg2.jpg
static/img/bg3.jpg
static/img/right-arrow.png
static/logo.png
uni.promisify.adaptor.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
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) => res[0] ? reject(res[0]) : resolve(res[1]));
    });
  },
});
uni.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
/* uni.scss */
@import '@/uni_modules/uview-ui/theme.scss';
/**
 * è¿™é‡Œæ˜¯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: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;
utils/common.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
export function toast(content) {
    uni.showToast({
        icon:'none',
        title:content
    })
}
utils/request.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
const { error } = require("jquery")
const { toast } = require("./common")
let timeout = 10000
const baseUrl = config.baseUrl
const request = config => {
    return new Promise((resolve,reject) => {
        uni.request({
            method:config.method || 'GET',
            timeout:config.timeoue || timeout,
            url:config.baseUrl || baseUrl + config.url,
            data:config.data,
            header: config.header || {'Content-Type': 'application/json'},
            dataType: 'json'
        }).then(response => {
            let [error,res] = response
            if(error) {
                toast('网络异常,请稍后重试')
                return
            }
            const result = res.data.result || true
            const msg = errorCode[code] || res.data.msg || ErrorCode['defalut']
            if(!res) {
                toast(msg)
                return
            }
            resolve(res.data)
        }).catch(error => {
            let {message} = error
            if(message === 'Network Error') {
                message = '后端接口连接异常'
            } else if(message.includes('timeout')) {
                message = '系统接口请求超时'
            } else if (message.includes('Request failed with status code')) {
                message = '系统接口' + message.substr(message.length - 3) + '异常'
            }
            toast(message)
        })
    })
}