集成师傅服务经销端
@ -0,0 +1,16 @@
|
||||
######################################################################
|
||||
# Build Tools
|
||||
|
||||
/unpackage/*
|
||||
/node_modules/*
|
||||
|
||||
######################################################################
|
||||
# Development Tools
|
||||
|
||||
/.idea/*
|
||||
/.vscode/*
|
||||
/.hbuilderx/*
|
||||
|
||||
package-lock.json
|
||||
yarn.lock
|
||||
|
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 238 KiB |
After Width: | Height: | Size: 139 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 201 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 126 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 173 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 128 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 248 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 131 KiB |
After Width: | Height: | Size: 62 KiB |
@ -0,0 +1,65 @@
|
||||
<!-- <template>
|
||||
<view class="content">
|
||||
<router-view></router-view>
|
||||
<view class="text-area">
|
||||
<text class="title">Hello 芋道</text>
|
||||
</view>
|
||||
</view>
|
||||
</template> -->
|
||||
<script>
|
||||
import config from './config'
|
||||
import store from '@/store'
|
||||
import {
|
||||
getAccessToken,
|
||||
getAccessTokensacacas
|
||||
} from '@/utils/auth'
|
||||
|
||||
export default {
|
||||
onLaunch: function () {
|
||||
this.initApp()
|
||||
},
|
||||
methods: {
|
||||
// 初始化应用
|
||||
initApp() {
|
||||
// 初始化应用配置
|
||||
this.initConfig()
|
||||
// 检查用户登录状态
|
||||
//#ifdef H5
|
||||
this.checkLogin()
|
||||
//#endif
|
||||
},
|
||||
initConfig() {
|
||||
this.globalData.config = config
|
||||
},
|
||||
checkLogin() {
|
||||
if (!getAccessToken()) {
|
||||
this.$tab.reLaunch('/pages/login')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import "uview-ui/index.scss";
|
||||
@import '@/static/scss/index.scss';
|
||||
</style>
|
||||
<style>
|
||||
.gradient-background {
|
||||
/* 设置渐变背景,从上到下,从浅蓝色到白色 */
|
||||
background: linear-gradient(to bottom, #0d74d2 0%, #FFFFFF 25%);
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
/* 如果需要模糊效果,可以添加 backdrop-filter */
|
||||
backdrop-filter: none;
|
||||
}
|
||||
|
||||
.gradient-backgroundTwo {
|
||||
/* 设置渐变背景,从上到下,从浅蓝色到白色 */
|
||||
background: linear-gradient(to bottom, #0d74d2 0%, #ececec 25%);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
/* 如果需要模糊效果,可以添加 backdrop-filter */
|
||||
backdrop-filter: none;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 芋道
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -0,0 +1,134 @@
|
||||
import request from '@/utils/request'
|
||||
const homeApi = {
|
||||
DeviceCustomer: () => { //累计收益
|
||||
return request({
|
||||
url: '/AppServerController/statisticMoneyDeviceCustomer',
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
myTicket: (parms) => {
|
||||
return request({ //我的工单
|
||||
url: `/AppServerController/myTicket?pageNo=${parms.pageNo}&pageSize=10&worderType=&worderStatus=${parms.worderStatus}&worderContent=${parms.worderContent || ''}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
myTicketsh: (parms) => {
|
||||
return request({ //师傅端我的工单
|
||||
url: `/AppServerController/myTicketsh?pageNo=${parms.pageNo}&pageSize=10&worderType=&worderStatus=${parms.worderStatus}&worderContent=${parms.worderContent || ''}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
myTicketStatistics: () => {
|
||||
return request({ //我的统计工单
|
||||
url: '/AppServerController/myTicketStatistics',
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
getUserPage: (params) => { //用户分页查询
|
||||
return request({
|
||||
url: '/AppServerController/getUserPage',
|
||||
'method': 'GET',
|
||||
params:params
|
||||
})
|
||||
},
|
||||
monthOrders: (params) => { //工单列表
|
||||
return request({
|
||||
url: '/AppServerController/monthOrders',
|
||||
'method': 'GET',
|
||||
params
|
||||
})
|
||||
},
|
||||
myTicketDay: (parms) => { //按日期查询我的工单统计
|
||||
return request({
|
||||
url: `/AppServerController/myTicketDayStatistics?day=${parms}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
appListMaster: (parms) => { //派单时查询师傅分页
|
||||
return request({
|
||||
url: `/AppServerController/appListMaster?pageNo=${parms.page}&pageSize=10&customerName=${parms.customerName}&customerPhone=${parms.customerPhone}&customerAreaId=${parms.customerAreaId}&worderId=${parms.worderId}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
appDistributeMaster: (data) => { //派单
|
||||
return request({
|
||||
url: `/AppServerController/appDistributeMaster`,
|
||||
'method': 'POST',
|
||||
data,
|
||||
})
|
||||
},
|
||||
reschedulingTime: (data) => { //改约时间
|
||||
return request({
|
||||
url: `/AppServerController/reschedulingTime`,
|
||||
'method': 'PUT',
|
||||
data,
|
||||
})
|
||||
},
|
||||
getDeviceMgmtTab: (parms) => { //获得设备管理分页
|
||||
return request({
|
||||
url: `/AppServerController/getDeviceMgmtTab?pageNo=${parms.page}&pageSize=10&id=${parms.id}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
getUserProduct: (parms) => { //设备详情
|
||||
return request({
|
||||
url: `/userClient2/getUserProduct?id=${parms}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
getFilterDetailsByDeviceId: (parms) => { //滤芯详情
|
||||
return request({
|
||||
url: `/userClient2/getFilterDetailsByDeviceId?deviceId=${parms}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
restFilterS: (parms) => { //滤芯重置
|
||||
return request({
|
||||
url: `/tdproduct/td-product/restFilterS?filterId=${parms[0]}&deviceId=${parms[1]}&filterRestFlow=${parms[2]}&filterMaxFlow=${parms[3]}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
create: (data) => { //设备充值
|
||||
return request({
|
||||
url: `/dproductrecharge/D-product-recharge/create`,
|
||||
'method': 'POST',
|
||||
data,
|
||||
})
|
||||
},
|
||||
unbindTheDevice: (data) => { //解绑设备
|
||||
return request({
|
||||
url: `/AppServerController/unbindTheDevice?id=${data}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
pushUserOrder: (params) => { //设备报修
|
||||
return request({
|
||||
url: `/userClient2/pushUserOrder`,
|
||||
'method': 'GET',
|
||||
params:params,
|
||||
})
|
||||
},
|
||||
notice: (dada) => { //公告列表
|
||||
return request({
|
||||
url: `/AppServerController/getNoticePage?pageNo=${dada}&pageSize=10`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
getNotice: (dada) => { //公告详情
|
||||
return request({
|
||||
url: `/AppServerController/getNotice?id=${dada}`,
|
||||
'method': 'GET',
|
||||
})
|
||||
},
|
||||
|
||||
// 师傅管理
|
||||
getMasterList: (data) => {
|
||||
return request({
|
||||
url: `/system/user/masterManage`,
|
||||
method: 'get',
|
||||
data,
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
export default homeApi
|
@ -0,0 +1,34 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 登录方法
|
||||
export function login(username, password, captchaVerification) {
|
||||
const data = {
|
||||
username,
|
||||
password,
|
||||
captchaVerification
|
||||
}
|
||||
return request({
|
||||
url: '/system/auth/logins',
|
||||
headers: {
|
||||
isToken: false
|
||||
},
|
||||
'method': 'POST',
|
||||
'data': data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用户详细信息
|
||||
export function getInfo() {
|
||||
return request({
|
||||
url: '/system/auth/get-permission-info',
|
||||
'method': 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
// 退出方法
|
||||
export function logout() {
|
||||
return request({
|
||||
url: '/system/auth/logout',
|
||||
'method': 'POST'
|
||||
})
|
||||
}
|
@ -0,0 +1,124 @@
|
||||
import request from '@/utils/request'
|
||||
import upload from '@/utils/upload'
|
||||
|
||||
const MasterApi = {
|
||||
// 获得工单
|
||||
getWorkOrderNum: () => {
|
||||
return request({
|
||||
url: '/AppMasterController/masterHomeStatistics',
|
||||
method: 'GET',
|
||||
})
|
||||
},
|
||||
getAnnouncements: () => {
|
||||
return request({
|
||||
url: '/AppMasterController/intervalOrder',
|
||||
method: 'GET',
|
||||
})
|
||||
},
|
||||
getMasterOrderList: (data) => {
|
||||
return request({
|
||||
url: '/AppMasterController/queryCoverageArea',
|
||||
method: 'GET',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
|
||||
// 查询字典数据
|
||||
// dictData
|
||||
//字典
|
||||
dictData: (params) => {
|
||||
return request({
|
||||
url: '/userClient2/getDictDataList',
|
||||
method: 'GET',
|
||||
params: params,
|
||||
})
|
||||
},
|
||||
// 工单详情
|
||||
getWorderById: (data) => {
|
||||
return request({
|
||||
url: '/userClient2/getWorderById',
|
||||
method: 'get',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
// 接单、退单
|
||||
updateOrder: (params) => {
|
||||
return request({
|
||||
url: '/AppMasterController/acceptRejectOrder',
|
||||
method: 'get',
|
||||
params: params,
|
||||
})
|
||||
},
|
||||
|
||||
// 完结工单上传
|
||||
uploadFile: (data) => {
|
||||
return upload({
|
||||
url: '/admin-api/infra/file/upload',
|
||||
method: 'post',
|
||||
filePath: data,
|
||||
})
|
||||
},
|
||||
|
||||
// 评价
|
||||
evaluateApi: (data) => {
|
||||
return request({
|
||||
url: '/userClient2/savefeedBack',
|
||||
method: 'get',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
// 收益明细
|
||||
getProfitList: (data) => {
|
||||
return request({
|
||||
url: '/AppUserBalanceController/getUserBalance',
|
||||
method: 'get',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
|
||||
// 收益分析
|
||||
getProfitAnalyseList: (data) => {
|
||||
return request({
|
||||
url: '/earningsAnalysisController/earningsAnalysiHome',
|
||||
method: 'get',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
// 修改密码
|
||||
updatePassword: (data) => {
|
||||
return request({
|
||||
url: '/userClient2/updatePassword',
|
||||
method: 'get',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
|
||||
// 我的总资产
|
||||
getMyInfo: (data) => {
|
||||
return request({
|
||||
url: '/earningsAnalysisController/myInfo',
|
||||
method: 'get',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
|
||||
// 提现记录
|
||||
getWithdrawList: (data) => {
|
||||
return request({
|
||||
url: '/duserbalancewithdraw/D-user-balance-withdraw/pageWithdrawSuccess',
|
||||
method: 'get',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
|
||||
// 提现/AppUserBalanceController/applyWithdraw
|
||||
withdrawDeposit: (data) => {
|
||||
return request({
|
||||
url: '/AppUserBalanceController/applyWithdraw',
|
||||
method: 'post',
|
||||
data: data,
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
export default MasterApi
|
@ -0,0 +1,42 @@
|
||||
import upload from '@/utils/upload'
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 用户密码重置
|
||||
export function updateUserPwd(oldPassword, newPassword) {
|
||||
const data = {
|
||||
oldPassword,
|
||||
newPassword
|
||||
}
|
||||
return request({
|
||||
url: '/system/user/profile/update-password',
|
||||
method: 'PUT',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询用户个人信息
|
||||
export function getUserProfile() {
|
||||
return request({
|
||||
url: '/system/user/profile/get',
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改用户个人信息
|
||||
export function updateUserProfile(data) {
|
||||
return request({
|
||||
url: '/system/user/profile/update',
|
||||
method: 'PUT',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户头像上传
|
||||
export function uploadAvatar(data) {
|
||||
return upload({
|
||||
url: '/system/user/profile/update-avatar',
|
||||
method: 'PUT',
|
||||
name: data.name,
|
||||
filePath: data.filePath
|
||||
})
|
||||
}
|
@ -0,0 +1,167 @@
|
||||
<template>
|
||||
<view class="uni-section">
|
||||
<view class="uni-section-header" @click="onClick">
|
||||
<view class="uni-section-header__decoration" v-if="type" :class="type" />
|
||||
<slot v-else name="decoration"></slot>
|
||||
|
||||
<view class="uni-section-header__content">
|
||||
<text :style="{'font-size':titleFontSize,'color':titleColor}" class="uni-section__content-title" :class="{'distraction':!subTitle}">{{ title }}</text>
|
||||
<text v-if="subTitle" :style="{'font-size':subTitleFontSize,'color':subTitleColor}" class="uni-section-header__content-sub">{{ subTitle }}</text>
|
||||
</view>
|
||||
|
||||
<view class="uni-section-header__slot-right">
|
||||
<slot name="right"></slot>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="uni-section-content" :style="{padding: _padding}">
|
||||
<slot />
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
/**
|
||||
* Section 标题栏
|
||||
* @description 标题栏
|
||||
* @property {String} type = [line|circle|square] 标题装饰类型
|
||||
* @value line 竖线
|
||||
* @value circle 圆形
|
||||
* @value square 正方形
|
||||
* @property {String} title 主标题
|
||||
* @property {String} titleFontSize 主标题字体大小
|
||||
* @property {String} titleColor 主标题字体颜色
|
||||
* @property {String} subTitle 副标题
|
||||
* @property {String} subTitleFontSize 副标题字体大小
|
||||
* @property {String} subTitleColor 副标题字体颜色
|
||||
* @property {String} padding 默认插槽 padding
|
||||
*/
|
||||
|
||||
export default {
|
||||
name: 'UniSection',
|
||||
emits:['click'],
|
||||
props: {
|
||||
type: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: ''
|
||||
},
|
||||
titleFontSize: {
|
||||
type: String,
|
||||
default: '14px'
|
||||
},
|
||||
titleColor:{
|
||||
type: String,
|
||||
default: '#333'
|
||||
},
|
||||
subTitle: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
subTitleFontSize: {
|
||||
type: String,
|
||||
default: '12px'
|
||||
},
|
||||
subTitleColor: {
|
||||
type: String,
|
||||
default: '#999'
|
||||
},
|
||||
padding: {
|
||||
type: [Boolean, String],
|
||||
default: false
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
_padding(){
|
||||
if(typeof this.padding === 'string'){
|
||||
return this.padding
|
||||
}
|
||||
|
||||
return this.padding?'10px':''
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
title(newVal) {
|
||||
if (uni.report && newVal !== '') {
|
||||
uni.report('title', newVal)
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onClick() {
|
||||
this.$emit('click')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" >
|
||||
$uni-primary: #2979ff !default;
|
||||
|
||||
.uni-section {
|
||||
background-color: #fff;
|
||||
.uni-section-header {
|
||||
position: relative;
|
||||
/* #ifndef APP-NVUE */
|
||||
display: flex;
|
||||
/* #endif */
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 12px 10px;
|
||||
font-weight: normal;
|
||||
|
||||
&__decoration{
|
||||
margin-right: 6px;
|
||||
background-color: $uni-primary;
|
||||
&.line {
|
||||
width: 4px;
|
||||
height: 12px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
&.circle {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-top-right-radius: 50px;
|
||||
border-top-left-radius: 50px;
|
||||
border-bottom-left-radius: 50px;
|
||||
border-bottom-right-radius: 50px;
|
||||
}
|
||||
|
||||
&.square {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: flex;
|
||||
/* #endif */
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
color: #333;
|
||||
|
||||
.distraction {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
&-sub {
|
||||
margin-top: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
&__slot-right{
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.uni-section-content{
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,14 @@
|
||||
import CryptoJS from 'crypto-js'
|
||||
/**
|
||||
* @word 要加密的内容
|
||||
* @keyWord String 服务器随机返回的关键字
|
||||
* */
|
||||
export function aesEncrypt(word, keyWord = "XwKsGlMcdPMEhR1B") {
|
||||
var key = CryptoJS.enc.Utf8.parse(keyWord);
|
||||
var srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
|
||||
mode: CryptoJS.mode.ECB,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return encrypted.toString();
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
import config from '@/config'
|
||||
const baseUrl = config.baseUrl
|
||||
export const myRequest = (option = {}) => {
|
||||
return new Promise((reslove, reject) => {
|
||||
uni.request({
|
||||
url: baseUrl + option.url,
|
||||
data: option.data,
|
||||
method: option.method || "GET",
|
||||
success: (result) => {
|
||||
reslove(result)
|
||||
},
|
||||
fail: (error) => {
|
||||
reject(error)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
// 应用全局配置
|
||||
module.exports = {
|
||||
// baseUrl: 'http://221.176.140.236:48080',
|
||||
baseUrl: 'http://192.168.10.64:48080',
|
||||
baseApi: '/admin-api',
|
||||
NewBaseApi: '/app-api',
|
||||
tenantId: 179,
|
||||
// 应用信息
|
||||
appInfo: {
|
||||
// 应用名称
|
||||
name: 'yudao-app',
|
||||
// 应用版本
|
||||
version: '1.0.0',
|
||||
// 应用logo
|
||||
logo: '/static/logo.png',
|
||||
// 官方网站
|
||||
site_url: 'https://iocoder.cn',
|
||||
// 政策协议
|
||||
agreements: [{
|
||||
title: '隐私政策',
|
||||
url: 'https://iocoder.cn',
|
||||
},
|
||||
{
|
||||
title: '用户服务协议',
|
||||
url: 'https://iocoder.cn',
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
import Vue from 'vue'
|
||||
import App from './App'
|
||||
import store from './store' // store
|
||||
import plugins from './plugins' // plugins
|
||||
import './permission' // permission
|
||||
import uView from 'uview-ui'
|
||||
import VueCompositionAPI from '@vue/composition-api'
|
||||
Vue.use(uView)
|
||||
|
||||
Vue.use(plugins)
|
||||
|
||||
Vue.config.productionTip = false
|
||||
Vue.prototype.$store = store
|
||||
Vue.use(VueCompositionAPI)
|
||||
|
||||
App.mpType = 'app'
|
||||
|
||||
const app = new Vue({
|
||||
...App,
|
||||
})
|
||||
|
||||
app.$mount()
|