diff --git a/app.js b/app.js
index c08a124..71dd99a 100644
--- a/app.js
+++ b/app.js
@@ -1,21 +1,8 @@
//app.js
App({
onLaunch: function () {
- // 展示本地存储能力
- //var logs = wx.getStorageSync('logs') || []
- //logs.unshift(Date.now())
- //wx.setStorageSync('logs', logs)
- // wx.checkSession({
- // success() {
- // //session_key 未过期,并且在本生命周期一直有效
- // console.log(wx.getStorageSync("sessionid"))
- // },
- // fail() {
- // // session_key 已经失效,需要重新执行登录流程
- // // 登录
- // }
- // })
- this.mplogin();
+ var that = this
+ that.mplogin()
},
mplogin: function () {
var that = this;
@@ -93,7 +80,7 @@ App({
globalData: {
userInfo: null,
//serverUrl: 'https://safeyun.ctcshe.com/',
- serverUrl:'http://127.0.0.1:8000/',
+ serverUrl: 'http://127.0.0.1:8000/',
//serverUrl: 'http://192.168.0.102:8000/',
//serverUrl:'http://10.7.100.250:8000/',
isaqy: 0
diff --git a/app.json b/app.json
index 1d6df9f..c9a2d90 100644
--- a/app.json
+++ b/app.json
@@ -38,7 +38,22 @@
"pages/userSelect/userSelect",
"components/footer/footer",
"pages/operation/operationadd",
- "pages/train/add"
+ "pages/train/add",
+ "pages/train/detail",
+ "pages/train/check",
+ "pages/train/qrcode",
+ "pages/operation/list",
+ "pages/examtest/index",
+ "pages/examtest/note",
+ "pages/examtest/main",
+ "pages/examtest/sheet",
+ "pages/examtest/result",
+ "pages/examtest/detail",
+ "pages/safecert/index",
+ "pages/safecert/detail",
+ "pages/exercise/index",
+ "pages/questioncat/index",
+ "pages/exercise/main"
],
"window": {
"backgroundTextStyle": "light",
@@ -65,5 +80,6 @@
"selectedIconPath": "image/mec.png"
}
]
- }
+ },
+ "sitemapLocation": "sitemap.json"
}
\ No newline at end of file
diff --git a/components/footer/footer.wxml b/components/footer/footer.wxml
index 2d21345..924314c 100644
--- a/components/footer/footer.wxml
+++ b/components/footer/footer.wxml
@@ -3,4 +3,5 @@
{{item.name}}
- 确定
\ No newline at end of file
+ 确定
+
\ No newline at end of file
diff --git a/components/footer/footer.wxss b/components/footer/footer.wxss
index 95a6ba4..080da44 100644
--- a/components/footer/footer.wxss
+++ b/components/footer/footer.wxss
@@ -25,7 +25,7 @@
.text {
font-size: 32rpx;
color: #333;
- padding: 40rpx 20rpx;
+ padding: 20rpx 20rpx;
margin-right: 10rpx;
background-color: #f5f5f5;
}
diff --git a/pages/bind/binduser.js b/pages/bind/binduser.js
index bcd75a2..298fee5 100644
--- a/pages/bind/binduser.js
+++ b/pages/bind/binduser.js
@@ -26,7 +26,7 @@ Page({
if (res.statusCode === 200) {
if (res.data.code == 1) {
wx.showToast({})
- getApp().onLaunch()
+ getApp().mplogin()
wx.switchTab({
url: '/pages/main/main',
})
diff --git a/pages/examtest/detail.js b/pages/examtest/detail.js
new file mode 100644
index 0000000..dc1c0c0
--- /dev/null
+++ b/pages/examtest/detail.js
@@ -0,0 +1,144 @@
+// pages/examtest/detail.js
+var util = require('../../utils/util.js')
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ },
+ detaildata:{
+
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ var detailid = options.detailid
+ this.data.detailid = detailid
+ wx.showLoading({
+ title: '加载中..',
+ })
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/examtestdetail?a=detail&id='+detailid,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ success: res => {
+ if (res.statusCode === 200) {
+ wx.hideLoading()
+ var data = res.data
+ data.starttime = util.formatTime2(new Date(data.starttime))
+ this.detaildata = data
+ this.setData({
+ starttime:data.starttime,
+ took:data.took,
+ tmIndex:0,
+ tmtotal: data['testdetail'].length,
+ currentTm:data['testdetail'][0]
+ }
+ )
+ this.showanswer()
+ }
+ }
+ });
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ next:function(){
+ var that=this
+ var tmIndex = that.data.tmIndex +1
+ that.setData({
+ tmIndex:tmIndex,
+ currentTm:that.detaildata.testdetail[tmIndex]
+ })
+ that.showanswer()
+ },
+ previous: function () {
+ var that = this
+ var tmIndex = that.data.tmIndex - 1
+ that.setData({
+ tmIndex: tmIndex,
+ currentTm: that.detaildata.testdetail[tmIndex]
+ })
+ that.showanswer()
+ },
+ showanswer: function () {
+ var that = this
+ var currentTm = that.data.currentTm
+ console.log(currentTm)
+ var answer = currentTm.question__answer
+ var sorder = Object.keys(answer).sort();
+ var answerChecked=[]
+ for (var x = 0; x < sorder.length; x++) {
+ if (answer[sorder[x]] != '') {
+ if(currentTm.userchecked!=undefined){
+ var ii = currentTm.userchecked.indexOf(sorder[x])
+ }else{
+ ii=1
+ }
+ if ( ii!= -1 && currentTm.question__right.indexOf(sorder[x]) != -1){
+ answerChecked.push({ 'name': sorder[x] + ':' + answer[sorder[x]], 'right': true, 'checked': true })
+ } else if (ii != -1){
+ answerChecked.push({ 'name': sorder[x] + ':' + answer[sorder[x]], 'right': false, 'checked': true })
+ } else if (currentTm.question__right.indexOf(sorder[x]) != -1){
+ answerChecked.push({ 'name': sorder[x] + ':' + answer[sorder[x]], 'right': true, 'checked': false })
+ }else{
+ answerChecked.push({ 'name': sorder[x] + ':' + answer[sorder[x]], 'right': false, 'checked': false })
+ }
+
+ }
+
+ }
+ that.setData({ 'answerChecked': answerChecked })
+ },
+})
\ No newline at end of file
diff --git a/pages/examtest/detail.json b/pages/examtest/detail.json
new file mode 100644
index 0000000..0b34069
--- /dev/null
+++ b/pages/examtest/detail.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "试卷详情"
+}
\ No newline at end of file
diff --git a/pages/examtest/detail.wxml b/pages/examtest/detail.wxml
new file mode 100644
index 0000000..a11c950
--- /dev/null
+++ b/pages/examtest/detail.wxml
@@ -0,0 +1,52 @@
+
+
+
+答题耗时{{took}}分钟
+
+
+
+
+ {{tmIndex+1}}.
+ 单选题
+ 多选题
+ 判断题
+ ({{currentTm.score}}分)
+
+ {{currentTm.question__title}}
+
+
+
+
+
+
+
+
+ 正确答案是{{currentTm.question__right}},你的答案是{{currentTm.userchecked}}
+ 回答正确
+ 回答有误
+ 解析: {{currentTm.question__resoluation}}
+ 解析: 无
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/examtest/detail.wxss b/pages/examtest/detail.wxss
new file mode 100644
index 0000000..e51debe
--- /dev/null
+++ b/pages/examtest/detail.wxss
@@ -0,0 +1,18 @@
+.head{
+ color:#fff;
+ background-color: cornflowerblue;
+}
+.txlabel{
+ color:#fff;
+ background-color: rgb(216, 140, 0);
+ padding: 2px
+}
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
+.sheet{
+ color:#fff;
+ background-color: red;
+ float:right
+}
\ No newline at end of file
diff --git a/pages/examtest/index.js b/pages/examtest/index.js
new file mode 100644
index 0000000..6e9d245
--- /dev/null
+++ b/pages/examtest/index.js
@@ -0,0 +1,172 @@
+//var base64 = require("../images/base64");
+var sliderWidth = 96;
+Page({
+ data: {
+ page: 1,
+ serverUrl: getApp().globalData.serverUrl,
+ allyhlist: [],
+ tabs: ["待考", "已考"],
+ activeIndex: 0,
+ sliderOffset: 0,
+ sliderLeft: 0
+ },
+ tabClick: function (e) {
+ var that = this
+ that.setData({
+ sliderOffset: e.currentTarget.offsetLeft,
+ activeIndex: e.currentTarget.id
+ });
+ if (that.data.activeIndex == 0) {
+ that.gettodokslist(1)
+ that.data.todopage = 1
+ }
+ else if (that.data.activeIndex == 1) {
+ that.getyklist(1)
+ that.data.page = 1
+ }
+ },
+ getyklist: function (page) {
+ var that = this;
+ if (page != 1) { page = that.data.page }
+ wx.showLoading({
+ title: '加载中',
+ }),
+ wx.request({
+ url: this.data.serverUrl + 'api/examtestdetail?a=listyk&rows=10&page=' + page,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ success: res => {
+ if (res.statusCode === 200) {
+ if (res.data.rows.length == 0) {
+ if (page == 1) {
+ this.setData({
+ yktotal: 0,
+ yklist: []
+ })
+ }
+ else {
+ wx.showModal({
+ content: "已经到底啦!",
+ showCancel: false,
+ confirmText: "确定",
+ })
+ }
+ } else {
+ let list
+ if (page == 1) {
+ list = res.data.rows
+ } else {
+ list = this.data.yklist.concat(res.data.rows)
+ }
+ this.setData({
+ yktotal: res.data.total,
+ yklist: list
+ })
+ }
+ }
+ wx.hideLoading();
+ }
+ });
+ },
+ gettodokslist: function (page) {
+ var that = this;
+ if (page != 1) { page = that.data.todopage }
+ wx.showLoading({
+ title: '加载中',
+ }),
+ wx.request({
+ url: this.data.serverUrl + 'api/examtestdetail?a=listdk&rows=10&page=' + page,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ success: res => {
+ if (res.statusCode === 200) {
+ if (res.data.rows.length == 0) {
+ if (page == 1) {
+ this.setData({
+ todototal: 0,
+ todokslist: []
+ })
+ }
+ else {
+ wx.showModal({
+ content: "已经到底啦!",
+ showCancel: false,
+ confirmText: "确定",
+ })
+ }
+
+
+ } else {
+ let list
+ if (page == 1) {
+ list = res.data.rows
+ } else {
+ list = this.data.todokslist.concat(res.data.rows)
+ }
+ this.setData({
+ todototal: res.data.total,
+ todokslist: list
+ })
+ }
+ }
+ wx.hideLoading();
+ }
+ });
+ },
+ onLoad: function () {
+ // this.setData({
+ // icon: base64.icon20
+ // });
+ var that = this;
+ wx.getSystemInfo({
+ success: function (res) {
+ that.setData({
+ sliderLeft: (res.windowWidth / that.data.tabs.length - sliderWidth) / 2,
+ sliderOffset: res.windowWidth / that.data.tabs.length * that.data.activeIndex
+ });
+ }
+ });
+ },
+ onShow: function () {
+ var that = this;
+ console.log(that.data.activeIndex)
+ if (that.data.activeIndex == 0) {
+ that.gettodokslist(1)
+ that.data.todopage = 1
+ }
+ else if (that.data.activeIndex == 1) {
+ that.getyklist(1)
+ that.data.page = 1
+ }
+ },
+ onPullDownRefresh: function () {
+ var that = this;
+ if (that.data.activeIndex == 0) {
+ that.gettodokslist(1)
+ wx.stopPullDownRefresh();
+ that.data.todopage = 1
+ }
+ else if (that.data.activeIndex == 1) {
+ that.getyklist(1)
+ wx.stopPullDownRefresh();
+ that.data.page = 1
+ }
+ },
+ onReachBottom: function () {
+ //上拉分页,将页码加1,然后调用分页函数
+
+ var that = this;
+ if (that.data.activeIndex == 0) {
+ this.data.todopage = this.data.todopage + 1;
+ this.gettodokslist();
+ }
+ else if (that.data.activeIndex == 1) {
+ this.data.page = this.data.page + 1;
+ this.getyklist();
+ }
+ },
+});
\ No newline at end of file
diff --git a/pages/examtest/index.json b/pages/examtest/index.json
new file mode 100644
index 0000000..2ac22d3
--- /dev/null
+++ b/pages/examtest/index.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "在线考试",
+ "enablePullDownRefresh": true
+}
\ No newline at end of file
diff --git a/pages/examtest/index.wxml b/pages/examtest/index.wxml
new file mode 100644
index 0000000..e833dac
--- /dev/null
+++ b/pages/examtest/index.wxml
@@ -0,0 +1,53 @@
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+ 共{{todototal}}条待参加考试
+
+
+
+
+ {{item.examtest__name}}
+
+ 答卷时长:{{item.examtest__duration}}分钟 通过分数:{{item.examtest__passscore}}
+
+
+
+
+
+
+
+ 共{{yktotal}}条考试
+
+
+
+
+ {{item.examtest__name}}
+
+ 参加时间:{{item.starttime}}
+ 耗时:{{item.took}}分钟 得分:{{item.score}}
+
+
+
+ 通过
+
+
+ 未通过
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/examtest/index.wxss b/pages/examtest/index.wxss
new file mode 100644
index 0000000..6d7ae6e
--- /dev/null
+++ b/pages/examtest/index.wxss
@@ -0,0 +1,13 @@
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
+.container {
+ background-color: #fff;
+ color: #939393;
+}
+.head{
+ color:#fff;
+ background-color: cornflowerblue;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/pages/examtest/main.js b/pages/examtest/main.js
new file mode 100644
index 0000000..fc0de02
--- /dev/null
+++ b/pages/examtest/main.js
@@ -0,0 +1,323 @@
+// pages/examtest/main.js
+var util = require('../../utils/util.js')
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ tmIndex: 0,
+ answerChoices:[],
+ ydtm:0
+ },
+ tmdata: {
+
+ },
+ calydtm:function(e){
+ var tms = this.tmdata.tms
+ var ydtm = 0
+ for (var i = 0, len = tms.length; i < len; ++i) {
+ if(tms[i].userchecked && tms[i].userchecked.length !=0){
+ ydtm +=1
+ }
+ }
+ this.setData({
+ ydtm:ydtm
+ })
+ },
+ radioChange: function (e) {
+ console.log('radio发生change事件,携带value值为:', e.detail.value);
+ var answerChoices = this.data.answerChoices;
+ for (var i = 0, len = answerChoices.length; i < len; ++i) {
+ answerChoices[i].checked = answerChoices[i].value == e.detail.value;
+ }
+
+ this.setData({
+ answerChoices: answerChoices,
+ });
+ this.tmdata.tms[this.data.tmIndex]['userchecked'] = e.detail.value
+ this.calydtm()
+ },
+ checkboxChange: function (e) {
+ console.log('checkbox发生change事件,携带value值为:', e.detail.value);
+
+ var answerChoices = this.data.answerChoices, values = e.detail.value;
+ for (var i = 0, lenI = answerChoices.length; i < lenI; ++i) {
+ answerChoices[i].checked = false;
+
+ for (var j = 0, lenJ = values.length; j < lenJ; ++j) {
+ if (answerChoices[i].value == values[j]) {
+ answerChoices[i].checked = true;
+ break;
+ }
+ }
+ }
+
+ this.setData({
+ answerChoices: answerChoices,
+ });
+ this.tmdata.tms[this.data.tmIndex]['userchecked'] = e.detail.value
+ this.calydtm()
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if(options.id){
+ this.setData({
+ testid:options.id
+ })
+ wx.showLoading({})
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/examtest?a=detailtm&id=' + options.id,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ success: res => {
+ if (res.statusCode === 200) {
+ wx.hideLoading()
+ console.log(res.data)
+ let tms = res.data
+ this.tmdata = tms
+ console.log(tms.duration)
+ let mil = tms.duration * 60 * 1000
+ console.log(mil)
+ this.begin(mil)
+ this.showTm(0)
+ this.setData({
+ tmtotal: tms.tms.length,
+ starttime: util.formatTime(new Date()) })
+ }
+
+ }
+ });
+ }
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+ // wx.showModal({
+ // title: '系统提示',
+ // content: '未完成答卷,是否要提交答卷!',
+ // confirmText: "提交",
+ // cancelText: "点错了",
+ // success: function (res) {
+ // if (res.confirm) {
+ // } else {
+ // this.onShow()
+ // }
+ // }
+ // })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ begin: function (mil) {
+ var temp = formatmil(mil);
+ this.setData({
+ countdown: temp,
+ });
+
+ if (mil < 2000) {
+ wx.showLoading({
+ title: '时间到,正在交卷..',
+ });
+ this.handtest()
+ return
+ };
+
+ setTimeout(
+ () => {
+ mil -= 1000;
+ this.begin(mil);
+ }, 1000
+ );
+ },
+ showTm: function (index) {
+ var that = this
+ var currentTm = that.tmdata.tms[index]
+ console.log(currentTm)
+ that.setData({ 'currentTm': currentTm })
+ var answer = currentTm.question__answer
+ var i = 0
+ var x = ['A','B','C','D','E','F']
+ var answerChoices = []
+ for(var key in answer){
+ if(answer[key]!=''){
+ answerChoices.push({'name':x[i],'value':key,'checked':false})
+ i = i + 1
+ }
+ }
+ console.log(answerChoices)
+ that.setData({ 'answerChoices': answerChoices})
+ },
+ showChecked: function(index){
+ var tm = this.tmdata.tms[index]
+ let choices = this.data.answerChoices
+ if(tm.userchecked){
+ if (tm.question__type = 2) {
+ for (var i = 0, len = choices.length; i < len; i++) {
+ if (tm.userchecked.indexOf(choices[i].value) != -1) {
+ choices[i].checked = true
+ }
+ }
+ } else {
+ for (var i = 0, len = choices.length; i < len; i++) {
+ if (choices[i].value == tm.userchecked) {
+ choices[i].checked = true
+ }
+ }
+ }
+ this.setData({
+ answerChoices: choices
+ })
+ }
+ },
+ next:function(){
+ var that = this
+ var tmIndex = that.data.tmIndex+1
+ that.showTm(tmIndex)
+ that.setData({
+ tmIndex:tmIndex,
+ })
+ that.showChecked(tmIndex)
+ },
+ previous: function () {
+ var that = this
+ var tmIndex = that.data.tmIndex - 1
+ that.showTm(tmIndex)
+ that.setData({
+ tmIndex: tmIndex,
+ })
+ that.showChecked(tmIndex)
+ },
+ hand:function(){
+ var that = this
+ if (that.data.ydtm < that.tmdata.tms.length){
+ wx.showModal({
+ title: '警告',
+ content: '答卷未完成,确定提交?',
+ confirmText: "确定",
+ cancelText: "取消",
+ success: function (res) {
+ if (res.confirm) {
+ that.handtest()
+ }
+ }
+ })
+ }else{
+ wx.showModal({
+ content: '确定提交?',
+ confirmText: "确定",
+ cancelText: "取消",
+ success: function (res) {
+ if (res.confirm) {
+ that.handtest()
+ }
+ }
+ })
+ }
+ },
+ handtest:function(){
+ var data={
+ 'testid': this.data.testid,
+ 'starttime':this.data.starttime,
+ 'endtime': util.formatTime(new Date()),
+ 'sheet':this.tmdata.tms
+ }
+ wx.showLoading({
+ title: '自动判卷中..',
+ })
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/examtestdetail?a=handtest&id=' + this.data.testid,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ method: 'POST',
+ data: data,
+ success: res => {
+ if (res.statusCode === 200) {
+ wx.hideLoading()
+ wx.redirectTo({
+ url: 'result?' + parseParams(res.data.data),
+ })
+
+ }
+ }
+ });
+ }
+})
+function formatmil(mil) {
+ var allSecond = Math.floor(mil / 1000);
+ var h = Math.floor(allSecond / 3600);
+ var m = Math.floor((allSecond - h * 3600) / 60);
+ var s = Math.floor(allSecond - h * 3600 - m * 60);
+ h = toTow(h);
+ m = toTow(m);
+ s = toTow(s);
+ return h + ":" + m + ":" + s;
+}
+function toTow(num) {
+ if (num < 10) {
+ return "0" + num;
+ } else {
+ return num;
+ }
+}
+function parseParams(data) {
+ try {
+ var tempArr = [];
+ for (var i in data) {
+ var key = encodeURIComponent(i);
+ var value = encodeURIComponent(data[i]);
+ tempArr.push(key + '=' + value);
+ }
+ var urlParamsStr = tempArr.join('&');
+ return urlParamsStr;
+ } catch (err) {
+ return '';
+ }
+}
\ No newline at end of file
diff --git a/pages/examtest/main.json b/pages/examtest/main.json
new file mode 100644
index 0000000..9c848e5
--- /dev/null
+++ b/pages/examtest/main.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "考试中"
+}
\ No newline at end of file
diff --git a/pages/examtest/main.wxml b/pages/examtest/main.wxml
new file mode 100644
index 0000000..809eb2d
--- /dev/null
+++ b/pages/examtest/main.wxml
@@ -0,0 +1,50 @@
+
+
+
+倒计时 {{countdown}}
+
+答题卡: {{ydtm}}/{{tmtotal}}
+
+
+
+
+
+ {{tmIndex+1}}.
+ 单选题
+ 多选题
+ 判断题
+ ({{currentTm.score}}分)
+
+ {{currentTm.question__title}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/examtest/main.wxss b/pages/examtest/main.wxss
new file mode 100644
index 0000000..e51debe
--- /dev/null
+++ b/pages/examtest/main.wxss
@@ -0,0 +1,18 @@
+.head{
+ color:#fff;
+ background-color: cornflowerblue;
+}
+.txlabel{
+ color:#fff;
+ background-color: rgb(216, 140, 0);
+ padding: 2px
+}
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
+.sheet{
+ color:#fff;
+ background-color: red;
+ float:right
+}
\ No newline at end of file
diff --git a/pages/examtest/note.js b/pages/examtest/note.js
new file mode 100644
index 0000000..0030b03
--- /dev/null
+++ b/pages/examtest/note.js
@@ -0,0 +1,86 @@
+// pages/examtest/note.js
+var util = require('../../utils/util.js')
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/examtest?a=detail&id='+options.examtestid,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ success: res => {
+ if (res.statusCode === 200) {
+ let ksdata = res.data
+ if (ksdata.starttime != '') { ksdata.starttime = util.formatTime2(new Date(ksdata.starttime)) }
+ if (ksdata.endtime != '') { ksdata.endtime = util.formatTime2(new Date(ksdata.endtime)) }
+ this.setData(res.data)
+ }
+ }
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ start: function () {
+ wx.reLaunch({
+ url: 'main?id='+this.data.id,
+ })
+ },
+})
\ No newline at end of file
diff --git a/pages/examtest/note.json b/pages/examtest/note.json
new file mode 100644
index 0000000..28a2a8e
--- /dev/null
+++ b/pages/examtest/note.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "考试须知"
+}
\ No newline at end of file
diff --git a/pages/examtest/note.wxml b/pages/examtest/note.wxml
new file mode 100644
index 0000000..877792f
--- /dev/null
+++ b/pages/examtest/note.wxml
@@ -0,0 +1,22 @@
+
+ 考试须知
+
+
+ 1.考试详情
+ 名称:{{name}}
+ 答卷时长:{{duration}}分钟
+ 满分{{totalscore}};{{passscore}}以上通过
+ {{exampaper__total.dx.num}}道单选题,{{exampaper__total.duox.num}}道多选题,{{exampaper__total.pd.num}}道判断题
+
+
+ 2.答题须知
+ 进入答题后请不要后退或返回桌面
+ 用户可点击上一题/下一题进行切换答题
+ 用户选择好选项后会自动跳转至下一题
+ 请合理安排时间答题,可提前交卷,超时会自动提交
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/examtest/note.wxss b/pages/examtest/note.wxss
new file mode 100644
index 0000000..5bbca33
--- /dev/null
+++ b/pages/examtest/note.wxss
@@ -0,0 +1,4 @@
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
\ No newline at end of file
diff --git a/pages/examtest/result.js b/pages/examtest/result.js
new file mode 100644
index 0000000..95659d9
--- /dev/null
+++ b/pages/examtest/result.js
@@ -0,0 +1,83 @@
+// pages/examtest/result.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({
+ passcode: options.passcode,
+ score:options.score,
+ totalscore:options.totalscore,
+ rights:options.rights,
+ tmnum:options.tmnum,
+ detailid: options.examtestdetailid
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ detail:function(){
+ wx.navigateTo({
+ url: 'detail?detailid=' + this.data.detailid,
+ })
+ },
+ back:function(){
+ wx.switchTab({
+ url: '/pages/main/main'
+ })
+ }
+})
\ No newline at end of file
diff --git a/pages/examtest/result.json b/pages/examtest/result.json
new file mode 100644
index 0000000..3908474
--- /dev/null
+++ b/pages/examtest/result.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "在线考试"
+}
\ No newline at end of file
diff --git a/pages/examtest/result.wxml b/pages/examtest/result.wxml
new file mode 100644
index 0000000..75bd39f
--- /dev/null
+++ b/pages/examtest/result.wxml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+ 恭喜你,通过考试!
+ 得分{{score}},满分{{totalscore}}
+ 全对{{rights}}题,共{{tmnum}}题
+
+
+ 很遗憾,下次加油!
+ 得分{{score}},满分{{totalscore}}
+ 全对{{rights}}题,共{{tmnum}}题
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/examtest/result.wxss b/pages/examtest/result.wxss
new file mode 100644
index 0000000..2285021
--- /dev/null
+++ b/pages/examtest/result.wxss
@@ -0,0 +1,8 @@
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
+.b{
+ color:red;
+ font-weight: bold
+}
\ No newline at end of file
diff --git a/pages/examtest/sheet.js b/pages/examtest/sheet.js
new file mode 100644
index 0000000..822418a
--- /dev/null
+++ b/pages/examtest/sheet.js
@@ -0,0 +1,87 @@
+// pages/examtest/sheet.js
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ back: function (e) {
+ console.log(e.currentTarget.dataset.index);
+ var tmIndex = e.currentTarget.dataset.index
+ var pages = getCurrentPages();
+ var prevPage = pages[pages.length - 2]; //上一个页面
+ prevPage.setData({
+ tmIndex:tmIndex
+ })
+ prevPage.showTm(tmIndex)
+ prevPage.showChecked(tmIndex)
+ wx.navigateBack({
+ })
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ var pages = getCurrentPages();
+ var prevPage = pages[pages.length - 2]; //上一个页面
+ var tmlist = prevPage.tmdata.tms //取上页data里的数据也可以修改
+ console.log(tmlist)
+ this.setData({
+ tmlist:tmlist
+ })
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/examtest/sheet.json b/pages/examtest/sheet.json
new file mode 100644
index 0000000..6cfdd8d
--- /dev/null
+++ b/pages/examtest/sheet.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "答题卡"
+}
\ No newline at end of file
diff --git a/pages/examtest/sheet.wxml b/pages/examtest/sheet.wxml
new file mode 100644
index 0000000..05a9db7
--- /dev/null
+++ b/pages/examtest/sheet.wxml
@@ -0,0 +1,13 @@
+
+
+
+
+
+{{index+1}}
+
+
+{{index+1}}
+
+
+
+
diff --git a/pages/examtest/sheet.wxss b/pages/examtest/sheet.wxss
new file mode 100644
index 0000000..913bdd4
--- /dev/null
+++ b/pages/examtest/sheet.wxss
@@ -0,0 +1,21 @@
+/* pages/examtest/sheet.wxss */
+.ok{
+ display: flex;
+ color:#fff;
+ background-color: green;
+ border:4rpx solid green;
+ height:100rpx;
+ width:100rpx;
+ margin:20rpx;
+ justify-content: center;
+ align-items: center;
+}
+.no{
+ display: flex;
+ border:4rpx solid red;
+ height:100rpx;
+ width:100rpx;
+ margin:20rpx;
+ justify-content: center;
+ align-items: center;
+}
\ No newline at end of file
diff --git a/pages/exercise/index.js b/pages/exercise/index.js
new file mode 100644
index 0000000..0d37e7a
--- /dev/null
+++ b/pages/exercise/index.js
@@ -0,0 +1,147 @@
+// pages/exercise/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ catsname:'',
+ start1:true,
+ start2:false
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ var that = this
+wx.getStorage({
+ key: 'questioncats',
+ success: function(res) {
+ let lst = res.data
+ let nst = []
+ let nst1 = []
+ if (lst) {
+ for (var i = 0; i < lst.length; i++) {
+ nst.push(lst[i]['name'])
+ nst1.push(lst[i]['id'])
+ }
+ that.setData({
+ catsname: nst.join(','),
+ cats: nst1.join(','),
+ })
+ }
+ },
+})
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ var that=this
+ let lst = getApp().globalData.selectList
+ let nst = []
+ let nst1 = []
+ if (lst) {
+ for (var i = 0; i < lst.length; i++) {
+ nst.push(lst[i]['name'])
+ nst1.push(lst[i]['id'])
+ }
+ that.setData({
+ catsname: nst.join(','),
+ cats: nst1.join(','),
+ })
+ }
+ wx.getStorage({
+ key: 'ydtms',
+ success: function (res) {
+ that.setData({
+ start1: false,
+ start2: true
+ })
+ },
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ choosequestioncat:function(){
+ wx.navigateTo({
+ url: '/pages/questioncat/index',
+ })
+ },
+ start1:function(){
+if(this.data.catsname!=''){
+wx.navigateTo({
+ url: 'main',
+})
+}else{
+ wx.showModal({
+ content: '请选择题目分类!',
+ showCancel: false,
+ })
+}
+ },
+ start2: function () {
+ if (this.data.catsname != '') {
+ wx.removeStorage({
+ key: 'ydtms',
+ success: function(res) {
+
+ },
+ complete:function(){
+ wx.navigateTo({
+ url: 'main',
+ })
+ }
+ })
+
+ } else {
+ wx.showModal({
+ content: '请选择题目分类!',
+ showCancel: false,
+ })
+ }
+ }
+})
\ No newline at end of file
diff --git a/pages/exercise/index.json b/pages/exercise/index.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/exercise/index.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/exercise/index.wxml b/pages/exercise/index.wxml
new file mode 100644
index 0000000..8107526
--- /dev/null
+++ b/pages/exercise/index.wxml
@@ -0,0 +1,17 @@
+
+
+ 模拟练习
+ 选择题库分类进行练习。
+
+
+
+ 已选分类
+
+ {{catsname}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/exercise/index.wxss b/pages/exercise/index.wxss
new file mode 100644
index 0000000..5adb1f8
--- /dev/null
+++ b/pages/exercise/index.wxss
@@ -0,0 +1,8 @@
+.button-sp-area{
+ margin: 0 auto;
+ padding-top: 15px;
+ width: 60%;
+}
+.mini-btn{
+ margin-right: 5px;
+}
\ No newline at end of file
diff --git a/pages/exercise/main.js b/pages/exercise/main.js
new file mode 100644
index 0000000..2b282a5
--- /dev/null
+++ b/pages/exercise/main.js
@@ -0,0 +1,247 @@
+// pages/examtest/main.js
+var util = require('../../utils/util.js')
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ tmIndex: 0,
+ answerChoices: [],
+ answerP:false
+ },
+ tmdata: {
+ tms:[],
+ ydtms:[]
+ },
+ radioChange: function (e) {
+ console.log('radio发生change事件,携带value值为:', e.detail.value);
+ var answerChoices = this.data.answerChoices;
+ for (var i = 0, len = answerChoices.length; i < len; ++i) {
+ answerChoices[i].checked = answerChoices[i].value == e.detail.value;
+ }
+
+ this.setData({
+ answerChoices: answerChoices,
+ });
+ this.tmdata.tms[this.data.tmIndex]['userchecked'] = e.detail.value
+ this.setData({
+ currentTm: this.tmdata.tms[this.data.tmIndex]
+ })
+ this.showanswer()
+ },
+ checkboxChange: function (e) {
+ console.log('checkbox发生change事件,携带value值为:', e.detail.value);
+
+ var answerChoices = this.data.answerChoices, values = e.detail.value;
+ for (var i = 0, lenI = answerChoices.length; i < lenI; ++i) {
+ answerChoices[i].checked = false;
+
+ for (var j = 0, lenJ = values.length; j < lenJ; ++j) {
+ if (answerChoices[i].value == values[j]) {
+ answerChoices[i].checked = true;
+ break;
+ }
+ }
+ }
+ this.tmdata.tms[this.data.tmIndex]['userchecked'] = e.detail.value
+ this.setData({
+ answerChoices: answerChoices,
+ currentTm: this.tmdata.tms[this.data.tmIndex]
+ });
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ var that = this
+ wx.getStorage({
+ key: 'questioncats',
+ success: function (res) {
+ let lst = res.data
+ let nst = []
+ let nst1 = []
+ if (lst) {
+ for (var i = 0; i < lst.length; i++) {
+ nst.push(lst[i]['name'])
+ nst1.push(lst[i]['id'])
+ }
+ }
+ that.setData({
+ tmlxs:nst1
+ })
+ wx.getStorage({
+ key: 'ydtms',
+ success: function(res) {
+ that.tmdata.ydtms = res.data
+ that.getTms()
+ },
+ fail:function(){
+ that.getTms()
+ }
+ })
+
+ },
+ })
+
+ },
+ getTms: function () {
+ var that = this
+ wx.showLoading({})
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/question?a=exercise',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ method: 'POST',
+ data: { 'tmlx': that.data.tmlxs,'ydtms':that.tmdata.ydtms },
+ success: res => {
+ if (res.statusCode === 200) {
+ wx.hideLoading()
+ console.log(res.data)
+ let tms = res.data.rows
+ that.tmdata.tms = that.tmdata.tms.concat(tms)
+ that.showTm(that.data.tmIndex) //展示题目
+ that.setData({
+ tmtotal: res.data.total,
+ })
+ }
+
+ }
+ });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+wx.setStorage({
+ key: 'ydtms',
+ data: this.tmdata.ydtms,
+})
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ showTm: function (index) {
+ var that = this
+ var currentTm = that.tmdata.tms[index]
+ console.log(currentTm)
+ that.setData({ 'currentTm': currentTm })
+ var answer = currentTm.answer
+ var sorder = Object.keys(answer).sort();
+ var answerChoices = []
+ //对正确答案进行排序
+ for(var i=0;ithat.tmdata.tms.length){
+ that.getTms()
+ }else{
+ that.showTm(tmIndex)
+ }
+ that.showChecked(tmIndex)
+ },
+ previous: function () {
+ var that = this
+ var tmIndex = that.data.tmIndex - 1
+ that.showTm(tmIndex)
+ that.setData({
+ tmIndex: tmIndex,
+ answerP: false
+ })
+ that.showChecked(tmIndex)
+ },
+})
diff --git a/pages/exercise/main.json b/pages/exercise/main.json
new file mode 100644
index 0000000..6be8d7d
--- /dev/null
+++ b/pages/exercise/main.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "模拟练习"
+}
\ No newline at end of file
diff --git a/pages/exercise/main.wxml b/pages/exercise/main.wxml
new file mode 100644
index 0000000..ec0b92c
--- /dev/null
+++ b/pages/exercise/main.wxml
@@ -0,0 +1,57 @@
+
+
+
+ 题量 {{tmIndex+1}}/{{tmtotal}}
+
+
+
+
+ {{tmIndex+1}}.
+ 单选题
+ 多选题
+ 判断题
+
+ {{currentTm.title}}
+
+
+
+
+
+
+
+
+ 正确答案是{{currentTm.right}},你的答案是{{currentTm.userchecked}}
+
+
+ 解析: {{currentTm.resoluation}}
+
+ 解析: 无
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/exercise/main.wxss b/pages/exercise/main.wxss
new file mode 100644
index 0000000..e51debe
--- /dev/null
+++ b/pages/exercise/main.wxss
@@ -0,0 +1,18 @@
+.head{
+ color:#fff;
+ background-color: cornflowerblue;
+}
+.txlabel{
+ color:#fff;
+ background-color: rgb(216, 140, 0);
+ padding: 2px
+}
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
+.sheet{
+ color:#fff;
+ background-color: red;
+ float:right
+}
\ No newline at end of file
diff --git a/pages/images/examtest.png b/pages/images/examtest.png
new file mode 100644
index 0000000..9ee2219
Binary files /dev/null and b/pages/images/examtest.png differ
diff --git a/pages/images/exercise.png b/pages/images/exercise.png
new file mode 100644
index 0000000..94ef5d4
Binary files /dev/null and b/pages/images/exercise.png differ
diff --git a/pages/images/file.png b/pages/images/file.png
new file mode 100644
index 0000000..afe91b2
Binary files /dev/null and b/pages/images/file.png differ
diff --git a/pages/images/operation.png b/pages/images/operation.png
index 6525376..0cbe2ea 100644
Binary files a/pages/images/operation.png and b/pages/images/operation.png differ
diff --git a/pages/images/safecert.png b/pages/images/safecert.png
new file mode 100644
index 0000000..b4db00c
Binary files /dev/null and b/pages/images/safecert.png differ
diff --git a/pages/index/index.wxml b/pages/index/index.wxml
index 7b3817c..c887053 100644
--- a/pages/index/index.wxml
+++ b/pages/index/index.wxml
@@ -28,6 +28,17 @@
+
+
+
+
+
+
+ 我的安全资格证书
+
+
+
+
diff --git a/pages/main/main.js b/pages/main/main.js
index 704b2b0..06677b8 100644
--- a/pages/main/main.js
+++ b/pages/main/main.js
@@ -5,14 +5,18 @@ Page({
* 页面的初始数据
*/
data: {
-
+ yhtodonum:0,
+ zytodonum:0,
+ noread:0,
+ dqdnum:0,
+ dknum:0,
+ kaoshi:false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
-
},
/**
@@ -29,16 +33,20 @@ Page({
var that = this
//获取待阅读通知数目
if(wx.getStorageSync("sessionid")){
+ this.getrights()
this.getnoread()
this.getyhtodonum()
this.getzytodonum()
this.getpxqdnum()
+ this.getdknum() //待考
}else{
getApp().callback = () => {
+ this.getrights()
this.getnoread()
this.getyhtodonum()
this.getzytodonum()
this.getpxqdnum()
+ this.getdknum()
};
}
@@ -155,5 +163,47 @@ Page({
}
}
});
- }
+ },
+ getdknum: function () {
+ var that = this
+ //获取待考
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/examtestdetail?a=dknum',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {},
+ success: res => {
+ if (res.statusCode === 200) {
+ //console.log(res.data)
+ this.setData({
+ dknum: res.data.dknum,
+ })
+ }
+ }
+ });
+ },
+getrights:function(){
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/rights?a=have',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {},
+ success: res => {
+ if (res.statusCode === 200) {
+ //console.log(res.data.rights.indexOf('25'))
+ if (res.data.rights.indexOf('25') != -1) {//考试功能
+ this.setData({
+ kaoshi: true
+ })
+ }
+ }
+ console.log(this.data.kaoshi)
+ }
+ });
+}
+
})
\ No newline at end of file
diff --git a/pages/main/main.wxml b/pages/main/main.wxml
index 6a03d8f..c573b1f 100644
--- a/pages/main/main.wxml
+++ b/pages/main/main.wxml
@@ -1,51 +1,56 @@
-
- 数据采集
-
-
-
- 事故隐患
- {{yhtodonum}}
-
-
-
- 行为观察
-
-
-
- 未遂事件
-
-
-
- 合理化建议
-
-
-
- 作业许可
- {{zytodonum}}
-
-
- 学习园地
-
-
-
- 公告
-
-
-
- 通知
-
- {{noread}}
-
-
-
- 线下培训
- {{dqdnum}}
-
-
-
- 即将上线..
-
-
+
+ 数据采集
+
+
+
+ 事故隐患
+ {{yhtodonum}}
+
+
+
+ 行为观察
+
+
+
+ 未遂事件
+
+
+
+ 合理化建议
+
+
+
+ 作业许可
+ {{zytodonum}}
+
+ 学习园地
+
+
+
+ 公告
+
+
+
+ 通知
+
+ {{noread}}
+
+
+
+ 线下培训
+ {{dqdnum}}
+
+
+
+ 在线考试
+ {{dknum}}
+
+
+
+ 模拟练习
+
+
+
\ No newline at end of file
diff --git a/pages/notice/detail.js b/pages/notice/detail.js
index ecda2d6..cba195e 100644
--- a/pages/notice/detail.js
+++ b/pages/notice/detail.js
@@ -126,6 +126,7 @@ Page({
if (res.statusCode === 200) {
var tzdata = res.data
let material = []
+ console.log(tzdata)
console.log(tzdata.notice.material.length)
for (var i = 0, len = tzdata.notice.material.length; i < len; i++) {
let x = {}
@@ -135,9 +136,12 @@ Page({
}
console.log(material)
this.setData({
- material: material
+ material: material,
+ title:tzdata.notice.title,
+ readpeople:tzdata.readpeople,
+ readsnum:tzdata.readsnum
})
- this.setData(tzdata)
+
WxParse.wxParse('article', 'html', tzdata.notice.content, this, 0)
}
diff --git a/pages/notice/detail.wxml b/pages/notice/detail.wxml
index 9e00620..bea177f 100644
--- a/pages/notice/detail.wxml
+++ b/pages/notice/detail.wxml
@@ -2,7 +2,7 @@
- {{notice.title}}
+ {{title}}
阅读人数:{{readpeople}} 阅读次数:{{readsnum}}
附件
diff --git a/pages/observe/observe.wxml b/pages/observe/observe.wxml
index 005acb1..523f804 100644
--- a/pages/observe/observe.wxml
+++ b/pages/observe/observe.wxml
@@ -1,20 +1,20 @@
-
+
共{{total}}条行为观察
-
+
- {{item.lookplace}} {{item.actname}}
+ {{item.lookplace}} {{item.actname}}
{{item.looknum}} {{item.looker__name}}填报
{{item.looktime}}
-
+
-
+
\ No newline at end of file
diff --git a/pages/operation/list.js b/pages/operation/list.js
new file mode 100644
index 0000000..9c56bd3
--- /dev/null
+++ b/pages/operation/list.js
@@ -0,0 +1,83 @@
+// pages/operation/list.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+ getzylxlist: function () {
+ wx.request({
+ url: getApp().globalData.serverUrl + 'getdickey?dicclass=33',
+ header: {
+ 'content-type': 'application/json', //
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ method: 'GET',
+ success: res => {
+ if (res.statusCode === 200) {
+ let zylxlist = res.data.rows
+ this.setData({
+ zylxlist: zylxlist,
+ })
+ }
+ }
+ })
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.getzylxlist()
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/operation/list.json b/pages/operation/list.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/operation/list.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/operation/list.wxml b/pages/operation/list.wxml
new file mode 100644
index 0000000..53bb163
--- /dev/null
+++ b/pages/operation/list.wxml
@@ -0,0 +1,14 @@
+
+ 选择作业类型
+
+
+
+
+ {{item.dickeyname}}
+
+ {{item.detail}}
+ 审批流程:{{item.splcdetail}}
+
+
+
+
\ No newline at end of file
diff --git a/pages/operation/list.wxss b/pages/operation/list.wxss
new file mode 100644
index 0000000..a458506
--- /dev/null
+++ b/pages/operation/list.wxss
@@ -0,0 +1,5 @@
+.head{
+ color:#fff;
+ background-color: cornflowerblue;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/pages/operation/operation.js b/pages/operation/operation.js
index 942abc0..84cc98a 100644
--- a/pages/operation/operation.js
+++ b/pages/operation/operation.js
@@ -19,7 +19,6 @@ Page({
if (that.data.activeIndex == 0) {
that.getmyZylist(1)
that.data.mypage = 1
- that.getzylxlist()
}
else if (that.data.activeIndex == 1) {
that.gettodoZylist(1)
@@ -135,20 +134,20 @@ Page({
success: res => {
if (res.statusCode === 200) {
if (res.data.rows.length == 0) {
- if(page==1){
+ if (page == 1) {
this.setData({
todototal: 0,
todozylist: []
})
}
- else{
+ else {
wx.showModal({
content: "已经到底啦!",
showCancel: false,
confirmText: "确定",
})
}
-
+
} else {
let list
@@ -187,7 +186,6 @@ Page({
if (that.data.activeIndex == 0) {
that.getmyZylist(1)
that.data.mypage = 1
- that.getzylxlist()
}
else if (that.data.activeIndex == 1) {
that.gettodoZylist(1)
@@ -233,47 +231,12 @@ Page({
this.getallZylist();
}
},
- getzylxlist: function () {
- wx.request({
- url: getApp().globalData.serverUrl + 'getdickey?dicclass=33&a=combobox',
- header: {
- 'content-type': 'application/json', //
- 'Cookie': wx.getStorageSync("sessionid"),
- },
- method: 'GET',
- success: res => {
- if (res.statusCode === 200) {
- let zylxlist=res.data
- let zylxtext = []
- for (var i = 0; i < zylxlist.length; i++) {
- zylxtext.push(zylxlist[i]['text'])
- }
- this.setData({
- zylxlist: zylxlist,
- zylxtext: zylxtext
- })
- }
- }
- })
- },
- open: function(){
- var that = this
- console.log(that.data.zylxlist)
- wx.showActionSheet({
- itemList: that.data.zylxtext,
- success: function (res) {
- if (!res.cancel) {
- console.log(res.tapIndex)
- if(false){
- }else{
- wx.navigateTo({
- url: 'operationadd?zylx=' + that.data.zylxlist[res.tapIndex]['value'],
- })
- }
-
- }
- }
- });
- }
+ open: function () {
+
+ wx.navigateTo({
+ url: 'list',
+ })
+
+ },
});
\ No newline at end of file
diff --git a/pages/operation/operation.wxml b/pages/operation/operation.wxml
index e90058f..5455fa5 100644
--- a/pages/operation/operation.wxml
+++ b/pages/operation/operation.wxml
@@ -1,91 +1,88 @@
-
-
-
-
-
-
- {{item}}
-
-
-
+
+
+
+
+ {{item}}
-
-
-
- 共{{mytotal}}条作业许可
-
-
-
-
- {{item.zylx__dickeyname}}
-
- {{item.zynum}} {{item.zyfzr__name}}发起
- {{item.submittime}}
-
-
- {{item.zyzt.zyzt}}
- {{item.zyzt.zyzt}}
- {{item.todouser__name}}
-
-
-
-
-
-
-
-
-
-
-
- 共{{todototal}}条作业许可
-
-
-
-
- {{item.zylx__dickeyname}}
-
- {{item.zynum}} {{item.zyfzr__name}}发起
- {{item.submittime}}
-
-
- {{item.zyzt.zyzt}}
-
-
-
-
-
-
-
+
+
+
+
+
+
-
- 共{{alltotal}}条作业许可
-
-
-
-
- {{item.zylx__dickeyname}}
-
- {{item.zynum}} {{item.zyfzr__name}}发起
- {{item.submittime}}
-
-
- {{item.zyzt.zyzt}}
- {{item.zyzt.zyzt}}
- {{item.todouser__name}}
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/operation/operationadd.js b/pages/operation/operationadd.js
index eb45ca3..5479336 100644
--- a/pages/operation/operationadd.js
+++ b/pages/operation/operationadd.js
@@ -320,7 +320,9 @@ Page({
success: res => {
if (res.statusCode === 200) {
wx.hideLoading();
- wx.navigateBack()
+ wx.navigateBack({
+ delta: 2
+ })
}
}
});
diff --git a/pages/operation/operationdetail.json b/pages/operation/operationdetail.json
index 8835af0..38e5b26 100644
--- a/pages/operation/operationdetail.json
+++ b/pages/operation/operationdetail.json
@@ -1,3 +1,4 @@
{
- "usingComponents": {}
+ "usingComponents": {},
+ "navigationBarTitleText": "作业详情"
}
\ No newline at end of file
diff --git a/pages/public/detail.js b/pages/public/detail.js
index 49b8923..949967a 100644
--- a/pages/public/detail.js
+++ b/pages/public/detail.js
@@ -136,11 +136,12 @@ Page({
x['value'] = ggdata.notice.material[i]
material.push(x)
}
- console.log(material)
+ //console.log(material)
this.setData({
- material: material
+ material: material,
+ title: ggdata.notice.title,
+ reads: ggdata.notice.reads
})
- this.setData(ggdata)
WxParse.wxParse('article', 'html', ggdata.notice.content, this, 0)
}
diff --git a/pages/public/detail.wxml b/pages/public/detail.wxml
index d2438df..8ec9704 100644
--- a/pages/public/detail.wxml
+++ b/pages/public/detail.wxml
@@ -2,8 +2,8 @@
- {{notice.title}}
- 阅读量:{{notice.reads}}
+ {{title}}
+ 阅读量:{{reads}}
附件
diff --git a/pages/questioncat/ArrayUtils.js b/pages/questioncat/ArrayUtils.js
new file mode 100644
index 0000000..d094c7d
--- /dev/null
+++ b/pages/questioncat/ArrayUtils.js
@@ -0,0 +1,22 @@
+export default { /**
+ * 给数组去重
+ */ checkRepeat(list) {
+ let noRepList = [list[0]]
+ for (let i = 0; i < list.length; i++) {
+ let repeat = false
+ for (let j = 0; j < noRepList.length; j++)
+ { if (noRepList[j].id === list[i].id) {
+ repeat = true
+ break } }
+ if (!repeat) { noRepList.push(list[i]) } }
+ return noRepList
+ }, //删除list中id为 delId 的元素
+ deleteItemById(list, delId){
+ for (let i = 0; i < list.length; i++) {
+ if (list[i].id == delId) {
+ list.splice(i, 1)
+ return list; }
+ }
+ return list;
+ }
+ }
\ No newline at end of file
diff --git a/pages/questioncat/index.js b/pages/questioncat/index.js
new file mode 100644
index 0000000..fe96fa0
--- /dev/null
+++ b/pages/questioncat/index.js
@@ -0,0 +1,351 @@
+
+//import API from '../../../utils/API.js'
+import ArrayUtils from 'ArrayUtils.js'
+//import EventBus from '../../../components/NotificationCenter/WxNotificationCenter.js'
+
+
+
+Page({
+ data: {
+ currentList: [], //当前展示的列表
+ selectList: [], //已选择的元素列表
+ originalList: [], //最原始的数据列表
+ indexList: [], //存储目录层级的数组,用于准确的返回上一层
+ selectList: [], //已选中的人员列表
+ },
+
+ onLoad: function (options) {
+ wx.setNavigationBarTitle({
+ title: '选择分类'
+ })
+ this.init();
+ },
+
+ init() {
+ //上次选中的列表,用于判断是不是取消选中了
+ this.lastTimeSelect = []
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/questioncat?a=tree',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {},
+ success: res => {
+ if (res.statusCode === 200) {
+ let list = convert(res.data)
+ this.setData({
+ currentList: list,
+ originalList: list
+ })
+ }
+ }
+ })
+ },
+
+ clickItem(res) {
+ console.log(res)
+ let index = res.currentTarget.id;
+ let item = this.data.currentList[index]
+
+ console.log("item", item)
+ if(item.children.length!=0){
+ this.setData({
+ currentList: item.children
+ })
+ //将当前的索引存入索引目录中。索引多一个表示目录多一级
+ let indexes = this.data.indexList
+ indexes.push(index)
+ //是目录不是具体的用户
+ this.setData({
+ indexList: indexes
+ })
+ //清空上次选中的元素列表,并设置上一层的选中状态给lastTimeSelect
+ this.setLastTimeSelectList();
+ }
+
+ },
+
+
+ //返回按钮
+ goBack() {
+ let indexList = this.data.indexList
+ if (indexList.length > 0) {
+ //返回时删掉最后一个索引
+ indexList.pop()
+ if (indexList.length == 0) {
+ //indexList长度为0说明回到了最顶层
+ this.setData({
+ currentList: this.data.originalList,
+ indexList: indexList
+ })
+ } else {
+ //循环将当前索引的对应数组赋值给currentList
+ let list = this.data.originalList
+ for (let i = 0; i < indexList.length; i++) {
+ let index = indexList[i]
+ list = list[index].children
+ }
+ this.setData({
+ currentList: list,
+ indexList: indexList
+ })
+ }
+ //清空上次选中的元素列表,并设置上一层的选中状态给lastTimeSelect
+ this.setLastTimeSelectList();
+ }
+ },
+
+ //清空上次选中的元素列表,并设置上一层的选中状态给lastTimeSelect
+ setLastTimeSelectList() {
+ this.lastTimeSelect = []
+ this.data.currentList.forEach(item => {
+ if (item.checked) {
+ this.lastTimeSelect.push(item)
+ }
+ })
+ },
+
+ //根据部门获取下列列表
+ // _getUserByGroup(item) {
+ // wx.request({
+ // url: getApp().globalData.serverUrl + 'api/partuser?a=getall&parentid=' + item.id,
+ // header: {
+ // 'content-type': 'application/json', // 默认值
+ // 'Cookie': wx.getStorageSync("sessionid"),
+ // },
+ // data: {},
+ // success: res => {
+ // if (res.statusCode === 200) {
+ // let list = res.data.data
+ // console.log(res.list)
+ // this.setData({
+ // currentList: list
+ // })
+ // this.addList2DataTree()
+ // this.setLastTimeSelectList();
+ // }
+ // }
+ // })
+ // getApp().get(API.selectUserByGroup(), params, result => {
+ // console.log('result', result)
+ // let list = this.transformData(result.data.data, item.id)
+ // this.setData({
+ // currentList: list
+ // })
+ // this.addList2DataTree()
+ // //清空上次选中的元素列表,并设置上一层的选中状态给lastTimeSelect。写在这里防止异步请求时执行顺序问题
+ // this.setLastTimeSelectList();
+ // })
+ // },
+
+
+
+ //将请求的数据转化为需要的格式
+ // transformData(list, parentId) {
+ // //先将数据转化为固定的格式
+ // let newList = []
+ // for (let i = 0; i < list.length; i++) {
+ // let item = list[i]
+ // newList.push({
+ // id: item.id,
+ // name: item.realName,
+ // parentId: parentId,
+ // checked: false,
+ // isPeople: true,
+ // userType: item.userType,
+ // gender: item.gender,
+ // children: []
+ // })
+ // }
+ // return newList;
+ // },
+
+ //将当前列表挂载在原数据树上, 目前支持5层目录,如需更多接着往下写就好
+ addList2DataTree() {
+ let currentList = this.data.currentList;
+ let originalList = this.data.originalList;
+ let indexes = this.data.indexList
+ switch (indexes.length) {
+ case 1:
+ originalList[indexes[0]].children = currentList
+ break;
+ case 2:
+ originalList[indexes[0]].children[indexes[1]].children = currentList
+ break;
+ case 3:
+ originalList[indexes[0]].children[indexes[1]].children[indexes[2]].children = currentList
+ break;
+ case 4:
+ originalList[indexes[0]].children[indexes[1]].children[indexes[2]].children[indexes[3]].children = currentList
+ break;
+ case 5:
+ originalList[indexes[0]].children[indexes[1]].children[indexes[2]].children[indexes[3]].children[indexes[4]].children = currentList
+ break;
+ case 6:
+ originalList[indexes[0]].children[indexes[1]].children[indexes[2]].children[indexes[3]].children[indexes[4]].children[indexes[5]].children = currentList
+ break;
+ }
+
+ this.setData({
+ originalList: originalList
+ })
+ console.log("originalList", originalList)
+ },
+
+ //选框变化回调
+ checkChange(res) {
+ console.log(res)
+ let values = res.detail.value
+ let selectItems = []
+ //将值取出拼接成 id,name 格式
+ values.forEach(value => {
+ let arrs = value.split(",")
+ selectItems.push({ id: arrs[0], name: arrs[1] })
+ })
+ console.log("selectItems", selectItems)
+ console.log("lastTimeSelect", this.lastTimeSelect)
+
+ //将本次选择的与上次选择的比对,本次比上次多说明新增了,本次比上次少说明删除了,找出被删除的那条数据,在footer中也删除
+ if (selectItems.length > this.lastTimeSelect.length) {
+ //将 selectList 与 selectItems 拼接并去重
+ let newList = this.data.selectList.concat(selectItems)
+ newList = ArrayUtils.checkRepeat(newList)
+ this.setData({
+ selectList: newList
+ })
+ } else {
+ //找出取消勾选的item,从selectList中删除
+ //比对出取消勾选的是哪个元素
+ let diffItem = {}
+ this.lastTimeSelect.forEach(item => {
+ let flag = false;
+ selectItems.forEach(item2 => {
+ if (item.id === item2.id) {
+ flag = true
+ }
+ })
+ if (!flag) {
+ diffItem = item
+ console.log("diff=", item)
+ }
+ })
+ //找出被删除的元素在 selectList 中的位置
+ let list = this.data.selectList
+ let delIndex = 0;
+ for (let i = 0; i < list.length; i++) {
+ if (list[i].id === diffItem.id) {
+ delIndex = i;
+ break;
+ }
+ }
+ //从list中删除这个元素
+ list.splice(delIndex, 1)
+ this.setData({
+ selectList: list
+ })
+ }
+ console.log("selectList", this.data.selectList)
+ //更新 currentList 选中状态并重新挂载在数据树上,以保存选择状态
+ this.updateCurrentList(this.data.currentList, this.data.selectList)
+ },
+
+ //footer点击删除回调
+ footerDelete(res) {
+ console.log(res)
+ this.setData({
+ selectList: res.detail.selectList
+ })
+
+ console.log('selectList', this.data.selectList)
+ this.updateCurrentList(this.data.currentList, res.detail.selectList)
+ },
+
+ //点击 footer 的确定按钮提交数据
+ submitData(res) {
+ let selectList = this.data.selectList
+ //通过 WxNotificationCenter 发送选择的结果通知
+ //EventBus.postNotificationName("SelectPeopleDone", selectList)
+ //将选择结果存入 app.js 的 globalData
+ getApp().globalData.selectList = selectList
+ wx.setStorage({
+ key: 'questioncats',
+ data: selectList,
+ success: function(res) {},
+ fail: function(res) {},
+ complete: function(res) {},
+ })
+ //返回
+ wx.navigateBack({
+ delta: 1
+ })
+ console.log("selectdone", selectList)
+ },
+
+ //更新 currentList 并将更新后的列表挂载在数据树上
+ updateCurrentList(currentList, selectList) {
+ //let newList = []
+ let selectids = []
+ for (var i = 0; i < selectList.length; i++) {
+ selectids.push(selectList[i]['id'])
+ }
+ for (var i = 0; i < currentList.length; i++) {
+ if (selectids.indexOf(currentList[i]['id'].toString()) >= 0) {
+ currentList[i]['checked'] = true
+ } else {
+ currentList[i]['checked'] = false
+ }
+ }
+ console.log(currentList)
+ this.setData({
+ currentList: currentList
+ })
+ this.addList2DataTree()
+ this.setLastTimeSelectList()
+ }
+})
+function convert(rows) {
+ function exists(rows, parentId) {
+ for (var i = 0; i < rows.length; i++) {
+ if (rows[i].id == parentId) return true;
+ }
+ return false;
+ }
+
+ var nodes = [];
+ // get the top level nodes
+ for (var i = 0; i < rows.length; i++) {
+ var row = rows[i];
+ if (!exists(rows, row.parentId)) {
+ nodes.push({
+ id: row.id,
+ parentId: 0,
+ name: row.name,
+ checked:false,
+ children:[]
+ });
+ }
+ }
+
+ var toDo = [];
+ for (var i = 0; i < nodes.length; i++) {
+ toDo.push(nodes[i]);
+ }
+ while (toDo.length) {
+ var node = toDo.shift(); // the parent node
+ // get the children nodes
+ for (var i = 0; i < rows.length; i++) {
+ var row = rows[i];
+ if (row.parentId == node.id) {
+ var child = { id: row.id, name: row.name,parentId:row.parentId,checked:false,children:[] };
+ if (node.children) {
+ node.children.push(child);
+ } else {
+ node.children = [child];
+ }
+ toDo.push(child);
+ }
+ }
+ }
+ return nodes;
+}
\ No newline at end of file
diff --git a/pages/questioncat/index.json b/pages/questioncat/index.json
new file mode 100644
index 0000000..59e4727
--- /dev/null
+++ b/pages/questioncat/index.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {
+ "footer": "/components/footer/footer"
+ }
+}
\ No newline at end of file
diff --git a/pages/questioncat/index.wxml b/pages/questioncat/index.wxml
new file mode 100644
index 0000000..fbf3e97
--- /dev/null
+++ b/pages/questioncat/index.wxml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+ 暂无数据
+
+
+
+
\ No newline at end of file
diff --git a/pages/questioncat/index.wxss b/pages/questioncat/index.wxss
new file mode 100644
index 0000000..420660c
--- /dev/null
+++ b/pages/questioncat/index.wxss
@@ -0,0 +1,82 @@
+.container {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ padding: 20rpx;
+ overflow-x: hidden;
+ box-sizing: border-box;
+ background-color: #fff;
+}
+
+.btn-wrapper {
+ width: 100%;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.btn {
+ font-size: 24rpx;
+ width: 100%;
+}
+
+.people-wrapper {
+ width: 100%;
+ margin-top: 10rpx;
+ margin-bottom: 100rpx;
+}
+
+.scrollview {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+}
+
+.item {
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ padding: 30rpx 0;
+ margin: 0 20rpx;
+ border-bottom: 1rpx solid rgba(7, 17, 27, 0.1);
+}
+
+.item-content {
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ margin-left: 20rpx;
+}
+
+.itemtext {
+ font-size: 36rpx;
+ color: #333;
+ margin-left: 20rpx;
+ text-align: center;
+}
+
+.img {
+ width: 50rpx;
+ height: 40rpx;
+}
+
+.avatar {
+ width: 50rpx;
+ height: 50rpx;
+}
+
+.footer {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+}
+
+.no-data {
+ width: 100%;
+ font-size: 32rpx;
+ text-align: center;
+ padding: 40rpx 0;
+}
diff --git a/pages/safecert/detail.js b/pages/safecert/detail.js
new file mode 100644
index 0000000..8e75452
--- /dev/null
+++ b/pages/safecert/detail.js
@@ -0,0 +1,87 @@
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ serverUrl: getApp().globalData.serverUrl
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.getsafecertdetail(options.id);
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ getsafecertdetail: function (id) {
+ wx.showLoading({
+ title: '加载中',
+ }),
+ wx.request({
+ url: this.data.serverUrl + 'api/safecert?a=detail&id=' + id,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {
+ },
+ success: res => {
+ wx.hideLoading();
+ console.log(res.data);
+ if (res.statusCode === 200) {
+ var data = res.data
+ this.setData(data)
+ }
+ }
+ });
+ },
+})
\ No newline at end of file
diff --git a/pages/safecert/detail.json b/pages/safecert/detail.json
new file mode 100644
index 0000000..484a89f
--- /dev/null
+++ b/pages/safecert/detail.json
@@ -0,0 +1,3 @@
+{
+ "navigationBarTitleText": "详情"
+}
\ No newline at end of file
diff --git a/pages/safecert/detail.wxml b/pages/safecert/detail.wxml
new file mode 100644
index 0000000..64e55cd
--- /dev/null
+++ b/pages/safecert/detail.wxml
@@ -0,0 +1,72 @@
+
+ 证书详情
+
+
+
+ 姓名
+
+
+ {{realname}}
+
+
+
+
+ 性别
+
+
+ {{gender}}
+
+
+
+
+ 资格类型
+
+
+ {{zglx}}
+
+
+
+
+ 单位类型
+
+
+ {{dwlx}}
+
+
+
+
+ 发证机关
+
+
+ {{fzjg}}
+
+
+
+
+ 应复审日期
+
+
+ {{yfsrq}}
+
+
+
+
+ 有效期开始时间
+
+
+ {{yxqkssj}}
+
+
+
+
+ 有效期结束时间
+
+
+ {{yxqjssj}}
+
+
+
+
+
+
+
diff --git a/pages/safecert/detail.wxss b/pages/safecert/detail.wxss
new file mode 100644
index 0000000..b6e4203
--- /dev/null
+++ b/pages/safecert/detail.wxss
@@ -0,0 +1 @@
+/* pages/safecert/detail.wxss */
\ No newline at end of file
diff --git a/pages/safecert/index.js b/pages/safecert/index.js
new file mode 100644
index 0000000..68fcf5d
--- /dev/null
+++ b/pages/safecert/index.js
@@ -0,0 +1,170 @@
+// pages/safecert/safecert.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ var that = this;
+ that.getsafecertlist()
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ },
+ getsafecertlist: function () {
+ wx.showLoading({ title: '加载中', }),
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/user?a=detailself',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ method: 'GET',
+ data: {},
+ success: res => {
+ wx.hideLoading();
+ if (res.statusCode === 200) {
+ if (res.data['userprofile__cardnum'] == null || res.data['userprofile__realname'] == null | res.data['userprofile__cardnum'] == '' || res.data['userprofile__realname'] == '') {
+ wx.showModal({
+ title: '系统提示',
+ content: '个人信息管理里身份证等信息缺失,无法查询,是否去完善?',
+ confirmText: "确定",
+ cancelText: "取消",
+ success: function (res) {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '../user/userdetail',
+ })
+ } else {
+ wx.navigateBack({
+
+ })
+ }
+ }
+ })
+ }
+ else {
+ wx.showLoading({ title: '查询中', }),
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/safecert?a=listself',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ success: res => {
+ if (res.statusCode === 200) {
+ //console.log(res.data)
+ this.setData({
+ total: res.data.total,
+ safecertlist: res.data.rows
+ })
+ }
+ if (res.data.total == 0) {
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/safecert?a=addspiderself',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ method: 'GET',
+ data: {},
+ success: res => {
+ wx.hideLoading();
+ if (res.statusCode === 200) {
+ wx.request({
+ url: getApp().globalData.serverUrl + 'api/safecert?a=listself',
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ success: res => {
+ if (res.statusCode === 200) {
+ //console.log(res.data)
+ this.setData({
+ total: res.data.total,
+ safecertlist: res.data.rows
+ })
+ }
+ if (res.data.total == 0) {
+ wx.showModal({
+ title: '系统提示',
+ content: '联网查询无证书,是否个人信息有误!',
+ confirmText: "是",
+ cancelText: "算了",
+ success: function (res) {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '../user/userdetail',
+ })
+ }
+ }
+ })
+ }
+ }
+ });
+ }
+ }
+ });
+
+ } else {
+ wx.hideLoading();
+ }
+ }
+ });
+ }
+ }
+ }
+ });
+
+ },
+})
\ No newline at end of file
diff --git a/pages/safecert/index.json b/pages/safecert/index.json
new file mode 100644
index 0000000..8c7237a
--- /dev/null
+++ b/pages/safecert/index.json
@@ -0,0 +1,5 @@
+{
+ "navigationBarTitleText": "资格证书",
+ "enablePullDownRefresh": true,
+ "onReachBottomDistance": 50
+}
\ No newline at end of file
diff --git a/pages/safecert/index.wxml b/pages/safecert/index.wxml
new file mode 100644
index 0000000..1807e75
--- /dev/null
+++ b/pages/safecert/index.wxml
@@ -0,0 +1,15 @@
+
+
+ 共{{total}}张证书
+
+
+
+
+ {{item.zglx}} {{item.dwlx}}
+ 有效期结束日期 {{item.yxqjssj}}
+ {{item.fzjg}}
+
+
+
+
+
diff --git a/pages/safecert/index.wxss b/pages/safecert/index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/pages/suggest/add.js b/pages/suggest/add.js
index 0451e5c..fca4bfe 100644
--- a/pages/suggest/add.js
+++ b/pages/suggest/add.js
@@ -9,6 +9,7 @@ Page({
dqxz:'',
jynr:'',
qwxg:'',
+ jylb:0,
serverUrl: getApp().globalData.serverUrl,
},
ohShitfadeOut() {
@@ -49,7 +50,12 @@ Page({
popErrorMsg: '请输入建议内容!',
});
this.ohShitfadeOut();
- } else if (that.data.qwxg == '') {
+ } else if (that.data.jylb == 0) {
+ this.setData({
+ popErrorMsg: '请选择建议类别!',
+ });
+ this.ohShitfadeOut();
+ }else if (that.data.qwxg == '') {
this.setData({
popErrorMsg: '请输入期望效果!',
});
diff --git a/pages/train/add.js b/pages/train/add.js
index 446b3d4..dc72c3e 100644
--- a/pages/train/add.js
+++ b/pages/train/add.js
@@ -285,6 +285,7 @@ Page({
participantnum: this.data.cjrs,
duration: this.data.pxsc
}
+
wx.showModal({
title: '系统提示',
content: '确认提交将发送培训通知!',
@@ -292,6 +293,9 @@ Page({
cancelText: "取消",
success: function (res) {
if (res.confirm) {
+ wx.showLoading({
+ title: '正在发布...',
+ })
wx.request({
url: getApp().globalData.serverUrl + 'addtrain',
header: {
diff --git a/pages/train/check.js b/pages/train/check.js
new file mode 100644
index 0000000..f7f20b7
--- /dev/null
+++ b/pages/train/check.js
@@ -0,0 +1,152 @@
+// pages/bind/binduser.js
+var util = require('../../utils/util.js')
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ // let pxid = options.pxid
+ console.log(options)
+ let pxid
+ if(options.pxid){
+ pxid = options.pxid
+ this.setData({
+ pxid: pxid,
+ isfrom:1
+ })
+ }else{
+ let q = decodeURIComponent(options.q)
+
+ if (q) {
+ // console.log("index 生命周期 onload url=" + q)
+ // console.log("index 生命周期 onload 参数 trainid=" + util.getQueryString(q, 'trainid'))
+ pxid = util.getQueryString(q, 'trainid')
+ this.setData({
+ pxid: pxid,
+ isfrom: 0
+ })
+ }
+ }
+
+ console.log(pxid)
+
+ this.getPx(pxid)
+ },
+ getPx: function (id) {
+ wx.showLoading({
+ title: '加载中',
+ }),
+ wx.request({
+ url: getApp().globalData.serverUrl + 'pxhandle?a=detail&trainid=' + id,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {},
+ success: res => {
+ wx.hideLoading();
+ if (res.statusCode === 200) {
+ var pxdata = res.data
+ if (pxdata.starttime != '') { pxdata.starttime = util.formatTime(new Date(pxdata.starttime)) }
+ this.setData(pxdata)
+ if(pxdata.state==1){
+ this.setData({
+ disabled:true
+ })
+ }
+ //console.log(this.data.yhzt)
+ }
+ }
+ });
+ },
+ checkconfirm:function(){
+ wx.request({
+ url: getApp().globalData.serverUrl + 'pxhandle?a=check&trainid=' + this.data.pxid,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {},
+ success: res => {
+ wx.hideLoading();
+ if (res.statusCode === 200) {
+ if(this.data.isfrom==1){
+ wx.showToast({
+ title: '签到成功',
+ icon: 'success',
+ duration: 2000
+ })
+ wx.navigateBack()
+ }else{
+ wx.showToast({
+ title: '签到成功!',
+ })
+ wx.navigateTo({
+ url: '../train/train',
+ })
+ }
+
+
+ //console.log(this.data.yhzt)
+ }
+ }
+ });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/train/check.json b/pages/train/check.json
new file mode 100644
index 0000000..f5b85aa
--- /dev/null
+++ b/pages/train/check.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "签到"
+}
\ No newline at end of file
diff --git a/pages/train/check.wxml b/pages/train/check.wxml
new file mode 100644
index 0000000..9f8c0c4
--- /dev/null
+++ b/pages/train/check.wxml
@@ -0,0 +1,47 @@
+
+
+ 培训签到
+
+
+ 培训详情
+
+
+
+ 名称
+
+
+ {{trainname}}
+
+
+
+
+ 时间
+
+
+ {{starttime}}
+
+
+
+
+ 地点
+
+
+ {{trainplace}}
+
+
+
+
+ 授课人
+
+
+ {{lecturer__name}}
+
+
+ {{teacher}}
+
+
+
+
+ 该培训已关闭,不能签到
+
+
diff --git a/pages/train/check.wxss b/pages/train/check.wxss
new file mode 100644
index 0000000..78fee0c
--- /dev/null
+++ b/pages/train/check.wxss
@@ -0,0 +1,5 @@
+/* pages/bind/binduser.wxss */
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
\ No newline at end of file
diff --git a/pages/train/detail.js b/pages/train/detail.js
new file mode 100644
index 0000000..204f8ae
--- /dev/null
+++ b/pages/train/detail.js
@@ -0,0 +1,148 @@
+//var base64 = require("../images/base64");
+var sliderWidth = 96;
+var util = require('../../utils/util.js')
+Page({
+ data: {
+ serverUrl: getApp().globalData.serverUrl,
+ tabs: ["培训内容", "参加人员"],
+ activeIndex: 0,
+ sliderOffset: 0,
+ sliderLeft: 0
+ },
+ tabClick: function (e) {
+ var that = this
+ that.setData({
+ sliderOffset: e.currentTarget.offsetLeft,
+ activeIndex: e.currentTarget.id
+ });
+ },
+ openfj: function (e) {
+ var that = this
+ let fileurl = that.data.serverUrl + e.currentTarget.dataset.id
+ wx.showLoading({
+ title: '正在下载...',
+ })
+ wx.downloadFile({
+ url: fileurl,
+ success(res) {
+ wx.showLoading({
+ title: '成功,正在打开...',
+ })
+ const filePath = res.tempFilePath
+ console.log(filePath)
+ var filetype
+ let tpurls = []
+ if (fileurl.indexOf(".docx") != -1) {
+ filetype = 'docx'
+ }
+ else if (fileurl.indexOf(".xlsx") != -1) {
+ filetype = 'xlsx'
+ }
+ else if (fileurl.indexOf(".xls") != -1) {
+ filetype = 'xls'
+ }
+ else if (fileurl.indexOf(".pptx") != -1) {
+ filetype = 'pptx'
+ }
+ else if (fileurl.indexOf(".ppt") != -1) {
+ filetype = 'ppt'
+ }
+ else if (fileurl.indexOf(".pdf") != -1) {
+ filetype = 'pdf'
+ }
+ else if (fileurl.indexOf(".png") != -1) {
+ filetype = 'tp'
+ tpurls.push(filePath)
+
+ }
+ else if (fileurl.indexOf(".jpg") != -1) {
+ filetype = 'tp'
+ tpurls.push(filePath)
+ }
+ that.openit(filePath, filetype, tpurls)
+ }
+ })
+ },
+ openit: function (filePath, filetype, tpurls){
+ wx.hideLoading()
+ if(filetype == 'tp'){
+ wx.previewImage({
+ urls: tpurls,
+ })
+ }else{
+ wx.openDocument({
+ filePath,
+ fileType: filetype,
+ success(res) {
+ console.log('打开文档成功')
+ }, fail: function (e) {
+ console.log(e)
+ }
+ })
+ }
+
+ },
+ onLoad: function (options) {
+ // this.setData({
+ // icon: base64.icon20
+ // });
+ var that = this;
+ wx.getSystemInfo({
+ success: function (res) {
+ that.setData({
+ sliderLeft: (res.windowWidth / that.data.tabs.length - sliderWidth) / 2,
+ sliderOffset: res.windowWidth / that.data.tabs.length * that.data.activeIndex
+ });
+ }
+ });
+ console.log(options.trainid)
+ that.getPx(options.trainid)
+ },
+ onShow: function () {
+ },
+ onPullDownRefresh: function () {
+
+ },
+ onReachBottom: function () {
+ //上拉分页,将页码加1,然后调用分页函数
+ },
+ getPx: function (id) {
+ wx.showLoading({
+ title: '加载中',
+ }),
+ wx.request({
+ url: this.data.serverUrl + 'pxhandle?a=detail&trainid=' + id,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {},
+ success: res => {
+ wx.hideLoading();
+ if (res.statusCode === 200) {
+ var pxdata = res.data
+ if (pxdata.starttime != '') { pxdata.starttime = util.formatTime(new Date(pxdata.starttime)) }
+ for (var i = 0; i < pxdata.cjrydetail.length; i++) {
+ let qdsj = pxdata.cjrydetail[i].qdsj
+ if (qdsj != null)
+ { pxdata.cjrydetail[i].qdsj = util.formatTime(new Date(qdsj));}
+
+ }
+ let material = []
+ for (var i = 0, len = pxdata.material.length; i < len; i++) {
+ let x = {}
+ x['name'] = pxdata.material[i].split('_').pop();
+ x['value'] = pxdata.material[i]
+ material.push(x)
+ }
+ pxdata.material = material
+ pxdata.matershow = material[0].name
+ console.log(pxdata.material)
+ this.setData(pxdata)
+
+ //console.log(this.data.yhzt)
+ }
+ }
+ });
+ },
+});
\ No newline at end of file
diff --git a/pages/train/detail.json b/pages/train/detail.json
new file mode 100644
index 0000000..2e11221
--- /dev/null
+++ b/pages/train/detail.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "培训详情"
+}
\ No newline at end of file
diff --git a/pages/train/detail.wxml b/pages/train/detail.wxml
new file mode 100644
index 0000000..c6d286d
--- /dev/null
+++ b/pages/train/detail.wxml
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+
+ 当前状态
+
+ 已关闭
+ 待评估
+
+
+
+ 培训时间
+
+
+ {{starttime}}
+
+
+
+
+ 培训地点
+
+
+ {{trainplace}}
+
+
+
+
+ 培训名称
+
+
+ {{trainname}}
+
+
+
+
+ 培训类型
+
+
+ {{traintype__dickeyname}}
+
+
+
+
+ 人员类型
+
+
+ {{manlevel__dickeyname}}
+
+
+
+
+ 培训级别
+
+
+ {{trainlevel__dicname}}
+
+
+
+
+ 培训内容
+
+
+ {{traincontent__dickeyname}}
+
+
+
+
+ 具体内容
+
+ {{detailcontent}}
+
+
+
+
+
+ 培训部门
+
+
+ {{trainpart}}
+
+
+
+
+ 授课人
+
+
+ {{lecturer__name}}
+
+
+ {{teacher}}
+
+
+
+
+ 培训时长
+
+
+ {{duration}}小时
+
+
+
+ 评估详情
+
+
+
+ 参加人数
+
+ {{participantnum}}
+
+
+
+ 掌握人数
+
+
+ {{knownum}}
+
+
+
+ 附件列表
+
+
+ {{index+1}}——{{item.name}}
+
+
+
+
+
+
+
+
+ {{item.participant__name}}
+ {{item.participant__ubelongpart__partname}}
+
+
+ 未签到
+
+
+
+ 已签到
+ {{item.qdsj}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/train/detail.wxss b/pages/train/detail.wxss
new file mode 100644
index 0000000..6d7ae6e
--- /dev/null
+++ b/pages/train/detail.wxss
@@ -0,0 +1,13 @@
+.weui-btn{
+ width:auto;
+ margin: 5px;
+}
+.container {
+ background-color: #fff;
+ color: #939393;
+}
+.head{
+ color:#fff;
+ background-color: cornflowerblue;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/pages/train/qrcode.js b/pages/train/qrcode.js
new file mode 100644
index 0000000..fea0a1c
--- /dev/null
+++ b/pages/train/qrcode.js
@@ -0,0 +1,112 @@
+// pages/bind/binduser.js
+var util = require('../../utils/util.js')
+import drawQrcode from '../../utils/weapp.qrcode.esm.js'
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ let pxid = options.pxid
+ this.setData({
+ pxid: pxid
+ })
+ this.getPx(pxid)
+ let text = 'https://safeyun.ctcshe.com/miniprogram/checktrain?trainid=' + pxid
+ console.log(text)
+ drawQrcode({
+ width: 200,
+ height: 200,
+ canvasId: 'qdQrcode',
+ // ctx: wx.createCanvasContext('myQrcode'),
+ text: text,
+ // v1.0.0+版本支持在二维码上绘制图片
+ // image: {
+ // imageResource: '../../images/icon.png',
+ // dx: 70,
+ // dy: 70,
+ // dWidth: 60,
+ // dHeight: 60
+ // }
+ })
+ },
+ getPx: function (id) {
+ wx.showLoading({
+ title: '加载中',
+ }),
+ wx.request({
+ url: getApp().globalData.serverUrl + 'pxhandle?a=detail&trainid=' + id,
+ header: {
+ 'content-type': 'application/json', // 默认值
+ 'Cookie': wx.getStorageSync("sessionid"),
+ },
+ data: {},
+ success: res => {
+ wx.hideLoading();
+ if (res.statusCode === 200) {
+ var pxdata = res.data
+ if (pxdata.starttime != '') { pxdata.starttime = util.formatTime(new Date(pxdata.starttime)) }
+ this.setData(pxdata)
+
+ //console.log(this.data.yhzt)
+ }
+ }
+ });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/train/qrcode.json b/pages/train/qrcode.json
new file mode 100644
index 0000000..4742dff
--- /dev/null
+++ b/pages/train/qrcode.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "签到二维码"
+}
\ No newline at end of file
diff --git a/pages/train/qrcode.wxml b/pages/train/qrcode.wxml
new file mode 100644
index 0000000..165c158
--- /dev/null
+++ b/pages/train/qrcode.wxml
@@ -0,0 +1,51 @@
+
+
+ 签到二维码
+ 请在培训开始前展示给参加人员扫码
+
+
+
+
+
+
+
+
+ 名称
+
+
+ {{trainname}}
+
+
+
+
+ 时间
+
+
+ {{starttime}}
+
+
+
+
+ 地点
+
+
+ {{trainplace}}
+
+
+
+
+ 授课人
+
+
+ {{lecturer__name}}
+
+
+ {{teacher}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/train/qrcode.wxss b/pages/train/qrcode.wxss
new file mode 100644
index 0000000..25eaf44
--- /dev/null
+++ b/pages/train/qrcode.wxss
@@ -0,0 +1,4 @@
+.qrcode{
+ display:flex;
+ justify-content: center;
+ }
\ No newline at end of file
diff --git a/pages/train/train.js b/pages/train/train.js
index f790ce5..f4ab65a 100644
--- a/pages/train/train.js
+++ b/pages/train/train.js
@@ -1,11 +1,12 @@
//var base64 = require("../images/base64");
var sliderWidth = 96;
+var util = require('../../utils/util.js')
Page({
data: {
page: 1,
serverUrl: getApp().globalData.serverUrl,
allpxlist: [],
- tabs: ["我发起的", "我参加的", "全部"],
+ tabs: ["我发布的", "我参加的", "全部"],
activeIndex: 1,
sliderOffset: 0,
sliderLeft: 0
@@ -237,5 +238,17 @@ Page({
url: 'add',
})
- }
+ },
+ check:function(){
+ wx.scanCode({
+ onlyFromCamera: true,
+ success(res) {
+ console.log(res)
+ let pxid = util.getQueryString(res.result, 'trainid')
+ wx.navigateTo({
+ url: 'check?pxid='+pxid,
+ })
+ }
+ })
+ },
});
\ No newline at end of file
diff --git a/pages/train/train.wxml b/pages/train/train.wxml
index 60210af..6869636 100644
--- a/pages/train/train.wxml
+++ b/pages/train/train.wxml
@@ -1,91 +1,104 @@
-
-
-
-
-
-
- {{item}}
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+ 共{{fqtotal}}条线下培训
+
+
+
+
+
+
+ {{item.trainname}}
+
+ {{item.trainnum}} {{item.lecturer__name}}授课
+ {{item.trainnum}} {{item.teacher}}授课
+ {{item.trainplace}}-{{item.starttime}}
+
+
+
+
+ 待评估
+ 已关闭
+
+
+
+
+
+
+
+
-
-
-
-
- 共{{fqtotal}}条线下培训
-
-
-
-
- {{item.trainname}}
-
- {{item.trainnum}} {{item.lecturer__name}}授课
- {{item.trainnum}} {{item.teacher}}授课
- {{item.trainplace}}-{{item.starttime}}
-
-
- 已关闭
- 待评估
-
-
-
-
-
-
-
-
-
-
-
- 共{{cjtotal}}条线下培训
-
-
-
-
- {{item.train__trainname}}
-
- {{item.train__trainnum}} {{item.train__lecturer__name}}授课
- {{item.train__trainnum}} {{item.train__teacher}}授课
- {{item.train__trainplace}}-{{item.train__starttime}}
-
-
- 已签到
- 未签到
-
-
-
-
-
-
-
-
- 共{{alltotal}}条线下培训
-
-
-
-
- {{item.trainname}}
-
- {{item.trainnum}} {{item.lecturer__name}}授课
- {{item.trainnum}} {{item.teacher}}授课
- {{item.trainplace}}-{{item.starttime}}
-
-
- 已关闭
- 待评估
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/trouble/trouble.js b/pages/trouble/trouble.js
index ca90312..9e90cc1 100644
--- a/pages/trouble/trouble.js
+++ b/pages/trouble/trouble.js
@@ -44,11 +44,19 @@ Page({
success: res => {
if (res.statusCode === 200) {
if(res.data.rows.length==0){
- wx.showModal({
- content: "已经到底啦!",
- showCancel: false,
- confirmText: "确定",
- })
+ if (page == 1) {
+ this.setData({
+ alltotal: 0,
+ allyhlist: []
+ })
+ }
+ else {
+ wx.showModal({
+ content: "已经到底啦!",
+ showCancel: false,
+ confirmText: "确定",
+ })
+ }
}else{
let list
if(page==1){
@@ -81,11 +89,19 @@ Page({
success: res => {
if (res.statusCode === 200) {
if (res.data.rows.length == 0) {
- wx.showModal({
- content: "已经到底啦!",
- showCancel: false,
- confirmText: "确定",
- })
+ if (page == 1) {
+ this.setData({
+ mytotal: 0,
+ myyhlist: []
+ })
+ }
+ else {
+ wx.showModal({
+ content: "已经到底啦!",
+ showCancel: false,
+ confirmText: "确定",
+ })
+ }
} else {
let list
if (page == 1) {
@@ -118,11 +134,19 @@ Page({
success: res => {
if (res.statusCode === 200) {
if (res.data.rows.length == 0) {
- wx.showModal({
- content: "已经到底啦!",
- showCancel: false,
- confirmText: "确定",
- })
+ if (page == 1) {
+ this.setData({
+ todototal: 0,
+ todoyhlist: []
+ })
+ }
+ else {
+ wx.showModal({
+ content: "已经到底啦!",
+ showCancel: false,
+ confirmText: "确定",
+ })
+ }
} else {
let list
if (page == 1) {
@@ -205,4 +229,9 @@ Page({
this.getallYhlist();
}
},
+ add:function(){
+ wx.navigateTo({
+ url: 'addtrouble',
+ })
+ }
});
\ No newline at end of file
diff --git a/pages/trouble/trouble.wxml b/pages/trouble/trouble.wxml
index 513f8b9..f7c9663 100644
--- a/pages/trouble/trouble.wxml
+++ b/pages/trouble/trouble.wxml
@@ -1,108 +1,105 @@
-
-
-
-
-
-
- {{item}}
-
-
-
-
-
-
-
- 共{{mytotal}}条事故隐患
-
-
-
-
- {{item.yhdj__dickeyname}}
- {{item.yhlb__dickeyname}}
-
- {{item.yhnum}} {{item.fxr__name}}填报
- {{item.tbsj}}
+
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+ 共{{mytotal}}条事故隐患
+
+
+
+
+ {{item.yhdj__dickeyname}}
+ {{item.yhlb__dickeyname}}
-
- 措施/方案待提交
- 待复查
- 待评估
- 待整改
- 已归档
- 措施/方案待确认
- 待审核
- 待新增
-
- {{item.todouser__name}}
-
+ {{item.yhnum}} {{item.fxr__name}}填报
+ {{item.tbsj}}
+
+
+ 措施/方案待提交
+ 待复查
+ 待评估
+ 待整改
+ 已归档
+ 措施/方案待确认
+ 待审核
+ 待新增
+
+ {{item.todouser__name}}
-
-
-
-
-
-
+
-
+
-
- 共{{todototal}}条隐患待处理
-
-
-
-
- {{item.yhdj__dickeyname}} {{item.yhlb__dickeyname}}
- {{item.yhnum}} {{item.fxr__name}}填报
- {{item.tbsj}}
+
+
+ 共{{todototal}}条隐患待处理
+
+
+
+
+ {{item.yhdj__dickeyname}}
+ {{item.yhlb__dickeyname}}
+
+ {{item.yhnum}} {{item.fxr__name}}填报
+ {{item.tbsj}}
+
+
+ 措施/方案待提交
+ 待复查
+ 待评估
+ 待整改
+ 已归档
+ 措施/方案待确认
+ 待审核
+ 待新增
+ {{item.todouser__name}}
+
+
+
-
- 措施/方案待提交
- 待复查
- 待评估
- 待整改
- 已归档
- 措施/方案待确认
- 待审核
- 待新增
- {{item.todouser__name}}
-
-
-
-
-
-
+
+
-
- 共{{alltotal}}条事故隐患
-
-
-
-
- {{item.yhdj__dickeyname}}
- {{item.yhlb__dickeyname}}
-
- {{item.yhnum}} {{item.fxr__name}}填报
- {{item.tbsj}}
+
+ 共{{alltotal}}条事故隐患
+
+
+
+
+ {{item.yhdj__dickeyname}}
+ {{item.yhlb__dickeyname}}
-
- 措施/方案待提交
- 待复查
- 待评估
- 待整改
- 已归档
- 措施/方案待确认
- 待审核
- 待新增
-
- {{item.todouser__name}}
-
+ {{item.yhnum}} {{item.fxr__name}}填报
+ {{item.tbsj}}
+
+
+ 措施/方案待提交
+ 待复查
+ 待评估
+ 待整改
+ 已归档
+ 措施/方案待确认
+ 待审核
+ 待新增
+
+ {{item.todouser__name}}
-
-
-
+
+
+
-
\ No newline at end of file
+
+
+
diff --git a/pages/trouble/trouble.wxss b/pages/trouble/trouble.wxss
index 028ca35..52bd8e3 100644
--- a/pages/trouble/trouble.wxss
+++ b/pages/trouble/trouble.wxss
@@ -11,4 +11,5 @@
background-color: cornflowerblue;
text-align: center;
}
+
diff --git a/pages/userSelect/userSelect.wxml b/pages/userSelect/userSelect.wxml
index 5fd6dd3..cf095bc 100644
--- a/pages/userSelect/userSelect.wxml
+++ b/pages/userSelect/userSelect.wxml
@@ -17,5 +17,6 @@
+
+
\ No newline at end of file
diff --git a/pages/userSelect/userSelect.wxss b/pages/userSelect/userSelect.wxss
index 1541436..dd04351 100644
--- a/pages/userSelect/userSelect.wxss
+++ b/pages/userSelect/userSelect.wxss
@@ -68,7 +68,7 @@
}
.footer {
- position: absolute;
+ position: fixed;
left: 0;
bottom: 0;
width: 100%;
diff --git a/project.config.json b/project.config.json
index ad4a225..160d9d6 100644
--- a/project.config.json
+++ b/project.config.json
@@ -12,6 +12,8 @@
"appid": "wx5c39b569f01c27db",
"projectname": "aqyj",
"isGameTourist": false,
+ "simulatorType": "wechat",
+ "simulatorPluginLibVersion": {},
"condition": {
"search": {
"current": -1,
diff --git a/sitemap.json b/sitemap.json
new file mode 100644
index 0000000..ca02add
--- /dev/null
+++ b/sitemap.json
@@ -0,0 +1,7 @@
+{
+ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+ "rules": [{
+ "action": "allow",
+ "page": "*"
+ }]
+}
\ No newline at end of file
diff --git a/utils/util.js b/utils/util.js
index 771ee82..c28fcb7 100644
--- a/utils/util.js
+++ b/utils/util.js
@@ -8,13 +8,30 @@ const formatTime = date => {
return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
+const formatTime2 = date => {
+ const year = date.getFullYear()
+ const month = date.getMonth() + 1
+ const day = date.getDate()
+ const hour = date.getHours()
+ const minute = date.getMinutes()
+ return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute].map(formatNumber).join(':')
+}
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
}
-module.exports = {
- formatTime: formatTime,
-}
-
+let getQueryString = function (url, name) {
+ console.log("url = " + url)
+ console.log("name = " + name)
+ var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
+ var r = url.substr(1).match(reg)
+ if (r != null) { console.log("r = " + r)
+ console.log("r[2] = " + r[2])
+ return r[2] } return null; }
+ module.exports = {
+ getQueryString: getQueryString,
+ formatTime: formatTime,
+ formatTime2:formatTime2
+ }
diff --git a/utils/weapp.qrcode.esm.js b/utils/weapp.qrcode.esm.js
new file mode 100644
index 0000000..5613f25
--- /dev/null
+++ b/utils/weapp.qrcode.esm.js
@@ -0,0 +1,5 @@
+/**
+ * weapp.qrcode.js v1.0.0 (https://github.com/yingye/weapp-qrcode#readme)
+ */
+
+var hasOwn=Object.prototype.hasOwnProperty,toStr=Object.prototype.toString,defineProperty=Object.defineProperty,gOPD=Object.getOwnPropertyDescriptor,isArray=function(t){return"function"==typeof Array.isArray?Array.isArray(t):"[object Array]"===toStr.call(t)},isPlainObject=function(t){if(!t||"[object Object]"!==toStr.call(t))return!1;var e,r=hasOwn.call(t,"constructor"),o=t.constructor&&t.constructor.prototype&&hasOwn.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!r&&!o)return!1;for(e in t);return void 0===e||hasOwn.call(t,e)},setProperty=function(t,e){defineProperty&&"__proto__"===e.name?defineProperty(t,e.name,{enumerable:!0,configurable:!0,value:e.newValue,writable:!0}):t[e.name]=e.newValue},getProperty=function(t,e){if("__proto__"===e){if(!hasOwn.call(t,e))return;if(gOPD)return gOPD(t,e).value}return t[e]},extend=function t(){var e,r,o,n,i,a,s=arguments[0],u=1,l=arguments.length,h=!1;for("boolean"==typeof s&&(h=s,s=arguments[1]||{},u=2),(null==s||"object"!=typeof s&&"function"!=typeof s)&&(s={});u=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=QRCode.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,e)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=QRUtil.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r);this.make();for(var n=0;n>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;r<18;r++){o=!t&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o}},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=QRUtil.getBCHTypeInfo(r),n=0;n<15;n++){var i=!t&&1==(o>>n&1);n<6?this.modules[n][8]=i:n<8?this.modules[n+1][8]=i:this.modules[this.moduleCount-15+n][8]=i}for(n=0;n<15;n++){i=!t&&1==(o>>n&1);n<8?this.modules[8][this.moduleCount-n-1]=i:n<9?this.modules[8][15-n-1+1]=i:this.modules[8][15-n-1]=i}this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,n=7,i=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var u=!1;i>>n&1)),QRUtil.getMask(e,o,a-s)&&(u=!u),this.modules[o][a-s]=u,-1==--n&&(i++,n=7)}if((o+=r)<0||this.moduleCount<=o){o-=r,r=-r;break}}}},QRCode.PAD0=236,QRCode.PAD1=17,QRCode.createData=function(t,e,r){for(var o=QRRSBlock.getRSBlocks(t,e),n=new QRBitBuffer,i=0;i8*s)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*s+")");for(n.getLengthInBits()+4<=8*s&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*s||(n.put(QRCode.PAD0,8),n.getLengthInBits()>=8*s));)n.put(QRCode.PAD1,8);return QRCode.createBytes(n,o)},QRCode.createBytes=function(t,e){for(var r=0,o=0,n=0,i=new Array(e.length),a=new Array(e.length),s=0;s=0?g.get(c):0}}var d=0;for(h=0;h=0;)e^=QRUtil.G15<=0;)e^=QRUtil.G18<>>=1;return e},getPatternPosition:function(t){return QRUtil.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case QRMaskPattern.PATTERN000:return(e+r)%2==0;case QRMaskPattern.PATTERN001:return e%2==0;case QRMaskPattern.PATTERN010:return r%3==0;case QRMaskPattern.PATTERN011:return(e+r)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case QRMaskPattern.PATTERN101:return e*r%2+e*r%3==0;case QRMaskPattern.PATTERN110:return(e*r%2+e*r%3)%2==0;case QRMaskPattern.PATTERN111:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new QRPolynomial([1],0),r=0;r5&&(r+=3+i-5)}for(o=0;o=256;)t-=255;return QRMath.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},i=0;i<8;i++)QRMath.EXP_TABLE[i]=1<=1&&n<=127?e+=t.charAt(r):n>2047?(e+=String.fromCharCode(224|n>>12&15),e+=String.fromCharCode(128|n>>6&63),e+=String.fromCharCode(128|n>>0&63)):(e+=String.fromCharCode(192|n>>6&31),e+=String.fromCharCode(128|n>>0&63));return e}function drawQrcode(t){t=t||{},(t=extend(!0,{width:256,height:256,x:0,y:0,typeNumber:-1,correctLevel:QRErrorCorrectLevel.H,background:"#ffffff",foreground:"#000000",image:{imageResource:"",dx:0,dy:0,dWidth:100,dHeight:100}},t)).canvasId||t.ctx?function(){var e,r=new QRCode(t.typeNumber,t.correctLevel);r.addData(utf16to8(t.text)),r.make(),e=t.ctx?t.ctx:t._this?wx.createCanvasContext&&wx.createCanvasContext(t.canvasId,t._this):wx.createCanvasContext&&wx.createCanvasContext(t.canvasId);for(var o=t.width/r.getModuleCount(),n=t.height/r.getModuleCount(),i=0;i>>7-t%8&1)},put:function(t,e){for(var r=0;r>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};export default drawQrcode;
diff --git a/weui.wxss b/weui.wxss
index 3d6cfac..0bb5f6a 100644
--- a/weui.wxss
+++ b/weui.wxss
@@ -3,4 +3,4 @@
* Copyright 2017 Tencent, Inc.
* Licensed under the MIT license
*/
-page{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}icon{vertical-align:middle}.weui-cells{position:relative;margin-top:1.17647059em;background-color:#fff;line-height:1.41176471;font-size:17px}.weui-cells:before{top:0;border-top:1rpx solid #d9d9d9}.weui-cells:after,.weui-cells:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-cells:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-cells__title{margin-top:.77em;margin-bottom:.3em;padding-left:15px;padding-right:15px;color:#999;font-size:14px}.weui-cells_after-title{margin-top:0}.weui-cells__tips{margin-top:.3em;color:#999;padding-left:15px;padding-right:15px;font-size:14px}.weui-cell{padding:10px 15px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-cell:first-child:before{display:none}.weui-cell_active{background-color:#ececec}.weui-cell_primary{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.weui-cell__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-cell__ft{text-align:right;color:#999}.weui-cell_access{color:inherit}.weui-cell__ft_in-access{padding-right:13px;position:relative}.weui-cell__ft_in-access:after{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-4px;right:2px}.weui-cell_link{color:#586c94;font-size:14px}.weui-cell_link:active{background-color:#ececec}.weui-cell_link:first-child:before{display:block}.weui-icon-radio{margin-left:3.2px;margin-right:3.2px}.weui-icon-checkbox_circle,.weui-icon-checkbox_success{margin-left:4.6px;margin-right:4.6px}.weui-check__label:active{background-color:#ececec}.weui-check{position:absolute;left:-9999px}.weui-check__hd_in-checkbox{padding-right:.35em}.weui-cell__ft_in-radio{padding-left:.35em}.weui-cell_input{padding-top:0;padding-bottom:0}.weui-label{width:105px;word-wrap:break-word;word-break:break-all}.weui-input{height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em}.weui-toptips{position:fixed;-webkit-transform:translateZ(0);transform:translateZ(0);top:0;left:0;right:0;padding:5px;font-size:14px;text-align:center;color:#fff;z-index:5000;word-wrap:break-word;word-break:break-all}.weui-toptips_warn{background-color:#e64340}.weui-textarea{display:block;width:100%}.weui-textarea-counter{color:#b2b2b2;text-align:right}.weui-cell_warn,.weui-textarea-counter_warn{color:#e64340}.weui-form-preview{position:relative;background-color:#fff}.weui-form-preview:before{top:0;border-top:1rpx solid #d9d9d9}.weui-form-preview:after,.weui-form-preview:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-form-preview:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-form-preview__value{font-size:14px}.weui-form-preview__value_in-hd{font-size:26px}.weui-form-preview__hd{position:relative;padding:10px 15px;text-align:right;line-height:2.5em}.weui-form-preview__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-form-preview__bd{padding:10px 15px;font-size:.9em;text-align:right;color:#999;line-height:2}.weui-form-preview__ft{position:relative;line-height:50px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-form-preview__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__item{overflow:hidden}.weui-form-preview__label{float:left;margin-right:1em;min-width:4em;color:#999;text-align:justify;text-align-last:justify}.weui-form-preview__value{display:block;overflow:hidden;word-break:normal;word-wrap:break-word}.weui-form-preview__btn{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#3cc51f;text-align:center}.weui-form-preview__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__btn:first-child:after{display:none}.weui-form-preview__btn_active{background-color:#eee}.weui-form-preview__btn_default{color:#999}.weui-form-preview__btn_primary{color:#0bb20c}.weui-cell_select{padding:0}.weui-select{position:relative;padding-left:15px;padding-right:30px;height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em;border-right:1rpx solid #d9d9d9}.weui-select:before{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;right:15px;margin-top:-4px}.weui-select_in-select-after{padding-left:0}.weui-cell__bd_in-select-before,.weui-cell__hd_in-select-after{padding-left:15px}.weui-cell_vcode{padding-right:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:2.58823529em;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;border-left:1px solid #e5e5e5;line-height:2.58823529em;font-size:17px;color:#3cc51f;white-space:nowrap}.weui-vcode-btn:active{color:#52a341}.weui-cell_switch{padding-top:6px;padding-bottom:6px}.weui-uploader__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:10px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__title{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__info{color:#b2b2b2}.weui-uploader__bd{margin-bottom:-4px;margin-right:-9px;overflow:hidden}.weui-uploader__file{float:left;margin-right:9px;margin-bottom:9px}.weui-uploader__img{display:block;width:79px;height:79px}.weui-uploader__file_status{position:relative}.weui-uploader__file_status:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5)}.weui-uploader__file-content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#fff}.weui-uploader__input-box{float:left;position:relative;margin-right:9px;margin-bottom:9px;width:77px;height:77px;border:1px solid #d9d9d9}.weui-uploader__input-box:after,.weui-uploader__input-box:before{content:" ";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#d9d9d9}.weui-uploader__input-box:before{width:2px;height:39.5px}.weui-uploader__input-box:after{width:39.5px;height:2px}.weui-uploader__input-box:active{border-color:#999}.weui-uploader__input-box:active:after,.weui-uploader__input-box:active:before{background-color:#999}.weui-uploader__input{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0}.weui-article{padding:20px 15px;font-size:15px}.weui-article__section{margin-bottom:1.5em}.weui-article__h1{font-size:18px;font-weight:400;margin-bottom:.9em}.weui-article__h2{font-size:16px;font-weight:400;margin-bottom:.34em}.weui-article__h3{font-weight:400;font-size:15px;margin-bottom:.34em}.weui-article__p{margin:0 0 .8em}.weui-msg{padding-top:36px;text-align:center}.weui-msg__link{display:inline;color:#586c94}.weui-msg__icon-area{margin-bottom:30px}.weui-msg__text-area{margin-bottom:25px;padding:0 20px}.weui-msg__title{margin-bottom:5px;font-weight:400;font-size:20px}.weui-msg__desc{font-size:14px;color:#999}.weui-msg__opr-area{margin-bottom:25px}.weui-msg__extra-area{margin-bottom:15px;font-size:14px;color:#999}@media screen and (min-height:438px){.weui-msg__extra-area{position:fixed;left:0;bottom:0;width:100%;text-align:center}}.weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn{margin-top:15px}.weui-btn:first-child{margin-top:0}.weui-btn-area{margin:1.17647059em 15px .3em}.weui-agree{display:block;padding:.5em 15px;font-size:13px}.weui-agree__text{color:#999}.weui-agree__link{display:inline;color:#586c94}.weui-agree__checkbox{position:absolute;left:-9999px}.weui-agree__checkbox-icon{position:relative;top:2px;display:inline-block;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:11px;height:11px}.weui-agree__checkbox-icon-check{position:absolute;top:1px;left:1px}.weui-footer{color:#999;font-size:14px;text-align:center}.weui-footer_fixed-bottom{position:fixed;bottom:.52em;left:0;right:0}.weui-footer__links{font-size:0}.weui-footer__link{display:inline-block;vertical-align:top;margin:0 .62em;position:relative;font-size:14px;color:#586c94}.weui-footer__link:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #c7c7c7;color:#c7c7c7;left:-.65em;top:.36em;bottom:.36em}.weui-footer__link:first-child:before{display:none}.weui-footer__text{padding:0 .34em;font-size:12px}.weui-grids{border-top:1rpx solid #d9d9d9;border-left:1rpx solid #d9d9d9;overflow:hidden}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box;border-right:1rpx solid #d9d9d9;border-bottom:1rpx solid #d9d9d9}.weui-grid_active{background-color:#ececec}.weui-grid__icon{display:block;width:28px;height:28px;margin:0 auto}.weui-grid__label{margin-top:5px;display:block;text-align:center;color:#000;font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.weui-loading{margin:0 5px;width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:a 1s steps(12) infinite;animation:a 1s steps(12) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;background-size:100%}.weui-loading.weui-loading_transparent{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.weui-badge{display:inline-block;padding:.15em .4em;min-width:8px;border-radius:18px;background-color:#e64340;color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}.weui-loadmore{width:65%;margin:1.5em auto;line-height:1.6em;font-size:14px;text-align:center}.weui-loadmore__tips{display:inline-block;vertical-align:middle}.weui-loadmore_line{border-top:1px solid #e5e5e5;margin-top:2.4em}.weui-loadmore__tips_in-line{position:relative;top:-.9em;padding:0 .55em;background-color:#fff;color:#999}.weui-loadmore__tips_in-dot{position:relative;padding:0 .16em;width:4px;height:1.6em}.weui-loadmore__tips_in-dot:before{content:" ";position:absolute;top:50%;left:50%;margin-top:-1px;margin-left:-2px;width:4px;height:4px;border-radius:50%;background-color:#e5e5e5}.weui-panel{background-color:#fff;margin-top:10px;position:relative;overflow:hidden}.weui-panel:first-child{margin-top:0}.weui-panel:before{top:0;border-top:1rpx solid #e5e5e5}.weui-panel:after,.weui-panel:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}.weui-panel:after{bottom:0;border-bottom:1rpx solid #e5e5e5}.weui-panel__hd{padding:14px 15px 10px;color:#999;font-size:13px;position:relative}.weui-panel__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box{padding:15px;position:relative}.weui-media-box:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box:first-child:before{display:none}.weui-media-box__title{font-weight:400;font-size:17px;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;word-wrap:break-word;word-break:break-all}.weui-media-box__desc{color:#999;font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-media-box__info{margin-top:15px;padding-bottom:5px;font-size:13px;color:#cecece;line-height:1em;list-style:none;overflow:hidden}.weui-media-box__info__meta{float:left;padding-right:1em}.weui-media-box__info__meta_extra{padding-left:1em;border-left:1px solid #cecece}.weui-media-box__title_in-text{margin-bottom:8px}.weui-media-box_appmsg{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-media-box__thumb{width:100%;height:100%;vertical-align:top}.weui-media-box__hd_in-appmsg{margin-right:.8em;width:60px;height:60px;line-height:60px;text-align:center}.weui-media-box__bd_in-appmsg{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0}.weui-media-box_small-appmsg{padding:0}.weui-cells_in-small-appmsg{margin-top:0}.weui-cells_in-small-appmsg:before{display:none}.weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__opr{margin-left:15px;font-size:0}.weui-navbar{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;z-index:500;top:0;width:100%;border-bottom:1rpx solid #ccc}.weui-navbar__item{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:13px 0;text-align:center;font-size:0}.weui-navbar__item.weui-bar__item_on{color:#1aad19}.weui-navbar__slider{position:absolute;content:" ";left:0;bottom:0;width:6em;height:3px;background-color:#1aad19;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-navbar__title{display:inline-block;font-size:15px;max-width:8em;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.weui-tab{position:relative;height:100%}.weui-tab__panel{box-sizing:border-box;height:100%;padding-top:50px;overflow:auto;-webkit-overflow-scrolling:touch}.weui-search-bar{position:relative;padding:8px 10px;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;background-color:#efeff4;border-top:1rpx solid #d7d6dc;border-bottom:1rpx solid #d7d6dc}.weui-icon-search{margin-right:8px;font-size:inherit}.weui-icon-search_in-box{position:absolute;left:10px;top:7px}.weui-search-bar__text{display:inline-block;font-size:14px;vertical-align:middle}.weui-search-bar__form{position:relative;-webkit-box-flex:1;-webkit-flex:auto;flex:auto;border-radius:5px;background:#fff;border:1rpx solid #e6e6ea}.weui-search-bar__box{position:relative;padding-left:30px;padding-right:30px;width:100%;box-sizing:border-box;z-index:1}.weui-search-bar__input{height:28px;line-height:28px;font-size:14px}.weui-icon-clear{position:absolute;top:0;right:0;padding:7px 8px;font-size:0}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:3px;text-align:center;color:#9b9b9b;background:#fff;line-height:28px}.weui-search-bar__cancel-btn{margin-left:10px;line-height:28px;color:#09bb07;white-space:nowrap}
\ No newline at end of file
+page{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}icon{vertical-align:middle}.weui-cells{position:relative;margin-top:1.17647059em;background-color:#fff;line-height:1.41176471;font-size:17px}.weui-cells:before{top:0;border-top:1rpx solid #d9d9d9}.weui-cells:after,.weui-cells:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-cells:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-cells__title{margin-top:.77em;margin-bottom:.3em;padding-left:15px;padding-right:15px;color:#999;font-size:14px}.weui-cells_after-title{margin-top:0}.weui-cells__tips{margin-top:.3em;color:#999;padding-left:15px;padding-right:15px;font-size:14px}.weui-cell{padding:10px 15px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-cell:first-child:before{display:none}.weui-cell_active{background-color:#ececec}.weui-cell_primary{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.weui-cell__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-cell__ft{text-align:right;color:#999}.weui-cell_access{color:inherit}.weui-cell__ft_in-access{padding-right:13px;position:relative}.weui-cell__ft_in-access:after{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-4px;right:2px}.weui-cell_link{color:#586c94;font-size:14px}.weui-cell_link:active{background-color:#ececec}.weui-cell_link:first-child:before{display:block}.weui-icon-radio{margin-left:3.2px;margin-right:3.2px}.weui-icon-checkbox_circle,.weui-icon-checkbox_success{margin-left:4.6px;margin-right:4.6px}.weui-check__label:active{background-color:#ececec}.weui-check{position:absolute;left:-9999px}.weui-check__hd_in-checkbox{padding-right:.35em}.weui-cell__ft_in-radio{padding-left:.35em}.weui-cell_input{padding-top:0;padding-bottom:0}.weui-label{width:105px;word-wrap:break-word;word-break:break-all}.weui-input{height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em}.weui-toptips{position:fixed;-webkit-transform:translateZ(0);transform:translateZ(0);top:0;left:0;right:0;padding:5px;font-size:14px;text-align:center;color:#fff;z-index:5000;word-wrap:break-word;word-break:break-all}.weui-toptips_warn{background-color:#e64340}.weui-textarea{display:block;width:100%}.weui-textarea-counter{color:#b2b2b2;text-align:right}.weui-cell_warn,.weui-textarea-counter_warn{color:#e64340}.weui-form-preview{position:relative;background-color:#fff}.weui-form-preview:before{top:0;border-top:1rpx solid #d9d9d9}.weui-form-preview:after,.weui-form-preview:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-form-preview:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-form-preview__value{font-size:14px}.weui-form-preview__value_in-hd{font-size:26px}.weui-form-preview__hd{position:relative;padding:10px 15px;text-align:right;line-height:2.5em}.weui-form-preview__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-form-preview__bd{padding:10px 15px;font-size:.9em;text-align:right;color:#999;line-height:2}.weui-form-preview__ft{position:relative;line-height:50px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-form-preview__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__item{overflow:hidden}.weui-form-preview__label{float:left;margin-right:1em;min-width:4em;color:#999;text-align:justify;text-align-last:justify}.weui-form-preview__value{display:block;overflow:hidden;word-break:normal;word-wrap:break-word}.weui-form-preview__btn{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#3cc51f;text-align:center}.weui-form-preview__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__btn:first-child:after{display:none}.weui-form-preview__btn_active{background-color:#eee}.weui-form-preview__btn_default{color:#999}.weui-form-preview__btn_primary{color:#0bb20c}.weui-cell_select{padding:0}.weui-select{position:relative;padding-left:15px;padding-right:30px;height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em;border-right:1rpx solid #d9d9d9}.weui-select:before{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;right:15px;margin-top:-4px}.weui-select_in-select-after{padding-left:0}.weui-cell__bd_in-select-before,.weui-cell__hd_in-select-after{padding-left:15px}.weui-cell_vcode{padding-right:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:2.58823529em;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;border-left:1px solid #e5e5e5;line-height:2.58823529em;font-size:17px;color:#3cc51f;white-space:nowrap}.weui-vcode-btn:active{color:#52a341}.weui-cell_switch{padding-top:6px;padding-bottom:6px}.weui-uploader__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:10px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__title{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__info{color:#b2b2b2}.weui-uploader__bd{margin-bottom:-4px;margin-right:-9px;overflow:hidden}.weui-uploader__file{float:left;margin-right:9px;margin-bottom:9px}.weui-uploader__img{display:block;width:79px;height:79px}.weui-uploader__file_status{position:relative}.weui-uploader__file_status:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5)}.weui-uploader__file-content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#fff}.weui-uploader__input-box{float:left;position:relative;margin-right:9px;margin-bottom:9px;width:77px;height:77px;border:1px solid #d9d9d9}.weui-uploader__input-box:after,.weui-uploader__input-box:before{content:" ";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#d9d9d9}.weui-uploader__input-box:before{width:2px;height:39.5px}.weui-uploader__input-box:after{width:39.5px;height:2px}.weui-uploader__input-box:hover{border-color:#999}.weui-uploader__input-box:hover:after,.weui-uploader__input-box:hover:before{background-color:#999}.weui-uploader__input{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0}.weui-article{padding:20px 15px;font-size:15px}.weui-article__section{margin-bottom:1.5em}.weui-article__h1{font-size:18px;font-weight:400;margin-bottom:.9em}.weui-article__h2{font-size:16px;font-weight:400;margin-bottom:.34em}.weui-article__h3{font-weight:400;font-size:15px;margin-bottom:.34em}.weui-article__p{margin:0 0 .8em}.weui-msg{padding-top:36px;text-align:center}.weui-msg__link{display:inline;color:#586c94}.weui-msg__icon-area{margin-bottom:30px}.weui-msg__text-area{margin-bottom:25px;padding:0 20px}.weui-msg__title{margin-bottom:5px;font-weight:400;font-size:20px}.weui-msg__desc{font-size:14px;color:#999}.weui-msg__opr-area{margin-bottom:25px}.weui-msg__extra-area{margin-bottom:15px;font-size:14px;color:#999}@media screen and (min-height:438px){.weui-msg__extra-area{position:fixed;left:0;bottom:0;width:100%;text-align:center}}.weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn{margin-top:15px}.weui-btn:first-child{margin-top:0}.weui-btn-area{margin:1.17647059em 15px .3em}.weui-agree{display:block;padding:.5em 15px;font-size:13px}.weui-agree__text{color:#999}.weui-agree__link{display:inline;color:#586c94}.weui-agree__checkbox{position:absolute;left:-9999px}.weui-agree__checkbox-icon{position:relative;top:2px;display:inline-block;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:11px;height:11px}.weui-agree__checkbox-icon-check{position:absolute;top:1px;left:1px}.weui-footer{color:#999;font-size:14px;text-align:center}.weui-footer_fixed-bottom{position:fixed;bottom:.52em;left:0;right:0}.weui-footer__links{font-size:0}.weui-footer__link{display:inline-block;vertical-align:top;margin:0 .62em;position:relative;font-size:14px;color:#586c94}.weui-footer__link:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #c7c7c7;color:#c7c7c7;left:-.65em;top:.36em;bottom:.36em}.weui-footer__link:first-child:before{display:none}.weui-footer__text{padding:0 .34em;font-size:12px}.weui-grids{border-top:1rpx solid #d9d9d9;border-left:1rpx solid #d9d9d9;overflow:hidden}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box;border-right:1rpx solid #d9d9d9;border-bottom:1rpx solid #d9d9d9}.weui-grid_active{background-color:#ececec}.weui-grid__icon{display:block;width:28px;height:28px;margin:0 auto}.weui-grid__label{margin-top:5px;display:block;text-align:center;color:#000;font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.weui-loading{margin:0 5px;width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:a 1s steps(12) infinite;animation:a 1s steps(12) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;background-size:100%}.weui-loading.weui-loading_transparent{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.weui-badge{display:inline-block;padding:.15em .4em;min-width:8px;border-radius:18px;background-color:#e64340;color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}.weui-loadmore{width:65%;margin:1.5em auto;line-height:1.6em;font-size:14px;text-align:center}.weui-loadmore__tips{display:inline-block;vertical-align:middle}.weui-loadmore_line{border-top:1px solid #e5e5e5;margin-top:2.4em}.weui-loadmore__tips_in-line{position:relative;top:-.9em;padding:0 .55em;background-color:#fff;color:#999}.weui-loadmore__tips_in-dot{position:relative;padding:0 .16em;width:4px;height:1.6em}.weui-loadmore__tips_in-dot:before{content:" ";position:absolute;top:50%;left:50%;margin-top:-1px;margin-left:-2px;width:4px;height:4px;border-radius:50%;background-color:#e5e5e5}.weui-panel{background-color:#fff;margin-top:10px;position:relative;overflow:hidden}.weui-panel:first-child{margin-top:0}.weui-panel:before{top:0;border-top:1rpx solid #e5e5e5}.weui-panel:after,.weui-panel:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}.weui-panel:after{bottom:0;border-bottom:1rpx solid #e5e5e5}.weui-panel__hd{padding:14px 15px 10px;color:#999;font-size:13px;position:relative}.weui-panel__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box{padding:15px;position:relative}.weui-media-box:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box:first-child:before{display:none}.weui-media-box__title{font-weight:400;font-size:17px;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;word-wrap:break-word;word-break:break-all}.weui-media-box__desc{color:#999;font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-media-box__info{margin-top:15px;padding-bottom:5px;font-size:13px;color:#cecece;line-height:1em;list-style:none;overflow:hidden}.weui-media-box__info__meta{float:left;padding-right:1em}.weui-media-box__info__meta_extra{padding-left:1em;border-left:1px solid #cecece}.weui-media-box__title_in-text{margin-bottom:8px}.weui-media-box_appmsg{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-media-box__thumb{width:100%;height:100%;vertical-align:top}.weui-media-box__hd_in-appmsg{margin-right:.8em;width:60px;height:60px;line-height:60px;text-align:center}.weui-media-box__bd_in-appmsg{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0}.weui-media-box_small-appmsg{padding:0}.weui-cells_in-small-appmsg{margin-top:0}.weui-cells_in-small-appmsg:before{display:none}.weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__opr{margin-left:15px;font-size:0}.weui-navbar{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;z-index:500;top:0;width:100%;border-bottom:1rpx solid #ccc}.weui-navbar__item{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:13px 0;text-align:center;font-size:0}.weui-navbar__item.weui-bar__item_on{color:#1aad19}.weui-navbar__slider{position:absolute;content:" ";left:0;bottom:0;width:6em;height:3px;background-color:#1aad19;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-navbar__title{display:inline-block;font-size:15px;max-width:8em;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.weui-tab{position:relative;height:100%}.weui-tab__panel{box-sizing:border-box;height:100%;padding-top:50px;overflow:auto;-webkit-overflow-scrolling:touch}.weui-search-bar{position:relative;padding:8px 10px;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;background-color:#efeff4;border-top:1rpx solid #d7d6dc;border-bottom:1rpx solid #d7d6dc}.weui-icon-search{margin-right:8px;font-size:inherit}.weui-icon-search_in-box{position:absolute;left:10px;top:7px}.weui-search-bar__text{display:inline-block;font-size:14px;vertical-align:middle}.weui-search-bar__form{position:relative;-webkit-box-flex:1;-webkit-flex:auto;flex:auto;border-radius:5px;background:#fff;border:1rpx solid #e6e6ea}.weui-search-bar__box{position:relative;padding-left:30px;padding-right:30px;width:100%;box-sizing:border-box;z-index:1}.weui-search-bar__input{height:28px;line-height:28px;font-size:14px}.weui-icon-clear{position:absolute;top:0;right:0;padding:7px 8px;font-size:0}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:3px;text-align:center;color:#9b9b9b;background:#fff;line-height:28px}.weui-search-bar__cancel-btn{margin-left:10px;line-height:28px;color:#09bb07;white-space:nowrap}
\ No newline at end of file