Browse Source

志愿先锋

master
Jackwang 4 years ago
parent
commit
6236331001
  1. 2
      src/views/modules/heart/volunteerunion-add-or-update.vue
  2. 148
      src/views/modules/user/volunteerpioneer-add-or-update.vue
  3. 152
      src/views/modules/user/volunteerpioneer-user.vue
  4. 81
      src/views/modules/user/volunteerpioneer.vue

2
src/views/modules/heart/volunteerunion-add-or-update.vue

@ -12,7 +12,7 @@
</el-form-item>
<el-form-item prop="content"
label="团队介绍">
<el-row style="height: 550px;">
<el-row style="height: 400px;">
<tinymce-editor v-model="dataForm.content"></tinymce-editor>
</el-row>
</el-form-item>

148
src/views/modules/user/volunteerpioneer-add-or-update.vue

@ -1,40 +1,42 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
<el-form-item label="志愿者id" prop="volunteerId">
<el-input v-model="dataForm.volunteerId" placeholder="志愿者id"></el-input>
</el-form-item>
<!-- <el-form-item label="志愿者id" prop="volunteerId">-->
<!-- <el-input v-model="dataForm.volunteerId" placeholder="志愿者id"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="姓名" prop="realName" >
<el-input v-model="dataForm.realName" disabled placeholder="姓名" style="width:300px"></el-input>
<el-button type="primary" @click="selectVolunteerMethod()" style="margin-left: 30px">{{"选择志愿者"}}</el-button>
</el-form-item>
<!-- <el-form-item label="电话" prop="mobile" >-->
<!-- <el-input v-model="dataForm.mobile" disabled placeholder="电话" style="width:300px"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="照片" prop="imgUrl">
<el-input v-model="dataForm.imgUrl" placeholder="照片"></el-input>
</el-form-item>
<el-form-item label="上下架标识 0-上架,1-下架" prop="bannerFlag">
<el-input v-model="dataForm.bannerFlag" placeholder="上下架标识 0-上架,1-下架"></el-input>
<el-upload class="avatar-uploader"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="dataForm.imgUrl"
:src="dataForm.imgUrl"
class="avatar">
<i v-else
class="el-icon-plus avatar-uploader-icon"></i>
<div slot="tip"
class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input-number v-model="dataForm.sort" controls-position="right" :min="0" label="排序"></el-input-number>
</el-form-item>
<el-form-item label="事迹描述" prop="content">
<el-input v-model="dataForm.content" placeholder="事迹描述"></el-input>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="dataForm.sort" placeholder="排序"></el-input>
</el-form-item>
<el-form-item label="乐观锁" prop="revision">
<el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="createdBy">
<el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-input v-model="dataForm.createdTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="更新人" prop="updatedBy">
<el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>
</el-form-item>
<el-form-item label="更新时间" prop="updatedTime">
<el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>
</el-form-item>
<el-form-item label="删除标识" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标识"></el-input>
<el-row style="height: 400px;">
<tinymce-editor v-model="dataForm.content"></tinymce-editor>
</el-row>
</el-form-item>
</el-form>
<volunteerpioneer-user v-if="pioneerUserVisible" ref="pioneerUser" v-on:connectResponse="connectResponse"></volunteerpioneer-user>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
@ -44,12 +46,17 @@
<script>
import debounce from 'lodash/debounce'
import TinymceEditor from '@/components/tinymce-editor'
import VolunteerpioneerUser from './volunteerpioneer-user'
import Cookies from 'js-cookie'
export default {
data () {
return {
visible: false,
dataForm: {
id: '',
realName:'',
// mobile:'',
volunteerId: '',
imgUrl: '',
bannerFlag: '',
@ -61,19 +68,22 @@ export default {
updatedBy: '',
updatedTime: '',
delFlag: ''
}
},
pioneerUserVisible:false,
uploadUrl: '',
loading: false,
}
},
computed: {
dataRule () {
return {
volunteerId: [
realName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
imgUrl: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
bannerFlag: [
mobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
content: [
@ -82,28 +92,41 @@ export default {
sort: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
revision: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
delFlag: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
},
created () {
this.$nextTick(() => {
this.uploadUrl = `${window.SITE_CONFIG['apiURL']}/oss/file/upload?token=${Cookies.get('token')}`
})
},
components: {
TinymceEditor,
VolunteerpioneerUser
},
methods: {
//
handleAvatarSuccess (res, file) {
this.loading = false
this.dataForm.imgUrl = res.data.url
},
beforeAvatarUpload (file) {
this.loading = true
},
// dialog
connectResponse (connectResponse) {
// this.dataForm.mobile = connectResponse[0].mobile
this.dataForm.realName = connectResponse[0].realName
this.dataForm.volunteerId = connectResponse[0].id
},
//
selectVolunteerMethod () {
this.pioneerUserVisible = true
this.$nextTick(() => {
this.$refs.pioneerUser.init()
})
},
init () {
this.visible = true
this.$nextTick(() => {
@ -150,3 +173,28 @@ export default {
}
}
</script>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>

152
src/views/modules/user/volunteerpioneer-user.vue

@ -0,0 +1,152 @@
<template>
<el-dialog :visible.sync="visible"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
height="90%">
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()">
<!-- <el-form-item label="志愿者名">-->
<!-- <el-input v-model="dataForm.username" :placeholder="$t('user.username')" clearable maxlength="10" @keyup.native="btKeyUpUserName"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="姓名">
<el-input v-model="dataForm.realName" placeholder='姓名' clearable maxlength="10" @keyup.native="btKeyUpRealname"></el-input>
</el-form-item>
<!-- <el-form-item label="邮箱">-->
<!-- <el-input v-model="dataForm.email" placeholder="邮箱" clearable maxlength="20" @keyup.native="btKeyUpEmail"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="手机号">
<el-input v-model="dataForm.mobile" placeholder="手机号" clearable maxlength="11" @keyup.native="btKeyUpMobile"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataListOverWrite()" type="success">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" ref="Table" :data="dataList" max-height="450" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column
type="index"
header-align="center"
align="center"
width="50"
label='序号'
></el-table-column>
<!-- <el-table-column prop="nickname" :label="$t('user.username')" sortable="custom" header-align="center" align="center" width="100"></el-table-column>-->
<el-table-column prop="realName" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="allDeptNames" :label="$t('user.deptName')" header-align="center" align="center" min-width="120"></el-table-column>
<!-- <el-table-column prop="email" :label="$t('user.email')" header-align="center" align="center" width="200"></el-table-column>-->
<el-table-column prop="mobile" :label="$t('user.mobile')" sortable="custom" header-align="center" align="center" width="120"></el-table-column>
<!-- <el-table-column prop="status" :label="$t('user.status')" sortable="custom" header-align="center" align="center" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ $t('user.status0') }}</el-tag>-->
<!-- <el-tag v-else size="small" type="success">{{ $t('user.status1') }}</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column prop="createdTime" :label="$t('user.createDate')" sortable="custom" header-align="center" align="center" width="180"></el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<el-form>
<el-button type="primary" @click="getInfo()" style="margin-left:48%" class="end">{{"确定"}}</el-button>
</el-form>
</div>
</el-card>
</el-dialog>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/app-user/volunteerinfo/getVolunteerListForPionner',
getDataListIsPage: true,
deleteURL: '/sys/user',
deleteIsBatch: true,
exportURL: '/sys/user/export'
},
visible: false,
dataForm: {
realName: '',
mobile: ''
},
responseData: []
}
},
methods: {
// btKeyUpUserName (e) {
// e.target.value = e.target.value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|·~@#%&*\-+={}|]/g, '')
// this.dataForm.username = e.target.value
// },
btKeyUpRealname (e) {
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g, '')
this.dataForm.realname = e.target.value
},
// btKeyUpEmail (e) {
// e.target.value = e.target.value.replace(/[`~!#$%^&*()_\-+=<>?:"{}|~#%&*={}|]/g, '')
// this.dataForm.email = e.target.value
// },
btKeyUpMobile (e) {
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_=<>?:"{}|·~!@#¥%……&*()——={}|《》?:“”【】、;‘’,。、]/g, '')
this.dataForm.mobile = e.target.value
},
getDataListOverWrite () {
this.page = 1
this.getDataList()
},
//
init () {
this.dataForm.realName = ''
this.dataForm.mobile = ''
this.visible = true
this.$nextTick(() => {
this.getDataList()
})
},
handleSelectionChange (val) {
this.responseData = val
if (val.length > 1) {
this.$refs.Table.clearSelection()
this.$refs.Table.toggleRowSelection(val.pop())
}
},
getInfo () {
if (this.responseData.length === 0) {
this.$message({
message: '请选择志愿者!',
type: 'warning'
})
return false
}
this.$emit('connectResponse', this.responseData)
this.visible = false
}
}
}
</script>
<style scoped lang='scss'>
.el-form{
.end{
margin-top: 10px;
}
}
.el-button--success{
margin-top: 0px!important;
}
thead .el-table-column--selection .cell{
display: none;
}
</style>

81
src/views/modules/user/volunteerpioneer.vue

@ -2,37 +2,62 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-user__volunteerpioneer}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
<el-form-item label="姓名" prop="realName">
<el-input v-model="dataForm.realName"
placeholder="姓名"
clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('user:volunteerpioneer:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('user:volunteerpioneer:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="id" label="主键" header-align="center" align="center"></el-table-column>
<el-table-column prop="volunteerId" label="志愿者id" header-align="center" align="center"></el-table-column>
<el-table-column prop="imgUrl" label="照片" header-align="center" align="center"></el-table-column>
<el-table-column prop="bannerFlag" label="上下架标识 0-上架,1-下架" header-align="center" align="center"></el-table-column>
<el-table-column prop="content" label="事迹描述" header-align="center" align="center"></el-table-column>
<el-table-column type="index"
width="50"
label="序号" align="center"></el-table-column>
<!-- <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>-->
<!-- <el-table-column prop="id" label="主键" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="volunteerId" label="志愿者id" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="realName" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="imgUrl" label="照片" :show-overflow-tooltip="true" header-align="center" align="center">
<template slot-scope="scope">
<el-popover placement="right"
title=""
trigger="click"
class="big_image">
<el-image slot="reference"
min-width="70"
height="70"
v-if="scope.row.imgUrl"
:src="scope.row.imgUrl"
:alt="scope.row.imgUrl"></el-image>
<img class="big_image"
:src="scope.row.imgUrl" />
</el-popover>
</template>
</el-table-column>
<!-- <el-table-column prop="bannerFlag" label="上下架标识 0-上架,1-下架" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="content" label="事迹描述" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="sort" label="排序" header-align="center" align="center"></el-table-column>
<el-table-column prop="revision" label="乐观锁" header-align="center" align="center"></el-table-column>
<el-table-column prop="createdBy" label="创建人" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="revision" label="乐观锁" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="createdBy" label="创建人" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="createdTime" label="创建时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="updatedBy" label="更新人" header-align="center" align="center"></el-table-column>
<el-table-column prop="updatedTime" label="更新时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="delFlag" label="删除标识" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="updatedBy" label="更新人" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="updatedTime" label="更新时间" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="delFlag" label="删除标识" header-align="center" align="center"></el-table-column>-->
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button v-if="$hasPermission('user:volunteerpioneer:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission('user:volunteerpioneer:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
<el-button type="text" size="small" @click="handleIsUpDown(scope.row)">
{{scope.row.bannerFlag=='0'?'下架':'上架'}}
</el-button>
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
@ -71,6 +96,30 @@ export default {
},
components: {
AddOrUpdate
},
methods :{
//
handleIsUpDown (val) {
this.$confirm(this.$t('prompt.info', { 'handle': '上下架' }), this.$t('上下架'), {
confirmButtonText: this.$t('confirm'),
cancelButtonText: this.$t('cancel'),
type: 'warning'
}).then(() => {
this.$http['put']('/app-user/volunteerpioneer/handleIsUpDown', val).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.getDataList()
}
})
}).catch(() => { })
}).catch(() => { })
},
}
}
</script>

Loading…
Cancel
Save