@ -0,0 +1 @@
|
||||
*.js linguist-language=C#
|
@ -0,0 +1,72 @@
|
||||
/Vol.Vue/node_modules
|
||||
/Vue.Net/VOL.Web/bin
|
||||
/Vue.Net/VOL.WebApi/bin
|
||||
/Vue.Net/VOL.WebApi/Download/ExcelExport
|
||||
/Vue.Net/VOL.WebApi/Download/Logger
|
||||
/Vue.Net/VOL.WebApi/Download/SqlLog
|
||||
/Vue.Net/VOL.WebApi/obj
|
||||
/Vue.Net/.vs
|
||||
/Vue.Net/VOL.Entity/bin
|
||||
/Vue.Net/VOL.Entity/obj
|
||||
/Vue.Net/VOL.AppManager/bin
|
||||
/Vue.Net/VOL.AppManager/obj
|
||||
/Vue.Net/VOL.Builder/obj
|
||||
/Vue.Net/VOL.Builder/bin
|
||||
/Vue.Net/VOL.Core/obj
|
||||
/Vue.Net/VOL.Core/bin
|
||||
/Vue.Net/VOL.Order/obj
|
||||
/Vue.Net/VOL.Order/bin
|
||||
/Vue.Net/VOL.System/obj
|
||||
/Vue.Net/VOL.System/bin
|
||||
/Vue.Net/VOL.Web/obj
|
||||
/Vue.Net/VOL.WebApi/Download/*
|
||||
/Vol.Vue/dist
|
||||
/Vue.Net/VOL.WebApi/wwwroot/Upload/
|
||||
/Vue.Net/VOL.Web
|
||||
/开发版dev/Vue.NetCore/Vol.Vue/node_modules
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.System/bin
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.WebApi/bin
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.Entity/bin
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.Builder/bin
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.Core/obj
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.Builder/obj
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.Entity/obj
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.System/obj
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.WebApi/obj
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.Core/bin
|
||||
/_ReSharper.Caches/*
|
||||
/.vs/*
|
||||
/开发版dev/Vue.NetCore/Vue.Net/_ReSharper.Caches/*
|
||||
/开发版dev/Vue.NetCore/Vue.Net/.vs/*
|
||||
/Vue.Net/_ReSharper.Caches/ReSharperPlatformVs16192_607b9a31.VOL.00
|
||||
/开发版dev/Vue.NetCore/Vue.Net/VOL.WebApi/Download/Logger/Queue/WriteError
|
||||
/开发版dev/Vue.NetCore/Vue.Net/.vs
|
||||
/.Net6版本/.vs
|
||||
/.Net6版本/VOL.AppManager/obj
|
||||
/.Net6版本/VOL.AppManager/bin
|
||||
/.Net6版本/VOL.Builder/obj
|
||||
/.Net6版本/VOL.Builder/bin
|
||||
/.Net6版本/VOL.Core/obj
|
||||
/.Net6版本/VOL.Core/bin
|
||||
/.Net6版本/VOL.Entity/obj
|
||||
/.Net6版本/VOL.Entity/bin
|
||||
/.Net6版本/VOL.Order/obj
|
||||
/.Net6版本/VOL.Order/bin
|
||||
/.Net6版本/VOL.System/obj
|
||||
/.Net6版本/VOL.System/bin
|
||||
/.Net6版本/VOL.WebApi/obj
|
||||
/.Net6版本/VOL.WebApi/bin
|
||||
/.Net6版本/VOL.WebApi/Properties/PublishProfiles
|
||||
/开发版dev/Net6开发版/VOL.WebApi/obj
|
||||
/开发版dev/Net6开发版/VOL.WebApi/bin
|
||||
/开发版dev/Net6开发版/VOL.System/obj
|
||||
/开发版dev/Net6开发版/VOL.System/bin
|
||||
/开发版dev/Net6开发版/VOL.Entity/obj
|
||||
/开发版dev/Net6开发版/VOL.Entity/bin
|
||||
/开发版dev/Net6开发版/VOL.Core/obj
|
||||
/开发版dev/Net6开发版/VOL.Core/bin
|
||||
/开发版dev/Net6开发版/VOL.Builder/obj
|
||||
/开发版dev/Net6开发版/VOL.Builder/bin
|
||||
/开发版dev/Net6开发版/.vs
|
||||
/Vue.Net/VOL.WebApi/Properties
|
||||
/.Net6版本/VOL.WebApi/Properties
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 283591387@qq.com jxx
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
After Width: | Height: | Size: 3.0 MiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 180 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 192 KiB |
After Width: | Height: | Size: 201 KiB |
After Width: | Height: | Size: 278 KiB |
After Width: | Height: | Size: 158 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 127 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 161 KiB |
After Width: | Height: | Size: 180 KiB |
After Width: | Height: | Size: 460 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 169 KiB |
After Width: | Height: | Size: 222 KiB |
After Width: | Height: | Size: 473 KiB |
After Width: | Height: | Size: 238 KiB |
After Width: | Height: | Size: 205 KiB |
After Width: | Height: | Size: 173 KiB |
After Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 217 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 223 KiB |
After Width: | Height: | Size: 174 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 132 KiB |
After Width: | Height: | Size: 229 KiB |
After Width: | Height: | Size: 242 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 178 KiB |
After Width: | Height: | Size: 142 KiB |
@ -0,0 +1 @@
|
||||
/unpackage
|
@ -0,0 +1,95 @@
|
||||
<script>
|
||||
export default {
|
||||
onLaunch: function() {
|
||||
console.log('App Launch')
|
||||
},
|
||||
onShow: function() {
|
||||
console.log('App Show')
|
||||
},
|
||||
onHide: function() {
|
||||
console.log('App Hide')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*每个页面公共css */
|
||||
.u-tabbar>.u-tabbar__content {
|
||||
padding-bottom: 10rpx;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
/* .u-popup .u-fade-enter-active{
|
||||
z-index: 999999 !important;
|
||||
} */
|
||||
uni-toast {
|
||||
z-index: 99999999 !important;
|
||||
}
|
||||
|
||||
uni-page-body,
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
uni-page-body>uni-view:first-child {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.sort-form-popup .u-fade-enter-to {
|
||||
z-index: 9999999 !important;
|
||||
}
|
||||
|
||||
.u-button {
|
||||
border-color: unset !important;
|
||||
border-width: 0 !important;
|
||||
}
|
||||
|
||||
/* .grid-u-model>.u-transition {
|
||||
z-index: 99999999 !important;
|
||||
} */
|
||||
.grid-u-model .u-transition {
|
||||
z-index: 99999999 !important;
|
||||
}
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
page {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
page>view:first-child {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
// #endif
|
||||
|
||||
.vol-action-sheet-select-container {
|
||||
min-height: 200rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.vol-action-sheet-select-container .vol-action-sheet-select-title {
|
||||
padding: 24rpx;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
border-bottom: 1px solid rgb(233 233 233);
|
||||
|
||||
}
|
||||
|
||||
.vol-action-sheet-select-container .vol-action-sheet-select-title .vol-action-sheet-select-confirm {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
color: #007AFF;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.vol-action-sheet-select-container .vol-action-sheet-select-content {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
overflow: scroll;
|
||||
}
|
||||
.u-popup .u-transition{
|
||||
z-index: 99999999 !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,107 @@
|
||||
.lotus-address-picker {
|
||||
font-size: 26rpx;
|
||||
padding-top: 30rpx;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
line-height: normal;
|
||||
padding-right: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.lotus-address-picker-box {
|
||||
/*display: -webkit-box;
|
||||
display: -webkit-flex;*/
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
justify-content: flex-start;
|
||||
padding-top: 10rpx;
|
||||
padding-bottom: 10rpx;
|
||||
}
|
||||
.lotus-address-picker-box-item {
|
||||
height: 600upx;
|
||||
overflow-y: auto;
|
||||
width: 33.333%;
|
||||
padding-left: 20rpx;
|
||||
padding-right: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.lotus-address-picker2 {
|
||||
color: #e93b3d;
|
||||
position: relative;
|
||||
}
|
||||
/* .lotus-address-picker2:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 65%;
|
||||
transform: translateY(-35%) rotate(-45deg);
|
||||
width: 20rpx;
|
||||
height: 10rpx;
|
||||
border-left-width: 4rpx;
|
||||
border-bottom-width: 4rpx;
|
||||
border-left-style: solid;
|
||||
border-bottom-style: solid;
|
||||
border-left-color: #e93b3d;
|
||||
border-bottom-color: #e93b3d;
|
||||
} */
|
||||
.lotus-address-mask {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 999;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.lotus-address-box {
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.lotus-address-action {
|
||||
font-size: 30rpx;
|
||||
/*display: -webkit-box;
|
||||
display: -webkit-flex;*/
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
justify-content: space-between;
|
||||
padding: 25rpx 30rpx;
|
||||
position: relative;
|
||||
}
|
||||
.lotus-address-action:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid #eee;
|
||||
color: #eee;
|
||||
transform-origin: 0 0;
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
.lotus-address-action:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid #eee;
|
||||
color: #eee;
|
||||
transform-origin: 0 100%;
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
.lotus-address-action-cancel {
|
||||
color: #969696;
|
||||
}
|
||||
.lotus-address-action-affirm {
|
||||
color: #e93b3d;
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
<template>
|
||||
<view :class="['vol-'+type]">
|
||||
<slot></slot>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
type: {
|
||||
type: String,
|
||||
default: "primary"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.vol-primary {
|
||||
box-shadow: 1px 1px 9px #efefef;
|
||||
border: 1px solid #ddf0fb;
|
||||
background-color: #eef9ff;
|
||||
position: relative;
|
||||
border-radius: 4px;
|
||||
line-height: 26rpx;
|
||||
font-size: 26rpx;
|
||||
color: #404b50;
|
||||
letter-spacing: 1px;
|
||||
line-height:1.9;
|
||||
padding: 10rpx 16rpx;
|
||||
// margin: 16rpx 20rpx;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,45 @@
|
||||
<template>
|
||||
|
||||
<u-tabbar @change="onChange" activeColor="rgb(0 161 252)" :zIndex="99999" :value="index" :placeholder="false"
|
||||
:fixed="true">
|
||||
<u-tabbar-item text="首页" icon="home" :name="0"></u-tabbar-item>
|
||||
<u-tabbar-item text="菜单" icon="grid" :name="1"></u-tabbar-item>
|
||||
<u-tabbar-item text="统计" icon="file-text" :name="2"></u-tabbar-item>
|
||||
<u-tabbar-item text="消息" icon="bell" :name="3"></u-tabbar-item>
|
||||
<u-tabbar-item text="我的" icon="account" :name="4"></u-tabbar-item>
|
||||
</u-tabbar>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
index: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
},
|
||||
name: "vol-tabbar",
|
||||
data() {
|
||||
return {
|
||||
list: [
|
||||
"/pages/home/home",
|
||||
"/pages/menu/menu",
|
||||
"/pages/form/form",
|
||||
"/pages/message/message",
|
||||
"/pages/user/user"
|
||||
]
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
onChange(nameIndex) {
|
||||
uni.switchTab({
|
||||
url: this.list[nameIndex]
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
@ -0,0 +1,151 @@
|
||||
.peng-tree-mask {
|
||||
position: fixed;
|
||||
top: 0rpx;
|
||||
right: 0rpx;
|
||||
bottom: 0rpx;
|
||||
left: 0rpx;
|
||||
z-index: 9998;
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
opacity: 0;
|
||||
transition: all 0.3s ease;
|
||||
visibility: hidden;
|
||||
}
|
||||
.peng-tree-mask.show {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
.peng-tree-cnt {
|
||||
position: fixed;
|
||||
top: 0rpx;
|
||||
right: 0rpx;
|
||||
bottom: 0rpx;
|
||||
left: 0rpx;
|
||||
z-index: 9999;
|
||||
top: 360rpx;
|
||||
transition: all 0.3s ease;
|
||||
transform: translateY(100%);
|
||||
}
|
||||
.peng-tree-cnt.show {
|
||||
transform: translateY(0);
|
||||
}
|
||||
.peng-tree-bar {
|
||||
background-color: #fff;
|
||||
height: 72rpx;
|
||||
padding-left: 20rpx;
|
||||
padding-right: 20rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
border-bottom-width: 1rpx !important;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-color: #f5f5f5;
|
||||
font-size: 32rpx;
|
||||
color: #757575;
|
||||
line-height: 1;
|
||||
}
|
||||
.peng-tree-bar-confirm {
|
||||
color: #007aff;
|
||||
}
|
||||
.peng-tree-view {
|
||||
position: absolute;
|
||||
top: 0rpx;
|
||||
right: 0rpx;
|
||||
bottom: 0rpx;
|
||||
left: 0rpx;
|
||||
top: 72rpx;
|
||||
background-color: #fff;
|
||||
padding-top: 20rpx;
|
||||
padding-right: 20rpx;
|
||||
padding-bottom: 20rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.peng-tree-view-sc {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.peng-tree-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 26rpx;
|
||||
color: #757575;
|
||||
line-height: 1;
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
transition: 0.2s;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.peng-tree-item.show {
|
||||
height: 80rpx;
|
||||
opacity: 1;
|
||||
}
|
||||
.peng-tree-item.showchild:before {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
.peng-tree-item.last:before {
|
||||
opacity: 0;
|
||||
}
|
||||
.peng-tree-icon {
|
||||
width: 26rpx;
|
||||
height: 26rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
.peng-tree-label {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.peng-tree-check {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.peng-tree-check-yes,
|
||||
.peng-tree-check-no {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-top-left-radius: 20%;
|
||||
border-top-right-radius: 20%;
|
||||
border-bottom-right-radius: 20%;
|
||||
border-bottom-left-radius: 20%;
|
||||
border-top-width: 1rpx;
|
||||
border-left-width: 1rpx;
|
||||
border-bottom-width: 1rpx;
|
||||
border-right-width: 1rpx;
|
||||
border-style: solid;
|
||||
border-color: #007aff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.peng-tree-check-yes-b {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-top-left-radius: 20%;
|
||||
border-top-right-radius: 20%;
|
||||
border-bottom-right-radius: 20%;
|
||||
border-bottom-left-radius: 20%;
|
||||
background-color: #007aff;
|
||||
}
|
||||
.peng-tree-check .radio {
|
||||
border-top-left-radius: 50%;
|
||||
border-top-right-radius: 50%;
|
||||
border-bottom-right-radius: 50%;
|
||||
border-bottom-left-radius: 50%;
|
||||
}
|
||||
.peng-tree-check .radio .peng-tree-check-yes-b {
|
||||
border-top-left-radius: 50%;
|
||||
border-top-right-radius: 50%;
|
||||
border-bottom-right-radius: 50%;
|
||||
border-bottom-left-radius: 50%;
|
||||
}
|
||||
.hover-c {
|
||||
opacity: 0.6;
|
||||
}
|
@ -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>
|
@ -0,0 +1,39 @@
|
||||
import App from './App'
|
||||
|
||||
// #ifndef VUE3
|
||||
import Vue from 'vue'
|
||||
import uView from '@/uni_modules/uview-ui'
|
||||
import common from './util/common.js'
|
||||
import http from './util/http.js'
|
||||
import store from './store'
|
||||
Vue.prototype.$toast = function(message,duration) {
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: message,
|
||||
duration:duration||2000
|
||||
})
|
||||
}
|
||||
|
||||
Vue.prototype.http=http;
|
||||
Vue.prototype.$store = store;
|
||||
Vue.use(uView)
|
||||
Vue.config.productionTip = false;
|
||||
Vue.prototype.base=common;
|
||||
App.mpType = 'app'
|
||||
const app = new Vue({
|
||||
...App
|
||||
})
|
||||
app.$mount()
|
||||
// #endif
|
||||
|
||||
// #ifdef VUE3
|
||||
import {
|
||||
createSSRApp
|
||||
} from 'vue'
|
||||
export function createApp() {
|
||||
const app = createSSRApp(App)
|
||||
return {
|
||||
app
|
||||
}
|
||||
}
|
||||
// #endif
|
@ -0,0 +1,101 @@
|
||||
{
|
||||
"name" : "vol",
|
||||
"appid" : "__UNI__7909AB8",
|
||||
"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-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.NFC\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
/* ios打包配置 */
|
||||
"ios" : {},
|
||||
/* SDK配置 */
|
||||
"sdkConfigs" : {
|
||||
"ad" : {}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
/* 快应用特有相关 */
|
||||
"quickapp" : {},
|
||||
/* 小程序特有相关 */
|
||||
"mp-weixin" : {
|
||||
"appid" : "wx2f2d6e605d60671f",
|
||||
"setting" : {
|
||||
"urlCheck" : false
|
||||
},
|
||||
"scopedSlotsCompiler" : "legacy",
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-alipay" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-baidu" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-toutiao" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"uniStatistics" : {
|
||||
"enable" : false
|
||||
},
|
||||
"vueVersion" : "2"
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<template>
|
||||
<vol-audit v-if="isInit" @onAudit="onAudit" :data="data"></vol-audit>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isInit:false,
|
||||
data: {
|
||||
workTable: "",
|
||||
tableKey: ""
|
||||
}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
onAudit(){
|
||||
var pages = getCurrentPages(); // 获取页面栈
|
||||
var prevPage = pages[pages.length - 2]; // 上一个页面
|
||||
prevPage.$vm.search();
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.data.workTable = options.workTable;
|
||||
this.data.tableKey = options.tableKey;
|
||||
//console.log(this.data)
|
||||
this.isInit=true;
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,111 @@
|
||||
export default {
|
||||
canvas2d:true,
|
||||
timing: "easeOut",
|
||||
duration: 1000,
|
||||
rotate: false,
|
||||
rotateLock: false,
|
||||
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4", "#ea7ccc"],
|
||||
padding: [15, 15, 0, 5],
|
||||
fontSize: 13,
|
||||
fontColor: "#666666",
|
||||
dataLabel: true,
|
||||
dataPointShape: true,
|
||||
dataPointShapeType: "solid",
|
||||
touchMoveLimit: 60,
|
||||
enableScroll: false,
|
||||
enableMarkLine: false,
|
||||
legend: {
|
||||
show: true,
|
||||
position: "bottom",
|
||||
float: "center",
|
||||
padding: 5,
|
||||
margin: 5,
|
||||
backgroundColor: "rgba(0,0,0,0)",
|
||||
borderColor: "rgba(0,0,0,0)",
|
||||
borderWidth: 0,
|
||||
fontSize: 13,
|
||||
fontColor: "#666666",
|
||||
lineHeight: 11,
|
||||
hiddenColor: "#CECECE",
|
||||
itemGap: 10
|
||||
},
|
||||
xAxis: {
|
||||
disableGrid: true,
|
||||
disabled: false,
|
||||
axisLine: true,
|
||||
axisLineColor: "#CCCCCC",
|
||||
calibration: false,
|
||||
fontColor: "#666666",
|
||||
fontSize: 13,
|
||||
rotateLabel: false,
|
||||
rotateAngle: 45,
|
||||
itemCount: 5,
|
||||
boundaryGap: "center",
|
||||
splitNumber: 5,
|
||||
gridColor: "#CCCCCC",
|
||||
gridType: "solid",
|
||||
dashLength: 4,
|
||||
gridEval: 1,
|
||||
scrollShow: false,
|
||||
scrollAlign: "left",
|
||||
scrollColor: "#A6A6A6",
|
||||
scrollBackgroundColor: "#EFEBEF",
|
||||
format: ""
|
||||
},
|
||||
yAxis: {
|
||||
data: [{
|
||||
min: 0
|
||||
}],
|
||||
disabled: false,
|
||||
disableGrid: false,
|
||||
splitNumber: 5,
|
||||
gridType: "solid",
|
||||
dashLength: 8,
|
||||
gridColor: "#CCCCCC",
|
||||
padding: 10,
|
||||
showTitle: false
|
||||
},
|
||||
extra: {
|
||||
column: {
|
||||
type: "group",
|
||||
width: 30,
|
||||
activeBgColor: "#000000",
|
||||
activeBgOpacity: 0.08,
|
||||
seriesGap: 2,
|
||||
categoryGap: 3,
|
||||
barBorderCircle: false,
|
||||
linearType: "none",
|
||||
linearOpacity: 1,
|
||||
colorStop: 0,
|
||||
meterBorder: 1,
|
||||
meterFillColor: "#FFFFFF"
|
||||
},
|
||||
tooltip: {
|
||||
showBox: true,
|
||||
showArrow: true,
|
||||
showCategory: false,
|
||||
borderWidth: 0,
|
||||
borderRadius: 0,
|
||||
borderColor: "#000000",
|
||||
borderOpacity: 0.7,
|
||||
bgColor: "#000000",
|
||||
bgOpacity: 0.7,
|
||||
gridType: "solid",
|
||||
dashLength: 4,
|
||||
gridColor: "#CCCCCC",
|
||||
fontColor: "#FFFFFF",
|
||||
splitLine: true,
|
||||
horizentalLine: false,
|
||||
xAxisLabel: false,
|
||||
yAxisLabel: false,
|
||||
labelBgColor: "#FFFFFF",
|
||||
labelBgOpacity: 0.7,
|
||||
labelFontColor: "#666666"
|
||||
},
|
||||
markLine: {
|
||||
type: "solid",
|
||||
dashLength: 4,
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<view>
|
||||
整理中
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
@ -0,0 +1,223 @@
|
||||
<template>
|
||||
<view class="v-form-container">
|
||||
<u-notice-bar color="#54a6ff" bgColor="#e9f3ff" text="这里是一些常用功能,后续会不断更新........."></u-notice-bar>
|
||||
|
||||
<view class="grid-list" v-for="(item,index) in grid">
|
||||
<view class="grid-title">
|
||||
<view class="grid-title-text">
|
||||
<view class="grid-title-border"></view>
|
||||
<view> {{item.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="grid-item" @click="gridClick(data.path)" v-for="(data,dindex) in item.data" :key="dindex">
|
||||
<view class="grid-icon" :class="data.bg">
|
||||
<u-icon color="#ffff" size="26" :name="data.icon"></u-icon>
|
||||
</view>
|
||||
<view class="grid-text">
|
||||
{{data.name}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
grid: [{
|
||||
name: "volt-able表格",
|
||||
data: [{
|
||||
name: "水平显示",
|
||||
icon: "file-text",
|
||||
bg: "color1",
|
||||
path: "/pages/table/table1/table1"
|
||||
}, {
|
||||
name: "列表显示",
|
||||
icon: "list-dot",
|
||||
bg: "color2",
|
||||
path: "/pages/table/table2/table2"
|
||||
}]
|
||||
},
|
||||
{
|
||||
name: "volt-able表格自定义内容",
|
||||
data: [{
|
||||
name: "自定内容表一",
|
||||
icon: "order",
|
||||
bg: "color4",
|
||||
path: "/pages/table/table4/table4"
|
||||
}, {
|
||||
name: "自定内容表二",
|
||||
icon: "more-circle",
|
||||
bg: "color5",
|
||||
path: "/pages/table/table5/table5"
|
||||
}]
|
||||
},
|
||||
{
|
||||
name: "表单",
|
||||
data: [{
|
||||
name: "表单(级联)",
|
||||
icon: "file-text",
|
||||
bg: "color5",
|
||||
path: "/pages/form/form2"
|
||||
}, {
|
||||
name: "只读表单",
|
||||
icon: "calendar",
|
||||
bg: "color3",
|
||||
path: "/pages/form/form1"
|
||||
}, {
|
||||
name: "事件绑定",
|
||||
icon: "pause-circle",
|
||||
bg: "color2",
|
||||
path: "/pages/form/form2"
|
||||
}, {
|
||||
name: "自定义",
|
||||
icon: "edit-pen",
|
||||
bg: "color4",
|
||||
path: ""
|
||||
}]
|
||||
},
|
||||
{
|
||||
name: "地图",
|
||||
data: [{
|
||||
name: "地图地位",
|
||||
icon: "map",
|
||||
bg: "color4",
|
||||
path: "/pages/map/map"
|
||||
}, {
|
||||
name: "地图轨迹",
|
||||
icon: "play-circle",
|
||||
bg: "color3",
|
||||
path: ""
|
||||
}, {
|
||||
name: "地图标记",
|
||||
icon: "thumb-up",
|
||||
bg: "color1",
|
||||
path: ""
|
||||
}]
|
||||
}, {
|
||||
name: "图表",
|
||||
data: [{
|
||||
name: "图表1",
|
||||
icon: "share",
|
||||
bg: "color3",
|
||||
path: "/pages/form/charts/chart1"
|
||||
}, {
|
||||
name: "图表2",
|
||||
icon: "photo",
|
||||
bg: "color2",
|
||||
path: ""
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
onShow() {},
|
||||
methods: {
|
||||
gridClick(path) {
|
||||
if (!path) {
|
||||
this.$toast('开发中')
|
||||
return;
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: path
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.v-form-container {
|
||||
background: #fbfbfb;
|
||||
height: calc(100vh - 110rpx);
|
||||
overflow: scroll;
|
||||
padding-bottom: 90rpx;
|
||||
}
|
||||
|
||||
.grid-list {
|
||||
border-top: 1px solid #f9f9f9;
|
||||
border-bottom: 1px solid #f9f9f9;
|
||||
margin-bottom: 24rpx;
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
background: #ffff;
|
||||
|
||||
.grid-item {
|
||||
width: 20%;
|
||||
text-align: center;
|
||||
float: left;
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
|
||||
.grid-title {
|
||||
border-bottom: 1px solid #f7f7f7;
|
||||
padding: 20rpx;
|
||||
|
||||
// margin: 10px;
|
||||
// font-weight: bold;
|
||||
.grid-title-border {
|
||||
display: inline-block;
|
||||
background: #00aaff;
|
||||
padding: 18rpx 8rpx;
|
||||
border-radius: 10rpx;
|
||||
margin-right: 14rpx;
|
||||
}
|
||||
|
||||
.grid-title-text {
|
||||
display: flex;
|
||||
// border-left: 16rpx solid #00aaff;
|
||||
line-height: 1.1;
|
||||
padding-left: 10rpx;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.grid-icon {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
background: #eee;
|
||||
border-radius: 34rpx;
|
||||
// position: relative;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.color1 {
|
||||
background-image: linear-gradient(#e8b752, #e8b752);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
.color2 {
|
||||
background-image: linear-gradient(#e55764, #e55764);
|
||||
}
|
||||
|
||||
.color3 {
|
||||
background-image: linear-gradient(#78c4df, #78c4df);
|
||||
}
|
||||
|
||||
.color4 {
|
||||
background-image: linear-gradient(#69a0f1, #69a0f1);
|
||||
}
|
||||
|
||||
.color5 {
|
||||
background-image: linear-gradient(#736be2, #736be2);
|
||||
}
|
||||
|
||||
.grid-text {
|
||||
font-size: 24rpx;
|
||||
color: #7e7e7e;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.grid-list /deep/ .u-icon {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,97 @@
|
||||
<template>
|
||||
<view class="form-test">
|
||||
<vol-alert>
|
||||
<view>vol-form设置readonly属性只读</view>
|
||||
</vol-alert>
|
||||
<vol-form @onChange="onChange" :load-key="true" ref="form" :form-options.sync="editFormOptions"
|
||||
:formFields.sync="editFormFields">
|
||||
</vol-form>
|
||||
|
||||
<vol-alert style="margin-top: 40rpx;">
|
||||
<view>标签显示在上方</view>
|
||||
</vol-alert>
|
||||
<vol-form labelPosition="left" :load-key="true" ref="form2" :form-options.sync="editFormOptions"
|
||||
:formFields.sync="editFormFields">
|
||||
</vol-form>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
editFormFields: {
|
||||
inputText: "这是必填输入框",
|
||||
pwd: "12345",
|
||||
selectVal: "1",
|
||||
selectListVal: [], //多选这里的值是数组
|
||||
dateValue: "2022-03-27",
|
||||
datetimeValue: "2022-03-27 20:15"
|
||||
},
|
||||
editFormOptions: [{
|
||||
"title": "输入框",
|
||||
"required": true,
|
||||
"field": "inputText",
|
||||
readonly: true
|
||||
}, {
|
||||
"title": "密码框",
|
||||
"field": "pwd",
|
||||
"type": "password",
|
||||
readonly: true
|
||||
}, {
|
||||
type: "group" //表单分组
|
||||
},
|
||||
{
|
||||
"title": "下拉框",
|
||||
"field": "selectVal",
|
||||
type: "select",
|
||||
"required": true,
|
||||
data: [],
|
||||
readonly: true,
|
||||
key: "enable"
|
||||
},
|
||||
{
|
||||
"title": "多选框",
|
||||
"field": "selectListVal",
|
||||
type: "selectList",
|
||||
"required": true,
|
||||
data: [],
|
||||
key: "pn",
|
||||
readonly: true
|
||||
},
|
||||
{
|
||||
type: "group" //表单分组
|
||||
},
|
||||
{
|
||||
"title": "日期",
|
||||
"required": true,
|
||||
"type": "date",
|
||||
"field": "dateValue",
|
||||
readonly: true
|
||||
},
|
||||
{
|
||||
"title": "日期时分秒",
|
||||
"type": "datetime",
|
||||
"field": "datetimeValue",
|
||||
readonly: true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.form-test {
|
||||
margin-top: -20rpx;
|
||||
background: #fbfbfb;
|
||||
padding-top: 20rpx;
|
||||
overflow: scroll;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,291 @@
|
||||
<template>
|
||||
|
||||
<view class="page-section page-section-gap">
|
||||
<map :enable-satellite="satellite" id="w-map" @controltap="controltap" @markertap="markertap"
|
||||
:show-compass="true" :show-scale="true" :scale="scale" :controls="controls"
|
||||
:style="{height:nintyPercentScreenHeight,width:'750rpx'}" :latitude="latitude" :longitude="longitude"
|
||||
:markers="covers">
|
||||
</map>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
scale: 15,
|
||||
id: "w-marker-map", // 使用 marker点击事件 需要填写id
|
||||
title: 'map',
|
||||
longitude:116.38,
|
||||
latitude: 39.87,
|
||||
satellite: false, //是否开启卫星图
|
||||
covers: [
|
||||
{
|
||||
id: 100,
|
||||
longitude:116.38,
|
||||
latitude: 39.87,
|
||||
iconPath: "/static/location-2.png",
|
||||
},
|
||||
{
|
||||
id: 200,
|
||||
longitude:116.38,
|
||||
latitude: 39.8622,
|
||||
iconPath: "/static/location-1.png",
|
||||
}
|
||||
],
|
||||
phoneHeight: 1200,
|
||||
phoneWidth: 0,
|
||||
controls: [],
|
||||
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.latitude = option.latitude;
|
||||
this.longitude = option.longitude
|
||||
|
||||
|
||||
},
|
||||
onReady() {
|
||||
uni.getSystemInfo({
|
||||
success: (res) => {
|
||||
this.phoneHeight = res.windowHeight;
|
||||
this.phoneWidth = res.windowWidth
|
||||
}
|
||||
});
|
||||
},
|
||||
computed: { //计算
|
||||
nintyPercentScreenHeight() { //百分之九十的屏幕高
|
||||
if (this.phoneHeight !== '' && this.phoneWidth !== '') {
|
||||
return 750 / (this.phoneWidth) * (this.phoneHeight) + 'rpx'
|
||||
} else {
|
||||
return '1250rpx'
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
||||
scaleMinus() {
|
||||
if (this.scale < 3) {
|
||||
return;
|
||||
}
|
||||
this.scale = this.scale - 1;
|
||||
},
|
||||
scalePlus() {
|
||||
if (this.scale > 18) {
|
||||
return;
|
||||
}
|
||||
this.scale = this.scale + 1;
|
||||
},
|
||||
toLocation() {
|
||||
//this.scale=this.scale-1;
|
||||
uni.createMapContext("w-map", this).moveToLocation({
|
||||
longitude: this.longitude,
|
||||
latitude: this.latitude
|
||||
});
|
||||
},
|
||||
openMap() {
|
||||
console.log(this.detail)
|
||||
console.log(this.detail.latitude)
|
||||
uni.openLocation({
|
||||
// 传入你要去的纬度
|
||||
latitude: this.detail.latitude,
|
||||
// 传入你要去的经度
|
||||
longitude: this.detail.longitude,
|
||||
// 传入你要去的地址信息 不填则为空
|
||||
address: this.detail.title,
|
||||
// 缩放大小
|
||||
scale: 13,
|
||||
success: function() {
|
||||
console.log('成功的回调success');
|
||||
}
|
||||
});
|
||||
return;
|
||||
|
||||
},
|
||||
controltap(e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.bottom {
|
||||
background: #EEEEEE;
|
||||
height: 40%;
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
z-index: 99999;
|
||||
}
|
||||
|
||||
.controls {
|
||||
position: absolute;
|
||||
width: 60rpx;
|
||||
z-index: 999999;
|
||||
right: 26rpx;
|
||||
bottom: 180rpx;
|
||||
|
||||
.scale {
|
||||
background: #FFFFFF;
|
||||
text-align: center;
|
||||
border-radius: 10rpx;
|
||||
margin-bottom: 30rpx;
|
||||
|
||||
.minus,
|
||||
.plus {
|
||||
font-size: 48rpx;
|
||||
color: #3a3a3a;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.vol-action-sheet-select-title {
|
||||
padding: 15px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #f5f5f5;
|
||||
}
|
||||
|
||||
.map-type {
|
||||
// position: absolute;
|
||||
position: fixed;
|
||||
z-index: 9999;
|
||||
background: #FFFFFF;
|
||||
border-radius: 4px;
|
||||
padding: 5px;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
display: flex;
|
||||
flex-direction: initial;
|
||||
// #ifdef H5
|
||||
top: 60px;
|
||||
// #endif
|
||||
}
|
||||
|
||||
.map-text {
|
||||
font-size: 13px;
|
||||
padding: 1px 5px;
|
||||
color: #6c6c6c;
|
||||
}
|
||||
|
||||
.actived {
|
||||
color: #0698e1;
|
||||
}
|
||||
|
||||
.river-list {
|
||||
display: flex;
|
||||
padding: 20rpx 32rpx;
|
||||
border-bottom: 1px solid #f3f3f3;
|
||||
color: #464646;
|
||||
|
||||
.left {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 24rpx;
|
||||
color: #acacac;
|
||||
padding-top: 10rpx;
|
||||
}
|
||||
|
||||
.icon {
|
||||
// width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
.h-list {
|
||||
margin-top: 12rpx;
|
||||
padding: 0 12rpx;
|
||||
// padding-bottom: 73px;
|
||||
// display: inline-block;
|
||||
// width: 100%;
|
||||
|
||||
// padding-bottom: ;
|
||||
// width: 100%;
|
||||
.h-list-item {
|
||||
padding: 12rpx;
|
||||
padding-top: 0;
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 12rpx;
|
||||
display: flex;
|
||||
// box-shadow: 2px 4px 9px #f0f0f0;
|
||||
// float: left;
|
||||
// width: 50%;
|
||||
// flex-direction: column;
|
||||
// padding-bottom: 0;
|
||||
background: #ffff;
|
||||
}
|
||||
|
||||
.h-list-item-img {
|
||||
padding-top: 10rpx;
|
||||
// width: 260rpx;
|
||||
}
|
||||
|
||||
.h-list-content {
|
||||
padding: 14rpx 24rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// font-size: 28rpx;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.h-list-title {
|
||||
line-height: 1.1;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
|
||||
.h-list-line {
|
||||
flex: 1;
|
||||
// margin: 10rpx;
|
||||
// border-bottom: 1px solid #f7f7f7;
|
||||
// padding-top: 12rpx;
|
||||
|
||||
}
|
||||
|
||||
.h-list-attr {
|
||||
font-size: 24rpx;
|
||||
color: #9d9d9d;
|
||||
padding: 14rpx 0;
|
||||
|
||||
}
|
||||
|
||||
.h-list-tag {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.h-list-tag-item {
|
||||
background: #e8f8ff;
|
||||
font-size: 12px;
|
||||
color: #44a1f9;
|
||||
padding: 1px 3px 2px 3px;
|
||||
margin-right: 3px;
|
||||
border-radius: 3px;
|
||||
|
||||
}
|
||||
|
||||
.h-list-bottom {
|
||||
font-size: 26rpx;
|
||||
display: flex;
|
||||
color: #565454;
|
||||
|
||||
.price {
|
||||
text-align: right;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.num {
|
||||
color: #e10000;
|
||||
font-size: 30rpx;
|
||||
margin-right: 8rpx;
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<view>
|
||||
<u-empty v-if="!menu.length" text=" " mode="search" icon="http://cdn.uviewui.com/uview/empty/search.png">
|
||||
</u-empty>
|
||||
<view v-if="menu.length" class="menu-container">
|
||||
<view class="menu-left">
|
||||
<view @click="itemClick(item,index)" class="menu-item" :class="{'menu-item-select':selectIndex===index}"
|
||||
:key="index" v-for="(item,index) in getMenu()">{{item.name}}</view>
|
||||
<view style="height:52px;"></view>
|
||||
</view>
|
||||
<view class="menu-right">
|
||||
<view @click="menuClick(item,index)" class="menu-right-item" v-for="(item,index) in rightData"
|
||||
:key="index">
|
||||
<view class="text">
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view class="r-icon">
|
||||
<u-icon name="arrow-right" color="rgb(221 221 208)" size="16"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
selectIndex: 0,
|
||||
menu: [],
|
||||
rightData: []
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
let menu = this.$store.getters.getMenu();
|
||||
if (menu.length) {
|
||||
return this.menu = menu;
|
||||
}
|
||||
this.http.get("api/menu/getTreeMenu", {}, false).then(result => {
|
||||
this.menu = result.menu?result.menu:result;
|
||||
if (this.menu.length) {
|
||||
this.itemClick(this.getMenu()[0], 0);
|
||||
}
|
||||
|
||||
this.$store.commit("setPermission", JSON.parse(JSON.stringify(this.menu)));
|
||||
})
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
methods: {
|
||||
getMenu() {
|
||||
return this.menu.filter(c => {
|
||||
return !c.parentId
|
||||
})
|
||||
},
|
||||
itemClick(item, index) {
|
||||
this.selectIndex = index;
|
||||
this.rightData = this.menu.filter(x => {
|
||||
return x.parentId == item.id
|
||||
});
|
||||
},
|
||||
menuClick(item, index) {
|
||||
let path=item.path||item.url;
|
||||
if (path) {
|
||||
if(path[0]!='/'){
|
||||
path='/'+path;
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: path
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.menu-container {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
.menu-left {
|
||||
overflow: scroll;
|
||||
width: 200rpx;
|
||||
background-color: #f7f8fa;
|
||||
border-right: 1px solid #f7f8fa;
|
||||
height: 100%;
|
||||
|
||||
.menu-item {
|
||||
position: relative;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
padding: 34rpx 16rpx;
|
||||
overflow: hidden;
|
||||
color: #323233;
|
||||
font-size: 28rpx;
|
||||
line-height: 36rpx;
|
||||
background-color: #f7f8fa;
|
||||
user-select: none;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.menu-item-select {
|
||||
background: white;
|
||||
|
||||
}
|
||||
|
||||
.menu-item-select:before {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
width: 8rpx;
|
||||
height: 34rpx;
|
||||
background-color: #007ef3;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
content: '';
|
||||
}
|
||||
}
|
||||
|
||||
.menu-right {
|
||||
overflow: scroll;
|
||||
flex: 1;
|
||||
width: 0;
|
||||
margin-bottom: 53px;
|
||||
|
||||
// display: flex;
|
||||
.menu-right-item {
|
||||
padding: 30rpx 30rpx 30rpx 50rpx;
|
||||
color: #727272;
|
||||
font-size: 28rpx;
|
||||
border-bottom: 1px solid #f3f3f3;
|
||||
display: flex;
|
||||
|
||||
.text {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.r-icon {
|
||||
width: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,50 @@
|
||||
<template>
|
||||
<view style="padding: 20rpx;">
|
||||
<u-skeleton rows="15" :loading="loading" :title="false">
|
||||
<view class="title">{{data.title}}</view>
|
||||
<view class="sm-text"><text class="user">{{data.creator}}</text>{{data.createDate}}</view>
|
||||
<u-parse :content="data.content"></u-parse>
|
||||
|
||||
<view style="height: 20rpx;"></view>
|
||||
</u-skeleton>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: true,
|
||||
data: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
onLoad(option) {
|
||||
uni.setNavigationBarTitle({
|
||||
title: option.title
|
||||
})
|
||||
this.http.get("api/app_news/getDetail?id=" + option.id, {}, false).then(result => {
|
||||
this.data = result;
|
||||
this.loading = false;
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.title {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.sm-text {
|
||||
padding: 20rpx 0 5rpx 0;
|
||||
font-size: 26rpx;
|
||||
color: #8f8f8f;
|
||||
}
|
||||
|
||||
.user {
|
||||
margin-right: 40rpx;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,107 @@
|
||||
<template>
|
||||
<view>
|
||||
<view @click="toDetail(item)" class="message-list-item" v-for="(item,index) in data" :key="index">
|
||||
<view class="message-list-item-left">
|
||||
<u--image width="80px" height="80px" radius="5px" :src="item.imageUrl"></u--image>
|
||||
</view>
|
||||
<view class="message-list-item-right">
|
||||
<view class="message-list-item-right-title">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="message-list-item-right-small-text">
|
||||
<view style="font-weight: bold; flex: 1;">{{item.creator}}</view>
|
||||
<view class="flag" v-if="index<=3">最新</view>
|
||||
<view class="text">{{item.createDate.substring(0,16)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
list: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
toDetail(item) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/message/detail/detail?id=' + item.id + '&title=' + item.title
|
||||
})
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.data = this.list;
|
||||
},
|
||||
// #ifdef MP-WEIXIN
|
||||
watch: {
|
||||
list: {
|
||||
handler(val) {
|
||||
this.data = val;
|
||||
},
|
||||
immediate: true,
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
// #endif
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.message-list-item {
|
||||
min-height: 100rpx;
|
||||
display: flex;
|
||||
margin: 14rpx 14rpx 0 14rpx;
|
||||
background: white;
|
||||
padding: 16rpx;
|
||||
border-radius: 10rpx;
|
||||
border: 1px solid #f5f5f5;
|
||||
}
|
||||
|
||||
.message-list-item-left {
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.message-list-item-right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.message-list-item-right-title {
|
||||
flex: 1;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.message-list-item-right-small-text {
|
||||
display: flex;
|
||||
font-size: 24rpx;
|
||||
color: #a7a7a7;
|
||||
|
||||
.text {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.text:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.flag {
|
||||
padding: 1px 5px;
|
||||
border-radius: 3px;
|
||||
font-size: 20rpx;
|
||||
background: #f44336;
|
||||
color: #ffff;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,155 @@
|
||||
<template>
|
||||
<view class="message-container">
|
||||
<u-sticky bgColor="#fff">
|
||||
<u-tabs :list="list1"></u-tabs>
|
||||
</u-sticky>
|
||||
|
||||
<view class="message-list">
|
||||
<u-skeleton rows="3" :loading="loading" avatar :title="false">
|
||||
<u-list @scrolltolower="scrolltolower" :height="height" :lowerThreshold='50'>
|
||||
<message-list :list="list"></message-list>
|
||||
<view style="height: 50px;"></view>
|
||||
</u-list>
|
||||
<!-- <u-list @scrolltolower="scrolltolower" :height="height" :lowerThreshold='50'>
|
||||
<view @click="toDetail(item)" class="message-list-item" v-for="(item,index) in list" :key="index">
|
||||
<view class="message-list-item-left">
|
||||
<u--image width="80px" height="80px" radius="5px" :src="item.imageUrl"></u--image>
|
||||
</view>
|
||||
<view class="message-list-item-right">
|
||||
<view class="message-list-item-right-title">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="message-list-item-right-small-text">
|
||||
<view class="text">{{item.creator}}</view>
|
||||
<view class="flag" v-if="index<=3">最新</view>
|
||||
<view class="text">{{item.createDate.substring(0,16)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height: 50px;"></view>
|
||||
</u-list> -->
|
||||
</u-skeleton>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import messagelist from './message-list.vue'
|
||||
export default {
|
||||
components:{
|
||||
'message-list':messagelist
|
||||
},
|
||||
methods: {
|
||||
scrolltolower() {
|
||||
this.getList();
|
||||
},
|
||||
async getNav() {
|
||||
await this.http.get('api/app_news/getNav', {}, true).then(result => {
|
||||
this.list1 = result
|
||||
})
|
||||
},
|
||||
getList() {
|
||||
if (this.page < 0) {
|
||||
return;
|
||||
}
|
||||
this.page++;
|
||||
let url = 'api/app_news/getList?newsType=' + this.id + "&page=" + this.page;
|
||||
this.http.get(url, {}, false).then(result => {
|
||||
result.forEach(item => {
|
||||
item.imageUrl = this.http.ipAddress + item.imageUrl;
|
||||
})
|
||||
if (!result.length) {
|
||||
this.page = -1;
|
||||
}
|
||||
this.list.push(...result);
|
||||
this.loading = false;
|
||||
})
|
||||
}
|
||||
},
|
||||
async onLoad() {
|
||||
let _this = this;
|
||||
uni.getSystemInfo({
|
||||
success: function(res) {
|
||||
_this.height = res.windowHeight - 50;
|
||||
}
|
||||
});
|
||||
await this.getNav();
|
||||
if (!this.list1.length) {
|
||||
this.loading = false;
|
||||
return;
|
||||
}
|
||||
this.id = this.list1[0].id;
|
||||
this.getList();
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
id: 0,
|
||||
page: 0,
|
||||
loading: true,
|
||||
height: 0,
|
||||
list1: [{
|
||||
name: '',
|
||||
}, {
|
||||
name: '',
|
||||
}],
|
||||
list: []
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.message-container {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.message-list {
|
||||
.message-list-item {
|
||||
min-height: 100rpx;
|
||||
display: flex;
|
||||
margin: 14rpx 14rpx 0 14rpx;
|
||||
background: white;
|
||||
padding: 16rpx;
|
||||
border-radius: 10rpx;
|
||||
border: 1px solid #f5f5f5;
|
||||
}
|
||||
|
||||
.message-list-item-left {
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.message-list-item-right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.message-list-item-right-title {
|
||||
flex: 1;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.message-list-item-right-small-text {
|
||||
display: flex;
|
||||
font-size: 24rpx;
|
||||
color: #a7a7a7;
|
||||
|
||||
.text {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.text:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.flag {
|
||||
padding: 1px 5px;
|
||||
border-radius: 3px;
|
||||
font-size: 20rpx;
|
||||
background: #f44336;
|
||||
color: #ffff;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|