Commit c8422fd4 authored by 邓学云's avatar 邓学云

邓学云

parent 7790f12c
...@@ -11,7 +11,7 @@ const api = { ...@@ -11,7 +11,7 @@ const api = {
export default api export default api
export function getUserList (parameter) { export function getUserList(parameter) {
return axios({ return axios({
url: api.user, url: api.user,
method: 'get', method: 'get',
...@@ -19,7 +19,7 @@ export function getUserList (parameter) { ...@@ -19,7 +19,7 @@ export function getUserList (parameter) {
}) })
} }
export function getRoleList (parameter) { export function getRoleList(parameter) {
return axios({ return axios({
url: api.role, url: api.role,
method: 'get', method: 'get',
...@@ -27,33 +27,57 @@ export function getRoleList (parameter) { ...@@ -27,33 +27,57 @@ export function getRoleList (parameter) {
}) })
} }
export function getServiceList (parameter) { export function getServiceList(parameter) {
console.log(parameter);
let newparameter = {
'page': parameter.page-1,
'pageSize': parameter.pageSize,
}
return axios({ return axios({
url: api.service, url: "http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/user-complains/user-complain",
method: 'get', method: 'get',
params: parameter headers: {
'Authorization': 'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
},
params: newparameter
}) })
} }
export function getPermissions (parameter) { export function getPermissions(parameter) {
console.log(parameter);
let newparameter = {
'page': parameter.page-1,
'pageSize': parameter.pageSize,
}
return axios({ return axios({
url: api.permissionNoPager, url: "http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-users/employee-list",
method: 'get', method: 'get',
params: parameter headers: {
'Authorization': 'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
},
params: newparameter
}) })
} }
export function getOrgTree (parameter) { export function getOrgTree(parameter) {
console.log(parameter);
let newparameter = {
'page': parameter.page-1,
'pageSize': parameter.pageSize,
}
return axios({ return axios({
url: api.orgTree, url: "http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/user-departments/department",
method: 'get', method: 'get',
params: parameter headers: {
'Authorization': 'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
},
params: newparameter
}) })
} }
// id == 0 add post // id == 0 add post
// id != 0 update put // id != 0 update put
export function saveService (parameter) { export function saveService(parameter) {
return axios({ return axios({
url: api.service, url: api.service,
method: parameter.id === 0 ? 'post' : 'put', method: parameter.id === 0 ? 'post' : 'put',
......
import api from './index'
import { axios } from '@/utils/request'
/**
* login func
* parameter: {
* username: '',
* password: '',
* remember_me: true,
* captcha: '12345'
* }
* @param parameter
* @returns {*}
*/
// 获取用户组列表
export function getUserGroup (parameter) {
console.log(parameter)
let newParameter={
'page':parameter.page-1,
'pageSize':parameter.pageSize
}
return axios({
url: 'http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-user-membergrades/list',
method: 'get',
headers: {
"Authorization": "Bearer mAw2G7C-e6i5-3HO2xjny7J_9BrmkJ8J"
},
params: newParameter
})
}
// 新增用户组
export function addUserGroup (parameter) {
return axios({
url: 'http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-user-membergrades/add',
method: 'post',
data: parameter,
headers: {
"Authorization": "Bearer mAw2G7C-e6i5-3HO2xjny7J_9BrmkJ8J"
}
})
}
// 获取用户组详情
export function getUserGroupDetails (id) {
return axios({
url: 'http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-user-membergrades/one?guid='+id,
method: 'get',
headers: {
"Authorization": "Bearer mAw2G7C-e6i5-3HO2xjny7J_9BrmkJ8J"
}
})
}
// 修改用户组详情
export function modifyUserGroupDetails (parameter) {
console.log(parameter)
return axios({
url: 'http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-user-membergrades/revise',
method: 'put',
headers: {
"Authorization": "Bearer mAw2G7C-e6i5-3HO2xjny7J_9BrmkJ8J"
},
data: parameter
})
}
// 删除用户组
export function deleteUserGroup (id) {
return axios({
url: 'http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-user-membergrades/del',
method: 'delete',
headers: {
"Authorization": "Bearer mAw2G7C-e6i5-3HO2xjny7J_9BrmkJ8J"
},
data: {'GUID':id}
})
}
/**
* get user 2step code open?
* @param parameter {*}
*/
export function get2step (parameter) {
return axios({
url: api.twoStepCode,
method: 'post',
data: parameter
})
}
...@@ -5,7 +5,6 @@ export default { ...@@ -5,7 +5,6 @@ export default {
data () { data () {
return { return {
needTotalList: [], needTotalList: [],
selectedRows: [], selectedRows: [],
selectedRowKeys: [], selectedRowKeys: [],
...@@ -82,7 +81,7 @@ export default { ...@@ -82,7 +81,7 @@ export default {
...this.$route, ...this.$route,
name: this.$route.name, name: this.$route.name,
params: Object.assign({}, this.$route.params, { params: Object.assign({}, this.$route.params, {
pageNo: val page: val
}) })
}) })
}, },
...@@ -103,8 +102,8 @@ export default { ...@@ -103,8 +102,8 @@ export default {
} }
}, },
created () { created () {
const { pageNo } = this.$route.params const { page } = this.$route.params
const localPageNum = this.pageURI && (pageNo && parseInt(pageNo)) || this.pageNum const localPageNum = this.pageURI && (page && parseInt(page)) || this.pageNum
this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, {
current: localPageNum, current: localPageNum,
pageSize: this.pageSize, pageSize: this.pageSize,
...@@ -135,7 +134,7 @@ export default { ...@@ -135,7 +134,7 @@ export default {
loadData (pagination, filters, sorter) { loadData (pagination, filters, sorter) {
this.localLoading = true this.localLoading = true
const parameter = Object.assign({ const parameter = Object.assign({
pageNo: (pagination && pagination.current) || page: (pagination && pagination.current) ||
this.showPagination && this.localPagination.current || this.pageNum, this.showPagination && this.localPagination.current || this.pageNum,
pageSize: (pagination && pagination.pageSize) || pageSize: (pagination && pagination.pageSize) ||
this.showPagination && this.localPagination.pageSize || this.pageSize this.showPagination && this.localPagination.pageSize || this.pageSize
...@@ -156,7 +155,7 @@ export default { ...@@ -156,7 +155,7 @@ export default {
if ((typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function') { if ((typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function') {
result.then(r => { result.then(r => {
this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { this.localPagination = this.showPagination && Object.assign({}, this.localPagination, {
current: r.pageNo, // 返回结果中的当前分页数 current: r.page, // 返回结果中的当前分页数
total: r.totalCount, // 返回结果中的总记录数 total: r.totalCount, // 返回结果中的总记录数
showSizeChanger: this.showSizeChanger, showSizeChanger: this.showSizeChanger,
pageSize: (pagination && pagination.pageSize) || pageSize: (pagination && pagination.pageSize) ||
...@@ -172,7 +171,7 @@ export default { ...@@ -172,7 +171,7 @@ export default {
// 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小 // 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小
// 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能
try { try {
if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.pageNo * this.localPagination.pageSize))) { if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.page * this.localPagination.pageSize))) {
this.localPagination.hideOnSinglePage = true this.localPagination.hideOnSinglePage = true
} }
} catch (e) { } catch (e) {
......
...@@ -63,6 +63,53 @@ export const asyncRouterMap = [ ...@@ -63,6 +63,53 @@ export const asyncRouterMap = [
} }
] ]
}, },
//门店&DC
{
path: '/storedc',
name: 'storedc',
redirect: '/storedc/Electronicfence',
component: PageView,
meta: { title: '门店&DC', keepAlive: true, icon: bxAnaalyse, permission: ['table'] },
children: [
{
path: '/storedc/storeManage',
name: 'storeManage',
component: () => import('@/views/storedc/storeManage'),
meta: { title: '门店管理', keepAlive: false, permission: ['table'] }
},
{
path: '/storedc/dcManage',
name: 'dcManage',
component: () => import('@/views/storedc/dcManage'),
meta: { title: 'DC仓管理', keepAlive: false, permission: ['table'] }
},
{
path: '/storedc/storeEvaluateManage',
name: 'storeEvaluateManage',
component: () => import('@/views/storedc/storeEvaluateManage'),
meta: { title: '门店评价管理', keepAlive: false, permission: ['table'] }
},
{
path: '/storedc/Electronicfence',
name: 'Electronicfence',
component: () => import('@/views/storedc/Electronicfence'),
meta: { title: '门店电子围栏', keepAlive: false, permission: ['table'] }
},
{
path: '/storedc/scategorymg',
name: 'Scategorymg',
component: () => import('@/views/storedc/Scategorymg'),
meta: { title: '门店服务类目管理', keepAlive: true, permission: ['table'] }
},
{
path: '/storedc/cerfmg',
name: 'Cerfmg',
component: () => import('@/views/storedc/Cerfmg'),
meta: { title: '证照管理', keepAlive: true, permission: ['table'] }
}
]
},
// dashboard // dashboard
{ {
......
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline">
<a-row :gutter="48">
<a-col :md="8" :sm="24">
<a-form-item label="员工姓名">
<a-input v-model="queryParam.NAME" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="员工编号">
<a-input v-model="queryParam.EMPLOYEE_CODE" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="电话号码">
<a-input v-model="queryParam.MOBILE_PHONE" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="所属门店">
<a-input v-model="queryParam.EMPLOYEE_BRANCH_GUID" placeholder />
</a-form-item>
</a-col>
<a-col :md="!advanced && 8 || 24" :sm="24">
<span
class="table-page-search-submitButtons"
:style="advanced && { float: 'right', overflow: 'hidden' } || {} "
>
<a-button type="primary" @click="getData">查询</a-button>
<!-- <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> -->
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<div class="table-operator">
<!-- <a-button type="primary" icon="plus" @click="$refs.createModal.add()">新建</a-button> -->
<a-button type="dashed" @click="tableOption">{{ optionAlertShow && '关闭' || '开启' }} alert</a-button>
<a-dropdown>
<a-menu slot="overlay">
<a-menu-item key="1">
<a-icon type="delete" />删除
</a-menu-item>
<!-- lock | unlock -->
<a-menu-item key="2">
<a-icon type="lock" />锁定
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px">
批量操作
<a-icon type="down" />
</a-button>
</a-dropdown>
</div>
<s-table
ref="table"
size="default"
rowKey="GUID"
:columns="columns"
:data="loadData"
:alert="options.alert"
:rowSelection="options.rowSelection"
showPagination="auto"
>
<span slot="action" slot-scope="text, record">
<template>
<a @click="handleEdit(record)">详情</a>
</template>
</span>
</s-table>
<a-modal title="操作" :width="800" v-model="visible" @ok="handleOk">
<a-form :Form="(form)=>{this.form = form}">
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="用户GUID"
hasFeedback
validateStatus="success"
>
<a-input placeholder="用户GUID" v-model="queryParam.GUID" id="GUID" disabled="disabled" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="员工姓名"
hasFeedback
validateStatus="success"
>
<a-input placeholder="员工姓名" v-model="queryParam.NAME" id="NAME" disabled="disabled" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="员工编号"
hasFeedback
validateStatus="success"
>
<a-input placeholder="员工编号" v-model="queryParam.EMPLOYEE_CODE" id="permission_name" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="电话号码"
hasFeedback
validateStatus="success"
>
<a-input placeholder="电话号码" v-model="queryParam.MOBILE_PHONE" id="permission_name" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="所属部门"
hasFeedback
validateStatus="success"
>
<a-input
placeholder="所属部门"
v-model="queryParam.EMPLOYEE_BRANCH_GUID"
id="permission_name"
/>
</a-form-item>
</a-form>
</a-modal>
</a-card>
</template>
<script>
import moment from 'moment'
import { STable } from '@/components'
import { getPermissions } from '@/api/manage'
export default {
name: 'TableList',
components: {
STable
},
data() {
return {
visible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
form: null,
mdl: {},
// 高级搜索 展开/关闭
advanced: false,
// 查询参数
queryParam: {},
// 表头
columns: [
{
title: '用户GUID',
dataIndex: 'GUID'
},
{
title: '姓名',
dataIndex: 'NAME'
},
{
title: '员工编号',
dataIndex: 'EMPLOYEE_CODE'
},
{
title: '手机号',
dataIndex: 'MOBILE_PHONE'
},
{
title: '用户所属门店GUID',
dataIndex: 'EMPLOYEE_BRANCH_GUID'
},
{
title: '操作',
dataIndex: 'deleted',
width: '150px',
scopedSlots: { customRender: 'action' }
}
],
// 加载数据方法 必须为 Promise 对象
loadData: parameter => {
console.log('loadData.parameter', parameter)
return getPermissions(Object.assign(parameter, this.queryParam)).then(res => {
console.log(res)
res.pageSize = res._meta.perPage
res.page = res._meta.currentPage
res.totalPage = res._meta.pageCount
res.totalCount = res._meta.totalCount
// res.data = []
// res.data = res.userdepartment
console.log(res.data)
return res
})
},
selectedRowKeys: [],
selectedRows: [],
// custom table alert & rowSelection
options: {
alert: {
show: true,
clear: () => {
this.selectedRowKeys = []
}
},
rowSelection: {
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange
}
},
optionAlertShow: false
}
},
// filters: {
// statusFilter(type) {
// return statusMap[type].text
// },
// statusTypeFilter(type) {
// return statusMap[type].status
// }
// },
created() {
this.tableOption()
},
methods: {
tableOption() {
if (!this.optionAlertShow) {
this.options = {
alert: {
show: true,
clear: () => {
this.selectedRowKeys = []
}
},
rowSelection: {
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange,
getCheckboxProps: record => ({
props: {
disabled: record.no === 'No 2', // Column configuration not to be checked
name: record.no
}
})
}
}
this.optionAlertShow = true
} else {
this.options = {
alert: false,
rowSelection: null
}
this.optionAlertShow = false
}
},
getData() {
this.loading = true
getRoleList(this.params).then(res => {
this.loading = false
console.log(res)
this.data = res.data.map(item => {
item.checked = item.state === 0 // 正常状态state==0转换为开关状态1
return item
})
})
},
// handleEdit(record) {
// console.log(record)
// this.$refs.modal.edit(record)
// },
handleEdit(record) {
this.queryParam = Object.assign({}, record)
console.log(this.queryParam)
this.visible = true
},
handleSub(record) {
if (record.status !== 0) {
this.$message.info(`${record.no} 订阅成功`)
} else {
this.$message.error(`${record.no} 订阅失败,规则已关闭`)
}
},
handleOk() {
this.$refs.table.refresh()
},
onSelectChange(selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
},
// toggleAdvanced() {
// this.advanced = !this.advanced
// },
resetSearchForm() {
this.queryParam = {
date: moment(new Date())
}
}
}
}
</script>
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline">
<a-row :gutter="48">
<a-col :md="8" :sm="24">
<a-form-item label="员工姓名">
<a-input v-model="queryParam.NAME" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="员工编号">
<a-input v-model="queryParam.EMPLOYEE_CODE" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="电话号码">
<a-input v-model="queryParam.MOBILE_PHONE" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="所属门店">
<a-input v-model="queryParam.EMPLOYEE_BRANCH_GUID" placeholder />
</a-form-item>
</a-col>
<a-col :md="!advanced && 8 || 24" :sm="24">
<span
class="table-page-search-submitButtons"
:style="advanced && { float: 'right', overflow: 'hidden' } || {} "
>
<a-button type="primary" @click="getData">查询</a-button>
<!-- <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> -->
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<div class="table-operator">
<!-- <a-button type="primary" icon="plus" @click="$refs.createModal.add()">新建</a-button> -->
<a-button type="dashed" @click="tableOption">{{ optionAlertShow && '关闭' || '开启' }} alert</a-button>
<a-dropdown>
<a-menu slot="overlay">
<a-menu-item key="1">
<a-icon type="delete" />删除
</a-menu-item>
<!-- lock | unlock -->
<a-menu-item key="2">
<a-icon type="lock" />锁定
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px">
批量操作
<a-icon type="down" />
</a-button>
</a-dropdown>
</div>
<s-table
ref="table"
size="default"
rowKey="GUID"
:columns="columns"
:data="loadData"
:alert="options.alert"
:rowSelection="options.rowSelection"
showPagination="auto"
>
<span slot="action" slot-scope="text, record">
<template>
<a @click="handleEdit(record)">详情</a>
</template>
</span>
</s-table>
<a-modal title="操作" :width="800" v-model="visible" @ok="handleOk">
<a-form :Form="(form)=>{this.form = form}">
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="用户GUID"
hasFeedback
validateStatus="success"
>
<a-input placeholder="用户GUID" v-model="queryParam.GUID" id="GUID" disabled="disabled" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="员工姓名"
hasFeedback
validateStatus="success"
>
<a-input placeholder="员工姓名" v-model="queryParam.NAME" id="NAME" disabled="disabled" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="员工编号"
hasFeedback
validateStatus="success"
>
<a-input placeholder="员工编号" v-model="queryParam.EMPLOYEE_CODE" id="permission_name" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="电话号码"
hasFeedback
validateStatus="success"
>
<a-input placeholder="电话号码" v-model="queryParam.MOBILE_PHONE" id="permission_name" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="所属部门"
hasFeedback
validateStatus="success"
>
<a-input
placeholder="所属部门"
v-model="queryParam.EMPLOYEE_BRANCH_GUID"
id="permission_name"
/>
</a-form-item>
</a-form>
</a-modal>
</a-card>
</template>
<script>
import moment from 'moment'
import { STable } from '@/components'
import { getPermissions } from '@/api/manage'
export default {
name: 'TableList',
components: {
STable
},
data() {
return {
visible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
form: null,
mdl: {},
// 高级搜索 展开/关闭
advanced: false,
// 查询参数
queryParam: {},
// 表头
columns: [
{
title: '用户GUID',
dataIndex: 'GUID'
},
{
title: '姓名',
dataIndex: 'NAME'
},
{
title: '员工编号',
dataIndex: 'EMPLOYEE_CODE'
},
{
title: '手机号',
dataIndex: 'MOBILE_PHONE'
},
{
title: '用户所属门店GUID',
dataIndex: 'EMPLOYEE_BRANCH_GUID'
},
{
title: '操作',
dataIndex: 'deleted',
width: '150px',
scopedSlots: { customRender: 'action' }
}
],
// 加载数据方法 必须为 Promise 对象
loadData: parameter => {
console.log('loadData.parameter', parameter)
return getPermissions(Object.assign(parameter, this.queryParam)).then(res => {
console.log(res)
res.pageSize = res._meta.perPage
res.page = res._meta.currentPage
res.totalPage = res._meta.pageCount
res.totalCount = res._meta.totalCount
// res.data = []
// res.data = res.userdepartment
console.log(res.data)
return res
})
},
selectedRowKeys: [],
selectedRows: [],
// custom table alert & rowSelection
options: {
alert: {
show: true,
clear: () => {
this.selectedRowKeys = []
}
},
rowSelection: {
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange
}
},
optionAlertShow: false
}
},
// filters: {
// statusFilter(type) {
// return statusMap[type].text
// },
// statusTypeFilter(type) {
// return statusMap[type].status
// }
// },
created() {
this.tableOption()
},
methods: {
tableOption() {
if (!this.optionAlertShow) {
this.options = {
alert: {
show: true,
clear: () => {
this.selectedRowKeys = []
}
},
rowSelection: {
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange,
getCheckboxProps: record => ({
props: {
disabled: record.no === 'No 2', // Column configuration not to be checked
name: record.no
}
})
}
}
this.optionAlertShow = true
} else {
this.options = {
alert: false,
rowSelection: null
}
this.optionAlertShow = false
}
},
getData() {
this.loading = true
getRoleList(this.params).then(res => {
this.loading = false
console.log(res)
this.data = res.data.map(item => {
item.checked = item.state === 0 // 正常状态state==0转换为开关状态1
return item
})
})
},
// handleEdit(record) {
// console.log(record)
// this.$refs.modal.edit(record)
// },
handleEdit(record) {
this.queryParam = Object.assign({}, record)
console.log(this.queryParam)
this.visible = true
},
handleSub(record) {
if (record.status !== 0) {
this.$message.info(`${record.no} 订阅成功`)
} else {
this.$message.error(`${record.no} 订阅失败,规则已关闭`)
}
},
handleOk() {
this.$refs.table.refresh()
},
onSelectChange(selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
},
// toggleAdvanced() {
// this.advanced = !this.advanced
// },
resetSearchForm() {
this.queryParam = {
date: moment(new Date())
}
}
}
}
</script>
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline">
<a-row :gutter="48">
<a-col :md="8" :sm="24">
<a-form-item label="员工姓名">
<a-input v-model="queryParam.NAME" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="员工编号">
<a-input v-model="queryParam.EMPLOYEE_CODE" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="电话号码">
<a-input v-model="queryParam.MOBILE_PHONE" placeholder />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="所属门店">
<a-input v-model="queryParam.EMPLOYEE_BRANCH_GUID" placeholder />
</a-form-item>
</a-col>
<a-col :md="!advanced && 8 || 24" :sm="24">
<span
class="table-page-search-submitButtons"
:style="advanced && { float: 'right', overflow: 'hidden' } || {} "
>
<a-button type="primary" @click="getData">查询</a-button>
<!-- <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> -->
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<div class="table-operator">
<!-- <a-button type="primary" icon="plus" @click="$refs.createModal.add()">新建</a-button> -->
<a-button type="dashed" @click="tableOption">{{ optionAlertShow && '关闭' || '开启' }} alert</a-button>
<a-dropdown>
<a-menu slot="overlay">
<a-menu-item key="1">
<a-icon type="delete" />删除
</a-menu-item>
<!-- lock | unlock -->
<a-menu-item key="2">
<a-icon type="lock" />锁定
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px">
批量操作
<a-icon type="down" />
</a-button>
</a-dropdown>
</div>
<s-table
ref="table"
size="default"
rowKey="GUID"
:columns="columns"
:data="loadData"
:alert="options.alert"
:rowSelection="options.rowSelection"
showPagination="auto"
>
<span slot="action" slot-scope="text, record">
<template>
<a @click="handleEdit(record)">详情</a>
</template>
</span>
</s-table>
<a-modal title="操作" :width="800" v-model="visible" @ok="handleOk">
<a-form :Form="(form)=>{this.form = form}">
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="用户GUID"
hasFeedback
validateStatus="success"
>
<a-input placeholder="用户GUID" v-model="queryParam.GUID" id="GUID" disabled="disabled" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="员工姓名"
hasFeedback
validateStatus="success"
>
<a-input placeholder="员工姓名" v-model="queryParam.NAME" id="NAME" disabled="disabled" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="员工编号"
hasFeedback
validateStatus="success"
>
<a-input placeholder="员工编号" v-model="queryParam.EMPLOYEE_CODE" id="permission_name" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="电话号码"
hasFeedback
validateStatus="success"
>
<a-input placeholder="电话号码" v-model="queryParam.MOBILE_PHONE" id="permission_name" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="所属部门"
hasFeedback
validateStatus="success"
>
<a-input
placeholder="所属部门"
v-model="queryParam.EMPLOYEE_BRANCH_GUID"
id="permission_name"
/>
</a-form-item>
</a-form>
</a-modal>
</a-card>
</template>
<script>
import moment from 'moment'
import { STable } from '@/components'
import { getPermissions } from '@/api/manage'
export default {
name: 'TableList',
components: {
STable
},
data() {
return {
visible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
form: null,
mdl: {},
// 高级搜索 展开/关闭
advanced: false,
// 查询参数
queryParam: {},
// 表头
columns: [
{
title: '用户GUID',
dataIndex: 'GUID'
},
{
title: '姓名',
dataIndex: 'NAME'
},
{
title: '员工编号',
dataIndex: 'EMPLOYEE_CODE'
},
{
title: '手机号',
dataIndex: 'MOBILE_PHONE'
},
{
title: '用户所属门店GUID',
dataIndex: 'EMPLOYEE_BRANCH_GUID'
},
{
title: '操作',
dataIndex: 'deleted',
width: '150px',
scopedSlots: { customRender: 'action' }
}
],
// 加载数据方法 必须为 Promise 对象
loadData: parameter => {
console.log('loadData.parameter', parameter)
return getPermissions(Object.assign(parameter, this.queryParam)).then(res => {
console.log(res)
res.pageSize = res._meta.perPage
res.page = res._meta.currentPage
res.totalPage = res._meta.pageCount
res.totalCount = res._meta.totalCount
// res.data = []
// res.data = res.userdepartment
console.log(res.data)
return res
})
},
selectedRowKeys: [],
selectedRows: [],
// custom table alert & rowSelection
options: {
alert: {
show: true,
clear: () => {
this.selectedRowKeys = []
}
},
rowSelection: {
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange
}
},
optionAlertShow: false
}
},
// filters: {
// statusFilter(type) {
// return statusMap[type].text
// },
// statusTypeFilter(type) {
// return statusMap[type].status
// }
// },
created() {
this.tableOption()
},
methods: {
tableOption() {
if (!this.optionAlertShow) {
this.options = {
alert: {
show: true,
clear: () => {
this.selectedRowKeys = []
}
},
rowSelection: {
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange,
getCheckboxProps: record => ({
props: {
disabled: record.no === 'No 2', // Column configuration not to be checked
name: record.no
}
})
}
}
this.optionAlertShow = true
} else {
this.options = {
alert: false,
rowSelection: null
}
this.optionAlertShow = false
}
},
getData() {
this.loading = true
getRoleList(this.params).then(res => {
this.loading = false
console.log(res)
this.data = res.data.map(item => {
item.checked = item.state === 0 // 正常状态state==0转换为开关状态1
return item
})
})
},
// handleEdit(record) {
// console.log(record)
// this.$refs.modal.edit(record)
// },
handleEdit(record) {
this.queryParam = Object.assign({}, record)
console.log(this.queryParam)
this.visible = true
},
handleSub(record) {
if (record.status !== 0) {
this.$message.info(`${record.no} 订阅成功`)
} else {
this.$message.error(`${record.no} 订阅失败,规则已关闭`)
}
},
handleOk() {
this.$refs.table.refresh()
},
onSelectChange(selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
},
// toggleAdvanced() {
// this.advanced = !this.advanced
// },
resetSearchForm() {
this.queryParam = {
date: moment(new Date())
}
}
}
}
</script>
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline">
<a-row :gutter="48">
<a-col :md="8" :sm="24">
<a-form-item label="角色ID">
<a-input placeholder="请输入"/>
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="状态">
<a-select placeholder="请选择" default-value="0">
<a-select-option value="0">全部</a-select-option>
<a-select-option value="1">关闭</a-select-option>
<a-select-option value="2">运行中</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-button type="primary">查询</a-button>
<a-button style="margin-left: 8px">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<s-table
size="default"
:columns="columns"
:data="loadData"
>
<div
slot="expandedRowRender"
slot-scope="record"
style="margin: 0">
<a-row
:gutter="24"
:style="{ marginBottom: '12px' }">
<a-col :span="12" v-for="(role, index) in record.permissions" :key="index" :style="{ marginBottom: '12px' }">
<a-col :lg="4" :md="24">
<span>{{ role.permissionName }}</span>
</a-col>
<a-col :lg="20" :md="24" v-if="role.actionEntitySet.length > 0">
<a-tag color="cyan" v-for="(action, k) in role.actionEntitySet" :key="k">{{ action.describe }}</a-tag>
</a-col>
<a-col :span="20" v-else>-</a-col>
</a-col>
</a-row>
</div>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down" />
</a>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:;">详情</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;">禁用</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;">删除</a>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</s-table>
<a-modal
title="操作"
style="top: 20px;"
:width="800"
v-model="visible"
@ok="handleOk"
>
<a-form :autoFormCreate="(form)=>{this.form = form}">
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="唯一识别码"
hasFeedback
validateStatus="success"
>
<a-input placeholder="唯一识别码" v-model="mdl.id" id="no" disabled="disabled" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="角色名称"
hasFeedback
validateStatus="success"
>
<a-input placeholder="起一个名字" v-model="mdl.name" id="role_name" />
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="状态"
hasFeedback
validateStatus="warning"
>
<a-select v-model="mdl.status">
<a-select-option value="1">正常</a-select-option>
<a-select-option value="2">禁用</a-select-option>
</a-select>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="描述"
hasFeedback
>
<a-textarea :rows="5" v-model="mdl.describe" placeholder="..." id="describe"/>
</a-form-item>
<a-divider />
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="拥有权限"
hasFeedback
>
<a-row :gutter="16" v-for="(permission, index) in mdl.permissions" :key="index">
<a-col :span="4">
{{ permission.permissionName }}
</a-col>
<a-col :span="20">
<a-checkbox-group :options="permission.actionsOptions"/>
</a-col>
</a-row>
</a-form-item>
</a-form>
</a-modal>
</a-card>
</template>
<script>
import { STable } from '@/components'
import { getRoleList, getServiceList } from '@/api/manage'
export default {
name: 'TableList',
components: {
STable
},
data () {
return {
description: '列表使用场景:后台管理中的权限管理以及角色管理,可用于基于 RBAC 设计的角色权限控制,颗粒度细到每一个操作类型。',
visible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
form: null,
mdl: {},
// 高级搜索 展开/关闭
advanced: false,
// 查询参数
queryParam: {},
// 表头
columns: [
{
title: '唯一识别码',
dataIndex: 'id'
},
{
title: '角色名称',
dataIndex: 'name'
},
{
title: '状态',
dataIndex: 'status'
},
{
title: '创建时间',
dataIndex: 'createTime',
sorter: true
}, {
title: '操作',
width: '150px',
dataIndex: 'action',
scopedSlots: { customRender: 'action' }
}
],
// 加载数据方法 必须为 Promise 对象
loadData: parameter => {
return getRoleList(parameter)
.then(res => {
console.log('getRoleList', res)
return res.result
})
},
selectedRowKeys: [],
selectedRows: []
}
},
created () {
getServiceList().then(res => {
console.log('getServiceList.call()', res)
})
getRoleList().then(res => {
console.log('getRoleList.call()', res)
})
},
methods: {
handleEdit (record) {
this.mdl = Object.assign({}, record)
this.mdl.permissions.forEach(permission => {
permission.actionsOptions = permission.actionEntitySet.map(action => {
return { label: action.describe, value: action.action, defaultCheck: action.defaultCheck }
})
})
this.visible = true
},
handleOk () {
},
onChange (selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
},
toggleAdvanced () {
this.advanced = !this.advanced
}
},
watch: {
/*
'selectedRows': function (selectedRows) {
this.needTotalList = this.needTotalList.map(item => {
return {
...item,
total: selectedRows.reduce( (sum, val) => {
return sum + val[item.dataIndex]
}, 0)
}
})
}
*/
}
}
</script>
<template>
<a-card :bordered="false">
<div>
<div class="table-page-search-wrapper">
<a-form :form="form" layout="inline">
<a-row :gutter="48">
<a-col :md="8" :sm="24">
<a-form-item label="门店编号">
<a-input v-model="queryParam.id" placeholder="请输入门店编号"/>
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<a-form-item label="员工号">
<a-input-number v-model="queryParam.userid" placeholder="请输入员工号" style="width: 100%"/>
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
<a-button style="margin-left: 8px">导出</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<div class="table-operator">
<a-button @click="goEdit(1)" type='primary' icon='plus'>添加分值</a-button>
<a-button style="margin-left: 8px" type='primary' icon='file-add'>导入打分</a-button>
<a-button style="margin-left: 8px" type='primary' icon='download'>下载导入模板</a-button>
</div>
<s-table
ref="table"
size="default"
rowKey="GUID"
:columns="columns"
:data="loadData"
>
<template v-for="(col, index) in columns" v-if="col.scopedSlots" :slot="col.dataIndex" slot-scope="text, record">
<div :key="index">
<a-input
v-if="record.editable"
style="margin: -5px 0"
:value="text"
@change="e => handleChange(e.target.value, record.key, col, record)"
/>
<template v-else>{{ text }}</template>
</div>
</template>
<template slot="action" slot-scope="text, record">
<div class="editable-row-operations">
<span v-if="record.editable">
<a @click="() => save(record)">保存</a>
<a-divider type="vertical" />
<a-popconfirm title="真的放弃编辑吗?" @confirm="() => cancel(record)">
<a>取消</a>
</a-popconfirm>
</span>
<span v-else>
<a class="edit" @click="() => edit(record)">修改</a>
<a-divider type="vertical" />
<a class="delete" @click="() => del(record)">删除</a>
</span>
</div>
</template>
</s-table>
</div>
</a-card>
</template>
<script>
import moment from 'moment'
import { STable } from '@/components'
import { getUserGroup,deleteUserGroup } from '@/api/userstaff'
export default {
name: 'TableList',
components: {
STable
},
data () {
return {
mdl: {},
columns: [
{
title: '组名称',
dataIndex: 'NAME'
},
{
title: '优惠百分比',
dataIndex: 'GRADE_PERCENT',
scopedSlots: { customRender: 'GRADE_PERCENT' }
},
{
title: '是否为默认组',
dataIndex: 'IS_DEFAULT',
scopedSlots: { customRender: 'IS_DEFAULT' }
},
{
title: '所需积分',
dataIndex: 'IS_SETRANGE',
scopedSlots: { customRender: 'IS_SETRANGE' }
},
{
title: '积分比率',
dataIndex: 'MONEY_POINT_SRATE',
scopedSlots: { customRender: 'MONEY_POINT_SRATE' }
},
{
title: '添加时间',
dataIndex: 'CREATE_TIME'
},
{
title: '操作',
dataIndex: 'action',
scopedSlots: { customRender: 'action' }
}
],
// form
form: this.$form.createForm(this),
// 查询参数
queryParam: {},
// 加载数据方法 必须为 Promise 对象
loadData: parameter => {
return getUserGroup(Object.assign(parameter, this.queryParam))
.then(res => {
console.log(res)
res.pageSize=res._meta.perPage;
res.page=res._meta.currentPage;
res.totalPage=res._meta.pageCount;
res.totalCount=res._meta.totalCount;
res.data.forEach(element => {
element.editable=false;
});
return res
})
}
}
},
mounted(){
this.$refs.table.refresh();
},
methods: {
handleChange (value, key, column, record) {
console.log(value, key, column)
record[column.dataIndex] = value
},
edit (row) {
row.editable = true
// row = Object.assign({}, row)
},
// eslint-disable-next-line
del (row) {
this.$confirm({
title: '警告',
content: `真的要删除 ${row.no} 吗?`,
okText: '删除',
okType: 'danger',
cancelText: '取消',
onOk () {
console.log('OK')
// 在这里调用删除接口
return new Promise((resolve, reject) => {
setTimeout(Math.random() > 0.5 ? resolve : reject, 1000)
}).catch(() => console.log('Oops errors!'))
},
onCancel () {
console.log('Cancel')
}
})
},
save (row) {
row.editable = false
},
cancel (row) {
row.editable = false
},
}
}
</script>
<style lang="less" scoped>
.operator {
margin-bottom: 18px;
}
</style>
...@@ -54,7 +54,6 @@ ...@@ -54,7 +54,6 @@
:data="loadData" :data="loadData"
:alert="options.alert" :alert="options.alert"
:rowSelection="options.rowSelection" :rowSelection="options.rowSelection"
showPagination="auto"
> >
<span slot="serial" slot-scope="text, record, index"> <span slot="serial" slot-scope="text, record, index">
{{ index + 1 }} {{ index + 1 }}
......
<template> <template>
<a-card :bordered="false"> <div>
<s-table <s-table
ref="table" ref="table"
size="default" size="default"
rowKey="key" rowKey="GUID"
:columns="columns" :columns="columns"
:data="loadData" :data="loadData"
:rowSelection="options.rowSelection"
showPagination="auto"
> >
<span slot="serial" slot-scope="text, record, index">
{{ index + 1 }}
</span>
<span slot="status" slot-scope="text">
<a-badge :status="text | statusTypeFilter" :text="text | statusFilter" />
</span>
<span slot="description" slot-scope="text">
<ellipsis :length="4" tooltip>{{ text }}</ellipsis>
</span>
<!-- <span slot="action" slot-scope="text, record">
<template>
<a @click="handleEdit(record)">配置</a>
<a-divider type="vertical" />
<a @click="handleSub(record)">订阅报警</a>
</template>
</span> -->
</s-table> </s-table>
<!-- <create-form ref="createModal" @ok="handleOk" /> </div>
<step-by-step-modal ref="modal" @ok="handleOk"/> -->
</a-card>
</template> </template>
<script> <script>
import moment from 'moment' import moment from 'moment'
import { STable, Ellipsis } from '@/components' import { STable } from '@/components'
// import StepByStepModal from './modules/StepByStepModal' import { getServiceList } from '@/api/manage'
// import CreateForm from './modules/CreateForm'
import { getRoleList, getServiceList } from '@/api/manage'
const statusMap = {
0: {
status: 'default',
text: '关闭'
},
1: {
status: 'processing',
text: '运行中'
},
2: {
status: 'success',
text: '已上线'
},
3: {
status: 'error',
text: '异常'
}
}
export default { export default {
name: 'TableList', name: 'TableList',
components: { components: {
STable, STable
Ellipsis,
// CreateForm,
// StepByStepModal
}, },
data () { data () {
return { return {
mdl: {}, mdl: {},
// 高级搜索 展开/关闭 // 高级搜索 展开/关闭
advanced: false, advanced: false,
// 查询参数
queryParam: {},
// 表头
columns: [ columns: [
{ {
title: '#', title: '#',
scopedSlots: { customRender: 'serial' } dataIndex: 'GUID'
}, },
{ {
title: '用户名', title: '用户名',
dataIndex: 'no' dataIndex: 'NAME'
},
{
title: '用户电话或工号',
dataIndex: 'description',
scopedSlots: { customRender: 'description' }
}, },
{ {
title: '手机号', title: '手机号',
dataIndex: 'callNo', dataIndex: 'TS_PHONE'
sorter: true,
needTotal: true,
customRender: (text) => text + ' 次'
}, },
{ {
title: '留言时间', title: '留言内容',
dataIndex: 'status', dataIndex: 'TS_CONTENT'
scopedSlots: { customRender: 'status' }
}, },
{ {
title: '留言类型', title: '留言时间',
dataIndex: 'updatedAt', dataIndex: 'TS_COMMIT_DATE',
sorter: true sorter: true
}, },
{ {
title: '留言内容', title: '留言类型',
dataIndex: 'action', dataIndex: 'COMPLAIN_TYPE',
width: '150px', width: '150px'
scopedSlots: { customRender: 'action' }
} }
], ],
// 查询参数
queryParam: {},
removeKey: '',
// 加载数据方法 必须为 Promise 对象 // 加载数据方法 必须为 Promise 对象
loadData: parameter => { loadData: parameter => {
console.log('loadData.parameter', parameter) console.log('loadData.parameter', parameter)
return getServiceList(Object.assign(parameter, this.queryParam)) return getServiceList(Object.assign(parameter, this.queryParam)).then(res => {
.then(res => { console.log(res)
return res.result res.data = []
}) res.data = res.usercomplain
}, res.pageSize = res._meta.perPage
selectedRowKeys: [], res.page = res._meta.currentPage
selectedRows: [], res.totalPage = res._meta.pageCount
res.totalCount = res._meta.totalCount
// custom table alert & rowSelection console.log(res)
options: { return res
alert: { show: true, clear: () => { this.selectedRowKeys = [] } }, })
rowSelection: { }
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange
}
},
optionAlertShow: false
}
},
filters: {
statusFilter (type) {
return statusMap[type].text
},
statusTypeFilter (type) {
return statusMap[type].status
} }
}, },
created () { mounted(){
this.tableOption()
getRoleList({ t: new Date() })
}, },
methods: { methods: {
tableOption () {
if (!this.optionAlertShow) {
this.options = {
alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
rowSelection: {
selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange,
getCheckboxProps: record => ({
props: {
disabled: record.no === 'No 2', // Column configuration not to be checked
name: record.no
}
})
}
}
this.optionAlertShow = true
} else {
this.options = {
alert: false,
rowSelection: null
}
this.optionAlertShow = false
}
},
// handleEdit (record) {
// console.log(record)
// this.$refs.modal.edit(record)
// },
handleSub (record) {
if (record.status !== 0) {
this.$message.info(`${record.no} 订阅成功`)
} else {
this.$message.error(`${record.no} 订阅失败,规则已关闭`)
}
},
handleOk () {
this.$refs.table.refresh()
},
onSelectChange (selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
},
toggleAdvanced () {
this.advanced = !this.advanced
},
resetSearchForm () {
this.queryParam = {
date: moment(new Date())
}
}
} }
} }
</script> </script>
<template> <template>
<a-card :body-style="{padding: '24px 32px'}" :bordered="false"> <a-card :body-style="{padding: '24px 32px'}" :bordered="false">
<a-form @submit="handleSubmit" :form="form"> <a-form :form="form">
<a-form-item <a-form-item
label="组名称" label="组名称"
:labelCol="{lg: {span: 7}, sm: {span: 7}}" :labelCol="{lg: {span: 7}, sm: {span: 7}}"
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }"> :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
<a-input <a-input
v-decorator="[ v-decorator="[
'name', 'NAME',
{rules: [{ required: true, message: '请输入标题' }]} {rules: [{ required: true, message: '请输入昵称' }]}
]" ]"
name="name" name="NAME"
placeholder="请输入组名称" /> placeholder="请输入组名称" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
<a-input <a-input
placeholder="请输入优惠百分比" placeholder="请输入优惠百分比"
v-decorator="[ v-decorator="[
'customer', 'GRADE_PERCENT',
{rules: [{ required: true, message: '请描述你服务的客户' }]} {rules: [{ required: true, message: '请输入优惠百分比' }]}
]" /> ]" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
...@@ -30,12 +30,12 @@ ...@@ -30,12 +30,12 @@
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }" :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"
:required="false" :required="false"
> >
<a-radio-group v-model="value"> <a-radio-group v-decorator="['IS_SETRANGE',{initialValue:'0',normalize:checkRadio}]">
<a-radio :value="1">全店通用</a-radio> <a-radio value='0'>全店通用</a-radio>
<a-radio :value="2">指定商品</a-radio> <a-radio value='1'>指定商品</a-radio>
</a-radio-group> </a-radio-group>
<a-form-item> <!-- <a-form-item >
<div mode="multiple" v-if="value === 2"> <div mode="multiple" v-if="value === 1">
<a-button type="primary" class="editable-add-btn" @click="handleAdd" icon="plus">添加商品</a-button> <a-button type="primary" class="editable-add-btn" @click="handleAdd" icon="plus">添加商品</a-button>
<a-table bordered :dataSource="dataSource" :columns="columns"> <a-table bordered :dataSource="dataSource" :columns="columns">
<template slot="name" slot-scope="text, record"> <template slot="name" slot-scope="text, record">
...@@ -52,13 +52,7 @@ ...@@ -52,13 +52,7 @@
</template> </template>
</a-table> </a-table>
</div> </div>
<!-- <a-select mode="multiple" v-if="value === 2"> </a-form-item> -->
<a-select-option value="4">同事一</a-select-option>
<a-select-option value="5">同事二</a-select-option>
<a-select-option value="6">同事三</a-select-option>
</a-select>
</a-form-item> -->
</a-form-item>
</a-form-item> </a-form-item>
<a-form-item <a-form-item
label="是否为默认组" label="是否为默认组"
...@@ -66,9 +60,9 @@ ...@@ -66,9 +60,9 @@
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }" :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"
:required="false" :required="false"
> >
<a-radio-group defaultValue='1'> <a-radio-group v-decorator="['IS_DEFAULT',{initialValue:'1',normalize:checkRadio}]">
<a-radio value="1"></a-radio> <a-radio value="1"></a-radio>
<a-radio value="2"></a-radio> <a-radio value="0"></a-radio>
</a-radio-group> </a-radio-group>
</a-form-item> </a-form-item>
<a-form-item <a-form-item
...@@ -77,14 +71,15 @@ ...@@ -77,14 +71,15 @@
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }" :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"
:required="false" :required="false"
> >
<a-input-number :min="0" :max="100" /> <a-input-number v-decorator="['MONEY_POINT_SRATE']" :min="0" :max="100" />
<span> %</span> <span> %</span>
</a-form-item> </a-form-item>
<a-form-item <a-form-item
:wrapperCol="{ span: 24 }" :wrapperCol="{ span: 24 }"
style="text-align: center" style="text-align: center"
> >
<a-button htmlType="submit" type="primary">提交</a-button> <a-button v-if='goId==1' @click.stop.prevent="handleSubmit" htmlType="submit" type="primary">提交</a-button>
<a-button v-else @click.stop.prevent="handleSubmit1()" htmlType="submit" type="primary">提交</a-button>
<a-button @click="goBack" style="margin-left: 8px">返回</a-button> <a-button @click="goBack" style="margin-left: 8px">返回</a-button>
</a-form-item> </a-form-item>
</a-form> </a-form>
...@@ -92,6 +87,11 @@ ...@@ -92,6 +87,11 @@
</template> </template>
<script> <script>
import { addUserGroup } from '@/api/userstaff'
import { getUserGroupDetails } from '@/api/userstaff'
import { modifyUserGroupDetails } from '@/api/userstaff'
export default { export default {
name: 'BaseForm', name: 'BaseForm',
data () { data () {
...@@ -133,14 +133,52 @@ export default { ...@@ -133,14 +133,52 @@ export default {
}, },
], ],
description: '表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。', description: '表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。',
value: 1, goId:1,
userId:"",
// form // form
form: this.$form.createForm(this) form: this.$form.createForm(this)
} }
}, },
mounted() {
var id=this.$route.query.userId;
var goId=this.$route.query.goid;
this.goId=goId;
this.userId=id;
if(goId==0){
getUserGroupDetails(id).then(res => {
console.log(res)
this.form.setFieldsValue(res)
}).catch(err => {
})
}
},
methods: { methods: {
checkRadio(value){
return value.toString();
},
handleSubmit () {
const { form: { validateFields } } = this;
validateFields({ force: true }, (err, values) => {
if (!err) {
const userGroupParams = { ...values };
addUserGroup(userGroupParams)
this.$router.push({ path: "/userstaff/user_group" })
}
})
},
handleSubmit1 () {
let userid=this.userId;
const { form: { validateFields } } = this;
validateFields({ force: true }, (err, values) => {
if (!err) {
const userGroupModify = Object.assign({ ...values },{GUID:userid});
modifyUserGroupDetails(userGroupModify)
this.$router.push({ path: "/userstaff/user_group" })
}
})
},
goBack(){ goBack(){
this.$router.push({ path: "/userstaff/user_group" }) this.$router.push({ path: "/userstaff/user_group" })
}, },
...@@ -168,15 +206,15 @@ export default { ...@@ -168,15 +206,15 @@ export default {
this.count = count + 1; this.count = count + 1;
}, },
// handler // handler
handleSubmit (e) { // handleSubmit (e) {
e.preventDefault() // e.preventDefault()
this.form.validateFields((err, values) => { // this.form.validateFields((err, values) => {
if (!err) { // if (!err) {
// eslint-disable-next-line no-console // // eslint-disable-next-line no-console
console.log('Received values of form: ', values) // console.log('Received values of form: ', values)
} // }
}) // })
} // }
} }
} }
</script> </script>
<template> <template>
<div> <a-card :bordered="false">
<div class="table-operator"> <div>
<a-button @click="goEdit" type='primary' icon='plus'>新建</a-button> <div class="table-operator">
<a-button @click="goEdit(1)" type='primary' icon='plus'>添加用户组</a-button>
</div>
<s-table
ref="table"
size="default"
rowKey="GUID"
:columns="columns"
:data="loadData"
>
<span slot="action" slot-scope="text, record">
<!-- <router-link :to="{path:'/userstaff/user_group_editor',query:{goid:0,userId:'GUID'}}"> -->
<a type="primary" @click="goEdit(record)">编辑</a>
<!-- </router-link> -->
<a-divider type="vertical" />
<a-popconfirm title="是否要删除此行?" @confirm="remove(record.GUID)">
<a>删除</a>
</a-popconfirm>
</span>
</s-table>
</div> </div>
<s-table </a-card>
ref="table"
size="default"
:columns="columns"
:data="loadData"
>
<span slot="action" slot-scope="text, record">
<router-link to="/userstaff/user_group_editor">
<a type="primary">编辑</a>
</router-link>
<a-divider type="vertical" />
<a-popconfirm title="是否要删除此行?" @confirm="remove(record.key)">
<a>删除</a>
</a-popconfirm>
</span>
</s-table>
</div>
</template> </template>
<script> <script>
import moment from 'moment' import moment from 'moment'
import { STable } from '@/components' import { STable } from '@/components'
import { getUserGroup,deleteUserGroup } from '@/api/userstaff'
export default { export default {
name: 'TableList', name: 'TableList',
...@@ -36,36 +40,37 @@ export default { ...@@ -36,36 +40,37 @@ export default {
mdl: {}, mdl: {},
// 高级搜索 展开/关闭 // 高级搜索 展开/关闭
advanced: false, advanced: false,
// 查询参数
queryParam: {},
columns: [ columns: [
{
title: '规则编号',
dataIndex: 'no'
},
{ {
title: '组名称', title: '组名称',
dataIndex: 'newuser' dataIndex: 'NAME'
}, },
{ {
title: '优惠百分比', title: '优惠百分比',
dataIndex: 'yhpercent' dataIndex: 'GRADE_PERCENT'
}, },
{ {
title: '是否为默认组', title: '是否为默认组',
dataIndex: 'trueorfalse' dataIndex: 'IS_DEFAULT',
customRender: (text) => {
if(text==1){
return '是'
}else{
return '否'
}
}
}, },
{ {
title: '所需积分', title: '所需积分',
dataIndex: 'sxjf' dataIndex: 'IS_SETRANGE'
}, },
{ {
title: '积分比率', title: '积分比率',
dataIndex: 'jfbl' dataIndex: 'MONEY_POINT_SRATE'
}, },
{ {
title: '添加时间', title: '添加时间',
dataIndex: 'tjsj' dataIndex: 'CREATE_TIME'
}, },
{ {
title: '操作', title: '操作',
...@@ -73,25 +78,43 @@ export default { ...@@ -73,25 +78,43 @@ export default {
scopedSlots: { customRender: 'action' } scopedSlots: { customRender: 'action' }
} }
], ],
removeKey: '', // 查询参数
queryParam: {},
// 加载数据方法 必须为 Promise 对象 // 加载数据方法 必须为 Promise 对象
loadData: parameter => { loadData: parameter => {
return this.$http.get('/usergroup', { return getUserGroup(Object.assign(parameter, this.queryParam))
params: Object.assign(parameter, this.queryParam) .then(res => {
}).then(res => { console.log(res)
// console.log(res.result) res.pageSize=res._meta.perPage;
return res.result res.page=res._meta.currentPage;
}) res.totalPage=res._meta.pageCount;
res.totalCount=res._meta.totalCount;
return res
})
} }
} }
}, },
mounted(){
this.$refs.table.refresh();
},
methods: { methods: {
// goEdit () { goEdit (value) {
// this.$router.push({ path: "/userstaff/user_group_editor" }) if(value==1){
// }, this.$router.push({path:'/userstaff/user_group_editor',query:{goid:1}})
// remove ( key ) { }else{
// this.removeKey = key - 1; console.log(value)
// }, this.$router.push({path:'/userstaff/user_group_editor',query:{goid:0,userId:value.GUID}})
}
},
remove ( key ) {
console.log(key)
deleteUserGroup(key).then(res => {
console.log('已删除')
this.$refs.table.refresh();
}).catch(err => {
})
},
toggleAdvanced () { toggleAdvanced () {
this.advanced = !this.advanced this.advanced = !this.advanced
}, },
......
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