作者 liaolinfeng

commit

正在显示 100 个修改的文件 包含 2759 行增加59 行删除

要显示太多修改。

为保证性能只显示 100 of 100+ 个文件。

  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<module type="WEB_MODULE" version="4">
  3 + <component name="NewModuleRootManager">
  4 + <content url="file://$MODULE_DIR$">
  5 + <excludeFolder url="file://$MODULE_DIR$/.tmp" />
  6 + <excludeFolder url="file://$MODULE_DIR$/temp" />
  7 + <excludeFolder url="file://$MODULE_DIR$/tmp" />
  8 + </content>
  9 + <orderEntry type="inheritedJdk" />
  10 + <orderEntry type="sourceFolder" forTests="false" />
  11 + </component>
  12 +</module>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="JavaScriptSettings">
  4 + <option name="languageLevel" value="ES6" />
  5 + </component>
  6 +</project>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ProjectModuleManager">
  4 + <modules>
  5 + <module fileurl="file://$PROJECT_DIR$/.idea/Insurance.iml" filepath="$PROJECT_DIR$/.idea/Insurance.iml" />
  6 + </modules>
  7 + </component>
  8 +</project>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="VcsDirectoryMappings">
  4 + <mapping directory="$PROJECT_DIR$" vcs="Git" />
  5 + </component>
  6 +</project>
1 //app.js 1 //app.js
  2 +import md5 from 'utils/md5.js';
2 App({ 3 App({
3 - onLaunch: function () {  
4 - // 展示本地存储能力  
5 - var logs = wx.getStorageSync('logs') || []  
6 - logs.unshift(Date.now())  
7 - wx.setStorageSync('logs', logs)  
8 -  
9 - // 登录  
10 - wx.login({  
11 - success: res => {  
12 - // 发送 res.code 到后台换取 openId, sessionKey, unionId  
13 - } 4 + post: function(url, data) {
  5 + wx.showNavigationBarLoading()
  6 + wx.showLoading({
  7 + title: '',
14 }) 8 })
15 - // 获取用户信息  
16 - wx.getSetting({  
17 - success: res => {  
18 - if (res.authSetting['scope.userInfo']) {  
19 - // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框  
20 - wx.getUserInfo({  
21 - success: res => {  
22 - // 可以将 res 发送给后台解码出 unionId  
23 - this.globalData.userInfo = res.userInfo  
24 -  
25 - // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回  
26 - // 所以此处加入 callback 以防止这种情况  
27 - if (this.userInfoReadyCallback) {  
28 - this.userInfoReadyCallback(res)  
29 - }  
30 - } 9 + var promise = new Promise((resolve, reject) => {
  10 + let that = this;
  11 + let postData = data;
  12 + let baseUrl = 'http://insurance.w.bronet.cn/';
  13 + wx.request({
  14 + url: baseUrl + url,
  15 + data: postData,
  16 + method: 'POST',
  17 + header: {
  18 + 'content-type': 'application/x-www-form-urlencoded'
  19 + },
  20 + success: function(res) {
  21 + resolve(res)
  22 + setTimeout(function() {
  23 + wx.hideLoading()
  24 + }, 600)
  25 + wx.hideNavigationBarLoading()
  26 + },
  27 + error: function(e) {
  28 + reject('');
  29 + wx.hideLoading()
  30 + wx.hideNavigationBarLoading()
  31 + wx.showModal({
  32 + title: '',
  33 + content: res.data.msg,
  34 + showCancel: false
31 }) 35 })
32 } 36 }
33 - } 37 + })
  38 + });
  39 + wx.hideLoading()
  40 + return promise;
  41 + console.log(promise)
  42 + },
  43 + formCollect(id) {
  44 + let url = 'sign/formid'
  45 + let params = {
  46 + formid: id,
  47 + openid: wx.getStorageSync('openId')
  48 + }
  49 + this.post(url, params).then((res) => {
  50 + console.log(res)
  51 + }).catch((errMsg) => {
  52 +
34 }) 53 })
35 }, 54 },
  55 + nowDate() {
  56 + let date = new Date();
  57 + let month = date.getMonth() + 1;
  58 + let day = date.getDate();
  59 + return date.getFullYear() + '-' + (month > 9 ? month : ('0' + month)) + '-' + (day > 9 ? day : ('0' + day));
  60 + },
  61 + initDate(a) {
  62 + let date1 = new Date();
  63 + let time1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate();
  64 + let date2 = new Date(date1);
  65 + date2.setDate(date1.getDate() + a);
  66 + let time2 = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate();
  67 + return time2;
  68 + },
  69 + // 数组移除指定元素
  70 + arryRemove(arr, item) {
  71 + return arr.filter(function(ele) {
  72 + return ele != item;
  73 + })
  74 + },
  75 + strTime(strtime) {
  76 + let str = 'bronet' + strtime + 'beijing'
  77 + return md5(md5(str))
  78 + },
36 globalData: { 79 globalData: {
37 - userInfo: null 80 + userInfo: null,
  81 + OpenId: '', //用户openid
  82 + UserId: '', //用户userid
  83 + UserType: '', //用户类型(2为普通会员,3为顾问,4为推广)
  84 + checkstatus: '', //分享参数(0为无分享参数,1为保单分享,2为注册分享,3为文章分享)
  85 + UserStatus: '', //用户状态(1初次登录需要授权操作,2多次登录不需要授权)
  86 + PublishId: '', //如果是保单分享返回保单id
  87 + NewsId: '' //如果是文章分享返回文章id
38 } 88 }
39 }) 89 })
1 { 1 {
2 "pages": [ 2 "pages": [
3 - "pages/Program/Program",  
4 - "pages/Suggest/Suggest",  
5 - "pages/articleBrowseRecord/articleBrowseRecord",  
6 - "pages/browseRecord/browseRecord",  
7 - "pages/personalCenter/personalCenter",  
8 - "pages/learnShare/learnShare", 3 + "pages/start/start",
  4 + "pages/index/register/register",
  5 + "pages/about/about",
  6 + "pages/index/agreement/agreement",
  7 + "pages/index/browseRecordDetail/browseRecordDetail",
  8 + "pages/index/consultantList/consultantList",
  9 + "pages/index/periodicReviews/periodicReviews",
  10 + "pages/index/CustomerManagement/CustomerManagement",
  11 + "pages/index/ArticleDetails/ArticleDetails",
  12 + "pages/index/reportList/reportList",
  13 + "pages/index/editProfile/editProfile",
  14 + "pages/index/policyList/policyList",
  15 + "pages/index/policyListDetail/policyListDetail",
  16 + "pages/index/policyManage/policyManage",
  17 + "pages/index/addListDetail/addListDetail",
  18 + "pages/index/personInfo/personInfo",
  19 + "pages/index/addNewFamily/addNewFamily",
  20 + "pages/index/smartRemind/smartRemind",
  21 + "pages/index/VipRecharge/VipRecharge",
  22 + "pages/index/twoCode/twoCode",
  23 + "pages/index/share/share",
  24 + "pages/index/inviteList/inviteList",
  25 + "pages/index/payWay/payWay",
  26 + "pages/index/addLog/addLog",
  27 + "pages/index/remind/remind",
  28 + "pages/index/summaryList/summaryList",
  29 + "pages/index/learnShare/learnShare",
  30 + "pages/index/EntryInformation/EntryInformation",
  31 + "pages/index/Program/Program",
  32 + "pages/index/Suggest/Suggest",
  33 + "pages/index/articleBrowseRecord/articleBrowseRecord",
  34 + "pages/index/browseRecord/browseRecord",
  35 + "pages/index/TB/TB",
9 "pages/index/index", 36 "pages/index/index",
10 - "pages/logs/logs" 37 + "pages/personalCenter/personalCenter"
11 ], 38 ],
12 "window": { 39 "window": {
13 "backgroundTextStyle": "light", 40 "backgroundTextStyle": "light",
14 "navigationBarBackgroundColor": "#0286FF", 41 "navigationBarBackgroundColor": "#0286FF",
15 "navigationBarTitleText": "家庭保险", 42 "navigationBarTitleText": "家庭保险",
16 "navigationBarTextStyle": "#fff" 43 "navigationBarTextStyle": "#fff"
  44 + },
  45 + "tabBar": {
  46 + "color": "#666666",
  47 + "selectedColor": "#487AFF",
  48 + "borderStyle": "black",
  49 + "backgroundColor": "#fff",
  50 + "list": [
  51 + {
  52 + "pagePath": "pages/index/index",
  53 + "text": "首页",
  54 + "iconPath": "/images/nav01@2x.png",
  55 + "selectedIconPath": "/images/nav02@2x.png"
  56 + },
  57 + {
  58 + "pagePath": "pages/about/about",
  59 + "text": "关于",
  60 + "iconPath": "/images/nav03@2x.png",
  61 + "selectedIconPath": "/images/nav04@2x.png"
  62 + },
  63 + {
  64 + "pagePath": "pages/personalCenter/personalCenter",
  65 + "text": "我的",
  66 + "iconPath": "/images/nav05@2x.png",
  67 + "selectedIconPath": "/images/nav06@2x.png"
  68 + }
  69 + ]
17 } 70 }
18 } 71 }
@@ -9,17 +9,21 @@ @@ -9,17 +9,21 @@
9 9
10 10
11 11
12 - 12 +.navigator-hover{
  13 + background: none;
  14 + opacity: 1
  15 +}
13 16
14 /* iconfont */ 17 /* iconfont */
15 @font-face { 18 @font-face {
16 font-family: 'iconfont'; /* project id 926819 */ 19 font-family: 'iconfont'; /* project id 926819 */
17 - src: url('//at.alicdn.com/t/font_926819_sou7ppve5zi.eot');  
18 - src: url('//at.alicdn.com/t/font_926819_sou7ppve5zi.eot?#iefix') format('embedded-opentype'),  
19 - url('//at.alicdn.com/t/font_926819_sou7ppve5zi.woff') format('woff'),  
20 - url('//at.alicdn.com/t/font_926819_sou7ppve5zi.ttf') format('truetype'),  
21 - url('//at.alicdn.com/t/font_926819_sou7ppve5zi.svg#iconfont') format('svg'); 20 + src: url('//at.alicdn.com/t/font_926819_0twe6hg7mqhh.eot');
  21 + src: url('//at.alicdn.com/t/font_926819_0twe6hg7mqhh.eot?#iefix') format('embedded-opentype'),
  22 + url('//at.alicdn.com/t/font_926819_0twe6hg7mqhh.woff') format('woff'),
  23 + url('//at.alicdn.com/t/font_926819_0twe6hg7mqhh.ttf') format('truetype'),
  24 + url('//at.alicdn.com/t/font_926819_0twe6hg7mqhh.svg#iconfont') format('svg');
22 } 25 }
  26 +
23 .iconfont { 27 .iconfont {
24 font-family:"iconfont" !important; 28 font-family:"iconfont" !important;
25 font-size:16px; 29 font-size:16px;
@@ -34,8 +38,14 @@ @@ -34,8 +38,14 @@
34 38
35 .icon-renzheng:before { content: "\e646"; } 39 .icon-renzheng:before { content: "\e646"; }
36 40
  41 +.icon-anquan:before { content: "\e63c"; }
  42 +
  43 +.icon-listpress:before { content: "\e627"; }
  44 +
37 .icon-xiala1:before { content: "\e61c"; } 45 .icon-xiala1:before { content: "\e61c"; }
38 46
  47 +.icon-baodanyuhetong:before { content: "\e642"; }
  48 +
39 .icon-shu:before { content: "\e645"; } 49 .icon-shu:before { content: "\e645"; }
40 50
41 .icon-fenxiang2:before { content: "\e620"; } 51 .icon-fenxiang2:before { content: "\e620"; }
@@ -52,6 +62,8 @@ @@ -52,6 +62,8 @@
52 62
53 .icon-xuanzhong:before { content: "\e61a"; } 63 .icon-xuanzhong:before { content: "\e61a"; }
54 64
  65 +.icon-artboard61:before { content: "\e788"; }
  66 +
55 .icon-jinru:before { content: "\e618"; } 67 .icon-jinru:before { content: "\e618"; }
56 68
57 .icon-kehu:before { content: "\e613"; } 69 .icon-kehu:before { content: "\e613"; }
@@ -76,8 +88,12 @@ @@ -76,8 +88,12 @@
76 88
77 .icon-jinbi:before { content: "\e672"; } 89 .icon-jinbi:before { content: "\e672"; }
78 90
  91 +.icon-bianji1:before { content: "\e68a"; }
  92 +
79 .icon-mingdanguanli:before { content: "\e658"; } 93 .icon-mingdanguanli:before { content: "\e658"; }
80 94
  95 +.icon-renzheng1:before { content: "\e62a"; }
  96 +
81 .icon-dkw_wode-:before { content: "\e60e"; } 97 .icon-dkw_wode-:before { content: "\e60e"; }
82 98
83 .icon-guanbi2:before { content: "\e60f"; } 99 .icon-guanbi2:before { content: "\e60f"; }
@@ -88,20 +104,32 @@ @@ -88,20 +104,32 @@
88 104
89 .icon-sousuo:before { content: "\e617"; } 105 .icon-sousuo:before { content: "\e617"; }
90 106
  107 +.icon-xuanze:before { content: "\e6c3"; }
  108 +
91 .icon-sousuo1:before { content: "\e632"; } 109 .icon-sousuo1:before { content: "\e632"; }
92 110
  111 +.icon-yuan:before { content: "\e622"; }
  112 +
93 .icon-YDUI-naozhong:before { content: "\e65d"; } 113 .icon-YDUI-naozhong:before { content: "\e65d"; }
94 114
95 .icon-ren:before { content: "\e6d9"; } 115 .icon-ren:before { content: "\e6d9"; }
96 116
97 .icon-ziliao:before { content: "\e603"; } 117 .icon-ziliao:before { content: "\e603"; }
98 118
  119 +.icon-kehuguanli-copy-copy:before { content: "\e63a"; }
  120 +
99 .icon-add:before { content: "\e604"; } 121 .icon-add:before { content: "\e604"; }
100 122
101 .icon-baodanxinxi:before { content: "\e602"; } 123 .icon-baodanxinxi:before { content: "\e602"; }
102 124
  125 +.icon-hengxian1:before { content: "\e626"; }
  126 +
  127 +.icon-riqi:before { content: "\ea1a"; }
  128 +
103 .icon-tijian:before { content: "\e605"; } 129 .icon-tijian:before { content: "\e605"; }
104 130
  131 +.icon-hengxian:before { content: "\e657"; }
  132 +
105 .icon-gouwuche:before { content: "\e609"; } 133 .icon-gouwuche:before { content: "\e609"; }
106 134
107 .icon-yaoqing:before { content: "\e60b"; } 135 .icon-yaoqing:before { content: "\e60b"; }
@@ -128,6 +156,8 @@ @@ -128,6 +156,8 @@
128 156
129 .icon-tixian:before { content: "\e62d"; } 157 .icon-tixian:before { content: "\e62d"; }
130 158
  159 +.icon-shang:before { content: "\e611"; }
  160 +
131 .icon-rizhi:before { content: "\e614"; } 161 .icon-rizhi:before { content: "\e614"; }
132 162
133 .icon-baogao1:before { content: "\e62f"; } 163 .icon-baogao1:before { content: "\e62f"; }
@@ -144,6 +174,8 @@ @@ -144,6 +174,8 @@
144 174
145 .icon-ling:before { content: "\e8bf"; } 175 .icon-ling:before { content: "\e8bf"; }
146 176
  177 +.icon-dianhua2:before { content: "\e649"; }
  178 +
147 .icon-fangan:before { content: "\e60c"; } 179 .icon-fangan:before { content: "\e60c"; }
148 180
149 .icon-fenxiang1:before { content: "\e634"; } 181 .icon-fenxiang1:before { content: "\e634"; }
@@ -154,4 +186,12 @@ @@ -154,4 +186,12 @@
154 186
155 .icon-kakou:before { content: "\e660"; } 187 .icon-kakou:before { content: "\e660"; }
156 188
  189 +.icon-shezhi:before { content: "\e610"; }
  190 +
157 .icon-jianyi:before { content: "\e696"; } 191 .icon-jianyi:before { content: "\e696"; }
  192 +
  193 +.icon-zhuanfa:before { content: "\e783"; }
  194 +
  195 +.icon-shanchu:before { content: "\e67b"; }
  196 +
  197 +.icon-danjiantou:before { content: "\e612"; }
  1 +// pages/about/about.js
  2 +const app = getApp()
  3 +var WxParse = require('../../wxParse/wxParse.js');
  4 +Page({
  5 +
  6 + /**
  7 + * 页面的初始数据
  8 + */
  9 + data: {
  10 + aboutdata: {
  11 + picurl: '',
  12 + title: ''
  13 + }
  14 + },
  15 +
  16 + /**
  17 + * 生命周期函数--监听页面加载
  18 + */
  19 + getaboutdata() {
  20 + let that = this;
  21 + let url = 'pubilc/about';
  22 + let aboutdata = that.data.aboutdata;
  23 + app.post(url, {
  24 + AboutType: 9
  25 + }).then((res) => {
  26 + console.log(res.data)
  27 + if (res.data.code == 200) {
  28 + aboutdata.picurl = res.data.data.picurl;
  29 + aboutdata.title = res.data.data.title;
  30 + that.setData({
  31 + aboutdata: aboutdata
  32 + })
  33 + WxParse.wxParse('content', 'html', res.data.data.post_content, that, 5);
  34 +
  35 + }
  36 +
  37 + // this.setData({
  38 + // imgUrls: res.data.data
  39 + // })
  40 + }).catch((errMsg) => {
  41 + console.log(errMsg)
  42 + })
  43 + },
  44 +
  45 +
  46 + onLoad: function (options) {
  47 + this.getaboutdata();
  48 + },
  49 +
  50 + /**
  51 + * 生命周期函数--监听页面初次渲染完成
  52 + */
  53 + onReady: function () {
  54 +
  55 + },
  56 +
  57 + /**
  58 + * 生命周期函数--监听页面显示
  59 + */
  60 + onShow: function () {
  61 +
  62 + },
  63 +
  64 + /**
  65 + * 生命周期函数--监听页面隐藏
  66 + */
  67 + onHide: function () {
  68 +
  69 + },
  70 +
  71 + /**
  72 + * 生命周期函数--监听页面卸载
  73 + */
  74 + onUnload: function () {
  75 +
  76 + },
  77 +
  78 + /**
  79 + * 页面相关事件处理函数--监听用户下拉动作
  80 + */
  81 + onPullDownRefresh: function () {
  82 +
  83 + },
  84 +
  85 + /**
  86 + * 页面上拉触底事件的处理函数
  87 + */
  88 + onReachBottom: function () {
  89 +
  90 + },
  91 +
  92 + /**
  93 + * 用户点击右上角分享
  94 + */
  95 + onShareAppMessage: function () {
  96 +
  97 + }
  98 +})
  1 +{
  2 + "navigationBarTitleText": "关于"
  3 +}
  1 +<!--pages/about/about.wxml-->
  2 +<view class='topimg'>
  3 + <image src='/images/banenr.png'></image>
  4 +</view>
  5 +<view class='content'>
  6 + <view class='title'>{{aboutdata.title}}</view>
  7 + <view class='main'>
  8 + <import src="../../wxParse/wxParse.wxml" />
  9 + <template is="wxParse" data="{{wxParseData:content.nodes}}" />
  10 + </view>
  11 +</view>
  1 +/* pages/about/about.wxss */
  2 +.topimg{
  3 + height:420rpx;
  4 + width:100%;
  5 + box-sizing: border-box;
  6 + overflow: hidden;
  7 +}
  8 +.topimg image{
  9 + width:100%;
  10 +}
  11 +.content{
  12 + padding:32rpx 32rpx 0 32rpx;
  13 + text-align: center;
  14 +}
  15 +.title{
  16 + color:#000;
  17 + font-size:30rpx;
  18 + margin:0 0 32rpx 0;
  19 +}
  20 +.main{
  21 + text-align: left;
  22 + font-size:26rpx;
  23 + color:rgba(0,0,0,1);
  24 + line-height:44rpx;
  25 +}
  1 +// pages/indexs/article_details/article_details.js
  2 +const app = getApp();
  3 +var WxParse = require('../../../wxParse/wxParse.js');
  4 +Page({
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + NewsId: '', //文章ID
  10 + GoId: '', //分享人id
  11 + articleDetail: [], //文章详情内容
  12 + share_num: '',
  13 + },
  14 + //文章详情
  15 + listDetail() {
  16 + let url = 'pubilc/content';
  17 + let that = this;
  18 + app.post(url, {
  19 + NewsId: that.data.NewsId,
  20 + UserId: app.globalData.UserId,
  21 + GoId: that.data.GoId
  22 + }).then((res) => {
  23 + if (res.data.code == 200) {
  24 + console.log(res);
  25 + that.setData({
  26 + articleDetail: res.data.data
  27 + })
  28 + var content = res.data.data.content
  29 + WxParse.wxParse('content', 'html', content, that, 5);
  30 + }
  31 + }).catch((errMsg) => {
  32 + console.log(errMsg)
  33 + })
  34 + },
  35 +
  36 + //有奖分享
  37 + prizeshare() {
  38 + var that = this;
  39 + let url = 'pubilc/sharetext';
  40 + app.post(url, {
  41 + UserId: app.globalData.UserId
  42 + }).then((res) => {
  43 + console.log(res)
  44 + if (res.data.code == 200) {
  45 + this.setData({
  46 + share_num: res.data.data.share_num
  47 + })
  48 + wx.showLoading();
  49 + wx.hideLoading();
  50 + setTimeout(() => {
  51 + if (this.data.share_num == 0) {
  52 + wx.showToast({
  53 + title: '今日分享获得TB次数以达到上限',
  54 + icon: 'none',
  55 + duration: 2000,
  56 + })
  57 + }
  58 + setTimeout(() => {
  59 + wx.hideToast();
  60 + }, 2000)
  61 + }, 0);
  62 + }
  63 + }).catch((errMsg) => {
  64 +
  65 + })
  66 + },
  67 +
  68 + /**
  69 + * 生命周期函数--监听页面加载
  70 + */
  71 + onLoad: function(options) {
  72 + let that = this;
  73 + that.setData({
  74 + NewsId: options.NewsId
  75 + })
  76 + that.listDetail();
  77 +
  78 + },
  79 +
  80 + /**
  81 + * 生命周期函数--监听页面初次渲染完成
  82 + */
  83 + onReady: function() {
  84 +
  85 + },
  86 +
  87 + /**
  88 + * 生命周期函数--监听页面显示
  89 + */
  90 + onShow: function() {
  91 +
  92 + },
  93 +
  94 + /**
  95 + * 生命周期函数--监听页面隐藏
  96 + */
  97 + onHide: function() {
  98 +
  99 + },
  100 +
  101 + /**
  102 + * 生命周期函数--监听页面卸载
  103 + */
  104 + onUnload: function() {
  105 +
  106 + },
  107 +
  108 + /**
  109 + * 页面相关事件处理函数--监听用户下拉动作
  110 + */
  111 + onPullDownRefresh: function() {
  112 +
  113 + },
  114 +
  115 + /**
  116 + * 页面上拉触底事件的处理函数
  117 + */
  118 + onReachBottom: function() {
  119 +
  120 + },
  121 +
  122 + /**
  123 + * 用户点击右上角分享
  124 + */
  125 + onShareAppMessage: function (option) {
  126 + let that = this;
  127 + // 设置菜单中的转发按钮触发转发事件时的转发内容
  128 + var shareObj = {
  129 + title: '', // 默认是小程序的名称(可以写slogan等)
  130 + path: '/pages/start/start?doctorid=' + app.globalData.doctorid, // 默认是当前页面,必须是以‘/’开头的完整路径
  131 + imageUrl: '',//自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
  132 + success: function (res) {
  133 + // 转发成功之后的回调
  134 + if (res.errMsg == 'shareAppMessage:ok') { }
  135 + },
  136 + fail: function () {
  137 + // 转发失败之后的回调
  138 + if (res.errMsg == 'shareAppMessage:fail cancel') {
  139 + // 用户取消转发
  140 + } else if (res.errMsg == 'shareAppMessage:fail') {
  141 + // 转发失败,其中 detail message 为详细失败信息
  142 + }
  143 + },
  144 + complete: function () {
  145 + // 转发结束之后的回调(转发成不成功都会执行)
  146 + }
  147 + }   // 来自页面内的按钮的转发
  148 + return shareObj;
  149 + }
  150 +
  151 +})
  1 +{
  2 + "navigationBarTitleText": "文章详情"
  3 +}
  1 +<!--pages/personalCenter/personalCenter.wxml-->
  2 +<import src="../../../wxParse/wxParse.wxml" />
  3 +<view class='content_box'>
  4 + <view class='list_title'>{{articleDetail.title}}</view>
  5 + <view class='list_info_box'>
  6 + <text>{{articleDetail.writer}}</text>
  7 + <text class='line'></text>
  8 + <text> {{articleDetail.source}}</text>
  9 + <text class='line'></text>
  10 + <text> {{articleDetail.create_time}}</text>
  11 + </view>
  12 + <view class='banner_box' wx:if="{{GoId!=''}}">
  13 + <view class='head_img'>
  14 + <image src='/images/img2.png'></image>
  15 + </view>
  16 + <view class='head_info_box'>
  17 + <view class='user_name'>苏菀菁</view>
  18 + <view>15869584682</view>
  19 + <view>某某机构</view>
  20 + <view>某某职业</view>
  21 + </view>
  22 + <view class='edit_box'>
  23 + <view>查看详情</view>
  24 + </view>
  25 + <view class='banner_info'>我要开通名片功能</view>
  26 + </view>
  27 + <view class='list_content'>
  28 + <!-- <view>八月的阳光下,蝉隐去鸣噪,只剩下天空,纯净如水一样湛蓝,八月的浓绿,连接着真情与彩虹,连接着嫩绿与金黄;八月的激情,连接着幼稚与成熟,连接着真诚和永恒;八月的力度,连接着单一与和谐,连接着平安与幸福。八月,岂止是绿的画、情的诗、力的歌,它更是花粉朋友们一个美好的回忆!下面是关于八月的精美随拍,欢迎欣赏!</view>
  29 + <view> 文章详情标题字号大小为40号,行高72px; 正文字号大小为30号,行高56px。</view> -->
  30 +
  31 + <template is="wxParse" data="{{wxParseData:content.nodes}}" />
  32 +
  33 +
  34 + </view>
  35 +
  36 + <view class='bottom_box' >
  37 + <button open-type='share'></button>
  38 + <text class='iconfont icon-zhuanfa'></text>
  39 + <text>转发</text>
  40 + </view>
  41 +</view>
  1 +/* pages/ArticleDetails/ArticleDetails.wxss */
  2 +
  3 +.banner_box {
  4 + background: #0286ff;
  5 + display: flex;
  6 + align-items: center;
  7 + font-size: 28rpx;
  8 + color: #fff;
  9 + position: relative;
  10 + padding:30rpx 30rpx 85rpx 30rpx;
  11 + border-radius: 16rpx;
  12 + box-shadow: 0rpx 15rpx 30rpx 0rpx rgba(9, 60, 121, 0.08);
  13 + overflow: hidden;
  14 +}
  15 +
  16 +.head_img {
  17 + width: 180rpx;
  18 + height: 180rpx;
  19 + display: flex;
  20 + align-items: center;
  21 + justify-items: center;
  22 + margin-right: 32rpx;
  23 + box-shadow: 0rpx 5rpx 10rpx 0rpx rgba(2, 134, 255, 0.66);
  24 +}
  25 +
  26 +.head_img image {
  27 + width: 100%;
  28 + height: 100%;
  29 +}
  30 +
  31 +.head_info_box {
  32 + line-height: 50rpx;
  33 +}
  34 +
  35 +.user_name {
  36 + font-size: 32rpx;
  37 + font-weight: bold;
  38 +}
  39 +
  40 +.edit_box {
  41 + display: flex;
  42 + align-items: center;
  43 + font-size: 26rpx;
  44 + color: #f80;
  45 + background: #fff;
  46 + border-radius: 26rpx;
  47 + padding: 13rpx 30rpx;
  48 + position: absolute;
  49 + right: 30rpx;
  50 + top: 50%;
  51 + transform: translateY(-50%);
  52 +}
  53 +
  54 +.icon-xiugai {
  55 + font-size: 26rpx;
  56 + margin-right: 11rpx;
  57 +}
  58 +
  59 +.banner_info {
  60 + width: 100%;
  61 + height: 60rpx;
  62 + line-height: 60rpx;
  63 + background: #0073dc;
  64 + font-size: 28rpx;
  65 + color: #fff;
  66 + text-align: center;
  67 + position: absolute;
  68 + bottom: 0;
  69 + left: 0;
  70 +}
  71 +
  72 +.content_box {
  73 + padding: 30rpx;
  74 +}
  75 +
  76 +.list_title {
  77 + font-size: 40rpx;
  78 + color: #000;
  79 + margin-bottom: 40rpx;
  80 +}
  81 +
  82 +.list_info_box {
  83 + font-size: 24rpx;
  84 + color: #97a0a8;
  85 + margin-bottom: 30rpx;
  86 +}
  87 +
  88 +.line {
  89 + display: inline-block;
  90 + width: 1rpx;
  91 + height: 22rpx;
  92 + background: #dedede;
  93 + margin: 0 15rpx;
  94 +}
  95 +
  96 +.bottom_box {
  97 + width: 120rpx;
  98 + height: 120rpx;
  99 + background: linear-gradient(-30deg, rgba(31, 118, 220, 1), rgba(69, 149, 244, 1));
  100 + border-radius: 50%;
  101 + font-size: 24rpx;
  102 + color: #fff;
  103 + display: flex;
  104 + align-items: center;
  105 + justify-content: center;
  106 + flex-direction: column;
  107 + position: fixed;
  108 + bottom: 50rpx;
  109 + right: 50rpx;
  110 +}
  111 +.bottom_box button{
  112 + position: absolute;
  113 + top:0;
  114 + left:0;
  115 + width: 100%;
  116 + height: 100%;
  117 + z-index:1000;
  118 + opacity: 0;
  119 +}
  120 +
  121 +.icon-zhuanfa {
  122 + font-size: 45rpx;
  123 + font-weight: bold;
  124 + margin-bottom: 5rpx;
  125 +}
  126 +
  127 +.list_content {
  128 + font-size: 30rpx;
  129 + color: #252729;
  130 + line-height: 50rpx;
  131 + text-indent: 2rem;
  132 + margin-top: 70rpx;
  133 +}
  1 +// pages/CustomerManagement/CustomerManagement.js
  2 +const app = getApp()
  3 +Page({
  4 +
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + currentTab: 1,
  10 + Status:'',
  11 + KeyWord:'',
  12 + list:''
  13 + },
  14 + //点击切换
  15 + tabCharge(e) {
  16 + var that = this;
  17 + if (this.data.currentTab === e.target.dataset.current) {
  18 + return false;
  19 + } else {
  20 + that.setData({
  21 + currentTab: e.target.dataset.current
  22 + })
  23 + that.getdata();
  24 + }
  25 +
  26 + },
  27 +
  28 + //设置查询的关键词
  29 + setKeyWord(e) {
  30 + let that = this;
  31 + that.setData({
  32 + KeyWord: e.detail.value
  33 + })
  34 + },
  35 +
  36 + //获取客户管理页面信息
  37 + getdata() {
  38 + let that = this;
  39 + let url = 'counselor/familylist';
  40 + let param = {
  41 + UserId: app.globalData.UserId,
  42 + Status: that.data.currentTab,
  43 + KeyWord: that.data.KeyWord
  44 + }
  45 + app.post(url, param).then((res) => {
  46 + console.log(res)
  47 + if (res.data.code == 200) {
  48 + if (res.data.data.type == '-13') {
  49 + wx.showToast({
  50 + title: '会员到期,请充值',
  51 + icon: 'none'
  52 + }, 2000)
  53 + wx.navigateTo({
  54 + url: '../../my/recharge/recharge',
  55 + })
  56 + } else if (res.data.data.type == '-12') {
  57 + wx.showToast({
  58 + title: '您已经被禁用,请联系管理员',
  59 + icon: 'none'
  60 + }, 2000)
  61 + } else if (res.data.data.type == '-11') {
  62 + wx.showToast({
  63 + title: '您的权限不足',
  64 + icon: 'none'
  65 + }, 2000)
  66 + } else {
  67 + that.setData({
  68 + list: res.data.data.list,
  69 + cid: res.data.data.list[0].users[0].cid,
  70 + KeyWord: ''
  71 + })
  72 + }
  73 + }
  74 +
  75 + }).catch((errMsg) => {
  76 + // console.log(errMsg)
  77 + })
  78 + },
  79 +
  80 + //家庭信息
  81 + familyData() {
  82 + wx.navigateTo({
  83 + url: '../remind/remind',
  84 + })
  85 + },
  86 +
  87 + //个人信息详情
  88 + infoDetail() {
  89 + wx.navigateTo({
  90 + url: '../personInfo/personInfo',
  91 + })
  92 + },
  93 +
  94 + //创建新家庭
  95 + addFamily() {
  96 + var flag=true
  97 + wx.navigateTo({
  98 + url: '../addNewFamily/addNewFamily?flag=' + flag,
  99 + })
  100 + },
  101 +
  102 + //管理成员
  103 + addPerson(e) {
  104 + let familyid = e.currentTarget.dataset.familyid;
  105 + wx.navigateTo({
  106 + url: '../addNewFamily/addNewFamily?familyid=' + familyid,
  107 + })
  108 + },
  109 + /**
  110 + * 生命周期函数--监听页面加载
  111 + */
  112 + onLoad: function(options) {
  113 + this.getdata()
  114 + },
  115 +
  116 + /**
  117 + * 生命周期函数--监听页面初次渲染完成
  118 + */
  119 + onReady: function() {
  120 +
  121 + },
  122 +
  123 + /**
  124 + * 生命周期函数--监听页面显示
  125 + */
  126 + onShow: function() {
  127 +
  128 + },
  129 +
  130 + /**
  131 + * 生命周期函数--监听页面隐藏
  132 + */
  133 + onHide: function() {
  134 +
  135 + },
  136 +
  137 + /**
  138 + * 生命周期函数--监听页面卸载
  139 + */
  140 + onUnload: function() {
  141 +
  142 + },
  143 +
  144 + /**
  145 + * 页面相关事件处理函数--监听用户下拉动作
  146 + */
  147 + onPullDownRefresh: function() {
  148 +
  149 + },
  150 +
  151 + /**
  152 + * 页面上拉触底事件的处理函数
  153 + */
  154 + onReachBottom: function() {
  155 +
  156 + },
  157 +
  158 + /**
  159 + * 用户点击右上角分享
  160 + */
  161 + onShareAppMessage: function() {
  162 +
  163 + }
  164 +})
1 { 1 {
2 - "navigationBarTitleText": "查看启动日志" 2 + "navigationBarTitleText": "客户管理"
3 } 3 }
  1 +<!--pages/CustomerManagement/CustomerManagement.wxml-->
  2 +<view class='search_box'>
  3 + <view class='search_item'>
  4 + <view class='iconfont icon-sousuo1'></view>
  5 + <view class='search_input'>
  6 + <input placeholder='搜索姓名或标签' bindinput='setKeyWord'></input>
  7 + </view>
  8 + </view>
  9 + <view bindtap='getdata'>搜索</view>
  10 +</view>
  11 +<view class='line_box'></view>
  12 +<view class='content_box'>
  13 + <view class='tab_box'>
  14 + <view class="tab_item {{currentTab==1?'tab_active':''}}" data-current="1" bindtap='tabCharge'>提醒日期升序</view>
  15 + <view class="tab_item {{currentTab==2?'tab_active':''}}" data-current="2" bindtap='tabCharge'>优先级排序</view>
  16 + </view>
  17 + <view class='item_list' wx:for='{{list}}' wx:key=''>
  18 + <view class='list_left_box'>
  19 + <view class='list_label_box' bindtap='familyData'>
  20 + <view class='iconfont icon-jiating1'></view>
  21 + <view>跟踪提醒</view>
  22 + <text class='iconfont icon-yuan label_icon' wx:if='{{item.warn_status==1}}'></text>
  23 + </view>
  24 + <view class='list_label_item'>
  25 + <view class='label_item' wx:for='{{item.users}}' wx:for-item='user' wx:key='' data-family_id='{{user.family_id}}' bindtap='infoDetail'>
  26 + <text>{{user.name}}({{user.family_role}})</text>
  27 + <text class='iconfont icon-yuan '></text>
  28 + </view>
  29 + <!-- <view class='label_item'>
  30 + <text>曹文正(爸爸)</text>
  31 + <text class='iconfont icon-yuan '></text>
  32 + </view>
  33 + <view class='label_item'>
  34 + <text>曹文正(爸爸)</text>
  35 + <text class='iconfont icon-yuan user_point'></text>
  36 + </view> -->
  37 + </view>
  38 + </view>
  39 + <view class='list_right_box'>
  40 + <view class='list_btn_box' bindtap='addPerson' data-familyid='{{item.family_id}}'>
  41 + <view class='list_btn'>
  42 + <view class='iconfont icon-shezhi'></view>
  43 + </view>
  44 + <view>管理成员</view>
  45 + </view>
  46 + </view>
  47 + </view>
  48 + <view class='null_box'></view>
  49 + <view class='bottom'>
  50 + <view class='bottom_box' bindtap='addFamily'>创建新家庭</view>
  51 + </view>
  52 +</view>
  1 +/* pages/CustomerManagement/CustomerManagement.wxss */
  2 +
  3 +.line_box {
  4 + width: 100%;
  5 + height: 16rpx;
  6 + background: #f5f6fa;
  7 +}
  8 +
  9 +.search_box {
  10 + width: 100%;
  11 + display: flex;
  12 + align-items: center;
  13 + justify-content: space-between;
  14 + padding: 10rpx 30rpx;
  15 + box-sizing: border-box;
  16 + font-size: 30rpx;
  17 + color: #666;
  18 +}
  19 +
  20 +.search_item {
  21 + width: 80%;
  22 + height: 100%;
  23 + background: rgba(245, 245, 250, 1);
  24 + border-radius: 5rpx;
  25 + display: flex;
  26 + align-items: center;
  27 + padding: 10rpx 20rpx;
  28 +}
  29 +
  30 +.icon-sousuo1 {
  31 + font-size: 40rpx;
  32 + color: #ccc;
  33 + margin-right: 20rpx;
  34 +}
  35 +
  36 +.search_input input {
  37 + font-size: 30rpx;
  38 + border: 0;
  39 + outline: none;
  40 +}
  41 +
  42 +.tab_box {
  43 + width: 400rpx;
  44 + height: 60rpx;
  45 + background: rgba(255, 255, 255, 1);
  46 + border: 1rpx solid rgba(43, 154, 255, 1);
  47 + border-radius: 30rpx;
  48 + display: flex;
  49 + align-items: center;
  50 + justify-content: center;
  51 + font-size: 24rpx;
  52 + color: #999;
  53 + margin: 30rpx auto 50rpx auto;
  54 + overflow: hidden;
  55 +}
  56 +
  57 +.tab_item {
  58 + width: 50%;
  59 + height: 100%;
  60 + border-right: 1rpx solid #2b9aff;
  61 + display: flex;
  62 + align-items: center;
  63 + justify-content: center;
  64 +}
  65 +
  66 +.tab_item:last-child {
  67 + border: 0;
  68 +}
  69 +
  70 +.tab_active {
  71 + background: #d7ecff;
  72 + color: #0286ff;
  73 +}
  74 +
  75 +.content_box {
  76 + padding: 0 30rpx;
  77 + box-sizing: border-box;
  78 +}
  79 +
  80 +.item_list {
  81 + min-height: 222rpx;
  82 + display: flex;
  83 + align-items: center;
  84 + justify-content: space-between;
  85 + box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(0, 0, 0, 0.08);
  86 + border-radius: 5rpx;
  87 + padding: 16rpx 20rpx;
  88 + box-sizing: border-box;
  89 + position: relative;
  90 + margin-bottom: 40rpx;
  91 +}
  92 +
  93 +.list_left_box {
  94 + display: flex;
  95 + align-items: flex-start;
  96 +}
  97 +
  98 +.list_label_box {
  99 + width: 163rpx;
  100 + height: 210rpx;
  101 + background: rgba(2, 134, 255, 1);
  102 + box-shadow: 2rpx 8rpx 30rpx 0rpx rgba(0, 0, 0, 0.24);
  103 + border-radius: 5rpx;
  104 + font-size: 24rpx;
  105 + color: #fff;
  106 + display: flex;
  107 + align-items: center;
  108 + justify-content: center;
  109 + flex-direction: column;
  110 + position: absolute;
  111 + left: 0;
  112 + top: -20rpx;
  113 +}
  114 +
  115 +.icon-jiating1 {
  116 + font-size: 80rpx;
  117 +}
  118 +
  119 +.icon-yuan {
  120 + font-size: 16rpx;
  121 + position: absolute;
  122 + right: 0;
  123 + top: 0;
  124 + color: #0286ff;
  125 +}
  126 +
  127 +.label_icon {
  128 + color: #f00;
  129 +}
  130 +
  131 +.user_point {
  132 + color: #0ed137;
  133 + position: absolute;
  134 + right: 0;
  135 + bottom: 0;
  136 + top: 80%;
  137 +}
  138 +
  139 +.list_label_item {
  140 + /* width: 80%; */
  141 + display: flex;
  142 + align-items: center;
  143 + flex-wrap: wrap;
  144 + margin-left: 170rpx;
  145 +}
  146 +
  147 +.label_item {
  148 + width: 115rpx;
  149 + height: 80rpx;
  150 + background: rgba(242, 244, 247, 1);
  151 + border-radius: 5rpx;
  152 + font-size: 24rpx;
  153 + color: #1a1a1a;
  154 + position: relative;
  155 + display: flex;
  156 + align-items: center;
  157 + justify-content: center;
  158 + margin: 0 20rpx 20rpx 0;
  159 + padding: 0 20rpx;
  160 +}
  161 +
  162 +.list_right_box {
  163 + width: 20%;
  164 +}
  165 +
  166 +.list_btn_box {
  167 + display: flex;
  168 + align-items: center;
  169 + justify-content: center;
  170 + flex-direction: column;
  171 + font-size: 24rpx;
  172 + color: #1a1a1a;
  173 +}
  174 +
  175 +.list_btn {
  176 + width: 80rpx;
  177 + height: 80rpx;
  178 + background: linear-gradient(-40deg, rgba(246, 200, 44, 1), rgba(250, 189, 75, 1));
  179 + border-radius: 40rpx;
  180 + color: #fff;
  181 + display: flex;
  182 + align-items: center;
  183 + justify-content: center;
  184 + margin-bottom: 12rpx;
  185 +}
  186 +
  187 +.icon-shezhi {
  188 + font-size: 40rpx;
  189 +}
  190 +
  191 +.bottom {
  192 + width: 100%;
  193 + height: 120rpx;
  194 + background: #fff;
  195 + position: fixed;
  196 + bottom: 0rpx;
  197 + left: 50%;
  198 + transform: translateX(-50%);
  199 + display: flex;
  200 + align-items: center;
  201 + justify-content: center;
  202 +}
  203 +
  204 +.bottom_box {
  205 + width: 90%;
  206 + height: 88rpx;
  207 + background: rgba(2, 134, 255, 1);
  208 + border-radius: 44rpx;
  209 + font-size: 36rpx;
  210 + color: #fff;
  211 + display: flex;
  212 + align-items: center;
  213 + justify-content: center;
  214 +}
  215 +
  216 +.null_box {
  217 + width: 100%;
  218 + height: 120rpx;
  219 +}
  1 +// pages/EntryInformation/EntryInformation.js
  2 +const app = getApp();
  3 +Page({
  4 + data: {
  5 + sexArray: ['男', '女'],
  6 + card_Array: ['身份证', '护照', '出生证', '军官证', '港澳通行证'],
  7 + birth_date: '',
  8 + addsess_current: 0,
  9 + label_type: [],
  10 + list: {
  11 + name: '',
  12 + sex: '',
  13 + family_role: '',
  14 + income: '',
  15 + mobile: '',
  16 + birthday: '',
  17 + work: '',
  18 + work_address: '',
  19 + address: '',
  20 + mail_address: 0,
  21 + id_type: '',
  22 + id_num: '',
  23 + text: '',
  24 + label_ids: []
  25 + },
  26 + familyid: 0, //家庭ID
  27 + hasimg: '',
  28 + DefId: ''
  29 + },
  30 +
  31 + //名字
  32 + setName(e) {
  33 + var list = this.data.list;
  34 + list.name = e.detail.value;
  35 + this.setData({
  36 + list: list
  37 + })
  38 + },
  39 +
  40 + //选择性别
  41 + selectSex(e) {
  42 + var list = this.data.list;
  43 + var sexArray = this.data.sexArray
  44 + list.sex = sexArray[e.detail.value];
  45 + this.setData({
  46 + sex_index: e.detail.value,
  47 + list: list
  48 + })
  49 + },
  50 +
  51 + //选择家庭角色
  52 + familyRole(e) {
  53 + let list = this.data.list;
  54 + list.family_role = e.detail.value;
  55 + this.setData({
  56 + list: list
  57 + })
  58 + },
  59 +
  60 + //选择年收入
  61 + income(e) {
  62 + let list = this.data.list;
  63 + list.income = e.detail.value;
  64 + this.setData({
  65 + list: list
  66 + })
  67 + },
  68 +
  69 + //手机号
  70 + setMobile(e) {
  71 + let list = this.data.list;
  72 + list.mobile = e.detail.value;
  73 + this.setData({
  74 + list: list
  75 + })
  76 + },
  77 +
  78 + //出生日期
  79 + birthDate(e) {
  80 + var list = this.data.list;
  81 + list.birthday = e.detail.value;
  82 + this.setData({
  83 + birth_date: e.detail.value,
  84 + list: list
  85 + })
  86 + },
  87 +
  88 + //选择家庭角色
  89 + setWork(e) {
  90 + let list = this.data.list;
  91 + list.work = e.detail.value;
  92 + this.setData({
  93 + list: list
  94 + })
  95 + },
  96 +
  97 + //选择家庭角色
  98 + setworkAddress(e) {
  99 + let list = this.data.list;
  100 + list.work_address = e.detail.value;
  101 + this.setData({
  102 + list: list
  103 + })
  104 + },
  105 +
  106 +
  107 + //选择家庭角色
  108 + setSddress(e) {
  109 + let list = this.data.list;
  110 + list.address = e.detail.value;
  111 + this.setData({
  112 + list: list
  113 + })
  114 + },
  115 +
  116 + //通讯切换
  117 + addressCharge(e) {
  118 + var that = this;
  119 + var list = this.data.list
  120 + list.mail_address = e.target.dataset.current
  121 + if (this.data.addsess_current === e.target.dataset.current) {
  122 + return false;
  123 + } else {
  124 + that.setData({
  125 + addsess_current: e.target.dataset.current,
  126 + list: list
  127 + })
  128 + }
  129 + },
  130 +
  131 + //选择证件类型
  132 + selectIdCard(e) {
  133 + let list = this.data.list;
  134 + var card_Array = this.data.card_Array
  135 + list.id_type = parseInt(e.detail.value) + 1;
  136 + this.setData({
  137 + card_index: e.detail.value,
  138 + list: list
  139 + })
  140 + },
  141 +
  142 + //选择家庭角色
  143 + setIdNum(e) {
  144 + let list = this.data.list;
  145 + list.id_num = e.detail.value;
  146 + this.setData({
  147 + list: list
  148 + })
  149 + },
  150 +
  151 + //用户描述
  152 + descript(e) {
  153 + let list = this.data.list;
  154 + list.text = e.detail.value;
  155 + this.setData({
  156 + list: list
  157 + })
  158 + },
  159 +
  160 + //选择用户标签
  161 + selectLabel(e) {
  162 + var list = this.data.list
  163 + var id = e.currentTarget.dataset.id
  164 + var label_ids = list.label_ids
  165 + label_ids.push(id)
  166 + console.log(label_ids)
  167 + var status = e.currentTarget.dataset.status
  168 + var label_type = this.data.label_type
  169 + var mindex = e.currentTarget.dataset.mindex
  170 + var sindex = e.currentTarget.dataset.sindex
  171 + label_type[mindex].data[sindex].status = !(label_type[mindex].data[sindex].status)
  172 + this.setData({
  173 + label_type: label_type,
  174 + list: list
  175 + });
  176 + },
  177 + // 选择上传的图片
  178 + chooseImg() { //这里是选取图片的方法
  179 + var that = this;
  180 + wx.chooseImage({
  181 + count: 1,
  182 + success: (res) => {
  183 + var tempFilePaths = res.tempFilePaths
  184 + let url = '/users/upload'
  185 + let strtime = +new Date()
  186 + let params = {
  187 + picurl: tempFilePaths[0],
  188 + strtime: strtime,
  189 + token: app.strTime(strtime)
  190 + }
  191 + wx.uploadFile({
  192 + url: 'https://insurance.w.broteam.cn/pubilc/upload', //仅为示例,非真实的接口地址
  193 + filePath: tempFilePaths[0],
  194 + name: 'picurl',
  195 + formData: {
  196 + 'strtime': strtime,
  197 + 'token': app.strTime(strtime)
  198 + },
  199 + success: function(res) {
  200 + var data = JSON.parse(res.data);
  201 + var picurl = data.data.picurl;
  202 + picurl = picurl.indexOf('http') != '-1' ? picurl : "http://" + picurl
  203 + var list = that.data.list
  204 + list.picurl = picurl
  205 + that.setData({
  206 + hasimg: picurl,
  207 + list: list
  208 + })
  209 + }
  210 + })
  211 + }
  212 + })
  213 + },
  214 +
  215 +
  216 + //成员信息的修改,新增
  217 + listVerify(e) {
  218 + var list = this.data.list;
  219 + console.log(e)
  220 + var idcardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
  221 + let that = this;
  222 + var warn = ""; //弹框时提示的内容
  223 + var flag = true; //判断信息输入是否完整
  224 + var state = that.data.state
  225 + if (list.name == "") {
  226 + warn = "请填写您的姓名!";
  227 + } else if (list.family_role == '') {
  228 + warn = '请填写您的家庭角色'
  229 + } else if (list.status_num != '' && !idcardReg.test(list.status_num) && state == 0) {
  230 + warn = "请填写正确的身份号"
  231 + } else {
  232 + flag = false; //若必要信息都填写,则不用弹框.正常调用接口
  233 + let paramlist = {
  234 + name: list.name,
  235 + sex: list.sex,
  236 + family_role: list.family_role,
  237 + money: list.income,
  238 + mobile: list.mobile,
  239 + birthday: list.birthday,
  240 + work: list.work,
  241 + work_address: list.work_address,
  242 + address: list.address,
  243 + mid: list.mail_address,
  244 + user_status: list.id_type,
  245 + status_num: list.id_num,
  246 + picurl: list.picurl,
  247 + text: list.text,
  248 + label_ids: list.label_ids,
  249 + family_id: that.data.familyid,
  250 + DefId: that.data.DefId,
  251 + UserId: app.globalData.UserId
  252 + }
  253 + let url = 'counselor/deflistdo'
  254 + app.post(url, paramlist).then((res) => {
  255 + console.log(res)
  256 + if (res.data.code == 200) {
  257 + wx.showToast({
  258 + title: '操作成功',
  259 + icon: 'success',
  260 + duration: 2000
  261 + })
  262 + if (this.data.flag == 'add') {
  263 + wx.navigateBack({
  264 + delta: 2
  265 + })
  266 + } else {
  267 + wx.navigateBack({
  268 + delta: 1
  269 + })
  270 + }
  271 + }
  272 + }).catch((errMsg) => {
  273 + console.log(errMsg)
  274 + })
  275 + }
  276 + if (flag == true) {
  277 + wx.showToast({
  278 + title: warn,
  279 + icon: 'none',
  280 + duration: 2000
  281 + })
  282 + }
  283 + },
  284 + //获取成员详细信息
  285 + labelInfo() {
  286 + let that = this;
  287 + let url = 'counselor/DefAdd';
  288 + let params = {}
  289 + app.post(url, params).then((res) => {
  290 + console.log(res)
  291 + if (res.data.code == 200) {
  292 + var list = this.data.list
  293 + // label_type = res.data.data
  294 + that.setData({
  295 + label_type: res.data.data
  296 + })
  297 +
  298 + }
  299 +
  300 + }).catch((errMsg) => {
  301 + console.log(errMsg)
  302 + })
  303 +
  304 + },
  305 +
  306 + /**
  307 + * 生命周期函数--监听页面加载
  308 + */
  309 + onLoad: function(options) {
  310 + this.labelInfo()
  311 + this.setData({
  312 + DefId: options.DefId,
  313 + familyid: options.familyid
  314 + })
  315 + },
  316 +
  317 + /**
  318 + * 生命周期函数--监听页面初次渲染完成
  319 + */
  320 + onReady: function() {
  321 +
  322 + },
  323 +
  324 + /**
  325 + * 生命周期函数--监听页面显示
  326 + */
  327 + onShow: function() {
  328 +
  329 + },
  330 +
  331 + /**
  332 + * 生命周期函数--监听页面隐藏
  333 + */
  334 + onHide: function() {
  335 +
  336 + },
  337 +
  338 + /**
  339 + * 生命周期函数--监听页面卸载
  340 + */
  341 + onUnload: function() {
  342 +
  343 + },
  344 +
  345 + /**
  346 + * 页面相关事件处理函数--监听用户下拉动作
  347 + */
  348 + onPullDownRefresh: function() {
  349 +
  350 + },
  351 +
  352 + /**
  353 + * 页面上拉触底事件的处理函数
  354 + */
  355 + onReachBottom: function() {
  356 +
  357 + },
  358 +
  359 + /**
  360 + * 用户点击右上角分享
  361 + */
  362 + onShareAppMessage: function() {
  363 +
  364 + }
  365 +})
  1 +{
  2 + "navigationBarTitleText": "个人信息录入"
  3 +}
  1 +<!--pages/EntryInformation/EntryInformation.wxml-->
  2 +<form bindsubmit='listVerify'>
  3 + <view class='content_item'>
  4 + <view class='item_list'>
  5 + <view class='list_title'>
  6 + <text class='list_icon'>*</text>
  7 + <text>姓名</text>
  8 + </view>
  9 + <view class='list_input'>
  10 + <input type='text' placeholder='请输入姓名' value='{{list.name}}' bindinput='setName'></input>
  11 + </view>
  12 + </view>
  13 + <view class='item_list'>
  14 + <view class='list_title'>
  15 + <text class='list_icon'>*</text>
  16 + <text>性别</text>
  17 + </view>
  18 + <view class='list_input'>
  19 + <picker class='picker' range='{{sexArray}}' value='{{sex_index}}' bindchange='selectSex'>
  20 + <input placeholder='请输入性别' value='{{list.sex}}' disabled='true'></input>
  21 + </picker>
  22 + </view>
  23 + </view>
  24 + <view class='item_list'>
  25 + <view class='list_title'>
  26 + <text class='list_icon'>*</text>
  27 + <text>家庭角色</text>
  28 + </view>
  29 + <view class='list_input'>
  30 + <input type='text' placeholder='请输入家庭角色' value='{{list.family_role}}' bindinput='familyRole'></input>
  31 + </view>
  32 + </view>
  33 + <view class='item_list'>
  34 + <view class='list_title'>个人年收入</view>
  35 + <view class='list_input'>
  36 + <input type='digit' placeholder='请输入个人年收入' value='{{list.income}}' bindinput='income'></input>
  37 + </view>
  38 + </view>
  39 + <view class='item_list'>
  40 + <view class='list_title'>手机号 </view>
  41 + <view class='list_input'>
  42 + <input type='number' placeholder='请输入手机号' value='{{list.mobile}}' bindinput='setMobile'></input>
  43 + </view>
  44 + </view>
  45 +
  46 + <view class='item_list'>
  47 + <view class='list_title'>
  48 + <text class='list_icon'>*</text>
  49 + <text>出生日期</text>
  50 + </view>
  51 + <view class='list_input'>
  52 + <picker class='picker' mode="date" value='{{list.birthday }}' bindchange='birthDate'>
  53 + <input placeholder='请选择出生日期' value='{{list.birthday }}' disabled='true'></input>
  54 + </picker>
  55 + </view>
  56 + </view>
  57 + <view class='item_list'>
  58 + <view class='list_title'>单位名称 </view>
  59 + <view class='list_input'>
  60 + <input type='text' placeholder='请输入单位名称' value='{{list.work}}' bindinput='setWork'></input>
  61 + </view>
  62 + </view>
  63 + <view class='item_list'>
  64 + <view class='list_title'>单位地址 </view>
  65 + <view class='list_input'>
  66 + <input type='text' placeholder='请输入单位地址' value='{{list.work_address}}' bindinput='setworkAddress'></input>
  67 + </view>
  68 + </view>
  69 + <view class='item_list'>
  70 + <view class='list_title'>家庭地址 </view>
  71 + <view class='list_input'>
  72 + <input type='text' placeholder='请输入家庭地址' value='{{list.address}}' bindinput='setSddress'></input>
  73 + </view>
  74 + </view>
  75 +
  76 + <view class='item_list'>
  77 + <view class='list_title'>通讯地址 </view>
  78 + <view class='list_input'>
  79 + <view class="address_btn {{addsess_current==0?'unit_address':''}}" data-current='0' bindtap='addressCharge'>家庭地址</view>
  80 + <view class="address_btn {{addsess_current==1?'unit_address':''}}" data-current='1' bindtap='addressCharge'>单位地址</view>
  81 + </view>
  82 + </view>
  83 +
  84 + <view class='item_list'>
  85 + <view class='list_title'>证件类型</view>
  86 + <view class='list_input'>
  87 + <picker class='picker' range='{{card_Array}}' value='{{card_index}}' bindchange='selectIdCard'>
  88 + <input placeholder='请选择证件类型' value='{{card_Array[card_index]}}' disabled='true'></input>
  89 + </picker>
  90 + </view>
  91 + </view>
  92 + <view class='item_list'>
  93 + <view class='list_title'>证件号 </view>
  94 + <view class='list_input'>
  95 + <input type='text' placeholder='请输入证件号' value='{{list.id_num}}' bindinput='setIdNum'></input>
  96 + </view>
  97 + </view>
  98 + </view>
  99 + <view class='box'>
  100 + <!-- 上传图片 -->
  101 + <view class='upload_box'>
  102 + <view class='popup_img' wx:if='{{hasimg}}' bindtap='chooseImg'>
  103 + <image src='{{list.picurl}}' bindtap='viewImg'></image>
  104 + </view>
  105 + <view bindtap='chooseImg' wx:else>
  106 + <view class='iconfont icon-add'></view>
  107 + <view>请上传清晰的保单照片</view>
  108 + </view>
  109 + </view>
  110 + </view>
  111 + <view class='content_item'>
  112 + <view class='item_list'>
  113 + <view class='list_title'>用户描述</view>
  114 + </view>
  115 + <view class='list_textarea'>
  116 + <textarea placeholder='请在此添加对用户的描述' value='{{list.text}}' placeholder-class='font_color' bindinput='descript'></textarea>
  117 + </view>
  118 + </view>
  119 + <view class='content_item'>
  120 + <view class='item_list'>
  121 + <view class='list_title'>添加用户标签</view>
  122 + </view>
  123 + <view class='item_list item_label_box' wx:for='{{label_type}}' wx:key='' data-Mindex='{{index}}'>
  124 + <view class='list_label_title'>{{item.label}} </view>
  125 + <view class='list_label'>
  126 + <view class="address_btn {{item.status?'unit_address':''}}" data-id='{{item.id}}' data-status='{{item.status}}' wx:for='{{item.data}}' wx:key='' data-Sindex='{{index}}' data-Mindex='{{index}}' bindtap='selectLabel'>{{item.name}}</view>
  127 + </view>
  128 + </view>
  129 + </view>
  130 +
  131 + <!-- 底部按钮 -->
  132 + <view class='null_box'></view>
  133 + <view class='bottom_box'>
  134 + <button class='bottom_btn' data-type='complete' formType='submit'>完成</button>
  135 + </view>
  136 +</form>
  1 +/* pages/my/listDetail/listDetail.wxss */
  2 +
  3 +page {
  4 + background: #f5f5fa;
  5 +}
  6 +
  7 +.content_item {
  8 + background: #fff;
  9 + padding: 0 38rpx;
  10 + margin-top: 16rpx;
  11 +}
  12 +
  13 +.item_list {
  14 + display: flex;
  15 + align-items: center;
  16 + border-bottom: 1rpx dashed #ebebeb;
  17 + padding: 23rpx 0;
  18 +}
  19 +.list_icon{
  20 + font-size: 30rpx;
  21 + color: #f00;
  22 + margin-right: 10rpx;
  23 +}
  24 +
  25 +.list_title {
  26 + width: 185rpx;
  27 + font-size: 29rpx;
  28 + color: #000;
  29 +}
  30 +
  31 +.list_label_title {
  32 + width: 140rpx;
  33 + font-size: 29rpx;
  34 + color: #000;
  35 +}
  36 +
  37 +.project {
  38 + background: none;
  39 +}
  40 +
  41 +.symbol_icon {
  42 + font-size: 27rpx;
  43 + color: red;
  44 +}
  45 +
  46 +.list_input {
  47 + width: 75%;
  48 + display: flex;
  49 + align-items: center;
  50 +}
  51 +
  52 +.list_input input {
  53 + border: 0;
  54 + outline: none;
  55 + font-size: 30rpx;
  56 + color: #000;
  57 +}
  58 +
  59 +.list_input .picker {
  60 + width: 100%;
  61 + height: 53rpx;
  62 + font-size: 30rpx;
  63 + color: #000;
  64 + line-height: 53rpx;
  65 +}
  66 +
  67 +.item_label_box {
  68 + align-items: flex-start;
  69 +}
  70 +
  71 +.list_label {
  72 + width: 75%;
  73 + display: flex;
  74 + align-items: center;
  75 + flex-wrap: wrap;
  76 +}
  77 +
  78 +.list_label .address_btn {
  79 + margin-bottom: 20rpx;
  80 +}
  81 +
  82 +.list_textarea {
  83 + width: 100%;
  84 +}
  85 +
  86 +.list_textarea textarea {
  87 + width: 100%;
  88 + padding: 30rpx 0;
  89 + box-sizing: border-box;
  90 + min-height: 140rpx;
  91 +}
  92 +
  93 +.font_color {
  94 + font-size: 28rpx;
  95 + color: #999;
  96 +}
  97 +
  98 +.icon-add {
  99 + font-size: 32rpx;
  100 + color: #ccc;
  101 + text-align: center;
  102 + padding: 20rpx 0;
  103 +}
  104 +
  105 +.icon-jinru {
  106 + float: right;
  107 + color: #ccc;
  108 +}
  109 +
  110 +.item {
  111 + justify-content: space-between;
  112 +}
  113 +
  114 +.box {
  115 + padding: 0 32rpx;
  116 +}
  117 +
  118 +.upload_box {
  119 + font-size: 28rpx;
  120 + color: #1a1a1a;
  121 + background: #fff;
  122 + margin-top: 16rpx;
  123 + text-align: center;
  124 + padding: 36rpx 0;
  125 + border-radius: 10rpx;
  126 + box-shadow: 2rpx 0rpx 3rpx rgba(235, 235, 235, 1);
  127 +}
  128 +
  129 +.popup_img {
  130 + position: relative;
  131 +}
  132 +
  133 +.icon-guanbi {
  134 + position: absolute;
  135 + top: 10rpx;
  136 + right: 20rpx;
  137 + color: #ccc;
  138 +}
  139 +
  140 +.upload_box .icon-add {
  141 + font-size: 64rpx;
  142 +}
  143 +
  144 +.content_info {
  145 + font-size: 24rpx;
  146 + color: #999;
  147 + margin-top: 22rpx;
  148 +}
  149 +
  150 +.null_box {
  151 + width: 100%;
  152 + height: 120rpx;
  153 +}
  154 +
  155 +.bottom_box {
  156 + width: 100%;
  157 + height: 100rpx;
  158 + background: rgba(255, 255, 255, 1);
  159 + box-shadow: 1rpx 0rpx 1rpx rgba(235, 233, 232, 1);
  160 + display: flex;
  161 + align-items: center;
  162 + justify-content: flex-end;
  163 + position: fixed;
  164 + bottom: 0;
  165 + padding: 0 32rpx;
  166 + z-index: 5;
  167 + box-sizing: border-box;
  168 +}
  169 +
  170 +.bottom_btn {
  171 + width: 100%;
  172 + height: 80rpx;
  173 + font-size: 32rpx;
  174 + color: #fff;
  175 + background: rgba(2, 134, 255, 1);
  176 + border-radius: 44rpx;
  177 + display: flex;
  178 + align-items: center;
  179 + justify-content: center;
  180 +}
  181 +
  182 +.add_btn {
  183 + width: 260rpx;
  184 + height: 80rpx;
  185 + font-size: 32rpx;
  186 + color: #1a1a1a;
  187 + background: #fff;
  188 + border: 1rpx solid #ebebeb;
  189 + border-radius: 40rpx;
  190 + display: flex;
  191 + align-items: center;
  192 + justify-content: center;
  193 + margin-left: 200rpx;
  194 + margin-right: 20rpx;
  195 +}
  196 +
  197 +.addrisk {
  198 + width: 70%;
  199 + display: flex;
  200 + align-items: center;
  201 + justify-content: space-between;
  202 + text-align: left;
  203 +}
  204 +
  205 +.unit {
  206 + text-align: left;
  207 +}
  208 +
  209 +.address_btn {
  210 + background: none;
  211 + border: 1rpx solid #0286ff;
  212 + color: #0286ff;
  213 + font-size: 32rpx;
  214 + border-radius: 40rpx;
  215 + display: flex;
  216 + align-items: center;
  217 + justify-content: center;
  218 + margin-right: 20rpx;
  219 + padding: 8rpx 30rpx;
  220 +}
  221 +
  222 +.unit_address {
  223 + color: #fff;
  224 + background: rgba(2, 134, 255, 1);
  225 +}
  1 +// pages/Program/Program.js
  2 +const app=getApp();
  3 +Page({
  4 + /**
  5 + * 页面的初始数据
  6 + */
  7 + data: {
  8 + list: [],
  9 + temobj:{
  10 + name:'',
  11 + firm:'',
  12 + text:''
  13 + }
  14 + },
  15 + getlist() {
  16 + let that=this;
  17 + let url = 'counselor/SchemeList';
  18 + let params = {
  19 + userId: app.globalData.UserId
  20 + }
  21 + app.post(url, params).then((res) => {
  22 + if (res.data.code == 200) {
  23 + that.setData({
  24 + list: res.data.data.list
  25 + })
  26 + }
  27 + }).catch((err) => {
  28 + console.log(err)
  29 + })
  30 + },
  31 + setname(e){
  32 + let that = this;
  33 + let list = that.data.list;
  34 + let index = e.currentTarget.dataset.index;
  35 + list[index].name = e.detail.value;
  36 + that.setData({
  37 + list: list
  38 + })
  39 + },
  40 + setfirm(e){
  41 + let that = this;
  42 + let list = that.data.list;
  43 + let index = e.currentTarget.dataset.index;
  44 + list[index].firm = e.detail.value;
  45 + that.setData({
  46 + list: list
  47 + })
  48 + },
  49 + settemname(e){
  50 + let that=this;
  51 + let temobj = that.data.temobj;
  52 + temobj.name = e.detail.value;
  53 + that.setData({
  54 + temobj: temobj
  55 + })
  56 + },
  57 + settemfirm(e) {
  58 + let that = this;
  59 + let temobj = that.data.temobj;
  60 + temobj.firm = e.detail.value;
  61 + that.setData({
  62 + temobj: temobj
  63 + })
  64 + },
  65 + settemtext(e) {
  66 + let that = this;
  67 + let temobj = that.data.temobj;
  68 + temobj.text = e.detail.value;
  69 + that.setData({
  70 + temobj: temobj
  71 + })
  72 + },
  73 + settext(e){
  74 + let that=this;
  75 + let list = that.data.list;
  76 + let index = e.currentTarget.dataset.index;
  77 + list[index].text = e.detail.value;
  78 + that.setData({
  79 + list: list
  80 + })
  81 + },
  82 + deltemobj(){
  83 + let that=this;
  84 + let temobj={
  85 + name: '',
  86 + firm: '',
  87 + text: '',
  88 + }
  89 + that.setData({
  90 + temobj: temobj
  91 + })
  92 + },
  93 + addtemobj(){
  94 +
  95 + let that=this;
  96 + let url ='counselor/SchemeSave';
  97 + let params={
  98 + userId: app.globalData.UserId,
  99 + name: that.data.temobj.name,
  100 + firm: that.data.temobj.firm,
  101 + text: that.data.temobj.text
  102 + }
  103 + app.post(url, params).then((res)=>{
  104 + if(res.data.code==200){
  105 + that.getlist();
  106 + let temobj = {
  107 + name: '',
  108 + firm: '',
  109 + text: '',
  110 + }
  111 + that.setData({
  112 + temobj: temobj
  113 + })
  114 + }
  115 + }).catch((err)=>{
  116 + console.log(err)
  117 + })
  118 + },
  119 + //保存按钮
  120 + del(e){
  121 + let that=this;
  122 + let index = e.currentTarget.dataset.index;
  123 + let list=that.data.list;
  124 + let id = e.currentTarget.id;
  125 + wx.showModal({
  126 + title: '提示',
  127 + content: '是否删除预设方案',
  128 + cancelColor:'#000000',
  129 + confirmColor:'#3cc51f',
  130 + showCancel:true,
  131 + cancelText:'取消',
  132 + confirmText:'确定',
  133 + success(res) {
  134 + if (res.confirm) {
  135 + let url ='counselor/SchemeDelete';
  136 + app.post(url, { SchemeId:id}).then((res)=>{
  137 + if(res.data.code==200){
  138 + if(res.data.data.type==1){
  139 + that.getlist();
  140 +
  141 + wx.showToast({
  142 + title: '操作成功',
  143 + icon: 'none',
  144 + duration: 2000
  145 + })
  146 + }
  147 +
  148 + }
  149 + })
  150 + } else if (res.cancel) {
  151 + console.log('用户点击取消')
  152 + }
  153 + }
  154 + })
  155 + },
  156 + //保存所有
  157 + allsave(){
  158 +
  159 + let that=this;
  160 + let list = this.data.list;
  161 + for (let i = 0; i < list.length;i++){
  162 + if (i == (list.length-1)){
  163 + wx.showToast({
  164 + title: '保存成功',
  165 + icon: 'success',
  166 + duration: 2000,
  167 + mask: true,
  168 + })
  169 + setTimeout(function(){
  170 + wx.navigateBack({
  171 + delta: 1
  172 + })
  173 + },1000)
  174 + }else{
  175 + let url = 'counselor/SchemeSave';
  176 + let params = {
  177 + userId: app.globalData.UserId,
  178 + schemeId: list[i].id,
  179 + name: list[i].name,
  180 + firm: list[i].firm,
  181 + text: list[i].text
  182 + }
  183 + app.post(url, params).then((res) => {
  184 + if (res.data.code == 200) {
  185 +
  186 + }
  187 + }).catch((err) => {
  188 + console.log(err)
  189 + })
  190 + }
  191 + }
  192 + },
  193 +
  194 + /**
  195 + * 生命周期函数--监听页面加载
  196 + */
  197 + onLoad: function (options) {
  198 + let that=this;
  199 + that.getlist();
  200 + },
  201 +
  202 + /**
  203 + * 生命周期函数--监听页面初次渲染完成
  204 + */
  205 + onReady: function () {
  206 +
  207 + },
  208 +
  209 + /**
  210 + * 生命周期函数--监听页面显示
  211 + */
  212 + onShow: function () {
  213 + let that = this;
  214 + that.getlist();
  215 + },
  216 +
  217 + /**
  218 + * 生命周期函数--监听页面隐藏
  219 + */
  220 + onHide: function () {
  221 +
  222 + },
  223 +
  224 + /**
  225 + * 生命周期函数--监听页面卸载
  226 + */
  227 + onUnload: function () {
  228 +
  229 + },
  230 +
  231 + /**
  232 + * 页面相关事件处理函数--监听用户下拉动作
  233 + */
  234 + onPullDownRefresh: function () {
  235 +
  236 + },
  237 +
  238 + /**
  239 + * 页面上拉触底事件的处理函数
  240 + */
  241 + onReachBottom: function () {
  242 +
  243 + },
  244 +
  245 + /**
  246 + * 用户点击右上角分享
  247 + */
  248 + onShareAppMessage: function () {
  249 +
  250 + }
  251 +})
1 <!--pages/Program/Program.wxml--> 1 <!--pages/Program/Program.wxml-->
2 <view class='line_box'></view> 2 <view class='line_box'></view>
3 -<view> 3 +<view wx:for='{{list}}' wx:key>
4 <view class='content_box'> 4 <view class='content_box'>
5 <view class='item_list'> 5 <view class='item_list'>
6 <view>产品名称</view> 6 <view>产品名称</view>
7 <view class='list_input'> 7 <view class='list_input'>
8 - <input placeholder='请输入产品名称'></input> 8 + <input placeholder='请输入产品名称' value='{{item.name}}' bindinput='setmame'
  9 + data-index='{{index}}'></input>
9 </view> 10 </view>
10 </view> 11 </view>
11 <view class='item_list'> 12 <view class='item_list'>
12 <view>保险公司</view> 13 <view>保险公司</view>
13 <view class='list_input'> 14 <view class='list_input'>
14 - <input placeholder='请输入保险公司'></input> 15 + <input placeholder='请输入保险公司' value='{{item.firm}}' bindinput='setfirm'
  16 + data-index='{{index}}'></input>
15 </view> 17 </view>
16 </view> 18 </view>
17 <view class='item_list'> 19 <view class='item_list'>
18 <view>保障内容</view> 20 <view>保障内容</view>
19 <view class='list_input'> 21 <view class='list_input'>
20 - <input placeholder='请输入保障内容'></input> 22 + <input placeholder='请输入保障内容' value='{{item.text}}' bindinput='settext' data-index='{{index}}'></input>
21 </view> 23 </view>
22 </view> 24 </view>
23 </view> 25 </view>
24 <view class='list_btn_box'> 26 <view class='list_btn_box'>
25 - <view class='list_btn'>删除方案</view> 27 + <view class='list_btn' bindtap='del' id='{{item.id}}'>删除方案</view>
26 </view> 28 </view>
  29 + <view class='line_box'></view>
27 </view> 30 </view>
28 -<view class='line_box'></view>  
29 <view> 31 <view>
30 <view class='content_box'> 32 <view class='content_box'>
31 <view class='item_list'> 33 <view class='item_list'>
32 <view>产品名称</view> 34 <view>产品名称</view>
33 <view class='list_input'> 35 <view class='list_input'>
34 - <input placeholder='请输入产品名称'></input> 36 + <input placeholder='请输入产品名称' value='{{temobj.name}}' bindinput='settemname'></input>
35 </view> 37 </view>
36 </view> 38 </view>
37 <view class='item_list'> 39 <view class='item_list'>
38 <view>保险公司</view> 40 <view>保险公司</view>
39 <view class='list_input'> 41 <view class='list_input'>
40 - <input placeholder='请输入保险公司'></input> 42 + <input placeholder='请输入保险公司' value='{{temobj.firm}}' bindinput='settemfirm'></input>
41 </view> 43 </view>
42 </view> 44 </view>
43 <view class='item_list'> 45 <view class='item_list'>
44 <view>保障内容</view> 46 <view>保障内容</view>
45 <view class='list_input'> 47 <view class='list_input'>
46 - <textarea placeholder='请输入保障内容'></textarea> 48 + <textarea placeholder='请输入保障内容' value='{{temobj.text}}' bindinput='settemtext'></textarea>
47 </view> 49 </view>
48 </view> 50 </view>
49 </view> 51 </view>
50 <view class='list_btn_box'> 52 <view class='list_btn_box'>
51 - <view class='list_btn'>删除方案</view>  
52 - <view class='list_btn add_btn'>添加方案</view> 53 + <view class='list_btn' bindtap='deltemobj'>删除方案</view>
  54 + <view class='list_btn add_btn' bindtap='addtemobj'>添加方案</view>
53 </view> 55 </view>
54 </view> 56 </view>
55 <view class='bottom_box'> 57 <view class='bottom_box'>
56 - <view class='save_btn'>保存</view> 58 + <view class='save_btn' bindtap='allsave'>保存</view>
57 </view> 59 </view>
1 /* pages/Program/Program.wxss */ 1 /* pages/Program/Program.wxss */
2 - 2 +page{
  3 + padding:0 0 150rpx 0;
  4 +}
3 .line_box { 5 .line_box {
4 width: 100%; 6 width: 100%;
5 height: 16rpx; 7 height: 16rpx;
  1 +// pages/Suggest/Suggest.js
  2 +const app=getApp();
  3 +Page({
  4 +
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + list:[]
  10 + },
  11 + setcontent(e){
  12 + let list =this.data.list;
  13 + list.content = e.detail.value;
  14 + this.setData({
  15 + list:list
  16 + })
  17 + },
  18 + setreprt(e){
  19 + let list = this.data.list;
  20 + list.report = e.detail.value;
  21 + this.setData({
  22 + list: list
  23 + })
  24 + },
  25 + //查看预设建议列表
  26 + getAdviseLook(){
  27 + let that=this;
  28 + let url ='counselor/AdviseLook';
  29 + app.post(url, {
  30 + userId: app.globalData.UserId
  31 + // userId: 166
  32 + }).then((res)=>{
  33 + if(res.data.code==200){
  34 + that.setData({
  35 + list:res.data.data
  36 + })
  37 + }
  38 + }).catch((err)=>{
  39 + console.log(err)
  40 + })
  41 + },
  42 + save_btn(){
  43 + let that=this;
  44 + let url ='counselor/AdviseSave';
  45 + let params={
  46 + userId: app.globalData.UserId,
  47 +
  48 + report: that.data.list.report,
  49 + advise: that.data.list.content
  50 + }
  51 + app.post(url,params).then((res)=>{
  52 + console.log(res)
  53 + if(res.data.code==200){
  54 + wx.showToast({
  55 + title: '保存成功',
  56 + icon: 'none',
  57 + duration:2000,
  58 + })
  59 + setTimeout(function(){
  60 + wx.navigateBack({
  61 + delta: 1,
  62 + })
  63 + },1000)
  64 + }
  65 + }).catch((err)=>{
  66 + console.log(err)
  67 + })
  68 +
  69 + },
  70 +
  71 + /**
  72 + * 生命周期函数--监听页面加载
  73 + */
  74 + onLoad: function (options) {
  75 + let that=this;
  76 + that.getAdviseLook();
  77 + },
  78 +
  79 + /**
  80 + * 生命周期函数--监听页面初次渲染完成
  81 + */
  82 + onReady: function () {
  83 +
  84 + },
  85 +
  86 + /**
  87 + * 生命周期函数--监听页面显示
  88 + */
  89 + onShow: function () {
  90 + let that = this;
  91 + that.getAdviseLook();
  92 + },
  93 +
  94 + /**
  95 + * 生命周期函数--监听页面隐藏
  96 + */
  97 + onHide: function () {
  98 +
  99 + },
  100 +
  101 + /**
  102 + * 生命周期函数--监听页面卸载
  103 + */
  104 + onUnload: function () {
  105 +
  106 + },
  107 +
  108 + /**
  109 + * 页面相关事件处理函数--监听用户下拉动作
  110 + */
  111 + onPullDownRefresh: function () {
  112 +
  113 + },
  114 +
  115 + /**
  116 + * 页面上拉触底事件的处理函数
  117 + */
  118 + onReachBottom: function () {
  119 +
  120 + },
  121 +
  122 + /**
  123 + * 用户点击右上角分享
  124 + */
  125 + onShareAppMessage: function () {
  126 +
  127 + }
  128 +})
@@ -3,16 +3,17 @@ @@ -3,16 +3,17 @@
3 <view class='content_box'> 3 <view class='content_box'>
4 <view class='list_title'>体检报告预设</view> 4 <view class='list_title'>体检报告预设</view>
5 <view class='list_input'> 5 <view class='list_input'>
6 - <textarea placeholder='请输入预设的体检报告' placeholder-class='pl_style'></textarea> 6 + <textarea placeholder='请输入预设的体检报告' placeholder-class='pl_style' value='{{list.content}}' bindinput='setcontent'></textarea>
7 </view> 7 </view>
8 </view> 8 </view>
9 <view class='line_box'></view> 9 <view class='line_box'></view>
10 <view class='content_box'> 10 <view class='content_box'>
11 <view class='list_title'>体检报告预设</view> 11 <view class='list_title'>体检报告预设</view>
12 <view class='list_input'> 12 <view class='list_input'>
13 - <textarea placeholder='请输入预设的体检报告' placeholder-class='pl_style'></textarea> 13 + <textarea placeholder='请输入预设的体检报告' bindinput='setreprt' placeholder-class='pl_style'
  14 + value='{{list.report}}'></textarea>
14 </view> 15 </view>
15 </view> 16 </view>
16 <view class='bottom_box'> 17 <view class='bottom_box'>
17 - <view class='save_btn'>保存</view> 18 + <view class='save_btn' bindtap='save_btn'>保存</view>
18 </view> 19 </view>
  1 +// pages/index/TB/TB.js
  2 +const app=getApp();
  3 +var WxParse = require('../../../wxParse/wxParse.js');
  4 +Page({
  5 +
  6 + /**
  7 + * 页面的初始数据
  8 + */
  9 + data: {
  10 + popup_stete: false,
  11 + tlist:'',
  12 + Page:0
  13 + },
  14 + //说明
  15 + instructionsInfo() {
  16 + this.setData({
  17 + popup_stete: true
  18 + })
  19 + },
  20 + //取消弹窗
  21 + setpopupflase(){
  22 + console.log(1);
  23 + this.setData({
  24 + popup_stete: false
  25 + })
  26 + },
  27 + funvoid(){
  28 +
  29 + },
  30 + //个人中心T币接口
  31 + gettlist(){
  32 + let that=this;
  33 + let url ='counselor/tlist';
  34 + let params={
  35 + UserId: app.globalData.UserId,
  36 + Page: that.data.Page
  37 + }
  38 + app.post(url,params).then((res)=>{
  39 + console.log(res);
  40 + if(res.data.code==200){
  41 + that.setData({
  42 + tlist:res.data.data
  43 + })
  44 + }
  45 +
  46 + }).catch((err)=>{
  47 + console.log(err)
  48 + })
  49 +
  50 + },
  51 + //TB信息内容接口
  52 + aboutTB(){
  53 + let that=this;
  54 + let url ='pubilc/about';
  55 + app.post(url, { AboutType:10}).then((res)=>{
  56 + if (res.data.code == 200) {
  57 + console.log(res)
  58 + console.log(res.data.data.post_content)
  59 + WxParse.wxParse('content', 'html', res.data.data.post_content, that, 5);
  60 + }
  61 + }).catch((err)=>{
  62 + console.log(err)
  63 + })
  64 + },
  65 +
  66 + /**
  67 + * 生命周期函数--监听页面加载
  68 + */
  69 + onLoad: function(options) {
  70 +
  71 + },
  72 +
  73 + /**
  74 + * 生命周期函数--监听页面初次渲染完成
  75 + */
  76 + onReady: function() {
  77 +
  78 + },
  79 +
  80 + /**
  81 + * 生命周期函数--监听页面显示
  82 + */
  83 + onShow: function() {
  84 + let that=this;
  85 + that.gettlist();
  86 + that.aboutTB();
  87 +
  88 + },
  89 +
  90 + /**
  91 + * 生命周期函数--监听页面隐藏
  92 + */
  93 + onHide: function() {
  94 +
  95 + },
  96 +
  97 + /**
  98 + * 生命周期函数--监听页面卸载
  99 + */
  100 + onUnload: function() {
  101 +
  102 + },
  103 +
  104 + /**
  105 + * 页面相关事件处理函数--监听用户下拉动作
  106 + */
  107 + onPullDownRefresh: function() {
  108 +
  109 + },
  110 +
  111 + /**
  112 + * 页面上拉触底事件的处理函数
  113 + */
  114 + onReachBottom: function() {
  115 +
  116 + },
  117 +
  118 + /**
  119 + * 用户点击右上角分享
  120 + */
  121 + onShareAppMessage: function() {
  122 +
  123 + }
  124 +})
  1 +{
  2 + "navigationBarTitleText": "T币"
  3 +}
  1 +<!--pages/my/myConsultantPersonalCentre/myConsultantPersonalCentre.wxml-->
  2 +<view class='banner_box'>
  3 + <view class='banner_title'>
  4 + <view>我的T币</view>
  5 + <view bindtap='instructionsInfo'>
  6 + <text class='iconfont icon-shuoming'></text>
  7 + <text>说明</text>
  8 + </view>
  9 + </view>
  10 + <view class='money'>{{tlist.balance}}</view>
  11 +</view>
  12 +
  13 +<view class="content_item">
  14 + <view class='content_title'>
  15 + <text class='iconfont icon-jiaoyijilu'></text>
  16 + <text>交易记录</text>
  17 + </view>
  18 + <view class='scroll_box'>
  19 + <scroll-view scroll-y>
  20 + <view class="item_list" wx:for='{{tlist.payllist}}'>
  21 + <view class="list_content">
  22 + <view>{{item.description}}</view>
  23 + </view>
  24 + <view class='list_info'>
  25 + <view class=" ">{{item.text}}</view>
  26 + <view class=" ">{{item.time}}</view>
  27 + </view>
  28 + </view>
  29 + </scroll-view>
  30 + </view>
  31 +</view>
  32 +
  33 +<view class='mask_box' wx:if="{{popup_stete}}" bindtap='setpopupflase'>
  34 + <view class='tri'></view>
  35 + <view class='popup_box' catchtap='funvoid'>
  36 + <import src="../../../wxParse/wxParse.wxml" />
  37 + <template is="wxParse" data="{{wxParseData:content.nodes}}" />
  38 + </view>
  39 +</view>
  1 +/* pages/my/myConsultantPersonalCentre/myConsultantPersonalCentre.wxss */
  2 +
  3 +page {
  4 + background-color: #f5f5fa;
  5 +}
  6 +
  7 +.banner_box {
  8 + width: 100%;
  9 + height: 300rpx;
  10 + background-color: #0c8aff;
  11 + padding: 32rpx 34rpx;
  12 + box-sizing: border-box;
  13 + position: fixed;
  14 + top: 0;
  15 + left: 0;
  16 + z-index: 10;
  17 +}
  18 +
  19 +.banner_title {
  20 +
  21 + font-size: 26rpx;
  22 + color: #ffff;
  23 + display: flex;
  24 + justify-content: space-between;
  25 + align-items: center;
  26 +}
  27 +
  28 +.icon-shuoming {
  29 + margin-right: 10rpx;
  30 +}
  31 +
  32 +.money {
  33 + font-size: 120rpx;
  34 + color: #fff;
  35 + margin-top: 75rpx;
  36 +}
  37 +
  38 +.content_item {
  39 + background-color: #fff;
  40 + overflow: hidden;
  41 + position: relative;
  42 + margin-top: 320rpx;
  43 +}
  44 +
  45 +.content_title {
  46 + font-size: 26rpx;
  47 + color: #0286ff;
  48 + margin: 33rpx 0 20rpx 33rpx;
  49 +}
  50 +
  51 +.icon-jiaoyijilu {
  52 + margin-right: 11rpx;
  53 +}
  54 +
  55 +.item_list {
  56 + font-size: 30rpx;
  57 + color: #1a1a1a;
  58 + display: flex;
  59 + justify-content: space-between;
  60 + align-items: flex-start;
  61 + border-bottom: 1rpx solid #ebebeb;
  62 + padding: 33rpx 35rpx;
  63 +}
  64 +
  65 +.mask_box {
  66 + width: 100%;
  67 + height: 100%;
  68 + background-color: rgba(0, 0, 0, 0.8);
  69 + position: fixed;
  70 + top: 0;
  71 + left: 0;
  72 + z-index: 100;
  73 +}
  74 +
  75 +.popup_box {
  76 + width: 85%;
  77 + font-size: 28rpx;
  78 + color: #1a1a1a;
  79 + background: rgba(255, 255, 255, 1);
  80 + border-radius: 10rpx;
  81 + box-shadow: 0rpx 0rpx 5rpx rgba(0, 0, 0, 0.08);
  82 + padding: 21rpx;
  83 + position: fixed;
  84 + top: 78rpx;
  85 + left: 50%;
  86 + transform: translateX(-50%);
  87 +}
  88 +
  89 +.tri {
  90 + position: absolute;
  91 + top: 68rpx;
  92 + right: 84rpx;
  93 + width: 0;
  94 + height: 0;
  95 + border-left: 16rpx solid transparent;
  96 + border-right: 16rpx solid transparent;
  97 + border-bottom: 10rpx solid #fff;
  98 +}
  99 +
  100 +.list_info {
  101 + text-align: right;
  102 +}
  1 +// pages/VipRecharge/VipRecharge.js
  2 +const app=getApp();
  3 +Page({
  4 +
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + viplist:[],
  10 + toplist:[],
  11 + mainlist:[]
  12 + },
  13 + //选择支付方式
  14 + buyWay(e) {
  15 + console.log(e)
  16 + wx.navigateTo({
  17 + url: '../payWay/payWay?id=' + e.currentTarget.id + '&moneyt=' + e.currentTarget.dataset.moneyt,
  18 + })
  19 + },
  20 + getvip(){
  21 + let that=this;
  22 + let url ='counselor/vip';
  23 + app.post(url,{}).then((res)=>{
  24 + if(res.data.code==200){
  25 + let viplist = res.data.data.viplist;
  26 + let toplist=[];
  27 + let mainlist=[];
  28 + for (let obj of viplist){
  29 + if (obj.status==1){
  30 + mainlist.push(obj)
  31 + } else if (obj.status == 2){
  32 + toplist.push(obj)
  33 + }
  34 + }
  35 + that.setData({
  36 + viplist: viplist,
  37 + toplist: toplist,
  38 + mainlist: mainlist
  39 + })
  40 +
  41 + }
  42 + }).catch((err)=>{
  43 + console.log(err)
  44 + })
  45 +
  46 + },
  47 +
  48 + /**
  49 + * 生命周期函数--监听页面加载
  50 + */
  51 + onLoad: function(options) {
  52 +
  53 + },
  54 +
  55 + /**
  56 + * 生命周期函数--监听页面初次渲染完成
  57 + */
  58 + onReady: function() {
  59 +
  60 + },
  61 +
  62 + /**
  63 + * 生命周期函数--监听页面显示
  64 + */
  65 + onShow: function() {
  66 + let that=this;
  67 + that.getvip();
  68 +
  69 + },
  70 +
  71 + /**
  72 + * 生命周期函数--监听页面隐藏
  73 + */
  74 + onHide: function() {
  75 +
  76 + },
  77 +
  78 + /**
  79 + * 生命周期函数--监听页面卸载
  80 + */
  81 + onUnload: function() {
  82 +
  83 + },
  84 +
  85 + /**
  86 + * 页面相关事件处理函数--监听用户下拉动作
  87 + */
  88 + onPullDownRefresh: function() {
  89 +
  90 + },
  91 +
  92 + /**
  93 + * 页面上拉触底事件的处理函数
  94 + */
  95 + onReachBottom: function() {
  96 +
  97 + },
  98 +
  99 + /**
  100 + * 用户点击右上角分享
  101 + */
  102 + onShareAppMessage: function() {
  103 +
  104 + }
  105 +})
  1 +{
  2 + "navigationBarTitleText": "会员充值"
  3 +}
  1 +<view class='content_box'>
  2 + <view class='banner_box'>
  3 + <view class='banner_img'>
  4 + <image src='/images/ele@2x.png'></image>
  5 + </view>
  6 + <text class='banner_info'>新手任务奖励</text>
  7 + <view class='banner_title'>{{toplist[0].title}}</view>
  8 + <view class='banner_content'>完成新手任务,赠送{{toplist[0].title}}</view>
  9 + <navigator class='list_btn' hover-class="navigator-hover" url='/pages/index/payWay/payWay?id={{toplist[0].id}}&moneyt={{toplist[0].moneyt}}&title={{toplist[0].title}}'>立即购买</navigator>
  10 + </view>
  11 + <view class='item_list_box'>
  12 + <view class="item_list {{(index+1)%2==0?'year_list':''}}" wx:for='{{mainlist}}' wx:key>
  13 + <view class='list_title'>{{item.title}}</view>
  14 + <view class='list_content'>
  15 + <text>¥{{item.money}}</text>
  16 + <text>¥{{item.moneyt}}</text>
  17 + </view>
  18 + <navigator class='list_btn month_card' hover-class="navigator-hover"
  19 + url='/pages/index/payWay/payWay?id={{item.id}}&moneyt={{item.moneyt}}&title={{item.title}}' >立即购买</navigator>
  20 + </view>
  21 + </view>
  22 +</view>
  1 +page {
  2 + background: #f5f5fa;
  3 +}
  4 +
  5 +.content_box {
  6 + padding: 49rpx 30rpx 30rpx 30rpx;
  7 +}
  8 +
  9 +.banner_box {
  10 + width: 100%;
  11 + min-height: 317rpx;
  12 + padding: 40rpx;
  13 + background: linear-gradient(-30deg, rgba(75, 135, 243, 1), rgba(83, 147, 250, 1));
  14 + box-shadow: 0rpx 15rpx 30rpx 0rpx rgba(75, 135, 243, 0.24);
  15 + border-radius: 16rpx;
  16 + box-sizing: border-box;
  17 + position: relative;
  18 + display: flex;
  19 + align-items: center;
  20 + justify-content: center;
  21 + flex-direction: column;
  22 +}
  23 +
  24 +.banner_info {
  25 + font-size: 26rpx;
  26 + font-weight: bold;
  27 + color: #fff;
  28 + position: absolute;
  29 + left: 50%;
  30 + top: -20rpx;
  31 + transform: translateX(-50%);
  32 + z-index: 20;
  33 +}
  34 +
  35 +.banner_img {
  36 + width: 300rpx;
  37 + height: 55rpx;
  38 + position: absolute;
  39 + left: 50%;
  40 + top: -20rpx;
  41 + transform: translateX(-50%);
  42 + z-index: 10;
  43 +}
  44 +
  45 +.banner_img image {
  46 + width: 100%;
  47 + height: 100%;
  48 +}
  49 +
  50 +.banner_title {
  51 + font-size: 36rpx;
  52 + font-weight: bold;
  53 + color: #fff;
  54 +}
  55 +
  56 +.banner_content {
  57 + font-size: 28rpx;
  58 + color: #fff;
  59 + margin: 30rpx 0;
  60 +}
  61 +
  62 +.item_list_box {
  63 + display: flex;
  64 + align-items: center;
  65 + justify-content: space-between;
  66 + flex-wrap: wrap;
  67 + margin-top: 36rpx;
  68 +}
  69 +
  70 +.item_list {
  71 + width: 326rpx;
  72 + height: 225rpx;
  73 + background: linear-gradient(-30deg, rgba(255, 92, 46, 1), rgba(255, 152, 116, 1));
  74 + box-shadow: 0rpx 15rpx 30rpx 0rpx rgba(75, 135, 243, 0.24);
  75 + border-radius: 16rpx;
  76 + box-sizing: border-box;
  77 + position: relative;
  78 + display: flex;
  79 + align-items: center;
  80 + justify-content: center;
  81 + flex-direction: column;
  82 + margin-bottom: 36rpx;
  83 +}
  84 +
  85 +.list_title {
  86 + font-size: 30rpx;
  87 + color: #fff;
  88 +}
  89 +
  90 +.list_content {
  91 + font-size: 28rpx;
  92 + color: #fff;
  93 + margin: 20rpx 0;
  94 +}
  95 +
  96 +.list_btn {
  97 + font-size: 28rpx;
  98 + color: #508ef7;
  99 + background: #fff;
  100 + border-radius: 30rpx;
  101 + padding: 10rpx 30rpx;
  102 +}
  103 +
  104 +.month_card {
  105 + color: #ff6b40;
  106 +}
  107 +
  108 +.year_list {
  109 + background: linear-gradient(to right, #f7a80a, #fcc200);
  110 +}
  111 +
  112 +.year_card {
  113 + color: #e7ad27;
  114 +}