Commit 88b5b090 authored by Zhang Xiaojie's avatar Zhang Xiaojie

Merge branch 'dev' of gitlab.33.cn:CassiniatSaturn/fns_backend into dev

parents 838c98df 63d5edf2
......@@ -26,6 +26,7 @@
<a-form-model-item label="手机号" prop="tel">
<a-input
v-model="form.tel"
:maxLength="11"
placeholder="请输入手机号"
style="width: 200px;"
/>
......@@ -93,7 +94,7 @@ export default Vue.extend({
{ required: true, message: '请输入名称', max: 6, trigger: 'blur' },
],
tel: [
{ required: true, message: '请输入手机号', max: 11, trigger: 'blur' },
{ required: true, message: '请输入手机号', len: 11, trigger: 'blur' },
],
bank: [{ required: true, message: '请输入所属银行', trigger: 'blur' }],
}
......@@ -142,6 +143,7 @@ export default Vue.extend({
)
if (ret && ret.code === 200) {
message.success('发布成功')
this.$store.dispatch('platformUserManagement/query')
}
} else {
return false
......
......@@ -8,29 +8,40 @@
style="text-align: center;"
bordered
>
<span slot="level">超级管理员</span>
<span slot="level">银行管理员</span>
<template #created_at="text">
{{ text | formatDate }}
</template>
<template #status="text">
{{ text | filterUserStatus }}
{{ text | platformfilterUserStatus }}
</template>
<div slot="action" slot-scope="text, record">
<a
:class="record.status == eUserStatus.enable ? 'undeleteable' : ' '"
:class="
record.status == eUserResStatus.enable_notOnPosition ||
record.status === eUserResStatus.enable_onPosition
? 'undeleteable'
: ' '
"
@click="showModal(record, 0)"
>
删除
</a>
<a-divider type="vertical" />
<a
v-if="record.status == eUserStatus.disable"
v-if="
record.status == eUserResStatus.disable_noPosition ||
record.status === eUserResStatus.disable_notOnPosition
"
@click="showModal(record, 1)"
>
启用
</a>
<a
v-else-if="eUserStatus.enable === record.status"
v-else-if="
record.status === eUserResStatus.enable_notOnPosition ||
eUserResStatus.enable_onPosition
"
@click="showModal(record, 2)"
>
禁用
......@@ -65,7 +76,7 @@ import { modalType } from './const'
import { getPlatformUserManagementTableColumns } from '@/const/columns/superManagerColumn'
import { mapActions, mapMutations, mapState } from 'vuex'
import StaffService from '@/service/StaffService'
import { eUserStatus } from '@/types/user'
import { eUserReqStatus, eUserResStatus } from '@/types/user'
export default Vue.extend({
computed: {
......@@ -90,7 +101,8 @@ export default Vue.extend({
show: false,
content: '',
title: '',
eUserStatus,
eUserReqStatus,
eUserResStatus,
}
},
methods: {
......@@ -121,19 +133,24 @@ export default Vue.extend({
}
this.show = true
},
handleOk() {
async handleOk() {
if (this.type == modalType.delete) {
await StaffService.getInstance().deleteStaff(this.uuid)
} else if (this.type == modalType.on) {
StaffService.getInstance().modifyStaffStatus({
await StaffService.getInstance().modifyStaffStatus({
uuid: this.uuid,
status: eUserStatus.enable,
status: eUserReqStatus.enable,
})
} else if (this.type == modalType.off) {
StaffService.getInstance().modifyStaffStatus({
await StaffService.getInstance().modifyStaffStatus({
uuid: this.uuid,
status: eUserStatus.disable,
status: eUserReqStatus.disable,
})
}
this.$store.commit('/platformUserManagement/save', {
page: 1,
})
this.$store.dispatch('/platformUserManagement/query')
this.show = false
},
},
......
......@@ -42,6 +42,7 @@
class="my-1"
:is="type == 1 ? 'addNormalManagerModal' : 'addSuperManagerModal'"
ref="addrModal"
:userType="type"
:level="level"
/>
</div>
......
import { column } from "@/types/column"
const columns:Array<column>=
[
import { column } from '@/types/column'
const columns: Array<column> = [
{
title: '发布时间',
align:'center',
dataIndex: 'time',
align: 'center',
dataIndex: 'created_at',
scopedSlots: { customRender: 'created_at' },
},
{
title: 'banner名称',
align:'center',
dataIndex: 'name',
align: 'center',
dataIndex: 'title',
},
{
title: 'banner位置',
align:'center',
align: 'center',
dataIndex: 'location',
scopedSlots: { customRender: 'location' },
},
{
title: '图片',
align:'center',
dataIndex: 'path',
scopedSlots: { customRender: 'path' },
align: 'center',
dataIndex: 'file_name',
scopedSlots: { customRender: 'file_name' },
},
{
title: '状态',
align:'center',
dataIndex: 'state',
align: 'center',
dataIndex: 'banner_status',
scopedSlots: { customRender: 'banner_status' },
},
{
title: '操作',
align:'center',
align: 'center',
key: 'action',
scopedSlots: { customRender: 'action' },
}
},
]
export {
columns
}
\ No newline at end of file
export { columns }
export const ACCEPT_IMAGE_TYPE = '.jpg,.jpep,.png'
export function isAcceptImageType(file: File) {
const isCorrectType = file.name.match(/(\.jpg|\.jpep|\.png)$/)
return !!isCorrectType
}
export const TOAST_TEXT = '请上传jpg或jpep或png文件'
// 最大上传大小 40M
export const MAX_IMAGE_SIZE = 1024 * 1024 * 40
export const TOAST_TEXT2 = '请上传小于40M的图片'
import { eUserStatus } from '@/types/user'
import { eBannerLocation, eBannerStatus } from '@/types/banner'
import { eUserResStatus } from '@/types/user'
import moment from 'moment'
export default {
......@@ -10,16 +11,44 @@ export default {
return ''
}
},
filterUserStatus(status: eUserStatus) {
filterUserStatus(status: eUserResStatus) {
switch (status) {
case eUserStatus.disable:
case eUserResStatus.disable_noPosition:
return '禁用'
case eUserStatus.enable:
case eUserResStatus.disable_notOnPosition:
return '禁用'
case eUserResStatus.enable_notOnPosition:
return '启用/不在岗'
case eUserResStatus.enable_onPosition:
return '启用/在岗'
}
},
platformfilterUserStatus(status: eUserResStatus) {
switch (status) {
case eUserResStatus.disable_noPosition:
return '禁用'
case eUserResStatus.disable_notOnPosition:
return '禁用'
case eUserResStatus.enable_notOnPosition:
return '启用'
case eUserResStatus.enable_onPosition:
return '启用'
case eUserStatus.onPosition:
return '在岗'
case eUserStatus.notOnPosition:
return '不在岗'
}
},
filterBannerLocation(status: eBannerLocation) {
switch (status) {
case eBannerLocation.home:
return '首页'
}
},
filtereBannerStatus(status: eBannerStatus) {
switch (status) {
case eBannerStatus.editable:
return '未发布'
case eBannerStatus.delete:
return '删除'
case eBannerStatus.published:
return '已发布'
}
},
} as {
......
import baseAxios from '../index'
import { banner_status } from '@/views/Root/Banner/const'
import { iBannerItem } from './types'
import { eBannerStatus } from '@/types/banner'
const prefix = '/banner/admin'
// 新增banner信息
......@@ -17,12 +19,18 @@ export function bannerAdd(data: {
// 查询banner列表
export function bannerQuery(data: {
banner_status: 0
location:0
end_time: number
start_time: number
banner_status: eBannerStatus
location: number
end_time?: number
start_time?: number
limit?: number
offset?: number
}) {
return baseAxios({
return baseAxios<{
count: number
items: iBannerItem[]
total: number
}>({
url: prefix + '/list',
method: 'POST',
data,
......@@ -31,12 +39,12 @@ export function bannerQuery(data: {
// 修改banner状态
export function bannerModify(data: {
banner_status: banner_status
uuid:string
banner_status: eBannerStatus
uuid: string
}) {
return baseAxios({
url: prefix + '/modify',
method: 'POST',
data,
})
}
\ No newline at end of file
}
export interface iBannerItem {
banner_status: number
created_at: number
file_name: string
location: number
title: string
update_at: number
uuid: string
}
import baseAxios from '../index'
export default class FileService {
static instance: FileService
static getInstance() {
if (!FileService.instance) {
FileService.instance = new FileService()
}
return FileService.instance
}
download(file_hash: string) {
return (baseAxios({
method: 'get',
url: '/image/download',
params: {
file_hash,
},
}) as unknown) as Promise<File>
}
getImageSrc(file_hash: string) {
return `/proxyApi/api/v1/image/show?file_hash=${file_hash}`
}
showImage(file_hash: string) {
return (baseAxios({
method: 'get',
url: '/image/show',
params: {
file_hash,
},
}) as unknown) as Promise<File>
}
uploadImage(uploadFile: File) {
const fd = new FormData()
fd.append('uploadFile', uploadFile)
return baseAxios<string>({
method: 'post',
url: '/image/upload',
data: fd,
})
}
}
import { eUserStatus } from '@/types/user'
import { eUserReqStatus } from '@/types/user'
import baseAxios from '../index'
export default class StaffService {
......@@ -10,11 +10,18 @@ export default class StaffService {
return StaffService.instance
}
modifyStaffStatus(data: { status: eUserStatus; uuid: string }) {
modifyStaffStatus(data: { status: eUserReqStatus; uuid: string }) {
return baseAxios({
url: '/staff/modifyStatus',
method: 'PUT',
data,
})
}
deleteStaff(uuid: string) {
return baseAxios({
url: '/staff/' + uuid,
method: 'delete',
})
}
}
import { eLevel } from '@/types/level'
import { eNewRoleRelatedToBackEnd } from '@/types/role'
import { eUserStatus } from '@/types/user'
import { eUserReqStatus } from '@/types/user'
import { eUserType } from '@/types/userType'
import baseAxios from '../index'
......@@ -142,7 +142,7 @@ export default class UserService {
role: string
second_branch: string
second_sub_branch: string
status: eUserStatus
status: eUserReqStatus
user_name: string
uuid: string
}[]
......
......@@ -14,8 +14,8 @@ const baseAxios = axios.create({
baseAxios.interceptors.response.use(
(value: AxiosResponse<iRet>) => {
const ret = value.data
if (ret.code !== 200) {
if(ret.code === 504){
if (ret.code !== undefined && ret.code !== 200) {
if (ret.code === 504) {
// deleteUserMsg();
}
message.error(ret.msg)
......
export interface banner{
key:string
time:string,
name:string,
location:string,
path:string,
state:string
}
\ No newline at end of file
export interface banner {
key: string
time: string
name: string
location: string
path: string
state: string
}
export enum eBannerLocation {
all = 0,
home = 1,
}
// 0:全部状态,1:可编辑,2:已发布,3:删除
export enum eBannerStatus {
all = 0,
editable = 1,
published = 2,
delete = 3,
}
export enum eRole {
platform_management, // 平台管理员
superManager, // 超级管理员 也 叫 银行管理员
superManager, // 超级管理员 也叫 银行管理员
firstLevel_branch, // 一级分行管理员
secondary_branch, // 二级分行管理员
......
......@@ -7,9 +7,16 @@ export interface user {
note?: string
}
export enum eUserStatus {
disable = 0,
enable = 1,
onPosition = 2,
export enum eUserReqStatus {
disable = 1,
enable = 2,
onPosition = 3,
notOnPosition = 4,
}
export enum eUserResStatus {
disable_notOnPosition = 0,
disable_noPosition = 1,
enable_notOnPosition = 2,
enable_onPosition = 3,
}
......@@ -235,8 +235,6 @@ export default Vue.extend({
this.$router.push({
name: "home",
});
} else {
message.warn(ret.msg);
}
},
async handleClickLogin() {
......@@ -256,15 +254,6 @@ export default Vue.extend({
console.log(err);
}
this.loading = false;
// setUserMsg({
// userInfo: 'lakds',
// token: 'aldksfj',
// role: eRole.superManager,
// })
// this.$router.push({
// name: 'home'
// })
} else {
return false;
}
......
This diff is collapsed.
......@@ -2,7 +2,7 @@
<div>
<a-layout id="components-layout-demo-fixed-sider">
<a-layout-sider width="256" style="background: white">
<div class="text-center text-lg my-3">合同后台</div>
<div class="text-center text-lg my-3">普惠金融后台</div>
<a-menu
style="width: 256px"
:open-keys.sync="openKeys"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment