Commit ce0f3334 authored by xhx's avatar xhx

接口调试

parent 7190c9d9
NODE_ENV="development"
VUE_APP_URL="http://"
\ No newline at end of file
NODE_ENV="production"
VUE_APP_URL="http://"
\ No newline at end of file
NODE_ENV = 'test'
// VUE_APP_URL = 'http://47.114.159.142:9058/'
\ No newline at end of file
...@@ -22,3 +22,7 @@ yarn lint ...@@ -22,3 +22,7 @@ yarn lint
### Customize configuration ### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/). See [Configuration Reference](https://cli.vuejs.org/config/).
### 接口文档
[文档链接](http://172.16.100.59:8090/q/swagger-ui?urls.primaryName=pool.v1.EntrustPool#/)
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vue-cli-service serve", "dev": "vue-cli-service serve",
"build:test": "vue-cli-service build --mode development", "build:test": "vue-cli-service build --mode test",
"build": "vue-cli-service build", "build": "vue-cli-service build",
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint"
}, },
......
...@@ -4,6 +4,14 @@ ...@@ -4,6 +4,14 @@
</div> </div>
</template> </template>
<script lang="ts">
import Vue from 'vue'
import { getStorage } from './utils/storage'
export default Vue.extend({
})
</script>
<style lang="scss"> <style lang="scss">
* { * {
margin: 0; margin: 0;
......
...@@ -18,11 +18,17 @@ ...@@ -18,11 +18,17 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import { removeStorage } from '@/utils/storage' import { removeStorage } from '@/utils/storage'
import { logout } from '@/service/request'
export default Vue.extend({ export default Vue.extend({
methods: { methods: {
logout() { logout() {
// logout().then(res => {
// console.log(res)
// })
this.$router.push('/login') this.$router.push('/login')
removeStorage('user') // removeStorage('user')
removeStorage('authToken')
removeStorage('type')
} }
} }
}) })
...@@ -32,12 +38,12 @@ export default Vue.extend({ ...@@ -32,12 +38,12 @@ export default Vue.extend({
.header { .header {
width: 100%; width: 100%;
height: var(--headerHeight); height: var(--headerHeight);
background: var(--headerBgColor);
.header-bar { .header-bar {
min-width: 1200px; min-width: 1200px;
height: 100%; height: 100%;
margin: auto; margin: auto;
padding: 0 35px; padding: 0 35px;
background: var(--headerBgColor);
color: #fff; color: #fff;
display: flex; display: flex;
align-items: center; align-items: center;
......
...@@ -42,12 +42,18 @@ ...@@ -42,12 +42,18 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import menu from '@/utils/menu' import menu from '@/utils/menu'
import { getStorage } from '@/utils/storage'
export default Vue.extend({ export default Vue.extend({
data() { data() {
return { return {
menu: menu.admin, menu: [] as any,
defaultActive: '' defaultActive: '',
type: 1
} }
},
created() {
this.type = +eval(getStorage('type') as any)
this.menu = this.type === 2 ? menu.admin : menu.groupLeader
} }
}) })
</script> </script>
......
...@@ -32,8 +32,12 @@ export default Vue.extend({ ...@@ -32,8 +32,12 @@ export default Vue.extend({
display: flex; display: flex;
.content-r { .content-r {
width: calc(100% - 200px); width: calc(100% - 200px);
height: calc(100vh - var(--headerHeight));
padding: 20px 40px; padding: 20px 40px;
overflow-x: hidden;
font-size: 14px; font-size: 14px;
display: flex;
flex-direction: column;
} }
} }
</style> </style>
\ No newline at end of file
...@@ -7,7 +7,7 @@ const routes: Array<RouteConfig> = [ ...@@ -7,7 +7,7 @@ const routes: Array<RouteConfig> = [
{ {
path: '/', path: '/',
name: 'App', name: 'App',
redirect:'/home', redirect:'/login',
component: () => import(/* webpackChunkName: "about" */ '../layout/index.vue'), component: () => import(/* webpackChunkName: "about" */ '../layout/index.vue'),
children: [ children: [
{ {
...@@ -48,10 +48,10 @@ const routes: Array<RouteConfig> = [ ...@@ -48,10 +48,10 @@ const routes: Array<RouteConfig> = [
name: '404', name: '404',
component: () => import('@/views/404.vue') component: () => import('@/views/404.vue')
}, },
{ // {
path: '*', // path: '*',
redirect: '/404' // redirect: '/404'
} // }
] ]
const router = new VueRouter({ const router = new VueRouter({
......
import axios from 'axios' import axios from 'axios'
import { Message, Loading } from 'element-ui' import { Message, Loading } from 'element-ui'
import { ElLoadingComponent } from 'element-ui/types/loading' import { ElLoadingComponent } from 'element-ui/types/loading'
import { getStorage } from '@/utils/storage' import { getStorage, saveStorage } from '@/utils/storage'
import router from '@/router' import router from '@/router'
console.log(router)
let loading: ElLoadingComponent let loading: ElLoadingComponent
...@@ -36,47 +35,52 @@ export function tryHideFullScreenLoading() { ...@@ -36,47 +35,52 @@ export function tryHideFullScreenLoading() {
} }
const service = axios.create({ const service = axios.create({
baseURL: process.env.VUE_APP_URL, baseURL: '/api',
timeout: 15000 timeout: 15000
}) })
service.interceptors.request.use(function (config) { service.interceptors.request.use(function (config) {
// do something before request is sent // do something before request is sent
if (getStorage('token')) { if (getStorage('authToken') && config.url?.indexOf('/login') === -1) {
config.headers['token'] = getStorage('token') const str = getStorage('authToken')
config.headers['Auth-Token'] = str?.slice(1, str.length - 1)
} }
showFullScreenLoading() // showFullScreenLoading()
return config; return config;
}, function (error) { }, function (error) {
tryHideFullScreenLoading() // tryHideFullScreenLoading()
return Promise.reject(error); return Promise.reject(error);
}); });
// Add a response interceptor // Add a response interceptor
service.interceptors.response.use( service.interceptors.response.use(
response => { response => {
const authToken = response.headers['auth-token']
if (authToken) {
saveStorage('authToken', authToken)
}
const res = response.data const res = response.data
// if the custom code is not 200, it is judged as an error. // if the custom code is not 200, it is judged as an error.
if (res.code !== 200) { // tryHideFullScreenLoading()
Message({ return res
message: res.msg || 'Error',
type: 'error',
duration: 3 * 1000
})
tryHideFullScreenLoading()
return Promise.reject(new Error(res.msg || 'Error'))
} else {
tryHideFullScreenLoading()
return res
}
}, error => { }, error => {
// Do something with response error // Do something with response error
Message({ // console.log(error.response)
message: error.msg || '网络异常', if (error.response.data?.reason === 'TOKEN') {
type: 'error', router.push('/login')
duration: 3 * 1000 Message({
}) message: '登录已过期',
tryHideFullScreenLoading() type: 'error',
duration: 3 * 1000
})
} else {
Message({
message: error.response.data.reason || '网络异常',
type: 'error',
duration: 3 * 1000
})
}
// tryHideFullScreenLoading()
return Promise.reject(error); return Promise.reject(error);
}) })
......
...@@ -10,7 +10,37 @@ interface poolInfo { ...@@ -10,7 +10,37 @@ interface poolInfo {
minTicket: number; minTicket: number;
deposit: string; deposit: string;
selfAddr: string; selfAddr: string;
days: string days: string;
creator?: string
}
/**
* 登录
* @param data
* @returns
*/
export const login = function(data: {name: string, password: string}) {
return service.post('/admin/login', data)
}
/**
* 登出
* @returns
*/
export const logout = function() {
return service.post('/admin/login-out')
}
/**
* 用户信息
* @returns
*/
export const info = function() {
return service.post('/admin/info', {})
}
export const getStatistic = function() {
return service.get('/admin/data')
} }
/** /**
...@@ -73,7 +103,7 @@ export const updatePool = function(data: {id: string}) { ...@@ -73,7 +103,7 @@ export const updatePool = function(data: {id: string}) {
* @returns * @returns
*/ */
export const setOnline = function(data: {id: string}) { export const setOnline = function(data: {id: string}) {
return service.post('/amin/set-online', data) return service.post('/admin/set-online', data)
} }
/** /**
...@@ -84,3 +114,12 @@ export const setOnline = function(data: {id: string}) { ...@@ -84,3 +114,12 @@ export const setOnline = function(data: {id: string}) {
export const getUserLists = function(data: {type?: number, addr?: string, page: number, pageSize: number}) { export const getUserLists = function(data: {type?: number, addr?: string, page: number, pageSize: number}) {
return service.get('/admin/user-list', {params: data}) return service.get('/admin/user-list', {params: data})
} }
/**
* 获取列表
* @param data
* @returns
*/
export const getAdminLists = function(data: {page: number, pageSize: number}) {
return service.get('/admin/admin-list', {params: data})
}
export const getDateTime = function(s: string) {
const str = s + '000'
const year = new Date(str).getFullYear()
const month = new Date(str).getMonth() >= 10 ? new Date(str).getMonth() : '0' + new Date(str).getMonth()
const day = new Date(str).getDate() >= 10 ? new Date(str).getDate() : '0' + new Date(str).getDate()
return year + '-' + month + '-' + day
}
\ No newline at end of file
...@@ -33,14 +33,35 @@ ...@@ -33,14 +33,35 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { Component, Vue } from 'vue-property-decorator'; // import { Component, Vue } from 'vue-property-decorator';
@Component({ // @Component({
components: { // components: {
// },
// })
// export default class Home extends Vue {}
import Vue from 'vue'
import { getStatistic } from '@/service/request'
export default Vue.extend({
data() {
return {
info: {}
}
},
methods: {
getInfo() {
// ...
// getStatistic().then(res => {
// this.info = res
// })
console.log(111)
}
}, },
created() {
this.getInfo()
}
}) })
export default class Home extends Vue {}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<el-input v-model="form.password" show-password></el-input> <el-input v-model="form.password" show-password></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-button class="w-full" type="primary" @click="login">登 录</el-button> <el-button class="w-full" type="primary" @keypress.enter="login" @click="login">登 录</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import { saveStorage } from '@/utils/storage' import { saveStorage } from '@/utils/storage'
import { info, login } from '@/service/request'
export default Vue.extend({ export default Vue.extend({
data() { data() {
return { return {
...@@ -41,8 +42,15 @@ export default Vue.extend({ ...@@ -41,8 +42,15 @@ export default Vue.extend({
// success // success
(this.$refs['form'] as any).validate((valid: any) => { (this.$refs['form'] as any).validate((valid: any) => {
if (valid) { if (valid) {
saveStorage('user', this.form) login(this.form).then((res: any) => {
this.$router.push('/home') if (res.data.isSucc) {
info().then((res: any) => {
// saveStorage('user', this.form)
saveStorage('type', res.data.type)
this.$router.push('/home')
})
}
})
} else { } else {
this.$message.info('请先填写登录信息') this.$message.info('请先填写登录信息')
} }
......
...@@ -8,19 +8,19 @@ ...@@ -8,19 +8,19 @@
border border
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="date" prop="name"
label="矿池名称"> label="矿池名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="date" prop="minerAddr"
label="矿池地址"> label="矿池地址">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="selfAddr"
label="持挖矿地址"> label="持挖矿地址">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="days"
label="矿池周期"> label="矿池周期">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -28,14 +28,14 @@ ...@@ -28,14 +28,14 @@
label="矿池到期时间"> label="矿池到期时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="desc"
label="矿池介绍"> label="矿池介绍">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
label="状态"> label="状态">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.status === 1 ? '在线' : '离线' }} {{ +scope.row.status > 1 ? '在线' : '离线' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -43,8 +43,9 @@ ...@@ -43,8 +43,9 @@
<template slot-scope="scope"> <template slot-scope="scope">
<!--admin专有--> <!--admin专有-->
<el-button @click="toTop(scope.row)" type="text" size="small">置顶</el-button> <el-button @click="toTop(scope.row)" type="text" size="small">置顶</el-button>
<el-button @click="statusClick(scope.row)" type="text" size="small">{{ scope.row.status === 1 ? '下线' : '上线' }}</el-button> <el-button v-if="+scope.row.status !== 2" @click="statusClick(scope.row)" type="text" size="small">{{ '上线' }}</el-button>
<el-button @click="editClick(scope.row)" type="text" size="small">编辑</el-button> <!-- <el-button @click="statusClick(scope.row)" type="text" size="small">{{ scope.row.status === 1 ? '下线' : '上线' }}</el-button> -->
<!-- <el-button @click="editClick(scope.row)" type="text" size="small">编辑</el-button> -->
<el-button @click="delClick(scope.row)" type="text" size="small">删除</el-button> <el-button @click="delClick(scope.row)" type="text" size="small">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -56,20 +57,35 @@ ...@@ -56,20 +57,35 @@
<el-form-item label="矿池名称" prop="name"> <el-form-item label="矿池名称" prop="name">
<el-input v-model="form.name" maxlength="20" :disabled="formType === 'edit'"></el-input> <el-input v-model="form.name" maxlength="20" :disabled="formType === 'edit'"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="矿池地址" prop="address"> <el-form-item label="矿池型号" prop="friendlyName">
<el-input v-model="form.address" :disabled="formType === 'edit'"></el-input> <el-input v-model="form.friendlyName" maxlength="20" :disabled="formType === 'edit'"></el-input>
</el-form-item>
<el-form-item label="矿池地址" prop="minerAddr">
<el-input v-model="form.minerAddr" :disabled="formType === 'edit'"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="支持挖矿地址" prop="address1"> <el-form-item label="优点">
<el-input v-model="form.address1" :disabled="formType === 'edit'"></el-input> <el-input v-model="form.advantage" :disabled="formType === 'edit'"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="矿池周期" prop="cycle"> <el-form-item label="必选理由">
<el-select class="w-full" v-model="form.cycle" placeholder="请选择矿池周期" :disabled="formType === 'edit'"> <el-input v-model="form.reason" :disabled="formType === 'edit'"></el-input>
<el-option label="区域一" value="shanghai"></el-option> </el-form-item>
<el-option label="区域二" value="beijing"></el-option> <el-form-item label="最低挖矿票数">
<el-input v-model="form.minTicket" :min="10" :disabled="formType === 'edit'"></el-input>
</el-form-item>
<el-form-item label="定金" prop="deposit">
<el-input v-model="form.deposit" :disabled="formType === 'edit'"></el-input>
</el-form-item>
<el-form-item label="支持挖矿地址" prop="selfAddr">
<el-input v-model="form.selfAddr" :disabled="formType === 'edit'"></el-input>
</el-form-item>
<el-form-item label="矿池周期" prop="days">
<el-select class="w-full" v-model="form.days" placeholder="请选择矿池周期" :disabled="formType === 'edit'">
<el-option label="300天" value="300"></el-option>
<!-- <el-option label="区域二" value="beijing"></el-option> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="矿池介绍" prop="intro"> <el-form-item label="矿池介绍" prop="desc">
<el-input v-model="form.intro" type="textarea" row="3"></el-input> <el-input v-model="form.desc" type="textarea" row="3"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -94,39 +110,47 @@ ...@@ -94,39 +110,47 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import Pagination from '@/components/Panigation.vue' import Pagination from '@/components/Panigation.vue'
import { createPool, getPoolList, removePool } from '@/service/request' import { createPool, getPoolList, removePool, setOnline } from '@/service/request'
import { getStorage } from '@/utils/storage'
export default Vue.extend({ export default Vue.extend({
components: { components: {
Pagination Pagination
}, },
data() { data() {
return { return {
list: [ list: [] as any,
{
name: 1
}
] as any,
id: '', id: '',
total: 40, total: 40,
dialogVisible: false, dialogVisible: false,
form: { form: {
name: '', name: '',
address: '', minerAddr: '',
address1: '', friendlyName: '',
cycle: '', selfAddr: '',
intro: '' days: '',
desc: '',
advantage: '',
reason: '',
minTicket: 10,
deposit: ''
}, },
rule: { rule: {
name: [ name: [
{ required: true, message: '请输入矿池名称', trigger: 'blur' } { required: true, message: '请输入矿池名称', trigger: 'blur' }
], ],
address: [ friendlyName: [
{ required: true, message: '请输入矿池型号', trigger: 'blur' }
],
minerAddr: [
{ required: true, message: '请输入矿池地址', trigger: 'blur' } { required: true, message: '请输入矿池地址', trigger: 'blur' }
], ],
address1: [ selfAddr: [
{ required: true, message: '请输入支持挖矿地址', trigger: 'blur' } { required: true, message: '请输入自持挖矿地址', trigger: 'blur' }
],
deposit: [
{ required: true, message: '请输入定金', trigger: 'blur' }
], ],
cycle: [ days: [
{ required: true, message: '请输入矿池周期', trigger: 'change' } { required: true, message: '请输入矿池周期', trigger: 'change' }
] ]
}, },
...@@ -142,19 +166,24 @@ export default Vue.extend({ ...@@ -142,19 +166,24 @@ export default Vue.extend({
getPoolList({ getPoolList({
page: this.page, page: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
limit: 0 limit: 10
}).then((res: any) => { }).then((res: any) => {
this.list = (res.data as any).list this.list = (res.data as any)?.list || []
this.total = res.count this.total = +res.data.count
}) })
}, },
initForm() { initForm() {
this.form = { this.form = {
name: '', name: '',
address: '', desc: '',
address1: '', minerAddr: '',
cycle: '', advantage: '',
intro: '' reason: '',
friendlyName: '',
minTicket: 10,
deposit: '',
selfAddr: '',
days: ''
} }
}, },
addItems() { addItems() {
...@@ -169,8 +198,14 @@ export default Vue.extend({ ...@@ -169,8 +198,14 @@ export default Vue.extend({
submitClick(formName: string) { submitClick(formName: string) {
(this.$refs[formName] as any).validate((valid: any) => { (this.$refs[formName] as any).validate((valid: any) => {
if (valid) { if (valid) {
this.getList() // (this.form as any).creator = JSON.parse(getStorage('user') as any).name
this.dialogVisible = false createPool(this.form).then(res => {
if (res.data.isSucc) {
this.getList()
this.dialogVisible = false
this.$message.success('添加成功')
}
})
} else { } else {
this.$message('请先完成表单') this.$message('请先完成表单')
} }
...@@ -184,9 +219,14 @@ export default Vue.extend({ ...@@ -184,9 +219,14 @@ export default Vue.extend({
toTop() { toTop() {
console.log('toTop') console.log('toTop')
}, },
statusClick() { statusClick(item: any) {
console.log(1) console.log(item)
this.getList() setOnline({id: item.id}).then(res => {
if (res.data.isSucc) {
this.$message.success('上线成功')
this.getList()
}
})
}, },
editClick(item: any) { editClick(item: any) {
this.dialogVisible = true this.dialogVisible = true
...@@ -197,17 +237,24 @@ export default Vue.extend({ ...@@ -197,17 +237,24 @@ export default Vue.extend({
(this.$refs['form'] as any).resetFields(); (this.$refs['form'] as any).resetFields();
}) })
}, },
delClick() { delClick(item: {id: string}) {
this.id = item.id
this.delVisible = true this.delVisible = true
}, },
makeSureDel() { makeSureDel() {
removePool({id: this.id}).then((res: any) => { removePool({id: this.id}).then((res: any) => {
if (res.code === 200) { // if (res.code === 200) {
if (res.data.isSucc) {
this.delVisible = false
this.$message.success('删除成功') this.$message.success('删除成功')
this.getList this.page = 1
this.getList()
} }
}) })
} }
},
created() {
this.getList()
} }
}) })
</script> </script>
......
...@@ -10,20 +10,24 @@ ...@@ -10,20 +10,24 @@
<el-table-column <el-table-column
prop="date" prop="date"
label="管理员等级"> label="管理员等级">
<template slot-scope="scope">{{ scope.row.type == 1 ? '小队长' : '团队长' }}</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="date" width="240"
prop="addr"
label="小组长地址"> label="小组长地址">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="createAt"
label="添加日期"> label="添加日期">
<template slot-scope="scope">{{ getDateTime(scope.row.createAt) }}</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
label="最后登录时间"> label="最后登录时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="90"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="statusClick(scope.row)" type="text" size="small">{{ scope.row.status === 1 ? '停用' : '启用' }}</el-button> <el-button @click="statusClick(scope.row)" type="text" size="small">{{ scope.row.status === 1 ? '停用' : '启用' }}</el-button>
...@@ -66,7 +70,8 @@ ...@@ -66,7 +70,8 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import Pagination from '@/components/Panigation.vue' import Pagination from '@/components/Panigation.vue'
import { addAdmin } from '@/service/request' import { addAdmin, getAdminLists } from '@/service/request'
import { getDateTime } from '@/utils/utils'
export default Vue.extend({ export default Vue.extend({
components: { components: {
Pagination Pagination
...@@ -103,10 +108,20 @@ export default Vue.extend({ ...@@ -103,10 +108,20 @@ export default Vue.extend({
}, },
methods: { methods: {
getList() { getList() {
// getUserLists({ getAdminLists({
// page: this.page, page: this.page,
// pageSize: this.pageSize pageSize: this.pageSize
// }) }).then(res => {
this.list = res.data?.list || []
this.total = +res.data.count
})
},
getDateTime(s: string) {
const str = Number(s + '000')
const year = new Date(str).getFullYear()
const month = new Date(str).getMonth() + 1 >= 10 ? new Date(str).getMonth() : '0' + (new Date(str).getMonth() + 1)
const day = new Date(str).getDate() >= 10 ? new Date(str).getDate() : '0' + new Date(str).getDate()
return year + '-' + month + '-' + day
}, },
initForm() { initForm() {
this.form = { this.form = {
...@@ -130,7 +145,8 @@ export default Vue.extend({ ...@@ -130,7 +145,8 @@ export default Vue.extend({
(this.$refs[formName] as any).validate((valid: any) => { (this.$refs[formName] as any).validate((valid: any) => {
if (valid) { if (valid) {
addAdmin(this.form).then((res: any) => { addAdmin(this.form).then((res: any) => {
if (res.code === 200) { // if (res.code === 200) {
if (res.data?.isSucc) {
this.$message.success('添加成功') this.$message.success('添加成功')
this.getList() this.getList()
this.dialogVisible = false this.dialogVisible = false
...@@ -152,6 +168,9 @@ export default Vue.extend({ ...@@ -152,6 +168,9 @@ export default Vue.extend({
delClick() { delClick() {
this.delVisible = true this.delVisible = true
} }
},
created() {
this.getList()
} }
}) })
</script> </script>
......
...@@ -72,7 +72,8 @@ export default Vue.extend({ ...@@ -72,7 +72,8 @@ export default Vue.extend({
(this.$refs[formName] as any).validate((valid: any) => { (this.$refs[formName] as any).validate((valid: any) => {
if (valid) { if (valid) {
changePassword(this.ruleForm).then((res: any) => { changePassword(this.ruleForm).then((res: any) => {
if (res.code === 200) { // if (res.code === 200) {
if (res.data.isSucc) {
this.$message.success('修改成功'); this.$message.success('修改成功');
(this.$refs[formName] as any).resetFields(); (this.$refs[formName] as any).resetFields();
} }
......
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
<el-select v-model="search.type" placeholder="请选择" clearable> <el-select v-model="search.type" placeholder="请选择" clearable>
<el-option <el-option
label="用户" label="用户"
value="1"> :value="1">
</el-option> </el-option>
<el-option <el-option
label="推客" label="推客"
value="2"> :value="2">
</el-option> </el-option>
</el-select> </el-select>
<el-input class="search-input" v-model="search.text" placeholder="请输入内容" clearable></el-input> <el-input class="search-input" v-model="search.text" placeholder="请输入内容" clearable></el-input>
...@@ -29,15 +29,15 @@ ...@@ -29,15 +29,15 @@
border border
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="date" prop="addr"
label="当前地址"> label="当前地址">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="inviter"
label="推荐人地址"> label="推荐人地址">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="bindTime"
label="绑定时间"> label="绑定时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -52,7 +52,14 @@ ...@@ -52,7 +52,14 @@
title="提示" title="提示"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="50%"> width="50%">
<div class="item-lines">
<div>委托矿池名称</div>
<div>委托票数</div>
</div>
<div class="item-lines" v-for="item in items" :key="item">
<div>{{ item.minerAddr }}</div>
<div>{{ item.count }}</div>
</div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false">确 定</el-button> <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span> </span>
...@@ -64,6 +71,7 @@ ...@@ -64,6 +71,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import Pagination from '@/components/Panigation.vue' import Pagination from '@/components/Panigation.vue'
import { getUserLists } from '@/service/request'
export default Vue.extend({ export default Vue.extend({
components: { components: {
Pagination Pagination
...@@ -71,36 +79,44 @@ export default Vue.extend({ ...@@ -71,36 +79,44 @@ export default Vue.extend({
data() { data() {
return { return {
search: { search: {
type: '1', type: 1,
text: '' text: ''
}, },
list: [ list: [1] as any,
{
name: 1
}
] as any,
total: 40, total: 40,
dialogVisible: false, dialogVisible: false,
items: [] as any,
page: 1, page: 1,
pageSize: 10 pageSize: 10
} }
}, },
methods: { methods: {
getList() { getList() {
console.log(1) getUserLists({
page: this.page,
pageSize: this.pageSize,
type: this.search.type,
addr: this.search.text
}).then(res => {
this.list = res.data?.list || []
this.total = +res.data.count
})
}, },
filterList() { filterList() {
if (this.search.type === '1') { this.page = 1
console.log('type2', this.search.type) this.pageSize = 10
this.list = this.list.filter((item: { addrs: string }) => { this.getList()
item.addrs === this.search.text // if (this.search.type === 1) {
}) // console.log('type2', this.search.type)
} else { // this.list = this.list.filter((item: { addrs: string }) => {
console.log('type1', this.search.type) // item.addrs === this.search.text
this.list = this.list.filter((item: { addr: string }) => { // })
item.addr === this.search.text // } else {
}) // console.log('type1', this.search.type)
} // this.list = this.list.filter((item: { addr: string }) => {
// item.addr === this.search.text
// })
// }
}, },
handleClick() { handleClick() {
this.dialogVisible = true this.dialogVisible = true
...@@ -110,6 +126,9 @@ export default Vue.extend({ ...@@ -110,6 +126,9 @@ export default Vue.extend({
this.pageSize = v.pageSize this.pageSize = v.pageSize
this.getList() this.getList()
} }
},
created() {
this.getList()
} }
}) })
</script> </script>
...@@ -140,4 +159,12 @@ export default Vue.extend({ ...@@ -140,4 +159,12 @@ export default Vue.extend({
margin-right: 15px; margin-right: 15px;
} }
} }
.item-lines {
display: flex;
align-items: center;
justify-content: center;
div {
flex: 1;
}
}
</style> </style>
\ No newline at end of file
// const TerserPlugin = require('terser-webpack-plugin')
// const CompressionWebpackPlugin = require('compression-webpack-plugin')
module.exports = {
// ...other vue-cli plugin options...
css: {
loaderOptions: {
less: {
javascriptEnabled: true, // 加载LESS 需要把JS设置一下
}
}
},
devServer: {
proxy: { // 设置代理
'/api': {
target: 'http://172.16.100.59:8090/',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
},
}
},
// configureWebpack: config => {
// if (process.env.NODE_ENV === 'production') {
// config.optimization = {
// minimize: true,
// minimizer: [
// new TerserPlugin({
// exclude: /node_modules/,
// terserOptions: {
// compress: {
// drop_console: true,
// drop_debugger: false,
// pure_funcs: ['console.log'], // 移除console
// }
// }
// })
// ]
// },
// config.plugins = [
// new CompressionWebpackPlugin({
// filename: '[path][name].gz[query]',
// algorithm: 'gzip',
// test: /\.(js|css|json|ttf)(\?.*)?$/i,
// threshold: 0,
// minRatio: 0.8,
// })
// ]
// }
// }
// pwa: {
// name: 'My App',
// themeColor: '#4DBA87',
// msTileColor: '#000000',
// appleMobileWebAppCapable: 'yes',
// appleMobileWebAppStatusBarStyle: 'black',
// manifestOptions:{
// display: 'standalone',
// theme_color: '#333333'
// },
// // configure the workbox plugin
// workboxPluginMode: 'InjectManifest',
// workboxOptions: {
// // swSrc is required in InjectManifest mode.
// // swSrc: 'dev/sw.js',
// // ...other Workbox options...
// }
// }
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment