@@ -167,4 +167,5 @@ App({ | |||||
}); | }); | ||||
}, 2000); | }, 2000); | ||||
}, | }, | ||||
}) | }) |
@@ -4,7 +4,8 @@ | |||||
"pages/index/index", | "pages/index/index", | ||||
"pages/handle/liist", | "pages/handle/liist", | ||||
"pages/handle/expenditureAudit/expenditureAudit", | "pages/handle/expenditureAudit/expenditureAudit", | ||||
"pages/apply/index" | |||||
"pages/apply/index", | |||||
"pages/apply/paymentTemplate/paymentTemplate" | |||||
], | ], | ||||
"window": { | "window": { | ||||
"backgroundTextStyle": "light", | "backgroundTextStyle": "light", | ||||
@@ -52,6 +52,12 @@ contact-button { | |||||
text-align:center; | text-align:center; | ||||
background:linear-gradient(to right, #2C8E68, #B3DB62); | background:linear-gradient(to right, #2C8E68, #B3DB62); | ||||
} | } | ||||
.ns image{ | |||||
position: absolute; | |||||
left: 3%; | |||||
width: 10px; | |||||
z-index: 9; | |||||
} | |||||
.ns text{ | .ns text{ | ||||
position: relative; | position: relative; | ||||
top: 30px; | top: 30px; | ||||
@@ -1,31 +0,0 @@ | |||||
/* | |||||
* Eslint config file | |||||
* Documentation: https://eslint.org/docs/user-guide/configuring/ | |||||
* Install the Eslint extension before using this feature. | |||||
*/ | |||||
module.exports = { | |||||
env: { | |||||
es6: true, | |||||
browser: true, | |||||
node: true, | |||||
}, | |||||
ecmaFeatures: { | |||||
modules: true, | |||||
}, | |||||
parserOptions: { | |||||
ecmaVersion: 2018, | |||||
sourceType: 'module', | |||||
}, | |||||
globals: { | |||||
wx: true, | |||||
App: true, | |||||
Page: true, | |||||
getCurrentPages: true, | |||||
getApp: true, | |||||
Component: true, | |||||
requirePlugin: true, | |||||
requireMiniProgram: true, | |||||
}, | |||||
// extends: 'eslint:recommended', | |||||
rules: {}, | |||||
} |
@@ -1,158 +0,0 @@ | |||||
import * as STORAGE from './utils/storage' | |||||
import * as UTIL from './utils/util' | |||||
import * as API from './utils/API' | |||||
let APP = getApp(); | |||||
App({ | |||||
onLaunch() { | |||||
var that = this; | |||||
//存储storage初始化globalData数据-- | |||||
//何时存储,用来判断,不用获取code | |||||
that.initGlobalData(); | |||||
//获取code | |||||
UTIL.getCOdeFromWX({ | |||||
complate: (code) => { | |||||
// //获取openId | |||||
that.getOpenIdFromFW(code); | |||||
} | |||||
}); | |||||
//获取设备信息 | |||||
wx.getSystemInfo({ | |||||
success: function (res) { | |||||
that.globalData.systemType = res.system.indexOf("Android") >= 0 ? "Android" : "IOS"; | |||||
that.globalData.isIphoneX = res.model.indexOf("iPhone X") >= 0 || res.model.indexOf("iPhone 1") >= 0; | |||||
} | |||||
}); | |||||
}, | |||||
onShow() { | |||||
//更新机制 | |||||
this.wxappUpdateManager(); | |||||
}, | |||||
globalData: { | |||||
// 系统用户登录信息(用户id、token) | |||||
userInfo: { | |||||
token: '', | |||||
toastTimeout:null | |||||
}, | |||||
//微信用户登陆信息(昵称、头像、省、城市) | |||||
wxUserInfo: { | |||||
nickName: '', | |||||
avatarUrl: '', | |||||
province: '', | |||||
city: '' | |||||
} | |||||
, | |||||
/** | |||||
* 小程序设置 | |||||
*/ | |||||
setInfo: { | |||||
//定位授权 | |||||
locationOpenIdWX: false, | |||||
//纬度 | |||||
latitude:'', | |||||
//经度 | |||||
longitude:'', | |||||
} | |||||
, | |||||
systemType:'',//设备类型 Android IOS | |||||
isIphoneX: false, // 用来标识当前手机机型是否为 iPhone X | |||||
}, | |||||
/** | |||||
* 从服务端获取openId | |||||
*/ | |||||
getOpenIdFromFW(code) { | |||||
let sendData = { | |||||
code: code | |||||
} | |||||
UTIL.httpRequestNoneDetal(API.URL_GET_OPENID, sendData, "POST", { | |||||
success: (res) => { | |||||
if (res.code == API.SUCCESS_CODE) { | |||||
// UTIL.showToastNoneIcon("openId:" + res._data.openid); | |||||
STORAGE.setToken(res.token) | |||||
STORAGE.setOpenId(res.data.openId) | |||||
STORAGE.setSessionKey(res.data.sessionKey) | |||||
getApp().globalData.userInfo.token = res.token; | |||||
} else { | |||||
//未获取到openId | |||||
STORAGE.setOpenId(res.data.openId) | |||||
STORAGE.setSessionKey(res.data.sessionKey) | |||||
} | |||||
} | |||||
}) | |||||
}, | |||||
/** | |||||
* 初始化globalData | |||||
*/ | |||||
initGlobalData() { | |||||
var userInfo = { | |||||
token: STORAGE.getToken() | |||||
} | |||||
console.log(userInfo) | |||||
this.globalData.userInfo = userInfo; | |||||
} | |||||
, | |||||
/** | |||||
* 小程序更新机制 | |||||
* 获取小程序更新机制兼容 | |||||
*/ | |||||
wxappUpdateManager() { | |||||
if (wx.canIUse('getUpdateManager')) { | |||||
const updateManager = wx.getUpdateManager(); | |||||
if (!!updateManager) { | |||||
updateManager.onCheckForUpdate(function (res) { | |||||
// 请求完新版本信息的回调 | |||||
if (res.hasUpdate) { | |||||
updateManager.onUpdateReady(function () { | |||||
wx.showModal({ | |||||
title: '更新提示', | |||||
content: '新版本已经准备好,是否重启应用?', | |||||
success: function (res) { | |||||
if (res.confirm) { | |||||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 | |||||
updateManager.applyUpdate() | |||||
} | |||||
} | |||||
}) | |||||
}) | |||||
updateManager.onUpdateFailed(function () { | |||||
// 新的版本下载失败 | |||||
wx.showModal({ | |||||
title: '已经有新版本了哟~', | |||||
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~', | |||||
}) | |||||
}) | |||||
} | |||||
}) | |||||
} | |||||
} else { | |||||
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 | |||||
wx.showModal({ | |||||
title: '提示', | |||||
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' | |||||
}) | |||||
} | |||||
}, | |||||
showToast(msg, selfClass = '') { | |||||
clearTimeout(this.globalData.toastTimeout); | |||||
const page = getCurrentPages(); | |||||
const currPage = page[page.length - 1]; | |||||
currPage.setData({ | |||||
toastData: { | |||||
showFlag: true, | |||||
toastMsg: msg, | |||||
selfClass, | |||||
}, | |||||
}); | |||||
this.globalData.toastTimeout = setTimeout(() => { | |||||
currPage.setData({ | |||||
toastData: { | |||||
showFlag: false, | |||||
selfClass: '', | |||||
}, | |||||
}); | |||||
}, 2000); | |||||
}, | |||||
}) |
@@ -1,19 +0,0 @@ | |||||
{ | |||||
"pages": [ | |||||
"pages/user/login/login", | |||||
"pages/index/index" | |||||
], | |||||
"window": { | |||||
"backgroundTextStyle": "light", | |||||
"navigationBarBackgroundColor": "#fff", | |||||
"navigationBarTitleText": "农燊高科", | |||||
"navigationBarTextStyle": "black" | |||||
}, | |||||
"style": "v2", | |||||
"sitemapLocation": "sitemap.json", | |||||
"permission": { | |||||
"scope.userLocation": { | |||||
"desc": "你的位置信息将用于小程序位置接口的效果展示" | |||||
} | |||||
} | |||||
} |
@@ -1,49 +0,0 @@ | |||||
/**app.wxss**/ | |||||
@import '/style/main.wxss'; | |||||
@import "./templates/global/global.wxss"; | |||||
@import "/style/iconfont.wxss"; | |||||
Page { | |||||
font-size: 28rpx; | |||||
line-height: 35rpx; | |||||
background-color: #F4F4F4; | |||||
color: #444; | |||||
} | |||||
view, | |||||
scroll-view, | |||||
swiper, | |||||
movable-view, | |||||
icon, | |||||
text, | |||||
progress, | |||||
button, | |||||
checkbox, | |||||
form, | |||||
input, | |||||
label, | |||||
picker, | |||||
picker-view, | |||||
radio, | |||||
slider, | |||||
switch, | |||||
textarea, | |||||
navigator, | |||||
audio, | |||||
image, | |||||
video, | |||||
map, | |||||
canvas, | |||||
contact-button { | |||||
-webkit-box-sizing: border-box; | |||||
box-sizing: border-box; | |||||
} | |||||
.Al_shenhui_text_color { | |||||
color: #8b8686; | |||||
} | |||||
.singleLinHidenEllipsis | |||||
{ | |||||
overflow: hidden; | |||||
text-overflow: ellipsis; | |||||
white-space: nowrap; | |||||
} |
@@ -1,40 +0,0 @@ | |||||
// component/iconLoading/iconLoading.js | |||||
Component({ | |||||
/** | |||||
* 组件的属性列表 | |||||
*/ | |||||
properties: { | |||||
innerText: { | |||||
type: String, | |||||
value: 'default value', | |||||
} | |||||
}, | |||||
/** | |||||
* 组件的初始数据 | |||||
*/ | |||||
data: { | |||||
isShowLoading: false | |||||
}, | |||||
/** | |||||
* 组件的方法列表 | |||||
*/ | |||||
methods: { | |||||
//隐藏弹框 | |||||
hideLoading() { | |||||
this.setData({ | |||||
isShowLoading: false | |||||
}) | |||||
}, | |||||
//展示弹框 | |||||
showLoading() { | |||||
this.setData({ | |||||
isShowLoading: true | |||||
}) | |||||
} | |||||
} | |||||
}) |
@@ -1,4 +0,0 @@ | |||||
{ | |||||
"component": true, | |||||
"usingComponents": {} | |||||
} |
@@ -1,7 +0,0 @@ | |||||
<!-- 全局 弹窗loading 小图提示--> | |||||
<block wx:if="{{isShowLoading}}"> | |||||
<view class='global-loading'> | |||||
<image class="img" src='https://shgm.jjyyx.com/m/images/loadings.gif'></image> | |||||
<view > {{innerText}}</view> | |||||
</view> | |||||
</block> |
@@ -1,20 +0,0 @@ | |||||
/* component/iconLoading/iconLoading.wxss */ | |||||
.global-loading { | |||||
z-index: 999999; | |||||
position: fixed; | |||||
top: 0%; | |||||
left: 0%; | |||||
width: 100%; | |||||
height: 100%; | |||||
background-color: rgba(255, 255, 255, 0.5); | |||||
} | |||||
.global-loading .img{ | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 50%; | |||||
width: 180rpx; | |||||
height: 180rpx; | |||||
-webkit-transform: translate(-90rpx, -90rpx); | |||||
transform: translate(-90rpx, -90rpx); | |||||
z-index: 9999999; | |||||
} |
@@ -1,11 +0,0 @@ | |||||
module.exports = { | |||||
DEV: { | |||||
URL_PREFIX: 'http://116.255.223.226:8081/nsgk_test', | |||||
}, | |||||
PRE: { | |||||
URL_PREFIX: 'http://116.255.223.226:8081/nsgk_test', | |||||
}, | |||||
PROD: { | |||||
URL_PREFIX: 'http://116.255.223.226:8081/nsgk_test', | |||||
} | |||||
} |
@@ -1,56 +0,0 @@ | |||||
import * as UTIL from '../../utils/util.js'; | |||||
import * as API from '../../utils/API.js'; | |||||
Page({ | |||||
data: { | |||||
//顶部胶囊按钮位置信息rect | |||||
CustomMenuButton: null, | |||||
wrokScrollHeight:0, | |||||
userInfoObj:{} //用户信息 | |||||
}, | |||||
onLoad: function (options) { | |||||
//获取用户信息 | |||||
this.getUserInfo() | |||||
//获取滚动条高度 | |||||
this.computeBarLocation(); | |||||
}, | |||||
/* 计算bar 高度*/ | |||||
computeBarLocation() { | |||||
var that = this; | |||||
let CustomMenuButton = wx.getMenuButtonBoundingClientRect(); | |||||
let CustomWidows = wx.getSystemInfoSync(); | |||||
// 根据文档,先创建一个SelectorQuery对象实例 | |||||
let query = wx.createSelectorQuery().in(this); | |||||
query.select('.top_title').boundingClientRect(); | |||||
query.select('.information_header').boundingClientRect(); | |||||
query.select('.navList_main').boundingClientRect(); | |||||
query.select('.child_function').boundingClientRect(); | |||||
query.select('.work_plan').boundingClientRect(); | |||||
query.exec((res) => { | |||||
let wrokScrollHeight = CustomWidows.windowHeight; | |||||
res.forEach((v)=>{ | |||||
wrokScrollHeight = wrokScrollHeight - v.height; | |||||
}) | |||||
wrokScrollHeight = wrokScrollHeight-CustomMenuButton.top-CustomMenuButton.bottom -15; | |||||
that.setData({ | |||||
wrokScrollHeight: wrokScrollHeight, | |||||
}); | |||||
}) | |||||
that.setData({ | |||||
CustomMenuButton: CustomMenuButton, | |||||
}); | |||||
}, | |||||
/* 获取用户信息*/ | |||||
getUserInfo(){ | |||||
UTIL.httpRequest(API.URL_GET_GETINFO, {method:'GET'}, { | |||||
success: (res) => { | |||||
if (res.code == API.SUCCESS_CODE) { | |||||
this.setData({userInfoObj:res.user}) | |||||
} | |||||
} | |||||
}) | |||||
} | |||||
}) |
@@ -1,6 +0,0 @@ | |||||
{ | |||||
"usingComponents": { | |||||
"icon-loading":"/component/iconLoading/iconLoading" | |||||
}, | |||||
"navigationStyle": "custom" | |||||
} |
@@ -1,249 +0,0 @@ | |||||
<view class="container" style="background:url('../../image/index/header_bg.png') top center no-repeat; background-size: 100% auto;"> | |||||
<!--自定义 顶部标题样式和位置--> | |||||
<view class="top_title" style="height:{{CustomMenuButton.bottom}}px;z-index: 7777;padding-top: {{CustomMenuButton.top}}px;"></view> | |||||
<!--账户信息--> | |||||
<view class="information_header"> | |||||
<view class="portrait_head"></view> | |||||
<view class="information_main"> | |||||
<view class="name_wrap"> | |||||
<text class="name">{{userInfoObj.nickName}}</text> | |||||
<view class="jobs"> | |||||
<view class="icon" style="background:url('../../image/index/header_job.png') no-repeat; background-size: 100% 100%;"></view> | |||||
{{userInfoObj.remark}} | |||||
</view> | |||||
</view> | |||||
<view class="task_wrap "> | |||||
<view class="flex_block"> | |||||
<view class="desc">已完成</view> | |||||
<view class="event">120件</view> | |||||
</view> | |||||
<view class="flex_block unfinished"> | |||||
<view class="desc">已完成</view> | |||||
<view class="event">120件</view> | |||||
</view> | |||||
</view> | |||||
<view class="address_wrap"> | |||||
<view class="icon"></view> | |||||
{{userInfoObj.allDeptName}} | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!--主导航--> | |||||
<view class="navList_main"> | |||||
<view class="tab_item"> | |||||
<view class="icon"> | |||||
<image class="icon_img" src="../../image/index/nav_01.png" mode="aspectFit"></image> | |||||
</view> | |||||
<text class="desc">支出申请</text> | |||||
</view> | |||||
<view class="tab_item"> | |||||
<view class="icon"> | |||||
<image class="icon_img" src="../../image/index/nav_02.png" mode="aspectFit"></image> | |||||
</view> | |||||
<text class="desc">收入登记</text> | |||||
</view> | |||||
<view class="tab_item"> | |||||
<view class="icon"> | |||||
<image class="icon_img" src="../../image/index/nav_03.png" mode="aspectFit"></image> | |||||
</view> | |||||
<text class="desc">记账申请</text> | |||||
</view> | |||||
<view class="tab_item"> | |||||
<view class="icon"> | |||||
<image class="icon_img" src="../../image/index/nav_04.png" mode="aspectFit"></image> | |||||
</view> | |||||
<text class="desc">财务公开</text> | |||||
</view> | |||||
</view> | |||||
<!--子导航功能导航--> | |||||
<view class="child_function"> | |||||
<view class="flex_block"> | |||||
<view class="image"><image class="attribute" src="../../image/index/child_function_01.png" mode="aspectFit"></image></view> | |||||
<text class="desc">收款人</text> | |||||
</view> | |||||
<view class="flex_block"> | |||||
<view class="image"><image class="attribute" src="../../image/index/child_function_02.png" mode="aspectFit"></image></view> | |||||
<text class="desc">付款人</text> | |||||
</view> | |||||
<view class="flex_block"> | |||||
<view class="image"><image class="attribute" src="../../image/index/child_function_03.png" mode="aspectFit"></image></view> | |||||
<text class="desc">合同报送</text> | |||||
</view> | |||||
<view class="flex_block"> | |||||
<view class="image"><image class="attribute" src="../../image/index/child_function_04.png" mode="aspectFit"></image></view> | |||||
<text class="desc">固资变动</text> | |||||
</view> | |||||
<view class="flex_block"> | |||||
<view class="image"><image class="attribute" src="../../image/index/child_function_05.png" mode="aspectFit"></image></view> | |||||
<text class="desc">资源变动</text> | |||||
</view> | |||||
</view> | |||||
<!--工作计划--> | |||||
<view class="work_plan"> | |||||
<view class="menu_item active">待办<text class="remind">0</text></view> | |||||
<view class="menu_item">已办</view> | |||||
<view class="menu_item">已发起</view> | |||||
<view class="menu_item">已制单</view> | |||||
<view class="more">></view> | |||||
</view> | |||||
<scroll-view scroll-y="true" style="height: {{wrokScrollHeight}}px;"> | |||||
<view class="workflow"> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
<!--1--> | |||||
<view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">我的擦撒十大黑科技暗杀可接受的和</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe"> | |||||
<image class="amount_icon" src="../../image/index/process_icon.png" mode="aspectFit"></image> | |||||
<text>银行转账</text> | |||||
</view> | |||||
<view class="amount"><text class="unit">¥</text>-2600.00</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</scroll-view> | |||||
</view> |
@@ -1,291 +0,0 @@ | |||||
.singleLinHidenEllipsis{ | |||||
color: black; | |||||
text-align: center; | |||||
width: auto; | |||||
} | |||||
.information_header{ | |||||
/* padding: 30rpx 32rpx 54rpx; */ | |||||
padding: 10rpx 32rpx 54rpx; | |||||
display: flex; | |||||
} | |||||
.information_header .portrait_head{ | |||||
width: 110rpx; | |||||
height: 110rpx; | |||||
background: #000; | |||||
border-radius: 50%; | |||||
} | |||||
.information_header .information_main{ | |||||
flex: 1; | |||||
padding-left: 16rpx; | |||||
} | |||||
.information_header .name_wrap{ | |||||
display: flex; | |||||
height: 54rpx; | |||||
align-items: center; | |||||
margin-bottom: 10rpx; | |||||
} | |||||
.information_header .name_wrap .name{ | |||||
font-size: 46rpx; | |||||
} | |||||
.information_header .name_wrap .jobs{ | |||||
margin-left: 18rpx; | |||||
width: 155rpx; | |||||
height: 40rpx; | |||||
background: #5bae75; | |||||
border:2rpx solid #2c8e68; | |||||
color: #fff; | |||||
border-radius: 40rpx; | |||||
display: flex; | |||||
font-size: 28rpx; | |||||
justify-content: center; | |||||
align-items: center; | |||||
} | |||||
.information_header .name_wrap .jobs .icon{ | |||||
width: 26rpx; | |||||
height: 27rpx; | |||||
margin-right: 5rpx; | |||||
} | |||||
.information_header .task_wrap{ | |||||
display: flex; | |||||
height: 44rpx; | |||||
margin-bottom: 18rpx; | |||||
} | |||||
.information_header .unfinished{ | |||||
margin-left: 12rpx; | |||||
} | |||||
.information_header .task_wrap .flex_block{ | |||||
height: 48rpx; | |||||
display: flex; | |||||
background: #fff; | |||||
line-height: 44rpx; | |||||
border-radius: 44rpx; | |||||
border:2rpx solid #2c8e68; | |||||
text-align: center; | |||||
font-size: 28rpx; | |||||
} | |||||
.information_header .task_wrap .flex_block .desc{ | |||||
width: 115rpx; | |||||
background: #2c8e68; | |||||
position:relative; | |||||
overflow: hidden; | |||||
color: #fff; | |||||
line-height: 44rpx; | |||||
border-top-left-radius: 44rpx; | |||||
border-bottom-left-radius: 44rpx; | |||||
margin-top: -1rpx; | |||||
margin-left: -1rpx; | |||||
} | |||||
.information_header .task_wrap .flex_block .desc::before{ | |||||
position:absolute; | |||||
top:-40rpx; | |||||
right:-40rpx; | |||||
content:""; | |||||
z-index:1; | |||||
width:110rpx; /*如果需要圆角的话 不用比box的宽度长,如果不需要圆角需要增长*/ | |||||
height:40rpx; | |||||
background-color:#fff; | |||||
transform:rotate(-75deg); | |||||
transform-origin:right bottom; | |||||
border-radius:0px; | |||||
} | |||||
.information_header .task_wrap .flex_block .event{ | |||||
color: #2c8e68; | |||||
margin-left: -2%; | |||||
padding:0 8rpx 0 5rpx; | |||||
} | |||||
.information_header .address_wrap{ | |||||
font-size: 26rpx; | |||||
color: #2b8e68; | |||||
height: 46rpx; | |||||
line-height: 46rpx; | |||||
} | |||||
.navList_main{ | |||||
width: 685rpx; | |||||
height: 228rpx; | |||||
background-color: #fff; | |||||
border-radius: 24rpx; | |||||
margin:0 auto; | |||||
display: flex; | |||||
box-shadow: 0rpx 0rpx 12rpx rgba(0,0,0,.2); | |||||
} | |||||
.navList_main .tab_item{ | |||||
flex: 1; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
flex-direction: column; | |||||
} | |||||
.navList_main .tab_item .icon{ | |||||
width: 100rpx; | |||||
height: 100rpx; | |||||
margin-bottom: 12rpx; | |||||
} | |||||
.navList_main .tab_item .icon_img{ | |||||
width: 100rpx; | |||||
height: 100rpx; | |||||
} | |||||
.navList_main .tab_item .desc{ | |||||
font-size: 26rpx; | |||||
} | |||||
.child_function{ | |||||
margin: 55rpx 20rpx 0; | |||||
display: flex; | |||||
} | |||||
.child_function .flex_block{ | |||||
flex: 1; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
flex-direction: column; | |||||
} | |||||
.child_function .flex_block .image{ | |||||
width: 76rpx; | |||||
height: 70rpx; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.child_function .flex_block .attribute{ | |||||
width: 76rpx; | |||||
height: 70rpx; | |||||
} | |||||
.child_function .flex_block .desc{ | |||||
font-size: 26rpx; | |||||
} | |||||
.work_plan{ | |||||
padding: 40rpx 32.5rpx 30rpx; | |||||
display: flex; | |||||
} | |||||
.work_plan .menu_item{ | |||||
height: 60rpx; | |||||
width: 140rpx; | |||||
background-color: #fff; | |||||
box-shadow: 0rpx 0rpx 9rpx rgba(0,0,0,.2); | |||||
border-radius: 60rpx; | |||||
line-height: 60rpx; | |||||
text-align: center; | |||||
font-size: 32rpx; | |||||
position: relative; | |||||
margin-right: 16rpx; | |||||
} | |||||
.work_plan .menu_item.active{ | |||||
background-color: #5bae78; | |||||
color: #fff; | |||||
} | |||||
.work_plan .menu_item .remind{ | |||||
height: 30rpx; | |||||
background: #e90101; | |||||
color: #fff; | |||||
font-size: 26rpx; | |||||
position: absolute; | |||||
line-height: 30rpx; | |||||
padding:0 10rpx; | |||||
border-radius: 50%; | |||||
top: -10rpx; | |||||
right: -10rpx; | |||||
} | |||||
.work_plan .more{ | |||||
flex: 1; | |||||
text-align: center; | |||||
line-height: 60rpx; | |||||
font-size: 36rpx; | |||||
color: #31936c; | |||||
} | |||||
.workflow{ | |||||
padding: 10rpx 32.5rpx; | |||||
} | |||||
.workflow .workflow_list{ | |||||
height: 150rpx; | |||||
background-color: #fff; | |||||
border-radius: 24rpx; | |||||
box-shadow:0rpx 0rpx 10rpx rgba(0,0,0,.1); | |||||
margin-bottom: 20rpx; | |||||
padding:15rpx 25rpx 10rpx 35rpx; | |||||
} | |||||
.workflow .workflow_list .process_intro{ | |||||
display: flex; | |||||
height: 62rpx; | |||||
align-items: center; | |||||
} | |||||
.workflow .process_intro .name{ | |||||
width: 324rpx; | |||||
font-size: 34rpx; | |||||
margin-right: 30rpx; | |||||
overflow: hidden; | |||||
text-overflow: ellipsis; | |||||
white-space: nowrap; | |||||
} | |||||
.workflow .process_intro .state{ | |||||
width: 93rpx; | |||||
height: 42rpx; | |||||
background-color: #fbe3e3; | |||||
color: #f31e1f; | |||||
border-radius: 12rpx; | |||||
text-align: center; | |||||
line-height: 42rpx; | |||||
} | |||||
.workflow .process_intro .time{ | |||||
flex: 1; | |||||
text-align: right; | |||||
font-size: 32rpx; | |||||
color: #9ea1aa; | |||||
} | |||||
.workflow .workflow_list .process_pay{ | |||||
display: flex; | |||||
height: 52rpx; | |||||
align-items: center; | |||||
} | |||||
.workflow .workflow_list .process_pay .describe{ | |||||
font-size: 30rpx; | |||||
width: 330rpx; | |||||
color: #3c9370; | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
.workflow .workflow_list .process_pay .describe .amount_icon{ | |||||
width: 32rpx; | |||||
height: 32rpx; | |||||
margin-right: 12rpx; | |||||
} | |||||
.workflow .workflow_list .process_pay .amount{ | |||||
font-size: 38rpx; | |||||
flex: 1; | |||||
text-align: right; | |||||
color: #f31e1f; | |||||
} | |||||
.workflow .workflow_list .process_pay .amount .unit{ | |||||
font-size: 26rpx; | |||||
} | |||||
/* <view class="workflow_list"> | |||||
<view class="process_intro"> | |||||
<view class="name">啊啊啊啊啊啊啊啊啊啊</view> | |||||
<view class="state">待审</view> | |||||
<view class="time">2021-1-26</view> | |||||
</view> | |||||
<view class="process_pay"> | |||||
<view class="describe">银行转账</view> | |||||
<view class="amount">¥-2600.00</view> | |||||
</view> | |||||
</view> */ |
@@ -1,116 +0,0 @@ | |||||
// pages/index/index.js | |||||
import * as UTIL from '../../../utils/util.js'; | |||||
import * as API from '../../../utils/API.js'; | |||||
import * as STORAGE from '../../../utils/storage' | |||||
const APP = getApp(); | |||||
Page({ | |||||
data: { | |||||
isIPhoneX:false, | |||||
privacyCheck:true //用户协议 | |||||
}, | |||||
onLoad: function (options) { | |||||
this.setData({ | |||||
isIPhoneX:UTIL.isIPhoneX() | |||||
}) | |||||
this.automaticLogin() | |||||
}, | |||||
//自动登录 | |||||
automaticLogin(){ | |||||
let automatic = STORAGE.getToken(); | |||||
let getOpenId = STORAGE.getOpenId(); | |||||
if(automatic == '' && getOpenId ==''){ | |||||
UTIL.getCOdeFromWX({ | |||||
complate: (code) => { | |||||
let sendData = { | |||||
code: code | |||||
} | |||||
UTIL.httpRequestNoneDetal(API.URL_GET_OPENID, sendData, "POST", { | |||||
success: (res) => { | |||||
if (res.code == API.SUCCESS_CODE) { | |||||
wx.navigateTo({ | |||||
url: '/pages/index/index', | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
} | |||||
}); | |||||
}else{ | |||||
wx.navigateTo({ | |||||
url: '/pages/index/index', | |||||
}) | |||||
} | |||||
}, | |||||
//用户隐私协议选项 | |||||
checkboxChange: function(res) { | |||||
let checkStatus = false; | |||||
if(res.detail.value.length!=0){ | |||||
checkStatus = true; | |||||
}else{ | |||||
checkStatus = false; | |||||
} | |||||
this.setData({ | |||||
privacyCheck:checkStatus | |||||
}) | |||||
}, | |||||
//微信一键登录授权 | |||||
getPhoneNumber: function(res) { | |||||
let that = this; | |||||
let { | |||||
detail | |||||
} = res; | |||||
if (!detail.encryptedData) { | |||||
//允许授权 | |||||
APP.showToast("未获取到手机号码,注册失败!"); | |||||
return; | |||||
}else if(this.data.privacyCheck == false){ | |||||
APP.showToast("请阅读并同意用户协议和隐私政策!"); | |||||
return; | |||||
} | |||||
let sendData = { | |||||
sessionKey:STORAGE.getSessionKey(), | |||||
iv:detail.iv, | |||||
encryptedData:detail.encryptedData | |||||
} | |||||
UTIL.httpRequest(API.URL_POST_DECRYPTEDWXDATA, sendData,{ | |||||
success: (res) => { | |||||
if (res.code == API.SUCCESS_CODE) { | |||||
let phoneNumber = res.data.phoneNumber; | |||||
//微信手机号码绑定 | |||||
that.wxUserBand(phoneNumber) | |||||
// UTIL.showToastNoneIcon("数据共:" + res._data.length + "条"); | |||||
} else { | |||||
//待删 | |||||
UTIL.showToastNoneIcon(res.msg) | |||||
} | |||||
}, | |||||
fail: (res) => { | |||||
UTIL.showToastNoneIcon(API.MSG_FAIL_HTTP) | |||||
} | |||||
}); | |||||
}, | |||||
wxUserBand(phone){ | |||||
let sendData = { | |||||
openId:STORAGE.getOpenId(), | |||||
phonenumber:phone | |||||
} | |||||
UTIL.httpRequest(API.URL_POST_USERBAND, sendData,{ | |||||
success: (res) => { | |||||
if (res.code == API.SUCCESS_CODE) { | |||||
wx.navigateTo({ | |||||
url: '/pages/index/index', | |||||
}) | |||||
}else{ | |||||
UTIL.showToastNoneIcon(res.msg) | |||||
} | |||||
}, | |||||
fail: (res) => { | |||||
UTIL.showToastNoneIcon(API.MSG_FAIL_HTTP) | |||||
} | |||||
}); | |||||
console.log(sendData) | |||||
// | |||||
} | |||||
}) |
@@ -1,6 +0,0 @@ | |||||
{ | |||||
"usingComponents": { | |||||
"icon-loading":"/component/iconLoading/iconLoading" | |||||
}, | |||||
"navigationStyle": "custom" | |||||
} |
@@ -1,20 +0,0 @@ | |||||
<import src="/templates/global/global"/> | |||||
<template is="toast" data="{{...toastData}}"></template> | |||||
<view class="container" style="background: url('../../../image/login/container_bg.jpg') center center no-repeat; background-size: 100% auto;"> | |||||
<view class="header" > | |||||
<view class="principal">农村事项审批与记账</view> | |||||
<view class="instructions">报账简单,操作便捷</view> | |||||
</view> | |||||
<view class="quick-login" style="bottom:{{isIPhoneX?'8vh':'5vh'}}"> | |||||
<button class="key-login" type='primary' open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">微信一键登录</button > | |||||
<view class="authorization" style="margin-top:{{isIPhoneX?'5vh':'3vh'}}"> | |||||
<checkbox-group bindchange="checkboxChange"> | |||||
<label> | |||||
<checkbox value="privacy" checked="{{privacyCheck}}" class="changeSize" /> | |||||
<text>我已阅读并同意用户协议和隐私政策</text> | |||||
</label> | |||||
</checkbox-group> | |||||
</view> | |||||
</view> | |||||
</view> |
@@ -1,62 +0,0 @@ | |||||
.container{ | |||||
width: 100vw; | |||||
height: 100vh; | |||||
} | |||||
.container .header{ | |||||
padding-top: 25.24vh; | |||||
height: 36.94vh; | |||||
} | |||||
.container .header .principal{ | |||||
height: 6.15vh; | |||||
line-height: 6.15vh; | |||||
margin-bottom: 0.61vh; | |||||
text-align: center; | |||||
font-size: 4.92vh; | |||||
color: #2c7339; | |||||
} | |||||
.container .header .instructions{ | |||||
font-size: 2.46vh; | |||||
height: 4.92vh; | |||||
line-height: 4.92vh; | |||||
text-align: center; | |||||
color: #2c7339; | |||||
} | |||||
.container .quick-login{ | |||||
position: fixed; | |||||
/* bottom: 8vh; */ | |||||
width: 100%; | |||||
} | |||||
.container .quick-login .key-login{ | |||||
width: 89vw; | |||||
height: 5.17vh; | |||||
background:#ffffff; | |||||
margin:0 auto; | |||||
border-radius: 5.17vh; | |||||
text-align: center; | |||||
line-height: 5.17vh; | |||||
font-size: 2.21vh; | |||||
color: #2c7339; | |||||
box-shadow: 8rpx 6rpx 20rpx rgba(0,0,0,.3); | |||||
padding: 0; | |||||
} | |||||
.container .quick-login .authorization{ | |||||
margin-top: 5vh; | |||||
display: flex; | |||||
justify-content: center; /* 相对父元素水平居中 */ | |||||
align-items: center; /* 子元素相对父元素垂直居中 */ | |||||
color: #fff; | |||||
} | |||||
.container .quick-login .authorization .changeSize{ | |||||
transform: scale(0.7,0.7); | |||||
} | |||||
.container .quick-login .authorization .changeSize .wx-checkbox-input { | |||||
border-radius: 1vh; | |||||
} | |||||
.container .quick-login .authorization text{ | |||||
margin-left: -.5vw; | |||||
} |
@@ -1,82 +0,0 @@ | |||||
{ | |||||
"description": "项目配置文件", | |||||
"packOptions": { | |||||
"ignore": [ | |||||
{ | |||||
"type": "file", | |||||
"value": ".eslintrc.js" | |||||
} | |||||
] | |||||
}, | |||||
"setting": { | |||||
"urlCheck": false, | |||||
"es6": true, | |||||
"enhance": true, | |||||
"postcss": true, | |||||
"preloadBackgroundData": false, | |||||
"minified": true, | |||||
"newFeature": false, | |||||
"coverView": true, | |||||
"nodeModules": false, | |||||
"autoAudits": false, | |||||
"showShadowRootInWxmlPanel": true, | |||||
"scopeDataCheck": false, | |||||
"uglifyFileName": false, | |||||
"checkInvalidKey": true, | |||||
"checkSiteMap": false, | |||||
"uploadWithSourceMap": true, | |||||
"compileHotReLoad": false, | |||||
"lazyloadPlaceholderEnable": false, | |||||
"useMultiFrameRuntime": true, | |||||
"useApiHook": true, | |||||
"useApiHostProcess": true, | |||||
"babelSetting": { | |||||
"ignore": [], | |||||
"disablePlugins": [], | |||||
"outputPath": "" | |||||
}, | |||||
"useIsolateContext": true, | |||||
"userConfirmedBundleSwitch": false, | |||||
"packNpmManually": false, | |||||
"packNpmRelationList": [], | |||||
"minifyWXSS": true, | |||||
"disableUseStrict": false, | |||||
"minifyWXML": true, | |||||
"showES6CompileOption": false, | |||||
"useCompilerPlugins": false, | |||||
"ignoreUploadUnusedFiles": true | |||||
}, | |||||
"compileType": "miniprogram", | |||||
"libVersion": "2.21.1", | |||||
"appid": "wxaace54cc2cf8924b", | |||||
"projectname": "WXMB", | |||||
"debugOptions": { | |||||
"hidedInDevtools": [] | |||||
}, | |||||
"scripts": {}, | |||||
"staticServerOptions": { | |||||
"baseURL": "", | |||||
"servePath": "" | |||||
}, | |||||
"isGameTourist": false, | |||||
"condition": { | |||||
"search": { | |||||
"list": [] | |||||
}, | |||||
"conversation": { | |||||
"list": [] | |||||
}, | |||||
"game": { | |||||
"list": [] | |||||
}, | |||||
"plugin": { | |||||
"list": [] | |||||
}, | |||||
"gamePlugin": { | |||||
"list": [] | |||||
}, | |||||
"miniprogram": { | |||||
"list": [] | |||||
} | |||||
} | |||||
} |
@@ -1,23 +0,0 @@ | |||||
{ | |||||
"condition": { | |||||
"plugin": { | |||||
"list": [] | |||||
}, | |||||
"game": { | |||||
"list": [] | |||||
}, | |||||
"gamePlugin": { | |||||
"list": [] | |||||
}, | |||||
"miniprogram": { | |||||
"list": [ | |||||
{ | |||||
"name": "pages/show/show", | |||||
"pathName": "pages/index/index", | |||||
"query": "", | |||||
"scene": null | |||||
} | |||||
] | |||||
} | |||||
} | |||||
} |
@@ -1,7 +0,0 @@ | |||||
{ | |||||
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", | |||||
"rules": [{ | |||||
"action": "allow", | |||||
"page": "*" | |||||
}] | |||||
} |
@@ -1,42 +0,0 @@ | |||||
@font-face { | |||||
font-family: "iconfont"; /* Project id 3051601 */ | |||||
src: url('//at.alicdn.com/t/font_3051601_80e3j4e5om7.woff2?t=1640658441847') format('woff2'), | |||||
url('//at.alicdn.com/t/font_3051601_80e3j4e5om7.woff?t=1640658441847') format('woff'), | |||||
url('//at.alicdn.com/t/font_3051601_80e3j4e5om7.ttf?t=1640658441847') format('truetype'); | |||||
} | |||||
.iconfont { | |||||
font-family: "iconfont" !important; | |||||
font-size: 16px; | |||||
font-style: normal; | |||||
-webkit-font-smoothing: antialiased; | |||||
-moz-osx-font-smoothing: grayscale; | |||||
} | |||||
.icon-bianji:before { | |||||
content: "\e63d"; | |||||
} | |||||
.icon-caipinguanli:before { | |||||
content: "\e63f"; | |||||
} | |||||
.icon-sousuo:before { | |||||
content: "\e62b"; | |||||
} | |||||
.icon-jiantou:before { | |||||
content: "\e627"; | |||||
} | |||||
.icon-jiantouyou:before { | |||||
content: "\e628"; | |||||
} | |||||
.icon-jiantoushang:before { | |||||
content: "\e629"; | |||||
} | |||||
.icon-guanbi:before { | |||||
content: "\e62a"; | |||||
} |
@@ -1,23 +0,0 @@ | |||||
page { | |||||
/* 标准色 */ | |||||
--blue: #0f3f69; | |||||
--red: #ff4752; | |||||
--orange: #ffa601; | |||||
--golden: #d4b871; | |||||
--gray: #94969c; | |||||
--black: #444444; | |||||
--white: #fff; | |||||
--pale: #e7e7e7; | |||||
/* 浅色 */ | |||||
--orangeLight: #FFFAEB; | |||||
--blueLight: #155c99; | |||||
--redLight: #FF4752; | |||||
--grayLight: #e7e7e7; | |||||
--grayWhite: #f4f4f4; | |||||
/* 背景色 */ | |||||
--bgGrayWhite: #f4f4f4; | |||||
--bgGrayWhiteLight: #f8f8f8; | |||||
/* 渐变色 */ | |||||
/* 阴影透明色 */ | |||||
} |
@@ -1,18 +0,0 @@ | |||||
function modalResult(event) { | |||||
const { result } = event.currentTarget.dataset; | |||||
const page = getCurrentPages(); | |||||
const currPage = page[page.length - 1]; | |||||
currPage.setData({ | |||||
modalData: { | |||||
showFlag: false, | |||||
} | |||||
}); | |||||
return result === '1'; | |||||
} | |||||
export { | |||||
modalResult, | |||||
} |
@@ -1,57 +0,0 @@ | |||||
<!-- 提示层 - 没有更多了 --> | |||||
<template name="noMore"> | |||||
<view class="noMore">{{noMoreMes||'已经到底啦~'}}</view> | |||||
</template> | |||||
<!-- 提示层 - 暂无数据 --> | |||||
<template name="empty"> | |||||
<view class="error-page-tpl"> | |||||
<image src="https://shgm.jjyyx.com/m/images/{{errorImageName||'error_img3.png'}}?20190704" mode="aspectFit"></image> | |||||
<text class="error-tpl-msg">{{emptyMsg||'暂无数据'}}</text> | |||||
<block wx:if="{{backBtnState && backBtnState >= 1 && !exitBtn}}"> | |||||
<view class="zb-back-live" bindtap="{{backBtnState >= 1?'allowToBack': ''}}">{{backBtnMsg}}</view> | |||||
</block> | |||||
<block wx:if="{{exitBtn}}"> | |||||
<navigator class="zb-back-live" open-type="exit" target="miniProgram">{{backBtnMsg}}</navigator> | |||||
</block> | |||||
</view> | |||||
</template> | |||||
<!-- 全局 toast 提示层 --> | |||||
<template name="toast"> | |||||
<block wx:if="{{showFlag}}"> | |||||
<view class="toast-container {{selfClass}}"> | |||||
<text>{{toastMsg}}</text> | |||||
</view> | |||||
</block> | |||||
</template> | |||||
<!-- 全局 modal 弹框 --> | |||||
<template name="modal"> | |||||
<block wx:if="{{showFlag}}"> | |||||
<view class="modal-container"> | |||||
<view class="modal-msg-container"> | |||||
<view class="modal-msg">{{content}}</view> | |||||
<view class="modal-btn-container"> | |||||
<block wx:if="{{showCancel}}"> | |||||
<view class="cancel-btn" data-result="0" bindtap="modalCallback">{{cancelText||'取消'}}</view> | |||||
</block> | |||||
<view class="confirm-btn" data-result="1" bindtap="{{myCallBack?myCallBack:'modalCallback'}}">{{confirmText||'确定'}}</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</block> | |||||
</template> | |||||
<!-- 全局 弹窗loading 小图提示--> | |||||
<template name='globalLoading'> | |||||
<block wx:if="{{globalLoading}}"> | |||||
<view id='global-loading' class="{{globalLoading.hideMask ? 'hide-mask' : '' }}"> | |||||
<image src='https://shgm.jjyyx.com/m/images/loadings.gif'></image> | |||||
</view> | |||||
</block> | |||||
</template> |
@@ -1,167 +0,0 @@ | |||||
/** | |||||
* 提示层 - 没有更多了 | |||||
*/ | |||||
.noMore { | |||||
width: 100%; | |||||
font-size: 24rpx; | |||||
color: #CCC; | |||||
text-align: center; | |||||
padding: 20rpx 0; | |||||
padding-bottom: env(safe-area-inset-bottom); | |||||
} | |||||
/** | |||||
* 提示层 - 暂无数据 | |||||
*/ | |||||
.error-page-tpl { | |||||
position: fixed; | |||||
left: 0; | |||||
top: 35%; | |||||
width: 100%; | |||||
transform: translate(0, -50%); | |||||
display: flex; | |||||
flex-flow: column; | |||||
justify-content: center; | |||||
align-items: center; | |||||
z-index: 2; | |||||
} | |||||
.error-page-tpl image { | |||||
width: 400rpx; | |||||
height: 400rpx; | |||||
} | |||||
.error-page-tpl .error-tpl-msg { | |||||
margin-top: -30rpx; | |||||
font-size: 24rpx; | |||||
color: #999; | |||||
word-wrap: break-word; | |||||
word-break: normal; | |||||
width: 100%; | |||||
text-align: center; | |||||
} | |||||
.error-page-tpl .zb-back-live{ | |||||
display: block; | |||||
/* width: 192rpx; */ | |||||
height: 64rpx; | |||||
margin: 30rpx auto 0; | |||||
line-height: 64rpx; | |||||
text-align: center; | |||||
font-size: 30rpx; | |||||
color: var(--blueLight); | |||||
background: #fff; | |||||
border-radius: 32rpx; | |||||
border: 1rpx solid #7AA6CC; | |||||
padding: 0 32rpx; | |||||
} | |||||
/** | |||||
* 全局 toast 提示层样式 | |||||
*/ | |||||
.toast-container { | |||||
position: fixed; | |||||
left: 0; | |||||
bottom: 20%; | |||||
width: 100%; | |||||
transform: translate(0, -50%); | |||||
transform: translate3d(0, -50%, 10000rpx); | |||||
z-index: 99999; | |||||
text-align: center; | |||||
overflow: hidden; | |||||
} | |||||
.toast-container text { | |||||
display: inline-block; | |||||
padding: 20rpx; | |||||
font-size: 28rpx; | |||||
line-height: 1.2; | |||||
color: #FFF; | |||||
background: rgba(0, 0, 0, 0.8); | |||||
border-radius: 12rpx; | |||||
} | |||||
.modal-container { | |||||
position: fixed; | |||||
left: 0; | |||||
top: 0; | |||||
right: 0; | |||||
bottom: 0; | |||||
background: rgba(0, 0, 0, 0.5); | |||||
display: flex; | |||||
flex-flow: column; | |||||
justify-content: center; | |||||
align-items: center; | |||||
z-index: 9999; | |||||
transform: translateZ(100rpx); | |||||
} | |||||
.modal-container .modal-msg-container { | |||||
width: 540rpx; | |||||
background: #FFF; | |||||
border-radius: 20rpx; | |||||
} | |||||
.modal-container .modal-msg-container .modal-msg { | |||||
padding: 60rpx 20rpx; | |||||
line-height: 40rpx; | |||||
font-size: 32rpx; | |||||
color: #444; | |||||
text-align: center; | |||||
} | |||||
.modal-container .modal-msg-container .modal-btn-container { | |||||
border-top: 2rpx solid #ededed; | |||||
width: 100%; | |||||
height: 96rpx; | |||||
font-size: 32rpx; | |||||
color: #444; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
overflow: hidden; | |||||
} | |||||
.modal-container .modal-msg-container .modal-btn-container view { | |||||
flex: 1; | |||||
text-align: center; | |||||
line-height: 0; | |||||
padding: 48rpx; | |||||
} | |||||
.modal-container .modal-msg-container .modal-btn-container .confirm-btn { | |||||
color: #FF4752; | |||||
} | |||||
.modal-container .modal-msg-container .modal-btn-container .cancel-btn { | |||||
border-right: 2rpx solid #ededed; | |||||
} | |||||
#global-loading { | |||||
z-index: 9999999; | |||||
position: fixed; | |||||
top: 0%; | |||||
left: 0%; | |||||
width: 100%; | |||||
height: 100%; | |||||
background-color: rgba(255, 255, 255, 0.5); | |||||
} | |||||
#global-loading.hide-mask { | |||||
background: transparent; | |||||
} | |||||
#global-loading image { | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 50%; | |||||
width: 180rpx; | |||||
height: 180rpx; | |||||
-webkit-transform: translate(-90rpx, -90rpx); | |||||
transform: translate(-90rpx, -90rpx); | |||||
z-index: 99999999; | |||||
} |
@@ -1,54 +0,0 @@ | |||||
let EVN_CONFIG = require('../env/env'); | |||||
// const DISTRIBUTE_ENVIROMENT = 'PROD'; | |||||
const DISTRIBUTE_ENVIROMENT = 'DEV'; | |||||
let { | |||||
URL_PREFIX, | |||||
} = EVN_CONFIG[DISTRIBUTE_ENVIROMENT]; | |||||
//用户登录页面,接口检测用户token失效,需跳转重新登录 | |||||
const USER_LOGIN_PAGE_PATH='/pages/user/login/login'; | |||||
//接口成功 | |||||
const SUCCESS_CODE = 200; | |||||
//微信登陆失效 | |||||
const INVALID_USER_TOKEN_CODE = '001007'; | |||||
/****************接口提示信息start ****************/ | |||||
const MSG_FAIL_HTTP = '获取数据失败 fail'; | |||||
const MSG_ERROR_HTTP = '获取数据失败 error'; | |||||
const MSG_FALSE_HTTP = '获取数据失败 false'; | |||||
const MSG_NONE_HTTP = '暂无数据'; | |||||
const MSG_FALSE_TO = '提交失败,请重试'; | |||||
const MSG_ERROR_TO = '提交异常,请重试'; | |||||
const MSG_INVALID_USER_TOKEN='登陆信息失效,请重新登陆'; | |||||
/****************接口提示信息end**************** | |||||
/****************接口地址start****************/ | |||||
//获取openId | |||||
const URL_GET_OPENID=`${URL_PREFIX}/wechat/codeLogin`; | |||||
// 获取手机号解密接口 | |||||
const URL_POST_DECRYPTEDWXDATA = `${URL_PREFIX}/wechat/decryptedWXData`; | |||||
// 微信绑定手机号 | |||||
const URL_POST_USERBAND = `${URL_PREFIX}/register/wechat/band`; | |||||
//获取用户信息 | |||||
const URL_GET_GETINFO = `${URL_PREFIX}/getInfo`; | |||||
/****************接口地址end****************/ | |||||
export { | |||||
USER_LOGIN_PAGE_PATH, | |||||
SUCCESS_CODE, | |||||
INVALID_USER_TOKEN_CODE, | |||||
MSG_FAIL_HTTP, | |||||
MSG_ERROR_HTTP, | |||||
MSG_FALSE_HTTP, | |||||
MSG_NONE_HTTP, | |||||
MSG_FALSE_TO, | |||||
MSG_ERROR_TO, | |||||
MSG_INVALID_USER_TOKEN, | |||||
URL_GET_OPENID, | |||||
URL_POST_DECRYPTEDWXDATA, | |||||
URL_POST_USERBAND, | |||||
URL_GET_GETINFO | |||||
} |
@@ -1,51 +0,0 @@ | |||||
/** | |||||
* 获取当前登录用户的 token | |||||
*/ | |||||
function getToken() { | |||||
return wx.getStorageSync('token'); | |||||
} | |||||
/** | |||||
* 设置用户token | |||||
* @param {用户token} token | |||||
*/ | |||||
function setToken(token) { | |||||
wx.setStorageSync('token', token); | |||||
} | |||||
/** | |||||
* 获取当前登录用户的 openId | |||||
*/ | |||||
function getOpenId() { | |||||
return wx.getStorageSync('openId'); | |||||
} | |||||
/** | |||||
* 设置用户openId | |||||
* @param {用户openId} openId | |||||
*/ | |||||
function setOpenId(openId) { | |||||
wx.setStorageSync('openId', openId); | |||||
} | |||||
/** | |||||
* 获取当前登录用户的 sessionKey | |||||
*/ | |||||
function getSessionKey() { | |||||
return wx.getStorageSync('sessionKey'); | |||||
} | |||||
/** | |||||
* 设置用户openId | |||||
* @param {用户openId} sessionKey | |||||
*/ | |||||
function setSessionKey(sessionKey) { | |||||
wx.setStorageSync('sessionKey', sessionKey); | |||||
} | |||||
export { | |||||
getToken, | |||||
setToken, | |||||
getOpenId, | |||||
setOpenId, | |||||
getSessionKey, | |||||
setSessionKey | |||||
} |
@@ -1,364 +0,0 @@ | |||||
import * as API from './API'; | |||||
let APP = getApp(); | |||||
let FUNCTION_TEXT = 'function'; | |||||
/*判断是否iphonex*/ | |||||
function isIPhoneX() { | |||||
let screenHeight = wx.getSystemInfoSync().screenHeight | |||||
let bottom = wx.getSystemInfoSync().safeArea.bottom | |||||
return screenHeight !== bottom | |||||
} | |||||
/*获取当前页url*/ | |||||
function getCurrentPageUrl() { | |||||
var pages = getCurrentPages() | |||||
var currentPage = pages[pages.length - 1] | |||||
var url = currentPage.route | |||||
return url | |||||
} | |||||
/*获取当前页带参数的url*/ | |||||
function getCurrentPageUrlWithArgs() { | |||||
var pages = getCurrentPages() | |||||
var currentPage = pages[pages.length - 1] | |||||
var url = currentPage.route | |||||
var options = currentPage.options | |||||
var urlWithArgs = url + '?' | |||||
for (var key in options) { | |||||
var value = options[key] | |||||
urlWithArgs += key + '=' + value + '&' | |||||
} | |||||
urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1) | |||||
return urlWithArgs | |||||
} | |||||
/** | |||||
* 无图标,纯文本Toast提示 | |||||
*/ | |||||
function showToastNoneIcon(title) { | |||||
if (title == undefined || title == '') { | |||||
title = ''; | |||||
} | |||||
return wx.showToast({ | |||||
title: title, | |||||
icon: 'none', | |||||
}); | |||||
} | |||||
/** | |||||
* 显示Modal弹框(无取消按钮,只显示) | |||||
* @param {标题} title | |||||
* @param {内容} content | |||||
* @param {按钮文字,默认确定} confirmText | |||||
*/ | |||||
function showModalNoneCancel(title, content, confirmText) { | |||||
wx.showModal({ | |||||
title: title, | |||||
showCancel: false, | |||||
content: content, | |||||
confirmText: (typeof confirmText == 'undefined' || confirmText == '') ? '确定' : confirmText, | |||||
success: function (e) { | |||||
} | |||||
}) | |||||
} | |||||
/** | |||||
* 显示完整的Modal弹框提示 | |||||
* @param {标题} title | |||||
* @param {内容} content | |||||
* @param {确认} confirmText | |||||
* @param {取消} cancelText | |||||
* @param {回调} param4 | |||||
*/ | |||||
function showModalOnClick(title, content, confirmText, cancelText, { confirm, cancel }) { | |||||
wx.showModal({ | |||||
title: title, | |||||
content: content, | |||||
confirmText: (typeof confirmText == 'undefined' || confirmText == '') ? '确定' : confirmText, | |||||
cancelText: (typeof cancelText == 'undefined' || cancelText == '') ? '取消' : cancelText, | |||||
success: function (e) { | |||||
if (e.confirm) { | |||||
confirm(); | |||||
} else if (e.cancel) { | |||||
cancel(); | |||||
} | |||||
} | |||||
}) | |||||
} | |||||
/** | |||||
* 有背景图层的loading | |||||
* * @param {内容} content | |||||
*/ | |||||
function showLoadingHaveMask(content) { | |||||
wx.showLoading({ | |||||
title: (typeof content == "undefined" || content == '') ? '加载中...' : content, | |||||
mask: true | |||||
}) | |||||
} | |||||
/** | |||||
* 隐藏loading | |||||
*/ | |||||
function hideLoadingHaveMask() { | |||||
wx.hideLoading(); | |||||
} | |||||
/** | |||||
* 全局通用网络请求方法,默认post传输 | |||||
*/ | |||||
function httpRequest(url, data, { | |||||
success, | |||||
fail, | |||||
complete | |||||
}) { | |||||
wx.showNavigationBarLoading(); | |||||
let finalData = {}; | |||||
Object.assign(finalData, data); | |||||
// finalData.token = getApp().globalData.userInfo.token; | |||||
wx.request({ | |||||
url, | |||||
data: finalData, | |||||
method: data.method || 'POST', | |||||
timeout: 60000, | |||||
header: { | |||||
'Authorization':'Bearer '+getApp().globalData.userInfo.token | |||||
}, | |||||
success: function (response) { | |||||
if (response.data && response.data._code == API.INVALID_USER_TOKEN_CODE) { | |||||
//微信登陆失效 | |||||
showToastNoneIcon(API.MSG_INVALID_USER_TOKEN); | |||||
wx.navigateTo({ | |||||
url: API.USER_LOGIN_PAGE_PATH, | |||||
}) | |||||
} else if (typeof success === FUNCTION_TEXT) { | |||||
success(response.data); | |||||
} | |||||
}, | |||||
fail: function (response) { | |||||
if (typeof fail === FUNCTION_TEXT) { | |||||
fail(handleFail(response)); | |||||
} else { | |||||
showToastNoneIcon(API.MSG_FAIL_HTTP); | |||||
} | |||||
}, | |||||
complete: function (response) { | |||||
if (typeof complete === FUNCTION_TEXT) { | |||||
if (response.data && response.data._code == API.SUCCESS_CODE) { | |||||
complete(response.data); | |||||
} else { | |||||
complete(handleFail(response.data)); | |||||
} | |||||
} | |||||
wx.hideNavigationBarLoading(); | |||||
} | |||||
}) | |||||
} | |||||
/** | |||||
* 网络访问(无其他处理) | |||||
* @param {地址} url | |||||
* @param {参数} data | |||||
* @param {方法 get or post} method | |||||
* @param {回调} param3 | |||||
*/ | |||||
function httpRequestNoneDetal(url, data, method, { | |||||
success, | |||||
fail, | |||||
complete | |||||
}) { | |||||
wx.showNavigationBarLoading(); | |||||
wx.request({ | |||||
url, | |||||
data: data, | |||||
method: method, | |||||
success: function (response) { | |||||
if (typeof success === FUNCTION_TEXT) { | |||||
success(response.data); | |||||
} | |||||
}, | |||||
fail: function (response) { | |||||
if (typeof fail === FUNCTION_TEXT) { | |||||
fail(handleFail(response)); | |||||
} else { | |||||
showToastNoneIcon(API.MSG_FAIL_HTTP); | |||||
} | |||||
}, | |||||
complete: function (response) { | |||||
if (typeof complete === FUNCTION_TEXT) { | |||||
if (response.data && response.data._code == API.SUCCESS_CODE) { | |||||
complete(response.data); | |||||
} else { | |||||
complete(handleFail(response.data)); | |||||
} | |||||
} | |||||
wx.hideNavigationBarLoading(); | |||||
} | |||||
}) | |||||
} | |||||
/** | |||||
* 调用失败 | |||||
*/ | |||||
function handleFail(data = '') { | |||||
let { _msg = API.MSG_FAIL_HTTP, _code = 10001, _data = '', } = data; | |||||
return { | |||||
_code, | |||||
_data, | |||||
_msg | |||||
} | |||||
} | |||||
/** | |||||
* 微信授权 获取信息 | |||||
*/ | |||||
// function initSQFromWX() { | |||||
// let that = this; | |||||
// wx.getSetting({ | |||||
// success(res) { | |||||
// // if (res.authSetting['scope.userInfo']) { | |||||
// // console.log('个人信息:authSetting 已授权'); | |||||
// // } else { | |||||
// // console.log('个人信息:authSetting 未授权'); | |||||
// // } | |||||
// if (res.authSetting['scope.userLocation']) { | |||||
// //定位已开启,暂不做功能处理 | |||||
// console.log('定位:authSetting 已授权'); | |||||
// getApp().globalData.setInfo.locationOpenIdWX = true; | |||||
// } else { | |||||
// //定位未开启,申请授权 | |||||
// wx.authorize({ | |||||
// scope: 'scope.userLocation', | |||||
// success() { | |||||
// //定位已开启,暂不做功能处理 | |||||
// console.log('定位:wx.authorize success'); | |||||
// getApp().globalData.setInfo.locationOpenIdWX = true; | |||||
// } | |||||
// , | |||||
// fail() { | |||||
// //如果之前已经拒绝过,直接返回fail 不弹窗 | |||||
// console.log('定位:wx.authorize fail'); | |||||
// getApp().globalData.setInfo.locationOpenIdWX = false; | |||||
// wx.navigateTo({ | |||||
// url: '/pages/wxAuth/wxAuth', | |||||
// }) | |||||
// } | |||||
// }) | |||||
// } | |||||
// }, | |||||
// fail(e) { | |||||
// }, | |||||
// complete() { | |||||
// } | |||||
// }); | |||||
// } | |||||
/** | |||||
* 获取微信Code | |||||
*/ | |||||
function getCOdeFromWX({ complate }) { | |||||
showLoadingHaveMask('正在加载数据..'); | |||||
wx.login({ | |||||
success: function (data) { | |||||
console.log(data) | |||||
complate(data.code); | |||||
hideLoadingHaveMask() | |||||
}, | |||||
fail: function (err) { | |||||
hideLoadingHaveMask(); | |||||
showModalNoneCancel("温馨提示", "登陆失败,建议请重新打开小程序") | |||||
} | |||||
}) | |||||
} | |||||
/** | |||||
* ,获取到的微信用户信息(昵称、头像、省市 赋值给globalData.wxUserInfo) | |||||
*/ | |||||
function getUserInfoFomWX({ success }) { | |||||
wx.getUserProfile({ | |||||
desc: '用于完善会员资料', | |||||
success: res => { | |||||
getApp().globalData.wxUserInfo.nickName = res.userInfo.nickName; | |||||
getApp().globalData.wxUserInfo.avatarUrl = res.userInfo.avatarUrl; | |||||
//不再返回 强制返回“” | |||||
// getApp().globalData.wxUserInfo.province = res.userInfo.province; | |||||
// getApp().globalData.wxUserInfo.city = res.userInfo.city; | |||||
console.log("获取到个人信息:" + res.userInfo.nickName); | |||||
success(res); | |||||
}, | |||||
complete: res => { | |||||
} | |||||
}) | |||||
} | |||||
/** | |||||
* 获取地理位置 | |||||
* @param {回调} param0 | |||||
*/ | |||||
function getLocationFromWX({ success, fail }) { | |||||
wx.getLocation({ | |||||
type: 'wgs84', | |||||
success(res) { | |||||
getApp().globalData.setInfo.latitude = res.latitude; | |||||
getApp().globalData.setInfo.longitude = res.longitude; | |||||
success(); | |||||
} | |||||
, fail(res) { | |||||
showToastNoneIcon('获取地理信息失败'); | |||||
fail(res); | |||||
} | |||||
}) | |||||
} | |||||
function convert_length(length) { | |||||
return Math.round(wx.getSystemInfoSync().windowWidth * length / 750); | |||||
} | |||||
/** | |||||
* 比较版本号(参数'1.11.0', '1.9.9',返回1) | |||||
* @param {*} v1 | |||||
* @param {*} v2 | |||||
*/ | |||||
function compareVersion(v1, v2) { | |||||
v1 = v1.split('.') | |||||
v2 = v2.split('.') | |||||
const len = Math.max(v1.length, v2.length) | |||||
while (v1.length < len) { | |||||
v1.push('0') | |||||
} | |||||
while (v2.length < len) { | |||||
v2.push('0') | |||||
} | |||||
for (let i = 0; i < len; i++) { | |||||
const num1 = parseInt(v1[i]) | |||||
const num2 = parseInt(v2[i]) | |||||
if (num1 > num2) { | |||||
return 1 | |||||
} else if (num1 < num2) { | |||||
return -1 | |||||
} | |||||
} | |||||
return 0 | |||||
} | |||||
export { | |||||
getCurrentPageUrl, | |||||
getCurrentPageUrlWithArgs, | |||||
showToastNoneIcon, | |||||
showModalNoneCancel, | |||||
showModalOnClick, | |||||
showLoadingHaveMask, | |||||
hideLoadingHaveMask, | |||||
httpRequest, | |||||
httpRequestNoneDetal, | |||||
getCOdeFromWX, | |||||
getLocationFromWX, | |||||
getUserInfoFomWX, | |||||
convert_length, | |||||
isIPhoneX | |||||
} |
@@ -7,6 +7,7 @@ Page({ | |||||
*/ | */ | ||||
data: { | data: { | ||||
isIPX: app.globalData.isIPX, | isIPX: app.globalData.isIPX, | ||||
show:false | |||||
}, | }, | ||||
/** | /** | ||||
@@ -15,7 +16,29 @@ Page({ | |||||
onLoad: function (options) { | onLoad: function (options) { | ||||
}, | }, | ||||
openBox:function(){ | |||||
var that = this ; | |||||
that.setData({ | |||||
show: true, | |||||
}) | |||||
}, | |||||
closeBox:function(){ | |||||
var that = this ; | |||||
that.setData({ | |||||
show: false, | |||||
}) | |||||
}, | |||||
goTemplate:function(){ | |||||
wx.navigateTo({ | |||||
url: 'paymentTemplate/paymentTemplate' | |||||
}) | |||||
}, | |||||
back:function(){ | |||||
wx.navigateBack({ | |||||
delta: 1 | |||||
}) | |||||
}, | |||||
/** | /** | ||||
* 生命周期函数--监听页面初次渲染完成 | * 生命周期函数--监听页面初次渲染完成 | ||||
*/ | */ | ||||
@@ -1,3 +1,12 @@ | |||||
{ | { | ||||
"usingComponents": {} | |||||
"usingComponents": { | |||||
"van-tab": "@vant/weapp/tab/index", | |||||
"van-tabs": "@vant/weapp/tabs/index", | |||||
"van-action-sheet": "@vant/weapp/action-sheet/index", | |||||
"van-swipe-cell": "@vant/weapp/swipe-cell/index", | |||||
"van-cell": "@vant/weapp/cell/index", | |||||
"van-cell-group": "@vant/weapp/cell-group/index", | |||||
"van-icon": "@vant/weapp/icon/index", | |||||
"van-tag": "@vant/weapp/tag/index" | |||||
} | |||||
} | } |
@@ -1,4 +1,108 @@ | |||||
<!--pages/apply/index.wxml--> | <!--pages/apply/index.wxml--> | ||||
<view class="ns" style="height:{{isIPX?'88px':'64px'}};"> | <view class="ns" style="height:{{isIPX?'88px':'64px'}};"> | ||||
<image src="../../image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};" mode="widthFix" bindtap="back"></image> | |||||
<text style="top:{{isIPX?'54px':'30px'}};">支出申请</text> | <text style="top:{{isIPX?'54px':'30px'}};">支出申请</text> | ||||
</view> | </view> | ||||
<!-- 付款单位开始 --> | |||||
<view class="top"> | |||||
<image src="../../image/apply/dress_icon.png" mode="widthFix"></image> | |||||
<view class="top-tit">付款单位</view> | |||||
<view class="top-title">龙水镇龙洞村股份经济联合社</view> | |||||
</view> | |||||
<view class="main"> | |||||
<van-tabs sticky color="#000"> | |||||
<van-tab title="银行账户"> | |||||
<view class="bank_box"> | |||||
<text class="zt">一般户</text> | |||||
<image src="../../image/apply/jsyh_bg2.png" style="width: 100%;position: absolute;bottom:0;z-index: 9;" mode="widthFix"></image> | |||||
<image src="../../image/apply/bgt.png" style="width: 100%;position: absolute;top:0;right:0;z-index: 9;height: 100%;"></image> | |||||
<view class="bank_content"> | |||||
<image src="../../image/apply/jsyh_icon.png" style="width: 28%;" mode="widthFix"></image> | |||||
<view style="margin-bottom: 2vh;">6217 0021 9000 7972 186<text>卡号</text></view> | |||||
<view>可用余额</view> | |||||
<view style="font-weight: bold;font-size: 22px;margin-top: 2vh;">10,288.83</view> | |||||
</view> | |||||
</view> | |||||
<view class="bank_box"> | |||||
<text class="zt">一般户</text> | |||||
<image src="../../image/apply/jsyh_bg2.png" style="width: 100%;position: absolute;bottom:0;z-index: 9;" mode="widthFix"></image> | |||||
<image src="../../image/apply/bgt.png" style="width: 100%;position: absolute;top:0;right:0;z-index: 9;height: 100%;"></image> | |||||
<view class="bank_content"> | |||||
<image src="../../image/apply/jsyh_icon.png" style="width: 28%;" mode="widthFix"></image> | |||||
<view style="margin-bottom: 2vh;">6217 0021 9000 7972 186<text>卡号</text></view> | |||||
<view>可用余额</view> | |||||
<view style="font-weight: bold;font-size: 22px;margin-top: 2vh;">10,288.83</view> | |||||
</view> | |||||
</view> | |||||
</van-tab> | |||||
<van-tab title="公务卡"> | |||||
<view class="bank_box"> | |||||
<image src="../../image/apply/jsyh_bg2.png" style="width: 100%;position: absolute;bottom:0;z-index: 9;" mode="widthFix"></image> | |||||
<view class="bank_content gwk"> | |||||
<image src="../../image/apply/gwk_icon.png" style="width: 28%;" mode="widthFix"></image> | |||||
<view style="margin-bottom: 2vh;">6217 0021 9000 7972 186<text>卡号</text></view> | |||||
<view>可用余额</view> | |||||
<view style="font-weight: bold;font-size: 22px;margin-top: 2vh;">10,288.83</view> | |||||
</view> | |||||
<view class="holder">持有人:王强</view> | |||||
</view> | |||||
</van-tab> | |||||
</van-tabs> | |||||
</view> | |||||
<view class="bottom"> | |||||
<view class="btn1" bindtap="openBox">支付模板</view> | |||||
<view class="btn2">下一步</view> | |||||
</view> | |||||
<van-action-sheet show="{{show}}" title="支付模板" bind:close="closeBox"> | |||||
<van-swipe-cell right-width="{{ 65 }}"> | |||||
<van-cell-group> | |||||
<van-cell label="支付水电、网费、房租" bindtap="goTemplate" > | |||||
<view slot="title"> | |||||
<view class="van-cell-text">日常支付水电模板<van-tag plain type="danger" color="#FC9A55" style="margin-left:10px;">默认</van-tag></view> | |||||
</view> | |||||
<van-icon slot="icon" name="https://636c-cloud1-8gya17a31667774d-1310628902.tcb.qcloud.la/icon_mrmb.png?sign=5e5df640777f6a7993c45e1a559dd998&t=1648619865" class="custom-icon" size="40" style="margin-right: 10px;" /> | |||||
</van-cell> | |||||
</van-cell-group> | |||||
<view slot="right" class="deleteBox"> | |||||
<image src="../../image/apply/icon_delete.png" style="width: 25px;height: 25px;margin: 0 auto;"></image> | |||||
</view> | |||||
</van-swipe-cell> | |||||
<van-swipe-cell right-width="{{ 65 }}"> | |||||
<van-cell-group> | |||||
<van-cell title="日常支付水电模板" label="支付水电、网费、房租" > | |||||
<van-icon slot="icon" name="https://636c-cloud1-8gya17a31667774d-1310628902.tcb.qcloud.la/icon_mb.png?sign=2a8bbe2cb4d4e0f28a99fddbe042d26c&t=1648620032" class="custom-icon" size="40" style="margin-right: 10px;" /> | |||||
</van-cell> | |||||
</van-cell-group> | |||||
<view slot="right" class="deleteBox"> | |||||
<image src="../../image/apply/icon_delete.png" style="width: 25px;height: 25px;margin: 0 auto;"></image> | |||||
</view> | |||||
</van-swipe-cell> | |||||
<van-swipe-cell right-width="{{ 65 }}"> | |||||
<van-cell-group> | |||||
<van-cell title="日常支付水电模板" label="支付水电、网费、房租" > | |||||
<van-icon slot="icon" name="https://636c-cloud1-8gya17a31667774d-1310628902.tcb.qcloud.la/icon_mb.png?sign=2a8bbe2cb4d4e0f28a99fddbe042d26c&t=1648620032" class="custom-icon" size="40" style="margin-right: 10px;" /> | |||||
</van-cell> | |||||
</van-cell-group> | |||||
<view slot="right" class="deleteBox"> | |||||
<image src="../../image/apply/icon_delete.png" style="width: 25px;height: 25px;margin: 0 auto;"></image> | |||||
</view> | |||||
</van-swipe-cell> | |||||
<van-swipe-cell right-width="{{ 65 }}"> | |||||
<van-cell-group> | |||||
<van-cell title="日常支付水电模板" label="支付水电、网费、房租" > | |||||
<van-icon slot="icon" name="https://636c-cloud1-8gya17a31667774d-1310628902.tcb.qcloud.la/icon_mb.png?sign=2a8bbe2cb4d4e0f28a99fddbe042d26c&t=1648620032" class="custom-icon" size="40" style="margin-right: 10px;" /> | |||||
</van-cell> | |||||
</van-cell-group> | |||||
<view slot="right" class="deleteBox"> | |||||
<image src="../../image/apply/icon_delete.png" style="width: 25px;height: 25px;margin: 0 auto;"></image> | |||||
</view> | |||||
</van-swipe-cell> | |||||
</van-action-sheet> |
@@ -1 +1,125 @@ | |||||
/* pages/apply/index.wxss */ | |||||
/* pages/apply/index.wxss */ | |||||
.top{ | |||||
display: flex; | |||||
width: 94%; | |||||
margin: 0 auto; | |||||
background-color: #ffffff; | |||||
border-radius: 10px; | |||||
margin-top: 3vw; | |||||
overflow: hidden; | |||||
} | |||||
.top view{ | |||||
padding: 18px 15px; | |||||
align-items: center; | |||||
justify-content: center; | |||||
position: relative; | |||||
} | |||||
.top image{ | |||||
position: absolute; | |||||
width: 94%; | |||||
} | |||||
.top-title{ | |||||
flex: 1; | |||||
text-align: center; | |||||
} | |||||
.top-tit{ | |||||
color: #fff; | |||||
} | |||||
.main{ | |||||
width: 94%; | |||||
margin: 0 auto; | |||||
margin-top: 3vw; | |||||
} | |||||
.van-tabs__nav { | |||||
background-color: #F4F4F4; | |||||
} | |||||
.bank_content{ | |||||
color: #fff; | |||||
background:linear-gradient(to right, #176AB7, #318DE5); | |||||
width: 100%; | |||||
border-radius: 10px; | |||||
/* height: 100%; */ | |||||
padding: 2vh 2vh 3vh; | |||||
} | |||||
.bank_content view{ | |||||
margin-top: 1vh; | |||||
} | |||||
.bank_content view text{ | |||||
font-size: 14px; | |||||
margin-left: 10vw; | |||||
} | |||||
.bank_box{ | |||||
position: relative; | |||||
margin-top: 20px; | |||||
} | |||||
.zt { | |||||
font-size: 14px; | |||||
position: absolute; | |||||
top: 10px; | |||||
transform: rotate(45deg); | |||||
right: 0px; | |||||
color: #FFF; | |||||
z-index: 10; | |||||
} | |||||
.gwk{ | |||||
background:linear-gradient(to right, #5CAE77, #B3DB62); | |||||
} | |||||
.holder{ | |||||
padding: 15px 25px ; | |||||
background-color: rgba(255,255,255,0.9); | |||||
color: #333333; | |||||
font-size: 16px; | |||||
border-top-left-radius: 30px; | |||||
border-bottom-left-radius: 30px; | |||||
position:absolute; | |||||
bottom:20%; | |||||
right:0; | |||||
} | |||||
.bottom{ | |||||
width: 84%; | |||||
margin: 0 auto; | |||||
text-align: center; | |||||
margin-top: 30px; | |||||
margin-bottom: 30px; | |||||
display: flex; | |||||
} | |||||
.bottom view { | |||||
width: 47%; | |||||
margin: 0 auto; | |||||
border-radius: 30px; | |||||
display: inline-block; | |||||
} | |||||
.bottom .btn1{ | |||||
border: 1px solid #2C8E68; | |||||
padding: 8px 0px; | |||||
color: #2C8E68; | |||||
} | |||||
.bottom .btn2{ | |||||
border: 1px solid transparent; | |||||
padding: 8px 0px; | |||||
background-image: linear-gradient(to right, #2C8E68, #5CAE77); | |||||
margin-left: 6%; | |||||
color: #fff; | |||||
} | |||||
.deleteBox{ | |||||
width: 65px; | |||||
text-align: center; | |||||
height: 100%; | |||||
background: #F6F6F6; | |||||
align-items: center; | |||||
display: flex; | |||||
} | |||||
.van-action-sheet__header { | |||||
background: #f2f2f2; | |||||
color: #2C8E68; | |||||
} |
@@ -0,0 +1,72 @@ | |||||
// pages/apply/paymentTemplate/paymentTemplate.js | |||||
const app = getApp(); | |||||
Page({ | |||||
/** | |||||
* 页面的初始数据 | |||||
*/ | |||||
data: { | |||||
isIPX: app.globalData.isIPX, | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面加载 | |||||
*/ | |||||
onLoad(options) { | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面初次渲染完成 | |||||
*/ | |||||
onReady() { | |||||
}, | |||||
back:function(){ | |||||
wx.navigateBack({ | |||||
delta: 1 | |||||
}) | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面显示 | |||||
*/ | |||||
onShow() { | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面隐藏 | |||||
*/ | |||||
onHide() { | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面卸载 | |||||
*/ | |||||
onUnload() { | |||||
}, | |||||
/** | |||||
* 页面相关事件处理函数--监听用户下拉动作 | |||||
*/ | |||||
onPullDownRefresh() { | |||||
}, | |||||
/** | |||||
* 页面上拉触底事件的处理函数 | |||||
*/ | |||||
onReachBottom() { | |||||
}, | |||||
/** | |||||
* 用户点击右上角分享 | |||||
*/ | |||||
onShareAppMessage() { | |||||
} | |||||
}) |
@@ -0,0 +1,5 @@ | |||||
{ | |||||
"usingComponents": { | |||||
} | |||||
} |
@@ -0,0 +1,5 @@ | |||||
<!--pages/apply/paymentTemplate/paymentTemplate.wxml--> | |||||
<view class="ns" style="height:{{isIPX?'88px':'64px'}};"> | |||||
<image src="/image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};" mode="widthFix" bindtap="back"></image> | |||||
<text style="top:{{isIPX?'54px':'30px'}};">支出申请</text> | |||||
</view> |
@@ -0,0 +1 @@ | |||||
/* pages/apply/paymentTemplate/paymentTemplate.wxss */ |
@@ -1,12 +1,13 @@ | |||||
{ | { | ||||
"description": "项目配置文件", | |||||
"description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", | |||||
"packOptions": { | "packOptions": { | ||||
"ignore": [ | "ignore": [ | ||||
{ | { | ||||
"type": "file", | |||||
"value": ".eslintrc.js" | |||||
"value": ".eslintrc.js", | |||||
"type": "file" | |||||
} | } | ||||
] | |||||
], | |||||
"include": [] | |||||
}, | }, | ||||
"setting": { | "setting": { | ||||
"urlCheck": false, | "urlCheck": false, | ||||
@@ -44,21 +45,13 @@ | |||||
"minifyWXML": true, | "minifyWXML": true, | ||||
"showES6CompileOption": false, | "showES6CompileOption": false, | ||||
"useCompilerPlugins": false, | "useCompilerPlugins": false, | ||||
"ignoreUploadUnusedFiles": true | |||||
"ignoreUploadUnusedFiles": true, | |||||
"useStaticServer": true | |||||
}, | }, | ||||
"compileType": "miniprogram", | "compileType": "miniprogram", | ||||
"libVersion": "2.21.1", | |||||
"libVersion": "2.23.2", | |||||
"appid": "wxaace54cc2cf8924b", | "appid": "wxaace54cc2cf8924b", | ||||
"projectname": "WXMB", | "projectname": "WXMB", | ||||
"debugOptions": { | |||||
"hidedInDevtools": [] | |||||
}, | |||||
"scripts": {}, | |||||
"staticServerOptions": { | |||||
"baseURL": "", | |||||
"servePath": "" | |||||
}, | |||||
"isGameTourist": false, | |||||
"condition": { | "condition": { | ||||
"search": { | "search": { | ||||
"list": [] | "list": [] | ||||
@@ -78,5 +71,9 @@ | |||||
"miniprogram": { | "miniprogram": { | ||||
"list": [] | "list": [] | ||||
} | } | ||||
}, | |||||
"editorSetting": { | |||||
"tabIndent": "insertSpaces", | |||||
"tabSize": 2 | |||||
} | } | ||||
} | } |
@@ -1,15 +1,6 @@ | |||||
{ | { | ||||
"setting": {}, | "setting": {}, | ||||
"condition": { | "condition": { | ||||
"plugin": { | |||||
"list": [] | |||||
}, | |||||
"game": { | |||||
"list": [] | |||||
}, | |||||
"gamePlugin": { | |||||
"list": [] | |||||
}, | |||||
"miniprogram": { | "miniprogram": { | ||||
"list": [ | "list": [ | ||||
{ | { | ||||
@@ -36,10 +27,11 @@ | |||||
"name": "支出申请", | "name": "支出申请", | ||||
"pathName": "pages/apply/index", | "pathName": "pages/apply/index", | ||||
"query": "", | "query": "", | ||||
"scene": null, | |||||
"launchMode": "default" | |||||
"launchMode": "default", | |||||
"scene": null | |||||
} | } | ||||
] | ] | ||||
} | } | ||||
} | |||||
}, | |||||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html" | |||||
} | } |