init
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<div>
|
||||
<data-table ref="pagingTable" :options="options" :list-query="listQuery" @multi-actions="handleMultiAction">
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.userName" style="width: 200px" placeholder="搜索登录名" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.applyTimeParam" style="width: 200px" placeholder="搜索日期格式yyyyMM"
|
||||
class="filter-item"/>
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column align="center" label="用户名">
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.userName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="类型" prop="applyFlag" class-name="APPLY_TYPE" :formatter="dataFormatter"/>
|
||||
<el-table-column align="center" label="打车或地铁金额(元)" prop="applyMoney"/>
|
||||
<el-table-column align="center" label="日期" prop="applyTime" :formatter="formatDate"/>
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<el-dialog :visible.sync="dialogVisible" title="添加申请" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
<el-form-item label="用户">
|
||||
<el-select v-model="formData.userId" placeholder="请选择用户" :disabled="flag">
|
||||
<el-option
|
||||
v-for="item in userIdOptions"
|
||||
:key="item.id"
|
||||
:label="item.realName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="报销类型">
|
||||
<el-select v-model="formData.applyFlag" placeholder="请选择报销类型">
|
||||
<el-option
|
||||
v-for="item in applyFlagOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="金额(元)">
|
||||
<el-input type="number" v-model="formData.applyMoney"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="日期">
|
||||
<el-date-picker
|
||||
v-model="formData.applyTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import {userList} from '@/api/sys/user/user'
|
||||
import {saveData} from '@/api/apply/apply'
|
||||
import {mapGetters} from "vuex";
|
||||
import {formatDate} from '@/utils/index'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {getSelectOptions} from '@/api/sys/dict/dict'
|
||||
|
||||
export default {
|
||||
name: 'XmApply',
|
||||
components: {DataTable},
|
||||
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'userId'
|
||||
])
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userIdOptions: [],
|
||||
applyFlagOptions: [],
|
||||
flag: true,
|
||||
defaultProps: {
|
||||
value: 'id',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
dialogVisible: false,
|
||||
|
||||
listQuery: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
params: {
|
||||
userName: '',
|
||||
applyTimeParam: ''
|
||||
}
|
||||
},
|
||||
|
||||
formData: {
|
||||
userId: '',
|
||||
avatar: '',
|
||||
applyFlag: '',
|
||||
applyMoney: 0,
|
||||
applyTime: null
|
||||
},
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/apply/api/input/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/apply/api/input/state',
|
||||
deleteUrl: '/apply/api/input/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
userList().then(response => {
|
||||
this.userIdOptions = response.data
|
||||
});
|
||||
getSelectOptions('APPLY_TYPE').then(response => {
|
||||
this.applyFlagOptions = response.data
|
||||
});
|
||||
},
|
||||
|
||||
methods: {
|
||||
dataFormatter,
|
||||
formatDate,
|
||||
handleUploadSuccess(response) {
|
||||
// 上传图片赋值
|
||||
this.formData.avatar = response.data.url
|
||||
},
|
||||
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
if (this.userId === '10001') {
|
||||
this.flag = false
|
||||
} else {
|
||||
this.formData.userId = this.userId
|
||||
this.flag = true
|
||||
}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
handleUpdate(row) {
|
||||
if (this.userId === '10001') {
|
||||
this.flag = false
|
||||
}
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
console.log(JSON.stringify(this.formData))
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.departId = data.id
|
||||
},
|
||||
|
||||
handleSave() {
|
||||
saveData(this.formData).then(() => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '用户修改成功!'
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,133 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="16">
|
||||
<el-card class="box">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>项目信息</span>
|
||||
<el-button style="float: right; padding: 3px 0; font-size: 12px" type="text">系统版本:1.0.0</el-button>
|
||||
</div>
|
||||
|
||||
<div style="line-height: 32px;">
|
||||
|
||||
<div class="title" style="padding-top: 0px">系统介绍</div>
|
||||
本毕设图书管理系统是一款基于SpringBoot+Vue开发的管理系统。包含用户体系、权限管理、图书信息管理、借还流程等业务闭环功能,流程通畅。
|
||||
|
||||
<div class="title">技术栈</div>
|
||||
<div class="tags">
|
||||
<el-tag>SpringBoot</el-tag>
|
||||
<el-tag>Shiro</el-tag>
|
||||
<el-tag>MyBatis Plus</el-tag>
|
||||
<el-tag>Redis</el-tag>
|
||||
<el-tag>JWT</el-tag>
|
||||
<el-tag>Vue</el-tag>
|
||||
<el-tag>Vue2</el-tag>
|
||||
<el-tag>ElementUI</el-tag>
|
||||
</div>
|
||||
|
||||
<div class="title">产品功能</div>
|
||||
<div>
|
||||
<div>系统完善:完善的前后端分离架构、规范的接口文档</div>
|
||||
<div>权限控制:基于Shiro和JWT开发的权限控制功能。</div>
|
||||
<div>基础功能:系统配置、用户管理、部门管理、角色管理等。</div>
|
||||
<div>图书管理:图书的信息管理,借还流程的完善</div>
|
||||
<div>人员权限:暂时设置管理员和学生两个角色</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
|
||||
<el-card class="box">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>支持信息</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<div class="title" style="padding-top: 0px">商业咨询</div>
|
||||
<div style="display: flex;">
|
||||
<div style="flex-grow: 1;">
|
||||
<div>微信:yx755141(微信号)或搜索手机 17640541176</div>
|
||||
<div>手机:<a href="tel:17640541176">陈昊东</a></div>
|
||||
<div>邮箱:<a href="mailto:haodongchen@aliyun.com">haodongchen@aliyun.com</a> </div>
|
||||
</div>
|
||||
<!-- <div style="width: 120px; display: flex; align-items: center; flex-direction: column; align-content: flex-end">
|
||||
<img style="width: 100px; height: 100px" src="@/assets/contact.png" >
|
||||
<div style="font-size: 12px; text-align: center; width: 100%">微信扫码加我好友</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- <div class="title">支持网站</div>
|
||||
<div>
|
||||
<div>企业官网:<a href="https://www.yfhl.net">https://www.yfhl.net</a></div>
|
||||
<div>在线试用:<a href="https://exam.yfhl.net">https://exam.yfhl.net</a></div>
|
||||
</div>
|
||||
|
||||
<div class="title">在线试用</div>
|
||||
<div style="display: flex; align-items: center">
|
||||
<img src="@/assets/h5.png" style="width: 150px; height: 150px; border: #efefef 1px solid">
|
||||
<img src="@/assets/mp.jpg" style="width: 150px; height: 150px; border: #efefef 1px solid; margin-left: 20px">
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'Dashboard',
|
||||
data() {
|
||||
return {
|
||||
currentRole: 'adminDashboard'
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'roles',
|
||||
'siteData'
|
||||
])
|
||||
},
|
||||
created() {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.box{
|
||||
height: calc(100vh - 120px);
|
||||
font-size: 14px;
|
||||
line-height: 28px;
|
||||
}
|
||||
.title{
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
border-bottom: #eee 1px dotted;
|
||||
}
|
||||
|
||||
.tags span{
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.box a{
|
||||
color: #20a0ff;
|
||||
}
|
||||
|
||||
.box a:hover{
|
||||
color: #ff0000;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,13 @@
|
||||
<template>
|
||||
<div>
|
||||
<!--error code-->
|
||||
{{ a.a }}
|
||||
<!--error code-->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ErrorTestA'
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,11 @@
|
||||
<template>
|
||||
<div />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
created() {
|
||||
this.b = b // eslint-disable-line
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,32 @@
|
||||
<template>
|
||||
<div class="errPage-container">
|
||||
<ErrorA />
|
||||
<ErrorB />
|
||||
<h3>Please click the bug icon in the upper right corner</h3>
|
||||
<aside>
|
||||
Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.
|
||||
<a target="_blank" class="link-type" href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/error.html">
|
||||
Document introduction
|
||||
</a>
|
||||
</aside>
|
||||
<a href="#">
|
||||
<img src="https://wpimg.wallstcn.com/360e4842-4db5-42d0-b078-f9a84a825546.gif">
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ErrorA from './components/ErrorTestA'
|
||||
import ErrorB from './components/ErrorTestB'
|
||||
|
||||
export default {
|
||||
name: 'ErrorLog',
|
||||
components: { ErrorA, ErrorB }
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.errPage-container {
|
||||
padding: 30px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,99 @@
|
||||
<template>
|
||||
<div class="errPage-container">
|
||||
<el-button icon="el-icon-arrow-left" class="pan-back-btn" @click="back">
|
||||
返回
|
||||
</el-button>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<h1 class="text-jumbo text-ginormous">
|
||||
Oops!
|
||||
</h1>
|
||||
gif来源<a href="https://zh.airbnb.com/" target="_blank">airbnb</a> 页面
|
||||
<h2>你没有权限去该页面</h2>
|
||||
<h6>如有不满请联系你领导</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li>或者你可以去:</li>
|
||||
<li class="link-type">
|
||||
<router-link to="/dashboard">
|
||||
回首页
|
||||
</router-link>
|
||||
</li>
|
||||
<li class="link-type">
|
||||
<a href="https://www.taobao.com/">随便看看</a>
|
||||
</li>
|
||||
<li><a href="#" @click.prevent="dialogVisible=true">点我看图</a></li>
|
||||
</ul>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream.">
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-dialog :visible.sync="dialogVisible" title="随便看">
|
||||
<img :src="ewizardClap" class="pan-img">
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import errGif from '@/assets/401_images/401.gif'
|
||||
|
||||
export default {
|
||||
name: 'Page401',
|
||||
data() {
|
||||
return {
|
||||
errGif: errGif + '?' + +new Date(),
|
||||
ewizardClap: 'https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646',
|
||||
dialogVisible: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
if (this.$route.query.noGoBack) {
|
||||
this.$router.push({ path: '/dashboard' })
|
||||
} else {
|
||||
this.$router.go(-1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.errPage-container {
|
||||
width: 800px;
|
||||
max-width: 100%;
|
||||
margin: 100px auto;
|
||||
.pan-back-btn {
|
||||
background: #008489;
|
||||
color: #fff;
|
||||
border: none!important;
|
||||
}
|
||||
.pan-gif {
|
||||
margin: 0 auto;
|
||||
display: block;
|
||||
}
|
||||
.pan-img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
}
|
||||
.text-jumbo {
|
||||
font-size: 60px;
|
||||
font-weight: 700;
|
||||
color: #484848;
|
||||
}
|
||||
.list-unstyled {
|
||||
font-size: 14px;
|
||||
li {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
a {
|
||||
color: #008489;
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,228 @@
|
||||
<template>
|
||||
<div class="wscn-http404-container">
|
||||
<div class="wscn-http404">
|
||||
<div class="pic-404">
|
||||
<img class="pic-404__parent" src="@/assets/404_images/404.png" alt="404">
|
||||
<img class="pic-404__child left" src="@/assets/404_images/404_cloud.png" alt="404">
|
||||
<img class="pic-404__child mid" src="@/assets/404_images/404_cloud.png" alt="404">
|
||||
<img class="pic-404__child right" src="@/assets/404_images/404_cloud.png" alt="404">
|
||||
</div>
|
||||
<div class="bullshit">
|
||||
<div class="bullshit__oops">OOPS!</div>
|
||||
<div class="bullshit__info">All rights reserved
|
||||
<a style="color:#20a0ff" href="https://wallstreetcn.com" target="_blank">wallstreetcn</a>
|
||||
</div>
|
||||
<div class="bullshit__headline">{{ message }}</div>
|
||||
<div class="bullshit__info">Please check that the URL you entered is correct, or click the button below to return to the homepage.</div>
|
||||
<a href="" class="bullshit__return-home">Back to home</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: 'Page404',
|
||||
computed: {
|
||||
message() {
|
||||
return 'The webmaster said that you can not enter this page...'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.wscn-http404-container{
|
||||
transform: translate(-50%,-50%);
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
}
|
||||
.wscn-http404 {
|
||||
position: relative;
|
||||
width: 1200px;
|
||||
padding: 0 50px;
|
||||
overflow: hidden;
|
||||
.pic-404 {
|
||||
position: relative;
|
||||
float: left;
|
||||
width: 600px;
|
||||
overflow: hidden;
|
||||
&__parent {
|
||||
width: 100%;
|
||||
}
|
||||
&__child {
|
||||
position: absolute;
|
||||
&.left {
|
||||
width: 80px;
|
||||
top: 17px;
|
||||
left: 220px;
|
||||
opacity: 0;
|
||||
animation-name: cloudLeft;
|
||||
animation-duration: 2s;
|
||||
animation-timing-function: linear;
|
||||
animation-fill-mode: forwards;
|
||||
animation-delay: 1s;
|
||||
}
|
||||
&.mid {
|
||||
width: 46px;
|
||||
top: 10px;
|
||||
left: 420px;
|
||||
opacity: 0;
|
||||
animation-name: cloudMid;
|
||||
animation-duration: 2s;
|
||||
animation-timing-function: linear;
|
||||
animation-fill-mode: forwards;
|
||||
animation-delay: 1.2s;
|
||||
}
|
||||
&.right {
|
||||
width: 62px;
|
||||
top: 100px;
|
||||
left: 500px;
|
||||
opacity: 0;
|
||||
animation-name: cloudRight;
|
||||
animation-duration: 2s;
|
||||
animation-timing-function: linear;
|
||||
animation-fill-mode: forwards;
|
||||
animation-delay: 1s;
|
||||
}
|
||||
@keyframes cloudLeft {
|
||||
0% {
|
||||
top: 17px;
|
||||
left: 220px;
|
||||
opacity: 0;
|
||||
}
|
||||
20% {
|
||||
top: 33px;
|
||||
left: 188px;
|
||||
opacity: 1;
|
||||
}
|
||||
80% {
|
||||
top: 81px;
|
||||
left: 92px;
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
top: 97px;
|
||||
left: 60px;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes cloudMid {
|
||||
0% {
|
||||
top: 10px;
|
||||
left: 420px;
|
||||
opacity: 0;
|
||||
}
|
||||
20% {
|
||||
top: 40px;
|
||||
left: 360px;
|
||||
opacity: 1;
|
||||
}
|
||||
70% {
|
||||
top: 130px;
|
||||
left: 180px;
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
top: 160px;
|
||||
left: 120px;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes cloudRight {
|
||||
0% {
|
||||
top: 100px;
|
||||
left: 500px;
|
||||
opacity: 0;
|
||||
}
|
||||
20% {
|
||||
top: 120px;
|
||||
left: 460px;
|
||||
opacity: 1;
|
||||
}
|
||||
80% {
|
||||
top: 180px;
|
||||
left: 340px;
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
top: 200px;
|
||||
left: 300px;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.bullshit {
|
||||
position: relative;
|
||||
float: left;
|
||||
width: 300px;
|
||||
padding: 30px 0;
|
||||
overflow: hidden;
|
||||
&__oops {
|
||||
font-size: 32px;
|
||||
font-weight: bold;
|
||||
line-height: 40px;
|
||||
color: #1482f0;
|
||||
opacity: 0;
|
||||
margin-bottom: 20px;
|
||||
animation-name: slideUp;
|
||||
animation-duration: 0.5s;
|
||||
animation-fill-mode: forwards;
|
||||
}
|
||||
&__headline {
|
||||
font-size: 20px;
|
||||
line-height: 24px;
|
||||
color: #222;
|
||||
font-weight: bold;
|
||||
opacity: 0;
|
||||
margin-bottom: 10px;
|
||||
animation-name: slideUp;
|
||||
animation-duration: 0.5s;
|
||||
animation-delay: 0.1s;
|
||||
animation-fill-mode: forwards;
|
||||
}
|
||||
&__info {
|
||||
font-size: 13px;
|
||||
line-height: 21px;
|
||||
color: grey;
|
||||
opacity: 0;
|
||||
margin-bottom: 30px;
|
||||
animation-name: slideUp;
|
||||
animation-duration: 0.5s;
|
||||
animation-delay: 0.2s;
|
||||
animation-fill-mode: forwards;
|
||||
}
|
||||
&__return-home {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 110px;
|
||||
height: 36px;
|
||||
background: #1482f0;
|
||||
border-radius: 100px;
|
||||
text-align: center;
|
||||
color: #ffffff;
|
||||
opacity: 0;
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
cursor: pointer;
|
||||
animation-name: slideUp;
|
||||
animation-duration: 0.5s;
|
||||
animation-delay: 0.3s;
|
||||
animation-fill-mode: forwards;
|
||||
}
|
||||
@keyframes slideUp {
|
||||
0% {
|
||||
transform: translateY(60px);
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,45 @@
|
||||
<template>
|
||||
|
||||
<div class="login-container">
|
||||
|
||||
<div class="login-box">
|
||||
|
||||
<div class="logo-box">
|
||||
<div>
|
||||
<a class="logo-title">
|
||||
<img :src="siteData.backLogo" class="logo-img">
|
||||
<span class="site-title">{{ siteData.siteName }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<app-main />
|
||||
|
||||
</div>
|
||||
|
||||
<div class="footer" v-html="siteData.copyRight" />
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
import AppMain from '@/layout/components/AppMain'
|
||||
|
||||
export default {
|
||||
name: 'LoginLayout',
|
||||
components: { AppMain },
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'siteData'
|
||||
])
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "~@/styles/login.scss";
|
||||
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<div class="title-box">
|
||||
<div>用户登录</div>
|
||||
</div>
|
||||
|
||||
<el-form ref="postForm" :model="postForm" :rules="loginRules">
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
v-model="postForm.username"
|
||||
style="width: 100%"
|
||||
placeholder="用户名"
|
||||
prefix-icon="el-icon-user"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
v-model="postForm.password"
|
||||
show-password
|
||||
style="width: 100%"
|
||||
placeholder="密码"
|
||||
type="password"
|
||||
prefix-icon="el-icon-lock"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button :loading="loading" type="primary" style="width: 100%" @click.native.prevent="accountLogin">登录</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="display: flex; align-items: center; justify-content: flex-end">
|
||||
<el-link type="primary" href="/#/register">立即注册</el-link>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
postForm: {
|
||||
username: '',
|
||||
password: ''
|
||||
},
|
||||
loginRules: {
|
||||
username: [{ required: true, trigger: 'blur', message: '用户名不能为空' }],
|
||||
password: [{ required: true, trigger: 'blur', message: '密码不能为空' }]
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'siteData'
|
||||
])
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
loginBack() {
|
||||
// 其它跳到后台
|
||||
this.$router.push({ path: '/admin/dashboard' })
|
||||
|
||||
setTimeout(function() {
|
||||
this.loading = false
|
||||
}, 1800)
|
||||
},
|
||||
|
||||
accountLogin() {
|
||||
this.$refs.postForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.loading = true
|
||||
this.$store.dispatch('user/login', this.postForm)
|
||||
.then(() => {
|
||||
this.loginBack()
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,99 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<div class="title-box">
|
||||
<div>用户注册</div>
|
||||
</div>
|
||||
|
||||
<el-form ref="postForm" :model="postForm" :rules="loginRules">
|
||||
|
||||
<el-form-item prop="userName">
|
||||
<el-input
|
||||
v-model="postForm.userName"
|
||||
style="width: 100%"
|
||||
placeholder="用户名"
|
||||
prefix-icon="el-icon-mobile"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="realName">
|
||||
<el-input
|
||||
v-model="postForm.realName"
|
||||
style="width: 100%"
|
||||
placeholder="姓名"
|
||||
prefix-icon="el-icon-user"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
v-model="postForm.password"
|
||||
show-password
|
||||
style="width: 100%"
|
||||
placeholder="密码"
|
||||
type="password"
|
||||
prefix-icon="el-icon-lock"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button :loading="loading" type="primary" style="width: 100%" @click.native.prevent="handleReg">注册</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="display: flex; align-items: center; justify-content: flex-end">
|
||||
<el-link type="primary" href="/#/login">已有账号</el-link>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
postForm: {
|
||||
mobile: '',
|
||||
password: ''
|
||||
},
|
||||
loginRules: {
|
||||
password: [{ required: true, trigger: 'blur', message: '登录密码不能为空!' }],
|
||||
userName: [{ required: true, trigger: 'blur', message: '用户名不能为空!' }],
|
||||
realName: [{ required: true, trigger: 'blur', message: '姓名不能为空!' }],
|
||||
captchaValue: [{ required: true, trigger: 'blur', message: '验证码不能为空' }]
|
||||
},
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'siteData'
|
||||
])
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
handleReg() {
|
||||
this.$refs.postForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.loading = true
|
||||
this.$store.dispatch('user/reg', this.postForm)
|
||||
.then(() => {
|
||||
this.$router.push({ path: this.redirect || '/admin/dashboard' })
|
||||
this.loading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item label="用户名">
|
||||
<el-input v-model.trim="user.name" readonly />
|
||||
</el-form-item>
|
||||
<el-form-item label="密码">
|
||||
<el-input v-model.trim="user.password" type="password" placeholder="不修改请留空" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submit">修改</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { updateData } from '@/api/sys/user/user'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
user: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {
|
||||
password: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async logout() {
|
||||
await this.$store.dispatch('user/logout')
|
||||
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
|
||||
},
|
||||
|
||||
async submit() {
|
||||
updateData(this.user).then(() => {
|
||||
this.$notify({
|
||||
title: '成功',
|
||||
message: '用户资料保存成功!!',
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
|
||||
this.logout()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,101 @@
|
||||
<template>
|
||||
<el-card style="margin-bottom:20px;">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>个人资料</span>
|
||||
</div>
|
||||
|
||||
<div class="user-profile">
|
||||
<div class="box-center">
|
||||
<pan-thumb :image="user.avatar" :height="'100px'" :width="'100px'" :hoverable="false">
|
||||
<div>欢迎</div>
|
||||
{{ user.role }}
|
||||
</pan-thumb>
|
||||
</div>
|
||||
<div class="box-center">
|
||||
<div class="user-name text-center">{{ user.name }}</div>
|
||||
<div class="user-role text-center text-muted">{{ user.role | uppercaseFirst }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import PanThumb from '@/components/PanThumb'
|
||||
|
||||
export default {
|
||||
components: { PanThumb },
|
||||
props: {
|
||||
user: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {
|
||||
name: '',
|
||||
email: '',
|
||||
avatar: '',
|
||||
roles: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.box-center {
|
||||
margin: 0 auto;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.user-profile {
|
||||
.user-name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.box-center {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.user-role {
|
||||
padding-top: 10px;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.box-social {
|
||||
padding-top: 30px;
|
||||
|
||||
.el-table {
|
||||
border-top: 1px solid #dfe6ec;
|
||||
}
|
||||
}
|
||||
|
||||
.user-follow {
|
||||
padding-top: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.user-bio {
|
||||
margin-top: 20px;
|
||||
color: #606266;
|
||||
|
||||
span {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.user-bio-section {
|
||||
font-size: 14px;
|
||||
padding: 15px 0;
|
||||
|
||||
.user-bio-section-header {
|
||||
border-bottom: 1px solid #dfe6ec;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,60 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div v-if="user">
|
||||
<el-row :gutter="20">
|
||||
|
||||
<el-col :span="6" :xs="24">
|
||||
<user-card :user="user" />
|
||||
</el-col>
|
||||
|
||||
<el-col :span="18" :xs="24">
|
||||
<el-card>
|
||||
<el-tabs v-model="activeTab">
|
||||
<el-tab-pane label="修改资料" name="account">
|
||||
<account :user="user" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-card>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
import UserCard from './components/UserCard'
|
||||
import Account from './components/Account'
|
||||
|
||||
export default {
|
||||
name: 'Profile',
|
||||
components: { UserCard, Account },
|
||||
data() {
|
||||
return {
|
||||
user: {},
|
||||
activeTab: 'account'
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'name',
|
||||
'avatar',
|
||||
'roles'
|
||||
])
|
||||
},
|
||||
created() {
|
||||
this.getUser()
|
||||
},
|
||||
methods: {
|
||||
getUser() {
|
||||
this.user = {
|
||||
name: this.name,
|
||||
role: this.roles.join(' | '),
|
||||
email: 'admin@test.com',
|
||||
avatar: this.avatar
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,12 @@
|
||||
<script>
|
||||
export default {
|
||||
created() {
|
||||
const { params, query } = this.$route
|
||||
const { path } = params
|
||||
this.$router.replace({ path: '/' + path, query })
|
||||
},
|
||||
render: function(h) {
|
||||
return h() // avoid warning message
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,284 @@
|
||||
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.isbn" style="width: 200px" placeholder="搜索ISBN书号" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.bName" style="width: 200px" placeholder="搜索书名" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.bAuthor" style="width: 200px" placeholder="搜索作者" class="filter-item"/>
|
||||
<el-select v-model="listQuery.params.bType" style="width: 200px" placeholder="搜索图书种类" class="filter-item">
|
||||
<el-option
|
||||
v-for="item in tszlDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select v-model="listQuery.params.bState" style="width: 200px" placeholder="搜索图书状态" class="filter-item">
|
||||
<el-option
|
||||
v-for="item in stateDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
|
||||
<!-- <el-input v-model="listQuery.params.qctype" style="width: 200px" placeholder="搜索器材种类" class="filter-item"/>-->
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>
|
||||
</template>
|
||||
<!-- 表格-->
|
||||
<template slot="data-columns">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
|
||||
<el-table-column align="center" label="ISBN书号" prop="isbn"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
<el-table-column align="center" label="书名" prop="bName" />
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="图书种类" prop="bType" class-name="DIC_TSZL"/>
|
||||
|
||||
<el-table-column align="center" label="价格" prop="bPrice" />
|
||||
<el-table-column align="center" label="作者" prop="bAuthor" />
|
||||
<el-table-column align="center" label="出版商" prop="bPublisher" />
|
||||
<el-table-column align="center" label="封面" >
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="right" trigger="hover">
|
||||
<el-image slot="reference" :src="scope.row.bPath" width="80" height="80"/>
|
||||
<el-image style="width: 250px; height: 250px" :src="scope.row.bPath" fit="cover"/>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="出版日期">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.bPublicationTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column align="center" label="出版日期" type="dateformatter" prop="bPublicationTime" />-->
|
||||
<el-table-column align="center" label="库存数量" prop="bNum" />
|
||||
<el-table-column align="center" label="介绍" prop="bIntroduce" />
|
||||
<el-table-column align="center" label="借阅次数" prop="bLendNum" />
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="状态" prop="bState" class-name="STATE"/>
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small"
|
||||
>编辑
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
</template>
|
||||
<!-- 表格end-->
|
||||
</data-table>
|
||||
|
||||
<!-- 新增按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="书籍信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
<el-form-item label="Isbn书号">
|
||||
<el-input v-model="formData.isbn" />
|
||||
</el-form-item>
|
||||
<el-form-item label="书名">
|
||||
<el-input v-model="formData.bName" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图书类型">
|
||||
<el-select v-model="formData.bType" placeholder="请选图书类型" >
|
||||
<el-option
|
||||
v-for="item in tszlDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value" >
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="价格">
|
||||
<el-input type="number" v-model="formData.bPrice"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="作者">
|
||||
<el-input v-model="formData.bAuthor" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出版商">
|
||||
<el-input v-model="formData.bPublisher" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="出版日期">
|
||||
<el-date-picker
|
||||
v-model="formData.bPublicationTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量">
|
||||
<el-input type="number" v-model="formData.bNum" />
|
||||
</el-form-item>
|
||||
<el-form-item label="封面图片地址">
|
||||
<el-input v-model="formData.bPath" />
|
||||
</el-form-item>
|
||||
<el-form-item label="介绍">
|
||||
<el-input v-model="formData.bIntroduce" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {fetchTree} from '@/api/sys/depart/depart'
|
||||
import {getSelectOptions} from '@/api/sys/dict/dict'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveData} from '@/api/sys/bookgl/bookgl'
|
||||
import {getBjList, getZyList} from "@/api/sys/grxxgl/grxxgl";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
stateDicData:[],// 状态字典
|
||||
tszlDicData:[],// 图书种类字典DIC_TSZL
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/tsjxxb/controller/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/tsjxxb/controller/state',
|
||||
// 删除
|
||||
deleteUrl: '/tsjxxb/controller/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'enable',
|
||||
label: '启用'
|
||||
}, {
|
||||
value: 'disable',
|
||||
label: '禁用'
|
||||
},
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
getSelectOptions('DIC_TSZL').then(response => {
|
||||
// 图书种类字典
|
||||
this.tszlDicData = response.data
|
||||
})
|
||||
|
||||
getSelectOptions('STATE').then(response => {
|
||||
// 图书种类字典
|
||||
this.stateDicData = response.data
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
|
||||
|
||||
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
console.log('新增')
|
||||
},
|
||||
|
||||
//借出申请按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
// this.formData.roles = row.roleIds.split(',')
|
||||
//this.formData.password = null
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 确认按钮按下
|
||||
handleSave() {
|
||||
saveData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '编辑成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
|
||||
<el-form ref="postForm" :model="postForm" :rules="rules" label-position="left" label-width="100px">
|
||||
|
||||
<el-card>
|
||||
|
||||
<el-form-item label="系统名称">
|
||||
<el-input v-model="postForm.siteName" placeholder="系统显示名称" />
|
||||
</el-form-item>
|
||||
<!--
|
||||
|
||||
<el-form-item label="系统LOGO">
|
||||
<file-upload v-model="postForm.backLogo"/>
|
||||
</el-form-item>
|
||||
-->
|
||||
|
||||
<el-form-item label="版权信息">
|
||||
<el-input v-model="postForm.copyRight" placeholder="登录页底部版权信息" />
|
||||
</el-form-item>
|
||||
|
||||
<el-row>
|
||||
<el-button type="primary" @click="submitForm">保存</el-button>
|
||||
</el-row>
|
||||
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { fetchDetail, saveData } from '@/api/sys/config/config'
|
||||
import FileUpload from '@/components/FileUpload'
|
||||
|
||||
export default {
|
||||
name: 'Config',
|
||||
components: { FileUpload },
|
||||
data() {
|
||||
return {
|
||||
postForm: {
|
||||
id: '1'
|
||||
},
|
||||
loading: false,
|
||||
rules: {
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.fetchData()
|
||||
},
|
||||
methods: {
|
||||
|
||||
fetchData() {
|
||||
fetchDetail().then(response => {
|
||||
this.postForm = response.data
|
||||
})
|
||||
},
|
||||
submitForm() {
|
||||
console.log(JSON.stringify(this.postForm))
|
||||
|
||||
this.$refs.postForm.validate((valid) => {
|
||||
if (!valid) {
|
||||
return
|
||||
}
|
||||
|
||||
this.loading = true
|
||||
this.postForm.id = '1'
|
||||
|
||||
saveData(this.postForm).then(() => {
|
||||
this.$notify({
|
||||
title: '成功',
|
||||
message: '配置保存成功!',
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
})
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,344 @@
|
||||
<!-- 器材报修验收-->
|
||||
<!-- 库管员业务管理页面 这里操作报修验收 验收后设置状态为验收完成--><!-- 管理员器材报修审核-->
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.id" style="width: 200px" placeholder="搜索学生编码" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.xm" style="width: 200px" placeholder="搜索学生姓名" class="filter-item"/>
|
||||
<el-select v-model="listQuery.params.nj" style="width: 200px" placeholder="搜索年级" class="filter-item">
|
||||
<el-option
|
||||
v-for="item in njDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select v-model="listQuery.params.yuanxi" style="width: 200px" placeholder="搜索学院" class="filter-item" @change="changeXy">
|
||||
<el-option
|
||||
v-for="item in yxDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select v-model="listQuery.params.zhuanye" style="width: 200px" placeholder="搜索专业" class="filter-item" @change="changgeZy">
|
||||
<el-option
|
||||
v-for="item in selectZyData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select v-model="listQuery.params.banji" style="width: 200px" placeholder="搜索班级" class="filter-item" >
|
||||
<el-option
|
||||
v-for="item in selectBjData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-input v-model="listQuery.params.qctype" style="width: 200px" placeholder="搜索器材种类" class="filter-item"/>-->
|
||||
<!-- <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>-->
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<el-table-column align="center" label="学生编号" prop="id"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
<el-table-column align="center" label="学生姓名" prop="xm">
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="性别" prop="xb" class-name="DIC_XB"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="年级" prop="nj" class-name="DIC_NJ"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="学院" prop="yuanxi" class-name="DIC_XY"
|
||||
width="150px"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="专业" prop="zhuanye" class-name="DIC_ZY"
|
||||
width="150px"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="班级" prop="banji" class-name="DIC_BJ"
|
||||
width="100px"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="去向省" prop="txdzsf" class-name="DIC_SF"
|
||||
width="100px"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="去向市" prop="txdzs" class-name="DIC_SS"
|
||||
width="100px"/>
|
||||
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small"
|
||||
>编辑
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<!-- 编辑按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="编辑人员信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
<el-form-item label="器材编号">
|
||||
<el-input v-model="formData.id" disabled="disabled"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="器材名">
|
||||
<el-input v-model="formData.qcmc" disabled="disabled"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="器材类型">
|
||||
<el-select v-model="formData.qctype" placeholder="请选器材类型" disabled="disabled">
|
||||
<!-- <el-option
|
||||
v-for="item in treeData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value" >
|
||||
</el-option>-->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="主管教师">
|
||||
<el-select v-model="formData.teacherid" placeholder="请选主管教师" disabled="disabled">
|
||||
<!-- <el-option
|
||||
v-for="item in teacherData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>-->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="附言">
|
||||
<el-input v-model="formData.bz" disabled="disabled"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 认 验 收</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
// import { jcqsqrData} from '@/api/sys/baseqcgl/baseqcgl'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {fetchTree} from '@/api/sys/depart/depart'
|
||||
import {getSelectOptions} from '@/api/sys/dict/dict'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {getBjList, getZyList} from "@/api/sys/grxxgl/grxxgl";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
|
||||
selectZyData:[],// 查询专业字典
|
||||
selectBjData:[],// 查询班级字典
|
||||
|
||||
xbDicData: [], // 性别字典 DIC_XB
|
||||
mzDicData: [],// 民族字典 DIC_MZ
|
||||
pyfxDicData: [],// 培养方向字典 DIC_PYFX
|
||||
zzmmDicData: [],// 政治面貌字典 DIC_ZZMM
|
||||
njDicData: [],// 年级字典 DIC_NJ
|
||||
yxDicData: [],// 院系字典 DIC_XY
|
||||
zyDicData: [],// 专业字典 DIC_ZY
|
||||
bjDicData: [],// 班级字典 DIC_BJ
|
||||
dwxzData: [],// 单位性质 DIC_DWXZ
|
||||
dwhyData: [],// 单位行业 DIC_DWHY
|
||||
sssfData: [],// 所在省份 DIC_SF
|
||||
ssssData: [],// 所在市 DIC_SS
|
||||
sssqData: [],// 所在区 DIC_SQ
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/student/student/paging',
|
||||
// 删除
|
||||
deleteUrl: '/lsjqcxx/lsj-qcgl/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
getSelectOptions('DIC_XB').then(response => {
|
||||
// 性别字典
|
||||
this.xbDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_MZ').then(response => {
|
||||
// 教师民族字典字典
|
||||
this.mzDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_PYFX').then(response => {
|
||||
// 培养方向字典
|
||||
this.pyfxDicData = response.data
|
||||
})
|
||||
|
||||
getSelectOptions('DIC_ZZMM').then(response => {
|
||||
// 政治面貌字典
|
||||
this.zzmmDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_NJ').then(response => {
|
||||
// 年级字典
|
||||
this.njDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_XY').then(response => {
|
||||
// 院系字典
|
||||
this.yxDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_ZY').then(response => {
|
||||
// 专业字典
|
||||
this.zyDicData = response.data
|
||||
this.selectZyData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_BJ').then(response => {
|
||||
// 班级字典
|
||||
this.bjDicData = response.data
|
||||
this.selectBjData =response.data
|
||||
})
|
||||
getSelectOptions('DIC_DWXZ').then(response => {
|
||||
// 单位性质字典
|
||||
this.dwxzData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_DWHY').then(response => {
|
||||
// 单位行业字典字典
|
||||
this.dwhyData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_SF').then(response => {
|
||||
// 所在省份字典
|
||||
this.sssfData = response.data
|
||||
})
|
||||
|
||||
getSelectOptions('DIC_SS').then(response => {
|
||||
// 所在市字典
|
||||
this.ssssData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_SQ').then(response => {
|
||||
// 所在区字典
|
||||
this.sssqData = response.data
|
||||
})
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
|
||||
// 根据学院获取专业list
|
||||
changeXy(){
|
||||
getZyList(this.form).then((response) => {
|
||||
|
||||
this.listQuery.params.zhuanye='' // 专业输入框清空
|
||||
this.listQuery.params.banji='' // 班级输入框清空
|
||||
this.selectZyData=[] // 重置专业字典
|
||||
this.selectBjData=[] // 班级字典清空
|
||||
this.selectZyData = response.data // 专业字典重新赋值
|
||||
|
||||
})
|
||||
},
|
||||
// 根据专业获取班级list
|
||||
changgeZy(){
|
||||
getBjList(this.form).then((response) =>{
|
||||
this.listQuery.params.banji='' // 班级输入框清空
|
||||
this.selectBjData=[] // 班级字典清空
|
||||
this.selectBjData = response.data
|
||||
})
|
||||
},
|
||||
|
||||
//借出申请按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
// this.formData.roles = row.roleIds.split(',')
|
||||
//this.formData.password = null
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 确认返还按钮按下 入参返还教师id 返还备注信息 返还器材编号
|
||||
handleSave() {
|
||||
//this.qcglData=this.formData;
|
||||
this.qcglData.bz = this.formData.bz;// 库存数量
|
||||
this.qcglData.teacherid = this.formData.teacherid; // 教师id
|
||||
this.qcglData.id = this.formData.id;//器材id
|
||||
this.qcglData.jcqcid = this.formData.jcqcid;//器材id
|
||||
jcqsqrData(this.qcglData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '验收成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.dialogVisibleb = false
|
||||
this.dialogVisiblec = false
|
||||
this.$refs.pagingTable.getList()
|
||||
console.log('handlesave')
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,252 @@
|
||||
<template>
|
||||
<div>
|
||||
<data-table ref="pagingTypeTable" :options="typeOptions" :list-query="typeListQuery"
|
||||
@multi-actions="handleMultiAction">
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="typeListQuery.params.userName" style="width: 200px" placeholder="搜索登录名" class="filter-item"/>
|
||||
<el-input v-model="typeListQuery.params.realName" style="width: 200px" placeholder="搜索姓名" class="filter-item"/>
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleTypeAdd">
|
||||
添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column align="center" label="码值类型">
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleTypeUpdate(scope.row)">{{ scope.row.code }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="码值描述" prop="content"/>
|
||||
<el-table-column align="center" label="码值来源" prop="sourceType"/>
|
||||
<el-table-column align="center" label="码值来源sql" prop="sourceSql"/>
|
||||
<el-table-column align="center" label="状态" prop="state" class-name="STATE" :formatter="dataFormatter"/>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="primary" size="mini" icon="el-icon-view" @click="initDictData(scope.row)">码值详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<data-table ref="pagingDataTable" :options="dataOptions" :list-query="dataListQuery"
|
||||
@multi-actions="handleMultiAction">
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="dataListQuery.params.userName" style="width: 200px" placeholder="搜索登录名" class="filter-item"/>
|
||||
<el-input v-model="dataListQuery.params.realName" style="width: 200px" placeholder="搜索姓名" class="filter-item"/>
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleDataAdd">
|
||||
添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column align="center" label="码值类型">
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleDataUpdate(scope.row)">{{ scope.row.code }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="码值中文名称" prop="text"/>
|
||||
<el-table-column align="center" label="码值" prop="value"/>
|
||||
<el-table-column align="center" label="状态" prop="state" class-name="STATE" :formatter="dataFormatter"/>
|
||||
<el-table-column align="center" label="优先级(越小越靠前)" prop="priority"/>
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<el-dialog :visible.sync="dialogVisible" title="编辑码值大类" width="500px">
|
||||
<el-form :model="typeFormData" label-position="left" label-width="100px">
|
||||
<el-form-item label="码值类型">
|
||||
<el-input v-model="typeFormData.code" :disabled="typeFlag"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="码值描述">
|
||||
<el-input v-model="typeFormData.content"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="码值来源">
|
||||
<el-input v-model="typeFormData.sourceType"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="码值来源sql">
|
||||
<el-input v-model="typeFormData.sourceSql"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleTypeCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleTypeSave">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :visible.sync="dialogVisibleData" title="编辑码值" width="500px">
|
||||
<el-form :model="dataFormData" label-position="left" label-width="100px">
|
||||
<el-form-item label="码值类型">
|
||||
<el-input v-model="dataFormData.code" :disabled="true"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="码值中文名称">
|
||||
<el-input v-model="dataFormData.text"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="码值">
|
||||
<el-input v-model="dataFormData.value"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="优先级">
|
||||
<el-input v-model="dataFormData.priority"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleDataCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleDataSave">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import {saveTypeData, saveData} from '@/api/sys/dict/dict'
|
||||
import {dataFormatter} from '@/utils'
|
||||
export default {
|
||||
name: 'SysDict',
|
||||
components: {DataTable},
|
||||
data() {
|
||||
return {
|
||||
// 码值 是否可编辑
|
||||
typeFlag: true,
|
||||
treeData: [],
|
||||
defaultProps: {
|
||||
value: 'id',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
dialogVisible: false,
|
||||
dialogVisibleData: false,
|
||||
typeListQuery: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
params: {}
|
||||
},
|
||||
|
||||
typeFormData: {
|
||||
code: "",
|
||||
content: "",
|
||||
sourceType: "",
|
||||
sourceSql: ""
|
||||
},
|
||||
dataFormData: {
|
||||
code: "",
|
||||
text: "",
|
||||
value: ""
|
||||
},
|
||||
typeOptions: {
|
||||
// 列表请求URL
|
||||
listUrl: '/sys/api/dict/type/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/sys/api/dict/type/state',
|
||||
deleteUrl: '/sys/api/dict/type/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'enable',
|
||||
label: '启用'
|
||||
}, {
|
||||
value: 'disable',
|
||||
label: '禁用'
|
||||
},
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
dataListQuery: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
params: {}
|
||||
},
|
||||
dataOptions: {
|
||||
// 列表请求URL
|
||||
listUrl: '/sys/api/dict/data/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/sys/api/dict/data/state',
|
||||
deleteUrl: '/sys/api/dict/data/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'enable',
|
||||
label: '启用'
|
||||
}, {
|
||||
value: 'disable',
|
||||
label: '禁用'
|
||||
},
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
dataFormatter,
|
||||
// 根据type 初始化 码值列表
|
||||
initDictData(row) {
|
||||
this.dataListQuery.params.code = row.code
|
||||
this.$refs.pagingDataTable.getList()
|
||||
},
|
||||
// 码值大类添加 按钮
|
||||
handleTypeAdd() {
|
||||
this.typeFormData = {}
|
||||
this.typeFlag = false
|
||||
this.dialogVisible = true
|
||||
},
|
||||
handleDataAdd(){
|
||||
this.dataFormData = {}
|
||||
this.dataFormData.code = this.dataListQuery.params.code
|
||||
this.dialogVisibleData = true
|
||||
},
|
||||
handleTypeUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.typeFlag = true
|
||||
this.typeFormData = row
|
||||
},
|
||||
handleDataUpdate(row) {
|
||||
this.dialogVisibleData = true
|
||||
this.dataFormData = row
|
||||
},
|
||||
handleTypeSave() {
|
||||
saveTypeData(this.typeFormData).then(() => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '码值修改成功!'
|
||||
})
|
||||
this.handleTypeCancel()
|
||||
})
|
||||
},
|
||||
handleTypeCancel(){
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTypeTable.getList()
|
||||
},
|
||||
handleDataCancel(){
|
||||
this.dialogVisibleData = false
|
||||
this.$refs.pagingDataTable.getList()
|
||||
},
|
||||
handleDataSave(){
|
||||
saveData(this.dataFormData).then(() => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '码值修改成功!'
|
||||
})
|
||||
this.handleDataCancel()
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,212 @@
|
||||
<!-- 毕业生信息管理-->
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.id" style="width: 200px" placeholder="搜索公告编码" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.title" style="width: 200px" placeholder="搜索公告标题" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.text" style="width: 200px" placeholder="搜索公告内容" class="filter-item" />
|
||||
<label>开始时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="开始时间" class="filter-item"
|
||||
v-model="listQuery.params.createTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<label>截至时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="截至时间" class="filter-item"
|
||||
v-model="listQuery.params.updateTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>
|
||||
|
||||
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column align="center" label="公告编号" prop="id"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
|
||||
|
||||
<el-table-column align="center" label="公告标题" prop="title"/>
|
||||
<el-table-column align="center" label="公告内容" prop="text"/>
|
||||
<el-table-column align="center" label="发布时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.createTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small"
|
||||
>编辑公告内容
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
</el-table-column>
|
||||
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<!-- 编辑按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="编辑公告信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
<el-form-item label="公告编号">
|
||||
<el-input v-model="formData.id" disabled="disabled"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="公告标题">
|
||||
<el-input v-model="formData.title"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="公告内容">
|
||||
<el-input v-model="formData.text"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发布日期">
|
||||
<el-date-picker
|
||||
v-model="formData.createTime" disabled="disabled"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveOrUpData} from "@/api/sys/gggl/gggl";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {
|
||||
banji: '',
|
||||
zhuanye: ''
|
||||
}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/gonggao/gggl/paging',
|
||||
// 删除
|
||||
deleteUrl: '/gonggao/gggl/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
//编辑按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 确认按钮按下
|
||||
handleSave() {
|
||||
saveOrUpData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '保存成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
console.log('handlesave')
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,297 @@
|
||||
<template>
|
||||
|
||||
<div style="width: 30%;margin: 4% 10%">
|
||||
<el-form ref="form" :model="form" label-position="left" label-width="100px">
|
||||
<el-form-item label="姓名">
|
||||
<el-input v-model="form.xm"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号">
|
||||
<el-input v-model="form.sfzh"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="年级">
|
||||
<el-select v-model="form.nj" placeholder="请选择年级">
|
||||
<el-option
|
||||
v-for="item in njDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="院系">
|
||||
<el-select v-model="form.yuanxi" placeholder="请选择院系" @change="changeXy">
|
||||
<el-option
|
||||
v-for="item in yxDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="专业">
|
||||
<el-select v-model="form.zhuanye" placeholder="请选择专业" @change="changgeZy">
|
||||
<el-option
|
||||
v-for="item in zyDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="班级">
|
||||
<el-select v-model="form.banji" placeholder="请选择班级">
|
||||
<el-option
|
||||
v-for="item in bjDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="性别">
|
||||
<el-select v-model="form.xb" placeholder="请选择性别">
|
||||
<el-option
|
||||
v-for="item in xbDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="民族">
|
||||
<el-select v-model="form.mz" placeholder="请选择民族">
|
||||
<el-option
|
||||
v-for="item in mzDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="政治面貌">
|
||||
<el-select v-model="form.zzmm" placeholder="请选择政治面貌">
|
||||
<el-option
|
||||
v-for="item in zzmmDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="培养方向">
|
||||
<el-select v-model="form.pyfx" placeholder="请选择培养方向">
|
||||
<el-option
|
||||
v-for="item in pyfxDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="户籍所在地">
|
||||
<el-input v-model="form.hjszd" placeholder="请输入户籍所在地"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="学号">
|
||||
<el-input v-model="form.xh" placeholder="请输入学号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="form.sjh" placeholder="请输入手机号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="邮箱">
|
||||
<el-input v-model="form.email" placeholder="请输入邮箱"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="即时配送">
|
||||
<el-switch v-model="form.delivery"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动性质">
|
||||
<el-checkbox-group v-model="form.type">
|
||||
<el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="地推活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="线下主题活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="特殊资源">
|
||||
<el-radio-group v-model="form.resource">
|
||||
<el-radio label="线上品牌商赞助"></el-radio>
|
||||
<el-radio label="线下场地免费"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动形式">
|
||||
<el-input type="textarea" v-model="form.desc"></el-input>
|
||||
</el-form-item>-->
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">更新个人信息</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import {queryData,saveData, getZyList, getBjList} from '@/api/sys/grxxgl/grxxgl'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
// import { fetchTree } from '@/api/sys/depart/depart'
|
||||
import {getSelectOptions} from '@/api/sys/dict/dict'
|
||||
import {dataFormatter} from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'qrxxgl',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
form: {
|
||||
zhuanye: '',
|
||||
userid: '',
|
||||
xb: '',
|
||||
sfzh: '',
|
||||
email: '',
|
||||
id: '',
|
||||
xh: '',
|
||||
banji: '',
|
||||
nj: '',
|
||||
pyfx: '',
|
||||
hjszd: '',
|
||||
yuanxi: '',
|
||||
zzmm: '',
|
||||
xm: '',
|
||||
mz: '',
|
||||
sjh: ''
|
||||
},
|
||||
xbDicData: [], // 性别字典 DIC_XB
|
||||
mzDicData: [],// 民族字典 DIC_MZ
|
||||
pyfxDicData: [],// 培养方向字典 DIC_PYFX
|
||||
zzmmDicData: [],// 政治面貌字典 DIC_ZZMM
|
||||
njDicData: [],// 年级字典 DIC_NJ
|
||||
yxDicData: [],// 院系字典 DIC_XY
|
||||
zyDicData: [],// 专业字典 DIC_ZY
|
||||
bjDicData: [],// 班级字典 DIC_BJ
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
getSelectOptions('DIC_XB').then(response => {
|
||||
// 性别字典
|
||||
this.xbDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_MZ').then(response => {
|
||||
// 教师民族字典字典
|
||||
this.mzDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_PYFX').then(response => {
|
||||
// 培养方向字典
|
||||
this.pyfxDicData = response.data
|
||||
})
|
||||
|
||||
getSelectOptions('DIC_ZZMM').then(response => {
|
||||
// 政治面貌字典
|
||||
this.zzmmDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_NJ').then(response => {
|
||||
// 年级字典
|
||||
this.njDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_XY').then(response => {
|
||||
// 院系字典
|
||||
this.yxDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_ZY').then(response => {
|
||||
// 专业字典
|
||||
this.zyDicData = response.data
|
||||
})
|
||||
getSelectOptions('DIC_BJ').then(response => {
|
||||
// 班级字典
|
||||
this.bjDicData = response.data
|
||||
})
|
||||
|
||||
|
||||
queryData().then((response) =>{
|
||||
if(response.data){
|
||||
this.form=response.data;
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
|
||||
// 根据学院获取专业list
|
||||
changeXy(){
|
||||
getZyList(this.form).then((response) => {
|
||||
this.form.zhuanye='' // 专业输入框清空
|
||||
this.form.banji='' // 班级输入框清空
|
||||
this.zyDicData=[] // 重置专业字典
|
||||
this.bjDicData=[] // 班级字典清空
|
||||
this.zyDicData = response.data // 专业字典重新赋值
|
||||
|
||||
})
|
||||
},
|
||||
// 根据专业获取班级list
|
||||
changgeZy(){
|
||||
getBjList(this.form).then((response) =>{
|
||||
this.form.banji='' // 班级输入框清空
|
||||
this.bjDicData=[] // 班级字典清空
|
||||
this.bjDicData = response.data
|
||||
})
|
||||
},
|
||||
onSubmit() {
|
||||
saveData(this.form).then((response) =>{
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '更新成功!'
|
||||
},{
|
||||
type:'error',
|
||||
message: response.msg
|
||||
})
|
||||
})
|
||||
},
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,307 @@
|
||||
<!-- 器材报修验收-->
|
||||
<!-- 库管员业务管理页面 这里操作报修验收 验收后设置状态为验收完成--><!-- 管理员器材报修审核-->
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.isbn" style="width: 200px" placeholder="搜索ISBN书号" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.bName" style="width: 200px" placeholder="搜索书名" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.bAuthor" style="width: 200px" placeholder="搜索作者" class="filter-item"/>
|
||||
<el-select v-model="listQuery.params.bType" style="width: 200px" placeholder="搜索图书种类" class="filter-item">
|
||||
<el-option
|
||||
v-for="item in tszlDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select v-model="listQuery.params.state" style="width: 200px" placeholder="搜索是否逾期"
|
||||
class="filter-item">
|
||||
<el-option
|
||||
v-for="item in stateDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
|
||||
<!-- <el-input v-model="listQuery.params.qctype" style="width: 200px" placeholder="搜索器材种类" class="filter-item"/>-->
|
||||
<!-- <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">-->
|
||||
<!-- 添加-->
|
||||
<!-- </el-button>-->
|
||||
</template>
|
||||
<!-- 表格-->
|
||||
<template slot="data-columns">
|
||||
<!-- <el-table-column type="selection" width="55"/>-->
|
||||
|
||||
<el-table-column align="center" label="ISBN书号" prop="isbn"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
<el-table-column align="center" label="书名" prop="bName"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="图书种类" prop="bType" class-name="DIC_TSZL"/>
|
||||
|
||||
<el-table-column align="center" label="价格" prop="bPrice"/>
|
||||
<el-table-column align="center" label="作者" prop="bAuthor"/>
|
||||
<el-table-column align="center" label="出版商" prop="bPublisher"/>
|
||||
<el-table-column align="center" label="封面">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="right" trigger="hover">
|
||||
<el-image slot="reference" :src="scope.row.bPath" width="80" height="80"/>
|
||||
<el-image style="width: 250px; height: 250px" :src="scope.row.bPath" fit="cover"/>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" label="出版日期">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.bPublicationTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
<el-table-column align="center" label="借阅时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.startTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="应归还时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.endTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="实际归还时间">
|
||||
<template v-if="scope.row.state==='1'" slot-scope="scope" >
|
||||
{{ scope.row.returnTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<!-- <el-table-column align="center" label="出版日期" type="dateformatter" prop="bPublicationTime" />-->
|
||||
<el-table-column align="center" label="库存数量" prop="bNum"/>
|
||||
<el-table-column align="center" label="介绍" prop="bIntroduce"/>
|
||||
<el-table-column align="center" label="借阅次数" prop="bLendNum"/>
|
||||
<!-- <el-table-column :formatter="dataFormatter" align="center" label="状态" prop="bState" class-name="STATE"/>-->
|
||||
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="借还状态" prop="state" class-name="DIC_JHZT"/>
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="是否逾期" prop="exceedState" class-name="DIC_SFYQ"/>
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope" v-if="scope.row.state=='0'">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small"
|
||||
>还书
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
</template>
|
||||
<!-- 表格end-->
|
||||
</data-table>
|
||||
|
||||
<!-- 新增按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="书籍信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px" disabled="disabled">
|
||||
<el-form-item label="Isbn书号">
|
||||
<el-input v-model="formData.isbn"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="书名">
|
||||
<el-input v-model="formData.bName"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="图书类型">
|
||||
<el-select v-model="formData.bType" placeholder="请选图书类型">
|
||||
<el-option
|
||||
v-for="item in tszlDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="价格">
|
||||
<el-input type="number" v-model="formData.bPrice"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="作者">
|
||||
<el-input v-model="formData.bAuthor"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出版商">
|
||||
<el-input v-model="formData.bPublisher"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="出版日期">
|
||||
<el-date-picker
|
||||
v-model="formData.bPublicationTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="数量">
|
||||
<el-input type="number" v-model="formData.bNum"/>
|
||||
</el-form-item>-->
|
||||
<!-- <el-form-item label="封面图片地址">-->
|
||||
<!-- <el-input v-model="formData.bPath" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="介绍">
|
||||
<el-input v-model="formData.bIntroduce"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确认还书</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {fetchTree} from '@/api/sys/depart/depart'
|
||||
import {getSelectOptions} from '@/api/sys/dict/dict'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveData} from '@/api/sys/bookgl/bookgl'
|
||||
import {getBjList, getZyList} from "@/api/sys/grxxgl/grxxgl";
|
||||
import {jieshuData} from "@/api/sys/jieshu/jieshu";
|
||||
import {huanshuData} from "@/api/sys/huanshu/huanshu";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
stateDicData: [],// 状态字典
|
||||
tszlDicData: [],// 图书种类字典DIC_TSZL
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/tjhxxb/controller/queryUserSj',
|
||||
// 启用禁用
|
||||
stateUrl: '/tsjxxb/controller/state',
|
||||
// 删除
|
||||
deleteUrl: '/tsjxxb/controller/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'enable',
|
||||
label: '启用'
|
||||
}, {
|
||||
value: 'disable',
|
||||
label: '禁用'
|
||||
},
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
getSelectOptions('DIC_TSZL').then(response => {
|
||||
// 图书种类字典
|
||||
this.tszlDicData = response.data
|
||||
})
|
||||
|
||||
getSelectOptions('DIC_SFYQ').then(response => {
|
||||
// 图书种类字典
|
||||
this.stateDicData = response.data
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
|
||||
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
console.log('新增')
|
||||
},
|
||||
|
||||
//借出申请按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
// this.formData.roles = row.roleIds.split(',')
|
||||
//this.formData.password = null
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 还书按钮按下
|
||||
handleSave() {
|
||||
//this.formData.bid = this.formData.id;
|
||||
huanshuData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,208 @@
|
||||
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.bookname" style="width: 200px" placeholder="搜索书名" class="filter-item"/>
|
||||
<el-select v-model="listQuery.params.state" style="width: 200px" placeholder="搜索借还类型"
|
||||
class="filter-item">
|
||||
<el-option
|
||||
v-for="item in stateDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-date-picker
|
||||
v-model="listQuery.params.createTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
placeholder="选择开始时间"
|
||||
value-format="yyyy-MM-dd"
|
||||
class="filter-item" style="width: 200px"
|
||||
/>
|
||||
<el-date-picker
|
||||
v-model="listQuery.params.updateTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
placeholder="选择结束时间"
|
||||
value-format="yyyy-MM-dd"
|
||||
class="filter-item" style="width: 200px"
|
||||
/>
|
||||
|
||||
</template>
|
||||
<!-- 表格-->
|
||||
<template slot="data-columns">
|
||||
<!-- <el-table-column type="selection" width="55"/>-->
|
||||
|
||||
<el-table-column align="center" label="书名" prop="bookname"/>
|
||||
|
||||
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="借还类型" prop="state" class-name="DIC_JHTYPE"/>
|
||||
<el-table-column align="center" label="发生时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.createTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
|
||||
</template>
|
||||
<!-- 表格end-->
|
||||
</data-table>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {fetchTree} from '@/api/sys/depart/depart'
|
||||
import {getSelectOptions} from '@/api/sys/dict/dict'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveData} from '@/api/sys/bookgl/bookgl'
|
||||
import {getBjList, getZyList} from "@/api/sys/grxxgl/grxxgl";
|
||||
import {jieshuData} from "@/api/sys/jieshu/jieshu";
|
||||
import {huanshuData} from "@/api/sys/huanshu/huanshu";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
stateDicData: [],// 状态字典
|
||||
tszlDicData: [],// 图书种类字典DIC_TSZL
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/tlog/logcontrol/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/tsjxxb/controller/state',
|
||||
// 删除
|
||||
deleteUrl: '/tsjxxb/controller/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'enable',
|
||||
label: '启用'
|
||||
}, {
|
||||
value: 'disable',
|
||||
label: '禁用'
|
||||
},
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
getSelectOptions('DIC_TSZL').then(response => {
|
||||
// 图书种类字典
|
||||
this.tszlDicData = response.data
|
||||
})
|
||||
|
||||
getSelectOptions('DIC_JHTYPE').then(response => {
|
||||
// 借书还书字典
|
||||
this.stateDicData = response.data
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
|
||||
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
console.log('新增')
|
||||
},
|
||||
|
||||
//借出申请按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
// this.formData.roles = row.roleIds.split(',')
|
||||
//this.formData.password = null
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 还书按钮按下
|
||||
handleSave() {
|
||||
//this.formData.bid = this.formData.id;
|
||||
huanshuData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,286 @@
|
||||
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.isbn" style="width: 200px" placeholder="搜索ISBN书号" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.bName" style="width: 200px" placeholder="搜索书名" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.bAuthor" style="width: 200px" placeholder="搜索作者" class="filter-item"/>
|
||||
<el-select v-model="listQuery.params.bType" style="width: 200px" placeholder="搜索图书种类" class="filter-item">
|
||||
<el-option
|
||||
v-for="item in tszlDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select v-model="listQuery.params.bState" style="width: 200px" placeholder="搜索图书状态" class="filter-item">
|
||||
<el-option
|
||||
v-for="item in stateDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
|
||||
<!-- <el-input v-model="listQuery.params.qctype" style="width: 200px" placeholder="搜索器材种类" class="filter-item"/>-->
|
||||
<!-- <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">-->
|
||||
<!-- 添加-->
|
||||
<!-- </el-button>-->
|
||||
</template>
|
||||
<!-- 表格-->
|
||||
<template slot="data-columns">
|
||||
<!-- <el-table-column type="selection" width="55"/>-->
|
||||
|
||||
<el-table-column align="center" label="ISBN书号" prop="isbn"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
<el-table-column align="center" label="书名" prop="bName" />
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="图书种类" prop="bType" class-name="DIC_TSZL"/>
|
||||
|
||||
<el-table-column align="center" label="价格" prop="bPrice" />
|
||||
<el-table-column align="center" label="作者" prop="bAuthor" />
|
||||
<el-table-column align="center" label="出版商" prop="bPublisher" />
|
||||
<el-table-column align="center" label="封面" >
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="right" trigger="hover">
|
||||
<el-image slot="reference" :src="scope.row.bPath" width="80" height="80"/>
|
||||
<el-image style="width: 250px; height: 250px" :src="scope.row.bPath" fit="cover"/>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="出版日期">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.bPublicationTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column align="center" label="出版日期" type="dateformatter" prop="bPublicationTime" />-->
|
||||
<el-table-column align="center" label="库存数量" prop="bNum" />
|
||||
<el-table-column align="center" label="介绍" prop="bIntroduce" />
|
||||
<el-table-column align="center" label="借阅次数" prop="bLendNum" />
|
||||
<el-table-column :formatter="dataFormatter" align="center" label="状态" prop="bState" class-name="STATE"/>
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small" v-if="0===scope.row.bState"
|
||||
>借书
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
</template>
|
||||
<!-- 表格end-->
|
||||
</data-table>
|
||||
|
||||
<!-- 新增按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="书籍信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px" disabled="disabled">
|
||||
<el-form-item label="Isbn书号">
|
||||
<el-input v-model="formData.isbn"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="书名">
|
||||
<el-input v-model="formData.bName" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图书类型">
|
||||
<el-select v-model="formData.bType" placeholder="请选图书类型" >
|
||||
<el-option
|
||||
v-for="item in tszlDicData"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.value" >
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="价格">
|
||||
<el-input type="number" v-model="formData.bPrice"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="作者">
|
||||
<el-input v-model="formData.bAuthor" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出版商">
|
||||
<el-input v-model="formData.bPublisher" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="出版日期">
|
||||
<el-date-picker
|
||||
v-model="formData.bPublicationTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量">
|
||||
<el-input type="number" v-model="formData.bNum" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="封面图片地址">-->
|
||||
<!-- <el-input v-model="formData.bPath" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="介绍">
|
||||
<el-input v-model="formData.bIntroduce" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确认借书</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {fetchTree} from '@/api/sys/depart/depart'
|
||||
import {getSelectOptions} from '@/api/sys/dict/dict'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveData} from '@/api/sys/bookgl/bookgl'
|
||||
import {getBjList, getZyList} from "@/api/sys/grxxgl/grxxgl";
|
||||
import {jieshuData} from "@/api/sys/jieshu/jieshu";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
stateDicData:[],// 状态字典
|
||||
tszlDicData:[],// 图书种类字典DIC_TSZL
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/tsjxxb/controller/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/tsjxxb/controller/state',
|
||||
// 删除
|
||||
deleteUrl: '/tsjxxb/controller/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'enable',
|
||||
label: '启用'
|
||||
}, {
|
||||
value: 'disable',
|
||||
label: '禁用'
|
||||
},
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
getSelectOptions('DIC_TSZL').then(response => {
|
||||
// 图书种类字典
|
||||
this.tszlDicData = response.data
|
||||
})
|
||||
|
||||
getSelectOptions('STATE').then(response => {
|
||||
// 图书种类字典
|
||||
this.stateDicData = response.data
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
|
||||
|
||||
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
console.log('新增')
|
||||
},
|
||||
|
||||
//借出申请按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
// this.formData.roles = row.roleIds.split(',')
|
||||
//this.formData.password = null
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 确认按钮按下
|
||||
handleSave() {
|
||||
this.formData.bid=this.formData.id;
|
||||
jieshuData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,212 @@
|
||||
<!-- 毕业生信息管理-->
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.id" style="width: 200px" placeholder="搜索留言编码" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.itemname" style="width: 200px" placeholder="搜索发布人昵称" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.text" style="width: 200px" placeholder="搜索留言内容" class="filter-item" />
|
||||
<label>开始时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="开始时间" class="filter-item"
|
||||
v-model="listQuery.params.createTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<label>截至时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="截至时间" class="filter-item"
|
||||
v-model="listQuery.params.updateTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>
|
||||
|
||||
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column align="center" label="留言编号" prop="id"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
|
||||
<el-table-column align="center" label="留言人昵称" prop="itemname"/>
|
||||
<el-table-column align="center" label="留言内容" prop="text"/>
|
||||
<el-table-column align="center" label="发布时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.createTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small"
|
||||
>编辑留言内容
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
</el-table-column>
|
||||
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<!-- 编辑按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="编辑留言信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
<el-form-item label="留言编号">
|
||||
<el-input v-model="formData.id" disabled="disabled"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="留言人昵称">
|
||||
<el-input v-model="formData.itemname"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="留言内容">
|
||||
<el-input v-model="formData.text"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发布日期">
|
||||
<el-date-picker
|
||||
v-model="formData.createTime" disabled="disabled"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveLyOrUpData} from "@/api/sys/liuyangl/liuyangl";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {
|
||||
banji: '',
|
||||
zhuanye: ''
|
||||
}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/liuyan/lygl/paging',
|
||||
// 删除
|
||||
deleteUrl: '/liuyan/lygl/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
//编辑按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 确认按钮按下
|
||||
handleSave() {
|
||||
saveLyOrUpData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '保存成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
console.log('handlesave')
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,103 @@
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
>
|
||||
|
||||
<template slot="filter-content">
|
||||
<el-select v-model="listQuery.params.title" clearable class="filter-item">
|
||||
<el-option
|
||||
v-for="item in types"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-model="listQuery.params.userName" clearable placeholder="操作人" style="width: 200px;" class="filter-item" />
|
||||
</template>
|
||||
|
||||
<template slot="data-columns">
|
||||
|
||||
<el-table-column
|
||||
label="日志类型"
|
||||
prop="title"
|
||||
/>
|
||||
|
||||
<el-table-column
|
||||
label="操作人"
|
||||
prop="userName"
|
||||
/>
|
||||
|
||||
<el-table-column
|
||||
label="IP"
|
||||
prop="ip"
|
||||
/>
|
||||
|
||||
<el-table-column
|
||||
label="操作时间"
|
||||
prop="createTime"
|
||||
/>
|
||||
|
||||
</template>
|
||||
|
||||
</data-table>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
|
||||
export default {
|
||||
name: 'SysLogList',
|
||||
components: { DataTable },
|
||||
filters: {
|
||||
|
||||
// 订单状态
|
||||
userState(value) {
|
||||
const map = {
|
||||
'0': '正常',
|
||||
'1': '禁用'
|
||||
}
|
||||
return map[value]
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
listQuery: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
params: {
|
||||
}
|
||||
},
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/exam/api/sys/log/paging'
|
||||
},
|
||||
|
||||
types: [
|
||||
{
|
||||
value: '登录系统',
|
||||
label: '登录系统'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,76 @@
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="data-columns">
|
||||
|
||||
<el-table-column
|
||||
label="角色ID"
|
||||
prop="id"
|
||||
/>
|
||||
|
||||
<el-table-column
|
||||
label="角色名称"
|
||||
prop="roleName"
|
||||
/>
|
||||
|
||||
</template>
|
||||
|
||||
</data-table>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
|
||||
export default {
|
||||
name: 'SysRoleList',
|
||||
components: { DataTable },
|
||||
filters: {
|
||||
|
||||
// 订单状态
|
||||
userState(value) {
|
||||
const map = {
|
||||
'0': '正常',
|
||||
'1': '禁用'
|
||||
}
|
||||
return map[value]
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
listQuery: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
params: {
|
||||
}
|
||||
},
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/exam/api/sys/role/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/sys/user/state'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,209 @@
|
||||
<!-- 毕业生信息管理-->
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.id" style="width: 200px" placeholder="搜索公告编码" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.title" style="width: 200px" placeholder="搜索公告标题" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.text" style="width: 200px" placeholder="搜索公告内容" class="filter-item" />
|
||||
<label>开始时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="开始时间" class="filter-item"
|
||||
v-model="listQuery.params.createTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<label>截至时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="截至时间" class="filter-item"
|
||||
v-model="listQuery.params.updateTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<!-- <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>-->
|
||||
|
||||
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<!-- <el-table-column type="selection" width="55"/>-->
|
||||
<el-table-column align="center" label="公告编号" prop="id"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
|
||||
|
||||
<el-table-column align="center" label="公告标题" prop="title"/>
|
||||
<el-table-column align="center" label="公告内容" prop="text"/>
|
||||
<el-table-column align="center" label="发布时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.createTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<!-- <el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small"
|
||||
>编辑公告内容
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<!-- 编辑按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="编辑公告信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
<el-form-item label="公告编号">
|
||||
<el-input v-model="formData.id" disabled="disabled"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="公告标题">
|
||||
<el-input v-model="formData.title"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="公告内容">
|
||||
<el-input v-model="formData.text"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发布日期">
|
||||
<el-date-picker
|
||||
v-model="formData.createTime" disabled="disabled"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveOrUpData} from "@/api/sys/gggl/gggl";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {
|
||||
banji: '',
|
||||
zhuanye: ''
|
||||
}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/gonggao/gggl/paging',
|
||||
// 删除
|
||||
deleteUrl: '/gonggao/gggl/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
//编辑按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 确认按钮按下
|
||||
handleSave() {
|
||||
saveOrUpData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '保存成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
console.log('handlesave')
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,209 @@
|
||||
<!-- 毕业生信息管理-->
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
<template slot="filter-content">
|
||||
<el-input v-model="listQuery.params.id" style="width: 200px" placeholder="搜索留言编码" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.itemname" style="width: 200px" placeholder="搜索发布人昵称" class="filter-item"/>
|
||||
<el-input v-model="listQuery.params.text" style="width: 200px" placeholder="搜索留言内容" class="filter-item" />
|
||||
<label>开始时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="开始时间" class="filter-item"
|
||||
v-model="listQuery.params.createTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<label>截至时间</label>
|
||||
<el-date-picker style="width: 200px" placeholder="截至时间" class="filter-item"
|
||||
v-model="listQuery.params.updateTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>
|
||||
|
||||
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<!-- <el-table-column type="selection" width="55"/>-->
|
||||
<el-table-column align="center" label="留言编号" prop="id"/>
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.id }}</a>
|
||||
</template>
|
||||
|
||||
<el-table-column align="center" label="留言人昵称" prop="itemname"/>
|
||||
<el-table-column align="center" label="留言内容" prop="text"/>
|
||||
<el-table-column align="center" label="发布时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.createTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<!-- <el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<a @click="handleUpdate(scope.row)">
|
||||
<el-button link type="primary" size="small"
|
||||
>编辑留言内容
|
||||
</el-button>
|
||||
</a>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<!-- 编辑按钮按下-->
|
||||
<el-dialog :visible.sync="dialogVisible" title="编辑留言信息" width="500px">
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
<el-form-item label="留言编号">
|
||||
<el-input v-model="formData.id" disabled="disabled"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="留言人昵称">
|
||||
<el-input v-model="formData.itemname"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="留言内容">
|
||||
<el-input v-model="formData.text"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发布日期">
|
||||
<el-date-picker
|
||||
v-model="formData.createTime" disabled="disabled"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleUpCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import {dataFormatter} from '@/utils'
|
||||
import {saveLyOrUpData} from "@/api/sys/liuyangl/liuyangl";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'BysxxglList',
|
||||
components: {
|
||||
DepartTreeSelect,
|
||||
DataTable,
|
||||
MeetRole
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
defaultProps: {
|
||||
value: 'value',
|
||||
text: 'text',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
qcglData: {},
|
||||
dialogVisible: false,// 编辑是否显示
|
||||
|
||||
listQuery: {
|
||||
current: 0,
|
||||
size: 10,
|
||||
total: 0,
|
||||
params: {
|
||||
banji: '',
|
||||
zhuanye: ''
|
||||
}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/liuyan/lygl/paging',
|
||||
// 删除
|
||||
deleteUrl: '/liuyan/lygl/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 页面初始化
|
||||
created() {
|
||||
|
||||
},
|
||||
|
||||
// 方法
|
||||
methods: {
|
||||
// 格式化字典
|
||||
dataFormatter,
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
//编辑按钮按下
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
},
|
||||
|
||||
//取消按钮按下
|
||||
handleUpCancel() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.id = data.id
|
||||
console.log(data + "----depart")
|
||||
},
|
||||
// 确认按钮按下
|
||||
handleSave() {
|
||||
saveLyOrUpData(this.formData).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '保存成功!'
|
||||
}, {
|
||||
type: 'error',
|
||||
message: response.msg
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
console.log('handlesave')
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,200 @@
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<data-table
|
||||
ref="pagingTable"
|
||||
:options="options"
|
||||
:list-query="listQuery"
|
||||
@multi-actions="handleMultiAction"
|
||||
>
|
||||
|
||||
<template slot="filter-content">
|
||||
|
||||
<el-input v-model="listQuery.params.userName" style="width: 200px" placeholder="搜索登录名" class="filter-item" />
|
||||
<el-input v-model="listQuery.params.realName" style="width: 200px" placeholder="搜索姓名" class="filter-item" />
|
||||
<el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleAdd">
|
||||
添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot="data-columns">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column align="center" label="用户名">
|
||||
<template slot-scope="scope">
|
||||
<a style="color: #1890ff" @click="handleUpdate(scope.row)">{{ scope.row.userName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="姓名" prop="realName"/>
|
||||
<el-table-column align="center" label="角色" prop="roleIds"/>
|
||||
<el-table-column align="center" label="创建时间" prop="createTime"/>
|
||||
<el-table-column align="center" label="创建时间">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.createTime | xmDateFormat }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.state | stateFilter }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</data-table>
|
||||
|
||||
<el-dialog :visible.sync="dialogVisible" title="添加用户" width="500px">
|
||||
|
||||
<el-form :model="formData" label-position="left" label-width="100px">
|
||||
|
||||
<el-form-item label="用户名">
|
||||
<el-input v-model="formData.userName" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="姓名">
|
||||
<el-input v-model="formData.realName" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="密码">
|
||||
<el-input v-model="formData.password" placeholder="不修改请留空" type="password" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="部门">
|
||||
<depart-tree-select v-model="formData.departId" :options="treeData" :props="defaultProps" />
|
||||
</el-form-item>-->
|
||||
|
||||
<el-form-item label="角色">
|
||||
<meet-role v-model="formData.roles" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="头像" prop="avatar">-->
|
||||
|
||||
<!-- <single-upload-->
|
||||
<!-- v-model="formData.avatar"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确 定</el-button>
|
||||
</div>
|
||||
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DataTable from '@/components/DataTable'
|
||||
import MeetRole from '@/components/MeetRole'
|
||||
import { saveData } from '@/api/sys/user/user'
|
||||
import DepartTreeSelect from '@/components/DepartTreeSelect'
|
||||
import { fetchTree } from '@/api/sys/depart/depart'
|
||||
|
||||
export default {
|
||||
name: 'SysUserList',
|
||||
components: { DepartTreeSelect, DataTable, MeetRole },
|
||||
filters: {
|
||||
|
||||
// 订单状态
|
||||
userState(value) {
|
||||
const map = {
|
||||
'0': '正常',
|
||||
'1': '禁用'
|
||||
}
|
||||
return map[value]
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
treeData: [],
|
||||
defaultProps: {
|
||||
value: 'id',
|
||||
label: 'deptName',
|
||||
children: 'children'
|
||||
},
|
||||
dialogVisible: false,
|
||||
|
||||
listQuery: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
params: {
|
||||
}
|
||||
},
|
||||
|
||||
formData: {
|
||||
avatar: ''
|
||||
},
|
||||
|
||||
options: {
|
||||
// 列表请求URL
|
||||
listUrl: '/exam/api/sys/user/paging',
|
||||
// 启用禁用
|
||||
stateUrl: '/exam/api/sys/user/state',
|
||||
deleteUrl: '/exam/api/sys/user/delete',
|
||||
// 批量操作列表
|
||||
multiActions: [
|
||||
{
|
||||
value: 'enable',
|
||||
label: '启用'
|
||||
}, {
|
||||
value: 'disable',
|
||||
label: '禁用'
|
||||
},
|
||||
{
|
||||
value: 'delete',
|
||||
label: '删除'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
fetchTree({}).then(response => {
|
||||
this.treeData = response.data
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
handleUploadSuccess(response) {
|
||||
// 上传图片赋值
|
||||
this.formData.avatar = response.data.url
|
||||
},
|
||||
|
||||
handleAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
handleUpdate(row) {
|
||||
this.dialogVisible = true
|
||||
this.formData = row
|
||||
this.formData.roles = row.roleIds.split(',')
|
||||
this.formData.password = null
|
||||
|
||||
console.log(JSON.stringify(this.formData))
|
||||
},
|
||||
|
||||
departSelected(data) {
|
||||
this.formData.departId = data.id
|
||||
},
|
||||
handleSave() {
|
||||
saveData(this.formData).then(() => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '用户修改成功!'
|
||||
})
|
||||
this.dialogVisible = false
|
||||
this.$refs.pagingTable.getList()
|
||||
})
|
||||
},
|
||||
|
||||
// 批量操作监听
|
||||
handleMultiAction(obj) {
|
||||
if (obj.opt === 'cancel') {
|
||||
this.handleCancelOrder(obj.ids)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user