作者 lihongjuan

32333

要显示太多修改。

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

  1 +<script>
  2 + export default {
  3 + onLaunch: function() {
  4 + // console.log('App Launch')
  5 + },
  6 + onShow: function() {
  7 + // console.log('App Show')
  8 + },
  9 + onHide: function() {
  10 + // console.log('App Hide')
  11 + },
  12 +
  13 + post: function(url, data,method) {
  14 +
  15 + // (showLoad == undefined || showLoad) ?
  16 + // wx.showLoading({
  17 + // title: '加载中',
  18 + // }) : ''
  19 + // wx.showNavigationBarLoading()
  20 + var promise = new Promise((resolve, reject) => {
  21 + //init
  22 + let that = this,
  23 + token = uni.getStorageSync('token'),
  24 + header = {
  25 + token: token || ''
  26 + },
  27 + postData;
  28 + // console.log(token,"token")
  29 + //网络请求
  30 + uni.request({
  31 + url: this.globalData.baseUrl + url,
  32 + data: data,
  33 + method: method,
  34 + header: header,
  35 + success: function(res) { //返回取得的数据
  36 + console.log(res)
  37 + if (res.data.code == 1) {
  38 + resolve(res.data.data);
  39 + } else {
  40 + // uni.showToast({
  41 + // title: res.data.msg,
  42 + // icon: 'none',
  43 + // })
  44 + reject(res.data)
  45 + if (res.data.code == '401') {}
  46 + }
  47 + // (showLoad || showLoad == undefined) ? wx.hideLoading(): "";
  48 + // wx.hideNavigationBarLoading()
  49 + },
  50 + fail: function(e) {
  51 + console.log(e)
  52 + reject('网络出错');
  53 + // (showLoad || showLoad == undefined) ? wx.hideLoading() : "";
  54 + wx.hideNavigationBarLoading()
  55 + },
  56 + complete: function(daa) {
  57 + console.log(daa)
  58 + }
  59 + })
  60 + });
  61 + return promise;
  62 + },
  63 + timeFormate(timestamp, timeType) {
  64 + if (timestamp) {
  65 + var timeStamp = timestamp.length == 13 ? timestamp : timestamp * 1000
  66 + var date = new Date(timeStamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  67 + var Y = date.getFullYear() + '-';
  68 + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  69 + var D = date.getDate() + ' ';
  70 + var h = date.getHours() + ':';
  71 + var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
  72 + var s = date.getSeconds();
  73 + if (timeType == 'YYMMDD') {
  74 + return Y + M + D;
  75 + } else if (timeType == 'YYMMDDHHMM') {
  76 + return Y + M + D + " " + h + m;
  77 + } else {
  78 + return h + m;
  79 + }
  80 + }
  81 + },
  82 + globalData: {
  83 + userInfo: null,
  84 + // baseUrl: 'http://icrgangjuren.w.brotop.cn/'
  85 + baseUrl:'https://icr.gangjuren.com/'
  86 + }
  87 + }
  88 +</script>
  89 +
  90 +<style>
  91 + /*每个页面公共css */
  92 + /*每个页面公共css */
  93 + body {
  94 + background-color: #f6f6f6;
  95 + }
  96 +
  97 + /* 布局 */
  98 + .layor_start {
  99 + display: flex;
  100 + justify-content: flex-start;
  101 + align-items: center;
  102 + }
  103 +
  104 + .layor_center {
  105 + display: flex;
  106 + justify-content: center;
  107 + align-items: center;
  108 + }
  109 +
  110 + .layor_between {
  111 + display: flex;
  112 + justify-content: space-between;
  113 + align-items: center;
  114 + }
  115 +
  116 + .layor_around {
  117 + display: flex;
  118 + justify-content: space-around;
  119 + align-items: center;
  120 + }
  121 +
  122 + .layor_end {
  123 + display: flex;
  124 + justify-content: flex-end;
  125 + align-items: center;
  126 + }
  127 +
  128 + .flex_center {
  129 + display: flex;
  130 + flex-direction: column;
  131 + align-items: center;
  132 + }
  133 +
  134 + .layor_start-warp {
  135 + display: flex;
  136 + align-items: center;
  137 + flex-wrap: wrap;
  138 + }
  139 +
  140 + .register {
  141 + width: 100%;
  142 + height: 100%;
  143 + background-color: rgba(0, 0, 0, 0.5);
  144 + position: fixed;
  145 + top: 0rpx;
  146 + left: 0;
  147 + right: 0;
  148 + z-index: 5;
  149 + }
  150 + .box{
  151 + background: #F5F5F5;
  152 + }
  153 + .remaintime {
  154 + display: flex;
  155 + justify-content: space-between;
  156 + align-items: center;
  157 + width: 686rpx;
  158 + height: 100rpx;
  159 + background: rgba(62, 58, 57, 1);
  160 + box-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);
  161 + opacity: 1;
  162 + border-radius: 10rpx;
  163 + margin: 24rpx auto 0;
  164 + padding: 0 18rpx 0 32rpx;
  165 + box-sizing: border-box;
  166 +
  167 + }
  168 + .remainleft {
  169 + color: #fff;
  170 + font-size: 28rpx;
  171 + }
  172 +
  173 + .remainright {
  174 + width: 48rpx;
  175 + height: 48rpx;
  176 + font-size: 0;
  177 + }
  178 + image{
  179 + width:100%;
  180 + height:100%;
  181 + }
  182 + .nodata{
  183 + color:#999;
  184 + font-size: 30rpx;
  185 + text-align: center;
  186 + margin-top:100rpx;
  187 + }
  188 +</style>
  1 +import Vue from 'vue'
  2 +import App from './App'
  3 +
  4 +Vue.config.productionTip = false
  5 +
  6 +
  7 +App.mpType = 'app'
  8 +
  9 +const app = new Vue({
  10 + ...App
  11 +})
  12 +app.$mount()
  1 +{
  2 + "name" : "gaungjurenxiaochengxu",
  3 + "appid" : "__UNI__D47A57A",
  4 + "description" : "",
  5 + "versionName" : "1.0.0",
  6 + "versionCode" : "100",
  7 + "transformPx" : false,
  8 + /* 5+App特有相关 */
  9 + "app-plus" : {
  10 + "usingComponents" : true,
  11 + "splashscreen" : {
  12 + "alwaysShowBeforeRender" : true,
  13 + "waiting" : true,
  14 + "autoclose" : true,
  15 + "delay" : 0
  16 + },
  17 + /* 模块配置 */
  18 + "modules" : {},
  19 + /* 应用发布信息 */
  20 + "distribute" : {
  21 + /* android打包配置 */
  22 + "android" : {
  23 + "permissions" : [
  24 + "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
  25 + "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
  26 + "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
  27 + "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
  28 + "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
  29 + "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
  30 + "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
  31 + "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
  32 + "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
  33 + "<uses-permission android:name=\"android.permission.CAMERA\"/>",
  34 + "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
  35 + "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
  36 + "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
  37 + "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
  38 + "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
  39 + "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
  40 + "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
  41 + "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
  42 + "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
  43 + "<uses-feature android:name=\"android.hardware.camera\"/>",
  44 + "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
  45 + "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
  46 + ]
  47 + },
  48 + /* ios打包配置 */
  49 + "ios" : {},
  50 + /* SDK配置 */
  51 + "sdkConfigs" : {}
  52 + }
  53 + },
  54 + /* 快应用特有相关 */
  55 + "quickapp" : {},
  56 + /* 小程序特有相关 */
  57 + "mp-weixin" : {
  58 + "appid" : "wx501cda0ef4db38a2",
  59 + "setting" : {
  60 + "urlCheck" : false,
  61 + "postcss" : true
  62 + },
  63 + "usingComponents" : false
  64 + },
  65 + "mp-alipay" : {
  66 + "usingComponents" : true
  67 + },
  68 + "mp-baidu" : {
  69 + "usingComponents" : true
  70 + },
  71 + "mp-toutiao" : {
  72 + "usingComponents" : true
  73 + }
  74 +}
  1 +{
  2 + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
  3 +
  4 +
  5 + {
  6 + "path": "pages/dianshu/dianshu",
  7 + "style": {
  8 + "navigationBarTitleText": "点数"
  9 + }
  10 + },
  11 +
  12 + {
  13 + "path": "pages/taocangoumai/taocangoumai",
  14 + "style": {
  15 + "navigationBarTitleText": "套餐购买"
  16 + }
  17 + },
  18 +
  19 + {
  20 + "path": "pages/qidong/qidong",
  21 + "style": {
  22 + "navigationBarTitleText": ""
  23 + }
  24 +
  25 + },
  26 + {
  27 + "path": "pages/binding/binding",
  28 + "style": {
  29 + "navigationBarTitleText": "首页"
  30 + }
  31 + },
  32 +
  33 +
  34 +
  35 + {
  36 + "path": "pages/index/index",
  37 + "style": {
  38 + "navigationBarTitleText": "123"
  39 + }
  40 + }, {
  41 + "path": "pages/personcenter/personcenter",
  42 + "style": {
  43 + "navigationBarTitleText": "个人中心"
  44 + }
  45 + }, {
  46 + "path": "pages/gerenxinxi/gerenxinxi",
  47 + "style": {
  48 + "navigationBarTitleText": "个人信息"
  49 + }
  50 + },
  51 + {
  52 + "path": "pages/tuijianren/tuijianren",
  53 + "style": {
  54 + "navigationBarTitleText": "首页"
  55 + }
  56 + },
  57 + {
  58 + "path": "pages/shubanxinxi/shubanxinxi",
  59 + "style": {
  60 + "navigationBarTitleText": "数板信息"
  61 + }
  62 + }
  63 +
  64 + , {
  65 + "path": "pages/shubandetail/shubandetail",
  66 + "style": {
  67 + "navigationBarTitleText": "数板详情"
  68 + }
  69 + }, {
  70 + "path": "pages/shuguan/shuguan",
  71 + "style": {
  72 + "navigationBarTitleText": "数管"
  73 + }
  74 + }, {
  75 + "path": "pages/shuguanshujulist/shuguanshujulist",
  76 + "style": {
  77 + "navigationBarTitleText": "数管数据"
  78 + }
  79 + }, {
  80 + "path": "pages/shuguanshujudetail/shuguanshujudetail",
  81 + "style": {
  82 + "navigationBarTitleText": "数管数据"
  83 + }
  84 + }, {
  85 + "path": "pages/zhifudingdan/zhifudingdan",
  86 + "style": {
  87 + "navigationBarTitleText": "支付订单"
  88 + }
  89 + }, {
  90 + "path": "pages/zhifudingdanshugaun/zhifudingdanshugaun",
  91 + "style": {
  92 + "navigationBarTitleText": "支付订单"
  93 + }
  94 + }, {
  95 + "path": "pages/xiaofeijilu/xiaofeijilu",
  96 + "style": {
  97 + "navigationBarTitleText": "消费记录"
  98 + }
  99 + }, {
  100 + "path": "pages/dingdanxiangqing/dingdanxiangqing",
  101 + "style": {
  102 + "navigationBarTitleText": "订单详情"
  103 + }
  104 + }, {
  105 + "path": "pages/kaijufapiao/kaijufapiao",
  106 + "style": {
  107 + "navigationBarTitleText": "开具发票"
  108 + }
  109 + }, {
  110 + "path": "pages/kafapiao/kafapiao",
  111 + "style": {
  112 + "navigationBarTitleText": "开具发票"
  113 + }
  114 + }, {
  115 + "path": "pages/selectxiaofeijilu/selectxiaofeijilu",
  116 + "style": {
  117 + "navigationBarTitleText": "选择消费记录"
  118 + }
  119 + }, {
  120 + "path": "pages/kaipiaolishi/kaipiaolishi",
  121 + "style": {
  122 + "navigationBarTitleText": "开票历史"
  123 + }
  124 + }, {
  125 + "path": "pages/fapiaodetail/fapiaodetail",
  126 + "style": {
  127 + "navigationBarTitleText": "发票详情"
  128 + }
  129 + }, {
  130 + "path": "pages/myshuju/myshuju",
  131 + "style": {
  132 + "navigationBarTitleText": "我的数据"
  133 + }
  134 +
  135 + },
  136 + {
  137 + "path": "pages/shuguanshubanintro/shuguanshubanintro",
  138 + "style": {
  139 + "navigationBarTitleText": "简介"
  140 + }
  141 +
  142 + },
  143 + {
  144 + "path": "pages/aboutus/aboutus",
  145 + "style": {
  146 + "navigationBarTitleText": "关于我们"
  147 + }
  148 +
  149 + }
  150 +
  151 + ],
  152 + "tabBar": {
  153 + "selectedColor": "#F39800",
  154 + "list": [{
  155 + "pagePath": "pages/taocangoumai/taocangoumai",
  156 + "text": "套餐购买",
  157 + "selectedColor": "#F39800",
  158 + "iconPath": "static/img/taocan.png",
  159 + "selectedIconPath": "static/img/seltaocan.png"
  160 + },
  161 + {
  162 + "pagePath": "pages/dianshu/dianshu",
  163 + "text": "点数",
  164 + "selectedColor": "#F39800",
  165 + "iconPath": "static/img/dianshu.png",
  166 + "selectedIconPath": "static/img/seldianshu.png"
  167 + },
  168 + {
  169 + "pagePath": "pages/personcenter/personcenter",
  170 + "text": "个人中心",
  171 + "selectedColor": "#F39800",
  172 + "iconPath": "static/img/person.png",
  173 + "selectedIconPath": "static/img/selperson.png"
  174 + }
  175 + ]
  176 + },
  177 + "debug": true,
  178 +
  179 + "globalStyle": {
  180 + "navigationBarTextStyle": "black",
  181 + "navigationBarTitleText": "uni-app",
  182 + "navigationBarBackgroundColor": "#F8F8F8",
  183 + "backgroundColor": "#F8F8F8"
  184 + },
  185 + "condition": { //模式配置,仅开发期间生效
  186 + "current": 0, //当前激活的模式(list 的索引项)
  187 + "list": [{
  188 + "name": "", //模式名称
  189 + "path": "", //启动页面,必选
  190 + "query": "" //启动参数,在页面的onLoad函数里面得到
  191 + }]
  192 + }
  193 +
  194 +}
  1 +<template>
  2 +
  3 + <div class='box'>
  4 + <div class="intro">
  5 + <rich-text class="conRich" :nodes="aboutus.description"></rich-text>
  6 + </div>
  7 +
  8 + </div>
  9 +</template>
  10 +
  11 +<script>
  12 + import app from "../../App.vue";
  13 + export default {
  14 + data() {
  15 + return {
  16 + aboutus: '',
  17 +
  18 + }
  19 + },
  20 + methods: {
  21 + // 关于我们数据
  22 + getus() {
  23 + app.post("api/abouts/aboutDetail", '', 'get')
  24 + .then(res => {
  25 + console.log(res);
  26 + this.aboutus = res
  27 +
  28 +
  29 + })
  30 + .catch(err => {});
  31 + },
  32 +
  33 +
  34 +
  35 + },
  36 + onLoad(options) {
  37 +
  38 + },
  39 + mounted() {
  40 + this.getus()
  41 +
  42 + },
  43 + created() {
  44 +
  45 + }
  46 + }
  47 +</script>
  48 +
  49 +<style>
  50 + .box {
  51 + background: #F5F5F5;
  52 + padding: 40rpx 34rpx;
  53 + box-sizing: border-box;
  54 + }
  55 +
  56 + .intro {
  57 + background: #fff;
  58 + height: 1112rpx;
  59 + overflow-y: scroll;
  60 + padding: 30rpx;
  61 + box-sizing: border-box;
  62 + color: #404040;
  63 + font-size: 28rpx;
  64 + line-height: 1.5;
  65 +
  66 + }
  67 +</style>
  1 +<template>
  2 +
  3 + <div class='binding'>
  4 + <view class="binding_title">绑定客户</view>
  5 + <view class="binding_input">
  6 + <input type="text" placeholder="请填写推荐码" placeholder-class="bind_input" v-model="code">
  7 + </view>
  8 + <view class="content">{{content}}</view>
  9 + <view class="binding_btn" @click="set_sure">确定</view>
  10 + </div>
  11 +</template>
  12 +
  13 +<script>
  14 + import app from "../../App.vue";
  15 + export default {
  16 + data() {
  17 + return {
  18 + code: "",
  19 + content: ""
  20 + }
  21 + },
  22 + methods: {
  23 + set_sure() {
  24 + let t = this;
  25 + let url = "api/person/bindKehu";
  26 + let param = {
  27 + code: t.code
  28 + };
  29 + app.post(url, param, 'get').then(r => {
  30 + console.log('1234567890',r)
  31 + uni.setStorageSync('re_id',1)
  32 + uni.switchTab({
  33 + url: '/pages/taocangoumai/taocangoumai'
  34 + })
  35 + }).catch(err => {
  36 + console.log(err)
  37 + t.content = err.msg
  38 + })
  39 + }
  40 + },
  41 + onLoad(options) {
  42 +
  43 + },
  44 + mounted() {
  45 +
  46 + },
  47 + created() {
  48 +
  49 + }
  50 + }
  51 +</script>
  52 +
  53 +<style>
  54 + .binding {
  55 + width: 686rpx;
  56 + background: rgba(255, 255, 255, 1);
  57 + opacity: 1;
  58 + border-radius: 10rpx;
  59 + position: absolute;
  60 + top: 30%;
  61 + left: 50%;
  62 + transform: translate(-50%, -30%);
  63 + padding: 60rpx 48rpx 56rpx;
  64 + box-sizing: border-box;
  65 + }
  66 +
  67 + .binding_title {
  68 + font-size: 44rpx;
  69 + font-weight: bold;
  70 + line-height: 60rpx;
  71 + color: rgba(6, 18, 30, 1);
  72 + }
  73 +
  74 + .content {
  75 + margin-top: 20rpx;
  76 + font-size: 26rpx;
  77 + font-weight: 400;
  78 + line-height: 36rpx;
  79 + color: rgba(206, 21, 0, 1);
  80 + }
  81 +
  82 + .binding_input {
  83 + margin-top: 134rpx;
  84 + border-bottom: 1rpx solid rgba(235, 235, 235, 1);
  85 + padding-bottom: 36rpx;
  86 + }
  87 +
  88 + .bind_input {
  89 + font-size: 32rpx;
  90 + font-weight: 400;
  91 + line-height: 44rpx;
  92 + color: rgba(210, 210, 210, 1);
  93 + text-align: center;
  94 + }
  95 +
  96 + .binding_btn {
  97 + margin-top: 110rpx;
  98 + height: 100rpx;
  99 + background: rgba(243, 152, 0, 1);
  100 + box-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);
  101 + opacity: 1;
  102 + border-radius: 10rpx;
  103 + font-size: 32rpx;
  104 + font-weight: 400;
  105 + line-height: 100rpx;
  106 + color: rgba(255, 255, 255, 1);
  107 + text-align: center;
  108 + }
  109 +</style>
  1 +<template>
  2 + <view>
  3 + <view class="swiper_image">
  4 + <swiper :indicator-dots="false" :autoplay="true" :interval="3000" :duration="1000" class="swimg" @change="swiperChange">
  5 + <swiper-item v-for="(item,index) in imgUrls" :key="index">
  6 + <view class="swiper-item">
  7 + <image :src="item.image" mode=""></image>
  8 + </view>
  9 + </swiper-item>
  10 + </swiper>
  11 + <view class="dots">
  12 + <view class="dot" :class="index==currentSwiper?'active':''" v-for="(item,index) in imgUrls" :key="index"></view>
  13 +
  14 + </view>
  15 + </view>
  16 +
  17 +
  18 + <!-- 列表 -->
  19 + <view class="list">
  20 + <view class="listitem listitem1" @click="sao">
  21 + <view class="itemtitle">数板</view>
  22 +
  23 + <view class="itemimg">
  24 + <image src="/static/img/shuban.png"></image>
  25 + </view>
  26 + </view>
  27 + <view class="listitem listitem2" @click="shuguan">
  28 + <view class="itemtitle">数管</view>
  29 +
  30 + <view class="itemimg guanimg">
  31 + <image src="/static/img/guanzi.png"></image>
  32 + </view>
  33 + </view>
  34 + <view class="listitem listitem1" @click="shubantiao" :data-id="shubanintro.id">
  35 + <view class="itemtitle">数板说明</view>
  36 +
  37 + <view class="itemtext">
  38 + {{shubanintro.introduce}}
  39 + </view>
  40 + </view>
  41 + <view class="listitem listitem2" @click="shubantiao" :data-id="shuguanintro.id">
  42 + <view class="itemtitle">数管说明</view>
  43 +
  44 + <view class="itemtext">
  45 + {{shuguanintro.introduce}}
  46 + </view>
  47 + </view>
  48 + </view>
  49 +
  50 + <view class="dibu">
  51 + <view class="gangimg">
  52 +
  53 + <view class="heng"></view>
  54 + <view class="jurenimg">
  55 + <image src="/static/img/gang.png"></image>
  56 + </view>
  57 + <view class="heng"></view>
  58 + </view>
  59 +
  60 + <view class="jurentext">精准的智能识别算法,高效准确地自动计数</view>
  61 +
  62 + </view>
  63 +
  64 +
  65 + </view>
  66 +</template>
  67 +
  68 +<script>
  69 + import app from "../../App.vue"
  70 + export default {
  71 + data() {
  72 + return {
  73 + imgUrls: [],
  74 + indicatorDots: false,
  75 + autoplay: true,
  76 + interval: 2000,
  77 + duration: 1000,
  78 + currentSwiper: 0,
  79 + shubanintro: "",
  80 + shuguanintro: "",
  81 + // 判断是否有资格进入详情页
  82 + is_allow: "",
  83 + // 获取扫码之后的参数
  84 + sao_number: ""
  85 + }
  86 + },
  87 + methods: {
  88 + swiperChange: function(e) {
  89 +
  90 + this.currentSwiper = e.detail.current
  91 +
  92 + },
  93 + // 判断是否有资格进入详情内容
  94 + get_cations() {
  95 + let t = this;
  96 + let url = "api/shuguan/getShuguanRule";
  97 + let param = {};
  98 + app.post(url, param, 'post').then(r => {
  99 + console.log(r)
  100 + t.is_allow = r.is_allow
  101 + }).catch(err => {
  102 + console.log(err)
  103 + })
  104 + },
  105 + // 扫码
  106 + sao() {
  107 + let t = this;
  108 + let re_id = uni.getStorageSync("re_id");
  109 + let token = uni.getStorageSync("token");
  110 + console.log('9090909090',token)
  111 + console.log('9090909090',re_id)
  112 + if (token == '') {
  113 + uni.showToast({
  114 + title: '请登录后操作',
  115 + icon: 'none'
  116 + })
  117 +
  118 + setTimeout(function() {
  119 + uni.navigateTo({
  120 + url: "/pages/qidong/qidong"
  121 + })
  122 + }, 1000)
  123 +
  124 +
  125 + } else if (token != '' && re_id == 0) {
  126 + uni.showToast({
  127 + title: '请绑定客户',
  128 + icon: "none"
  129 + })
  130 +
  131 + setTimeout(function() {
  132 + uni.navigateTo({
  133 + url: "/pages/binding/binding"
  134 + })
  135 + }, 1000)
  136 + } else {
  137 + uni.scanCode({
  138 + success: function(res) {
  139 + console.log(res, "扫码之后返回的参数")
  140 + console.log('条码类型:' + res.scanType);
  141 + console.log('条码内容:' + res.result);
  142 + t.sao_number = res.result;
  143 + console.log('909090808080', t.sao_number)
  144 + t.get_yes();
  145 +
  146 + },
  147 + fail: function(res) {
  148 + uni.showToast({
  149 + title: '未能识别二维码',
  150 + icon: 'none',
  151 + duration: 2000
  152 + });
  153 + }
  154 + });
  155 + }
  156 +
  157 +
  158 +
  159 +
  160 + },
  161 + // 判断是否符合条件
  162 + get_yes() {
  163 + let t = this;
  164 + let url = "api/equipment/getEquipmentNumber";
  165 + let param = {
  166 + number: t.sao_number
  167 + };
  168 + app.post(url, param, 'post').then(r => {
  169 + console.log(r)
  170 + uni.navigateTo({
  171 + url: '/pages/shubanxinxi/shubanxinxi?num=' + t.sao_number
  172 + })
  173 + }).catch(err => {
  174 + console.log(err)
  175 + uni.showToast({
  176 + title: err.msg,
  177 + icon: "none",
  178 + duration: 2000
  179 + });
  180 + })
  181 + },
  182 + // 获取轮播图数据
  183 + getbanner() {
  184 +
  185 + app.post("api/index/getBanner", '', 'get')
  186 + .then(res => {
  187 + console.log(res);
  188 + this.imgUrls = res
  189 + })
  190 + .catch(err => {});
  191 + },
  192 + // 获取数板数管简介
  193 + getintroduce() {
  194 + app.post("api/index/getIntroduce", '', 'get')
  195 + .then(res => {
  196 + console.log(res, "数板数管简介");
  197 + this.shubanintro = res[0];
  198 + this.shuguanintro = res[1];
  199 +
  200 + })
  201 + .catch(err => {});
  202 + },
  203 +
  204 + //跳到数板数管详情页
  205 + shubantiao(e) {
  206 + console.log(e)
  207 + let id = e.currentTarget.dataset.id;
  208 + uni.navigateTo({
  209 + url: '/pages/shuguanshubanintro/shuguanshubanintro?id=' + id
  210 + });
  211 +
  212 + },
  213 +
  214 + //数管
  215 + shuguan() {
  216 + let t = this;
  217 + let re_id = uni.getStorageSync("re_id");
  218 + let token = uni.getStorageSync("token")
  219 + if (token == '') {
  220 + uni.showToast({
  221 + title: '请登录后操作',
  222 + icon: 'none'
  223 + })
  224 +
  225 + setTimeout(function() {
  226 + uni.navigateTo({
  227 + url: "/pages/qidong/qidong"
  228 + })
  229 + }, 1000)
  230 +
  231 +
  232 + } else if (token !=''&&re_id == 0) {
  233 +
  234 + uni.showToast({
  235 + title: '请绑定客户',
  236 + icon: "none"
  237 + })
  238 +
  239 + setTimeout(function() {
  240 + uni.navigateTo({
  241 + url: "/pages/binding/binding"
  242 + })
  243 + }, 1000)
  244 + }else{
  245 + if (t.is_allow == 0) {
  246 + console.log(123)
  247 + uni.navigateTo({
  248 + url: '/pages/shuguan/shuguan?showketime=' + true
  249 + });
  250 + } else {
  251 + uni.navigateTo({
  252 + url: '/pages/shuguan/shuguan'
  253 + })
  254 + }
  255 + }
  256 +
  257 +
  258 + }
  259 + },
  260 + mounted() {
  261 + //获取banner图
  262 + this.getbanner();
  263 + //获取简介
  264 + this.getintroduce()
  265 + },
  266 + onShow() {
  267 + // 判断是否有资格进入详情页
  268 + this.get_cations()
  269 + }
  270 + }
  271 +</script>
  272 +
  273 +<style>
  274 + .swiper_image {
  275 + width: 686rpx;
  276 + height: 368rpx;
  277 + font-size: 0;
  278 + position: relative;
  279 + margin: 20rpx auto 0;
  280 + border-radius: 10rpx;
  281 +
  282 +
  283 + }
  284 +
  285 + .swimg {
  286 + height: 368rpx;
  287 + width: 686rpx;
  288 + height: 368rpx;
  289 + border-radius: 10rpx;
  290 + }
  291 +
  292 + swiper-item {
  293 + height: 368rpx;
  294 + width: 686rpx;
  295 + height: 368rpx;
  296 + border-radius: 10rpx;
  297 + }
  298 +
  299 + .swiper-item {
  300 + width: 686rpx;
  301 + height: 368rpx;
  302 + border-radius: 10rpx;
  303 + }
  304 +
  305 + .swiper-item image {
  306 + width: 100%;
  307 + height: 100%;
  308 + border-radius: 10rpx;
  309 + }
  310 +
  311 + .dots {
  312 + /* width: 156rpx; */
  313 + height: 36rpx;
  314 + display: flex;
  315 + flex-direction: row;
  316 + position: absolute;
  317 + justify-content: center;
  318 + align-items: center;
  319 + left: 0;
  320 + right: 0;
  321 + bottom: 35rpx;
  322 + }
  323 +
  324 + /*未选中时的小圆点样式 */
  325 + .dot {
  326 + width: 28rpx;
  327 + height: 4rpx;
  328 + margin-right: 26rpx;
  329 + background: rgba(255, 255, 255, 1);
  330 + opacity: 0.3;
  331 + }
  332 +
  333 + /*选中以后的小圆点样式 */
  334 + .active {
  335 + width: 28rpx;
  336 + height: 4rpx;
  337 + background: rgba(255, 255, 255, 1);
  338 + opacity: 1;
  339 + }
  340 +
  341 + .list {
  342 + padding: 0 28rpx;
  343 + box-sizing: border-box;
  344 + margin-top: 4rpx;
  345 + display: flex;
  346 + align-items: center;
  347 + flex-wrap: wrap
  348 + }
  349 +
  350 + .itemimg {
  351 + width: 82rpx;
  352 + height: 78rpx;
  353 + font-size: 0;
  354 + margin-top: 64rpx;
  355 + }
  356 +
  357 + .guanimg {
  358 + width: 67rpx;
  359 + height: 79rpx;
  360 + }
  361 +
  362 + .itemimg image {
  363 + width: 100%;
  364 + height: 100%;
  365 + }
  366 +
  367 + .listitem {
  368 + width: 330rpx;
  369 + height: 252rpx;
  370 + border-radius: 10rpx;
  371 + /* background: #F39800; */
  372 + display: flex;
  373 + flex-direction: column;
  374 + align-items: center;
  375 + margin-top: 28rpx;
  376 + }
  377 +
  378 + .listitem1 {
  379 + background: #F39800;
  380 + }
  381 +
  382 + .listitem2 {
  383 + background: #3E3A39;
  384 + }
  385 +
  386 + .itemtitle {
  387 + margin-top: 45rpx;
  388 + color: #fff;
  389 + position: relative
  390 + }
  391 +
  392 + .itemtitle::after {
  393 + display: block;
  394 + content: '';
  395 + width: 46rpx;
  396 + height: 5rpx;
  397 + background: #fff;
  398 + position: absolute;
  399 + left: 50%;
  400 + right: 50%;
  401 + transform: translate(-50%, -50%);
  402 +
  403 + bottom: -20rpx;
  404 +
  405 + }
  406 +
  407 + .listitem:nth-child(2n) {
  408 + margin-left: 28rpx;
  409 + }
  410 +
  411 + .itemtext {
  412 + width: 212rpx;
  413 + margin: 47rpx auto 0;
  414 + color: #fff;
  415 + font-size: 26rpx;
  416 + text-overflow: -o-ellipsis-lastline;
  417 + overflow: hidden;
  418 + text-overflow: ellipsis;
  419 + display: -webkit-box;
  420 + -webkit-line-clamp: 2;
  421 + line-clamp: 2;
  422 + -webkit-box-orient: vertical;
  423 + }
  424 +
  425 + .gangimg {
  426 + margin-top: 36rpx;
  427 + display: flex;
  428 + justify-content: center;
  429 + align-items: center
  430 + }
  431 +
  432 + .jurenimg {
  433 + width: 226rpx;
  434 + height: 68rpx;
  435 + font-size: 0;
  436 + margin: 0 32rpx;
  437 +
  438 +
  439 + }
  440 +
  441 + .jurenimg image {
  442 + width: 100%;
  443 + height: 100%;
  444 + }
  445 +
  446 + .heng {
  447 + width: 76rpx;
  448 + height: 2rpx;
  449 + background: #CCCCCC
  450 + }
  451 +
  452 + .jurentext {
  453 + color: #CCCCCC;
  454 + font-size: 22rpx;
  455 + text-align: center;
  456 + margin-top: 12rpx;
  457 + }
  458 +
  459 + .dibu {
  460 + position: absolute;
  461 + bottom: 45rpx;
  462 + width: 750rpx;
  463 + display: flex;
  464 + flex-direction: column;
  465 + align-items: center;
  466 + justify-content: center;
  467 +
  468 +
  469 +
  470 + }
  471 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="dingdanlist">
  4 + <view class="dingdanitem">
  5 + <view class="ditemleft">订单编号</view>
  6 + <view class="ditemright">{{orderdetail.order_sn}}</view>
  7 + </view>
  8 + <view class="dingdanitem">
  9 + <view class="ditemleft">订单日期</view>
  10 + <view class="ditemright">{{orderdetail.createtime}}</view>
  11 + </view>
  12 + <view class="dingdanitem">
  13 + <view class="ditemleft">商品名称</view>
  14 + <view class="ditemright">{{orderdetail.name}}</view>
  15 + </view>
  16 + <view class="dingdanitem">
  17 + <view class="ditemleft">商品金额</view>
  18 + <view class="ditemright goodmoney">{{orderdetail.pay_money}}元</view>
  19 + </view>
  20 +
  21 + </view>
  22 + </view>
  23 +</template>
  24 +
  25 +<script>
  26 + import app from "../../App.vue"
  27 + export default {
  28 + data() {
  29 + return {
  30 + id: "",
  31 + orderdetail:'',
  32 + type:''
  33 + }
  34 + },
  35 + methods: {
  36 + getorderdetail() {
  37 + let param={
  38 + id:this.id,
  39 + // type:this.type
  40 + }
  41 + app.post("api/person/orderDetail", param, 'get')
  42 + .then(res => {
  43 + console.log(res,"查询的订单信息");
  44 + this.orderdetail = res;
  45 + })
  46 + .catch(err => {});
  47 + }
  48 + },
  49 + mounted() {
  50 + this.getorderdetail()
  51 + },
  52 + onLoad(options) {
  53 + console.log(options)
  54 + this.id = options.id,
  55 + this.type=options.type
  56 + }
  57 + }
  58 +</script>
  59 +
  60 +<style>
  61 + .dingdanlist {
  62 + padding: 0 32rpx;
  63 + box-sizing: border-box;
  64 + background: #fff;
  65 + }
  66 +
  67 + .dingdanitem {
  68 + display: flex;
  69 + align-items: center;
  70 + justify-content: space-between;
  71 + padding: 48rpx 0;
  72 + box-sizing: border-box;
  73 + border-bottom: 1rpx solid #f5f5f5;
  74 + }
  75 +
  76 + .ditemleft {
  77 + color: #0A0808;
  78 + font-size: 30rpx;
  79 + }
  80 +
  81 + .ditemright {
  82 + color: #7F8389;
  83 + font-size: 28rpx;
  84 + }
  85 +
  86 + .goodmoney {
  87 + color: #F29600;
  88 + font-size: 28rpx;
  89 + }
  90 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="fapiaodetail">
  4 + <view class="detailitem">
  5 + <view class="detaileft">发票状态</view>
  6 +
  7 + <view class="detailright" v-if="fapiaodetail.status==0">待审核</view>
  8 + <view class="detailright" v-if="fapiaodetail.status==1">待开票</view>
  9 + <view class="detailright" v-if="fapiaodetail.status==2">待邮寄</view>
  10 + <view class="detailright" v-if="fapiaodetail.status==3">已邮寄</view>
  11 + </view>
  12 + <view class="detailitem">
  13 + <view class="detaileft">发票抬头</view>
  14 + <view class="detailright">{{fapiaodetail.payable}}</view>
  15 + </view>
  16 + <view class="detailitem">
  17 + <view class="detaileft">快递单号</view>
  18 + <view class="detailright">{{fapiaodetail.number}}</view>
  19 + </view>
  20 + <view class="detailitem">
  21 + <view class="detaileft">税号</view>
  22 + <view class="detailright">{{fapiaodetail.paragraph}}</view>
  23 + </view>
  24 + <view class="detailitem">
  25 + <view class="detaileft">发票内容</view>
  26 + <view class="detailright">{{fapiaodetail.mark}}</view>
  27 + </view>
  28 + <view class="dizhi">
  29 + <view class="detaileft">地址和电话</view>
  30 + <view class="detailright address">
  31 + <view>{{fapiaodetail.address}}</view>
  32 + <view class="code">{{fapiaodetail.mobile}}</view>
  33 + </view>
  34 + </view>
  35 + <view class="dizhi">
  36 + <view class="detaileft">开户行和账号</view>
  37 + <view class="detailright address">
  38 + <view>{{fapiaodetail.open_bank}}</view>
  39 + <view class="code">{{fapiaodetail.open_account}}</view>
  40 + </view>
  41 + </view>
  42 + <view class="detailitem">
  43 + <view class="detaileft">发票金额</view>
  44 + <view class="detailright">{{fapiaodetail.money}}元</view>
  45 + </view>
  46 + <view class="detailitem">
  47 + <view class="detaileft">申请时间</view>
  48 + <view class="detailright">{{fapiaodetail.createtime}}</view>
  49 + </view>
  50 + </view>
  51 + </view>
  52 +</template>
  53 +
  54 +<script>
  55 + import app from "../../App.vue"
  56 + export default {
  57 + data() {
  58 + return {
  59 + id: '',
  60 + fapiaodetail:''
  61 + }
  62 + },
  63 + methods: {
  64 + //获取发票详情
  65 +
  66 + getfapiaodetail() {
  67 + let param = {
  68 + id: this.id
  69 + }
  70 + app.post("api/person/invoiceDetail", param, 'get')
  71 + .then(res => {
  72 + console.log(res);
  73 + this.fapiaodetail=res
  74 +
  75 + })
  76 + .catch(err => {});
  77 + }
  78 + },
  79 + mounted() {
  80 + this.getfapiaodetail()
  81 + },
  82 + onLoad(options) {
  83 + console.log(options)
  84 + this.id = options.id
  85 + }
  86 + }
  87 +</script>
  88 +
  89 +<style>
  90 + .fapiaodetail {
  91 + width: 686rpx;
  92 + background: #fff;
  93 + border-radius: 14rpx;
  94 + margin: 20rpx auto 48rpx;
  95 + padding: 0 32rpx;
  96 + box-sizing: border-box;
  97 + }
  98 +
  99 + .detailitem {
  100 + display: flex;
  101 + align-items: center;
  102 + justify-content: space-between;
  103 + padding: 40rpx 0;
  104 + box-sizing: border-box;
  105 + border-bottom: 1rpx solid #f5f5f5;
  106 + }
  107 +
  108 + .detaileft {
  109 + color: #0A0808;
  110 + font-size: 30rpx;
  111 + }
  112 +
  113 + .detailright {
  114 + color: #7F8389;
  115 + font-size: 28rpx;
  116 +
  117 + }
  118 +
  119 + .dizhi {
  120 + padding: 40rpx 0;
  121 + box-sizing: border-box;
  122 + border-bottom: 1rpx solid #f5f5f5;
  123 + }
  124 +
  125 + .address {
  126 + margin-top: 24rpx
  127 + }
  128 +
  129 + .code {
  130 + margin-top: 24rpx
  131 + }
  132 +</style>
  1 +<template>
  2 + <view class="gereninfo">
  3 + <view class="gerenbox">
  4 + <view class="gerenitem">
  5 + <view class="gerenleft">
  6 + 头像
  7 + </view>
  8 + <view class="gerenright">
  9 + <view class="touimg">
  10 + <image :src="avatar"></image>
  11 + </view>
  12 + <view class="rowright">
  13 + <image src="/static/img/rowright.png"></image>
  14 + </view>
  15 + </view>
  16 +
  17 +
  18 + </view>
  19 +
  20 + <view class="gerenitem">
  21 + <view class="gerenleft">
  22 + 姓名
  23 + </view>
  24 + <view class="gerenright">
  25 + <view class="toutext">
  26 + <input type="text" placeholder="请输入姓名" :value="name" @blur="entername" />
  27 + </view>
  28 + <view class="rowright">
  29 + <image src="/static/img/rowright.png"></image>
  30 + </view>
  31 + </view>
  32 + </view>
  33 +
  34 + <view class="gerenitem">
  35 + <view class="gerenleft">
  36 + 推荐人
  37 + </view>
  38 + <view class="gerenright">
  39 + <view class="toutext" v-if="bangdingpeople==''" @click="bangding">
  40 + 绑定推荐人
  41 + </view>
  42 + <view class="toutext" v-else>
  43 + {{bangdingpeople}}
  44 + </view>
  45 + <view class="rowright">
  46 + <image src="/static/img/rowright.png"></image>
  47 + </view>
  48 + </view>
  49 +
  50 +
  51 + </view>
  52 + <view class="gerenitem">
  53 + <view class="gerenleft">
  54 + 公司名称
  55 + </view>
  56 + <view class="gerenright">
  57 + <view class="toutext">
  58 + {{peopleinfo.company_name==''?'暂无':peopleinfo.company_name}}
  59 + </view>
  60 + <view class="rowright">
  61 + <image src="/static/img/rowright.png"></image>
  62 + </view>
  63 + </view>
  64 + </view>
  65 + </view>
  66 + <view class="register" v-if="showbang">
  67 + <view class="registerwrap">
  68 +
  69 + <view class="bangtitle">绑定推荐人</view>
  70 + <view class="tuiphone">
  71 + <input placeholder='请输入推荐人手机号' placeholder-class='tuishouji' :value="phone" @input="entrphone" type="number" />
  72 + </view>
  73 + <view class="tuiwarn" v-if="showfalse">
  74 + {{errmsg}}
  75 + <!-- 该推荐人不存在,请重新输入 -->
  76 + </view>
  77 + <!-- <view class="tuiwarn">{{content}}</view> -->
  78 + <view class="tuifoot">
  79 + <view class="tuifootleft" @click="hideshowbang">取消</view>
  80 + <view class="tuifootright" @click="quding">确定</view>
  81 + </view>
  82 + </view>
  83 + </view>
  84 + </view>
  85 +</template>
  86 +
  87 +<script>
  88 + import app from "../../App.vue"
  89 + export default {
  90 + data() {
  91 + return {
  92 + showbang: false,
  93 + name: '',
  94 + peopleinfo: '',
  95 + phone: '',
  96 + changename: '',
  97 + showfalse:false,
  98 + avatar:'',
  99 + errmsg:'',
  100 + bangdingpeople:''
  101 +
  102 + }
  103 + },
  104 + methods: {
  105 + bangding() {
  106 + this.showbang = true
  107 + },
  108 + hideshowbang() {
  109 + this.showbang = false
  110 + },
  111 + // 输入姓名
  112 + entername(e) {
  113 + this.changename = e.detail.value
  114 + let param = {
  115 + username: this.changename
  116 + }
  117 + app.post("api/person/updateInfo", param, 'post')
  118 + .then(res => {
  119 + console.log(res);
  120 + uni.showToast({
  121 + title: '修改成功',
  122 + icon: 'none',
  123 + })
  124 +
  125 +
  126 + })
  127 + .catch(err => {
  128 + console.log(err)
  129 + uni.showToast({
  130 + title: err.msg,
  131 + icon: 'none',
  132 + })
  133 + });
  134 + },
  135 + // 输入手机号
  136 + entrphone(e) {
  137 + this.phone = e.detail.value;
  138 + console.log(this.phone)
  139 + if(this.phone==''){
  140 + this.showfalse=false
  141 + }
  142 + console.log(e)
  143 + },
  144 +
  145 + quding() {
  146 +
  147 + let phone = this.phone;
  148 +
  149 + var reg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
  150 + if (!reg.test(phone)) {
  151 + uni.showToast({
  152 + title: "请输入正确的手机号",
  153 + icon: 'none',
  154 + })
  155 +
  156 + return false
  157 + }
  158 + let param = {
  159 + mobile: this.phone
  160 + }
  161 + app.post("api/person/bindPerson", param, 'get')
  162 + .then(res => {
  163 + console.log(res);
  164 + uni.showToast({
  165 + title: '绑定成功',
  166 + icon: 'none',
  167 + })
  168 + setTimeout(function(){
  169 + uni.navigateBack({
  170 + checked:true
  171 + })
  172 + // this.showfalse=false
  173 + },1500)
  174 +
  175 +
  176 + })
  177 + .catch(err => {
  178 + console.log(err)
  179 + // uni.showToast({
  180 + // title: err.msg,
  181 + // icon: 'none',
  182 + // })
  183 + this.errmsg=err.msg
  184 + this.showfalse=true
  185 + });
  186 + }
  187 + },
  188 + onLoad(options) {
  189 + console.log(options)
  190 + let peopleinfo = JSON.parse(options.peopleinfo)
  191 + this.peopleinfo = peopleinfo
  192 + this.name = peopleinfo.username;
  193 + this.avatar=peopleinfo.avatar;
  194 + this.bangdingpeople=peopleinfo.recommender
  195 + console.log(this.bangdingpeople)
  196 +
  197 + },
  198 + onUnload: function() {
  199 +
  200 + },
  201 +
  202 + }
  203 +</script>
  204 +
  205 +<style>
  206 + .gereninfo {
  207 + background: #F5F5F5;
  208 +
  209 + }
  210 +
  211 + .gerenbox {
  212 + width: 686rpx;
  213 + margin: 26rpx auto 0;
  214 + }
  215 +
  216 + .gerenitem {
  217 + padding: 40rpx 32rpx;
  218 + box-sizing: border-box;
  219 +
  220 + }
  221 +
  222 + .gerenleft {
  223 + color: #0A0808;
  224 + font-size: 30rpx;
  225 + }
  226 +
  227 + .touimg {
  228 + width: 60rpx;
  229 + height: 60rpx;
  230 + font-size: 0;
  231 + border-radius: 50%;
  232 + }
  233 +
  234 + .touimg image {
  235 + width: 100%;
  236 + height: 100%;
  237 + border-radius: 50%;
  238 + }
  239 +
  240 + .rowright {
  241 + width: 48rpx;
  242 + height: 48rpx;
  243 + font-size: 0;
  244 + margin-left: 20rpx;
  245 + }
  246 +
  247 + .rowright image {
  248 + width: 100%;
  249 + height: 100%;
  250 + }
  251 +
  252 + .gerenitem {
  253 + display: flex;
  254 + align-items: center;
  255 + justify-content: space-between;
  256 + background: #fff;
  257 + }
  258 +
  259 + .gerenright {
  260 + display: flex;
  261 + align-items: center;
  262 + }
  263 +
  264 + .toutext {
  265 + color: #7F8389;
  266 + font-size: 24rpx;
  267 + }
  268 +
  269 + .toutext input {
  270 + text-align: right;
  271 + }
  272 +
  273 + .registerwrap {
  274 + width: 686rpx;
  275 + height: 654rpx;
  276 + background: rgba(255, 255, 255, 1);
  277 + opacity: 1;
  278 + border-radius: 10rpx;
  279 + background: #fff;
  280 + position: absolute;
  281 + top: 50%;
  282 + left: 50%;
  283 + right: 50%;
  284 + transform: translate(-50%, -50%);
  285 + padding: 58rpx 40rpx;
  286 + box-sizing: border-box;
  287 + }
  288 +
  289 + .bangtitle {
  290 + color: #06121E;
  291 + font-size: 44rpx;
  292 + font-weight: bold;
  293 + }
  294 +
  295 + .tuiphone {
  296 + width: 550rpx;
  297 + border-bottom: 1rpx solid #EBEBEB;
  298 + padding: 36rpx 0;
  299 + box-sizing: border-box;
  300 + margin-top: 80rpx;
  301 +
  302 + }
  303 +
  304 + .tuiphone input {
  305 + color: #D2D2D2;
  306 + font-size: 32rpx;
  307 + text-align: center
  308 + }
  309 +
  310 + .tuishouji {
  311 + color: #D2D2D2;
  312 + font-size: 32rpx;
  313 + }
  314 +
  315 + .tuiwarn {
  316 + color: #CE1500;
  317 + font-size: 26rpx;
  318 + margin-top: 20rpx;
  319 + }
  320 +
  321 + .tuifoot {
  322 + margin-top: 110rpx;
  323 + display: flex;
  324 + justify-content: space-between;
  325 + align-items: center
  326 + }
  327 +
  328 + .tuifootleft {
  329 + width: 254rpx;
  330 + height: 100rpx;
  331 + border: 2rpx solid rgba(243, 152, 0, 1);
  332 + opacity: 1;
  333 + border-radius: 10rpx;
  334 + color: #F39800;
  335 + font-size: 32rpx;
  336 + text-align: center;
  337 + line-height: 100rpx;
  338 + }
  339 +
  340 + .tuifootright {
  341 + width: 254rpx;
  342 + height: 100rpx;
  343 + background: rgba(243, 152, 0, 1);
  344 + box-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);
  345 + opacity: 1;
  346 + border-radius: 10rpx;
  347 + color: #fff;
  348 + font-size: 32rpx;
  349 + text-align: center;
  350 + line-height: 100rpx;
  351 + }
  352 +</style>
  1 +<template>
  2 + <view class="content">
  3 + <image class="logo" src="/static/logo.png"></image>
  4 + <view class="text-area">
  5 + <text class="title">{{title}}</text>
  6 + </view>
  7 + </view>
  8 +</template>
  9 +
  10 +<script>
  11 + export default {
  12 + data() {
  13 + return {
  14 + title: 'Hello'
  15 + }
  16 + },
  17 + onLoad() {
  18 +
  19 + },
  20 + methods: {
  21 +
  22 + }
  23 + }
  24 +</script>
  25 +
  26 +<style>
  27 + .content {
  28 + display: flex;
  29 + flex-direction: column;
  30 + align-items: center;
  31 + justify-content: center;
  32 + }
  33 +
  34 + .logo {
  35 + height: 200upx;
  36 + width: 200upx;
  37 + margin-top: 200upx;
  38 + margin-left: auto;
  39 + margin-right: auto;
  40 + margin-bottom: 50upx;
  41 + }
  42 +
  43 + .text-area {
  44 + display: flex;
  45 + justify-content: center;
  46 + }
  47 +
  48 + .title {
  49 + font-size: 36upx;
  50 + color: #8f8f94;
  51 + }
  52 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="fapiaolist">
  4 + <picker @change="selecttaitou" :value="index" :range="array" range-key="name">
  5 + <view class="fapiaoitem">
  6 +
  7 +
  8 + <view class="fleft">抬头类型</view>
  9 + <view class="fright">
  10 + <!-- <view class="qdan">企业单位</view> -->
  11 + <view class="qdan">
  12 + {{array[index].name}}
  13 + </view>
  14 + <view class="qirow">
  15 + <image src="/static/img/rowright.png"></image>
  16 + </view>
  17 + </view>
  18 +
  19 + </view>
  20 + </picker>
  21 + <view class="fapiaoitem">
  22 + <view class="fleft">发票抬头</view>
  23 + <view class="fright fatai">
  24 + <input type="text" placeholder="填写发票抬头" placeholder-class="fapiao" v-model="taitou" />
  25 + </view>
  26 + </view>
  27 + <view class="fapiaoitem">
  28 + <view class="fleft">税号</view>
  29 + <view class="fright fatai">
  30 + <input type="text" placeholder="填写纳税人识别号" placeholder-class="fapiao" v-model="shuihao" />
  31 + </view>
  32 + </view>
  33 + <view class="fapiaoitem">
  34 + <view class="fleft">备注</view>
  35 + <view class="fright fatai">
  36 + <input type="text" placeholder="填写备注说明" placeholder-class="fapiao" v-model="remark" />
  37 + </view>
  38 + </view>
  39 + <view class="fapiaoitem">
  40 + <view class="fleft">地址</view>
  41 + <view class="fright fatai">
  42 + <input type="text" placeholder="填写地址" placeholder-class="fapiao" v-model="address" />
  43 + </view>
  44 + </view>
  45 + <view class="fapiaoitem">
  46 + <view class="fleft">电话</view>
  47 + <view class="fright fatai">
  48 + <input type="text" placeholder="填写电话" placeholder-class="fapiao" v-model="phone" />
  49 + </view>
  50 + </view>
  51 + <view class="fapiaoitem">
  52 + <view class="fleft">开户行</view>
  53 + <view class="fright fatai">
  54 + <input type="text" placeholder="填写开户行" placeholder-class="fapiao" v-model="bank" />
  55 + </view>
  56 + </view>
  57 + <view class="fapiaoitem">
  58 + <view class="fleft">开户行账号</view>
  59 + <view class="fright fatai">
  60 + <input type="number" placeholder="填写开户行账号" placeholder-class="fapiao" v-model="banknum" />
  61 + </view>
  62 + </view>
  63 +
  64 + </view>
  65 +
  66 + <!-- 消费记录 -->
  67 + <view class="fapiaolist">
  68 + <view class="fapiaoitem" @click="selectjilu">
  69 + <view class="fleft">选择消费记录</view>
  70 + <view class="fright">
  71 + <view class="xiaorow">
  72 + <image src="/static/img/rowright.png"></image>
  73 + </view>
  74 + </view>
  75 + </view>
  76 + <view class="fapiaoitem">
  77 + <view class="fleft">发票金额</view>
  78 + <view class="fright fajine">
  79 + <!-- <input type="number" placeholder="填写发票金额" placeholder-class="fapiao" v-model="fapiaomoney" style="text-align: right;" /> -->
  80 + {{fapiaomoney}}
  81 +
  82 + </view>
  83 + </view>
  84 + </view>
  85 +
  86 + <!-- 收件人信息 -->
  87 + <view class="fapiaolist">
  88 + <view class="shouinfo">收件人信息</view>
  89 + <view class="fapiaoitem">
  90 + <view class="fleft">姓名</view>
  91 + <view class="fright fatai">
  92 + <input type="text" placeholder="填写收件人姓名" placeholder-class="fapiao" v-model="shouname" />
  93 + </view>
  94 + </view>
  95 + <view class="fapiaoitem">
  96 + <view class="fleft">电话</view>
  97 + <view class="fright fatai">
  98 + <input type="text" placeholder="填写收件人电话" placeholder-class="fapiao" v-model="shouphone" />
  99 + </view>
  100 + </view>
  101 + <view class="fapiaoitem">
  102 + <view class="fleft">地址</view>
  103 + <view class="fright fatai">
  104 + <input type="text" placeholder="填写收件人地址" placeholder-class="fapiao" v-model="shouaddress" />
  105 + </view>
  106 + </view>
  107 + </view>
  108 +
  109 + <view class="surekai" @click="queshen">确认开票</view>
  110 + </view>
  111 +</template>
  112 +
  113 +<script>
  114 + import app from "../../App.vue"
  115 + export default {
  116 + data() {
  117 + return {
  118 + array: [{
  119 + name: "企业单位",
  120 + id: 0
  121 + },
  122 + {
  123 + name: "个人/非企业单位 ",
  124 + id: 1
  125 + }
  126 + ],
  127 + index: 0,
  128 + selectid: 0,
  129 + taitou: '',
  130 + shuihao: '',
  131 + remark: '',
  132 + address: '',
  133 + phone: '',
  134 + bank: '',
  135 + banknum: '',
  136 + shouname: '',
  137 + shouphone: '',
  138 + shouaddress: '',
  139 + fapiaomoney:0,
  140 + // 选中的id
  141 + select_id:""
  142 +
  143 + }
  144 + },
  145 + methods: {
  146 +
  147 + selecttaitou(e) {
  148 + this.index = e.detail.value,
  149 + this.selectid = this.array[e.detail.value].id
  150 +
  151 + },
  152 +
  153 + // 选择消费记录
  154 + selectjilu() {
  155 + let obj={};
  156 + obj.selectid=this.selectid;
  157 + obj.taitou=this.taitou;
  158 + obj.shuihao=this.shuihao;
  159 + obj.remark=this.remark;
  160 + obj.address=this.address;
  161 + obj.phone=this.phone;
  162 + obj.bank=this.bank;
  163 + obj.banknum=this.banknum;
  164 + obj.fapiaomoney=this.fapiaomoney;
  165 + obj.shouname=this.shouname;
  166 + obj.shouphone=this.shouphone;
  167 + obj.shouaddress=this.shouaddress;
  168 + //
  169 + uni.setStorageSync("canshu",obj)
  170 + uni.navigateTo({
  171 + url: '/pages/selectxiaofeijilu/selectxiaofeijilu?id='+this.select_id
  172 + })
  173 + },
  174 + //确认审核
  175 + queshen() {
  176 + console.log(this.bank)
  177 + if (this.taitou == '') {
  178 + uni.showToast({
  179 + title: '请填写发票抬头',
  180 + icon: 'none',
  181 + })
  182 +
  183 + return false
  184 + }
  185 +
  186 + if (this.shuihao == '') {
  187 + uni.showToast({
  188 + title: '请填写税号',
  189 + icon: 'none',
  190 + })
  191 +
  192 + return false
  193 + }
  194 +
  195 + if (this.remark == '') {
  196 + uni.showToast({
  197 + title: '请填写备注说明',
  198 + icon: 'none',
  199 + })
  200 +
  201 + return false
  202 + }
  203 +
  204 + if (this.address == '') {
  205 + uni.showToast({
  206 + title: '请填写地址',
  207 + icon: 'none',
  208 + })
  209 +
  210 + return false
  211 + }
  212 +
  213 + if (this.phone == '') {
  214 + uni.showToast({
  215 + title: '请填写电话',
  216 + icon: 'none',
  217 + })
  218 +
  219 + return false
  220 + }
  221 +
  222 + var regphone = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
  223 + if (!regphone.test(this.phone)) {
  224 + uni.showToast({
  225 + title: '请填写正确的电话',
  226 + icon: 'none',
  227 + })
  228 +
  229 + return false
  230 + }
  231 +
  232 + if (this.bank == '') {
  233 + uni.showToast({
  234 + title: '请填写开户行',
  235 + icon: 'none',
  236 + })
  237 +
  238 + return false
  239 + }
  240 +
  241 + if (this.banknum == '') {
  242 + uni.showToast({
  243 + title: '请填写开户行账号',
  244 + icon: 'none',
  245 + })
  246 +
  247 + return false
  248 + }
  249 +
  250 + if (this.shouname == '') {
  251 + uni.showToast({
  252 + title: '请填写收货人姓名',
  253 + icon: 'none',
  254 + })
  255 +
  256 + return false
  257 + }
  258 +
  259 + if (this.shouphone == '') {
  260 + uni.showToast({
  261 + title: '请填写收货人电话',
  262 + icon: 'none',
  263 + })
  264 +
  265 + return false
  266 + }
  267 +
  268 + var regshouphone = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
  269 + if (!regshouphone.test(this.shouphone)) {
  270 + uni.showToast({
  271 + title: '请填写正确的收货人电话',
  272 + icon: 'none',
  273 + })
  274 +
  275 + return false
  276 + }
  277 +
  278 + if (this.shouaddress == '') {
  279 + uni.showToast({
  280 + title: '请填写收货人地址',
  281 + icon: 'none',
  282 + })
  283 + return false
  284 + }
  285 +
  286 +
  287 + var param = {
  288 + order_ids:this.select_id,
  289 + type: this.selectid,
  290 + payable: this.taitou,
  291 + paragraph: this.shuihao,
  292 + mark: this.remark,
  293 + address: this.address,
  294 + mobile: this.phone,
  295 + open_bank: this.bank,
  296 + open_account: this.banknum,
  297 + money: this.fapiaomoney,
  298 + user_name: this.shouname,
  299 + user_mobile: this.shouphone,
  300 + user_address: this.shouaddress
  301 +
  302 + }
  303 + app.post("api/person/applyInvoice", param, 'post')
  304 + .then(res => {
  305 + console.log(res);
  306 + uni.showToast({
  307 + title: '开具发票成功',
  308 + icon: 'none',
  309 + })
  310 +
  311 + uni.removeStorageSync('select_id');
  312 + uni.removeStorageSync('totalmoney');
  313 + uni.removeStorageSync('totalnum');
  314 + uni.removeStorageSync('canshu');
  315 +
  316 + setTimeout(function() {
  317 + // uni.navigateBack({
  318 + // checked:true
  319 + // })
  320 +
  321 +
  322 + uni.switchTab({
  323 + url: '/pages/personcenter/personcenter'
  324 + })
  325 + }, 1500)
  326 + })
  327 + .catch(err => {
  328 + console.log(err);
  329 + uni.showToast({
  330 + title: err.msg,
  331 + icon: 'none',
  332 + })
  333 +
  334 + });
  335 + },
  336 +
  337 +
  338 +
  339 + },
  340 + onLoad(options) {
  341 + console.log('123456789',options)
  342 + // this.select_id = options.select_id;
  343 + // console.log(this.select_id,"选中的id")
  344 + // if(options.money!=undefined){
  345 + // this.fapiaomoney=options.money
  346 + // }
  347 + },
  348 + onShow() {
  349 + let obj=uni.getStorageSync("canshu");
  350 + if(obj!=''){
  351 + this.selectid=obj.selectid;
  352 + this.taitou=obj.taitou;
  353 + this.shuihao=obj.shuihao;
  354 + this.remark=obj.remark;
  355 + this.address=obj.address;
  356 + this.phone=obj.phone;
  357 + this.bank=obj.bank;
  358 + this.banknum=obj.banknum;
  359 + this.fapiaomoney=obj.fapiaomoney;
  360 + this.shouname=obj.shouname;
  361 + this.shouphone=obj.shouphone;
  362 + this.shouaddress=obj.shouaddress;
  363 + };
  364 +
  365 + let pages = getCurrentPages();
  366 +
  367 + let currPage = pages[pages.length - 1]; //当前页面
  368 + this.select_id = currPage.data.selectId;
  369 + console.log(this.selectId)
  370 +
  371 + if(currPage.data.totlemoney!=undefined){
  372 + this.fapiaomoney=currPage.data.totlemoney
  373 + }
  374 +
  375 +
  376 +
  377 +
  378 + }
  379 + }
  380 +</script>
  381 +
  382 +<style>
  383 + .fapiaoitem {
  384 + display: flex;
  385 + align-items: center;
  386 + justify-content: space-between;
  387 + padding: 40rpx 0;
  388 + box-sizing: border;
  389 + border-bottom: 1rpx solid #f5f5f5
  390 + }
  391 +
  392 + .fapiaolist {
  393 + width: 686rpx;
  394 + margin: 20rpx auto 0;
  395 + background: #fff;
  396 + padding: 0 32rpx;
  397 + box-sizing: border-box;
  398 + }
  399 +
  400 +
  401 + .qirow {
  402 + width: 48rpx;
  403 + height: 48rpx;
  404 + font-size: 0;
  405 + transform: rotate(90deg);
  406 + margin-left: 16rpx;
  407 + }
  408 +
  409 + .fright {
  410 + display: flex;
  411 + align-items: center;
  412 + }
  413 +
  414 + .fleft {
  415 + color: #0A0808;
  416 + font-size: 30rpx;
  417 + }
  418 +
  419 + .qdan {
  420 + color: #7F8389;
  421 + font-size: 28rpx;
  422 + }
  423 +
  424 + .fatai {
  425 + color: #7F8389;
  426 + font-size: 28rpx;
  427 + text-align: right;
  428 +
  429 + }
  430 +
  431 + .fapiao {
  432 + color: #7F8389;
  433 + font-size: 28rpx;
  434 + }
  435 +
  436 + .xiaorow {
  437 + width: 48rpx;
  438 + height: 48rpx;
  439 + font-size: 0;
  440 + }
  441 +
  442 + .fajine {
  443 + color: #7F8389;
  444 + font-size: 28rpx;
  445 + }
  446 +
  447 + .shouinfo {
  448 + color: #0A0808;
  449 + font-size: 32rpx;
  450 + font-weight: bold;
  451 + padding: 38rpx 0;
  452 + box-sizing: border-box;
  453 +
  454 + }
  455 +
  456 + .surekai {
  457 + width: 686rpx;
  458 + height: 100rpx;
  459 + background: rgba(243, 152, 0, 1);
  460 + box-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);
  461 + opacity: 1;
  462 + border-radius: 10rpx;
  463 + color: #fff;
  464 + font-size: 32rpx;
  465 + text-align: center;
  466 + line-height: 100rpx;
  467 + margin: 34rpx auto;
  468 + }
  469 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="kailist">
  4 + <view class="kailistitem" @click="qukaipiao">
  5 + <view class="kaileft">前往开票</view>
  6 + <view class="kairight">
  7 + <image src="/static/img/rowright.png"></image>
  8 + </view>
  9 + </view>
  10 + <view class="kailistitem" @click="historykaipiao">
  11 + <view class="kaileft">开票历史</view>
  12 + <view class="kairight">
  13 + <image src="/static/img/rowright.png"></image>
  14 + </view>
  15 + </view>
  16 +
  17 +
  18 + </view>
  19 + </view>
  20 +</template>
  21 +
  22 +<script>
  23 + import app from "../../App.vue"
  24 + export default {
  25 + data() {
  26 + return {
  27 +
  28 + }
  29 + },
  30 + methods: {
  31 + qukaipiao(){
  32 + uni.navigateTo({
  33 + url:'/pages/kafapiao/kafapiao'
  34 + })
  35 + // uni.removeStorageSync('select_id');
  36 + // uni.removeStorageSync('totalmoney');
  37 + // uni.removeStorageSync('totalnum');
  38 + // uni.removeStorageSync('canshu');
  39 + },
  40 + // 开票历史
  41 + historykaipiao(){
  42 + uni.navigateTo({
  43 + url:"/pages/kaipiaolishi/kaipiaolishi"
  44 + })
  45 + }
  46 + }
  47 + }
  48 +</script>
  49 +
  50 +<style>
  51 +.kailist{
  52 + padding: 0 32rpx;
  53 + box-sizing: border-box;
  54 + background: #fff;
  55 +}
  56 +.kailistitem{
  57 + display:flex;
  58 + align-items: center;
  59 + justify-content: space-between;
  60 + padding: 42rpx 0;
  61 + box-sizing: border-box;
  62 + border-bottom:1rpx solid #f5f5f5;
  63 +}
  64 +.kaileft{
  65 + color:#0A0808;
  66 + font-size: 30rpx;
  67 +}
  68 +.kairight{
  69 + width:48rpx;
  70 + height:48rpx;
  71 + font-size: 0;
  72 +}
  73 +
  74 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="kaipiaolist" v-for="(item,index) in fapiaolist" :key="index"
  4 + :value="item.id" @click="detail" :data-id="item.id">
  5 + <view class="kaipiaotop">
  6 + <view class="kaipiaotime">{{item.createtime}}</view>
  7 + <view class="kaipiaostate" v-if="item.status==0">待审核</view>
  8 + <view class="kaipiaostate" v-if="item.status==1">待开票</view>
  9 + <view class="kaipiaostate" v-if="item.status==2">待邮寄</view>
  10 + <view class="kaipiaostate yiyou" v-if="item.status==3">已邮寄</view>
  11 + </view>
  12 + <view class="kaipiaobottom">
  13 + <view class="btleft">
  14 + {{item.mark}}
  15 + </view>
  16 + <view class="btright">{{item.money}}元</view>
  17 + </view>
  18 + </view>
  19 + <!-- <view class="kaipiaolist">
  20 + <view class="kaipiaotop">
  21 + <view class="kaipiaotime">2018-01-29 10:52</view>
  22 + <view class="kaipiaostate yiyou">已邮寄</view>
  23 + </view>
  24 + <view class="kaipiaobottom">
  25 + <view class="btleft">
  26 + 发票内容xxxxxx
  27 + </view>
  28 + <view class="btright">12.34元</view>
  29 + </view>
  30 + </view>
  31 + <view class="kaipiaolist">
  32 + <view class="kaipiaotop">
  33 + <view class="kaipiaotime">2018-01-29 10:52</view>
  34 + <view class="kaipiaostate">待开票</view>
  35 + </view>
  36 + <view class="kaipiaobottom">
  37 + <view class="btleft">
  38 + 发票内容xxxxxx
  39 + </view>
  40 + <view class="btright">12.34元</view>
  41 + </view>
  42 + </view>
  43 + -->
  44 +
  45 + </view>
  46 +</template>
  47 +
  48 +<script>
  49 + import app from "../../App.vue"
  50 + export default {
  51 + data() {
  52 + return {
  53 + page: 1,
  54 + fapiaolist:[]
  55 + }
  56 + },
  57 + methods: {
  58 + //获取开票历史
  59 + gethistory() {
  60 + let param = {
  61 + page: this.page
  62 + }
  63 +
  64 + app.post("api/person/invoiceRecord", param, 'get')
  65 + .then(res => {
  66 + console.log(res);
  67 + this.fapiaolist=res
  68 + })
  69 + .catch(err => {});
  70 + },
  71 + detail(e){
  72 + console.log(e)
  73 + let id=e.currentTarget.dataset.id;
  74 + uni.navigateTo({
  75 + url:'/pages/fapiaodetail/fapiaodetail?id='+id
  76 + })
  77 + }
  78 +
  79 + },
  80 +
  81 + mounted() {
  82 + this.gethistory()
  83 + }
  84 + }
  85 +</script>
  86 +
  87 +<style>
  88 + .kaipiaolist {
  89 + width: 686rpx;
  90 + margin: 20rpx auto 0;
  91 + background: #fff;
  92 + padding: 24rpx 30rpx;
  93 + box-sizing: border-box;
  94 + border-radius: 14rpx;
  95 + }
  96 +
  97 + .kaipiaotime {
  98 + color: #7F8389;
  99 + font-size: 30rpx;
  100 +
  101 +
  102 + }
  103 +
  104 + .btleft {
  105 + color: #0A0808;
  106 + font-size: 32rpx;
  107 + }
  108 +
  109 + .btright {
  110 + color: #F29600;
  111 + font-size: 36rpx;
  112 + }
  113 +
  114 + .kaipiaostate {
  115 + color: #F29600;
  116 + font-size: 28rpx;
  117 + }
  118 +
  119 + .kaipiaotop {
  120 + display: flex;
  121 + align-items: center;
  122 + justify-content: space-between;
  123 + }
  124 +
  125 + .kaipiaobottom {
  126 + display: flex;
  127 + align-items: center;
  128 + justify-content: space-between;
  129 + margin-top: 66rpx;
  130 + }
  131 +
  132 + .yiyou {
  133 + color: #7F8389
  134 + }
  135 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="shunav">
  4 + <view class="shuitem" :class="sel==1?'shuactive':''" data-id="1" @click="xuan">数板</view>
  5 + <view class="shuitem" :class="sel==2?'shuactive':''" data-id="2" @click="xuan">数管</view>
  6 + </view>
  7 + <view class="myshuban" v-if="sel==1">
  8 + <view class="qiun-columns">
  9 + <view class="qiun-bg-white qiun-title-bar qiun-common-mt">
  10 + <view class="qiun-title-dot-light">
  11 + <!-- <text class="month">7月</text> -->
  12 + <text class="cishu">使用次数</text>
  13 + </view>
  14 + </view>
  15 + <view class="qiun-charts">
  16 + <canvas canvas-id="canvasMixone" id="canvasMixone" class="charts" disable-scroll=true @touchstart="touchMix"
  17 + @touchmove="moveMix" @touchend="touchEndMix"></canvas>
  18 + </view>
  19 + </view>
  20 +
  21 + <!-- 我的设备 -->
  22 + <view class="shebei">
  23 + <view class="shebeihead">我的设备</view>
  24 + <view class="shebeilist">
  25 + <view class="shebeiitem" v-for="(item,index) in ban_list" :key="index" @click="go_shuban(item)">
  26 + <view class="sheleft">
  27 + <view class="shebeihao">设备编号:{{item.number}}</view>
  28 + <view class="shebeixi">
  29 + <view class="company">所属公司:{{item.name}}</view>
  30 + <view class="remainday">剩余时间:{{item.time}}</view>
  31 + </view>
  32 + </view>
  33 + <view class="sheright">
  34 + <image src="/static/img/rowright.png"></image>
  35 + </view>
  36 + </view>
  37 +
  38 + </view>
  39 +
  40 + </view>
  41 +
  42 + </view>
  43 +
  44 +
  45 + <view class="myshuban" v-if="sel==2">
  46 + <view class="qiun-columns">
  47 + <view class="qiun-bg-white qiun-title-bar qiun-common-mt">
  48 + <view class="qiun-title-dot-light">
  49 + <!-- <text class="month">7月</text> -->
  50 + <text class="cishu">使用次数</text>
  51 + </view>
  52 + </view>
  53 + <view class="qiun-charts">
  54 + <canvas canvas-id="canvasMix" id="canvasMix" class="charts" disable-scroll=true @touchstart="touchMix" @touchmove="moveMix"
  55 + @touchend="touchEndMix"></canvas>
  56 + </view>
  57 + </view>
  58 +
  59 + <!-- 我的设备 -->
  60 + <view class="shebei">
  61 + <view class="shebeihead shugsj">数管数据</view>
  62 + <view class="shengyu" v-if="shenyu_times.times != 0">
  63 + <view class="sycishuleft">剩余可用次数:{{shenyu_times.times}}</view>
  64 + <view class="sycishuright">
  65 + <image src="/static/img/you.png"></image>
  66 + </view>
  67 + </view>
  68 + <view class="shengyu" v-if="shenyu_times.shengyu != 0">
  69 + <view class="sycishuleft">剩余可用时间:{{shenyu_times.shengyu}}</view>
  70 + <view class="sycishuright">
  71 + <image src="/static/img/you.png"></image>
  72 + </view>
  73 + </view>
  74 + <view class="shebeilist">
  75 + <view class="sybanhead">
  76 + <view class="sybanitem">清点时间</view>
  77 + <view class="sybanitem">图片编号</view>
  78 + <view class="sybanitem">图片</view>
  79 + <view class="sybanitem">详情</view>
  80 + </view>
  81 + <view class="shebeilitem" v-for="(item,index) in guan_list" :key="index" v-if="guan_list != ''">
  82 + <view class="sbitem sbdate">{{item.date}}<br/>{{item.time}}</view>
  83 + <view class="sbitem sbhao">{{item.image_id}}</view>
  84 + <view class="sbitem sbt">
  85 + <image :src="item.files"></image>
  86 + </view>
  87 + <view class="sbitem ck" @click="look_guan(item.id)">查看</view>
  88 + </view>
  89 + <view class="shebeilitem" v-if="guan_list == ''">
  90 + <view class="nodatas">暂无数据</view>
  91 + </view>
  92 + </view>
  93 +
  94 + </view>
  95 +
  96 + </view>
  97 +
  98 +
  99 + </view>
  100 +
  101 +</template>
  102 +
  103 +
  104 +
  105 +<script>
  106 + import uCharts from '@/uchart/u-charts.js';
  107 + import app from "../../App.vue"
  108 + var _self;
  109 + var canvaMix = null;
  110 +
  111 + export default {
  112 +
  113 + data() {
  114 + return {
  115 + sel: 1,
  116 + //图表
  117 + cWidth: '',
  118 + cHeight: '',
  119 + pixelRatio: 1,
  120 + // 获取剩余可用次数
  121 + shenyu_times:"",
  122 + // 图表数据
  123 + //*数板*//
  124 + shuban: [],
  125 + shuban_x: [],
  126 + /*数板列表数据*/
  127 + ban_list: "",
  128 + //*数管*//
  129 + shuguan: [],
  130 + shuguan_x: [],
  131 + /*数管列表数据*/
  132 + guan_list:""
  133 + }
  134 + },
  135 + onLoad() {
  136 + _self = this;
  137 + this.cWidth = uni.upx2px(750);
  138 + this.cHeight = uni.upx2px(500);
  139 + },
  140 + methods: {
  141 + // 获取图表数据
  142 + //*数板*//
  143 + get_shubanchart() {
  144 + let t = this;
  145 + let url = "api/person/getUserEquipmentLog";
  146 + let param = {};
  147 + let ban = [];
  148 + let banX = []
  149 + app.post(url, param, 'post').then(r => {
  150 + console.log('88888888',r)
  151 + for (var i = 0; i < r.user_equipment_log.length; i++) {
  152 + banX.unshift(r.user_equipment_log[i].date)
  153 + ban.unshift(r.user_equipment_log[i].count)
  154 + }
  155 + t.shuban = ban;
  156 + t.shuban_x = banX;
  157 + t.getServerData1();
  158 + t.ban_list = r.equipment;
  159 +
  160 + let newban_list=t.ban_list;
  161 + for(var obj of newban_list){
  162 + let number = obj.time;
  163 + // // 时间戳处理
  164 + var totalSecond = number;
  165 + var second = totalSecond;
  166 + // // 秒数
  167 + // var second = totalSecond;
  168 + var day = Math.floor(second / 3600 / 24);
  169 + var dayStr = day.toString();
  170 + if (dayStr.length == 1) dayStr = dayStr;
  171 + // 小时位
  172 + var hr = Math.floor((second - day * 3600 * 24) / 3600);
  173 + var hrStr = hr.toString();
  174 + if (hrStr.length == 1) hrStr = hrStr;
  175 + // 分钟位
  176 + var min = Math.floor((second - day * 3600 * 24 - hr * 3600) / 60);
  177 + var minStr = min.toString();
  178 + if (minStr.length == 1) minStr = minStr;
  179 + // 秒位
  180 + var sec = second - day * 3600 * 24 - hr * 3600 - min * 60;
  181 + var secStr = sec.toString();
  182 + if (secStr.length == 1) secStr = secStr;
  183 + obj.time = dayStr + '天' + hrStr + '小时' + minStr + "分钟"
  184 + }
  185 + this.ban_list=newban_list
  186 +
  187 + }).catch(err => {
  188 + console.log(err)
  189 + })
  190 + },
  191 + //*数管*//
  192 + get_shuguanchart() {
  193 + let t = this;
  194 + let url = "api/person/getUserShuguanLog";
  195 + let param = {};
  196 + let guan = [];
  197 + let guanX = []
  198 + app.post(url, param, 'post').then(r => {
  199 + for (var i = 0; i < r.user_shuguan_log.length; i++) {
  200 + guanX.unshift(r.user_shuguan_log[i].date)
  201 + guan.unshift(r.user_shuguan_log[i].count)
  202 + }
  203 + t.shuguan = guan;
  204 + t.shuguan_x = guanX;
  205 + t.getServerData();
  206 + t.guan_list = r.shuguan
  207 + }).catch(err => {
  208 + console.log(err)
  209 + })
  210 + },
  211 +
  212 +
  213 + timechange(){
  214 + let number = this.shengyuqixian;
  215 + // // 时间戳处理
  216 + var totalSecond = number;
  217 + var second = totalSecond;
  218 + // // 秒数
  219 + // var second = totalSecond;
  220 + var day = Math.floor(second / 3600 / 24);
  221 + var dayStr = day.toString();
  222 + if (dayStr.length == 1) dayStr = dayStr;
  223 + // 小时位
  224 + var hr = Math.floor((second - day * 3600 * 24) / 3600);
  225 + var hrStr = hr.toString();
  226 + if (hrStr.length == 1) hrStr = hrStr;
  227 + // 分钟位
  228 + var min = Math.floor((second - day * 3600 * 24 - hr * 3600) / 60);
  229 + var minStr = min.toString();
  230 + if (minStr.length == 1) minStr = minStr;
  231 + // 秒位
  232 + var sec = second - day * 3600 * 24 - hr * 3600 - min * 60;
  233 + var secStr = sec.toString();
  234 + if (secStr.length == 1) secStr = secStr;
  235 + this.showshengyuqixian = dayStr + '天' + hrStr + '小时' + minStr + "分钟"
  236 +
  237 +
  238 +
  239 +
  240 + },
  241 +
  242 +
  243 +
  244 + getServerData() {
  245 + let t = this;
  246 + uni.request({
  247 + url: 'https://www.ucharts.cn/data.json',
  248 + data: {},
  249 + success: function(res) {
  250 + console.log(res.data.data)
  251 + let Mix = {
  252 + categories: t.shuguan_x,
  253 + series: [{
  254 + "name": "曲线",
  255 + "data": t.shuguan,
  256 + "type": "line",
  257 + "style": "curve",
  258 + "color": "#F29600"
  259 + }],
  260 + };
  261 + //这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
  262 + // Mix.categories=res.data.data.Mix.categories;
  263 + // Mix.series=res.data.data.Mix.series;
  264 + _self.showMix("canvasMix", Mix);
  265 + },
  266 + fail: () => {
  267 + _self.tips = "网络错误,小程序端请检查合法域名";
  268 + },
  269 + });
  270 + },
  271 + getServerData1() {
  272 + let t = this;
  273 + uni.request({
  274 + url: 'https://www.ucharts.cn/data.json',
  275 + data: {},
  276 + success: function(res) {
  277 + console.log(res.data.data)
  278 + let Mix = {
  279 + categories: t.shuban_x,
  280 + series: [{
  281 + "name": "曲线",
  282 + "data": t.shuban,
  283 + "type": "line",
  284 + "style": "curve",
  285 + "color": "#F29600"
  286 + }, ],
  287 + };
  288 + //这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
  289 + // Mix.categories=res.data.data.Mix.categories;
  290 + // Mix.series=res.data.data.Mix.series;
  291 + _self.showMix("canvasMixone", Mix);
  292 + },
  293 + fail: () => {
  294 + _self.tips = "网络错误,小程序端请检查合法域名";
  295 + },
  296 + });
  297 + },
  298 + // 前往数板详情
  299 + go_shuban(e){
  300 + console.log(e)
  301 + uni.navigateTo({
  302 + url: '/pages/shubanxinxi/shubanxinxi?num='+e.number,
  303 + success: res => {},
  304 + fail: () => {},
  305 + complete: () => {}
  306 + });
  307 + },
  308 + // 获取剩余可用次数
  309 + get_shenyu(){
  310 + let t = this;
  311 + let url = "api/shuguan/getShuguanRule";
  312 + let param = {};
  313 + app.post(url,param,'post').then(r =>{
  314 + console.log(r,"获取剩余可用次数")
  315 + t.shenyu_times = r;
  316 + let newshenyu_times=t.shenyu_times;
  317 +
  318 +
  319 + let number = newshenyu_times.shengyu;
  320 + // // 时间戳处理
  321 + var totalSecond = number;
  322 + var second = totalSecond;
  323 + // // 秒数
  324 + // var second = totalSecond;
  325 + var day = Math.floor(second / 3600 / 24);
  326 + var dayStr = day.toString();
  327 + if (dayStr.length == 1) dayStr = dayStr;
  328 + // 小时位
  329 + var hr = Math.floor((second - day * 3600 * 24) / 3600);
  330 + var hrStr = hr.toString();
  331 + if (hrStr.length == 1) hrStr = hrStr;
  332 + // 分钟位
  333 + var min = Math.floor((second - day * 3600 * 24 - hr * 3600) / 60);
  334 + var minStr = min.toString();
  335 + if (minStr.length == 1) minStr = minStr;
  336 + // 秒位
  337 + var sec = second - day * 3600 * 24 - hr * 3600 - min * 60;
  338 + var secStr = sec.toString();
  339 + if (secStr.length == 1) secStr = secStr;
  340 + newshenyu_times.shengyu = dayStr + '天' + hrStr + '小时' + minStr + "分钟"
  341 +
  342 +
  343 + this.shenyu_times=newshenyu_times
  344 + }).catch(err =>{
  345 + console.log(err)
  346 + })
  347 + },
  348 + // 数管列表查看
  349 + look_guan(e){
  350 + console.log(e)
  351 + uni.navigateTo({
  352 + url: '/pages/shuguanshujudetail/shuguanshujudetail?id='+e,
  353 + success: res => {},
  354 + fail: () => {},
  355 + complete: () => {}
  356 + });
  357 + },
  358 + showMix(canvasId, chartData) {
  359 + console.log('9090909', chartData)
  360 + canvaMix = new uCharts({
  361 + $this: _self,
  362 + canvasId: canvasId,
  363 + type: 'mix',
  364 + fontSize: 11,
  365 + legend: {
  366 + show: true
  367 + },
  368 + background: '#FFFFFF',
  369 + pixelRatio: _self.pixelRatio,
  370 + categories: chartData.categories,
  371 + series: chartData.series,
  372 + animation: true,
  373 + enableScroll: true, //开启图表拖拽功能
  374 + xAxis: {
  375 + disableGrid: false,
  376 + type: 'grid',
  377 + gridType: 'dash',
  378 + itemCount: 4,
  379 + scrollShow: true,
  380 + scrollAlign: 'left',
  381 + },
  382 + yAxis: {
  383 + gridType: 'dash',
  384 + splitNumber: 10,
  385 + min: 20,
  386 + max: 40,
  387 + format: (val) => {
  388 + return val.toFixed(0)
  389 + }
  390 + },
  391 + width: _self.cWidth * _self.pixelRatio,
  392 + height: _self.cHeight * _self.pixelRatio,
  393 + dataLabel: true,
  394 + dataPointShape: true,
  395 + extra: {
  396 + tooltip: {
  397 + bgColor: '#000000',
  398 + bgOpacity: 0.7,
  399 + gridType: 'dash',
  400 + dashLength: 8,
  401 + gridColor: '#1890ff',
  402 + fontColor: '#FFFFFF',
  403 + horizentalLine: true,
  404 + xAxisLabel: true,
  405 + yAxisLabel: true,
  406 + labelBgColor: '#DFE8FF',
  407 + labelBgOpacity: 0.95,
  408 + labelAlign: 'left',
  409 + labelFontColor: '#666666'
  410 + }
  411 + },
  412 + });
  413 + },
  414 +
  415 + touchMix(e) {
  416 + canvaMix.scrollStart(e);
  417 + },
  418 + moveMix(e) {
  419 + canvaMix.scroll(e);
  420 + },
  421 + touchEndMix(e) {
  422 + canvaMix.scrollEnd(e);
  423 + //下面是toolTip事件,如果滚动后不需要显示,可不填写
  424 + canvaMix.showToolTip(e, {
  425 + format: function(item, category) {
  426 + return category + ' ' + item.name + ':' + item.data
  427 + }
  428 + });
  429 + },
  430 + //切换
  431 + xuan(e) {
  432 + console.log(e)
  433 + this.sel = e.currentTarget.dataset.id;
  434 + if (e.currentTarget.dataset.id == 1) {
  435 + this.getServerData1();
  436 + } else {
  437 + this.getServerData();
  438 + }
  439 + },
  440 + },
  441 + onShow() {
  442 + // 获取数板图表数据
  443 + this.get_shubanchart();
  444 + // 获取数管图表数据
  445 + this.get_shuguanchart();
  446 + // 获取剩余可用次数
  447 + this.get_shenyu()
  448 + }
  449 + }
  450 +</script>
  451 +
  452 +
  453 +<style>
  454 +
  455 + .nodatas{
  456 + color:#7F8389;
  457 + font-size:36rpx;
  458 + margin: 100rpx 0 50rpx;
  459 +
  460 + }
  461 + /*样式的width和height一定要与定义的cWidth和cHeight相对应*/
  462 + .qiun-charts {
  463 + width: 750upx;
  464 + height: 500upx;
  465 + background-color: #FFFFFF;
  466 + }
  467 +
  468 + .myshuban {
  469 + background: #fff;
  470 + }
  471 +
  472 + .charts {
  473 + width: 750upx;
  474 + height: 500upx;
  475 + background-color: #FFFFFF;
  476 + }
  477 +
  478 + .month {
  479 + color: #F29600;
  480 + font-size: 32rpx;
  481 + font-weight: bold;
  482 + }
  483 +
  484 + .cishu {
  485 + color: #0A0808;
  486 + font-size: 32rpx;
  487 + font-weight: bold;
  488 + }
  489 +
  490 + .qiun-columns {
  491 + overflow: hidden;
  492 + background: #fff;
  493 + }
  494 +
  495 + .qiun-charts {
  496 + margin-top: 32rpx
  497 + }
  498 +
  499 + .qiun-title-dot-light {
  500 + margin-top: 38rpx;
  501 + padding: 0 32rpx;
  502 + box-sizing: border-box;
  503 + }
  504 +
  505 + .shunav {
  506 + width: 750rpx;
  507 + background: #fff;
  508 + display: flex;
  509 + align-items: center;
  510 + justify-content: space-between;
  511 + padding: 20rpx 158rpx;
  512 + box-sizing: border-box;
  513 + }
  514 +
  515 + .shuitem {
  516 + color: #7F8389;
  517 + font-size: 30rpx;
  518 + }
  519 +
  520 + .shuactive {
  521 + position: relative;
  522 + }
  523 +
  524 + .shuactive:after {
  525 + content: "";
  526 + display: block;
  527 + width: 48rpx;
  528 + height: 6rpx;
  529 + background: #F29600;
  530 + position: absolute;
  531 + left: 50%;
  532 + right: 50%;
  533 + bottom: -18rpx;
  534 + transform: translate(-50%, -50%)
  535 + }
  536 +
  537 + .sheright {
  538 + width: 48rpx;
  539 + height: 48rpx;
  540 + font-size: 0;
  541 + }
  542 +
  543 + .shebeihead {
  544 + color: #0A0808;
  545 + font-size: 32rpx;
  546 + padding: 0 32rpx;
  547 + box-sizing: border-box;
  548 + margin-top: 10rpx
  549 + }
  550 +
  551 + .shebeilist {
  552 + padding: 0 32rpx 44rpx;
  553 + box-sizing: border-box;
  554 + margin-top: 20rpx;
  555 + }
  556 +
  557 + .sbitem {
  558 + border-right: 1rpx solid #DEDEDE;
  559 + border-bottom: 1rpx solid #DEDEDE;
  560 + height: 142rpx;
  561 + display: flex;
  562 + flex-direction: column;
  563 + align-items: center;
  564 + justify-content: center;
  565 + }
  566 +
  567 + .sbitem:first-child {
  568 + border-left: 1rpx solid #D5D5D5
  569 + }
  570 +
  571 + .shebeiitem {
  572 + display: flex;
  573 + align-items: center;
  574 + justify-content: space-between;
  575 + padding: 26rpx 0;
  576 + box-sizing: border-box;
  577 +
  578 + }
  579 +
  580 + .shebeixi {
  581 + display: flex;
  582 + align-items: center;
  583 + margin-top: 28rpx;
  584 +
  585 + }
  586 +
  587 + .shebeihao {
  588 + color: #0A0808;
  589 + font-size: 28rpx;
  590 +
  591 + }
  592 +
  593 + .company {
  594 + color: #7F8389;
  595 + font-size: 26rpx;
  596 + }
  597 +
  598 + .remainday {
  599 + color: #7F8389;
  600 + font-size: 26rpx;
  601 + margin-left: 64rpx;
  602 + }
  603 +
  604 + .shugsj {
  605 + font-weight: bold;
  606 + }
  607 +
  608 + .sycishuright {
  609 + width: 48rpx;
  610 + height: 48rpx;
  611 + font-size: 0;
  612 + }
  613 +
  614 + .shengyu {
  615 + display: flex;
  616 + align-items: center;
  617 + justify-content: space-between;
  618 + padding: 48rpx 32rpx 10rpx;
  619 + box-sizing: border-box;
  620 + }
  621 +
  622 + .sycishuleft {
  623 + color: #F29600;
  624 + font-size: 28rpx;
  625 + }
  626 +
  627 + .sybanhead {
  628 + display: flex;
  629 + align-items: center;
  630 + justify-content: space-around;
  631 + border-radius: 14rpx 14rpx 0rpx 0rpx;
  632 + background: #F29600;
  633 + height: 88rpx;
  634 + }
  635 +
  636 + .sybanitem {
  637 + color: #fff;
  638 + font-size: 30rpx;
  639 + }
  640 +
  641 + .shebeilitem {
  642 + display: flex;
  643 + align-items: center;
  644 + justify-content: space-around;
  645 + }
  646 +
  647 + .sbdate {
  648 + width: 225rpx;
  649 + padding: 32rpx 22rpx;
  650 + box-sizing: border-box;
  651 + color: #7F8389;
  652 + font-size: 26rpx;
  653 + line-height: 2;
  654 + }
  655 +
  656 + .sbhao {
  657 + width: 188rpx;
  658 + color: #7F8389;
  659 + font-size: 26rpx;
  660 + text-align: center;
  661 + padding: 0 30rpx;
  662 + box-sizing: border-box;
  663 + }
  664 +
  665 + .sbt {
  666 +
  667 + font-size: 0;
  668 + width: 194rpx;
  669 + display: flex;
  670 + justify-content: center;
  671 + }
  672 +
  673 + .sbt image {
  674 + width: 96rpx;
  675 + height: 96rpx;
  676 + margin: 0 auto;
  677 + }
  678 +
  679 + .ck {
  680 + width: 148rpx;
  681 + color: #7F8389;
  682 + font-size: 26rpx;
  683 + text-align: center;
  684 + }
  685 +</style>
  1 +<template>
  2 + <view class="personpage">
  3 + <view class="personimg" @click="enterperson">
  4 + <image src="/static/img/personimg.png"></image>
  5 + <view class="infobox">
  6 + <view class="infoimg">
  7 + <image :src="peopleinfo.avatar" v-if="token!=''"></image>
  8 + <image :src="touxiang" v-else></image>
  9 +
  10 + </view>
  11 +
  12 + <view class="infoname">{{peopleinfo.nickname}}</view>
  13 +
  14 + <view class="infohead">
  15 + <view class="infoheadleft">
  16 + <view class="infotui">推荐人</view>
  17 + <view class="infoji" v-if="token!=''">{{peopleinfo.recommender==''?'暂无':peopleinfo.recommender}}</view>
  18 + <view class="infoji" v-else>{{tuijianren}}</view>
  19 + </view>
  20 + <view class="infoheadleft">
  21 + <view class="infotui">公司名称</view>
  22 + <view class="infoji" v-if="token!=''">{{peopleinfo.company_name==''?'暂无':peopleinfo.company_name}}</view>
  23 + <view class="infoji" v-else>{{company}}</view>
  24 + </view>
  25 +
  26 +
  27 +
  28 + </view>
  29 + <view class="infobottom">
  30 + <view class="bottomleft">完善个人信息获取更好的内容</view>
  31 + <view class="wanshan">立即完善</view>
  32 + </view>
  33 + </view>
  34 +
  35 + </view>
  36 + <view class="infoboxlist">
  37 + <view class="listitem" @click="myshuju">
  38 + <ciew class="itemleft">
  39 + <view class='leftimg'>
  40 + <image src="/static/img/hezi.png"></image>
  41 + </view>
  42 + <view class="leftname">我的数据</view>
  43 + </ciew>
  44 + <view class="itemright">
  45 + <image src="/static/img/rowright.png"></image>
  46 + </view>
  47 + </view>
  48 + <view class="listitem" @click="xiaofeijilu">
  49 + <ciew class="itemleft">
  50 + <view class='leftimg'>
  51 + <image src="/static/img/xiaofei.png"></image>
  52 + </view>
  53 + <view class="leftname">消费记录</view>
  54 + </ciew>
  55 + <view class="itemright">
  56 + <image src="/static/img/rowright.png"></image>
  57 + </view>
  58 + </view>
  59 + <view class="listitem" @click="kaifapiao">
  60 + <ciew class="itemleft">
  61 + <view class='leftimg'>
  62 + <image src="/static/img/fapiao.png"></image>
  63 + </view>
  64 + <view class="leftname">开具发票</view>
  65 + </ciew>
  66 + <view class="itemright">
  67 + <image src="/static/img/rowright.png"></image>
  68 + </view>
  69 + </view>
  70 + <view class="listitem" @click="aboutus">
  71 + <ciew class="itemleft">
  72 + <view class='leftimg'>
  73 + <image src="/static/img/women.png"></image>
  74 + </view>
  75 + <view class="leftname">关于我们</view>
  76 + </ciew>
  77 + <view class="itemright">
  78 + <image src="/static/img/rowright.png"></image>
  79 + </view>
  80 + </view>
  81 +
  82 + </view>
  83 +
  84 + </view>
  85 +</template>
  86 +
  87 +<script>
  88 + import app from "../../App.vue"
  89 + export default {
  90 + data() {
  91 + return {
  92 + peopleinfo: '',
  93 + token: '',
  94 + touxiang: "../../static/img/morentou3.png",
  95 + tuijianren: '暂无',
  96 + company: "暂无",
  97 + }
  98 + },
  99 + methods: {
  100 + enterperson() {
  101 + let re_id = uni.getStorageSync("re_id");
  102 + let token = uni.getStorageSync("token")
  103 + if (token == '') {
  104 + uni.showToast({
  105 + title: '请登录后操作',
  106 + icon: 'none'
  107 + })
  108 +
  109 + setTimeout(function() {
  110 + uni.navigateTo({
  111 + url: "/pages/qidong/qidong"
  112 + })
  113 + }, 1000)
  114 +
  115 +
  116 + } else if (token !=''&&re_id == 0) {
  117 +
  118 + uni.showToast({
  119 + title: '请绑定客户',
  120 + icon: "none"
  121 + })
  122 +
  123 + setTimeout(function() {
  124 + uni.navigateTo({
  125 + url: "/pages/binding/binding"
  126 + })
  127 + }, 1000)
  128 + }else {
  129 + let peopleinfo = this.peopleinfo;
  130 + peopleinfo = JSON.stringify(peopleinfo)
  131 +
  132 + uni.navigateTo({
  133 + // url: '/pages/gerenxinxi/gerenxinxi?name='+this.peopleinfo.name+'&avatar='+this.peopleinfo.avatar+'&companyname='+this.peopleinfo.company_name
  134 + url: '/pages/gerenxinxi/gerenxinxi?peopleinfo=' + peopleinfo
  135 +
  136 + });
  137 + }
  138 +
  139 + },
  140 + //我的数据
  141 + myshuju() {
  142 + let re_id = uni.getStorageSync("re_id");
  143 + let token = uni.getStorageSync("token")
  144 + if (token == '') {
  145 + uni.showToast({
  146 + title: '请登录后操作',
  147 + icon: 'none'
  148 + })
  149 +
  150 + setTimeout(function() {
  151 + uni.navigateTo({
  152 + url: "/pages/qidong/qidong"
  153 + })
  154 + }, 1000)
  155 +
  156 +
  157 + } else if (token !=''&&re_id == 0) {
  158 +
  159 + uni.showToast({
  160 + title: '请绑定客户',
  161 + icon: "none"
  162 + })
  163 +
  164 + setTimeout(function() {
  165 + uni.navigateTo({
  166 + url: "/pages/binding/binding"
  167 + })
  168 + }, 1000)
  169 + }else {
  170 + uni.navigateTo({
  171 + url: '/pages/myshuju/myshuju'
  172 + })
  173 + }
  174 +
  175 + },
  176 + //获取个人信息
  177 + getpeopleinfo() {
  178 + let re_id = uni.getStorageSync("re_id");
  179 + let token = uni.getStorageSync("token")
  180 + if (token == '') {
  181 + uni.showToast({
  182 + title: '请登录后操作',
  183 + icon: 'none'
  184 + })
  185 +
  186 + setTimeout(function() {
  187 + uni.navigateTo({
  188 + url: "/pages/qidong/qidong"
  189 + })
  190 + }, 1000)
  191 +
  192 +
  193 + } else if (token !=''&&re_id == 0) {
  194 +
  195 + uni.showToast({
  196 + title: '请绑定客户',
  197 + icon: "none"
  198 + })
  199 +
  200 + setTimeout(function() {
  201 + uni.navigateTo({
  202 + url: "/pages/binding/binding"
  203 + })
  204 + }, 1000)
  205 + }else {
  206 + app.post("api/person/getUserInfo", '', 'get')
  207 + .then(res => {
  208 + console.log(res);
  209 + this.peopleinfo = res
  210 + console.log('88888888', this.peopleinfo)
  211 +
  212 +
  213 + })
  214 + .catch(err => {});
  215 + }
  216 +
  217 + },
  218 + //消费记录
  219 + xiaofeijilu() {
  220 + let re_id = uni.getStorageSync("re_id");
  221 + let token = uni.getStorageSync("token")
  222 + if (token == '') {
  223 + uni.showToast({
  224 + title: '请登录后操作',
  225 + icon: 'none'
  226 + })
  227 +
  228 + setTimeout(function() {
  229 + uni.navigateTo({
  230 + url: "/pages/qidong/qidong"
  231 + })
  232 + }, 1000)
  233 +
  234 +
  235 + } else if (token !=''&&re_id == 0) {
  236 +
  237 + uni.showToast({
  238 + title: '请绑定客户',
  239 + icon: "none"
  240 + })
  241 +
  242 + setTimeout(function() {
  243 + uni.navigateTo({
  244 + url: "/pages/binding/binding"
  245 + })
  246 + }, 1000)
  247 + }else {
  248 + uni.navigateTo({
  249 + url: '/pages/xiaofeijilu/xiaofeijilu',
  250 +
  251 + });
  252 + }
  253 +
  254 + },
  255 + //开具发票
  256 + kaifapiao() {
  257 + let token = uni.getStorageSync("token");
  258 + if (token == '') {
  259 + uni.showToast({
  260 + title: '请登录后操作',
  261 + icon: 'none'
  262 + })
  263 +
  264 + setTimeout(function() {
  265 + uni.navigateTo({
  266 + url: '/pages/qidong/qidong'
  267 + })
  268 + }, 1000)
  269 + } else {
  270 + uni.navigateTo({
  271 + url: '/pages/kaijufapiao/kaijufapiao',
  272 +
  273 + });
  274 + }
  275 +
  276 + },
  277 + //关于我们
  278 + aboutus() {
  279 + uni.navigateTo({
  280 + url: '/pages/aboutus/aboutus',
  281 +
  282 + });
  283 + }
  284 + },
  285 + onShow() {
  286 +
  287 + let token = uni.getStorageSync("token");
  288 + this.token = token
  289 + if (token == '') {
  290 + this.touxiang = "../../static/img/morentou1.png";
  291 + this.tuijianren = '暂无';
  292 + this.company = "暂无";
  293 + } else {
  294 + this.getpeopleinfo()
  295 + }
  296 +
  297 + },
  298 + mounted() {
  299 +
  300 + }
  301 + }
  302 +</script>
  303 +
  304 +<style>
  305 + .personpage {
  306 + background: #F5F5F5;
  307 + }
  308 +
  309 + .personimg {
  310 + width: 686rpx;
  311 + height: 446rpx;
  312 + font-size: 0;
  313 + margin: 32rpx auto 0;
  314 + position: relative;
  315 +
  316 + }
  317 +
  318 + .personimg image {
  319 + width: 100%;
  320 + height: 100%;
  321 + }
  322 +
  323 + .infobox {
  324 + width: 686rpx;
  325 + position: absolute;
  326 + top: 38rpx;
  327 +
  328 + }
  329 +
  330 + .infoimg {
  331 + width: 125rpx;
  332 + height: 125rpx;
  333 +
  334 + font-size: 0;
  335 + border-radius: 50%;
  336 + margin: 0 auto;
  337 + }
  338 +
  339 + .infoimg image {
  340 + width: 100%;
  341 + height: 100%;
  342 + border-radius: 50%;
  343 + }
  344 +
  345 + .infoname {
  346 + color: #FFFFFF;
  347 + font-size: 36rpx;
  348 + text-align: center;
  349 + margin-top: 20rpx;
  350 + }
  351 +
  352 + .infohead {
  353 + display: flex;
  354 + padding: 0 30rpx;
  355 + box-sizing: border-box;
  356 + align-items: center;
  357 + justify-content: space-between;
  358 + margin-top: 22rpx;
  359 + }
  360 +
  361 + .infotui {
  362 + width: 300rpx;
  363 + text-align: center;
  364 + color: #F29600;
  365 + font-size: 24rpx;
  366 + }
  367 +
  368 + .infoji {
  369 + width: 300rpx;
  370 + color: #fff;
  371 + font-size: 28rpx;
  372 + margin-top: 20rpx;
  373 + text-align: center;
  374 +
  375 + overflow: hidden;
  376 + text-overflow: ellipsis;
  377 + white-space: nowrap;
  378 + }
  379 +
  380 + .infobottom {
  381 + display: flex;
  382 + align-items: center;
  383 + justify-content: space-between;
  384 + padding: 0 44rpx;
  385 + box-sizing: border-box;
  386 + margin-top: 37rpx;
  387 + }
  388 +
  389 + .bottomleft {
  390 + color: #FFFFFF;
  391 + font-size: 22rpx;
  392 + }
  393 +
  394 + .wanshan {
  395 + width: 162rpx;
  396 + height: 44rpx;
  397 + border: 2rpx solid rgba(242, 150, 0, 1);
  398 + opacity: 1;
  399 + color: #F29600;
  400 + font-size: 24rpx;
  401 + text-align: center;
  402 + line-height: 44rpx;
  403 + border-radius: 20rpx;
  404 + }
  405 +
  406 + .infoboxlist {
  407 + background: #fff;
  408 + margin-top: 20rpx;
  409 + width: 686rpx;
  410 + margin: 20rpx auto 0;
  411 +
  412 + }
  413 +
  414 + .listitem {
  415 + display: flex;
  416 + align-items: center;
  417 + justify-content: space-between;
  418 + padding: 40rpx;
  419 + box-sizing: border-box;
  420 + border-bottom: 1rpx solid #f5f5f5;
  421 +
  422 + }
  423 +
  424 + .leftimg {
  425 + width: 44rpx;
  426 + height: 44rpx;
  427 + font-size: 0;
  428 + }
  429 +
  430 + .leftimg image {
  431 + width: 100%;
  432 + height: 100%;
  433 + }
  434 +
  435 + .itemright {
  436 + width: 48rpx;
  437 + height: 48rpx;
  438 + font-size: 0;
  439 + }
  440 +
  441 + .itemright image {
  442 + width: 100%;
  443 + height: 100%;
  444 +
  445 + }
  446 +
  447 + .itemleft {
  448 + display: flex;
  449 + align-items: center;
  450 + }
  451 +
  452 + .leftname {
  453 + color: #0A0808;
  454 + font-size: 30rpx;
  455 + margin-left: 24rpx;
  456 + }
  457 +
  458 + .infoheadleft {
  459 + flex: 1;
  460 + width: 375rpx;
  461 + }
  462 +</style>
  1 +<template>
  2 + <div class="box">
  3 +
  4 + <div class="topimg">
  5 + <image src="../../static/img/logo.png"></image>
  6 + </div>
  7 + <div class="bottom">
  8 + <div class="bottom_btn">
  9 + <button class='bottom_anniu' open-type="getUserInfo" withCredentials="true" lang="zh_CN" @getuserinfo="wxGetUserInfo"
  10 + hover-class="none">
  11 + 授权登录
  12 + </button>
  13 + </div>
  14 + <div class="quxiao" @click="cancel">取消</div>
  15 +
  16 +
  17 + </div>
  18 +
  19 + </div>
  20 +</template>
  21 +
  22 +<script>
  23 + import app from "../../App.vue"
  24 + export default {
  25 + data() {
  26 + return {
  27 + code: "",
  28 + nickname: "",
  29 + avatar: "",
  30 +
  31 + }
  32 + },
  33 + methods: {
  34 + // 暂不授权
  35 + no_grant() {
  36 + uni.navigateBack();
  37 + },
  38 + // 获取到code
  39 + get_code() {
  40 + let t = this;
  41 + uni.login({
  42 + provider: "weixin",
  43 + success(r) {
  44 + console.log(r.code)
  45 + t.code = r.code
  46 + }
  47 + })
  48 + },
  49 + // 用code换去sessionkey和openid
  50 +
  51 + //第一授权获取用户信息===》按钮触发
  52 + wxGetUserInfo() {
  53 + let t = this;
  54 + uni.getUserInfo({
  55 + provider: 'weixin',
  56 + success: function(infoRes) {
  57 + console.log(infoRes)
  58 + let param = {
  59 + code: t.code,
  60 + nickname: infoRes.userInfo.nickName,
  61 + avatar: infoRes.userInfo.avatarUrl
  62 + }
  63 + // t.nickname = infoRes.nickname;
  64 + // t.avatar=infoRes.userInfo.avatarUrl
  65 + app.post("api/user/login", param, 'post')
  66 + .then(res => {
  67 + console.log(res,"返回token");
  68 + uni.setStorageSync('token', res.userInfo.token);
  69 + uni.setStorageSync("openid",res.openid);
  70 + uni.setStorageSync("re_id",res.userInfo.re_id);
  71 + if(res.userInfo.re_id == 0){
  72 + uni.navigateTo({
  73 + url: '/pages/binding/binding'
  74 + });
  75 + }else{
  76 + uni.switchTab({
  77 + url: '/pages/taocangoumai/taocangoumai'
  78 + });
  79 + }
  80 + })
  81 + .catch(err => {});
  82 + // t avatar = infoRes.userInfo.avatarUrl;
  83 + },
  84 + fail(res) {}
  85 + });
  86 + },
  87 + // 取消登录
  88 + cancel() {
  89 + uni.switchTab({
  90 + url: '/pages/taocangoumai/taocangoumai'
  91 + })
  92 +
  93 + }
  94 +
  95 + },
  96 +
  97 + onLoad() {
  98 + this.get_code()
  99 + }
  100 + }
  101 +</script>
  102 +
  103 +<style>
  104 + page {
  105 + background: #fff;
  106 + }
  107 +
  108 + .box {
  109 + background: #fff;
  110 + }
  111 +
  112 + .topimg {
  113 + width: 180rpx;
  114 + height: 200rpx;
  115 + font-size: 0;
  116 + margin: 250rpx auto 0;
  117 + }
  118 +
  119 + .topimg image {
  120 + width: 100%;
  121 + height: 100%;
  122 + }
  123 +
  124 + .bottom_btn {
  125 + width: 580rpx;
  126 + height: 100rpx;
  127 + background: rgba(243, 152, 0, 1);
  128 + box-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);
  129 + opacity: 1;
  130 + border-radius: 10rpx;
  131 + color: #fff;
  132 + font-size: 32rpx;
  133 + text-align: center;
  134 + line-height: 100rpx;
  135 + margin: 454rpx auto 0;
  136 + }
  137 +
  138 + button {
  139 + width: 580rpx;
  140 + height: 100rpx;
  141 + text-align: center;
  142 + line-height: 100rpx;
  143 + border: none;
  144 + outline: none;
  145 + background: transparent;
  146 + color: #fff;
  147 + font-size: 32rpx;
  148 + }
  149 +
  150 + button::after {
  151 + border: none;
  152 + background: transparent;
  153 + }
  154 +
  155 + .quxiao {
  156 + width: 580rpx;
  157 + height: 100rpx;
  158 + border: 2rpx solid rgba(243, 152, 0, 1);
  159 + opacity: 1;
  160 + border-radius: 10rpx;
  161 + color: #F39800;
  162 + font-size: 32rpx;
  163 + text-align: center;
  164 + line-height: 100rpx;
  165 + margin: 40rpx auto 0;
  166 + }
  167 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="jilulist">
  4 + <view class="jiluitem" v-for="(item,index) in selectarr" :key="index">
  5 + <view class="jileft" @click="select(item.id,index)">
  6 + <view class="selimg" v-if="item.select==false">
  7 + <image src="/static/img/selsect.png"></image>
  8 + </view>
  9 + <view class="selimg" v-else>
  10 + <image src="/static/img/xuan.png"></image>
  11 + </view>
  12 + <view class="dhao">
  13 + <view class="seldanhao">订单号:{{item.order_sn}}</view>
  14 + <view class="selcishu">{{item.recharge}}</view>
  15 + </view>
  16 +
  17 + </view>
  18 + <view class="jiright">
  19 + <view class="jidate">
  20 + {{item.createtime}}
  21 + </view>
  22 + <view class="jimoney">¥{{item.pay_money}}</view>
  23 + </view>
  24 + </view>
  25 +
  26 +
  27 + </view>
  28 +
  29 + <view class="bottom">
  30 + <view class="bottomleft">
  31 + <view class="selimg" @click="selectall">
  32 + <image src="/static/img/selsect.png" v-if="select_all == false"></image>
  33 + <image src="/static/img/xuan.png" v-else></image>
  34 + </view>
  35 + <view class="allsel">全选</view>
  36 + <view class="chongjilu">
  37 + <view class="jilu">
  38 + {{totalnum}}个充值记录
  39 + </view>
  40 + <text class="total">共</text>
  41 + <text class="totalmonety">{{totalmoney}}元</text>
  42 + </view>
  43 +
  44 + </view>
  45 + <view class="nextstep" @click="next">下一步</view>
  46 + </view>
  47 + </view>
  48 +</template>
  49 +
  50 +<script>
  51 + import app from "../../App.vue"
  52 + export default {
  53 + data() {
  54 + return {
  55 + selectarr: [],
  56 + // 充值记录
  57 + totalnum: 0,
  58 + //钱数
  59 + totalmoney: 0,
  60 + select_all: false,
  61 + // 选中的id
  62 + select_id: []
  63 +
  64 + }
  65 + },
  66 + methods: {
  67 + // 单选选择数板
  68 + select(id, index) {
  69 + console.log(id)
  70 + let t = this;
  71 + let newselect_id = t.select_id;
  72 + let newselectarr = t.selectarr;
  73 + let newtotalmoney = t.totalmoney;
  74 + let newtotalnum = t.totalnum;
  75 + newselectarr[index].select = !newselectarr[index].select;
  76 + if (newselectarr[index].select) {
  77 + newtotalmoney = Number(newtotalmoney) + Number(newselectarr[index].pay_money);
  78 + newtotalnum = Number(newtotalnum) + 1
  79 + newselect_id.push(id)
  80 + } else {
  81 + newtotalmoney = Number(newtotalmoney) - Number(newselectarr[index].pay_money);
  82 + newtotalnum = Number(newtotalnum) - 1
  83 + t.select_all = false;
  84 + newselect_id.splice(index, 1)
  85 + }
  86 + t.selectarr = newselectarr;
  87 + t.totalmoney = newtotalmoney.toFixed("2");
  88 + t.totalnum = newtotalnum;
  89 + t.select_id = newselect_id;
  90 + if(t.select_id.length==t.selectarr.length){
  91 + t.select_all=true
  92 + }
  93 + console.log('99998888', t.select_id);
  94 + uni.setStorageSync("select_id",t.select_id);
  95 + uni.setStorageSync("totalmoney",t.totalmoney);
  96 + uni.setStorageSync("totalnum",t.totalnum)
  97 +
  98 + },
  99 +
  100 +
  101 + // select(id, index) {
  102 + // console.log(index)
  103 + // let newselectarr = this.selectarr;
  104 + // let newtotalmoney = this.totalmoney;
  105 + // let newtotaljilu = this.totaljilu;
  106 + // newselectarr[index].select = !newselectarr[index].select;
  107 + // if (newselectarr[index].select == true) {
  108 + // newtotalmoney = Number(newtotalmoney) + Number(newselectarr[index].pay_money)
  109 + // newtotaljilu = Number(newtotaljilu)+1
  110 + // } else {
  111 + // newtotalmoney = Number(newtotalmoney) - Number(newselectarr[index].pay_money)
  112 + // newtotaljilu = Number(newtotaljilu)-1
  113 + // }
  114 + // console.log(newtotalmoney)
  115 + // this.totalmoney = newtotalmoney.toFixed("2");
  116 + // this.selectarr = newselectarr;
  117 + // this.totaljilu = newtotaljilu
  118 + // },
  119 +
  120 + //选择全部板数
  121 + // selectall() {
  122 + // let newselectarr = this.selectarr;
  123 + // let newtotalmoney = this.totalmoney;
  124 + // for (var obj of newselectarr) {
  125 + // obj.select = true;
  126 + // newtotalmoney = Number(newtotalmoney) + Number(obj.pay_money)
  127 + // }
  128 + //
  129 + // this.totalmoney = newtotalmoney.toFixed("2");
  130 + // this.selectarr = newselectarr;
  131 + //
  132 + // },
  133 + selectall() {
  134 + let t = this;
  135 + let newselectarr = t.selectarr;
  136 + let newtotalmoney = t.totalmoney;
  137 + let newtotalnum = t.totalnum;
  138 + t.select_all = !t.select_all;
  139 + let newselect_id = t.select_id
  140 +
  141 + for (var i = 0; i < newselectarr.length; i++) {
  142 + if (t.select_all) {
  143 + newselectarr[i].select = true;
  144 + newselect_id.push(newselectarr[i].id)
  145 + newtotalmoney = Number(newtotalmoney) + Number(newselectarr[i].pay_money);
  146 + newtotalnum = newselectarr.length
  147 + console.log(newselectarr.length, "数组的长度")
  148 + } else {
  149 + newselectarr[i].select = false;
  150 + newtotalmoney = 0;
  151 + newtotalnum = 0;
  152 + newselect_id = []
  153 + }
  154 + };
  155 + t.selectarr = newselectarr;
  156 + t.totalmoney = newtotalmoney.toFixed("2");
  157 + t.totalnum = newtotalnum;
  158 + t.select_id = newselect_id;
  159 + uni.setStorageSync("select_id",t.select_id)
  160 + uni.setStorageSync("totalmoney",t.totalmoney)
  161 + uni.setStorageSync("totalnum",t.totalnum)
  162 + console.log('808080', t.select_id);
  163 + },
  164 + // 选择消费记录
  165 + choose_jilu() {
  166 + let t = this;
  167 + let url = "api/person/choosePayList";
  168 + let param = {};
  169 + app.post(url, param, 'post').then(r => {
  170 + console.log(r)
  171 + for (var i = 0; i < r.length; i++) {
  172 + console.log(r[i])
  173 + r[i]['select'] = false
  174 + }
  175 + t.selectarr = r;
  176 +
  177 +
  178 +
  179 + let newselect_id=uni.getStorageSync("select_id");
  180 + console.log('7777',newselect_id)
  181 + let newselectarr=t.selectarr;
  182 + console.log('6666',newselectarr)
  183 + for(var i=0;i<newselectarr.length;i++){
  184 + for(var j=0;j<newselect_id.length;j++){
  185 + if(newselectarr[i].id==newselect_id[j]){
  186 + console.log('888888')
  187 + newselectarr[i].select=true
  188 + }
  189 + }
  190 + }
  191 +
  192 + t.selectarr=newselectarr;
  193 +
  194 + if(uni.getStorageSync("totalmoney")!=''){
  195 + t.totalmoney=uni.getStorageSync("totalmoney");
  196 + }
  197 + if(uni.getStorageSync("totalnum")!=''){
  198 + t.totalnum=uni.getStorageSync("totalnum");
  199 + }
  200 +
  201 + console.log('99999900000',this.selectarr);
  202 + }).catch(err => {
  203 + console.log(err)
  204 + })
  205 + },
  206 + //下一步
  207 + next() {
  208 +
  209 +
  210 + let t = this;
  211 + let id = t.select_id;
  212 + let pages = getCurrentPages();
  213 + console.log('5555',pages)
  214 +
  215 + // let currPage = pages[pages.length - 1]; //当前页面
  216 + let prevPage = pages[pages.length - 2]; //上一个页面
  217 +
  218 + // console.log(e.currentTarget.dataset.id)
  219 + //直接调用上一个页面的setData()方法,把数据存到上一个页面中去
  220 + prevPage.setData({
  221 + selectId: id,
  222 + totlemoney:t.totalmoney
  223 + });
  224 +
  225 + // uni.navigateTo({
  226 + // url: '/pages/kafapiao/kafapiao?money=' + this.totalmoney + '&select_id=' + this.select_id
  227 + // })
  228 +
  229 + // uni.navigateTo({
  230 + // url: '/pages/kafapiao/kafapiao'
  231 + // })
  232 + uni.navigateBack({
  233 + checked:true
  234 + })
  235 + }
  236 + },
  237 + onLoad(options) {
  238 + console.log(options);
  239 +
  240 + },
  241 + onShow() {
  242 + // 选择消费记录
  243 + this.choose_jilu();
  244 +
  245 + },
  246 + onUnload: function() {
  247 + let t = this;
  248 + let id = t.select_id;
  249 + let pages = getCurrentPages();
  250 +
  251 + // let currPage = pages[pages.length - 1]; //当前页面
  252 + let prevPage = pages[pages.length - 2]; //上一个页面
  253 +
  254 + // console.log(e.currentTarget.dataset.id)
  255 + //直接调用上一个页面的setData()方法,把数据存到上一个页面中去
  256 + prevPage.setData({
  257 + selectId: id,
  258 + totlemoney:t.totalmoney
  259 + });
  260 +
  261 +
  262 + },
  263 + }
  264 +</script>
  265 +
  266 +<style>
  267 + .jiluitem {
  268 + display: flex;
  269 + align-items: center;
  270 + justify-content: space-between;
  271 + padding: 34rpx 0;
  272 + box-sizing: border-box;
  273 + border-bottom: 1rpx solid #f5f5f5
  274 + }
  275 +
  276 + .jilulist {
  277 + background: #fff;
  278 + padding: 0 32rpx;
  279 + box-sizing: border-box;
  280 + /* padding-bottom: 130rpx; */
  281 + margin-bottom: 130rpx;
  282 + }
  283 +
  284 + .jileft {
  285 + display: flex;
  286 + align-items: center;
  287 + }
  288 +
  289 + .selimg {
  290 + width: 32rpx;
  291 + height: 32rpx;
  292 + font-size: 0;
  293 + }
  294 +
  295 + .seldanhao {
  296 + color: #0A0808;
  297 + font-size: 30rpx;
  298 + }
  299 +
  300 + .selcishu {
  301 + color: #7F8389;
  302 + font-size: 26rpx;
  303 + margin-top: 22rpx
  304 + }
  305 +
  306 + .jidate {
  307 + color: #7F8389;
  308 + font-size: 26rpx;
  309 + }
  310 +
  311 + .jimoney {
  312 + color: #F29600;
  313 + font-size: 28rpx;
  314 + margin-top: 22rpx;
  315 + }
  316 +
  317 + .dhao {
  318 + margin-left: 36rpx
  319 + }
  320 +
  321 + .bottom {
  322 + width: 750rpx;
  323 + display: flex;
  324 + align-items: center;
  325 + justify-content: space-between;
  326 + padding: 18rpx 32rpx;
  327 + box-sizing: border-box;
  328 + background: #fff;
  329 + position: fixed;
  330 + bottom: 0;
  331 + left: 0;
  332 +
  333 + }
  334 +
  335 + .bottomleft {
  336 + display: flex;
  337 + align-items: center;
  338 + }
  339 +
  340 + .allsel {
  341 + color: #0A0808;
  342 + font-size: 28rpx;
  343 + margin-left: 20rpx;
  344 + }
  345 +
  346 + .jilu {
  347 + color: #7F8389;
  348 + font-size: 26rpx;
  349 + }
  350 +
  351 + .total {
  352 + color: #7F8389;
  353 + font-size: 26rpx;
  354 + }
  355 +
  356 + .totalmonety {
  357 + color: #F39800;
  358 + font-size: 30rpx;
  359 + }
  360 +
  361 + .chongjilu {
  362 + margin-left: 48rpx;
  363 + }
  364 +
  365 + .nextstep {
  366 + width: 200rpx;
  367 + height: 100rpx;
  368 + background: rgba(243, 152, 0, 1);
  369 + box-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);
  370 + opacity: 1;
  371 + color: #fff;
  372 + font-size: 32rpx;
  373 + color: #fff;
  374 + text-align: center;
  375 + line-height: 100rpx;
  376 + border-radius: 10rpx;
  377 + }
  378 +</style>
  1 +<template>
  2 + <view class="box">
  3 + <view class="infotou">
  4 + <view class="shubaninfohead">
  5 + <view class="shubaninfoleft">设备编号:{{equipment_log.number}}</view>
  6 + <view class="shubaninforight">
  7 + <image src="/static/img/fenxiang.png"></image>
  8 + <button open-type="share">享</button>
  9 + </view>
  10 + </view>
  11 +
  12 + <view class="shucompany">
  13 + <view class="shuimg">
  14 + <image src="/static/img/company.png"></image>
  15 + </view>
  16 + <view class="companyname">所属公司:{{equipment_log.name}}</view>
  17 + </view>
  18 + <view class="shucompany weizhi">
  19 + <view class="shuimg">
  20 + <image src="/static/img/weizhi.png"></image>
  21 + </view>
  22 + <view class="companyname">所在位置:{{equipment_log.address}}</view>
  23 + </view>
  24 + <view class="shucompany weizhi">
  25 + <view class="shuimg">
  26 + <image src="/static/img/time.png"></image>
  27 + </view>
  28 + <view class="companyname">数板时间:{{equipment_log.time}}</view>
  29 + </view>
  30 + <view class="shucompany weizhi">
  31 + <view class="shuimg">
  32 + <image src="/static/img/yichang.png"></image>
  33 + </view>
  34 + <view class="companyname" v-if="equipment_log.status == 'normal'">异常状态:正常</view>
  35 + <view class="companyname" v-if="equipment_log.status == 'hidden'">异常状态:不正常</view>
  36 + </view>
  37 +
  38 + </view>
  39 + <view class="yiqi">
  40 + <view class="yiqihead">
  41 + <view class="yiqiheadleft">仪器读数</view>
  42 + <view class="yiqiheadright">{{equipment_log.papers}}</view>
  43 + </view>
  44 + <view class="yiqihead">
  45 + <view class="yiqiheadleft">复核数量</view>
  46 + <view class="yiqiheadright">{{equipment_log.fuhe}}</view>
  47 + </view>
  48 + </view>
  49 + <view class="yewu">
  50 +
  51 + <view class="yebiaoshi">
  52 + <view class="biaoshileft">业务标识</view>
  53 + <view class="enterword">
  54 + <input type="text" value="" placeholder="请输入业务标识" placeholder-class="word" v-model="biaoshi" />
  55 + </view>
  56 + </view>
  57 + <view class="yebiaoshi">
  58 + <view class="biaoshileft">业务描述</view>
  59 + <view class="enterword">
  60 + <input type="text" value="" placeholder="请输入业务描述" placeholder-class="word" v-model="description" />
  61 + </view>
  62 + </view>
  63 + <view class="yebiaoshi">
  64 + <view class="biaoshileft">字段1</view>
  65 + <view class="enterword">
  66 + <input type="text" value="" placeholder="填写字段" placeholder-class="word" v-model="ziduan1" />
  67 + </view>
  68 + </view>
  69 + <view class="yebiaoshi">
  70 + <view class="biaoshileft">字段2</view>
  71 + <view class="enterword">
  72 + <input type="text" value="" placeholder="填写字段" placeholder-class="word" v-model="ziduan2" />
  73 + </view>
  74 + </view>
  75 + <view class="yebiaoshi">
  76 + <view class="biaoshileft">字段3</view>
  77 + <view class="enterword">
  78 + <input type="text" value="" placeholder="填写字段" placeholder-class="word" v-model="ziduan3" />
  79 + </view>
  80 + </view>
  81 + <view class="yebiaoshi">
  82 + <view class="biaoshileft">字段4</view>
  83 + <view class="enterword">
  84 + <input type="text" value="" placeholder="填写字段" placeholder-class="word" v-model="ziduan4" />
  85 + </view>
  86 + </view>
  87 + <view class="yebiaoshi">
  88 + <view class="biaoshileft">字段5</view>
  89 + <view class="enterword">
  90 + <input type="text" value="" placeholder="填写字段" placeholder-class="word" v-model="ziduan5" />
  91 + </view>
  92 + </view>
  93 + </view>
  94 + <!-- 相关照片 -->
  95 + <view class="photo" v-if="fenxiangor">
  96 + <view class="aboutphoto">相关照片</view>
  97 +
  98 + <view class="imgbox">
  99 +
  100 + <view v-for="(item,index) in imglist" :key="index" class="imgshang">
  101 + <view class="upload" >
  102 + <image :src="item"></image>
  103 + <view class="chahao" @click="del(index)">
  104 + <image src="../../static/img/chahao3.png"></image>
  105 + </view>
  106 + </view>
  107 + </view>
  108 + <view class="upload" @click="shoseimg">
  109 + <image src="/static/img/upload.png"></image>
  110 + </view>
  111 +
  112 + <view class='upload' @click="camera">
  113 + <image src="/static/img/camera.png"></image>
  114 + </view>
  115 +
  116 + </view>
  117 + </view>
  118 +
  119 + <view class="subshuju" @click="set_number" v-if="fenxiangor">提交数据</view>
  120 +
  121 +
  122 +
  123 + </view>
  124 +</template>
  125 +
  126 +<script>
  127 + import app from "../../App.vue"
  128 + export default {
  129 + data() {
  130 + return {
  131 + // 详情数据
  132 + equipment_log: "",
  133 + // 输入框数据
  134 + biaoshi: "",
  135 + description: "",
  136 + ziduan1: "",
  137 + ziduan2: "",
  138 + ziduan3: "",
  139 + ziduan4: "",
  140 + ziduan5: "",
  141 + image: [],
  142 + chuanimg: '/static/img/upload.png',
  143 + imglist:[],
  144 + number:'',
  145 + id:'',
  146 + is_share:0,
  147 + fenxiangor:true
  148 + }
  149 + },
  150 + methods: {
  151 + //选择照片
  152 + shoseimg() {
  153 +
  154 + uni.chooseImage({
  155 + count: 1,
  156 + sizeType: ['original', 'compressed'],
  157 + sourceType: ['album'], //从相册选择
  158 + // sourceType: ['camera'],//拍摄照片
  159 + // sourceType: '',
  160 + success: (chooseImageRes) => {
  161 + console.log(909090808080)
  162 + const tempFilePaths = chooseImageRes.tempFilePaths;
  163 +
  164 + let images = tempFilePaths[0]
  165 + console.log(images)
  166 + let head = {
  167 + 'token': uni.getStorageSync('token'),
  168 +
  169 + }
  170 +
  171 + uni.uploadFile({
  172 + url: 'https://icr.gangjuren.com/api/person/upload', //仅为示例,非真实的接口地址
  173 + filePath: tempFilePaths[0],
  174 + name: 'images',
  175 + token: uni.getStorageSync('token'),
  176 + formData: {},
  177 + header: head,
  178 + // images:images
  179 + success: (uploadFileRes) => {
  180 + console.log(uploadFileRes);
  181 + let data = JSON.parse(uploadFileRes.data)
  182 + console.log(data)
  183 + this.imglist.push(data.data.src)
  184 + }
  185 + });
  186 + },
  187 + fail: function(err) {
  188 + console.log('76543221')
  189 + console.log(err, "失败的回调")
  190 + }
  191 + });
  192 +
  193 +
  194 +
  195 + },
  196 + //拍摄照片上传
  197 +
  198 + camera() {
  199 + uni.chooseImage({
  200 + count:1,
  201 + sizeType: ['original', 'compressed'],
  202 + //sourceType: ['album'], //从相册选择
  203 + sourceType: ['camera'],//拍摄照片
  204 + // sourceType: '',
  205 + success: (chooseImageRes) => {
  206 + console.log(909090808080)
  207 + const tempFilePaths = chooseImageRes.tempFilePaths;
  208 +
  209 + let images = tempFilePaths[0]
  210 + console.log(images)
  211 + let head = {
  212 + 'token': uni.getStorageSync('token'),
  213 +
  214 + }
  215 +
  216 + uni.uploadFile({
  217 + url: 'https://icr.gangjuren.com/api/person/upload', //仅为示例,非真实的接口地址
  218 + filePath: tempFilePaths[0],
  219 + name: 'images',
  220 + token: uni.getStorageSync('token'),
  221 + formData: {},
  222 + header: head,
  223 + // images:images
  224 + success: (uploadFileRes) => {
  225 + console.log(uploadFileRes);
  226 + let data = JSON.parse(uploadFileRes.data)
  227 + console.log(data)
  228 + this.imglist.push(data.data.src)
  229 + }
  230 + });
  231 + },
  232 + fail: function(err) {
  233 + console.log('76543221')
  234 + console.log(err, "失败的回调")
  235 + }
  236 + });
  237 +
  238 +
  239 +
  240 + },
  241 + //删除图片
  242 + del(index){
  243 + let newimglist=this.imglist;
  244 + for(var i=0;i<newimglist.length;i++){
  245 + if(i==index){
  246 + newimglist.splice(i,1)
  247 + }
  248 +
  249 + }
  250 +
  251 + this.imglist=newimglist
  252 + },
  253 +
  254 + // 获取数管剩余时间次数
  255 +
  256 + // 获取数板信息详情
  257 + get_shubandetail() {
  258 + console.log('666666',this.number)
  259 + let t = this;
  260 + let url = "api/equipment/getEquipmentDetail";
  261 + let param = {
  262 + number: this.number,
  263 + equipment_log_id: t.id,
  264 + is_share:t.is_share
  265 +
  266 + };
  267 + app.post(url, param, 'post').then(r => {
  268 + console.log(r, "获取数板详情")
  269 + t.equipment_log = r.equipment_log;
  270 + }).catch(err => {
  271 + console.log(err)
  272 + })
  273 + },
  274 + // 提交数据
  275 + set_number() {
  276 + console.log(123)
  277 + let t = this;
  278 +
  279 + if (this.imglist.length == 0) {
  280 + uni.showToast({
  281 + title: '请上传相关图片',
  282 + icon: 'none'
  283 + })
  284 + return false
  285 + }
  286 + let url = "api/equipment/setEquipmentLog";
  287 + let param = {
  288 + number: t.equipment_log.number,
  289 + equipment_log_id: t.equipment_log.id,
  290 + fuhe: t.equipment_log.fuhe,
  291 + biaoshi: t.biaoshi,
  292 + description: t.description,
  293 + ziduan1: t.ziduan1,
  294 + ziduan2: t.ziduan2,
  295 + ziduan3: t.ziduan3,
  296 + ziduan4: t.ziduan4,
  297 + ziduan5: t.ziduan5,
  298 + images: t.imglist
  299 + }
  300 + app.post(url, param, 'post').then(r => {
  301 + console.log(r)
  302 + }).catch(err => {
  303 + console.log(err)
  304 + })
  305 + }
  306 +
  307 + },
  308 + onLoad(options) {
  309 + console.log('777777',options)
  310 + this.number=options.number;
  311 + this.id=options.id;
  312 + if(options.type==1){
  313 + this.is_share=1;
  314 + this.fenxiangor=false
  315 + }else{
  316 + this.is_share=0;
  317 + this.fenxiangor=true
  318 + }
  319 + },
  320 + onShow() {
  321 + this.get_shubandetail()
  322 + },
  323 + onShareAppMessage: function(res) {
  324 + if (res.from === 'button') {
  325 + // 来自页面内转发按钮
  326 + }
  327 + return {
  328 + title: "钢聚人小程序",
  329 + path: 'pages/shubandetail/shubandetail?share=' + 'true'+'&type='+1+'&number='+this.number+'&id='+this.id
  330 + }
  331 + },
  332 + }
  333 +</script>
  334 +
  335 +<style>
  336 + .imgbox{
  337 + display:flex;
  338 + align-items: center;
  339 + }
  340 + .imgshang{
  341 + display:flex;
  342 + align-items: center;
  343 + }
  344 + .infotou {
  345 + background: #fff;
  346 + padding: 34rpx 32rpx;
  347 + box-sizing: border-box;
  348 + }
  349 +
  350 + .shubaninfohead {
  351 + display: flex;
  352 + align-items: center;
  353 + justify-content: space-between;
  354 +
  355 +
  356 + }
  357 +
  358 + image {
  359 + width: 100%;
  360 + height: 100%;
  361 + }
  362 +
  363 + .shubaninforight {
  364 + width: 31rpx;
  365 + height: 31rpx;
  366 + font-size: 0;
  367 + position: relative;
  368 + }
  369 +
  370 + .shubaninforight button {
  371 + width: 100%;
  372 + height: 100%;
  373 + position: absolute;
  374 + top: 0;
  375 + left: 0;
  376 + opacity: 0;
  377 + }
  378 +
  379 + .shubaninfoleft {
  380 + color: #0A0808;
  381 + font-size: 36rpx;
  382 + font-weight: bold;
  383 + }
  384 +
  385 + .shucompany {
  386 + display: flex;
  387 + align-items: center;
  388 + margin-top: 30rpx;
  389 + }
  390 +
  391 + .shuimg {
  392 + width: 30rpx;
  393 + height: 30rpx;
  394 + font-size: 0;
  395 + }
  396 +
  397 + .companyname {
  398 + color: #7F8389;
  399 + font-size: 28rpx;
  400 + margin-left: 30rpx;
  401 + }
  402 +
  403 + .weizhi {
  404 + margin-top: 18rpx;
  405 + }
  406 +
  407 + .yiqihead {
  408 + display: flex;
  409 + align-items: center;
  410 + justify-content: space-between;
  411 + }
  412 +
  413 + .yiqi {
  414 + background: #fff;
  415 + box-sizing: border-box;
  416 + }
  417 +
  418 + .yiqihead {
  419 + padding: 42rpx 32rpx;
  420 + box-sizing: border-box;
  421 + border-bottom: 1rpx solid #f5f5f5;
  422 + margin-top: 20rpx;
  423 + }
  424 +
  425 + .yebiaoshi {
  426 + display: flex;
  427 + justify-content: space-between;
  428 + align-items: center;
  429 + padding: 34rpx 32rpx;
  430 + box-sizing: border-box;
  431 + }
  432 +
  433 + .yiqiheadleft {
  434 + color: #0A0808;
  435 + font-size: 30rpx;
  436 + font-weight: bold;
  437 + }
  438 +
  439 + .yiqiheadright {
  440 + color: #7F8389;
  441 + font-size: 28rpx;
  442 + }
  443 +
  444 + .yewu {
  445 + background: #FFFFFF;
  446 + }
  447 +
  448 + .yebiaoshi {
  449 + color: #0A0808;
  450 + font-size: 30rpx;
  451 + }
  452 +
  453 + .enterword {
  454 + color: #7F8389;
  455 + font-size: 28rpx;
  456 + width: 300rpx;
  457 +
  458 + }
  459 +
  460 + .enterword input {
  461 + text-align: right;
  462 + }
  463 +
  464 + .word {
  465 + color: #7F8389;
  466 + font-size: 28rpx;
  467 + }
  468 +
  469 + .photo {
  470 + padding: 32rpx;
  471 + box-sizing: border-box;
  472 + background: #fff;
  473 + margin-top: 20rpx;
  474 + }
  475 +
  476 + .aboutphoto {
  477 + color: #0A0808;
  478 + font-size: 30rpx;
  479 + }
  480 +
  481 + .upload {
  482 + width: 160rpx;
  483 + height: 160rpx;
  484 + font-size: 0;
  485 + margin-top: 30rpx;
  486 + margin-left:20rpx;
  487 + position: relative;
  488 + }
  489 + .chahao{
  490 + width:40rpx;
  491 + height:40rpx;
  492 + position:absolute;
  493 + top:-10rpx;
  494 + right:-10rpx;
  495 + }
  496 +
  497 + .subshuju {
  498 + width: 686rpx;
  499 + height: 100rpx;
  500 + background: rgba(243, 152, 0, 1);
  501 + box-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);
  502 + opacity: 1;
  503 + border-radius: 10rpx;
  504 + color: #fff;
  505 + font-size: 32rpx;
  506 + text-align: center;
  507 + line-height: 100rpx;
  508 + margin: 42rpx auto;
  509 + }
  510 +</style>