Commit 126d2fcc authored by XieZhiXiong's avatar XieZhiXiong
parents ed070a53 65318967
// 这里的env只有对本地起效, 线上构建不用
const path = require('path')
module.exports = {
scm: {
SITE_ID: '1',
BACK_GATEWAY: 'http://lingxi-scm.wg.shushangyun.com',
USE_ROUTE_CONFIG: false,
SOCKET_URL: 'ws://lingxi-scm.wg.shushangyun.com',
ssh: JSON.stringify({
user: "www",
// Password optional, prompted if none given
password: "!@#project_$%^231(1)wwwuser3",
host: "119.23.219.65",
port: 8122,
localRoot: path.resolve('./dist/'),
remoteRoot: "/usr/local/nginx/html/lingxi/yanshi/api/scm/admin/dist/",
// include: ["*", "**/*"], // this would upload everything except dot files
include: ["*"],
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
// exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: true,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true
})
},
10: {
SITE_ID: '1',
BACK_GATEWAY: 'http://10.0.0.10:8100',
USE_ROUTE_CONFIG: true,
SOCKET_URL: 'ws://10.0.0.10:8100',
ssh: JSON.stringify({
user: "root",
// Password optional, prompted if none given
password: "123456",
host: "10.0.0.10",
port: 22,
localRoot: path.resolve('./dist/'),
remoteRoot: "/home/www/lingxi/lingxi-business-system/dist/",
// include: ["*", "**/*"], // this would upload everything except dot files
include: ["*"],
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
// exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: true,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true
})
},
25: {
SITE_ID: '1',
BACK_GATEWAY: 'http://10.0.0.25:8100',
USE_ROUTE_CONFIG: true,
SOCKET_URL: 'ws://10.0.0.25:8100',
ssh: JSON.stringify({
user: "root",
// Password optional, prompted if none given
password: "123456",
host: "10.0.0.25",
port: 22,
localRoot: path.resolve('./dist/'),
remoteRoot: "/data/.jenkins/workspace/lingxi-business-system/dist/",
// include: ["*", "**/*"], // this would upload everything except dot files
include: ["*"],
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
// exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: true,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true
})
}
}
// 这里的env只有对本地起效, 线上构建不用
const path = require('path')
module.exports = {
scm: {
SITE_ID: '1',
BACK_GATEWAY: 'http://lingxi-scm.wg.shushangyun.com',
USE_ROUTE_CONFIG: false,
SOCKET_URL: 'ws://lingxi-scm.wg.shushangyun.com',
ssh: JSON.stringify({
user: "www",
// Password optional, prompted if none given
password: "!@#project_$%^231(1)wwwuser3",
host: "119.23.219.65",
port: 8122,
localRoot: path.resolve('./dist/'),
remoteRoot: "/usr/local/nginx/html/lingxi/yanshi/api/scm/admin/dist/",
// include: ["*", "**/*"], // this would upload everything except dot files
include: ["*"],
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
// exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: true,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true
})
},
10: {
SITE_ID: '1',
BACK_GATEWAY: 'http://10.0.0.10:8100',
USE_ROUTE_CONFIG: true,
SOCKET_URL: 'ws://10.0.0.10:8100',
ssh: JSON.stringify({
user: "root",
// Password optional, prompted if none given
password: "123456",
host: "10.0.0.10",
port: 22,
localRoot: path.resolve('./dist/'),
remoteRoot: "/home/www/lingxi/lingxi-business-system/dist/",
// include: ["*", "**/*"], // this would upload everything except dot files
include: ["*"],
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
// exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: true,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true
})
},
25: {
SITE_ID: '1',
BACK_GATEWAY: 'http://10.0.0.25:8100',
USE_ROUTE_CONFIG: true,
SOCKET_URL: 'ws://10.0.0.25:8100',
ssh: JSON.stringify({
user: "root",
// Password optional, prompted if none given
password: "123456",
host: "10.0.0.25",
port: 22,
localRoot: path.resolve('./dist/'),
remoteRoot: "/data/.jenkins/workspace/lingxi-business-system/dist/",
// include: ["*", "**/*"], // this would upload everything except dot files
include: ["*"],
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
// exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: true,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true
})
}
}
......@@ -18,6 +18,7 @@
"build:analyze": "ANALYZE=1 umi build",
"build:clean": "umi build",
"build:scm": "cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-scm.wg.shushangyun.com SOCKET_URL=ws://lingxi-scm.wg.shushangyun.com yarn build",
"build:all": "cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-all.wg.shushangyun.com SOCKET_URL=ws://lingxi-all.wg.shushangyun.com yarn build",
"build:10": "cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100 SOCKET_URL=ws://10.0.0.10:9400 yarn build",
"build:25": "cross-env SITE_ID=352 BACK_GATEWAY=http://10.0.0.25:8100 SOCKET_URL=ws://10.0.0.25:9400 yarn build",
"postinstall": "umi generate tmp",
......
......@@ -2,13 +2,13 @@
* @Author: XieZhiXiong
* @Date: 2020-09-15 17:48:36
* @LastEditors: zwp
* @LastEditTime: 2020-12-01 18:12:54
* @LastEditTime: 2021-01-06 10:54:54
* @Description: 内外部流转记录组件
*/
import React from 'react';
import {
Steps,
Tabs,
import {
Steps,
Tabs,
} from 'antd';
import MellowCard from '@/components/MellowCard';
import styles from './index.less';
......@@ -16,17 +16,25 @@ import styles from './index.less';
interface AuditProcessProp {
outerVerifyCurrent?: number;
innerVerifyCurrent?: number;
outerVerifySteps?: { step: number, stepName: string, roleName: string }[];
innerVerifySteps?: { step: number, stepName: string, roleName: string }[];
outerVerifySteps?: {
step: number,
stepName: string,
roleName: string,
}[];
innerVerifySteps?: {
step: number,
stepName: string,
roleName: string,
}[];
customTitleKey?: string
customKey?: string
};
const AuditProcess: React.FC<AuditProcessProp> = ({
outerVerifyCurrent = 0,
innerVerifyCurrent = 0,
outerVerifySteps = [],
innerVerifySteps = [],
const AuditProcess: React.FC<AuditProcessProp> = ({
outerVerifyCurrent = 0,
innerVerifyCurrent = 0,
outerVerifySteps = [],
innerVerifySteps = [],
customTitleKey,
customKey
}) => (
......@@ -37,14 +45,15 @@ const AuditProcess: React.FC<AuditProcessProp> = ({
<Tabs.TabPane tab="外部审核流程" key="1">
<Steps style={{ marginTop: 30 }} progressDot current={outerVerifyCurrent}>
{outerVerifySteps.map(item => (
<Steps.Step
<Steps.Step
key={customKey ? item[customKey] : item.step}
title={customTitleKey ? item[customTitleKey] : item.stepName}
description={item.roleName}
status={item["isExecute"] ? "finish" : "wait"}
/>
))}
</Steps>
</Tabs.TabPane>
</Tabs.TabPane>
}
{
innerVerifySteps?.length > 0 &&
......@@ -55,6 +64,7 @@ const AuditProcess: React.FC<AuditProcessProp> = ({
key={customKey ? item[customKey] : item.step}
title={customTitleKey ? item[customTitleKey] : item.stepName}
description={item.roleName}
status={item["isExecute"] ? "finish" : "wait"}
/>
))}
</Steps>
......@@ -64,4 +74,4 @@ const AuditProcess: React.FC<AuditProcessProp> = ({
</MellowCard>
);
export default AuditProcess;
\ No newline at end of file
export default AuditProcess;
......@@ -67,6 +67,8 @@
.invoice_list_item_btn {
margin: 0 10px;
color: @main-color;
cursor: pointer;
}
}
}
......@@ -78,7 +80,7 @@
display: block;
width: 100%;
}
.ant-radio-wrapper {
display: flex;
width: 100%;
......@@ -88,10 +90,10 @@
margin: 10px;
padding-left: 16px;
}
.ant-radio-wrapper.ant-radio-wrapper-checked {
border: 1px solid @main-color;
&::after {
content: '';
position: absolute;
......@@ -105,4 +107,4 @@
}
}
}
}
\ No newline at end of file
}
import React, { useContext, useEffect, useState, useMemo } from 'react'
import { Row, Col, Tag } from 'antd'
import { Row, Col, Tag, Modal } from 'antd'
import MellowCard from '@/components/MellowCard'
import { OrderDetailContext } from '../../context'
import { formatTimeString } from '@/utils'
......@@ -29,25 +29,6 @@ const payInfo = [
{ title: '运费', name: 'freight' }
]
const otherInfo = [
{ title: '发票', name: 'theInvoiceInfo', render: item => <div className={style.invoice_list_item}>
<div className={style.invoice_list_item_content}>
<div className={cx(style.invoice_list_item_content_tag, item.kind !== 1 ? style.special : '')}>{item.kind === 1 ? '增值税普通发票' : '增值税专用发票'}</div>
<div className={style.invoice_list_item_content_name}>
<div>{item.invoiceTitle}</div>
<div>{item.taxNo}</div>
</div>
</div>
{
<div className={style.invoice_list_item_btn_group}>
{/* 查看功能todo */}
{/* <div className={style.invoice_list_item_btn}>查看</div> */}
</div>
}
</div>, resetCol: {flex: '1 1 100%'} },
{ title: '包装要求', name: 'pageRequire' },
{ title: '其他要求', name: 'restsRequire' },
]
const electronInfo = [
{ title: '电子合同', name: 'none' },
......@@ -60,11 +41,33 @@ const RenderCard = ({ infoList, dataSource }) => infoList.map(v => dataSource[v.
const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => {
const orderDetailCtx = useContext(OrderDetailContext)
const [isModalVisible, setIsModalVisible] = useState(false)
// const address = useMemo(async () => {
// const { data } = await PublicApi.getLogisticsSelectListReceiverAddress()
// return data
// }, [])
const { data, ctl } = orderDetailCtx
const {theInvoiceInfo} = data
const otherInfo = [
{ title: '发票', name: 'theInvoiceInfo', render: item => <div className={style.invoice_list_item}>
<div className={style.invoice_list_item_content}>
<div className={cx(style.invoice_list_item_content_tag, item.kind !== 1 ? style.special : '')}>{item.kind === 1 ? '增值税普通发票' : '增值税专用发票'}</div>
<div className={style.invoice_list_item_content_name}>
<div>{item.invoiceTitle}</div>
<div>{item.taxNo}</div>
</div>
</div>
{
<div className={style.invoice_list_item_btn_group}>
{/* 查看功能todo */}
<div className={style.invoice_list_item_btn} onClick={()=>setIsModalVisible(true)}>查看 &gt;</div>
</div>
}
</div>, resetCol: {flex: '1 1 100%'} },
{ title: '包装要求', name: 'pageRequire' },
{ title: '其他要求', name: 'restsRequire' },
]
// useEffect(() => {
// if (data.deliveryAddresId && !data.receiverName) {
......@@ -82,6 +85,7 @@ const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => {
// }
return (
<>
<Row style={{ marginTop: 24 }} gutter={24}>
<Col span={12}>
<MellowCard title='交易信息' fullHeight>
......@@ -110,9 +114,22 @@ const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => {
</MellowCard>
</Col>
</Row>
<Modal title="发票信息" visible={isModalVisible} onOk={()=>setIsModalVisible(false)} onCancel={()=>setIsModalVisible(false)}>
<Row gutter={[0 ,10]} style={{fontSize: 14}}>
<Col span={4}>开具类型:</Col><Col span={20}>{theInvoiceInfo?.type === 1 ? "企业" : "个人"}</Col>
<Col span={4}>发票种类:</Col><Col span={20}>{theInvoiceInfo?.kind === 1 ? "增值税普通发票" : "增值税专用发票"}</Col>
<Col span={4}>发票抬头:</Col><Col span={20}>{theInvoiceInfo?.invoiceTitle}</Col>
<Col span={4}>纳税号:</Col><Col span={20}>{theInvoiceInfo?.taxNo}</Col>
<Col span={4}>开户行:</Col><Col span={20}>{theInvoiceInfo?.bankOfDeposit}</Col>
<Col span={4}>账号:</Col><Col span={20}>{theInvoiceInfo?.account}</Col>
<Col span={4}>地址:</Col><Col span={20}>{theInvoiceInfo?.addres}</Col>
<Col span={4}>电话:</Col><Col span={20}>{theInvoiceInfo?.tel}</Col>
</Row>
</Modal>
</>
)
}
OrderMergeInfo.defaultProps = {}
export default OrderMergeInfo
\ No newline at end of file
export default OrderMergeInfo
......@@ -391,7 +391,7 @@ const OrderProductTable:React.FC<OrderProductTableProps> = (props) => {
dataIndex: 'memberPrice',
align: 'center',
key: 'memberPrice',
render: (text, record) => record.isMemberPrice ? (text * 100 + '%') : null
render: (text, record) => record.isMemberPrice ? (text * 10000 / 100 + '%') : null
},
{
title: creditsCommodity ? '兑换数量' : '采购数量',
......
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