Commit f93466ce authored by 前端-黄佳鑫's avatar 前端-黄佳鑫
parents 7faf08c3 851afab3
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
"god": "^0.2.1", "god": "^0.2.1",
"immutability-helper": "^3.1.1", "immutability-helper": "^3.1.1",
"lingxi-design": "^1.0.8", "lingxi-design": "^1.0.8",
"lingxi-design-ui": "^1.1.14", "lingxi-design-ui": "^1.1.15",
"lingxi-editor-core": "^1.0.6", "lingxi-editor-core": "^1.0.6",
"lingxi-web": "^1.0.6", "lingxi-web": "^1.0.6",
"lint-staged": "^10.0.7", "lint-staged": "^10.0.7",
......
...@@ -7,6 +7,7 @@ import EditDataComponent from '../../EditDataComponent'; ...@@ -7,6 +7,7 @@ import EditDataComponent from '../../EditDataComponent';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import GetCaptchaCode from '../../GetCaptchaCode'; import GetCaptchaCode from '../../GetCaptchaCode';
import { history } from 'umi'; import { history } from 'umi';
import { encryptedByAES } from '@/utils/cryptoAes';
const layout = { const layout = {
labelCol: { span: 3 }, labelCol: { span: 3 },
...@@ -33,7 +34,7 @@ const EmailVerifyPanel = (props) => { ...@@ -33,7 +34,7 @@ const EmailVerifyPanel = (props) => {
const service = UPDATE_SERVICE[pageType]; const service = UPDATE_SERVICE[pageType];
let params = {}; let params = {};
if(pageType == 'loginPwd') { if(pageType == 'loginPwd') {
params['password'] = values.password params['password'] = encryptedByAES(values.password);
} else if(pageType == 'email') { } else if(pageType == 'email') {
params = { params = {
...params, ...params,
......
...@@ -5,6 +5,7 @@ import SafeVerification from '../../SafeVerification'; ...@@ -5,6 +5,7 @@ import SafeVerification from '../../SafeVerification';
import EditDataComponent from '../../EditDataComponent'; import EditDataComponent from '../../EditDataComponent';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import { history } from 'umi' import { history } from 'umi'
import { encryptedByAES } from '@/utils/cryptoAes'
const layout = { const layout = {
labelCol: { span: 3 }, labelCol: { span: 3 },
...@@ -36,7 +37,7 @@ const PaycodeVerifyPanel: React.FC<IProps> = (props) => { ...@@ -36,7 +37,7 @@ const PaycodeVerifyPanel: React.FC<IProps> = (props) => {
const service = UPDATE_SERVICE[pageType]; const service = UPDATE_SERVICE[pageType];
let params = {}; let params = {};
if(pageType == 'loginPwd') { if(pageType == 'loginPwd') {
params['password'] = values.password params['password'] = encryptedByAES(values.password);
} else if(pageType == 'email') { } else if(pageType == 'email') {
params = { params = {
...params, ...params,
......
...@@ -7,6 +7,7 @@ import EditDataComponent from '../../EditDataComponent'; ...@@ -7,6 +7,7 @@ import EditDataComponent from '../../EditDataComponent';
import GetCaptchaCode from '../../GetCaptchaCode'; import GetCaptchaCode from '../../GetCaptchaCode';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import { history } from 'umi'; import { history } from 'umi';
import { encryptedByAES } from '@/utils/cryptoAes'
const layout = { const layout = {
labelCol: { span: 3 }, labelCol: { span: 3 },
...@@ -38,7 +39,7 @@ const PhoneVerifyPanel: React.FC<IProps> = (props) => { ...@@ -38,7 +39,7 @@ const PhoneVerifyPanel: React.FC<IProps> = (props) => {
const service = UPDATE_SERVICE[pageType]; const service = UPDATE_SERVICE[pageType];
let params = {}; let params = {};
if(pageType == 'loginPwd') { if(pageType == 'loginPwd') {
params['password'] = values.password params['password'] = encryptedByAES(values.password)
} else if(pageType == 'email') { } else if(pageType == 'email') {
params = { params = {
...params, ...params,
...@@ -55,11 +56,9 @@ const PhoneVerifyPanel: React.FC<IProps> = (props) => { ...@@ -55,11 +56,9 @@ const PhoneVerifyPanel: React.FC<IProps> = (props) => {
} }
service(params).then((data) => { service(params).then((data) => {
if(data.code == 1000) { if(data.code == 1000) {
console.log("success")
history.push('/memberCenter/systemSetting/accountSetting') history.push('/memberCenter/systemSetting/accountSetting')
} }
}) })
console.log(params);
} }
// 获取旧手机验证码 // 获取旧手机验证码
...@@ -83,7 +82,6 @@ const PhoneVerifyPanel: React.FC<IProps> = (props) => { ...@@ -83,7 +82,6 @@ const PhoneVerifyPanel: React.FC<IProps> = (props) => {
} }
const service = SERVICE_CHECK[props.pageType]; const service = SERVICE_CHECK[props.pageType];
service({smsCode: captcha}, { ctlType: 'none' }).then((data) => { service({smsCode: captcha}, { ctlType: 'none' }).then((data) => {
console.log(data);
if(data.code == 1000) { if(data.code == 1000) {
message.success("验证成功") message.success("验证成功")
setVisible(true); setVisible(true);
......
...@@ -26,7 +26,6 @@ const EditAccount = (props) => { ...@@ -26,7 +26,6 @@ const EditAccount = (props) => {
const pathnameSplit = props.location.pathname.split("/") const pathnameSplit = props.location.pathname.split("/")
const length = pathnameSplit.length; const length = pathnameSplit.length;
const type = pathnameSplit[length - 1] || "loginPwd"; const type = pathnameSplit[length - 1] || "loginPwd";
console.log(type);
// const { type = 'loginPwd' } = props.location.query // const { type = 'loginPwd' } = props.location.query
const [account, setAccount] = useState<accountProps>({}) const [account, setAccount] = useState<accountProps>({})
......
...@@ -2,7 +2,7 @@ import React, {useState, useEffect, useCallback} from 'react'; ...@@ -2,7 +2,7 @@ import React, {useState, useEffect, useCallback} from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history } from 'umi'; import { history } from 'umi';
import AvatarWrap from '@/components/AvatarWrap'; import AvatarWrap from '@/components/AvatarWrap';
import { PageHeader, Descriptions, Card, Tabs, Row, Col, Button, Select } from 'antd'; import { PageHeader, Descriptions, Card, Tabs, Row, Col, Button } from 'antd';
import Circulation from '../../components/Circulation'; import Circulation from '../../components/Circulation';
import WrapTable from '../../components/WrapTable'; import WrapTable from '../../components/WrapTable';
import OtherRequirement from '../../components/OtherRequirement'; import OtherRequirement from '../../components/OtherRequirement';
...@@ -15,33 +15,46 @@ import moment from 'moment'; ...@@ -15,33 +15,46 @@ import moment from 'moment';
import { columns, innerWorkFlowRecordColumn, outerWorkflowRecordsColumn, receiveColumns } from './columns'; import { columns, innerWorkFlowRecordColumn, outerWorkflowRecordsColumn, receiveColumns } from './columns';
import ExamineModal from '../../components/ExamineModal'; import ExamineModal from '../../components/ExamineModal';
import { FormOutlined } from '@ant-design/icons' import { FormOutlined } from '@ant-design/icons'
import {
ASSIGN_QUERY_DETAIL,
ASSIGN_TO_BE_ADD_QUERY_DETAIL,
ASSIGN_PENDING_FIRST_DETAIL,
ASSIGN_PENDING_SECOND_DETAIL,
ASSIGN_PENDING_SUBMIT_DETAIL,
ASSIGN_PENDING_RECEIVE_DETAIL,
CONFIRM_QUERY_DETAIL,
CONFIRM_PENDING_SUBMIT_DETAIL,
CONFIRM_PENDING_FIRST_DETAIL,
CONFIRM_PENDING_SECOND_DETAIL,
CONFIRM_PENDING_CONFIRM_DETAIL
} from '../../common';
// 下面的地址需要抽离出来, 还有以下的相同的path // 下面的地址需要抽离出来, 还有以下的相同的path
const SERVICE_MAP = { const SERVICE_MAP = {
'/memberCenter/handling/assign/query/detail': PublicApi.getEnhanceSupplierAllDetails, [`${ASSIGN_QUERY_DETAIL}`]: PublicApi.getEnhanceSupplierAllDetails,
'/memberCenter/handling/assign/tobeAddQuery/detail': PublicApi.getEnhanceSupplierToBeAddDetails, [`${ASSIGN_TO_BE_ADD_QUERY_DETAIL}`]: PublicApi.getEnhanceSupplierToBeAddDetails,
'/memberCenter/handling/assign/pendingFirst/detail': PublicApi.getEnhanceSupplierToBeFirstExamDetails, [`${ASSIGN_PENDING_FIRST_DETAIL}`]: PublicApi.getEnhanceSupplierToBeFirstExamDetails,
'/memberCenter/handling/assign/pendingSecond/detail': PublicApi.getEnhanceSupplierToBeSecondExamDetails, [`${ASSIGN_PENDING_SECOND_DETAIL}`]: PublicApi.getEnhanceSupplierToBeSecondExamDetails,
'/memberCenter/handling/assign/pendingSubmit/detail': PublicApi.getEnhanceSupplierToBeSubmitDetails, [`${ASSIGN_PENDING_SUBMIT_DETAIL}`]: PublicApi.getEnhanceSupplierToBeSubmitDetails,
'/memberCenter/handling/assign/pendingReceive/detail': PublicApi.getEnhanceSupplierToBeReceiveDetails, [`${ASSIGN_PENDING_RECEIVE_DETAIL}`]: PublicApi.getEnhanceSupplierToBeReceiveDetails,
'/memberCenter/handling/confirm/query/detail': PublicApi.getEnhanceProcessAllDetails, [`${CONFIRM_QUERY_DETAIL}`]: PublicApi.getEnhanceProcessAllDetails,
'/memberCenter/handling/confirm/pendingSubmit/detail': PublicApi.getEnhanceProcessToBeSubmitExamDetails, [`${CONFIRM_PENDING_SUBMIT_DETAIL}`]: PublicApi.getEnhanceProcessToBeSubmitExamDetails,
'/memberCenter/handling/confirm/pendingFirst/detail': PublicApi.getEnhanceProcessToBeFirstExamDetails, [`${CONFIRM_PENDING_FIRST_DETAIL}`]: PublicApi.getEnhanceProcessToBeFirstExamDetails,
'/memberCenter/handling/confirm/pendingSecond/detail': PublicApi.getEnhanceProcessToBeSecondExamDetails, [`${CONFIRM_PENDING_SECOND_DETAIL}`]: PublicApi.getEnhanceProcessToBeSecondExamDetails,
'/memberCenter/handling/confirm/pendingConfirm/detail': PublicApi.getEnhanceProcessToBeConfirmDetails [`${CONFIRM_PENDING_CONFIRM_DETAIL}`]: PublicApi.getEnhanceProcessToBeConfirmDetails
} }
/** /**
* 审核链接 * 审核链接
*/ */
const EXAM_SERVICE = { const EXAM_SERVICE = {
'/memberCenter/handling/assign/pendingFirst/detail': PublicApi.postEnhanceSupplierToBeFirstExamExam, [`${ASSIGN_QUERY_DETAIL}`]: PublicApi.postEnhanceSupplierToBeFirstExamExam,
'/memberCenter/handling/assign/pendingSecond/detail': PublicApi.postEnhanceSupplierToBeSecondExamExam, [`${ASSIGN_PENDING_SECOND_DETAIL}`]: PublicApi.postEnhanceSupplierToBeSecondExamExam,
'/memberCenter/handling/confirm/pendingSubmit/detail': PublicApi.postEnhanceProcessToBeSubmitExamExam, [`${CONFIRM_PENDING_SUBMIT_DETAIL}`]: PublicApi.postEnhanceProcessToBeSubmitExamExam,
'/memberCenter/handling/confirm/pendingFirst/detail': PublicApi.postEnhanceProcessToBeFirstExamExam, [`${CONFIRM_PENDING_FIRST_DETAIL}`]: PublicApi.postEnhanceProcessToBeFirstExamExam,
'/memberCenter/handling/confirm/pendingSecond/detail': PublicApi.postEnhanceProcessToBeSecondExamExam, [`${CONFIRM_PENDING_SECOND_DETAIL}`]: PublicApi.postEnhanceProcessToBeSecondExamExam,
'/memberCenter/handling/confirm/pendingConfirm/detail': PublicApi.postEnhanceProcessToBeConfirmExam [`${CONFIRM_PENDING_CONFIRM_DETAIL}`]: PublicApi.postEnhanceProcessToBeConfirmExam
} }
const { TabPane } = Tabs; const { TabPane } = Tabs;
...@@ -52,7 +65,7 @@ const Detail: React.FC<{}> = () => { ...@@ -52,7 +65,7 @@ const Detail: React.FC<{}> = () => {
const [loading, setLoading] = useState<boolean>(false); const [loading, setLoading] = useState<boolean>(false);
const [deliverAddressOption, setDeliverAddressOption] = useState([]); const [deliverAddressOption, setDeliverAddressOption] = useState([]);
const [activeAddress, setActiveAddress] = useState<string | null>(null) const [activeAddress, setActiveAddress] = useState<string | null>(null)
const isSetDeliverAddress = pathname == '/memberCenter/handling/confirm/pendingSubmit/detail'; const isSetDeliverAddress = pathname == `${CONFIRM_PENDING_SUBMIT_DETAIL}`;
useEffect(() => { useEffect(() => {
if(id) { if(id) {
const service = SERVICE_MAP[pathname]; const service = SERVICE_MAP[pathname];
...@@ -150,13 +163,13 @@ const Detail: React.FC<{}> = () => { ...@@ -150,13 +163,13 @@ const Detail: React.FC<{}> = () => {
) )
const SubmitBtn = <Button loading={loading} icon={<FormOutlined />} onClick={submit} type="primary"> 提交通知单</Button> const SubmitBtn = <Button loading={loading} icon={<FormOutlined />} onClick={submit} type="primary"> 提交通知单</Button>
const COMPONENT_MAP = { const COMPONENT_MAP = {
'/memberCenter/handling/assign/pendingSubmit/detail': SubmitBtn, [`${ASSIGN_PENDING_SUBMIT_DETAIL}`]: SubmitBtn,
'/memberCenter/handling/assign/pendingFirst/detail': ExamineComponent, [`${ASSIGN_PENDING_FIRST_DETAIL}`]: ExamineComponent,
'/memberCenter/handling/assign/pendingSecond/detail': ExamineComponent, [`${ASSIGN_PENDING_SECOND_DETAIL}`]: ExamineComponent,
'/memberCenter/handling/confirm/pendingSubmit/detail': ExamineComponent, [`${CONFIRM_PENDING_SUBMIT_DETAIL}`]: ExamineComponent,
'/memberCenter/handling/confirm/pendingFirst/detail': ExamineComponent, [`${CONFIRM_PENDING_FIRST_DETAIL}`]: ExamineComponent,
'/memberCenter/handling/confirm/pendingSecond/detail': ExamineComponent, [`${CONFIRM_PENDING_SECOND_DETAIL}`]: ExamineComponent,
'/memberCenter/handling/confirm/pendingConfirm/detail': ExamineComponent [`${CONFIRM_PENDING_CONFIRM_DETAIL}`]: ExamineComponent
} }
return (COMPONENT_MAP[pathname] || null) return (COMPONENT_MAP[pathname] || null)
} }
......
...@@ -20,3 +20,168 @@ export const docTime = [{label: '单据时间(全部)', value: 0}].concat(co ...@@ -20,3 +20,168 @@ export const docTime = [{label: '单据时间(全部)', value: 0}].concat(co
* 下单时间 * 下单时间
*/ */
export const orderTime = [{label: '单据时间(全部)', value: 0}].concat(commonTimeList); export const orderTime = [{label: '单据时间(全部)', value: 0}].concat(commonTimeList);
export const ASSIGN_QUERY = '/memberCenter/handling/assign/query';
export const ASSIGN_TO_BE_ADD_QUERY = '/memberCenter/handling/assign/tobeAddQuery';
export const ASSIGN_PENDING_FIRST = '/memberCenter/handling/assign/pendingFirst';
export const ASSIGN_PENDING_SECOND = '/memberCenter/handling/assign/pendingSecond';
export const ASSIGN_PENDING_SUBMIT = '/memberCenter/handling/assign/pendingSubmit';
export const ASSIGN_PENDING_RECEIVE = '/memberCenter/handling/assign/pendingReceive';
/**
* 确认生产通知单
*/
export const CONFIRM_QUERY = '/memberCenter/handling/confirm/query';
export const CONFIRM_PENDING_SUBMIT = '/memberCenter/handling/confirm/pendingSubmit';
export const CONFIRM_PENDING_FIRST = '/memberCenter/handling/confirm/pendingFirst';
export const CONFIRM_PENDING_SECOND = '/memberCenter/handling/confirm/pendingSecond';
export const CONFIRM_PENDING_CONFIRM = '/memberCenter/handling/confirm/pendingConfirm';
/**
* 以下是以下detail 的路径
*/
const DETAIL = '/detail'
export const ASSIGN_QUERY_DETAIL = ASSIGN_QUERY + DETAIL;
export const ASSIGN_TO_BE_ADD_QUERY_DETAIL = ASSIGN_TO_BE_ADD_QUERY + DETAIL;
export const ASSIGN_PENDING_FIRST_DETAIL = ASSIGN_PENDING_FIRST + DETAIL;
export const ASSIGN_PENDING_SECOND_DETAIL = ASSIGN_PENDING_SECOND + DETAIL;
export const ASSIGN_PENDING_SUBMIT_DETAIL = ASSIGN_PENDING_SUBMIT + DETAIL;
export const ASSIGN_PENDING_RECEIVE_DETAIL = ASSIGN_PENDING_RECEIVE + DETAIL;
export const CONFIRM_QUERY_DETAIL = CONFIRM_QUERY + DETAIL
export const CONFIRM_PENDING_SUBMIT_DETAIL = CONFIRM_PENDING_SUBMIT + DETAIL;
export const CONFIRM_PENDING_FIRST_DETAIL = CONFIRM_PENDING_FIRST + DETAIL;
export const CONFIRM_PENDING_SECOND_DETAIL = CONFIRM_PENDING_SECOND + DETAIL;
export const CONFIRM_PENDING_CONFIRM_DETAIL = CONFIRM_PENDING_CONFIRM + DETAIL;
/**
* 指派生产通知单-生产通知单查询页
*/
export const QUERY_SEARCH_NAME = "noticeNo";
/**
* 指派生产通知单-待新增生产通知单列表页
*/
export const TO_BE_ADD_QUERY_SEARCH_NAME = "noticeNo";
/**
* 指派生产通知单-待审核生产通知单(一级)
* 指派生产通知单-待审核生产通知单(二级)
*/
export const PENDING_FIRST_AND_SECOND_NOTICE = "noticeNo";
/**
* 指派生产通知单-待提交生产通知单
*/
export const PENDING_TO_SUBMIT = "noticeNo";
/**
* 指派生产通知单-待新增加工入库单
*/
export const PENDING_ADD_PROCESS = "summary"
/**
* 指派生产通知单-待收货生产通知单
*/
export const PENDING_RECEIVE_SCHEMA = "noticeNo"
/**
* 下面设置各个 path 常量
*/
export const QUERY_PATH = '/query';
const QUERY_TITLE = '生产通知单查询';
/**
* 待新增生产通知单
*/
export const TO_BE_ADD_QUERY_PATH = '/tobeAddQuery';
const TO_BE_ADD_QUERY_TITLE = '待新增生产通知单';
/**
* 带审核生产通知单(一级)
*/
export const PENDING_FIRST = '/pendingFirst';
const PENDING_FIRST_TITLE = '待审核通知单(一级)';
/**
* 待审核通知单(二级)
*/
export const PENDING_SECOND = '/pendingSecond';
const PENDING_SECOND_TITLE = '待审核通知单(二级)';
/**
* 待审核生产通知单
*/
export const PENDING_SUBMIT = '/pendingSubmit';
const PENDING_SUBMIT_TITLE = '待提交生产通知单';
/**
* 待收货生产通知单
*/
export const PENDING_RECEIVE = '/pendingReceive';
const PENDING_RECEIVE_TITLE = '待收货生产通知单';
export const TITLE_MAPS = {
[QUERY_PATH]: QUERY_TITLE,
[TO_BE_ADD_QUERY_PATH]: TO_BE_ADD_QUERY_TITLE,
[PENDING_FIRST]: PENDING_FIRST_TITLE,
[PENDING_SECOND]: PENDING_SECOND_TITLE,
[PENDING_SUBMIT]: PENDING_SUBMIT_TITLE,
[PENDING_RECEIVE]: PENDING_RECEIVE_TITLE
}
export const INNER_STATUS_BADGE_COLOR = {
"1": "default",
"2": "warning",
"3": "processing",
"4": "success",
"5": "error",
"9": "error"
}
/**
* 指派生产通知单-> 列表页 -> 内部状态: 只有四种装填:待审核, 待提交审核通知单- 审核不通过, 审核通过
*/
// supplierInnerStatus
export const SUPPLIER_INNER_STATUS_COLOR = {
"1": "default",
"2": "warning",
"3": "processing",
"5": "success",
"9": "error",
}
// 根据 lastTypeParams, 获取对应的高级筛选 name
export const FILTER_NAMES = {
[QUERY_PATH]: QUERY_SEARCH_NAME,
[TO_BE_ADD_QUERY_PATH]: TO_BE_ADD_QUERY_SEARCH_NAME,
[PENDING_FIRST]: PENDING_FIRST_AND_SECOND_NOTICE,
[PENDING_SECOND]: PENDING_FIRST_AND_SECOND_NOTICE,
[PENDING_SUBMIT]: PENDING_TO_SUBMIT,
[PENDING_RECEIVE]: PENDING_RECEIVE_SCHEMA,
"/pendingAddProcessing": PENDING_ADD_PROCESS,
}
export const DETAIL_PATH = {
[QUERY_PATH]: ASSIGN_QUERY_DETAIL,
[TO_BE_ADD_QUERY_PATH]: ASSIGN_TO_BE_ADD_QUERY_DETAIL,
[PENDING_FIRST]: CONFIRM_PENDING_FIRST_DETAIL,
[PENDING_SECOND]: ASSIGN_PENDING_SECOND_DETAIL,
[PENDING_SUBMIT]: ASSIGN_PENDING_SUBMIT,
[PENDING_RECEIVE]: ASSIGN_PENDING_RECEIVE_DETAIL,
}
\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
import React, { useRef, useState } from 'react'; import React, { useRef, useState } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card, Space, Button, Menu, Dropdown, Badge } from 'antd'; import { Card, Space, Button, Menu, Dropdown, Badge, Spin } from 'antd';
import NiceForm from '@/components/NiceForm'; import NiceForm from '@/components/NiceForm';
import { StandardTable } from 'god'; import { StandardTable } from 'god';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
...@@ -28,10 +28,10 @@ import { ...@@ -28,10 +28,10 @@ import {
PENDING_SUBMIT, PENDING_SUBMIT,
PENDING_RECEIVE, //以上代表路径 PENDING_RECEIVE, //以上代表路径
TITLE_MAPS, TITLE_MAPS,
INNER_STATUS_BADGE_COLOR, SUPPLIER_INNER_STATUS_COLOR,
FILTER_NAMES, FILTER_NAMES,
DETAIL_PATH DETAIL_PATH
} from './contants'; } from '../../common';
import { timeRange } from '@/utils'; import { timeRange } from '@/utils';
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'; import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import moment from 'moment'; import moment from 'moment';
...@@ -123,7 +123,7 @@ const Query: React.FC<{}> = (props) => { ...@@ -123,7 +123,7 @@ const Query: React.FC<{}> = (props) => {
dataIndex: 'innerStatusName', dataIndex: 'innerStatusName',
render: (text, record: any) => { render: (text, record: any) => {
return ( return (
<Badge status={INNER_STATUS_BADGE_COLOR[record.supplierInnerStatus]} text={text}></Badge> <Badge status={SUPPLIER_INNER_STATUS_COLOR[record.supplierInnerStatus]} text={text}></Badge>
) )
} }
} }
...@@ -135,10 +135,10 @@ const Query: React.FC<{}> = (props) => { ...@@ -135,10 +135,10 @@ const Query: React.FC<{}> = (props) => {
render: (text, record: any) => { render: (text, record: any) => {
const url = DETAIL_PATH[lastTypeParams] const url = DETAIL_PATH[lastTypeParams]
const actionMap = { const actionMap = {
[TO_BE_ADD_QUERY_PATH]: (<a onClick={() => handleUpdateOrDelete('review', {id: record.id})}>{"提交审核"}</a>), [TO_BE_ADD_QUERY_PATH]: (<Spin spinning={submitLoading}><a onClick={() => handleUpdateOrDelete('review', {id: record.id})}>{"提交审核"}</a></Spin>),
[PENDING_FIRST]: <Link to={`${url}?id=${record.id}`}>审核</Link>, [PENDING_FIRST]: <Link to={`${url}?id=${record.id}`}>审核</Link>,
[PENDING_SECOND]: <Link to={`${url}?id=${record.id}`}>审核</Link>, [PENDING_SECOND]: <Link to={`${url}?id=${record.id}`}>审核</Link>,
[PENDING_SUBMIT]: (<a onClick={() => handleUpdateOrDelete('review', {id: record.id})}>{"提交通知单"}</a>), [PENDING_SUBMIT]: (<Spin spinning={submitLoading}><a onClick={() => handleUpdateOrDelete('review', {id: record.id})}>{"提交通知单"}</a></Spin>),
[PENDING_RECEIVE]: <Link to={`${url}?id=${record.id}`}>收货</Link> [PENDING_RECEIVE]: <Link to={`${url}?id=${record.id}`}>收货</Link>
} }
return ( return (
......
import React from 'react'; import React, { useCallback } from 'react';
import AbilityContainer from './Container'; import AbilityContainer from './Container';
import { Row, Col } from 'antd'; import { Row, Col, Skeleton } from 'antd';
import styles from './center.less' import styles from './center.less'
import create_shop from '@/assets/imgs/create_shop.png'; import create_shop from '@/assets/imgs/create_shop.png';
import { PublicApi } from '@/services/api';
import { Link } from 'umi'
interface Iprops {}; interface Iprops {};
const KEY_TITLE = {
repairApplyList: '售后维修申请',
repairHandleList: '售后维修处理',
replaceApplyList: '售后换货申请',
replaceHandleList: '售后换货处理',
returnApplyList: '售后退货申请',
returnHandleList: '售后退货处理'
}
const SettlementAbility: React.FC<Iprops> = () => { const SettlementAbility: React.FC<Iprops> = () => {
const data = [ const request = useCallback(async () => {
{ const res = await PublicApi.getReportMemberHomeGetAfterSaleTally();
id: 1, return res;
list: [1,2,3,4] }, [])
},
{
id: 2,
list: [1,2,3,4]
},
{
id: 3,
list: [1,2,3,4,5]
},
]
return ( return (
<AbilityContainer <AbilityContainer
title="售后中心" title="售后中心"
...@@ -28,30 +30,43 @@ const SettlementAbility: React.FC<Iprops> = () => { ...@@ -28,30 +30,43 @@ const SettlementAbility: React.FC<Iprops> = () => {
extra={ extra={
<a>进入售后中心</a> <a>进入售后中心</a>
} }
request={request}
> >
<div> {
{ ({loading, requestData}) => {
data.map((record) => { return (
return ( <>
<Row key={record.id} className={styles.row}> {
<Col span={4} className={styles.rowTitle}>平台代收账款结算</Col> loading
<Col span={20} className={styles.colRow}> ? <Skeleton active />
{ : Object.keys(requestData).map((record) => {
record.list.map((item) => { return (
return ( <Row key={record} className={styles.row}>
<Col span={4} key={item} className={styles.col}> <Col span={4} className={styles.rowTitle}>{KEY_TITLE[record]}</Col>
<div className={styles.colTitle}>待提交审核咨询单</div> <Col span={20} className={styles.colRow}>
<div className={styles.colValue}>5</div> {
</Col> requestData[record].map((item, key) => {
) return (
}) <Col span={4} key={key} className={styles.col}>
} <div className={styles.colTitle}>{item.name}</div>
</Col> {
</Row> item.link
) ? <Link to={item.link} className={styles.colValue}>{item.count}</Link>
}) : <div className={styles.colValue}>{item.count}</div>
}
</Col>
)
})
}
</Col>
</Row>
)
})
}
</>
)
} }
</div> }
</AbilityContainer> </AbilityContainer>
) )
} }
......
...@@ -3,7 +3,7 @@ import AbilityContainer from './Container'; ...@@ -3,7 +3,7 @@ import AbilityContainer from './Container';
import { Row, Col, Skeleton } from 'antd'; import { Row, Col, Skeleton } from 'antd';
import styles from './center.less' import styles from './center.less'
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import { Link } from 'umi'
interface Iprops {}; interface Iprops {};
const KEY_TITLE = { const KEY_TITLE = {
'commodityInquiryList': '商品询价', 'commodityInquiryList': '商品询价',
...@@ -51,7 +51,11 @@ const TradeCenter: React.FC<Iprops> = () => { ...@@ -51,7 +51,11 @@ const TradeCenter: React.FC<Iprops> = () => {
return ( return (
<Col span={4} key={key} className={styles.col}> <Col span={4} key={key} className={styles.col}>
<div className={styles.colTitle}>{item.name}</div> <div className={styles.colTitle}>{item.name}</div>
<div className={styles.colValue}>{item.count}</div> {
item.link
? <Link to={item.link} className={styles.colValue}>{item.count}</Link>
: <div className={styles.colValue}>{item.count}</div>
}
</Col> </Col>
) )
}) })
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
font-size: 24px; font-size: 24px;
margin-top: 16px; margin-top: 16px;
color: #303133; color: #303133;
display: block;
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
......
...@@ -16,6 +16,7 @@ const WEEKDAYS = ["天", "一","二", "三", "四", "五","六"]; ...@@ -16,6 +16,7 @@ const WEEKDAYS = ["天", "一","二", "三", "四", "五","六"];
const LEVEL_IMAGE = [level1, level2, level3, level4]; const LEVEL_IMAGE = [level1, level2, level3, level4];
const EDIT_USER_URL = '/memberCenter/memberAbility/query'; const EDIT_USER_URL = '/memberCenter/memberAbility/query';
const USER_CENTER_URL = '/memberCenter/memberAbility/manage/maintain' const USER_CENTER_URL = '/memberCenter/memberAbility/manage/maintain'
const STATUS_COLOR = ["default", "processing", "error", "success"]
const UserCenter: React.FC<Iprops> = () => { const UserCenter: React.FC<Iprops> = () => {
const today = moment(); const today = moment();
...@@ -55,14 +56,16 @@ const UserCenter: React.FC<Iprops> = () => { ...@@ -55,14 +56,16 @@ const UserCenter: React.FC<Iprops> = () => {
{ {
userAuth.roles.map((item, key) => { userAuth.roles.map((item, key) => {
return ( return (
<StatusTag type="success" key={key} title={item.memberRoleName} /> <div style={{marginRight: '8px'}}>
<StatusTag type="success" key={key} title={item.memberRoleName} />
</div>
) )
}) })
} }
</div> </div>
</div> </div>
<div className={styles.status}> <div className={styles.status}>
<Badge status={"error"} text={userAuth.validateStatusDesc}></Badge> <Badge status={STATUS_COLOR[userAuth.validateStatus]} text={userAuth.validateStatusDesc}></Badge>
</div> </div>
</div> </div>
</Col> </Col>
......
...@@ -343,6 +343,13 @@ const CommodityDetail = (props) => { ...@@ -343,6 +343,13 @@ const CommodityDetail = (props) => {
message.info("请选择商品属性") message.info("请选择商品属性")
return return
} }
if (buyCount < commodityDetail.minOrder) {
message.destroy()
message.info("购买数量不能低于最小购买量")
return
}
if (clickFlag) { if (clickFlag) {
clickFlag = false clickFlag = false
let param: any = { let param: any = {
......
...@@ -178,7 +178,7 @@ const Recommand: React.FC<RecommandPropsType> = (props) => { ...@@ -178,7 +178,7 @@ const Recommand: React.FC<RecommandPropsType> = (props) => {
link = `${GlobalConfig.ichannelRootRoute}/commodity/detail?id=${item.id}&channelId=${btoa(JSON.stringify({ memberId }))}` link = `${GlobalConfig.ichannelRootRoute}/commodity/detail?id=${item.id}&channelId=${btoa(JSON.stringify({ memberId }))}`
break break
default: default:
link = `/shop/commodity/detail?id=${item.id}&shopId=${btoa(JSON.stringify({ memberId }))}` link = `/shop/commodity/detail?id=${item.id}&shopId=${btoa(JSON.stringify({ memberId: item.memberId }))}`
break break
} }
return link return link
......
...@@ -10,6 +10,7 @@ import { GetMemberSecurityGetResponse } from '@/services/MemberApi' ...@@ -10,6 +10,7 @@ import { GetMemberSecurityGetResponse } from '@/services/MemberApi'
import { priceFormat } from '@/utils/numberFomat' import { priceFormat } from '@/utils/numberFomat'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import { linkToUrl } from '../../utils' import { linkToUrl } from '../../utils'
import { encryptedByAES } from '@/utils/cryptoAes'
import styles from './index.less' import styles from './index.less'
interface BablancePayWayPropsType { interface BablancePayWayPropsType {
...@@ -26,10 +27,9 @@ const BablancePayWay: React.FC<BablancePayWayPropsType> = (props) => { ...@@ -26,10 +27,9 @@ const BablancePayWay: React.FC<BablancePayWayPropsType> = (props) => {
const [balanceInfo, setBalanceInfo] = useState<GetPayAssetAccountGetUserBalanceResponse>(0) const [balanceInfo, setBalanceInfo] = useState<GetPayAssetAccountGetUserBalanceResponse>(0)
const [securityInfo, setSecurityInfo] = useState<GetMemberSecurityGetResponse>() const [securityInfo, setSecurityInfo] = useState<GetMemberSecurityGetResponse>()
const [payPassword, setPayPassword] = useState<string>('') const [payPassword, setPayPassword] = useState<string>('')
const [type, setType] = useState<string>('normal') // normal: 普通;member:会员
const [confirmLoading, setConfirmLoading] = useState<boolean>(false) const [confirmLoading, setConfirmLoading] = useState<boolean>(false)
const [pageLoading, setPageLoading] = useState<boolean>(true) const [pageLoading, setPageLoading] = useState<boolean>(true)
const [payDisabled, setPayDisabled] = useState<boolean>(false) const [payDisabled] = useState<boolean>(false)
const handlePasswordChange = (value: string) => { const handlePasswordChange = (value: string) => {
setPayPassword(value) setPayPassword(value)
...@@ -84,7 +84,7 @@ const BablancePayWay: React.FC<BablancePayWayPropsType> = (props) => { ...@@ -84,7 +84,7 @@ const BablancePayWay: React.FC<BablancePayWayPropsType> = (props) => {
id: Number(orderId), id: Number(orderId),
paymentInformationId: Number(payInfo.paymentInformationId), paymentInformationId: Number(payInfo.paymentInformationId),
payTypeId: payInfo.paymentChannelsId, payTypeId: payInfo.paymentChannelsId,
payPassword: Number(payPassword) payPassword: encryptedByAES(payPassword)
} }
setConfirmLoading(true) setConfirmLoading(true)
//@ts-ignore //@ts-ignore
......
...@@ -4,11 +4,12 @@ import PasswordInput from '../passwordInput' ...@@ -4,11 +4,12 @@ import PasswordInput from '../passwordInput'
import { LAYOUT_TYPE } from '@/constants' import { LAYOUT_TYPE } from '@/constants'
import { history } from 'umi' import { history } from 'umi'
import { GetOrderOrderPayDetailsResponse } from '@/services/OrderApi' import { GetOrderOrderPayDetailsResponse } from '@/services/OrderApi'
import { GetMemberSecurityGetResponse } from '@/services/MemberApi' import { GetMemberSecurityGetResponse, GetMemberBusinessLrcRightPointGetResponse } from '@/services/MemberApi'
import { Button, message } from 'antd' import { Button, message, Spin } from 'antd'
import { numFormat } from '@/utils/numberFomat' import { numFormat } from '@/utils/numberFomat'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import { linkToUrl } from '../../utils' import { linkToUrl } from '../../utils'
import { encryptedByAES } from '@/utils/cryptoAes'
import styles from './index.less' import styles from './index.less'
interface PointPayWayPropsType { interface PointPayWayPropsType {
...@@ -21,27 +22,49 @@ interface PointPayWayPropsType { ...@@ -21,27 +22,49 @@ interface PointPayWayPropsType {
} }
const PointPayWay: React.FC<PointPayWayPropsType> = (props) => { const PointPayWay: React.FC<PointPayWayPropsType> = (props) => {
const { payInfo, orderId, orderInfo, layoutType, shopUrlParam } = props const { payInfo, orderId, orderInfo, layoutType, onChange, shopUrlParam } = props
const [securityInfo, setSecurityInfo] = useState<GetMemberSecurityGetResponse>() const [securityInfo, setSecurityInfo] = useState<GetMemberSecurityGetResponse>()
const [payPassword, setPayPassword] = useState<string>('') const [payPassword, setPayPassword] = useState<string>('')
const [type, setType] = useState<string>('normal') // normal: 普通;member:会员 const [pointInfo, setPointInfo] = useState<GetMemberBusinessLrcRightPointGetResponse>()
const [confirmLoading, setConfirmLoading] = useState<boolean>(false) const [confirmLoading, setConfirmLoading] = useState<boolean>(false)
const [payDisabled, setPayDisabled] = useState<boolean>(false) const [payDisabled] = useState<boolean>(false)
const [pageLoading, setPageLoading] = useState<boolean>(true)
const [relType, setRelType] = useState<number>(0) // 0: 平台;1:会员
const handlePasswordChange = (value: string) => { const handlePasswordChange = (value: string) => {
setPayPassword(value) setPayPassword(value)
} }
const handleChangeType = (type: string) => { const handleChangeType = (type: number) => {
setType(type) setRelType(type)
} }
useEffect(() => { useEffect(() => {
if (orderInfo) { if (orderInfo) {
fetchPointInfo()
fetchSecurity() fetchSecurity()
} }
}, [orderInfo]) }, [orderInfo])
const fetchPointInfo = () => {
let param = {
memberId: orderInfo.supplyMembersId,
roleId: orderInfo.supplyMembersRoleId
}
//@ts-ignore
PublicApi.getMemberBusinessLrcRightPointGet(param).then(res => {
if (res.code === 1000) {
setPointInfo(res.data)
setPageLoading(false)
} else {
setPageLoading(false)
onChange(true, res.message)
}
}).catch(() => {
})
}
const fetchSecurity = () => { const fetchSecurity = () => {
PublicApi.getMemberSecurityGet().then(res => { PublicApi.getMemberSecurityGet().then(res => {
...@@ -52,6 +75,10 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => { ...@@ -52,6 +75,10 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => {
} }
const pay = () => { const pay = () => {
if (!checkPoint()) {
message.error("积分不足")
return
}
if (!payPassword || payPassword.length < 6) { if (!payPassword || payPassword.length < 6) {
message.error("请输入支付密码") message.error("请输入支付密码")
return return
...@@ -60,7 +87,7 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => { ...@@ -60,7 +87,7 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => {
id: Number(orderId), id: Number(orderId),
paymentInformationId: Number(payInfo.paymentInformationId), paymentInformationId: Number(payInfo.paymentInformationId),
payTypeId: payInfo.paymentChannelsId, payTypeId: payInfo.paymentChannelsId,
payPassword: Number(payPassword) payPassword: encryptedByAES(payPassword)
} }
setConfirmLoading(true) setConfirmLoading(true)
//@ts-ignore //@ts-ignore
...@@ -80,8 +107,24 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => { ...@@ -80,8 +107,24 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => {
} }
const checkPoint = () => {
if(relType === 0) {
if (Number(pointInfo?.platformScore) >= Number(payInfo?.payPrice)) {
return true
} else {
return false
}
} else {
if (Number(pointInfo?.memberScore) >= Number(payInfo?.payPrice)) {
return true
} else {
return false
}
}
}
return ( return (
<> <Spin spinning={pageLoading}>
<div className={styles.common_title}> <div className={styles.common_title}>
<span>积分支付</span> <span>积分支付</span>
<div className={styles.common_title_amount}> <div className={styles.common_title_amount}>
...@@ -92,21 +135,21 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => { ...@@ -92,21 +135,21 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => {
</div> </div>
<div className={styles.pay_point}> <div className={styles.pay_point}>
<div className={styles.pay_point_way_list}> <div className={styles.pay_point_way_list}>
<div className={cx(styles.pay_point_way_list_item, type === 'normal' ? styles.active : '')} onClick={() => handleChangeType('normal')}> <div className={cx(styles.pay_point_way_list_item, relType === 0 ? styles.active : '')} onClick={() => handleChangeType(0)}>
<div className={styles.pay_point_way_list_item_title}>平台通用积分</div> <div className={styles.pay_point_way_list_item_title}>平台通用积分</div>
<div className={styles.pay_point_way_list_item_content}> <div className={styles.pay_point_way_list_item_content}>
<div className={styles.pay_point_way_list_item_point}> <div className={styles.pay_point_way_list_item_point}>
<label>30,000</label> <label>{numFormat(pointInfo?.platformScore)}</label>
<span></span> <span></span>
</div> </div>
<p>可用积分</p> <p>可用积分</p>
</div> </div>
</div> </div>
<div className={cx(styles.pay_point_way_list_item, type === 'member' ? styles.active : '')} onClick={() => handleChangeType('member')}> <div className={cx(styles.pay_point_way_list_item, relType === 1 ? styles.active : '')} onClick={() => handleChangeType(1)}>
<div className={cx(styles.pay_point_way_list_item_title, styles.member)}>会员专有积分</div> <div className={cx(styles.pay_point_way_list_item_title, styles.member)}>会员专有积分</div>
<div className={styles.pay_point_way_list_item_content}> <div className={styles.pay_point_way_list_item_content}>
<div className={styles.pay_point_way_list_item_point}> <div className={styles.pay_point_way_list_item_point}>
<label>40,000</label> <label>{numFormat(pointInfo?.memberScore)}</label>
<span></span> <span></span>
</div> </div>
<p>可用积分</p> <p>可用积分</p>
...@@ -128,7 +171,7 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => { ...@@ -128,7 +171,7 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => {
</div> </div>
) )
} }
</> </Spin>
) )
} }
......
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