Compare commits

..

No commits in common. 'sysxh' and 'master' have entirely different histories.

  1. 2
      .env.development
  2. 2
      .env.production
  3. 27
      src/api/Expert.js
  4. BIN
      src/assets/images/avatar.png
  5. BIN
      src/assets/images/bg1.png
  6. BIN
      src/assets/images/form-bg.png
  7. BIN
      src/assets/images/logo.png
  8. 3
      src/layout/components/Navbar.vue
  9. 2
      src/layout/components/Sidebar/Logo.vue
  10. 2
      src/settings.js
  11. 4
      src/views/home.vue
  12. 8
      src/views/information/index.vue
  13. 92
      src/views/login.vue
  14. 125
      src/views/shop/expert/index.vue
  15. 3
      src/views/system/user/center.vue
  16. 2
      vue.config.js
  17. 2
      wsl.txt

2
.env.development

@ -1,7 +1,7 @@
ENV = 'development' ENV = 'development'
# 接口地址 # 接口地址
VUE_APP_BASE_API = 'http://192.168.68.125:8199' VUE_APP_BASE_API = 'http://192.168.68.126:8094'
VUE_APP_WS_API = 'ws://localhost:8088' VUE_APP_WS_API = 'ws://localhost:8088'
# 是否启用 babel-plugin-dynamic-import-node插件 # 是否启用 babel-plugin-dynamic-import-node插件

2
.env.production

@ -1,6 +1,6 @@
ENV = 'production' ENV = 'production'
# 接口地址 # 接口地址
VUE_APP_BASE_API = 'http://art.admin.cyjyyjy.com' VUE_APP_BASE_API = 'http://www.cyjyyjy.com:8094'
VUE_APP_WS_API = 'ws:///127.0.0.1:8001' VUE_APP_WS_API = 'ws:///127.0.0.1:8001'

27
src/api/Expert.js

@ -1,27 +0,0 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/Expert',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/Expert/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/Expert',
method: 'put',
data
})
}
export default { add, edit, del }

BIN
src/assets/images/avatar.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
src/assets/images/bg1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
src/assets/images/form-bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

BIN
src/assets/images/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 13 KiB

3
src/layout/components/Navbar.vue

@ -58,6 +58,7 @@ import Github from '@/components/Github'
import Screenfull from '@/components/Screenfull' import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect' import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch' import Search from '@/components/HeaderSearch'
import Avatar from '@/assets/images/avatar.png'
export default { export default {
components: { components: {
@ -70,7 +71,7 @@ export default {
}, },
data() { data() {
return { return {
Avatar: '', Avatar: Avatar,
dialogVisible: false dialogVisible: false
} }
}, },

2
src/layout/components/Sidebar/Logo.vue

@ -25,7 +25,7 @@ export default {
}, },
data() { data() {
return { return {
title: '湖北省艺术设计协会管理系统', title: '禅易云生态管理系统',
logo: Logo logo: Logo
} }
} }

2
src/settings.js

@ -2,7 +2,7 @@ module.exports = {
/** /**
* @description 网站标题 * @description 网站标题
*/ */
title: '湖北省艺术设计协会', title: '禅易云生态',
/** /**
* @description 是否显示 tagsView * @description 是否显示 tagsView
*/ */

4
src/views/home.vue

@ -6,9 +6,9 @@
<panel-group-t /> <panel-group-t />
<el-row :gutter="32"> <el-row :gutter="32">
<!-- <el-col :xs="16" :sm="16" :lg="8"> <el-col :xs="16" :sm="16" :lg="8">
<order-count></order-count> <order-count></order-count>
</el-col> --> </el-col>
<el-col :xs="16" :sm="16" :lg="8"> <el-col :xs="16" :sm="16" :lg="8">
<div class="chart-wrapper"> <div class="chart-wrapper">

8
src/views/information/index.vue

@ -148,15 +148,15 @@ export default {
data() { data() {
return { return {
delLoading: false, delLoading: false,
articleCatetoryId: '', articleCatetoryId: null,
articleCatetoryList: [], articleCatetoryList: [],
setLoading: false setLoading: false
} }
}, },
created() { created() {
// this.$nextTick(() => { this.$nextTick(() => {
// this.init() this.init()
// }) })
}, },
mounted(){ mounted(){
this.getArticleCatetory() this.getArticleCatetory()

92
src/views/login.vue

@ -1,26 +1,38 @@
<template> <template>
<div class="login"> <div class="login">
<div class="logo"> <div style="display:flex;justify-content:space-between;align-items: center;">
<img src="@/assets/images/logo.png" alt=""> <!-- <div style="padding: 0 60px 0 0">
</div> <h3 style="color: #ffffff;font-size: 24px;padding: 0;margin-bottom: 10px">
<div class="form-box"> 单商户B2C电商系统
<div class="left"> </h3>
<img src="@/assets/images/form-bg.png"></img> <ul style="margin: 0;color: #ffffff;font-size: 15px;line-height: 25px;padding-left: 20px">
</div> <li>Springboot2</li>
<li>MybatisPlus</li>
<li>SpringSecurity</li>
<li>Jwt</li>
<li>Redis</li>
<li>Vue</li>
</ul>
<h3 style="color: #ffffff;">
官网:https://www.yixiang.co
</h3>
</div> -->
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form">
<h3 class="title">后台管理系统</h3> <h3 class="title">
禅易云生态后台管理系统
</h3>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input v-model="loginForm.username" size="medium" type="text" auto-complete="off" placeholder="账号" style="width: 62%"> <el-input v-model="loginForm.username" size="medium" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input v-model="loginForm.password" size="medium" type="password" auto-complete="off" placeholder="密码" style="width: 62%" @keyup.enter.native="handleLogin"> <el-input v-model="loginForm.password" size="medium" type="password" auto-complete="off" placeholder="密码" @keyup.enter.native="handleLogin">
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="code"> <el-form-item prop="code">
<el-input v-model="loginForm.code" size="medium" auto-complete="off" placeholder="验证码" style="width: 62%" @keyup.enter.native="handleLogin"> <el-input v-model="loginForm.code" size="medium" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter.native="handleLogin">
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
</el-input> </el-input>
<div class="login-code"> <div class="login-code">
@ -31,11 +43,7 @@
记住我 记住我
</el-checkbox> </el-checkbox>
<el-form-item style="width:100%;"> <el-form-item style="width:100%;">
<el-button <el-button :loading="loading" size="medium" type="primary" style="width:100%;height:46px;border-radius:30px;font-size:22px;color:#fff;" @click.native.prevent="handleLogin">
:loading="loading"
size="medium"
style="width:62%;height:46px;background:#C25251;font-size:22px;color:#fff;border-color:#C25251;"
@click.native.prevent="handleLogin">
<span v-if="!loading"> </span> <span v-if="!loading"> </span>
<span v-else> 中...</span> <span v-else> 中...</span>
</el-button> </el-button>
@ -155,66 +163,34 @@ export default {
.login { .login {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: #fff; background-image:url("../assets/images/bg.png");
position: relative; background-size: cover;
.logo{
width: 256px;
height: 256px;
position: fixed;
top: 0px;
right: 60px;
z-index: 3;
img{
width: 100%;
height: 100%;
}
}
} }
.title { .title {
margin: 0 auto 30px auto; margin: 0 auto 30px auto;
text-align: left; text-align: center;
color: #707070; color: #707070;
} }
.form-box{
width: 1200px; .login-form {
height: 700px; border-radius: 6px;
box-shadow: 0px 8px 13px rgba(0, 0, 0, 0.16);;
border-radius: 20px;
background: #ffffff; background: #ffffff;
padding: 40px 70px;
box-sizing: border-box; box-sizing: border-box;
position: absolute; position: absolute;
left: 50%; right: 10%;
top: 50%; top: 50%;
transform: translate(-50%,-50%); transform: translateY(-50%);
display: flex;
overflow: hidden;
.left{
width: 600px;
height: 100%;
background: #C25251;
display: flex;
align-items: center;
justify-content: center;
img{
width: 474px;
height: 290px;
}
}
.login-form {
width: 600px;
padding: 124px 50px 0 130px;
.title{ .title{
font-size: 28px; font-size: 28px;
font-weight: 600; font-weight: 600;
line-height: 48px; line-height: 48px;
color: #C25251; color: #068AD6;
} }
.input-icon{ .input-icon{
height: 39px;width: 14px;margin-left: 2px; height: 39px;width: 14px;margin-left: 2px;
} }
} }
}
.login-tip { .login-tip {
font-size: 13px; font-size: 13px;
text-align: center; text-align: center;

125
src/views/shop/expert/index.vue

@ -1,125 +0,0 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-form-item label="姓名:">
<el-input v-model="form.name" style="width: 370px;" />
</el-form-item>
<el-form-item label="照片:">
<single-pic v-model="form.avatar" type="image" :num="1" :width="150" :height="150" />
</el-form-item>
<el-form-item label="简介:">
<el-input v-model="form.job" style="width: 370px;" />
</el-form-item>
<el-form-item label="介绍:">
<el-input type="textarea" rows="4" show-word-limit v-model="form.introduction" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column v-if="columns.visible('id')" prop="id" label="id" />
<el-table-column v-if="columns.visible('name')" prop="name" label="姓名" />
<el-table-column v-if="columns.visible('avatar')" prop="avatar" label="照片">
<template slot-scope="scope">
<el-image :src="scope.row.avatar" :fit="contain" style="width: 50px; height: 50px;border-radius: 50%;"></el-image>
</template>
</el-table-column>
<el-table-column v-if="columns.visible('job')" prop="job" label="简介" />
<el-table-column v-if="columns.visible('introduction')" width="300px" prop="introduction" label="介绍" show-overflow-tooltip="true">
</el-table-column>
<el-table-column v-if="columns.visible('createTime')" label="创建时间">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column v-permission="['admin','Expert:edit','Expert:del']" label="操作" width="150px" align="center">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudExpert from "@/api/Expert";
import CRUD, { presenter, header, form, crud } from "@crud/crud";
import rrOperation from "@crud/RR.operation";
import crudOperation from "@crud/CRUD.operation";
import udOperation from "@crud/UD.operation";
import pagination from "@crud/Pagination";
import singlePic from '@/components/singlematerial'
// crudpresenter
const defaultCrud = CRUD({
title: "专家",
url: "api/Expert",
sort: "id,desc",
crudMethod: { ...crudExpert },
});
const defaultForm = {
id: null,
name: null,
avatar: '',
job: null,
introduction: null,
};
export default {
name: "Expert",
components: {
pagination,
crudOperation,
rrOperation,
udOperation,
singlePic,
},
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()],
data() {
return {
permission: {
add: ["admin", "Expert:add"],
edit: ["admin", "Expert:edit"],
del: ["admin", "Expert:del"],
},
rules: {
id: [{ required: true, message: "不能为空", trigger: "blur" }],
},
};
},
watch: {
'form.image': function(val) {
console.log('aaaa:'+val)
},
},
methods: {
//
[CRUD.HOOK.beforeRefresh]() {
return true;
}, //
[CRUD.HOOK.afterToCU](crud, form) {},
},
};
</script>
<style>
.el-tooltip__popper {
max-width: 400px;
}
</style>

3
src/views/system/user/center.vue

@ -115,6 +115,7 @@ import { isvalidPhone } from '@/utils/validate'
import { parseTime } from '@/utils/index' import { parseTime } from '@/utils/index'
import crud from '@/mixins/crud' import crud from '@/mixins/crud'
import { editUser } from '@/api/system/user' import { editUser } from '@/api/system/user'
import Avatar from '@/assets/images/avatar.png'
export default { export default {
name: 'Center', name: 'Center',
components: { updatePass, updateEmail }, components: { updatePass, updateEmail },
@ -131,7 +132,7 @@ export default {
} }
} }
return { return {
Avatar: '', Avatar: Avatar,
activeName: 'first', activeName: 'first',
saveLoading: false, saveLoading: false,
headers: { headers: {

2
vue.config.js

@ -7,7 +7,7 @@ function resolve(dir) {
} }
const name = defaultSettings.title // 网址标题 const name = defaultSettings.title // 网址标题
const port = 8015 // 端口配置 const port = 8014 // 端口配置
module.exports = { module.exports = {
publicPath: '/', publicPath: '/',

2
wsl.txt

@ -1,2 +1,2 @@
url: rsync -r ./ root@39.105.46.0:/root/html/sysxh_admin url: rsync -r ./ root@39.105.46.0:/root/html/distclode
password: CXkj2021!@# password: CXkj2021!@#
Loading…
Cancel
Save