管理员界面对接中
This commit is contained in:
		
							parent
							
								
									8bfa454681
								
							
						
					
					
						commit
						3f9d75d597
					
				| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					import request from "@/utils/request";
 | 
				
			||||||
 | 
					// 首页数据
 | 
				
			||||||
 | 
					export const GetHomeDataApi = (data) =>
 | 
				
			||||||
 | 
					  request.get("/api/AdminApp/GetHomeData", data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 区域列表
 | 
				
			||||||
 | 
					export const GetRegionDataListApi = (data) =>
 | 
				
			||||||
 | 
					  request.get("/api/AdminApp/GetRegionDataList", data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 用户数据
 | 
				
			||||||
 | 
					export const GetUserDataApi = (data) =>
 | 
				
			||||||
 | 
					  request.get("/api/AdminApp/GetUserData", data);
 | 
				
			||||||
| 
						 | 
					@ -2,55 +2,31 @@
 | 
				
			||||||
  <view class="content">
 | 
					  <view class="content">
 | 
				
			||||||
    <view class="bg-box">
 | 
					    <view class="bg-box">
 | 
				
			||||||
      <view class="homo-title">首页</view>
 | 
					      <view class="homo-title">首页</view>
 | 
				
			||||||
      <image
 | 
					      <image class="bg-logo" style="width: 200rpx; height: 170rpx" src="/static/adminImg/bg-logo.png"></image>
 | 
				
			||||||
        class="bg-logo"
 | 
					      <image class="bg-hi" style="width: 130rpx; height: 50rpx" src="/static/adminImg/logo-hi.png"></image>
 | 
				
			||||||
        style="width: 200rpx; height: 170rpx"
 | 
					 | 
				
			||||||
        src="/static/adminImg/bg-logo.png"
 | 
					 | 
				
			||||||
      ></image>
 | 
					 | 
				
			||||||
      <image
 | 
					 | 
				
			||||||
        class="bg-hi"
 | 
					 | 
				
			||||||
        style="width: 130rpx; height: 50rpx"
 | 
					 | 
				
			||||||
        src="/static/adminImg/logo-hi.png"
 | 
					 | 
				
			||||||
      ></image>
 | 
					 | 
				
			||||||
      <view style="height: 150rpx"></view>
 | 
					      <view style="height: 150rpx"></view>
 | 
				
			||||||
      <view class="tip">欢迎使用,张三</view>
 | 
					      <view class="tip">欢迎使用,张三</view>
 | 
				
			||||||
      <view class="desc">欢迎使用巡检管理员端</view>
 | 
					      <view class="desc">欢迎使用巡检管理员端</view>
 | 
				
			||||||
      <view class="card">
 | 
					      <view class="card">
 | 
				
			||||||
        <view class="card-item">
 | 
					        <view class="card-item">
 | 
				
			||||||
          <view class="item-title">区域数量 </view>
 | 
					          <view class="item-title">区域数量 </view>
 | 
				
			||||||
          <view class="item-totel">10 </view>
 | 
					          <view class="item-totel">{{ form.areaCount }} </view>
 | 
				
			||||||
          <image
 | 
					          <image class="card-img" style="width: 130rpx; height: 130rpx" src="/static/adminImg/card1.png"></image>
 | 
				
			||||||
            class="card-img"
 | 
					 | 
				
			||||||
            style="width: 130rpx; height: 130rpx"
 | 
					 | 
				
			||||||
            src="/static/adminImg/card1.png"
 | 
					 | 
				
			||||||
          ></image>
 | 
					 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
        <view class="card-item">
 | 
					        <view class="card-item">
 | 
				
			||||||
          <view class="item-title">子区域数量 </view>
 | 
					          <view class="item-title">子区域数量 </view>
 | 
				
			||||||
          <view class="item-totel">20 </view>
 | 
					          <view class="item-totel">{{ form.regionCount }} </view>
 | 
				
			||||||
          <image
 | 
					          <image class="card-img" style="width: 130rpx; height: 130rpx" src="/static/adminImg/card2.png"></image>
 | 
				
			||||||
            class="card-img"
 | 
					 | 
				
			||||||
            style="width: 130rpx; height: 130rpx"
 | 
					 | 
				
			||||||
            src="/static/adminImg/card2.png"
 | 
					 | 
				
			||||||
          ></image>
 | 
					 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
        <view class="card-item">
 | 
					        <view class="card-item">
 | 
				
			||||||
          <view class="item-title">已绑定子区域数 </view>
 | 
					          <view class="item-title">已绑定子区域数 </view>
 | 
				
			||||||
          <view class="item-totel">30 </view>
 | 
					          <view class="item-totel">{{ form.bindnfc }} </view>
 | 
				
			||||||
          <image
 | 
					          <image class="card-img" style="width: 130rpx; height: 130rpx" src="/static/adminImg/card3.png"></image>
 | 
				
			||||||
            class="card-img"
 | 
					 | 
				
			||||||
            style="width: 130rpx; height: 130rpx"
 | 
					 | 
				
			||||||
            src="/static/adminImg/card3.png"
 | 
					 | 
				
			||||||
          ></image>
 | 
					 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
        <view class="card-item">
 | 
					        <view class="card-item">
 | 
				
			||||||
          <view class="item-title">未绑定子区域数 </view>
 | 
					          <view class="item-title">未绑定子区域数 </view>
 | 
				
			||||||
          <view class="item-totel">40 </view>
 | 
					          <view class="item-totel">{{ form.noBindnfc }} </view>
 | 
				
			||||||
          <image
 | 
					          <image class="card-img" style="width: 130rpx; height: 130rpx" src="/static/adminImg/card4.png"></image>
 | 
				
			||||||
            class="card-img"
 | 
					 | 
				
			||||||
            style="width: 130rpx; height: 130rpx"
 | 
					 | 
				
			||||||
            src="/static/adminImg/card4.png"
 | 
					 | 
				
			||||||
          ></image>
 | 
					 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
      </view>
 | 
					      </view>
 | 
				
			||||||
      <view v-if="true" style="display: flex">
 | 
					      <view v-if="true" style="display: flex">
 | 
				
			||||||
| 
						 | 
					@ -61,19 +37,31 @@
 | 
				
			||||||
  </view>
 | 
					  </view>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import { loginApi } from "@/api/apiList";
 | 
					import { GetHomeDataApi } from "@/api/apiAdmin";
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      phone: "13800451500",
 | 
					      form: {
 | 
				
			||||||
      pwd: "123456",
 | 
					        "regionCount": 0,
 | 
				
			||||||
 | 
					        "areaCount": 0,
 | 
				
			||||||
 | 
					        "bindnfc": 0,
 | 
				
			||||||
 | 
					        "noBindnfc": 0
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  mounted() {
 | 
					  mounted() {
 | 
				
			||||||
    uni.hideLoading(); // 关闭 Loading
 | 
					    uni.hideLoading(); // 关闭 Loading
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  onLoad() {},
 | 
					  onLoad() { },
 | 
				
			||||||
 | 
					  onShow() {
 | 
				
			||||||
 | 
					    this.getDataFn()
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
 | 
					    async getDataFn() {
 | 
				
			||||||
 | 
					      const res = await GetHomeDataApi();
 | 
				
			||||||
 | 
					      console.log(res, "首页数据");
 | 
				
			||||||
 | 
					      Object.assign(this.form, res.data);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    testFn() {
 | 
					    testFn() {
 | 
				
			||||||
      let u = navigator.userAgent;
 | 
					      let u = navigator.userAgent;
 | 
				
			||||||
      let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android
 | 
					      let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android
 | 
				
			||||||
| 
						 | 
					@ -107,23 +95,27 @@ export default {
 | 
				
			||||||
  // background-color: skyblue;
 | 
					  // background-color: skyblue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  overflow: hidden;
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // padding-bottom: 100rpx;
 | 
					  // padding-bottom: 100rpx;
 | 
				
			||||||
  .bg-box {
 | 
					  .bg-box {
 | 
				
			||||||
    position: relative;
 | 
					    position: relative;
 | 
				
			||||||
    // background-color: #528dfe;
 | 
					    // background-color: #528dfe;
 | 
				
			||||||
    background: linear-gradient(to bottom, #3179fb, white);
 | 
					    background: linear-gradient(to bottom, #3179fb, white);
 | 
				
			||||||
    height: 650rpx;
 | 
					    height: 650rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .homo-title {
 | 
					    .homo-title {
 | 
				
			||||||
      color: white;
 | 
					      color: white;
 | 
				
			||||||
      transform: translateY(30rpx);
 | 
					      transform: translateY(30rpx);
 | 
				
			||||||
      font-size: 35rpx;
 | 
					      font-size: 35rpx;
 | 
				
			||||||
      text-align: center;
 | 
					      text-align: center;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .bg-logo {
 | 
					    .bg-logo {
 | 
				
			||||||
      position: absolute;
 | 
					      position: absolute;
 | 
				
			||||||
      right: 50rpx;
 | 
					      right: 50rpx;
 | 
				
			||||||
      top: 160rpx;
 | 
					      top: 160rpx;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .bg-hi {
 | 
					    .bg-hi {
 | 
				
			||||||
      position: absolute;
 | 
					      position: absolute;
 | 
				
			||||||
      left: 30rpx;
 | 
					      left: 30rpx;
 | 
				
			||||||
| 
						 | 
					@ -135,11 +127,13 @@ export default {
 | 
				
			||||||
      color: white;
 | 
					      color: white;
 | 
				
			||||||
      font-size: 40rpx;
 | 
					      font-size: 40rpx;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .desc {
 | 
					    .desc {
 | 
				
			||||||
      margin-top: 20rpx;
 | 
					      margin-top: 20rpx;
 | 
				
			||||||
      padding-left: 30rpx;
 | 
					      padding-left: 30rpx;
 | 
				
			||||||
      color: #ffffff99;
 | 
					      color: #ffffff99;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .card {
 | 
					    .card {
 | 
				
			||||||
      // border: 1px solid red;
 | 
					      // border: 1px solid red;
 | 
				
			||||||
      display: grid;
 | 
					      display: grid;
 | 
				
			||||||
| 
						 | 
					@ -147,6 +141,7 @@ export default {
 | 
				
			||||||
      grid-template-rows: repeat(2, 1fr);
 | 
					      grid-template-rows: repeat(2, 1fr);
 | 
				
			||||||
      gap: 30rpx;
 | 
					      gap: 30rpx;
 | 
				
			||||||
      padding: 50rpx;
 | 
					      padding: 50rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .card-item {
 | 
					      .card-item {
 | 
				
			||||||
        position: relative;
 | 
					        position: relative;
 | 
				
			||||||
        // border: 1px solid blue;
 | 
					        // border: 1px solid blue;
 | 
				
			||||||
| 
						 | 
					@ -155,12 +150,15 @@ export default {
 | 
				
			||||||
        background: linear-gradient(to bottom, white, #e1e9ff);
 | 
					        background: linear-gradient(to bottom, white, #e1e9ff);
 | 
				
			||||||
        height: 280rpx;
 | 
					        height: 280rpx;
 | 
				
			||||||
        padding: 30rpx;
 | 
					        padding: 30rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .item-title {
 | 
					        .item-title {
 | 
				
			||||||
          font-size: 30rpx;
 | 
					          font-size: 30rpx;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .item-totel {
 | 
					        .item-totel {
 | 
				
			||||||
          font-size: 50rpx;
 | 
					          font-size: 50rpx;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .card-img {
 | 
					        .card-img {
 | 
				
			||||||
          position: absolute;
 | 
					          position: absolute;
 | 
				
			||||||
          right: 20rpx;
 | 
					          right: 20rpx;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,27 +3,14 @@
 | 
				
			||||||
    <view class="content-title">我的</view>
 | 
					    <view class="content-title">我的</view>
 | 
				
			||||||
    <view class="head">
 | 
					    <view class="head">
 | 
				
			||||||
      <view class="avatar-box">
 | 
					      <view class="avatar-box">
 | 
				
			||||||
        <u-avatar
 | 
					        <u-avatar :src="'/static/images/avatar.png'" size="140" mode="circle" class="avatar"></u-avatar>
 | 
				
			||||||
          :src="baseInfo.avatar || '/static/images/avatar.png'"
 | 
					 | 
				
			||||||
          size="140"
 | 
					 | 
				
			||||||
          mode="circle"
 | 
					 | 
				
			||||||
          class="avatar"
 | 
					 | 
				
			||||||
        ></u-avatar>
 | 
					 | 
				
			||||||
      </view>
 | 
					      </view>
 | 
				
			||||||
      <view class="content-name">JuLia James</view>
 | 
					      <view class="content-name">{{ userName }}</view>
 | 
				
			||||||
    </view>
 | 
					    </view>
 | 
				
			||||||
    <view class="cell-list-box">
 | 
					    <view class="cell-list-box">
 | 
				
			||||||
      <view
 | 
					      <view class="cell-list-item" v-for="item in cellList" @click="toPage(item.path, item)">
 | 
				
			||||||
        class="cell-list-item"
 | 
					 | 
				
			||||||
        v-for="item in cellList"
 | 
					 | 
				
			||||||
        @click="toPage(item.path, item)"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <view class="cell-list-item-left">
 | 
					        <view class="cell-list-item-left">
 | 
				
			||||||
          <image
 | 
					          <image style="width: 60rpx; height: 60rpx" mode="aspectFit" :src="item.icon"></image>
 | 
				
			||||||
            style="width: 60rpx; height: 60rpx"
 | 
					 | 
				
			||||||
            mode="aspectFit"
 | 
					 | 
				
			||||||
            :src="item.icon"
 | 
					 | 
				
			||||||
          ></image>
 | 
					 | 
				
			||||||
          <text>{{ item.title }}</text>
 | 
					          <text>{{ item.title }}</text>
 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,17 +22,9 @@
 | 
				
			||||||
    </view>
 | 
					    </view>
 | 
				
			||||||
    <view class="empty-box"></view>
 | 
					    <view class="empty-box"></view>
 | 
				
			||||||
    <view class="cell-list-box2">
 | 
					    <view class="cell-list-box2">
 | 
				
			||||||
      <view
 | 
					      <view class="cell-list-item" v-for="item in cellList2" @click="toPage(item.path, item)">
 | 
				
			||||||
        class="cell-list-item"
 | 
					 | 
				
			||||||
        v-for="item in cellList2"
 | 
					 | 
				
			||||||
        @click="toPage(item.path, item)"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <view class="cell-list-item-left">
 | 
					        <view class="cell-list-item-left">
 | 
				
			||||||
          <image
 | 
					          <image style="width: 60rpx; height: 60rpx" mode="aspectFit" :src="item.icon"></image>
 | 
				
			||||||
            style="width: 60rpx; height: 60rpx"
 | 
					 | 
				
			||||||
            mode="aspectFit"
 | 
					 | 
				
			||||||
            :src="item.icon"
 | 
					 | 
				
			||||||
          ></image>
 | 
					 | 
				
			||||||
          <text>{{ item.title }}</text>
 | 
					          <text>{{ item.title }}</text>
 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,8 +38,7 @@
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import { GetCompanyInformation } from "@/api/apiList.js";
 | 
					import { GetUserDataApi } from "@/api/apiAdmin.js";
 | 
				
			||||||
 | 
					 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  toast,
 | 
					  toast,
 | 
				
			||||||
  clearStorageSync,
 | 
					  clearStorageSync,
 | 
				
			||||||
| 
						 | 
					@ -72,14 +50,22 @@ import {
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      baseInfo: {
 | 
					      form: {
 | 
				
			||||||
        avatar: "",
 | 
					        "id": "08dd80a7-f2fa-46df-8374-4e132418512e",
 | 
				
			||||||
        companyName: "南昌理工",
 | 
					        "name": "计算机学院教学大楼12栋",
 | 
				
			||||||
        name: "保洁",
 | 
					        "description": "12栋",
 | 
				
			||||||
        sex: 0, // 0 男 1 女
 | 
					        "companyId": "4b2d9662-a768-08f2-a0c8-762b8c76da2a",
 | 
				
			||||||
        time: "2025/4/2-2026/4/2",
 | 
					        "departmentId": "08dd6dcf-ffc9-4000-89b2-b53ea1d5acfb",
 | 
				
			||||||
        personType: "保洁员",
 | 
					        "department": null,
 | 
				
			||||||
 | 
					        "userId": "21645b80-8aff-3cf2-b1f3-2ba9d485fecd",
 | 
				
			||||||
 | 
					        "areas": [],
 | 
				
			||||||
 | 
					        "createTime": "2025-04-21T15:41:36.897423",
 | 
				
			||||||
 | 
					        "isDeleted": false
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
 | 
					      // 用户姓名
 | 
				
			||||||
 | 
					      userName: '',
 | 
				
			||||||
 | 
					      // 人员类型
 | 
				
			||||||
 | 
					      userType: '',
 | 
				
			||||||
      clickCount: 0, // 用于记录点击次数
 | 
					      clickCount: 0, // 用于记录点击次数
 | 
				
			||||||
      version: "",
 | 
					      version: "",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -118,31 +104,23 @@ export default {
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  onLoad() {
 | 
					  onLoad() {
 | 
				
			||||||
    // this.getUserInfo();
 | 
					 | 
				
			||||||
    // const that = this;
 | 
					 | 
				
			||||||
    // uni.getSystemInfo({
 | 
					 | 
				
			||||||
    //   success: function (res) {
 | 
					 | 
				
			||||||
    //     console.log("res", res);
 | 
					 | 
				
			||||||
    //     that.version = res.appVersion;
 | 
					 | 
				
			||||||
    //   },
 | 
					 | 
				
			||||||
    // });
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  onShow() {
 | 
					  onShow() {
 | 
				
			||||||
    // this.getCompanyInformation();
 | 
					    this.getDataFn();
 | 
				
			||||||
    // uni.$on("refresh", (e) => {
 | 
					 | 
				
			||||||
    //   this.getUserInfo();
 | 
					 | 
				
			||||||
    //   uni.$off("refresh");
 | 
					 | 
				
			||||||
    // });
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					 | 
				
			||||||
  // 下拉刷新
 | 
					 | 
				
			||||||
  onPullDownRefresh() {
 | 
					 | 
				
			||||||
    //console.log('refresh');
 | 
					 | 
				
			||||||
    // this.getUserInfo();
 | 
					 | 
				
			||||||
    // uni.stopPullDownRefresh(); //停止刷新
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
 | 
					    async getDataFn() {
 | 
				
			||||||
 | 
					      const res = await GetUserDataApi();
 | 
				
			||||||
 | 
					      console.log(res, "用户数据");
 | 
				
			||||||
 | 
					      Object.assign(this.form, res.data.userRegion);
 | 
				
			||||||
 | 
					      // 用户名称
 | 
				
			||||||
 | 
					      this.userName = res.data.userName
 | 
				
			||||||
 | 
					      // 人员类型
 | 
				
			||||||
 | 
					      this.userType = res.data.userType
 | 
				
			||||||
 | 
					      this.cellList[1].content = res.data.userType
 | 
				
			||||||
 | 
					      // 所属区域
 | 
				
			||||||
 | 
					      this.cellList[2].content = res.data.userRegion.name
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    handleClick() {
 | 
					    handleClick() {
 | 
				
			||||||
      this.clickCount++; // 每次点击增加点击次数
 | 
					      this.clickCount++; // 每次点击增加点击次数
 | 
				
			||||||
      if (this.clickCount === 6) {
 | 
					      if (this.clickCount === 6) {
 | 
				
			||||||
| 
						 | 
					@ -152,50 +130,6 @@ export default {
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    upload_avatar() {
 | 
					 | 
				
			||||||
      const _this = this;
 | 
					 | 
				
			||||||
      uni.chooseImage({
 | 
					 | 
				
			||||||
        count: 1,
 | 
					 | 
				
			||||||
        sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
 | 
					 | 
				
			||||||
        sourceType: ["album", "camera"], //从相册选择
 | 
					 | 
				
			||||||
        success: function (res) {
 | 
					 | 
				
			||||||
          uni.uploadFile({
 | 
					 | 
				
			||||||
            url: _this.$api_url + "/api/index/upload_cos",
 | 
					 | 
				
			||||||
            filePath: res.tempFilePaths[0],
 | 
					 | 
				
			||||||
            name: "file",
 | 
					 | 
				
			||||||
            formData: {
 | 
					 | 
				
			||||||
              floder: "avatar",
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            success: (uploadFileRes) => {
 | 
					 | 
				
			||||||
              //let retData = JSON.parse(uploadFileRes)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              let retData = JSON.parse(uploadFileRes.data);
 | 
					 | 
				
			||||||
              console.log("up:", retData);
 | 
					 | 
				
			||||||
              const _data = {
 | 
					 | 
				
			||||||
                avatar: retData.data.file,
 | 
					 | 
				
			||||||
              };
 | 
					 | 
				
			||||||
              _this.$api.baseInfoSave(_data).then((ret) => {
 | 
					 | 
				
			||||||
                if (ret.code == 1) {
 | 
					 | 
				
			||||||
                  _this.baseInfo.avatar = retData.data.file;
 | 
					 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                  toast(res.msg);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
              });
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
          });
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // 获取单位信息
 | 
					 | 
				
			||||||
    async getCompanyInformation() {
 | 
					 | 
				
			||||||
      const res = await GetCompanyInformation();
 | 
					 | 
				
			||||||
      if (res.succeed) {
 | 
					 | 
				
			||||||
        this.baseInfo = res.data;
 | 
					 | 
				
			||||||
        this.cellList[0].content = this.baseInfo.time;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    toPage(path, item) {
 | 
					    toPage(path, item) {
 | 
				
			||||||
      if (item.title === "注销") {
 | 
					      if (item.title === "注销") {
 | 
				
			||||||
        uni.showModal({
 | 
					        uni.showModal({
 | 
				
			||||||
| 
						 | 
					@ -203,8 +137,8 @@ export default {
 | 
				
			||||||
          content: "确定注销吗?",
 | 
					          content: "确定注销吗?",
 | 
				
			||||||
          showCancel: true,
 | 
					          showCancel: true,
 | 
				
			||||||
          success: function (res) {
 | 
					          success: function (res) {
 | 
				
			||||||
            if(!res.confirm){return}
 | 
					            if (!res.confirm) { return }
 | 
				
			||||||
            console.log(res,'res--')
 | 
					            console.log(res, 'res--')
 | 
				
			||||||
            // 确定退出
 | 
					            // 确定退出
 | 
				
			||||||
            let u = navigator.userAgent;
 | 
					            let u = navigator.userAgent;
 | 
				
			||||||
            let isAndroid =
 | 
					            let isAndroid =
 | 
				
			||||||
| 
						 | 
					@ -246,6 +180,7 @@ export default {
 | 
				
			||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
.content {
 | 
					.content {
 | 
				
			||||||
  height: calc(100vh - 100rpx);
 | 
					  height: calc(100vh - 100rpx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // background: #f6f8fc;
 | 
					  // background: #f6f8fc;
 | 
				
			||||||
  .content-title {
 | 
					  .content-title {
 | 
				
			||||||
    background: #fff;
 | 
					    background: #fff;
 | 
				
			||||||
| 
						 | 
					@ -254,6 +189,7 @@ export default {
 | 
				
			||||||
    font-size: 30rpx;
 | 
					    font-size: 30rpx;
 | 
				
			||||||
    font-weight: bold;
 | 
					    font-weight: bold;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .head {
 | 
					  .head {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    justify-content: center;
 | 
					    justify-content: center;
 | 
				
			||||||
| 
						 | 
					@ -269,6 +205,7 @@ export default {
 | 
				
			||||||
      height: 140rpx;
 | 
					      height: 140rpx;
 | 
				
			||||||
      border-radius: 50%;
 | 
					      border-radius: 50%;
 | 
				
			||||||
      position: relative;
 | 
					      position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .avatar {
 | 
					      .avatar {
 | 
				
			||||||
        width: 100%;
 | 
					        width: 100%;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					@ -306,6 +243,7 @@ export default {
 | 
				
			||||||
          align-self: center;
 | 
					          align-self: center;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      &-right {
 | 
					      &-right {
 | 
				
			||||||
        color: #999;
 | 
					        color: #999;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,40 +4,26 @@
 | 
				
			||||||
    <view class="card">
 | 
					    <view class="card">
 | 
				
			||||||
      <view class="card-item card-left">
 | 
					      <view class="card-item card-left">
 | 
				
			||||||
        <view class="card-title">已绑定子区域数</view>
 | 
					        <view class="card-title">已绑定子区域数</view>
 | 
				
			||||||
        <view class="card-totel">10</view>
 | 
					        <view class="card-totel">{{ form.bindnfc }}</view>
 | 
				
			||||||
      </view>
 | 
					      </view>
 | 
				
			||||||
      <view class="card-item card-right">
 | 
					      <view class="card-item card-right">
 | 
				
			||||||
        <view class="card-title">未绑定子区域数</view>
 | 
					        <view class="card-title">未绑定子区域数</view>
 | 
				
			||||||
        <view class="card-totel">10</view>
 | 
					        <view class="card-totel">{{ form.noBindnfc }}</view>
 | 
				
			||||||
      </view>
 | 
					      </view>
 | 
				
			||||||
    </view>
 | 
					    </view>
 | 
				
			||||||
    <!-- 搜索 -->
 | 
					    <!-- 搜索 -->
 | 
				
			||||||
    <view class="search-box">
 | 
					    <view class="search-box">
 | 
				
			||||||
      <u-input
 | 
					      <u-input class="search-input" v-model="keyword" border placeholder="搜索名称"></u-input>
 | 
				
			||||||
        class="search-input"
 | 
					 | 
				
			||||||
        v-model="keyword"
 | 
					 | 
				
			||||||
        border
 | 
					 | 
				
			||||||
        placeholder="搜索名称"
 | 
					 | 
				
			||||||
      ></u-input>
 | 
					 | 
				
			||||||
      <view class="select-box" @click="selectFn">
 | 
					      <view class="select-box" @click="selectFn">
 | 
				
			||||||
        <view>
 | 
					        <view>
 | 
				
			||||||
          {{ selectVal }}
 | 
					          {{ selectVal }}
 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
        <image
 | 
					        <image src="/static/svg/down.svg" style="width: 30rpx; height: 30rpx; margin-left: 10rpx"></image>
 | 
				
			||||||
          src="/static/svg/down.svg"
 | 
					 | 
				
			||||||
          style="width: 30rpx; height: 30rpx; margin-left: 10rpx"
 | 
					 | 
				
			||||||
        ></image>
 | 
					 | 
				
			||||||
      </view>
 | 
					      </view>
 | 
				
			||||||
    </view>
 | 
					    </view>
 | 
				
			||||||
    <!-- tabs -->
 | 
					    <!-- tabs -->
 | 
				
			||||||
    <u-tabs
 | 
					    <u-tabs class="tabs-box" bg-color="#F6F8FC" :list="tabsList" :is-scroll="true" :current="tabCurrent"
 | 
				
			||||||
      class="tabs-box"
 | 
					      @change="tabChangeFn"></u-tabs>
 | 
				
			||||||
      bg-color="#F6F8FC"
 | 
					 | 
				
			||||||
      :list="tabsList"
 | 
					 | 
				
			||||||
      :is-scroll="true"
 | 
					 | 
				
			||||||
      :current="tabCurrent"
 | 
					 | 
				
			||||||
      @change="tabChangeFn"
 | 
					 | 
				
			||||||
    ></u-tabs>
 | 
					 | 
				
			||||||
    <!-- tip -->
 | 
					    <!-- tip -->
 | 
				
			||||||
    <view class="tip-box">共10个子区域,其中5个未绑定</view>
 | 
					    <view class="tip-box">共10个子区域,其中5个未绑定</view>
 | 
				
			||||||
    <!-- 列表 -->
 | 
					    <!-- 列表 -->
 | 
				
			||||||
| 
						 | 
					@ -46,33 +32,19 @@
 | 
				
			||||||
        <view v-for="i in 80" class="item-box">
 | 
					        <view v-for="i in 80" class="item-box">
 | 
				
			||||||
          <view class="item-title">子区域{{ i }}</view>
 | 
					          <view class="item-title">子区域{{ i }}</view>
 | 
				
			||||||
          <view v-if="i % 2 === 0" class="btn-have btn">已绑定</view>
 | 
					          <view v-if="i % 2 === 0" class="btn-have btn">已绑定</view>
 | 
				
			||||||
          <view
 | 
					          <view v-if="i % 2 !== 0" class="btn-none btn" @click="showDialog = true">去绑定</view>
 | 
				
			||||||
            v-if="i % 2 !== 0"
 | 
					 | 
				
			||||||
            class="btn-none btn"
 | 
					 | 
				
			||||||
            @click="showDialog = true"
 | 
					 | 
				
			||||||
            >去绑定</view
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
      </scroll-view>
 | 
					      </scroll-view>
 | 
				
			||||||
    </view>
 | 
					    </view>
 | 
				
			||||||
    <!-- 筛选的下拉 -->
 | 
					    <!-- 筛选的下拉 -->
 | 
				
			||||||
    <u-action-sheet
 | 
					    <u-action-sheet :list="options" title="请选择" @click="changeFn" v-model:value="selectShow"></u-action-sheet>
 | 
				
			||||||
      :list="options"
 | 
					    <bind-dialog :visible="showDialog" @close="showDialog = false" @changeBinding="onChangeBinding"
 | 
				
			||||||
      title="请选择"
 | 
					      @confirm="onConfirm"></bind-dialog>
 | 
				
			||||||
      @click="changeFn"
 | 
					 | 
				
			||||||
      v-model:value="selectShow"
 | 
					 | 
				
			||||||
    ></u-action-sheet>
 | 
					 | 
				
			||||||
    <bind-dialog
 | 
					 | 
				
			||||||
      :visible="showDialog"
 | 
					 | 
				
			||||||
      @close="showDialog = false"
 | 
					 | 
				
			||||||
      @changeBinding="onChangeBinding"
 | 
					 | 
				
			||||||
      @confirm="onConfirm"
 | 
					 | 
				
			||||||
    ></bind-dialog>
 | 
					 | 
				
			||||||
    <u-tabbar :list="vuex_tabbar"></u-tabbar>
 | 
					    <u-tabbar :list="vuex_tabbar"></u-tabbar>
 | 
				
			||||||
  </view>
 | 
					  </view>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import { loginApi } from "@/api/apiList";
 | 
					import { GetRegionDataListApi, GetHomeDataApi } from "@/api/apiAdmin.js";
 | 
				
			||||||
import BindDialog from "@/pages/adminNfc/components/bindDialog.vue"; // 确保路径正确
 | 
					import BindDialog from "@/pages/adminNfc/components/bindDialog.vue"; // 确保路径正确
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  components: {
 | 
					  components: {
 | 
				
			||||||
| 
						 | 
					@ -80,6 +52,12 @@ export default {
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
 | 
					      form: {
 | 
				
			||||||
 | 
					        "regionCount": 0,
 | 
				
			||||||
 | 
					        "areaCount": 0,
 | 
				
			||||||
 | 
					        "bindnfc": 0,
 | 
				
			||||||
 | 
					        "noBindnfc": 0
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      keyword: "",
 | 
					      keyword: "",
 | 
				
			||||||
      selectShow: false,
 | 
					      selectShow: false,
 | 
				
			||||||
      showDialog: false,
 | 
					      showDialog: false,
 | 
				
			||||||
| 
						 | 
					@ -128,8 +106,23 @@ export default {
 | 
				
			||||||
  mounted() {
 | 
					  mounted() {
 | 
				
			||||||
    uni.hideLoading(); // 关闭 Loading
 | 
					    uni.hideLoading(); // 关闭 Loading
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  onLoad() {},
 | 
					  onLoad() {
 | 
				
			||||||
 | 
					    this.getAreaFn();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onShow() {
 | 
				
			||||||
 | 
					    this.getDataFn();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
 | 
					    async getDataFn() {
 | 
				
			||||||
 | 
					      const res = await GetHomeDataApi();
 | 
				
			||||||
 | 
					      console.log(res, "首页数据");
 | 
				
			||||||
 | 
					      Object.assign(this.form, res.data);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    async getAreaFn() {
 | 
				
			||||||
 | 
					      const res = await GetRegionDataListApi()
 | 
				
			||||||
 | 
					      console.log(res, "区域数据");
 | 
				
			||||||
 | 
					      this.tabsList = res.data.areaList
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    selectFn() {
 | 
					    selectFn() {
 | 
				
			||||||
      this.selectShow = true;
 | 
					      this.selectShow = true;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
| 
						 | 
					@ -141,7 +134,6 @@ export default {
 | 
				
			||||||
      console.log(val, "val--");
 | 
					      console.log(val, "val--");
 | 
				
			||||||
      this.tabCurrent = val;
 | 
					      this.tabCurrent = val;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					 | 
				
			||||||
    onChangeBinding() {
 | 
					    onChangeBinding() {
 | 
				
			||||||
      console.log("点击了更换绑定");
 | 
					      console.log("点击了更换绑定");
 | 
				
			||||||
      // 处理更换绑定的逻辑
 | 
					      // 处理更换绑定的逻辑
 | 
				
			||||||
| 
						 | 
					@ -159,11 +151,13 @@ export default {
 | 
				
			||||||
  // overflow: hidden;
 | 
					  // overflow: hidden;
 | 
				
			||||||
  background-color: #f6f8fc;
 | 
					  background-color: #f6f8fc;
 | 
				
			||||||
  padding-bottom: 100rpx;
 | 
					  padding-bottom: 100rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .card {
 | 
					  .card {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    // margin-top: 30rpx;
 | 
					    // margin-top: 30rpx;
 | 
				
			||||||
    padding-left: 30rpx;
 | 
					    padding-left: 30rpx;
 | 
				
			||||||
    padding-right: 30rpx;
 | 
					    padding-right: 30rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .card-item {
 | 
					    .card-item {
 | 
				
			||||||
      position: relative;
 | 
					      position: relative;
 | 
				
			||||||
      flex: 1;
 | 
					      flex: 1;
 | 
				
			||||||
| 
						 | 
					@ -172,36 +166,41 @@ export default {
 | 
				
			||||||
      color: white;
 | 
					      color: white;
 | 
				
			||||||
      padding: 20rpx;
 | 
					      padding: 20rpx;
 | 
				
			||||||
      font-size: 30rpx;
 | 
					      font-size: 30rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .card-title {
 | 
					      .card-title {
 | 
				
			||||||
        font-size: 30rpx;
 | 
					        font-size: 30rpx;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .card-totel {
 | 
					      .card-totel {
 | 
				
			||||||
        padding-left: 20rpx;
 | 
					        padding-left: 20rpx;
 | 
				
			||||||
        font-size: 40rpx;
 | 
					        font-size: 40rpx;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .card-left {
 | 
					    .card-left {
 | 
				
			||||||
      background: url("/static/adminImg/icon-bg1.png") no-repeat right 32rpx
 | 
					      background: url("/static/adminImg/icon-bg1.png") no-repeat right 32rpx bottom 20rpx / 60rpx 60rpx;
 | 
				
			||||||
        bottom 20rpx / 60rpx 60rpx;
 | 
					 | 
				
			||||||
      background-color: #4974f3;
 | 
					      background-color: #4974f3;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .card-right {
 | 
					    .card-right {
 | 
				
			||||||
      margin-left: 20rpx;
 | 
					      margin-left: 20rpx;
 | 
				
			||||||
      background: url("/static/adminImg/icon-bg2.png") no-repeat right 32rpx
 | 
					      background: url("/static/adminImg/icon-bg2.png") no-repeat right 32rpx bottom 20rpx / 60rpx 60rpx;
 | 
				
			||||||
        bottom 20rpx / 60rpx 60rpx;
 | 
					 | 
				
			||||||
      background-color: #53d5a9;
 | 
					      background-color: #53d5a9;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .search-box {
 | 
					  .search-box {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    align-items: center;
 | 
					    align-items: center;
 | 
				
			||||||
    // border: 1px solid red;
 | 
					    // border: 1px solid red;
 | 
				
			||||||
    margin-top: 20rpx;
 | 
					    margin-top: 20rpx;
 | 
				
			||||||
    padding: 20rpx;
 | 
					    padding: 20rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .search-input {
 | 
					    .search-input {
 | 
				
			||||||
      background-color: white;
 | 
					      background-color: white;
 | 
				
			||||||
      border-radius: 50rpx;
 | 
					      border-radius: 50rpx;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .select-box {
 | 
					    .select-box {
 | 
				
			||||||
      display: flex;
 | 
					      display: flex;
 | 
				
			||||||
      justify-content: center;
 | 
					      justify-content: center;
 | 
				
			||||||
| 
						 | 
					@ -216,13 +215,16 @@ export default {
 | 
				
			||||||
      padding-bottom: 10rpx;
 | 
					      padding-bottom: 10rpx;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .tip-box {
 | 
					  .tip-box {
 | 
				
			||||||
    color: grey;
 | 
					    color: grey;
 | 
				
			||||||
    padding-left: 30rpx;
 | 
					    padding-left: 30rpx;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .list-box {
 | 
					  .list-box {
 | 
				
			||||||
    padding-left: 30rpx;
 | 
					    padding-left: 30rpx;
 | 
				
			||||||
    padding-right: 30rpx;
 | 
					    padding-right: 30rpx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .item-box {
 | 
					    .item-box {
 | 
				
			||||||
      background-color: white;
 | 
					      background-color: white;
 | 
				
			||||||
      margin-top: 20rpx;
 | 
					      margin-top: 20rpx;
 | 
				
			||||||
| 
						 | 
					@ -233,11 +235,13 @@ export default {
 | 
				
			||||||
      display: flex;
 | 
					      display: flex;
 | 
				
			||||||
      justify-content: space-between;
 | 
					      justify-content: space-between;
 | 
				
			||||||
      align-items: center;
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .item-title {
 | 
					      .item-title {
 | 
				
			||||||
        font-size: 30rpx;
 | 
					        font-size: 30rpx;
 | 
				
			||||||
        color: #333;
 | 
					        color: #333;
 | 
				
			||||||
        // font-weight: bold;
 | 
					        // font-weight: bold;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .btn {
 | 
					      .btn {
 | 
				
			||||||
        padding-left: 20rpx;
 | 
					        padding-left: 20rpx;
 | 
				
			||||||
        padding-right: 20rpx;
 | 
					        padding-right: 20rpx;
 | 
				
			||||||
| 
						 | 
					@ -245,10 +249,12 @@ export default {
 | 
				
			||||||
        padding-top: 5rpx;
 | 
					        padding-top: 5rpx;
 | 
				
			||||||
        padding-bottom: 5rpx;
 | 
					        padding-bottom: 5rpx;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .btn-have {
 | 
					      .btn-have {
 | 
				
			||||||
        background-color: #f5f5f5;
 | 
					        background-color: #f5f5f5;
 | 
				
			||||||
        color: black;
 | 
					        color: black;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .btn-none {
 | 
					      .btn-none {
 | 
				
			||||||
        background-color: #4274dc;
 | 
					        background-color: #4274dc;
 | 
				
			||||||
        color: white;
 | 
					        color: white;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -114,6 +114,7 @@ export default {
 | 
				
			||||||
      form: {
 | 
					      form: {
 | 
				
			||||||
        note: "", // 备注
 | 
					        note: "", // 备注
 | 
				
			||||||
        url: "", // 图片
 | 
					        url: "", // 图片
 | 
				
			||||||
 | 
					        // url: "http://sl.vrgon.com:8005/uploads/20250418/13800451500/3e6bd20b50d34555b5737db851acd71e.png", // 图片
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      areaOptions: [
 | 
					      areaOptions: [
 | 
				
			||||||
        { label: "东大门操场", value: "east_gate" },
 | 
					        { label: "东大门操场", value: "east_gate" },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,30 +1,19 @@
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <view class="content">
 | 
					  <view class="content">
 | 
				
			||||||
    <view
 | 
					    <view style="margin-top: 50rpx; display: flex; align-items: center; padding-right: 50rpx">
 | 
				
			||||||
      style="margin-top: 50rpx; display: flex; align-items: center; padding-right: 50rpx"
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <view style="margin-right: 50rpx">账号</view>
 | 
					      <view style="margin-right: 50rpx">账号</view>
 | 
				
			||||||
      <u-input v-model="phone" border placeholder="账号"></u-input>
 | 
					      <u-input v-model="phone" border placeholder="账号"></u-input>
 | 
				
			||||||
    </view>
 | 
					    </view>
 | 
				
			||||||
    <view
 | 
					    <view style="margin-top: 50rpx; display: flex; align-items: center; padding-right: 50rpx">
 | 
				
			||||||
      style="margin-top: 50rpx; display: flex; align-items: center; padding-right: 50rpx"
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <view style="margin-right: 50rpx">账号</view>
 | 
					      <view style="margin-right: 50rpx">账号</view>
 | 
				
			||||||
      <u-input v-model="pwd" border placeholder="密码"></u-input>
 | 
					      <u-input v-model="pwd" border placeholder="密码"></u-input>
 | 
				
			||||||
    </view>
 | 
					    </view>
 | 
				
			||||||
    <u-button type="primary" @click="loginFn" style="margin-top: 50rpx">登陆</u-button>
 | 
					    <u-button type="primary" @click="loginFn('admin')" style="margin-top: 50rpx">登陆-管理员</u-button>
 | 
				
			||||||
    <u-button type="primary" @click="login1Fn" style="margin-top: 50rpx"
 | 
					    <u-button type="primary" @click="login1Fn" style="margin-top: 50rpx">登陆13800451500-清洁工</u-button>
 | 
				
			||||||
      >登陆13800451500-清洁工</u-button
 | 
					    <u-button type="primary" @click="login2Fn" style="margin-top: 50rpx">登陆18174010562-管理员</u-button>
 | 
				
			||||||
    >
 | 
					    <u-button type="primary" @click="login4Fn" style="margin-top: 50rpx">登陆18174010562-清洁工</u-button>
 | 
				
			||||||
    <u-button type="primary" @click="login2Fn" style="margin-top: 50rpx"
 | 
					    <u-button type="primary" @click="login3Fn" style="margin-top: 50rpx">登陆18174010561-清洁工</u-button>
 | 
				
			||||||
      >登陆18174010562-管理员</u-button
 | 
					    <u-button type="primary" @click="login5Fn" style="margin-top: 50rpx">登陆18174010561-管理员</u-button>
 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
    <u-button type="primary" @click="login4Fn" style="margin-top: 50rpx"
 | 
					 | 
				
			||||||
      >登陆18174010562-清洁工</u-button
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
    <u-button type="primary" @click="login3Fn" style="margin-top: 50rpx"
 | 
					 | 
				
			||||||
      >登陆18174010561-清洁工</u-button
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
  </view>
 | 
					  </view>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
| 
						 | 
					@ -33,7 +22,7 @@ import { loginApi } from "@/api/apiList";
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      phone: "13800451500",
 | 
					      phone: "18174010566",
 | 
				
			||||||
      pwd: "123456",
 | 
					      pwd: "123456",
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
| 
						 | 
					@ -41,13 +30,52 @@ export default {
 | 
				
			||||||
    // console.log("%c%s", "color:red", "mounted--");
 | 
					    // console.log("%c%s", "color:red", "mounted--");
 | 
				
			||||||
    uni.hideLoading(); // 关闭 Loading
 | 
					    uni.hideLoading(); // 关闭 Loading
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  onLoad() {},
 | 
					  onLoad() { },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    login1Fn() {
 | 
					    login1Fn() {
 | 
				
			||||||
      this.phone = "13800451500";
 | 
					      this.phone = "13800451500";
 | 
				
			||||||
      // this.phone = "18174010561";
 | 
					      // this.phone = "18174010561";
 | 
				
			||||||
      this.pwd = "123456";
 | 
					      this.pwd = "123456";
 | 
				
			||||||
 | 
					      this.loginFn("user");
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    login2Fn() {
 | 
				
			||||||
 | 
					      this.phone = "18174010562";
 | 
				
			||||||
 | 
					      this.pwd = "123456";
 | 
				
			||||||
 | 
					      this.loginFn("admin");
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    login3Fn() {
 | 
				
			||||||
 | 
					      this.phone = "18174010561";
 | 
				
			||||||
 | 
					      this.pwd = "123456";
 | 
				
			||||||
 | 
					      this.loginFn("user");
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    login4Fn() {
 | 
				
			||||||
 | 
					      this.phone = "18174010562";
 | 
				
			||||||
 | 
					      this.pwd = "123456";
 | 
				
			||||||
 | 
					      this.loginFn("user");
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    login5Fn() {
 | 
				
			||||||
 | 
					      this.phone = "18174010561";
 | 
				
			||||||
 | 
					      this.pwd = "123456";
 | 
				
			||||||
 | 
					      this.loginFn("admin");
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    async loginFn(type) {
 | 
				
			||||||
 | 
					      let salt = bcrypt.genSaltSync(12);
 | 
				
			||||||
 | 
					      let req = {
 | 
				
			||||||
 | 
					        phone: this.phone,
 | 
				
			||||||
 | 
					        password: bcrypt.hashSync(this.pwd, salt),
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      const res = await loginApi(req);
 | 
				
			||||||
 | 
					      if (!res.succeed) {
 | 
				
			||||||
 | 
					        uni.showToast({
 | 
				
			||||||
 | 
					          title: res.error || "登录失败",
 | 
				
			||||||
 | 
					          icon: "none",
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      let token = res.data;
 | 
				
			||||||
 | 
					      uni.setStorageSync("token", "Bearer " + token);
 | 
				
			||||||
 | 
					      console.log(type, "type--");
 | 
				
			||||||
 | 
					      if (type === "user") {
 | 
				
			||||||
        const normalTabBar = [
 | 
					        const normalTabBar = [
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            pagePath: "/pages/index/planList",
 | 
					            pagePath: "/pages/index/planList",
 | 
				
			||||||
| 
						 | 
					@ -69,12 +97,12 @@ export default {
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
        this.$u.vuex("vuex_tabbar", normalTabBar);
 | 
					        this.$u.vuex("vuex_tabbar", normalTabBar);
 | 
				
			||||||
      this.loginFn("user");
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    login2Fn() {
 | 
					 | 
				
			||||||
      this.phone = "18174010562";
 | 
					 | 
				
			||||||
      this.pwd = "123456";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        uni.switchTab({
 | 
				
			||||||
 | 
					          url: `/pages/index/planList`,
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (type === "admin") {
 | 
				
			||||||
        const adminTabBar = [
 | 
					        const adminTabBar = [
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            pagePath: "/pages/adminHome/index",
 | 
					            pagePath: "/pages/adminHome/index",
 | 
				
			||||||
| 
						 | 
					@ -96,85 +124,6 @@ export default {
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
        this.$u.vuex("vuex_tabbar", adminTabBar);
 | 
					        this.$u.vuex("vuex_tabbar", adminTabBar);
 | 
				
			||||||
      this.loginFn("admin");
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    login4Fn() {
 | 
					 | 
				
			||||||
      this.phone = "18174010562";
 | 
					 | 
				
			||||||
      this.pwd = "123456";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      const normalTabBar = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          pagePath: "/pages/index/planList",
 | 
					 | 
				
			||||||
          iconPath: "/static/tab/planList.png",
 | 
					 | 
				
			||||||
          selectedIconPath: "/static/tab/planList-active.png",
 | 
					 | 
				
			||||||
          text: "计划",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          pagePath: "/pages/index/index",
 | 
					 | 
				
			||||||
          iconPath: "/static/tab/admin-home.png",
 | 
					 | 
				
			||||||
          selectedIconPath: "/static/tab/admin-home-acitve.png",
 | 
					 | 
				
			||||||
          text: "首页",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          pagePath: "/pages/user/index",
 | 
					 | 
				
			||||||
          iconPath: "/static/tab/admin-my.png",
 | 
					 | 
				
			||||||
          selectedIconPath: "/static/tab/admin-my-active.png",
 | 
					 | 
				
			||||||
          text: "设置",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      this.$u.vuex("vuex_tabbar", normalTabBar);
 | 
					 | 
				
			||||||
      this.loginFn("user");
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    login3Fn() {
 | 
					 | 
				
			||||||
      this.phone = "18174010561";
 | 
					 | 
				
			||||||
      this.pwd = "123456";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      const normalTabBar = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          pagePath: "/pages/index/planList",
 | 
					 | 
				
			||||||
          iconPath: "/static/tab/planList.png",
 | 
					 | 
				
			||||||
          selectedIconPath: "/static/tab/planList-active.png",
 | 
					 | 
				
			||||||
          text: "计划",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          pagePath: "/pages/index/index",
 | 
					 | 
				
			||||||
          iconPath: "/static/tab/admin-home.png",
 | 
					 | 
				
			||||||
          selectedIconPath: "/static/tab/admin-home-acitve.png",
 | 
					 | 
				
			||||||
          text: "首页",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          pagePath: "/pages/user/index",
 | 
					 | 
				
			||||||
          iconPath: "/static/tab/admin-my.png",
 | 
					 | 
				
			||||||
          selectedIconPath: "/static/tab/admin-my-active.png",
 | 
					 | 
				
			||||||
          text: "设置",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      this.$u.vuex("vuex_tabbar", normalTabBar);
 | 
					 | 
				
			||||||
      this.loginFn("user");
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    async loginFn(type) {
 | 
					 | 
				
			||||||
      let salt = bcrypt.genSaltSync(12);
 | 
					 | 
				
			||||||
      let req = {
 | 
					 | 
				
			||||||
        phone: this.phone,
 | 
					 | 
				
			||||||
        password: bcrypt.hashSync(this.pwd, salt),
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      const res = await loginApi(req);
 | 
					 | 
				
			||||||
      if (!res.succeed) {
 | 
					 | 
				
			||||||
        uni.showToast({
 | 
					 | 
				
			||||||
          title: res.error || "登录失败",
 | 
					 | 
				
			||||||
          icon: "none",
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      let token = res.data;
 | 
					 | 
				
			||||||
      uni.setStorageSync("token", "Bearer " + token);
 | 
					 | 
				
			||||||
      console.log(type, "type--");
 | 
					 | 
				
			||||||
      if (type === "user") {
 | 
					 | 
				
			||||||
        uni.switchTab({
 | 
					 | 
				
			||||||
          url: `/pages/index/planList`,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if (type === "admin") {
 | 
					 | 
				
			||||||
        uni.switchTab({
 | 
					        uni.switchTab({
 | 
				
			||||||
          url: `/pages/adminHome/index`,
 | 
					          url: `/pages/adminHome/index`,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -195,7 +195,7 @@ export default {
 | 
				
			||||||
          content: "确定注销吗?",
 | 
					          content: "确定注销吗?",
 | 
				
			||||||
          showCancel: true,
 | 
					          showCancel: true,
 | 
				
			||||||
          success: function (res) {
 | 
					          success: function (res) {
 | 
				
			||||||
            if(res.confirm){
 | 
					            if(res.confirm){return}
 | 
				
			||||||
              // 确定退出
 | 
					              // 确定退出
 | 
				
			||||||
              let u = navigator.userAgent;
 | 
					              let u = navigator.userAgent;
 | 
				
			||||||
              let isAndroid =
 | 
					              let isAndroid =
 | 
				
			||||||
| 
						 | 
					@ -223,7 +223,6 @@ export default {
 | 
				
			||||||
                console.log(e, "e-----判断安卓苹果类型出错");
 | 
					                console.log(e, "e-----判断安卓苹果类型出错");
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
              return
 | 
					              return
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,7 @@ const baseRequest = async (url, method, data = {}, loading = true) => {
 | 
				
			||||||
            reslove(res);
 | 
					            reslove(res);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          if (successData.statusCode === 401) {
 | 
					          if ([401,403].includes(successData.statusCode)) {
 | 
				
			||||||
            console.log(successData, "successData--");
 | 
					            console.log(successData, "successData--");
 | 
				
			||||||
            console.log("%c%s", "color:red", "登录过期");
 | 
					            console.log("%c%s", "color:red", "登录过期");
 | 
				
			||||||
            uni.showModal({
 | 
					            uni.showModal({
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue