Commit 07afc5c4 authored by 前端-钟卫鹏's avatar 前端-钟卫鹏
parents 635a7965 aa22b610
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
"scripts:build": "node scripts/run", "scripts:build": "node scripts/run",
"scripts:build-yxc": "node scripts/run http://yxc-web-demo.shushangyun.com/api", "scripts:build-yxc": "node scripts/run http://yxc-web-demo.shushangyun.com/api",
"start": "yarn api && yarn scripts:build && umi dev", "start": "yarn api && yarn scripts:build && umi dev",
"start:dev": "umi dev",
"build": "yarn api && yarn scripts:build && umi build", "build": "yarn api && yarn scripts:build && umi build",
"build:yxc": "yarn api && yarn scripts:build-yxc && umi build", "build:yxc": "yarn api && yarn scripts:build-yxc && umi build",
"build:dev": "pm2 start scripts/devServer.js", "build:dev": "pm2 start scripts/devServer.js",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: LeeJiancong * @Author: LeeJiancong
* @Date: 2020-08-10 14:41:27 * @Date: 2020-08-10 14:41:27
* @LastEditors: LeeJiancong * @LastEditors: LeeJiancong
* @LastEditTime: 2020-08-11 16:24:57 * @LastEditTime: 2020-08-18 14:55:46
*/ */
/** /**
* 用于在项目开始前获取所有的配置 * 用于在项目开始前获取所有的配置
...@@ -40,11 +40,11 @@ const serviceConfig = { ...@@ -40,11 +40,11 @@ const serviceConfig = {
payConfig:{ payConfig:{
payInitializeConfig:{ payInitializeConfig:{
url:'/pay/initialize/config', url:'/pay/initialize/config',
method: 'post' method: 'get'
}, },
payPlatformPayConfig:{ payPlatformPayConfig:{
url:'/pay/platform/pay/config', url:'/pay/platform/pay/config',
method:'post' method:'get'
} }
} }
} }
......
export const NOT_CHANGE_VALUE = 'hello, world' export const NOT_CHANGE_VALUE = 'hello, world'
export const isDev = true // 本地环境跳过权限校验
\ No newline at end of file export const isDev = process.env.NODE_ENV === "development"
\ No newline at end of file
...@@ -11,7 +11,8 @@ interface useRowSelectionTableCtl { ...@@ -11,7 +11,8 @@ interface useRowSelectionTableCtl {
} }
interface useRowSelectionOptions { interface useRowSelectionOptions {
type?: 'checkbox' | 'radio' type?: 'checkbox' | 'radio',
customKey?: string
} }
/** /**
...@@ -19,7 +20,7 @@ interface useRowSelectionOptions { ...@@ -19,7 +20,7 @@ interface useRowSelectionOptions {
* @auth xjm * @auth xjm
*/ */
export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [TableRowSelection<any>, useRowSelectionTableCtl] => { export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [TableRowSelection<any>, useRowSelectionTableCtl] => {
const { type = 'checkbox' } = options const { type = 'checkbox', customKey = 'id' } = options
const [selectRow, setSelectRow] = useState<any[]>([]) // 模态框选择的行数据 const [selectRow, setSelectRow] = useState<any[]>([]) // 模态框选择的行数据
const [selectedRowKeys, setSelectedRowKeys] = useState<any[]>(() => []) const [selectedRowKeys, setSelectedRowKeys] = useState<any[]>(() => [])
...@@ -33,7 +34,7 @@ export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [Tab ...@@ -33,7 +34,7 @@ export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [Tab
const removeRows = (arr: any[]) => { const removeRows = (arr: any[]) => {
return selectRow.filter(v => { return selectRow.filter(v => {
const result = arr.find(item => item.id === v.id) const result = arr.find(item => item[customKey] === v[customKey])
if (!result) { if (!result) {
return v return v
} }
...@@ -62,7 +63,7 @@ export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [Tab ...@@ -62,7 +63,7 @@ export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [Tab
} }
const findIds = selectedRowKeys.indexOf(record.id) const findIds = selectedRowKeys.indexOf(record.id)
if (findIds === -1) { if (findIds === -1) {
mergeRowKeys(record.id) mergeRowKeys(record[customKey])
mergeRow(record) mergeRow(record)
} else { } else {
setSelectedRowKeys(selectedRowKeys.filter((_, i) => i !== findIds)) setSelectedRowKeys(selectedRowKeys.filter((_, i) => i !== findIds))
...@@ -72,10 +73,10 @@ export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [Tab ...@@ -72,10 +73,10 @@ export const useRowSelectionTable = (options: useRowSelectionOptions = {}): [Tab
onSelectAll: (selected, selectedRows, changeRows) => { onSelectAll: (selected, selectedRows, changeRows) => {
if (selected) { if (selected) {
setSelectedRowKeys(dupliArr([...selectedRowKeys, ...changeRows.map(v => v.id)])) setSelectedRowKeys(dupliArr([...selectedRowKeys, ...changeRows.map(v => v[customKey])]))
setSelectRow(mergeArrByKey(selectRow, changeRows, 'id')) setSelectRow(mergeArrByKey(selectRow, changeRows, customKey))
} else { } else {
setSelectedRowKeys(removeRowsKeys(changeRows.map(v => v.id))) setSelectedRowKeys(removeRowsKeys(changeRows.map(v => v[customKey])))
setSelectRow(removeRows(changeRows)) setSelectRow(removeRows(changeRows))
} }
} }
......
...@@ -7,14 +7,16 @@ import {ColumnType} from 'antd/lib/table/interface' ...@@ -7,14 +7,16 @@ import {ColumnType} from 'antd/lib/table/interface'
import EyePreview from '@/components/EyePreview' import EyePreview from '@/components/EyePreview'
import {createFormActions,ISchema} from '@formily/antd' import {createFormActions,ISchema} from '@formily/antd'
import PayForm from '../components/PayForm' import PayForm from '../components/PayForm'
import ModalTable from '@/components/ModalTable'
import {useInitValue} from '@/formSchema/effects/useInitValue' import {useInitValue} from '@/formSchema/effects/useInitValue'
import {strategyDetailTab} from '../schema' import {strategyDetailTab} from '../schema'
import {usePageStatus} from '@/hooks/usePageStatus' import {usePageStatus, PageStatus} from '@/hooks/usePageStatus'
import { useRowSelectionTable} from '@/hooks/useRowSelectionTable' import { useRowSelectionTable} from '@/hooks/useRowSelectionTable'
import {history} from 'umi' import {history} from 'umi'
import {findItemAndDelete} from '@/utils' import {findItemAndDelete} from '@/utils'
import { GlobalConfig } from '@/global/config' import { GlobalConfig } from '@/global/config'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import style from './index.less'
const payActions = createFormActions() const payActions = createFormActions()
const fetchMemberList = async (params) => { const fetchMemberList = async (params) => {
const res = await PublicApi.getMemberMaintenancePage(params) const res = await PublicApi.getMemberMaintenancePage(params)
...@@ -25,7 +27,10 @@ const PaySetting: React.FC<{}> = () => { ...@@ -25,7 +27,10 @@ const PaySetting: React.FC<{}> = () => {
const ref = useRef<any>({}) const ref = useRef<any>({})
const [visible, setvisible] = useState<boolean>(false) const [visible, setvisible] = useState<boolean>(false)
const [visibleChannelMember, setVisibleChannelMember] = useState(false) const [visibleChannelMember, setVisibleChannelMember] = useState(false)
const [memberRowSelection, memberRowCtl] = useRowSelectionTable() const [searchParams, setsearchParams] = useState({
memberName: ''
})
const [memberRowSelection, memberRowCtl] = useRowSelectionTable({customKey:'memberId'})
const [optionType, setoptionType] = useState(0) const [optionType, setoptionType] = useState(0)
const {preview,pageStatus} = usePageStatus() const {preview,pageStatus} = usePageStatus()
// const initValue = useInitValue(PublicApi.getPayPayMemberTacticsDetails) // const initValue = useInitValue(PublicApi.getPayPayMemberTacticsDetails)
...@@ -58,7 +63,7 @@ const PaySetting: React.FC<{}> = () => { ...@@ -58,7 +63,7 @@ const PaySetting: React.FC<{}> = () => {
title: '会员等级', title: '会员等级',
dataIndex: 'levelTag', dataIndex: 'levelTag',
align: 'center', align: 'center',
key: 'levelTag', key: 'levelTag'
} }
] ]
const [infoData, setinfoData] = useState<any>( const [infoData, setinfoData] = useState<any>(
...@@ -116,16 +121,16 @@ const PaySetting: React.FC<{}> = () => { ...@@ -116,16 +121,16 @@ const PaySetting: React.FC<{}> = () => {
const value = payActions.getFieldValue('applyMember') const value = payActions.getFieldValue('applyMember')
payActions.setFieldValue('applyMember', findItemAndDelete(value, id)) payActions.setFieldValue('applyMember', findItemAndDelete(value, id))
} }
const tableAddButton = <Button style={{marginBottom: 16}} block icon={<PlusOutlined/>} onClick={() =>handleAddMemberBtn()} type='dashed'>选择指定会员</Button> const tableAddButton = <Button style={{marginBottom: 16}} disabled={pageStatus === PageStatus.PREVIEW} block icon={<PlusOutlined/>} onClick={() =>handleAddMemberBtn()} type='dashed'>选择指定会员</Button>
const tableColumns = [ const tableColumns = [
{ dataIndex: 'memberId', title: 'ID', align: 'center' }, { dataIndex: 'memberId', title: 'ID', align: 'center' },
{ dataIndex: 'name', title: '会员名称',key:'name', align: 'center' }, { dataIndex: 'name', title: '会员名称',key:'name', align: 'left', render: (_, record) => <EyePreview url={`?id=${record.memberId}&preview=1`}>{_}</EyePreview> },
{ dataIndex: 'memberTypeName', key:'memberTypeName',align: 'center', title: '会员类型', render: (_, record) => <EyePreview url={`/memberCenter/memberAbility/manage/addMember?id=${record.memberId}&preview=1`}>{_}</EyePreview> }, { dataIndex: 'memberTypeName', key:'memberTypeName',align: 'center', title: '会员类型'},
{ dataIndex: 'roleName', key:'roleName',title: '会员角色', align: 'center' }, { dataIndex: 'roleName', key:'roleName',title: '会员角色', align: 'center' },
{ dataIndex: 'levelTag', key:'levelTag',title: '会员等级', align: 'center' }, { dataIndex: 'levelTag', key:'levelTag',title: '会员等级', align: 'center' },
{ dataIndex: 'ctl', title: '操作', align: 'center', render: (_, record) => { dataIndex: 'ctl', title: '操作', align: 'center', render: (_, record) =>
<> <>
<Button type='link' onClick={() => handleDeleteTable(record.id)}>删除</Button> <Button disabled={pageStatus === PageStatus.PREVIEW} type='link' onClick={() => handleDeleteTable(record.id)}>删除</Button>
</> </>
} }
...@@ -141,8 +146,15 @@ const PaySetting: React.FC<{}> = () => { ...@@ -141,8 +146,15 @@ const PaySetting: React.FC<{}> = () => {
payActions.setFieldValue(`ruleConfigurationId-${index}`,item.ruleConfigurationId) payActions.setFieldValue(`ruleConfigurationId-${index}`,item.ruleConfigurationId)
payActions.setFieldValue(`payWayIds-${index}`,item.payWayIds) payActions.setFieldValue(`payWayIds-${index}`,item.payWayIds)
}) })
payActions.setFieldValue('isSelected',data.isSelected) payActions.setFieldValue('isSelected',data.isSelected )
// payActions.setFieldValue('applyMember', data.memberIds) }
})
PublicApi.getPayApplyMemberList({id: usePageStatus().id,
...searchParams,current:1,pageSize: 10000
}).then(res => {
if(res.code === 1000){
let {data} = res.data
payActions.setFieldValue('applyMember', data)
} }
}) })
...@@ -227,23 +239,21 @@ const PaySetting: React.FC<{}> = () => { ...@@ -227,23 +239,21 @@ const PaySetting: React.FC<{}> = () => {
tableColumns, tableColumns,
tableAddButton tableAddButton
}} }}
// editable={usePageStatus().pageStatus === 2 ?false: true} editable={pageStatus !== PageStatus.PREVIEW}
onSubmit={handleSubmit} onSubmit={handleSubmit}
actions={payActions} actions={payActions}
schema={strategyDetailTab(infoData,usePageStatus)} schema={strategyDetailTab(infoData,usePageStatus)}
/> />
</Card> </Card>
<Modal <ModalTable
width={704} modalTitle='选择适用会员'
title='选择适用会员' confirm={handleOkAddMember}
onOk={handleOkAddMember} cancel={handleCancelAddMember}
onCancel={handleCancelAddMember} visible={visible}
visible={visible}
>
<StandardTable
columns={columnsSetMember} columns={columnsSetMember}
rowSelection={memberRowSelection} rowSelection={memberRowSelection}
fetchTableData={params => fetchMemberList(params)} fetchTableData={params => fetchMemberList(params)}
formilyProps={ formilyProps={
{ {
ctx: { schema: formSearch } ctx: { schema: formSearch }
...@@ -252,9 +262,7 @@ const PaySetting: React.FC<{}> = () => { ...@@ -252,9 +262,7 @@ const PaySetting: React.FC<{}> = () => {
tableProps={{ tableProps={{
rowKey: 'memberId' rowKey: 'memberId'
}} }}
> />
</StandardTable>
</Modal>
</PageHeaderWrapper> </PageHeaderWrapper>
) )
} }
......
.levelIcon1 {
width: 100%;
height: 20px;
background: url("/static/imgs/vip1@2x.png") no-repeat center;
background-size: 24px 20px;
}
.levelIcon2 {
width: 100%;
height: 20px;
background: url("/static/imgs/vip2@2x.png") no-repeat center;
background-size: 24px 20px;
}
.levelIcon3 {
width: 100%;
height: 20px;
background: url("/static/imgs/vip3@2x.png") no-repeat center;
background-size: 24px 20px;
}
.levelIcon4 {
width: 100%;
height: 20px;
background: url("/static/imgs/vip4@2x.png") no-repeat center;
background-size: 24px 20px;
}
.levelIcon1 {
width : 100%;
height : 20px;
background : url("/static/imgs/vip1@2x.png") no-repeat center;
background-size: 24px 20px;
}
.levelIcon2 {
width : 100%;
height : 20px;
background : url("/static/imgs/vip2@2x.png") no-repeat center;
background-size: 24px 20px;
}
.levelIcon3 {
width : 100%;
height : 20px;
background : url("/static/imgs/vip3@2x.png") no-repeat center;
background-size: 24px 20px;
}
.levelIcon4 {
width : 100%;
height : 20px;
background : url("/static/imgs/vip4@2x.png") no-repeat center;
background-size: 24px 20px;
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: LeeJiancong * @Author: LeeJiancong
* @Date: 2020-08-06 19:07:32 * @Date: 2020-08-06 19:07:32
* @LastEditors: LeeJiancong * @LastEditors: LeeJiancong
* @LastEditTime: 2020-08-11 16:19:10 * @LastEditTime: 2020-08-18 10:05:03
*/ */
import React, { useEffect,useState, useRef } from 'react'; import React, { useEffect,useState, useRef } from 'react';
import {Card,Row,Col,Space,Button,Popconfirm} from 'antd' import {Card,Row,Col,Space,Button,Popconfirm} from 'antd'
...@@ -146,7 +146,10 @@ const List: React.FC<{}> = () => { ...@@ -146,7 +146,10 @@ const List: React.FC<{}> = () => {
properties: { properties: {
name: { name: {
type: 'string', type: 'string',
"x-component": 'search' "x-component": 'search',
"x-component-props":{
placeholder:'输入策略名称'
}
} }
} }
} }
......
...@@ -2,13 +2,14 @@ ...@@ -2,13 +2,14 @@
* @Author: LeeJiancong * @Author: LeeJiancong
* @Date: 2020-08-06 11:12:18 * @Date: 2020-08-06 11:12:18
* @LastEditors: LeeJiancong * @LastEditors: LeeJiancong
* @LastEditTime: 2020-08-12 20:32:03 * @LastEditTime: 2020-08-18 15:21:25
*/ */
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import { ISchema } from '@formily/antd' import { ISchema } from '@formily/antd'
import { FORM_FILTER_PATH } from '@/formSchema/const' import { FORM_FILTER_PATH } from '@/formSchema/const'
import { GlobalConfig } from '@/global/config' import { GlobalConfig } from '@/global/config'
import { AreaChartOutlined } from '@ant-design/icons' import { AreaChartOutlined } from '@ant-design/icons'
import { json } from 'express'
let payType = ['', '线上支付', '线下支付', '授信额度支付', '货到付款支付'] let payType = ['', '线上支付', '线下支付', '授信额度支付', '货到付款支付']
let currentTab; let currentTab;
...@@ -17,8 +18,9 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => { ...@@ -17,8 +18,9 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => {
//新增时候就初始化 //新增时候就初始化
let baseList: any = GlobalConfig.payConfig.payInitializeConfig let baseList: any = GlobalConfig.payConfig.payInitializeConfig
console.log('baseList', baseList)
console.log('baseList', JSON.stringify(baseList))
// baseList[2].ruleConfigurations = [{value:1,label:"1",platformType:1}]
let tabItem = {}, Tab1 = {}, arr = [] let tabItem = {}, Tab1 = {}, arr = []
baseList.map((item, index) => { baseList.map((item, index) => {
Tab1[`MEGA_LAYOUT_LINE${index}`] = { Tab1[`MEGA_LAYOUT_LINE${index}`] = {
...@@ -36,14 +38,14 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => { ...@@ -36,14 +38,14 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => {
properties: { properties: {
[`ruleConfigurationId-${index}`]: { [`ruleConfigurationId-${index}`]: {
type: 'string', type: 'string',
enum: item.ruleConfigurations, enum: item.ruleConfigurations || [],
'x-component-props': { 'x-component-props': {
}, },
required: true, required: true,
}, },
[`payWayIds-${index}`]: { [`payWayIds-${index}`]: {
type: 'array:number', type: 'array:number',
enum: item.payWayResponses, enum: item.payWayResponses || [],
"x-component": 'checkbox', "x-component": 'checkbox',
'x-component-props': { 'x-component-props': {
}, },
...@@ -101,7 +103,8 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => { ...@@ -101,7 +103,8 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => {
required: true, required: true,
title: '策略名称', title: '策略名称',
'x-component-props': { 'x-component-props': {
placeholder: '请输入策略名称', max:24,
placeholder: '平台代收模式-线上支付+线下支付方式',
}, },
}, },
...Tab1 ...Tab1
...@@ -149,7 +152,11 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => { ...@@ -149,7 +152,11 @@ export const strategyDetailTab = (props: any, usePageStatus: any) => {
"x-component-props": { "x-component-props": {
rowKey: 'memberId', rowKey: 'memberId',
columns: "{{tableColumns}}", columns: "{{tableColumns}}",
prefix: "{{tableAddButton}}" prefix: "{{tableAddButton}}",
onChange:(val) => {
console.log(val)
}
} }
} }
} }
......
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