Browse Source

修改了appid

master
longjieli 5 months ago
parent
commit
10858e0c97
19 changed files with 298 additions and 228 deletions
  1. +27
    -18
      api/api.js
  2. +1
    -11
      api/http.js
  3. +3
    -3
      components/PrivacyAgreementPoup/PrivacyAgreementPoup.vue
  4. +3
    -3
      config.js
  5. +11
    -6
      pages.json
  6. +16
    -8
      pages/center/center.vue
  7. +2
    -2
      pages/finish/finish.vue
  8. +27
    -38
      pages/login/repairLogin.vue
  9. +24
    -30
      pages/login/studentLogin.vue
  10. +15
    -4
      pages/login/wxUserInfo.vue
  11. +25
    -5
      pages/order/order.vue
  12. +79
    -36
      pages/repair/repair.vue
  13. +13
    -12
      pages/repairList/repairList.vue
  14. BIN
      static/center/logo.png
  15. BIN
      static/empty/empty.png
  16. BIN
      static/login/logo.png
  17. BIN
      static/logo.png
  18. BIN
      static/studentLogin/logo.png
  19. +52
    -52
      store/store.js

+ 27
- 18
api/api.js View File

@ -6,25 +6,34 @@ const config = {
// auth : false, showLoading : true, loadingTitle : '加载中...',
// limit : 1000
// },
getConfig : {url : '/api/getConfig', method : 'GET', limit : 500},
// 登录接口
loginLogin: { url: '/school/login/login', method: 'GET' , limit : 500 },
//修改个人信息接口
updateInfo: { url: '/api/info/updateInfo', method: 'POST' , limit : 500 },
//增加报修单
addSchoolOrder : {url : '/school-api/addSchoolOrder', method : 'GET', limit : 500},
//驳回
editSchoolOrderError : {url : '/school-api/editSchoolOrderError', method : 'GET', limit : 500},
//结单
editSchoolOrderSuccess : {url : '/school-api/editSchoolOrderSuccess', method : 'GET', limit : 500},
//报修列表
getSchoolOrderPage : {url : '/school-api/getSchoolOrderPage', method : 'GET', limit : 500},
// 维修员登录接口(手机号)
repairLogin: { url: '/school/login/login', method: 'GET' , auth : false , showLoading : true , loadingTitle : '登录中...' , limit : 500 },
//学生登录(微信)
studentLogin: { url: '/school/login/loginWx', method: 'GET' , auth : false , showLoading : true , loadingTitle : '登录中...' , limit : 500 },
//微信登录用户(学生)-修改个人信息
updateInfo: { url: '/school-api/updateUserInfo', method: 'GET' , auth : true , limit : 500 },
//微信登录用户(学生)-获取个人信息
getUserInfo: { url: '/school-api/getUserInfo', method: 'GET' , auth : true , limit : 500 },
//微信登录用户(学生)-增加报修单
addSchoolOrder : {url : '/school-api/addUserSchoolOrder', method : 'GET', auth : true , limit : 500},
//驳回(维修员)
editSchoolOrderError : {url : '/school-api/editSchoolOrderError', method : 'GET', auth : true , limit : 500},
//结单(维修员)
editSchoolOrderSuccess : {url : '/school-api/editSchoolOrderSuccess', method : 'GET', auth : true , limit : 500},
//微信登录用户(学生)-报修列表
getUserSchoolOrderPage : {url : '/school-api/getUserSchoolOrderPage', method : 'GET', auth : true , limit : 500},
//获取楼栋
getActorGoList : {url : '/school-api/getActorGoList', method : 'GET', limit : 500},
getActorGoList : {url : '/school-api/getActorGoList', method : 'GET', auth : false , limit : 500},
//获取室号
getFloorList : {url : '/school-api/getFloorList', method : 'GET', limit : 500},
//分配给维修的维修单
getSchoolOrderList : {url : '/school-api/getSchoolOrderList', method : 'GET', limit : 500},
getFloorList : {url : '/school-api/getFloorList', method : 'GET', auth : false , limit : 500},
//小程序(维修员)-列表-分配给维修的订单
getSchoolOrderList : {url : '/school-api/getUserSchoolOrderList', method : 'GET', auth : true , limit : 500},
//隐私政策
getPrivacyPolicy : { url : '/school/login/getPrivacyPolicy', method : 'GET', auth : false , limit : 500},
//用户协议
getUserAgreement : { url : '/school/login/getUserAgreement', method : 'GET', auth : false , limit : 500},
//获取维修项目
getRepairList : { url : '/school-api/getRepairList', method : 'GET', auth : false , limit : 500},
}
@ -60,7 +69,7 @@ export function api(key, data, callback, loadingTitle){
if (req.auth) {
if (!uni.getStorageSync('token')) {
uni.navigateTo({
url: '/pages/login/mobile'
url: '/pages/login/studentLogin'
})
console.error('需要登录')
return


+ 1
- 11
api/http.js View File

@ -29,17 +29,7 @@ function http(uri, data, callback, method = 'GET', showLoading, title) {
uni.removeStorageSync('userInfo');
console.error('登录过期');
uni.navigateTo({
url: '/pages/login/login'
})
}
//后端接口token出现问题
if(res.data && res.data.code == 500 && res.data.message == '操作失败,token非法无效!'){
uni.removeStorageSync('token');
uni.removeStorageSync('userInfo');
console.error('登录过期');
uni.navigateTo({
url: '/pages/login/login'
url: '/pages/login/studentLogin'
})
}


+ 3
- 3
components/PrivacyAgreementPoup/PrivacyAgreementPoup.vue View File

@ -6,7 +6,7 @@
</view>
<view class="content_pri">
<view class="text">
欢迎来到校园报!我们根据最新的法律法规监管政策要求更新了用户协议隐私政策,请您认真阅读
欢迎来到艺易!我们根据最新的法律法规监管政策要求更新了用户协议隐私政策,请您认真阅读
</view>
</view>
<view class="config">
@ -14,10 +14,10 @@
<view class="content">
<view style="display: flex;">
<uv-checkbox size="30rpx" :name="1"></uv-checkbox>
同意<text @tap="handleOpenPrivacyContract">校园报修隐私政策</text>
同意<text @tap="handleOpenPrivacyContract">艺易修隐私政策</text>
</view>
<view class="">
以及<text @tap="handleOpenPrivacyContract">用户协议</text>
以及<text @tap="handleOpenPrivacyContract">艺易修用户协议</text>
</view>
</view>
</uv-checkbox-group>


+ 3
- 3
config.js View File

@ -7,14 +7,14 @@ import uvUI from '@/uni_modules/uv-ui-tools'
Vue.use(uvUI)
// 当前环境
const type = 'prod'
const type = 'dev'
// 环境配置
const config = {
dev : {
// baseUrl : 'https://school-admin.xzaiyp.top',
baseUrl : 'http://h5.xzaiyp.top/school-api',
// baseUrl : 'http://h5.xzaiyp.top/school-api',
baseUrl : 'https://school-admin.xzaiyp.top/school-api',
},
prod : {
baseUrl : 'https://school-admin.xzaiyp.top/school-api',


+ 11
- 6
pages.json View File

@ -5,9 +5,15 @@
"navigationBarTitleText": "申请报修"
}
}, {
"path": "pages/login/login",
"path": "pages/login/repairLogin",
"style": {
"navigationBarTitleText": "登录",
"navigationBarTitleText": "维修员登录",
"enablePullDownRefresh": false
}
}, {
"path": "pages/login/studentLogin",
"style": {
"navigationBarTitleText": "学生登录",
"enablePullDownRefresh": false
}
}, {
@ -42,10 +48,9 @@
}
},
{
"path" : "pages/order/order",
"style" :
{
"navigationBarTitleText" : ""
"path": "pages/order/order",
"style": {
"navigationBarTitleText": "我的维修单"
}
}
],


+ 16
- 8
pages/center/center.vue View File

@ -4,22 +4,22 @@
<view class="content">
<view class="topBox">
<view class="users">
<view class="u-top" v-if="userInfo.account">
<view class="u-top" v-if="userInfo.id">
<image class="img"
src="https://tennis-oss.xzaiyp.top/2024-09-03/05f052bb-2c66-4886-8ad0-09703269690d.jpg"
:src="userInfo.headImage || '/static/center/logo.png'"
mode="widthFix"></image>
<view class="tit">
{{ userInfo.name }}
{{ userInfo.name || '文韵飞扬' }}
</view>
</view>
<view class="u-top" v-else>
<!-- <view class="u-top" v-else>
<image class="img"
src="https://tennis-oss.xzaiyp.top/2024-09-03/05f052bb-2c66-4886-8ad0-09703269690d.jpg"
mode="widthFix"></image>
<view class="tit">
登录 / 注册
</view>
</view>
</view> -->
</view>
</view>
@ -27,7 +27,7 @@
<uni-list>
<uni-list-item v-if="userInfo.isDai == '0'" :show-extra-icon="true" :extra-icon="extraIcon1"
showArrow title="我的报修" clickable @click="clickList" />
<uni-list-item v-if="userInfo.isDai == '1'" :show-extra-icon="true" :extra-icon="extraIcon2" showArrow title="指派给我的维修单" clickable
<uni-list-item v-if="userInfo.isDai == '1'" :show-extra-icon="true" :extra-icon="extraIcon2" showArrow title="我的维修单" clickable
@click="toOrder" />
<uni-list-item :show-extra-icon="true" :extra-icon="extraIcon3" showArrow title="退出登录" clickable
@click="logout" />
@ -61,7 +61,7 @@
extraIcon2: {
color: '#666666',
size: '22',
type: 'chatbubble-filled'
type: 'info'
},
extraIcon3: {
color: '#666666',
@ -87,7 +87,7 @@
//退
logout() {
uni.reLaunch({
url: '/pages/login/login'
url: '/pages/login/studentLogin'
})
uni.removeStorageSync('token');
uni.removeStorageSync('userInfo');
@ -200,4 +200,12 @@
box-sizing: border-box;
border-radius: 20rpx;
}
.lists {
width: calc(100% - 40rpx);
box-sizing: border-box;
margin: 20rpx auto;
border-radius: 20rpx;
overflow: hidden;
}
</style>

+ 2
- 2
pages/finish/finish.vue View File

@ -117,8 +117,8 @@
methods: {
//
leftClick() {
uni.switchTab({
url: '/pages/center/center'
uni.reLaunch({
url: '/pages/order/order'
})
},


pages/login/login.vue → pages/login/repairLogin.vue View File

@ -1,8 +1,8 @@
<template>
<view class="content">
<view class="topBox">
<h3 class="title">登录</h3>
<h3>欢迎使用xx报</h3>
<h3 class="title">维修员登录</h3>
<h3>欢迎使用艺易</h3>
</view>
<view class="inputBox">
<view class="ipt">
@ -13,7 +13,9 @@
<h4>密码</h4>
<input v-model="form.password" type="password" value="" placeholder="请输入密码" />
</view>
<button @click="login" class="loginBtn">登录</button>
<view @click="login" class="loginBtn">登录</view>
<view @click="toStudentLogin" class="loginBtn b2">学生登录</view>
</view>
</view>
</template>
@ -33,31 +35,21 @@
//
login() {
if(this.form.account.trim() == ''){
return uni.showToast({
icon: 'none',
title: '请填写手机号'
})
return uni.showToast({ icon: 'none' , title: '请填写手机号' })
}
if(this.form.password.trim() == ''){
return uni.showToast({
icon: 'none',
title: '请填写密码'
})
return uni.showToast({ icon: 'none' , title: '请填写密码' })
}
this.$api('loginLogin', this.form, res => {
if (res.code == 200) {
uni.setStorageSync('token', res.result.token);
uni.setStorageSync('userInfo', JSON.stringify(res.result.userInfo));
this.$store.commit('setUserInfo',res.result.userInfo)
uni.switchTab({
url: '/pages/repair/repair'
})
}
this.$store.commit('login' , this.form )
},
//
toStudentLogin(){
uni.navigateTo({
url: '/pages/login/studentLogin'
})
}
}
}
</script>
@ -116,23 +108,20 @@
}
.loginBtn {
margin-top: 20rpx;
line-height: 85rpx;
text-align: center;
background: #3c9cff;
border-radius: 40rpx;
width: 100%;
height: 100rpx;
background-color: #00aaff;
color: #fff;
margin-top: 50rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 20rpx 0;
border-radius: 20rpx;
}
.registerBtn {
margin-top: 20rpx;
line-height: 85rpx;
text-align: center;
border-radius: 40rpx;
color: #ccc;
margin-top: 50rpx;
border: none;
.b2{
background-color: #87D0F6;
color: #fff;
}
.tipbox {

pages/login/login1.vue → pages/login/studentLogin.vue View File

@ -1,25 +1,19 @@
<template>
<view class="login">
<view class="logo">
<!-- <image src="/static/image/login/logo.png" mode=""></image> -->
<image src="../../static/studentLogin/logo.png" mode="widthFix"></image>
</view>
<view class="title">
欢迎使用xx报
欢迎使用艺易
</view>
<view class="btn mt">
<view class="icon">
<!-- <image src="/static/image/login/wx.png" mode=""></image> -->
</view>
<view class=""
@click="wxLogin">
<view @click="wxLogin" class="btn mt">
<view>
微信授权登录
</view>
</view>
<!-- <view class="btn b2">
使用短信验证登录
</view> -->
<view @click="toRepairLogin" class="btn b2">
维修员登录
</view>
<view class="config">
<uv-checkbox-group
@ -32,6 +26,7 @@
<uv-checkbox
size="30rpx"
:name="1"
v-model="agreement"
></uv-checkbox>
阅读并同意我们的<text @click="openConfigDetail('privacyAgreement')">服务协议与隐私条款</text>
</view>
@ -53,7 +48,8 @@
name : 'Login',
data() {
return {
checkboxValue : []
checkboxValue : [],
agreement : true
}
},
methods: {
@ -65,6 +61,13 @@
//
openConfigDetail(key){
this.$refs.popup.open(key)
},
//
toRepairLogin(){
uni.navigateTo({
url: '/pages/login/repairLogin'
})
}
}
@ -80,14 +83,12 @@
flex-direction: column;
position: relative;
.logo{
height: 80rpx;
width: 80rpx;
padding: 40rpx 30rpx;
background-color: #ddd;
border-radius: 70rpx;
height: 150rpx;
width: 150rpx;
border-radius: 50%;
image{
width: 80rpx;
height: 80rpx;
width: 150rpx;
height: 150rpx;
}
margin-bottom: 20rpx;
}
@ -116,17 +117,10 @@
align-items: center;
margin: 20rpx 0;
border-radius: 20rpx;
.icon{
margin-right: 10rpx;
image{
width: 40rpx;
height: 35rpx;
}
}
}
.b2{
background-color: #3c69f122;
color: #3c69f1;
background-color: #87D0F6;
color: #fff;
}
.mt{
margin-top: 200rpx;

+ 15
- 4
pages/login/wxUserInfo.vue View File

@ -1,7 +1,7 @@
<template>
<view class="login">
<view class="title">
帧视界
艺易修
</view>
<view class="title">
申请获取你的头像昵称
@ -16,7 +16,7 @@
<image :src="userInfo.headImage" v-if="userInfo.headImage" style="width: 70rpx;height: 70rpx;border-radius: 50%;"
mode=""></image>
<image src="@/static/login/6.png" v-else style="width: 70rpx;height: 70rpx;border-radius: 50%;" mode="widthFix"></image>
<!-- <image src="@/static/login/logo.png" v-else style="width: 70rpx;height: 70rpx;border-radius: 50%;" mode="widthFix"></image> -->
</view>
</view>
</button>
@ -40,8 +40,9 @@
data() {
return {
userInfo: {
headImage: '',
headImage: '/static/login/logo.png', //
nickName: '',
name : ''
}
};
},
@ -66,6 +67,7 @@
.exec((res) => {
const nickName = res?.[0]?.value
self.userInfo.nickName = nickName
self.userInfo.name = nickName
if (self.$utils.verificationAll(self.userInfo, {
headImage: '请选择头像',
@ -76,14 +78,23 @@
self.$api('updateInfo', self.userInfo, res => {
if (res.code == 200) {
this.replushUserInfo()
uni.switchTab({
url: '/pages/repair/repair'
})
}
})
})
},
//vuex
replushUserInfo(){
this.$api('getUserInfo',res => {
if (res.code == 200) {
this.$store.commit('setUserInfo',res.result)
}
})
}
}
}
</script>


+ 25
- 5
pages/order/order.vue View File

@ -1,10 +1,10 @@
<template>
<view class="repairList reserveSpace">
<view :class="{ bg : repairList.length > 0 }" class="repairList reserveSpace">
<view class="tab">
<uv-tabs :list="list" lineWidth="60" lineHeight="10" @click="selectTag"></uv-tabs>
</view>
<view class="repairList-main">
<view v-if="repairList.length > 0" class="repairList-main">
<view v-for="item in repairList" :key="item.id" class="repairItem">
<view class="repairMain">
<!-- <view class="userName">用户名</view> -->
@ -27,6 +27,9 @@
<image @click="viewImageAsList(index,item.image)" :src="image" mode="widthFix"></image>
</view>
</view>
<view style="display: inline-block;margin: 15x 0rpx;padding-left: 10rpx;" class="repair-projuct">
<uv-tags :text="item.project" plain size="mini" type="primary"></uv-tags>
</view>
<view class="btns">
<view v-if="userInfo.isDai == '1' && !item.cleckState" @click="toReject(item.id)" class="btn">驳回
</view>
@ -36,6 +39,9 @@
</view>
</view>
</view>
<uv-empty v-else mode="data" :width="500" :textSize="30" text="暂无维修单" icon="/static/empty/empty.png"></uv-empty>
</view>
</template>
@ -59,7 +65,10 @@
pageSize: 3,
state: 0
},
total: 0
total: 0,
backPressOptions : {
from: 'backbutton'
}
}
},
onShow() {
@ -72,6 +81,15 @@
this.getRepairList()
}
},
onBackPress(e) {
uni.switchTab({
url: "/pages/center/center"
})
// returntrue
console.log("aaaaaaa");
this.backPressOptions = e
return true;
},
methods: {
//
toReject(id) {
@ -135,7 +153,9 @@
</script>
<style scoped>
.repairList {
.repairList {}
.bg {
background: #f8f8f8;
}
@ -193,7 +213,7 @@
.image-item {
width: 24%;
margin-left: 1%;
height: 180rpx;
height: 170rpx;
overflow: hidden;
display: flex;
align-items: center;


+ 79
- 36
pages/repair/repair.vue View File

@ -9,19 +9,18 @@
<uv-icon name="arrow-right"></uv-icon>
</template>
</uv-form-item>
<uv-form-item label="室号" prop="room" borderBottom @click="roomPickerOpen">
<uv-input placeholder="请选择室号" v-model="form.room" border="none" readonly :fontSize="30"></uv-input>
<uv-form-item label="维修项目" prop="project" borderBottom @click="projectPickerOpen">
<uv-input v-model="form.project" placeholder="请填写维修物品的名称" readonly :fontSize="30" border="none"></uv-input>
<template v-slot:right>
<uv-icon name="arrow-right"></uv-icon>
</template>
</uv-form-item>
<uv-form-item label="维修物品" prop="project" borderBottom>
<uv-input v-model="form.project" placeholder="请填写维修物品的名称" :fontSize="30" border="none"></uv-input>
<uv-form-item label="室号" prop="room" borderBottom>
<uv-input placeholder="请选择室号" v-model="form.room" border="none" :fontSize="30"></uv-input>
</uv-form-item>
<uv-form-item label="你的姓名" prop="name" borderBottom>
<uv-input v-model="form.name" placeholder="请填写姓名" :fontSize="30" border="none"></uv-input>
</uv-form-item>
@ -56,12 +55,16 @@
@confirm="floorConfirm"></uv-picker>
<!-- 报修地址选择(室号) -->
<uv-picker ref="roomPicker" :columns="roomNumberList" :itemHeight="100" :round="20" keyName="name" title="选择室号"
@confirm="roomConfirm"></uv-picker>
<!-- <uv-picker ref="roomPicker" :columns="roomNumberList" :itemHeight="100" :round="20" keyName="name" title="选择室号"
@confirm="roomConfirm"></uv-picker> -->
<!-- 维修项目选择 -->
<uv-picker ref="projectPicker" :columns="projectList" :itemHeight="100" :round="20" keyName="name" title="选择维修项目"
@confirm="projectConfirm"></uv-picker>
<!-- 图片操作菜单 -->
<uv-action-sheet ref="actionSheet" :actions="list" :round="20" safeAreaInsetBottom
@select="selectImageSheet"> </uv-action-sheet>
<uv-action-sheet ref="actionSheet" :actions="list" :round="20" safeAreaInsetBottom @select="selectImageSheet">
</uv-action-sheet>
<!-- 隐私政策 -->
<PrivacyAgreementPoup ref="showPrivacy"></PrivacyAgreementPoup>
@ -69,6 +72,9 @@
</template>
<script>
import {
mapState
} from 'vuex'
import PrivacyAgreementPoup from "@/components/PrivacyAgreementPoup/PrivacyAgreementPoup.vue";
export default {
name: 'Repair',
@ -148,7 +154,8 @@
],
currentIndex: undefined, //
floorList: [], //
roomNumberList: [], //
// roomNumberList: [], //
projectList : [], //
}
},
onShow() {
@ -160,9 +167,8 @@
this.$refs.showPrivacy.init(resolve)
})
}
if(this.floorList.length < 1){
this.getActorGoList()
}
if (this.floorList.length < 1) this.getActorGoList()
if(this.projectList.length < 1) this.getProjectList()
},
onReady() {
this.$refs.form.setRules(this.rules);
@ -186,7 +192,9 @@
//
selectImageSheet(imageSheet) {
let { id } = imageSheet
let {
id
} = imageSheet
if (id) {
this.deleteImageAsList()
} else {
@ -212,34 +220,55 @@
//
floorConfirm(floor) {
this.form.building = floor.value[0].name
this.getFloorList(floor.value[0].id)
//
// this.getFloorList(floor.value[0].id)
},
//
floorPickerOpen() {
if(this.floorList.length == 0){
return uni.showToast({ icon: 'none' , title: '暂无楼栋供用户选择' })
}
this.$refs.floorPicker.open();
},
//
roomConfirm(floor) {
this.form.room = floor.value[0].name
// //
// roomConfirm(floor) {
// this.form.room = floor.value[0].name
// },
// //
// roomPickerOpen() {
// if (!this.form.building) {
// return uni.showToast({
// icon: 'none',
// title: ''
// })
// }
// this.$refs.roomPicker.open();
// },
//
projectConfirm(project) {
this.form.project = project.value[0].name
},
//
roomPickerOpen() {
if(!this.form.building){
return uni.showToast({
icon : 'none',
title: '请先选择楼栋信息'
})
//
projectPickerOpen() {
if(this.projectList.length == 0){
return uni.showToast({ icon: 'none' , title: '暂无项目供用户选择' })
}
this.$refs.roomPicker.open();
this.$refs.projectPicker.open();
},
//
submitRepair() {
this.$refs.form.validate().then(res => {
let images = this.form.image.join()
if (this.userInfo && this.userInfo.isDai == '1') {
this.cleanfrom() //
return uni.showToast({ icon: 'none' , title: '维修员不能主动提交报修' })
}
this.$api('addSchoolOrder', {
...this.form,
image: images
@ -285,14 +314,28 @@
},
//
getFloorList(id) {
this.$api('getActorGoList',{id},res => {
this.roomNumberList = []
if(res.result.length > 0 && this.form.room) this.form.room = res.result[0].name
this.roomNumberList.push(res.result)
// getFloorList(id) {
// this.$api('getActorGoList', {
// id
// }, res => {
// this.roomNumberList = []
// if (res.result.length > 0 && this.form.room) this.form.room = res.result[0].name
// this.roomNumberList.push(res.result)
// })
// }
//
getProjectList() {
this.$api('getRepairList', res => {
this.getRepairList = []
this.projectList.push(res.result)
console.log(this.projectList);
})
}
}
},
computed: {
...mapState(['userInfo']),
},
}
</script>
@ -341,8 +384,8 @@
.image-item image {
width: 100%;
}
/deep/ .uv-safe-area-inset-bottom {
padding-bottom: 0 !important
padding-bottom: 0 !important
}
</style>

+ 13
- 12
pages/repairList/repairList.vue View File

@ -1,14 +1,13 @@
<!-- 报修列表(学生) -->
<template>
<view class="repairList reserveSpace">
<view :class="{ bg : repairList.length > 0 }" class="repairList reserveSpace">
<view class="tab">
<uv-tabs :list="list" lineWidth="60" lineHeight="10" @click="selectTag"></uv-tabs>
</view>
<view class="repairList-main">
<view v-if="repairList.length > 0" class="repairList-main">
<view v-for="item in repairList" :key="item.id" class="repairItem">
<view class="repairMain">
<!-- <view class="userName">用户名</view> -->
<view class="build">
<view>
<text style="margin-right: 10rpx;">{{ item.building }}</text>
@ -28,15 +27,15 @@
<image @click="viewImageAsList(index,item.image)" :src="image" mode="widthFix"></image>
</view>
</view>
<!-- <view class="btns">
<view v-if="userInfo.isDai == '1' && !item.cleckState" @click="toReject(item.id)" class="btn">驳回
</view>
<view v-if="userInfo.isDai == '1' && !item.cleckState" @click="toFinish(item.id)" class="btn">结单
</view>
</view> -->
<view style="display: inline-block;margin: 15x 0rpx;padding-left: 10rpx;" class="repair-projuct">
<uv-tags :text="item.project" plain size="mini" type="primary"></uv-tags>
</view>
</view>
</view>
</view>
<uv-empty v-else mode="data" :width="500" :textSize="30" text="暂无维修单" icon="/static/empty/empty.png"></uv-empty>
</view>
</template>
@ -105,7 +104,7 @@
//
getRepairList() {
this.$api('getSchoolOrderPage', this.queryParams, res => {
this.$api('getUserSchoolOrderPage', this.queryParams, res => {
if (res.code == 200) {
res.result.records.forEach(item => {
item.image ? item.image = item.image.split(',') : item.image = []
@ -136,7 +135,9 @@
</script>
<style scoped>
.repairList {
.repairList {}
.bg {
background: #f8f8f8;
}
@ -194,7 +195,7 @@
.image-item {
width: 24%;
margin-left: 1%;
height: 180rpx;
height: 170rpx;
overflow: hidden;
display: flex;
align-items: center;


BIN
static/center/logo.png View File

Before After
Width: 132  |  Height: 132  |  Size: 24 KiB

BIN
static/empty/empty.png View File

Before After
Width: 300  |  Height: 300  |  Size: 17 KiB

BIN
static/login/logo.png View File

Before After
Width: 132  |  Height: 132  |  Size: 24 KiB

BIN
static/logo.png View File

Before After
Width: 72  |  Height: 72  |  Size: 3.9 KiB

BIN
static/studentLogin/logo.png View File

Before After
Width: 132  |  Height: 132  |  Size: 24 KiB

+ 52
- 52
store/store.js View File

@ -9,76 +9,76 @@ import api from '@/api/api.js'
const store = new Vuex.Store({
state: {
configList: {}, //配置对象
userInfo : {},
userInfo: {},
},
getters: {
getConfig(state){
getConfig(state) {
return state.configList
}
},
mutations: {
// 初始化配置
initConfig(state) {
// let config = ['preferential', 'wx']
// config.forEach(k => {
// api('getConfig', {
// keyValue : k
// }, res => {
// if (res.code == 200) {
// state.configList[k] = res.result
// }
// })
// })
// let apiConfig = [ 'getPrivacyPolicy' , 'getUserAgreement' ] //需要访问不同接口才能得到的配置数据
// let key = ['privacyAgreement','userAgreement']
// apiConfig.forEach((item,index) => {
// api(item,res => {
// state.configList[key[index]] = res.result
// })
// })
//初始化用户信息(防止用户每次点击重新进入小程序用户信息都没有了)
if(uni.getStorageSync('token') && uni.getStorageSync('userInfo')){
if (uni.getStorageSync('token') && uni.getStorageSync('userInfo')) {
state.userInfo = JSON.parse(uni.getStorageSync('userInfo'))
}
let apiConfig = [ 'getPrivacyPolicy' , 'getUserAgreement' ] //需要访问不同接口才能得到的配置数据
let key = ['privacyAgreement','userAgreement']
apiConfig.forEach((item,index) => {
api(item,res => {
state.configList[key[index]] = res.result
})
})
},
login(state) {
uni.login({
success(res) {
if (res.errMsg != "login:ok") {
return
}
api('loginLogin', {
code: res.code
}, res => {
if (res.code != 200) {
login(state , form) {
if (!form) { //微信登录
uni.login({
success(res) {
if (res.errMsg != "login:ok") {
return
}
api('studentLogin', {
code: res.code
}, res => {
if (res.code != 200) {
return
}
uni.setStorageSync('token', res.result.token);
uni.setStorageSync('userInfo', JSON.stringify(res.result.userInfo));
state.userInfo = res.result.userInfo
if (!state.userInfo.nickName || !state.userInfo.headImage) {
uni.navigateTo({
url: '/pages/login/wxUserInfo'
})
} else {
uni.switchTab({
url: '/pages/repair/repair'
})
}
})
},
fail(err) {
console.error(err)
}
})
} else { //手机登录
api('repairLogin' , form , res => {
if (res.code == 200) {
uni.setStorageSync('token', res.result.token);
uni.setStorageSync('userInfo', JSON.stringify(res.result.userInfo));
state.userInfo = res.result.userInfo
uni.setStorageSync('token', res.result.token)
if (!state.userInfo.nickName || !state.userInfo.headImage) {
uni.navigateTo({
url: '/pages/login/wxUserInfo'
})
}else{
uni.switchTab({
url: '/pages/repair/repair'
})
}
})
},
fail(err) {
console.error(err)
}
})
uni.switchTab({
url: '/pages/repair/repair'
})
}
})
}
},
setUserInfo(state,userInfo) {
setUserInfo(state, userInfo) {
state.userInfo = userInfo
console.log(state.userInfo);
},
},
actions: {},


Loading…
Cancel
Save