Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈智峰
jinfa-platform
Commits
428f5f29
Commit
428f5f29
authored
Sep 28, 2020
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
bdb42e83
96a63824
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
1117 additions
and
189 deletions
+1117
-189
tranactionRoute.ts
config/routes/tranactionRoute.ts
+22
-7
menu.ts
src/locales/zh-CN/menu.ts
+5
-1
logisticsForm.tsx
...ages/commodity/products/addProductsItem/logisticsForm.tsx
+19
-4
otherForm.tsx
src/pages/commodity/products/addProductsItem/otherForm.tsx
+14
-2
priceAttributeForm.tsx
...commodity/products/addProductsItem/priceAttributeForm.tsx
+19
-6
productAttributeForm.tsx
...mmodity/products/addProductsItem/productAttributeForm.tsx
+0
-7
productDescFormDefault.tsx
...odity/products/addProductsItem/productDescFormDefault.tsx
+16
-9
productImageForm.tsx
...s/commodity/products/addProductsItem/productImageForm.tsx
+40
-20
index.tsx
...ges/transaction/electronicContracts/addContract/index.tsx
+12
-12
index.tsx
src/pages/transaction/electronicContracts/apply/index.tsx
+45
-29
index.tsx
...ges/transaction/electronicContracts/classSearch/index.tsx
+32
-8
index.tsx
...action/electronicContracts/components/corporate/index.tsx
+4
-4
index.tsx
...ctronicContracts/components/enterpriseInfoCheck/index.tsx
+4
-4
index.tsx
...on/electronicContracts/components/publicAccount/index.tsx
+65
-15
index.tsx
...ransaction/electronicContracts/components/steps/index.tsx
+5
-4
index.tsx
...transaction/electronicContracts/components/test/index.tsx
+68
-35
index.tsx
...saction/electronicContracts/enterpriseCertified/index.tsx
+12
-1
index.tsx
...ansaction/electronicContracts/personalCertified/index.tsx
+0
-18
index.tsx
src/pages/transaction/electronicContracts/template/index.tsx
+2
-2
index.tsx
...ges/transaction/enquiryOffer/enquiryOfferSearch/index.tsx
+0
-1
index.tsx
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
+244
-0
index.tsx
src/pages/transaction/goodsOffer/enquiryOrder/index.tsx
+84
-0
index.tsx
src/pages/transaction/goodsOffer/schema/index.tsx
+405
-0
productModal.tsx
src/pages/transaction/goodsOffer/schema/productModal.tsx
+0
-0
No files found.
config/routes/tranactionRoute.ts
View file @
428f5f29
...
...
@@ -44,12 +44,6 @@ const TranactionRoute = {
component
:
'@/pages/transaction/electronicContracts/enterpriseCertified/index'
,
},
{
path
:
'/memberCenter/tranactionAbility/electronicContracts/personalCertified'
,
name
:
'personalCertified'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/electronicContracts/personalCertified/index'
,
},
{
path
:
'/memberCenter/tranactionAbility/electronicContracts/addContract'
,
name
:
'addContract'
,
hideInMenu
:
true
,
...
...
@@ -263,7 +257,28 @@ const TranactionRoute = {
]
},
/**
* @description: 询价单查询
* @param {type}
* @return {type}
*/
{
path
:
'/memberCenter/tranactionAbility/goodsOffer'
,
name
:
'goodsOffer'
,
key
:
'goodsOffer'
,
routes
:[
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/enquiryOrder'
,
name
:
'enquiryOrder'
,
component
:
'@/pages/transaction/goodsOffer/enquiryOrder'
},
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder'
,
name
:
'addEnquiryOrder'
,
component
:
'@/pages/transaction/goodsOffer/addEnquiryOrder'
}
]
},
// 采购订单
{
path
:
'/memberCenter/tranactionAbility/purchaseOrder'
,
...
...
src/locales/zh-CN/menu.ts
View file @
428f5f29
...
...
@@ -117,10 +117,14 @@ export default {
'menu.tranactionAbility.electronicContracts'
:
'电子合同'
,
'menu.tranactionAbility.electronicContracts.apply'
:
'电子签章申请'
,
'menu.tranactionAbility.electronicContracts.enterpriseCertified'
:
'企业信息核验'
,
'menu.tranactionAbility.electronicContracts.personalCertified'
:
'个人信息核验'
,
'menu.tranactionAbility.electronicContracts.classSearch'
:
'合同模板参数查询'
,
'menu.tranactionAbility.electronicContracts.template'
:
'合同模板'
,
'menu.tranactionAbility.electronicContracts.addContract'
:
'新建合同模板'
,
// 商品报价
'menu.tranactionAbility.goodsOffer'
:
'商品询价'
,
'menu.tranactionAbility.goodsOffer.enquiryOrder'
:
'询价单查询'
,
'menu.tranactionAbility.goodsOffer.addEnquiryOrder'
:
'待新增询价单'
,
//进销存
'menu.tranactionAbility.stockSellStorage'
:
'进销存'
,
'menu.tranactionAbility.stockSellStorage.warehouse'
:
'仓库'
,
...
...
src/pages/commodity/products/addProductsItem/logisticsForm.tsx
View file @
428f5f29
...
...
@@ -23,7 +23,6 @@ const { Option } = Select
const
LogisticsForm
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
onRef
}
=
props
const
logisticsFormRef
=
useRef
()
const
[
logisticsForm
]
=
Form
.
useForm
()
const
[
logisticsCompanyLists
,
setLogisticsCompanyLists
]
=
useState
<
GetLogisticsSelectListCompanyResponse
>
()
...
...
@@ -32,14 +31,20 @@ const LogisticsForm: React.FC<Iprops> = (props) => {
const
[
isTemplate
,
setIsTemplate
]
=
useState
<
boolean
>
(
false
)
const
[
deliveryType
,
setDeliveryType
]
=
useState
<
number
>
(
1
)
const
[
carriageType
,
setCarriageType
]
=
useState
<
number
>
()
const
{
productInfoByEdit
}
=
ProductStore
const
flagRef
=
useRef
<
boolean
>
(
false
)
const
{
productInfoByEdit
,
selectCategoryId
}
=
ProductStore
useEffect
(()
=>
{
//传入ref给父级
onRef
(
logisticsFormRef
)
if
(
history
.
location
.
query
?.
id
)
if
(
history
.
location
.
query
?.
id
)
{
setDeliveryType
(
productInfoByEdit
.
logistics
?.
deliveryType
)
logisticsForm
.
setFieldsValue
(
productInfoByEdit
.
logistics
)
}
else
{
logisticsForm
.
setFieldsValue
({
deliveryType
:
1
,
carriageType
:
1
})
}
// 获取发货地址 物流公司 运费模板
PublicApi
.
getLogisticsSelectListShipperAddress
().
then
(
res
=>
{
...
...
@@ -56,6 +61,16 @@ const LogisticsForm: React.FC<Iprops> = (props) => {
},
[])
useEffect
(()
=>
{
// 品类 变动清空form
if
(
history
.
location
.
query
?.
id
&&
!
flagRef
.
current
)
{
flagRef
.
current
=
true
}
else
{
logisticsForm
.
resetFields
()
logisticsForm
.
setFieldsValue
({
deliveryType
:
1
,
carriageType
:
1
})
}
},
[
selectCategoryId
])
const
changeDeliveryType
=
(
e
)
=>
{
setDeliveryType
(
e
.
target
.
value
)
setCarriageType
(
1
)
...
...
@@ -77,7 +92,7 @@ const LogisticsForm: React.FC<Iprops> = (props) => {
labelAlign=
"left"
ref=
{
logisticsFormRef
}
colon=
{
false
}
initialValues=
{
history
.
location
.
query
?.
id
?
productInfoByEdit
.
logistics
:
{
deliveryType
:
1
,
carriageType
:
1
}
}
//
initialValues={history.location.query?.id ? productInfoByEdit.logistics : {deliveryType:1, carriageType:1}}
autoComplete=
"off"
>
<
Form
.
Item
...
...
src/pages/commodity/products/addProductsItem/otherForm.tsx
View file @
428f5f29
...
...
@@ -24,14 +24,27 @@ const { TextArea } = Input
const
OtherForm
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
onRef
}
=
props
const
otherFormRef
=
useRef
()
const
flagRef
=
useRef
<
boolean
>
(
false
)
const
[
otherForm
]
=
Form
.
useForm
()
const
{
getOtherFormParamsByEdit
}
=
ProductStore
const
{
getOtherFormParamsByEdit
,
selectCategoryId
}
=
ProductStore
useEffect
(()
=>
{
//传入ref给父级
onRef
(
otherFormRef
)
if
(
history
.
location
.
query
?.
id
)
otherForm
.
setFieldsValue
(
getOtherFormParamsByEdit
)
},
[])
useEffect
(()
=>
{
// 品类 变动清空form
if
(
history
.
location
.
query
?.
id
&&
!
flagRef
.
current
)
{
flagRef
.
current
=
true
}
else
{
otherForm
.
resetFields
()
}
},
[
selectCategoryId
])
return
(<>
<
Form
{
...
layout
}
...
...
@@ -41,7 +54,6 @@ const OtherForm: React.FC<Iprops> = (props) => {
ref=
{
otherFormRef
}
colon=
{
false
}
autoComplete=
"off"
initialValues=
{
history
.
location
.
query
?.
id
?
getOtherFormParamsByEdit
:
{}
}
>
<
Form
.
Item
name=
"isInvoice"
...
...
src/pages/commodity/products/addProductsItem/priceAttributeForm.tsx
View file @
428f5f29
...
...
@@ -43,8 +43,7 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
const
updateFlag
=
useRef
(
true
)
// 是否第一次构建
const
[
priceForm
]
=
Form
.
useForm
()
const
[
setPriceForm
]
=
Form
.
useForm
()
const
[
planPrice
,
setPlanPrice
]
=
useState
(
1
)
//商品定价类型 ref替代
// const priceTypeRef = useRef<number>(1)
const
[
planPrice
,
setPlanPrice
]
=
useState
(
1
)
const
[
unitData
,
setUnitData
]
=
useState
<
any
>
([])
const
[
unitValue
,
setUnitValue
]
=
useState
(
undefined
)
const
[
setPriceModal
,
setSetPriceModal
]
=
useState
(
false
)
...
...
@@ -56,6 +55,7 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
const
[
attributeValObjArr
,
setAttributeValObjArr
]
=
useState
<
any
[]
>
([])
const
[
minOrderNumber
,
setMinOrderNumber
]
=
useState
<
number
>
()
const
[
isBatchSetting
,
setIsBatchSetting
]
=
useState
<
boolean
>
(
false
)
//是否点击批量设置
const
flagRef
=
useRef
<
boolean
>
(
false
)
const
[
colums
,
setColumns
]
=
useState
<
ColumnType
<
any
>
[]
>
()
const
{
ProductStore
}
=
store
...
...
@@ -63,12 +63,14 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
productName
,
selectedGoods
,
productSelectAttribute
,
setProductSelectAttribute
,
tableDataSource
,
setTableDataSource
,
clearData
,
setPriceAttributeParams
,
productInfoByEdit
,
getPriceAttributeFormParamsByEdit
,
selectCategoryId
,
}
=
ProductStore
_tableDataSource
=
useMemo
(()
=>
tableDataSource
,
[
tableDataSource
])
// 保持最新值
...
...
@@ -77,9 +79,9 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
onRef
(
priceFormRef
)
if
(
history
.
location
.
query
?.
id
){
// 编辑情况下 用于判断价格类型和显示单位
setPlanPrice
(
productInfoByEdit
?.
priceType
)
// priceTypeRef.current = productInfoByEdit?.priceType
handleUnitSearch
(
getPriceAttributeFormParamsByEdit
.
unitName
)
setMinOrderNumber
(
productInfoByEdit
?.
minOrder
)
priceForm
.
setFieldsValue
(
getPriceAttributeFormParamsByEdit
)
}
return
()
=>
{
console
.
log
(
'价格属性组件卸载'
)
...
...
@@ -87,6 +89,17 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
}
},[])
useEffect
(()
=>
{
// 品类 变动清空form和属性组合
if
(
history
.
location
.
query
?.
id
&&
!
flagRef
.
current
)
{
flagRef
.
current
=
true
}
else
{
setProductSelectAttribute
([])
priceForm
.
resetFields
()
priceForm
.
setFieldsValue
({
isMemberPrice
:
false
,
priceType
:
planPrice
})
}
},
[
selectCategoryId
])
useEffect
(()
=>
{
constructedCallback
()
// console.log(productSelectAttribute, 'productSelectAttribute')
...
...
@@ -300,10 +313,10 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
_tableDataSource
=
_tableData
// 有前面tab变动引起的二次构建 需要清空价格数据
if
(
updateFlag
.
current
){
// *****
bug编辑积分商品(非现货价格)会导致价格类型变动引发重复渲染
*****
// *****
bug编辑积分商品(非现货价格)会导致价格类型变动引发重复渲染
*****
updateFlag
.
current
=
false
}
else
{
// ***** 编辑情况下且是积分商品 不做清空单价处理*****
// ***** 编辑情况下且是积分商品 不做清空单价处理
*****
if
(
!
(
productInfoByEdit
?.
id
&&
planPrice
===
3
))
_tableDataSource
.
map
(
item
=>
item
[
'单价'
]
=
{})
}
...
...
@@ -552,7 +565,7 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
labelAlign=
"left"
ref=
{
priceFormRef
}
colon=
{
false
}
initialValues=
{
productInfoByEdit
?.
id
?
getPriceAttributeFormParamsByEdit
:
{
isMemberPrice
:
false
,
priceType
:
planPrice
}
}
//
initialValues={productInfoByEdit?.id ? getPriceAttributeFormParamsByEdit : {isMemberPrice: false, priceType: planPrice}}
autoComplete=
"off"
>
<
Form
.
Item
...
...
src/pages/commodity/products/addProductsItem/productAttributeForm.tsx
View file @
428f5f29
...
...
@@ -15,12 +15,6 @@ const layout = {
span
:
12
,
},
}
const
tailLayout
=
{
wrapperCol
:
{
offset
:
2
,
span
:
12
,
},
}
export
interface
Iprops
{
attributesData
:
any
[];
...
...
@@ -36,7 +30,6 @@ let paramsArray = [];
const
ProductAttributeForm
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
attributesData
,
onRef
}
=
props
const
[
attributeParamsArray
,
setAttributeParamsArray
]
=
useState
<
any
>
([])
const
[
isClearFormAndDataInEdit
,
setIsClearFormAndDataInEdit
]
=
useState
<
boolean
>
(
false
)
// 编辑情况下 是否要清空商品属性表单数据和页面全局数据
const
productAttributeFormRef
=
useRef
()
const
[
attributeForm
]
=
Form
.
useForm
()
...
...
src/pages/commodity/products/addProductsItem/productDescFormDefault.tsx
View file @
428f5f29
import
React
,
{
useState
,
useEffect
}
from
'react'
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
import
{
history
}
from
'umi'
import
{
Button
,
message
,
Upload
}
from
'antd'
import
cx
from
'classnames'
import
{
Player
}
from
'video-react'
;
import
styles
from
'../index.less'
import
{
PlusOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
// import { PublicApi } from '@/services/api'
import
{
UPLOAD_TYPE
}
from
'@/constants'
export
interface
Iprops
{
}
import
{
inject
,
observer
}
from
'mobx-react'
import
{
store
}
from
'@/store'
const
ProductDescFormDefualt
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
ProductDescFormDefualt
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
[
fileImageList
,
setFileImageList
]
=
useState
<
any
>
([])
const
[
videoList
,
setVideoList
]
=
useState
<
any
>
([])
const
flagRef
=
useRef
<
boolean
>
(
false
)
const
{
ProductStore
}
=
store
const
{
productInfoByEdit
,
setProductDescription
}
=
ProductStore
const
{
productInfoByEdit
,
setProductDescription
,
selectCategoryId
}
=
ProductStore
useEffect
(()
=>
{
if
(
history
.
location
.
query
?.
id
){
// 编辑状态下
...
...
@@ -35,6 +30,18 @@ const ProductDescFormDefualt: React.FC<Iprops> = (props) => {
},
[])
useEffect
(()
=>
{
// 品类 变动清空数据
// 编辑下 flag为false 不清空;编辑下 flag为true 新建清空
if
(
history
.
location
.
query
?.
id
&&
!
flagRef
.
current
)
{
flagRef
.
current
=
true
}
else
{
setFileImageList
([])
setVideoList
([])
}
},
[
selectCategoryId
])
useEffect
(()
=>
{
// 设置传输数据
setProductDescription
({
video
:
videoList
,
...
...
src/pages/commodity/products/addProductsItem/productImageForm.tsx
View file @
428f5f29
import
React
,
{
useState
,
useEffect
}
from
'react'
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
import
{
history
}
from
'umi'
import
{
Button
,
Form
,
Select
,
Checkbox
,
message
,
Input
,
Table
,
Modal
,
Row
,
Col
,
Alert
,
Upload
,
Radio
}
from
'antd'
import
{
PlusOutlined
}
from
'@ant-design/icons'
...
...
@@ -12,34 +12,44 @@ import { inject, observer } from 'mobx-react'
// import { IStore } from '@/store';
import
{
store
}
from
'@/store'
export
interface
Iprops
{
}
const
layoutAdd
=
{
labelCol
:
{
span
:
4
},
wrapperCol
:
{
span
:
20
},
}
const
ProductImageForm
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
[
addTabsForm
]
=
Form
.
useForm
()
const
ProductImageForm
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
[
defaultChecked
,
setDefaultChecked
]
=
useState
(
-
1
)
const
[
priceAttributeParamsByRender
,
setPriceAttributeParamsByRender
]
=
useState
<
any
[]
>
([])
const
[
commonImageList
,
setCommonImageList
]
=
useState
<
any
>
([])
const
[
previewVisible
,
setPreviewVisible
]
=
useState
(
false
)
const
[
previewImage
,
setPreviewImage
]
=
useState
(
''
)
const
[
previewTitle
,
setPreviewTitle
]
=
useState
(
''
)
const
[
setImageType
,
setSetImageType
]
=
useState
<
boolean
>
(
true
)
const
flagRef
=
useRef
<
boolean
>
(
false
)
const
{
ProductStore
}
=
store
const
{
priceAttributeParams
,
productInfoByEdit
,
setProductAttributeAndImageParams
,
setIsAllAttributePic
}
=
ProductStore
const
{
priceAttributeParams
,
productInfoByEdit
,
setProductAttributeAndImageParams
,
setIsAllAttributePic
,
selectCategoryId
}
=
ProductStore
useEffect
(()
=>
{
if
(
history
.
location
.
query
?.
id
){
setSetImageType
(
productInfoByEdit
.
isAllAttributePic
)
}
},
[])
useEffect
(()
=>
{
// 品类 变动清空数据
// 编辑下 flag为false 不清空;编辑下 flag为true 新建清空
if
(
history
.
location
.
query
?.
id
&&
!
flagRef
.
current
)
{
flagRef
.
current
=
true
console
.
log
(
'不清空'
)
}
else
{
// constructImageListByRender([])
// setSetImageType(true)
onChangeSetImageType
({
target
:
{
value
:
true
}})
console
.
log
(
'清空'
)
}
},
[
selectCategoryId
])
useEffect
(()
=>
{
if
(
priceAttributeParams
.
length
>
0
){
console
.
log
(
priceAttributeParams
,
'对比'
)
constructImageListByRender
(
priceAttributeParams
)
}
else
if
(
history
.
location
.
query
?.
id
){
}
else
if
(
history
.
location
.
query
?.
id
){
// 不点击前面 直接进入图片tab
console
.
log
(
productInfoByEdit
.
unitPriceAndPicList
,
'对比'
)
constructImageListByRender
(
productInfoByEdit
.
unitPriceAndPicList
)
}
...
...
@@ -50,18 +60,28 @@ const ProductImageForm: React.FC<Iprops> = (props) => {
const
constructImageListByRender
=
(
priceAttributeParams
?:
any
)
=>
{
let
_priceAttributeParams
:
any
=
[]
if
(
productInfoByEdit
?.
id
){
// id判断是否新增还是编辑
setSetImageType
(
productInfoByEdit
.
isAllAttributePic
)
//
setSetImageType(productInfoByEdit.isAllAttributePic)
setIsAllAttributePic
(
productInfoByEdit
.
isAllAttributePic
)
let
_commodityPicList
=
productInfoByEdit
.
unitPriceAndPicList
.
map
(
_
=>
_
.
commodityPic
)
_priceAttributeParams
=
priceAttributeParams
.
map
((
_item
,
_index
)
=>
{
// 为图片字符串数组手动添加 uid 和 status
let
_commodityPicItem
=
Array
.
isArray
(
_commodityPicList
[
_index
])
?
_commodityPicList
[
_index
].
map
((
__ele
,
__i
)
=>
{
// console.log(_item, '_____')
// 查询编辑详情中属性值id相匹配的图片
let
_pic
=
null
let
_priceAndPicList
=
productInfoByEdit
.
unitPriceAndPicList
for
(
let
i
=
0
;
i
<
_priceAndPicList
.
length
;
i
++
)
{
if
(
_priceAndPicList
[
i
].
attributeAndValueList
.
map
(
item
=>
item
.
customerAttributeValue
.
id
).
sort
().
toString
()
==
_item
.
attributeAndValueList
.
map
(
item
=>
item
.
customerAttributeValue
.
id
).
sort
().
toString
()){
_pic
=
_priceAndPicList
[
i
].
commodityPic
}
}
let
_commodityPicItem
=
Array
.
isArray
(
_pic
)
?
_pic
.
map
((
__ele
,
__i
)
=>
{
return
{
uid
:
__i
*
-
1
,
status
:
'done'
,
url
:
__ele
,
}
})
:[]
})
:
[]
let
_obj
=
{...
_item
}
_obj
.
commodityPic
=
_commodityPicItem
return
_obj
...
...
@@ -77,7 +97,7 @@ const ProductImageForm: React.FC<Iprops> = (props) => {
clickItemTab
(
0
)
setPriceAttributeParamsByRender
(
_priceAttributeParams
)
setProductAttributeAndImageParams
(
_priceAttributeParams
)
console
.
log
(
_priceAttributeParams
,
priceAttributeParams
,
'_p'
)
// 这里可能为空数组 ** 如果不到此页面 前一个是旧数据 后面的为新数据
// console.log(_priceAttributeParams, priceAttributeParams, '_p')
// 初始化若是按所有属性共用做显示处理
if
(
setImageType
&&
_priceAttributeParams
.
length
>
0
){
setCommonImageList
(
_priceAttributeParams
[
0
].
commodityPic
)
...
...
src/pages/transaction/electronicContracts/addContract/index.tsx
View file @
428f5f29
...
...
@@ -10,7 +10,7 @@ import { QuestionCircleOutlined, StarOutlined, FileWordFilled, UploadOutlined, D
import
styles
from
'./index.less'
const
AddContract
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
{
type
,
id
}
=
history
.
location
.
query
const
{
page_
type
,
id
}
=
history
.
location
.
query
const
{
TextArea
}
=
Input
;
const
[
form
]
=
Form
.
useForm
();
const
[
fileExampleUrl
,
setFileExampleUrl
]
=
useState
<
any
>
({});
...
...
@@ -51,7 +51,7 @@ const AddContract: React.FC<{}> = (props) => {
/**新增&修改 */
const
sharedFn
=
async
(
parmas
:
any
)
=>
{
if
(
type
===
'add'
)
{
if
(
page_
type
===
'add'
)
{
await
PublicApi
.
postOrderContractTemplateAdd
(
parmas
).
then
(
res
=>
{
setTimeout
(()
=>
{
history
.
goBack
()
...
...
@@ -107,7 +107,7 @@ const AddContract: React.FC<{}> = (props) => {
name
:
res
.
data
.
fileName
,
file
:
res
.
data
.
fileUrl
})
if
(
type
===
'edit'
)
{
if
(
page_
type
===
'edit'
)
{
form
.
setFieldsValue
(
res
.
data
)
}
})
...
...
@@ -131,19 +131,19 @@ const AddContract: React.FC<{}> = (props) => {
<
Card
>
<
div
className=
{
styles
.
addcontract_wrap
}
>
<
Form
form=
{
form
}
>
<
Form
.
Item
label=
'合同模板名称'
colon=
{
false
}
name=
'name'
rules=
{
[{
required
:
type
&&
true
,
message
:
'请输入合同模板名称'
}]
}
>
{
type
?
<
Input
/>
:
<
span
>
{
data
.
name
}
</
span
>
}
<
Form
.
Item
label=
'合同模板名称'
colon=
{
false
}
name=
'name'
rules=
{
[{
required
:
page_
type
&&
true
,
message
:
'请输入合同模板名称'
}]
}
>
{
page_
type
?
<
Input
/>
:
<
span
>
{
data
.
name
}
</
span
>
}
</
Form
.
Item
>
<
Form
.
Item
label=
'版本号'
colon=
{
false
}
name=
'version'
rules=
{
[{
required
:
type
&&
true
,
message
:
'请输入版本号'
}]
}
>
{
type
?
<
Input
/>
:
<
span
>
{
data
.
version
}
</
span
>
}
<
Form
.
Item
label=
'版本号'
colon=
{
false
}
name=
'version'
rules=
{
[{
required
:
page_
type
&&
true
,
message
:
'请输入版本号'
}]
}
>
{
page_
type
?
<
Input
/>
:
<
span
>
{
data
.
version
}
</
span
>
}
</
Form
.
Item
>
{
!
type
&&
{
!
page_
type
&&
<
Form
.
Item
label=
'状态'
colon=
{
false
}
name=
'status'
>
<
span
>
{
data
.
state
===
1
?
<><
Badge
status=
"success"
/>
有效
</>
:
<><
Badge
status=
"error"
/>
失效
</>
}
</
span
>
</
Form
.
Item
>
}
<
Form
.
Item
label=
'合同模板说明'
colon=
{
false
}
name=
'description'
>
{
type
?
<
TextArea
rows=
{
4
}
/>
:
<
span
>
{
data
.
description
}
</
span
>
}
{
page_
type
?
<
TextArea
rows=
{
4
}
/>
:
<
span
>
{
data
.
description
}
</
span
>
}
</
Form
.
Item
>
<
Form
.
Item
label=
{
<
div
>
合同文件模板样例
<
Tooltip
placement=
"top"
title=
'制作合同模板前,可下载合同模板样例,按照样例指引制作合同模板,其中需要添加的参数可以在合同模板参数查询中查找。'
><
QuestionCircleOutlined
/></
Tooltip
></
div
>
}
colon=
{
false
}
>
<
div
className=
{
styles
.
upload_item
}
>
...
...
@@ -166,13 +166,13 @@ const AddContract: React.FC<{}> = (props) => {
</
div
>
<
div
className=
{
styles
.
upload_right
}
>
<
span
onClick=
{
()
=>
onView
(
uploadFile
)
}
>
预览
</
span
>
{
type
&&
<
DeleteOutlined
onClick=
{
delectContract
}
/>
}
{
page_
type
&&
<
DeleteOutlined
onClick=
{
delectContract
}
/>
}
</
div
>
</
div
>
}
</
div
>
{
(
Object
.
keys
(
uploadFile
).
length
===
0
&&
type
)
&&
(
Object
.
keys
(
uploadFile
).
length
===
0
&&
page_
type
)
&&
<
Upload
action=
"/api/file/file/upload"
data=
{
{
fileType
:
UPLOAD_TYPE
}
}
...
...
@@ -186,7 +186,7 @@ const AddContract: React.FC<{}> = (props) => {
</
Upload
>
}
</
Form
.
Item
>
{
type
&&
{
page_
type
&&
<
Form
.
Item
style=
{
{
marginLeft
:
'174px'
}
}
>
<
Button
type=
"primary"
style=
{
{
marginRight
:
'24px'
}
}
onClick=
{
onSubmit
}
>
保存
</
Button
>
<
Popconfirm
...
...
src/pages/transaction/electronicContracts/apply/index.tsx
View file @
428f5f29
...
...
@@ -10,7 +10,9 @@ import Test from '../components/test'
const
Apply
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
/**头部状态的颜色值 */
/**头部状态的颜色值
* 申请状态 1-未申请 2-申请中 3-申请不通过 4-申请通过
*/
const
applyStaus
=
[{
status
:
1
,
name
:
'未申请'
,
...
...
@@ -18,19 +20,19 @@ const Apply = () => {
color
:
'#909399'
,
},
{
status
:
2
,
name
:
'申请通过'
,
icon
:
<
CheckCircleFilled
/>,
color
:
'#00B37A'
,
},
{
status
:
3
,
name
:
'申请中'
,
icon
:
<
ClockCircleFilled
/>,
color
:
'#4279DF'
,
},
{
status
:
4
,
status
:
3
,
name
:
'申请不通过'
,
icon
:
<
CloseCircleFilled
/>,
color
:
'#D32F2F'
,
},
{
status
:
4
,
name
:
'申请通过'
,
icon
:
<
CheckCircleFilled
/>,
color
:
'#00B37A'
,
}]
const
[
authType
,
setAuthType
]
=
useState
<
number
>
(
1
);
// 认证方式 1-法人认证 2-经办人认证 3-个人认证
const
[
signatureAuthLogId
,
setSignatureAuthLogId
]
=
useState
<
number
>
(
0
);
// 电子签章认证记录id
...
...
@@ -45,7 +47,7 @@ const Apply = () => {
/**电子签章认证申请 */
const
AuthApply
=
async
()
=>
{
if
(
ref
)
{
if
(
ref
&&
data
.
state
===
1
)
{
const
vaildDetail
=
await
ref
.
current
.
validateFields
();
if
(
vaildDetail
)
{
await
PublicApi
.
postOrderSignatureAuthApply
({}).
then
(
res
=>
{
...
...
@@ -54,8 +56,13 @@ const Apply = () => {
history
.
push
(
`/memberCenter/tranactionAbility/electronicContracts/enterpriseCertified?authTypeEdit=
${
authType
}
`
)
})
}
}
else
{
await
PublicApi
.
postOrderSignatureAuthApply
({}).
then
(
res
=>
{
setSignatureAuthLogId
(
res
.
data
.
signatureAuthLogId
);
sessionStorage
.
setItem
(
'signatureAuthLogId'
,
res
.
data
.
signatureAuthLogId
.
toString
())
history
.
push
(
`/memberCenter/tranactionAbility/electronicContracts/enterpriseCertified?authTypeEdit=
${
authType
}
`
)
})
}
}
return
(
...
...
@@ -86,31 +93,40 @@ const Apply = () => {
{
/* 企业 */
}
{
(
authType
===
1
||
authType
===
2
)
&&
<>
<
div
className=
{
styles
.
apply_item
}
>
<
Descriptions
title=
"申请信息"
column=
{
1
}
>
<
Descriptions
.
Item
label=
"公司名称"
>
{
data
.
orgName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"统一社会信用代码"
>
{
data
.
orgCode
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"法人姓名"
>
{
data
.
legalRepName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"法人手机号"
>
{
data
.
legalRepMobile
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"法人身份证号"
>
{
data
.
legalRepIdNo
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"认证方式"
>
-
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"验证方式"
>
-
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
<
Test
actionRef=
{
ref
}
/>
{
data
.
state
!==
1
?
<
div
className=
{
styles
.
apply_item
}
>
<
Descriptions
title=
"申请信息"
column=
{
1
}
>
<
Descriptions
.
Item
label=
"公司名称"
>
{
data
.
orgName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"统一社会信用代码"
>
{
data
.
orgCode
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"法人姓名"
>
{
data
.
legalRepName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"法人手机号"
>
{
data
.
legalRepMobile
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"法人身份证号"
>
{
data
.
legalRepIdNo
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"认证方式"
>
-
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"验证方式"
>
-
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
:
<
Test
authType=
{
authType
}
actionRef=
{
ref
}
/>
}
</>
}
{
/* 个人 */
}
{
authType
===
3
&&
<
div
className=
{
styles
.
apply_item
}
>
<
Descriptions
title=
"申请信息"
column=
{
1
}
>
<
Descriptions
.
Item
label=
"姓名"
>
{
data
.
legalRepName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"手机号"
>
{
data
.
legalRepMobile
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"身份证号"
>
{
data
.
legalRepIdNo
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"验证方式"
>
-
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
<>
{
data
.
state
!==
1
?
<
div
className=
{
styles
.
apply_item
}
>
<
Descriptions
title=
"申请信息"
column=
{
1
}
>
<
Descriptions
.
Item
label=
"姓名"
>
{
data
.
transactorName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"手机号"
>
{
data
.
transactorMobile
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"身份证号"
>
{
data
.
transactorIdNumber
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"验证方式"
>
-
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
:
<
Test
authType=
{
authType
}
actionRef=
{
ref
}
/>
}
</>
}
</
div
>
</
PageHeaderWrapper
>
...
...
src/pages/transaction/electronicContracts/classSearch/index.tsx
View file @
428f5f29
import
React
,
{
useState
,
useRef
}
from
'react'
import
React
,
{
useState
,
useRef
,
ReactNode
}
from
'react'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
Card
,
Row
,
Col
,
Input
,
Button
}
from
'antd'
;
import
statuStyle
from
'../../common/colorTag'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
StandardTable
}
from
'god'
;
import
{
PublicApi
}
from
'@/services/api'
const
ClassSearch
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
filterParams
,
setFilterParams
]
=
useState
<
any
>
({})
//表头
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'ID'
,
...
...
@@ -17,22 +19,41 @@ const ClassSearch = () => {
dataIndex
:
'name'
,
},
{
title
:
'参数描述'
,
dataIndex
:
'descri
be
'
,
dataIndex
:
'descri
ption
'
,
},
{
title
:
'状态'
,
dataIndex
:
'status'
,
dataIndex
:
'state'
,
render
:
(
text
:
any
,
reconds
:
any
)
=>
{
let
component
:
ReactNode
=
null
;
if
(
text
===
1
)
{
component
=
<><
span
style=
{
statuStyle
.
success
}
>
有效
</
span
></>
}
return
component
}
}]
// 列表数据
const
fetchData
=
(
params
?:
any
)
=>
{
console
.
log
(
params
)
//可以直接打印参数
return
new
Promise
((
resolve
,
reject
)
=>
{
PublicApi
.
getOrderContractParamPage
({
...
params
}).
then
(
res
=>
{
PublicApi
.
getOrderContractParamPage
({
...
filterParams
,
...
params
}).
then
(
res
=>
{
resolve
(
res
.
data
)
})
})
}
// 搜索
const
handleSearch
=
(
val
:
string
)
=>
{
let
obj
=
{
...
filterParams
,
name
:
val
}
setFilterParams
(
obj
)
ref
.
current
.
reload
(
obj
)
}
// 重置
const
handleReset
=
()
=>
{
setFilterParams
({})
setTimeout
(()
=>
{
ref
.
current
.
reload
()
},
500
)
}
return
(
<
PageHeaderWrapper
>
<
Card
>
...
...
@@ -47,10 +68,13 @@ const ClassSearch = () => {
<
Row
>
<
Col
span=
{
12
}
>
<
Input
.
Search
style=
{
{
width
:
'256px'
,
marginRight
:
'24px'
,
marginBottom
:
'24px'
}
}
style=
{
{
width
:
'256px'
,
marginRight
:
'24px'
,
marginBottom
:
'24px'
}
}
placeholder=
'搜索'
/>
<
Button
>
重置
</
Button
>
value=
{
filterParams
.
name
}
onChange=
{
(
e
)
=>
setFilterParams
({
...
filterParams
,
name
:
e
.
target
.
value
})
}
onSearch=
{
(
val
)
=>
handleSearch
(
val
)
}
/>
<
Button
onClick=
{
handleReset
}
>
重置
</
Button
>
</
Col
>
</
Row
>
}
...
...
src/pages/transaction/electronicContracts/components/corporate/index.tsx
View file @
428f5f29
...
...
@@ -157,16 +157,16 @@ const Corporate: React.FC<queryProps> = (props) => {
<
div
className=
{
styles
.
item_label
}
>
认证方式
<
QuestionCircleOutlined
style=
{
{
color
:
'#C0C4CC'
}
}
/></
div
>
<
div
className=
{
styles
.
item_control
}
>
<
Row
className=
{
styles
.
card_checkbox
}
>
<
Col
className=
{
cx
(
styles
.
card_checkbox_item
,
styles
.
active
)
}
>
支付宝验证
</
Col
>
<
Col
className=
{
cx
(
styles
.
card_checkbox_item
,
styles
.
active
)
}
>
手机验证码验证
</
Col
>
<
Col
className=
{
cx
(
styles
.
card_checkbox_item
,
payWay
===
1
&&
styles
.
active
)
}
onClick=
{
()
=>
CheckPayWay
(
1
)
}
>
支付宝验证
</
Col
>
<
Col
className=
{
cx
(
styles
.
card_checkbox_item
,
payWay
===
3
&&
styles
.
active
)
}
onClick=
{
()
=>
CheckPayWay
(
3
)
}
>
手机验证码验证
</
Col
>
</
Row
>
</
div
>
</
div
>
<
div
className=
{
styles
.
item_con
}
>
<
div
className=
{
styles
.
item_label
}
></
div
>
<
div
className=
{
styles
.
item_control
}
>
<
Button
type=
'primary'
>
下一步
</
Button
>
<
Button
>
上一步
</
Button
>
<
Button
type=
'primary'
onClick=
{
()
=>
authTypeFn
(
''
,
2
,
'personal'
)
}
>
下一步
</
Button
>
<
Button
onClick=
{
()
=>
authTypeFn
(
''
,
0
,
'stepUp'
)
}
>
上一步
</
Button
>
</
div
>
</
div
>
</
div
>
...
...
src/pages/transaction/electronicContracts/components/enterpriseInfoCheck/index.tsx
View file @
428f5f29
...
...
@@ -82,20 +82,20 @@ const EnterpriseInfoCheck: React.FC<queryProps> = (props) => {
<
div
className=
{
styles
.
info_item_con
}
>
<
div
className=
{
styles
.
item_con
}
>
<
div
className=
{
styles
.
item_label
}
>
姓名:
</
div
>
<
div
className=
{
styles
.
item_control
}
>
张三
</
div
>
<
div
className=
{
styles
.
item_control
}
>
{
data
.
transactorName
}
</
div
>
</
div
>
<
div
className=
{
styles
.
item_con
}
>
<
div
className=
{
styles
.
item_label
}
>
手机号:
</
div
>
<
div
className=
{
styles
.
item_control
}
>
+86
185 2929 6758
</
div
>
<
div
className=
{
styles
.
item_control
}
>
+86
{
data
.
transactorMobile
}
</
div
>
</
div
>
<
div
className=
{
styles
.
item_con
}
>
<
div
className=
{
styles
.
item_label
}
>
身份证号:
</
div
>
<
div
className=
{
styles
.
item_control
}
>
321023 19891205 3746
</
div
>
<
div
className=
{
styles
.
item_control
}
>
{
data
.
transactorIdNumber
}
</
div
>
</
div
>
<
div
className=
{
styles
.
item_con
}
>
<
div
className=
{
styles
.
item_label
}
></
div
>
<
div
className=
{
styles
.
item_control
}
>
<
Button
type=
'primary'
>
下一步
</
Button
>
<
Button
type=
'primary'
onClick=
{
()
=>
authTypeFn
(
3
,
1
,
'personal'
)
}
>
下一步
</
Button
>
</
div
>
</
div
>
</
div
>
...
...
src/pages/transaction/electronicContracts/components/publicAccount/index.tsx
View file @
428f5f29
import
React
,
{
useState
,
useEffect
}
from
'react'
import
{
history
}
from
'umi'
import
{
Result
,
Button
,
Form
,
Input
,
Row
,
Col
,
Alert
}
from
'antd'
import
{
Result
,
Button
,
Form
,
Input
,
Row
,
Col
,
Alert
,
Spin
}
from
'antd'
import
styles
from
'../index.less'
import
{
AlipaySquareFilled
}
from
'@ant-design/icons'
;
import
{
PublicApi
}
from
'@/services/api'
;
...
...
@@ -82,7 +82,7 @@ const PublicAccount: React.FC<queryProps> = (props) => {
}
/**发起
手机
认证 */
/**发起
授权签署实名
认证 */
const
mobileVerifyFn
=
()
=>
{
const
parmas
=
{
signatureAuthLogId
:
Number
(
sessionStorage
.
getItem
(
'signatureAuthLogId'
)),
...
...
@@ -98,19 +98,68 @@ const PublicAccount: React.FC<queryProps> = (props) => {
})
}
// 获取验证码,并且倒计时60s
let
time
=
60
const
[
btnDisabled
,
setBtnDisabled
]
=
useState
(
false
);
const
[
btnContent
,
setBtnContent
]
=
useState
(
'获取验证码'
);
// 倒计时fn
const
hanleCountdown
=
()
=>
{
if
(
time
>
0
&&
time
<=
60
)
{
time
-=
1
;
setBtnContent
(
`
${
time
}
s后重发`
);
setBtnDisabled
(
true
);
setTimeout
(()
=>
{
hanleCountdown
();
},
1000
)
}
else
{
time
=
60
;
setBtnDisabled
(
false
);
setBtnContent
(
'获取验证码'
);
}
}
/** 发起手机认证*/
const
handleVerifyCode
=
async
()
=>
{
await
PublicApi
.
postOrderSignatureAuthMobileVerify
({
signatureAuthLogId
:
Number
(
sessionStorage
.
getItem
(
'signatureAuthLogId'
)),
mobileNo
:
data
.
transactorMobile
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
hanleCountdown
()
}
else
{
console
.
log
(
res
)
}
})
}
/**手机认证验证码校验 */
const
onSubmit
=
async
()
=>
{
const
value
=
await
form
.
validateFields
();
if
(
value
)
{
await
PublicApi
.
postOrderSignatureAuthMobileVerifyCode
({
signatureAuthLogId
:
Number
(
sessionStorage
.
getItem
(
'signatureAuthLogId'
)),
authcode
:
value
.
authcode
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
()
}
})
}
}
return
(
<>
{
payWay
===
1
&&
<
div
className=
{
styles
.
info_wrap
}
>
{
/** 支付宝认证*/
}
<
Result
title=
"请使用法人手机号注册的支付宝账号登录支付"
title=
{
authType
!==
3
?
'请使用法人手机号注册的支付宝账号登录支付'
:
'请使用当前会员手机号注册的支付宝账号登录支付宝APP'
}
extra=
{
[
<
div
key=
'key'
>
<
div
className=
{
styles
.
info_wran
}
>
并使用支付宝首页的扫一扫功能
</
div
>
<
div
className=
{
styles
.
info_wran
}
>
扫描下面的二维码,然后按照支付宝APP的提示进行验证
</
div
>
<
div
className=
{
styles
.
alipay_qrcode
}
>
<
img
src=
{
qrCode
}
alt=
""
/>
{
qrCode
?
<
img
src=
{
qrCode
}
alt=
""
/>
:
<
Spin
/>
}
</
div
>
<
div
className=
{
styles
.
alipay_wran
}
>
<
AlipaySquareFilled
...
...
@@ -144,15 +193,15 @@ const PublicAccount: React.FC<queryProps> = (props) => {
<
div
className=
{
styles
.
bank_info
}
>
<
div
className=
{
styles
.
bank_info_item
}
>
<
div
className=
{
styles
.
bank_info_label
}
>
账户名称:
</
div
>
<
div
className=
{
styles
.
bank_info_control
}
>
{
data
.
orgName
}
</
div
>
<
div
className=
{
styles
.
bank_info_control
}
>
{
query
.
orgName
}
</
div
>
</
div
>
<
div
className=
{
styles
.
bank_info_item
}
>
<
div
className=
{
styles
.
bank_info_label
}
>
银行账号:
</
div
>
<
div
className=
{
styles
.
bank_info_control
}
>
{
data
.
bankName
}
</
div
>
<
div
className=
{
styles
.
bank_info_control
}
>
{
query
.
cardNo
}
</
div
>
</
div
>
<
div
className=
{
styles
.
bank_info_item
}
>
<
div
className=
{
styles
.
bank_info_label
}
>
开户行:
</
div
>
<
div
className=
{
styles
.
bank_info_control
}
>
{
data
.
cardNo
}
</
div
>
<
div
className=
{
styles
.
bank_info_control
}
>
{
query
.
bankName
}
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
bank_btn
}
>
...
...
@@ -202,7 +251,7 @@ const PublicAccount: React.FC<queryProps> = (props) => {
<
div
className=
{
styles
.
info_wran
}
>
法人收到验证短信后,根据短信中的链接,在手机端完成委托书签署
</
div
>
<
div
className=
{
styles
.
info_phone_number
}
>
<
div
>
法人手机号:
</
div
>
<
div
>
+86
{
data
.
transactor
Mobile
}
</
div
>
<
div
>
+86
{
data
.
legalRep
Mobile
}
</
div
>
</
div
>
<
div
className=
{
styles
.
bank_btn
}
style=
{
{
textAlign
:
'center'
}
}
>
<
Button
type=
'primary'
onClick=
{
mobileVerifyFn
}
>
发送授权短信
</
Button
>
...
...
@@ -238,33 +287,34 @@ const PublicAccount: React.FC<queryProps> = (props) => {
<
div
className=
{
styles
.
info_wran
}
>
会员收到短信验证码后,填写验证码完成认证
</
div
>
<
div
className=
{
styles
.
info_phone_number
}
>
<
div
>
法人手机号:
</
div
>
<
div
>
+86
186 7700 2345
</
div
>
<
div
>
+86
{
data
.
transactorMobile
}
</
div
>
</
div
>
<
Form
style=
{
{
width
:
'338px'
,
margin
:
'auto'
}
}
>
<
Form
style=
{
{
width
:
'338px'
,
margin
:
'auto'
}
}
form=
{
form
}
>
<
Form
.
Item
noStyle
>
<
Row
gutter=
{
6
}
>
<
Col
span=
{
16
}
>
<
Form
.
Item
name=
'code'
rules=
{
[{
required
:
true
,
message
:
'请输入短信验证码'
}]
}
>
<
Form
.
Item
name=
'
auth
code'
rules=
{
[{
required
:
true
,
message
:
'请输入短信验证码'
}]
}
>
<
Input
placeholder=
'请输入短信验证码'
/>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
8
}
>
<
Button
>
获取验证码
</
Button
>
<
Button
disabled=
{
btnDisabled
}
onClick=
{
handleVerifyCode
}
>
获取验证码
</
Button
>
</
Col
>
</
Row
>
</
Form
.
Item
>
</
Form
>
<
div
className=
{
styles
.
bank_btn
}
style=
{
{
textAlign
:
'center'
}
}
>
<
Button
type=
'primary'
>
开始认证
</
Button
>
<
Button
style=
{
{
width
:
'116px'
}
}
>
上一步
</
Button
>
<
Button
style=
{
{
width
:
'116px'
}
}
onClick=
{
()
=>
authTypeFn
(
''
,
1
,
'stepUp'
)
}
>
上一步
</
Button
>
</
div
>
</
div
>
]
}
/>
</
div
>
}
</>
)
}
...
...
src/pages/transaction/electronicContracts/components/steps/index.tsx
View file @
428f5f29
...
...
@@ -5,17 +5,18 @@ const { Step } = Steps;
interface
stepProps
{
step
:
number
,
authTypeEdit
:
string
,
}
const
StepComponents
:
React
.
FC
<
stepProps
>
=
(
props
)
=>
{
const
{
step
}
=
props
;
const
{
step
,
authTypeEdit
}
=
props
;
return
(
<
div
className=
{
styles
.
step_info
}
>
<
Steps
size=
"small"
current=
{
step
}
>
<
Step
title=
"企业信息核验"
/>
<
Step
title=
"经办人/法人认证"
/>
<
Step
title=
"企业认证"
/>
<
Step
title=
{
authTypeEdit
!==
'3'
?
"企业信息核验"
:
"个人信息核验"
}
/>
<
Step
title=
{
authTypeEdit
!==
'3'
?
"经办人/法人认证"
:
"选择认证方式"
}
/>
<
Step
title=
{
authTypeEdit
!==
'3'
?
"企业认证"
:
"个人认证"
}
/>
</
Steps
>
</
div
>
)
...
...
src/pages/transaction/electronicContracts/components/test/index.tsx
View file @
428f5f29
import
React
,
{
useEffect
,
useState
}
from
'react'
import
React
,
{
useEffect
,
useState
}
from
'react'
import
{
Result
,
Button
,
Form
,
Input
,
Select
,
Row
,
Col
}
from
'antd'
import
styles
from
'../index.less'
import
{
AlipaySquareFilled
}
from
'@ant-design/icons'
;
import
{
PublicApi
}
from
'@/services/api'
;
interface
queryProps
{
actionRef
?:
any
actionRef
?:
any
,
authType
:
number
}
const
Test
:
React
.
FC
<
queryProps
>
=
(
props
)
=>
{
const
{
actionRef
}
=
props
;
const
Test
:
React
.
FC
<
queryProps
>
=
(
props
)
=>
{
const
{
actionRef
,
authType
}
=
props
;
const
{
Option
}
=
Select
;
const
[
form
]
=
Form
.
useForm
();
const
[
options
,
setOptions
]
=
useState
<
any
>
([])
const
[
options
,
setOptions
]
=
useState
<
any
>
([])
// 手机号码验证
const
userPhoneRule
=
(
rule
,
value
)
=>
{
...
...
@@ -62,36 +63,68 @@ const Test:React.FC<queryProps> = (props) => {
<
div
className=
{
styles
.
info_item
}
>
<
div
className=
{
styles
.
info_item_con
}
>
<
Form
form=
{
form
}
>
<
Form
.
Item
label=
'公司名称'
name=
'orgName'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'请输入经办人'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'统一社会信用代码'
name=
'orgCode'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'统一社会信用代码'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'法人姓名'
name=
'legalRepName'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'法人姓名'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'法人手机号'
colon=
{
false
}
required=
{
true
}
style=
{
{
marginBottom
:
'0px'
}
}
>
<
Row
gutter=
{
24
}
>
<
Col
span=
{
7
}
>
<
Form
.
Item
style=
{
{
width
:
'150px'
}
}
name=
'code'
rules=
{
[{
required
:
true
,
message
:
'请选择区号'
}]
}
>
<
Select
style=
{
{
width
:
'100%'
}
}
>
{
options
.
map
(
v
=>
(
<
Option
key=
{
v
}
value=
{
v
}
>
{
v
}
</
Option
>
))
}
</
Select
>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
17
}
>
<
Form
.
Item
style=
{
{
width
:
'398px'
}
}
name=
'legalRepMobile'
rules=
{
[{
required
:
true
,
validator
:
userPhoneRule
,
}]
}
>
<
Input
/>
</
Form
.
Item
>
</
Col
>
</
Row
>
</
Form
.
Item
>
<
Form
.
Item
label=
'法人身份证号'
name=
'legalRepIdNo'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'请输入身份证号码'
}]
}
>
<
Input
/>
</
Form
.
Item
>
{
authType
!==
3
?
<>
<
Form
.
Item
label=
'公司名称'
name=
'orgName'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'请输入经办人'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'统一社会信用代码'
name=
'orgCode'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'统一社会信用代码'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'法人姓名'
name=
'legalRepName'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'法人姓名'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'法人手机号'
colon=
{
false
}
required=
{
true
}
style=
{
{
marginBottom
:
'0px'
}
}
>
<
Row
gutter=
{
24
}
>
<
Col
span=
{
7
}
>
<
Form
.
Item
style=
{
{
width
:
'150px'
}
}
name=
'code'
rules=
{
[{
required
:
true
,
message
:
'请选择区号'
}]
}
>
<
Select
style=
{
{
width
:
'100%'
}
}
>
{
options
.
map
(
v
=>
(
<
Option
key=
{
v
}
value=
{
v
}
>
{
v
}
</
Option
>
))
}
</
Select
>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
17
}
>
<
Form
.
Item
style=
{
{
width
:
'398px'
}
}
name=
'legalRepMobile'
rules=
{
[{
required
:
true
,
validator
:
userPhoneRule
,
}]
}
>
<
Input
/>
</
Form
.
Item
>
</
Col
>
</
Row
>
</
Form
.
Item
>
<
Form
.
Item
label=
'法人身份证号'
name=
'legalRepIdNo'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'请输入身份证号码'
}]
}
>
<
Input
/>
</
Form
.
Item
>
</>
:
<>
<
Form
.
Item
label=
'姓名'
name=
'transactorName'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'姓名'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'手机号'
colon=
{
false
}
required=
{
true
}
style=
{
{
marginBottom
:
'0px'
}
}
>
<
Row
gutter=
{
24
}
>
<
Col
span=
{
7
}
>
<
Form
.
Item
style=
{
{
width
:
'150px'
}
}
name=
'code'
rules=
{
[{
required
:
true
,
message
:
'请选择区号'
}]
}
>
<
Select
style=
{
{
width
:
'100%'
}
}
>
{
options
.
map
(
v
=>
(
<
Option
key=
{
v
}
value=
{
v
}
>
{
v
}
</
Option
>
))
}
</
Select
>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
17
}
>
<
Form
.
Item
style=
{
{
width
:
'398px'
}
}
name=
'transactorMobile'
rules=
{
[{
required
:
true
,
validator
:
userPhoneRule
,
}]
}
>
<
Input
/>
</
Form
.
Item
>
</
Col
>
</
Row
>
</
Form
.
Item
>
<
Form
.
Item
label=
'身份证号'
name=
'transactorIdNumber'
colon=
{
false
}
rules=
{
[{
required
:
true
,
message
:
'请输入身份证号码'
}]
}
>
<
Input
/>
</
Form
.
Item
>
</>
}
</
Form
>
</
div
>
</
div
>
...
...
src/pages/transaction/electronicContracts/enterpriseCertified/index.tsx
View file @
428f5f29
...
...
@@ -38,6 +38,17 @@ const EnterpriseCertified = () => {
})
}
else
if
(
name
===
'stepUp'
||
(
name
===
'company'
&&
type
===
2
)
||
name
===
'company'
)
{
setStep
(
steps
)
}
else
{
delete
data
.
code
;
const
parmas
=
{
signatureAuthLogId
:
Number
(
sessionStorage
.
getItem
(
'signatureAuthLogId'
)),
...
data
}
PublicApi
.
postOrderSignatureAuthPersonalAuth
(
parmas
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setStep
(
steps
)
}
})
}
}
...
...
@@ -56,7 +67,7 @@ const EnterpriseCertified = () => {
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
>
<
StepComponents
step=
{
step
}
/>
<
StepComponents
step=
{
step
}
authTypeEdit=
{
authTypeEdit
}
/>
{
step
===
0
&&
<
EnterpriseInfoCheck
authTypeEdit=
{
authTypeEdit
}
...
...
src/pages/transaction/electronicContracts/personalCertified/index.tsx
deleted
100644 → 0
View file @
bdb42e83
import
React
from
'react'
import
{
history
}
from
'umi'
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
const
PersonalCertified
=
()
=>
{
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
>
<
div
>
123
</
div
>
</
PageHeaderWrapper
>
)
}
export
default
PersonalCertified
\ No newline at end of file
src/pages/transaction/electronicContracts/template/index.tsx
View file @
428f5f29
...
...
@@ -68,7 +68,7 @@ const Template: React.FC<{}> = () => {
let
component
:
ReactNode
=
null
component
=
(
<>
<
Button
disabled=
{
record
.
state
===
1
}
style=
{
{
padding
:
'0px'
,
marginRight
:
'24px'
}
}
type=
'link'
><
Link
to=
{
`/memberCenter/tranactionAbility/electronicContracts/addContract?type=edit&id=${record.id}`
}
>
编辑
</
Link
></
Button
>
<
Button
disabled=
{
record
.
state
===
1
}
style=
{
{
padding
:
'0px'
,
marginRight
:
'24px'
}
}
type=
'link'
><
Link
to=
{
`/memberCenter/tranactionAbility/electronicContracts/addContract?
page_
type=edit&id=${record.id}`
}
>
编辑
</
Link
></
Button
>
<
Popconfirm
title=
"确定要执行这个操作?"
onConfirm=
{
()
=>
confirmDel
(
record
)
}
...
...
@@ -104,7 +104,7 @@ const Template: React.FC<{}> = () => {
pathname
:
'/memberCenter/tranactionAbility/electronicContracts/addContract'
,
query
:
{
type
:
'add'
,
page_
type
:
'add'
,
},
});
};
...
...
src/pages/transaction/enquiryOffer/enquiryOfferSearch/index.tsx
View file @
428f5f29
...
...
@@ -79,7 +79,6 @@ const List:React.FC<{listParams}> = (props) => {
const
fetchData
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderQuotationList
(
params
);
return
res
.
data
}
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
0 → 100644
View file @
428f5f29
import
React
,
{
ReactNode
,
useRef
,
useState
,
useEffect
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Card
,
Space
,
Row
,
Col
,
Dropdown
,
Menu
,
Popconfirm
}
from
'antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
;
import
{
StandardTable
}
from
'god'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
IFormFilter
,
IButtonFilter
,
}
from
'god/dist/src/standard-table/TableController'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
StatusSwitch
from
'@/components/StatusSwitch'
;
import
{
interiorState
}
from
'../../common/tableStatusList'
import
statuStyle
from
'../../common/colorTag'
import
NiceForm
from
'@/components/NiceForm'
;
import
{
timeRange
}
from
'@/utils/index'
import
moment
from
'moment'
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
PageStatus
}
from
'@/hooks/usePageStatus'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
commonEnquieryOfferSchema
}
from
'../schema'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
values
,
action
}
from
'mobx'
;
const
formActions
=
createFormActions
();
const
fetchData
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderStayProductQuotationList
(
params
);
return
res
.
data
}
const
AddEnquiryOrder
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
[
more
,
setmore
]
=
useState
(
false
)
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([])
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
dataIndex
:
'details'
,
},
{
title
:
'被询价会员'
,
key
:
'memberName'
,
dataIndex
:
'memberName'
,
},
{
title
:
'交付日期'
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
},
{
title
:
'报价截止时间'
,
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
'询价时间'
,
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
reconds
)
=>
{
let
component
:
ReactNode
=
null
if
(
text
==
3
)
{
component
=
<><
span
style=
{
statuStyle
.
warn
}
>
审核不通过
</
span
></>
}
else
if
(
text
==
1
)
{
component
=
<><
span
style=
{
statuStyle
.
default
}
>
待提交
</
span
></>
}
return
component
}
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
)
=>
interiorState
(
text
)
},
{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
render
:
(
_
:
any
,
record
:
any
)
=>
{
return
(
<>
{
(
record
.
interiorState
!==
3
&&
<
Button
type=
"link"
onClick=
{
()
=>
toEdit
(
record
.
id
)
}
>
编辑
</
Button
>
)
}
{
(
record
.
interiorState
===
1
)
&&
<>
<
Popconfirm
title=
"确定要删除吗?"
okText=
"是"
cancelText=
"否"
onConfirm=
{
()
=>
handleDelete
([
record
.
id
])
}
>
<
Button
type=
'link'
>
删除
</
Button
>
</
Popconfirm
>
<
Popconfirm
title=
"确定要提交吗?"
okText=
"是"
cancelText=
"否"
onConfirm=
{
()
=>
handleSubmit
(
record
.
id
)
}
>
<
Button
type=
'link'
>
提交
</
Button
>
</
Popconfirm
>
</>
}
</>
)
}
},
]
useEffect
(()
=>
{
},
[])
const
toEdit
=
(
id
:
number
|
string
)
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/enquiryOffer/addEnquiry?id=
${
id
}
`
)
}
/**
* @description: 删除
* @param {type}
* @return {type}
*/
const
handleDelete
=
(
arr
:
number
[]
|
string
[])
=>
{
PublicApi
.
postOrderQuotationDelete
({
ids
:
arr
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
//批量提交
const
handleSubmitAll
=
(
ids
:
number
[])
=>
{
PublicApi
.
postOrderQuotationSubmitAuditAll
({
ids
:
ids
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
//提交审核
const
handleSubmit
=
(
id
)
=>
{
PublicApi
.
postOrderQuotationSubmitAudit
({
id
:
id
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
const
handleSumbit
=
(
values
:
any
)
=>
{
if
(
values
.
voucherTime
)
{
values
.
startDocumentsTime
=
timeRange
(
values
.
voucherTime
).
st
values
.
endDocumentsTime
=
timeRange
(
values
.
voucherTime
).
et
}
delete
values
.
voucherTime
ref
.
current
.
reload
(
values
)
}
const
menu
=
(
<
Menu
onClick=
{
()
=>
handleDelete
(
selectedRowKeys
)
}
>
<
Menu
.
Item
key=
'1'
icon=
{
<
DeleteOutlined
/>
}
>
批量删除
</
Menu
.
Item
>
</
Menu
>
)
const
handleBatchDel
=
(
e
:
any
)
=>
{
}
const
rowSelection
=
{
selectedRowKeys
:
selectedRowKeys
,
onChange
:
(
selectedRowKeys
:
any
,
selectedRows
:
any
)
=>
{
setSelectRow
(
selectedRows
);
setSelectedRowKeys
(
selectedRowKeys
);
console
.
log
(
`selectedRowKeys:
${
selectedRowKeys
}
`
,
'selectedRows: '
,
selectedRows
)
},
}
const
controllerBtns
=
<
Row
>
<
Col
span=
{
24
}
>
<
Space
direction=
"horizontal"
size=
{
16
}
>
<
Button
type=
"primary"
onClick=
{
()
=>
history
.
push
(
'/memberCenter/tranactionAbility/enquiryOffer/addEnquiry'
)
}
icon=
{
<
PlusOutlined
/>
}
>
新建
</
Button
>
<
Button
onClick=
{
()
=>
handleSubmitAll
(
selectedRowKeys
)
}
>
批量提交审核
</
Button
>
<
Dropdown
.
Button
overlay=
{
menu
}
trigger=
{
[
'click'
]
}
icon=
{
<
DownOutlined
/>
}
>
更多
</
Dropdown
.
Button
>
</
Space
>
</
Col
>
</
Row
>
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
rowSelection=
{
rowSelection
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
onSubmit=
{
values
=>
handleSumbit
(
values
)
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'quotationNo'
,
FORM_FILTER_PATH
)
}
}
expressionScope=
{
{
controllerBtns
}
}
schema=
{
commonEnquieryOfferSchema
}
>
</
NiceForm
>
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
AddEnquiryOrder
\ No newline at end of file
src/pages/transaction/goodsOffer/enquiryOrder/index.tsx
0 → 100644
View file @
428f5f29
import
React
,
{
useRef
,
useEffect
}
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
Card
}
from
'antd'
;
import
{
StandardTable
}
from
'god'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
enquieryOfferSearchSchema
}
from
'../schema'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
searchSelectGetSelectCategoryOptionEffect
}
from
'../../effect/index'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
PublicApi
}
from
'@/services/api'
;
const
formActions
=
createFormActions
();
const
EnquiryOrder
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
ref
=
useRef
<
any
>
({});
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
dataIndex
:
'details'
,
},
{
title
:
'被询价会员'
,
key
:
'memberName'
,
dataIndex
:
'memberName'
,
},
{
title
:
'交付日期'
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
},
{
title
:
'报价截止时间'
,
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
},
{
title
:
'单据时间'
,
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
}];
//交易能力 询价报价 询价单查询
const
fetchData
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderProductInquiryList
(
params
);
return
res
.
data
}
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'inquiryListNo'
,
FORM_FILTER_PATH
)
FormEffectHooks
.
onFieldChange$
(
'category'
).
subscribe
(
state
=>
{
searchSelectGetSelectCategoryOptionEffect
(
actions
,
'category'
)
})
}
}
schema=
{
enquieryOfferSearchSchema
}
>
</
NiceForm
>
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
EnquiryOrder
;
\ No newline at end of file
src/pages/transaction/goodsOffer/schema/index.tsx
0 → 100644
View file @
428f5f29
import
{
ISchema
}
from
'@formily/antd'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
{
TimeList
}
from
'../../common/statusList'
import
TranactionRoute
from
'config/routes/tranactionRoute'
/**
* @description: 公用
* @param {type}
* @return {type}
*/
export
const
commonEnquieryOfferSchema
:
ISchema
=
{
type
:
'object'
,
properties
:{
megalayout
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-component-props"
:{
grid
:
true
},
properties
:{
ctl
:{
type
:
'object'
,
"x-component"
:
"Children"
,
"x-component-props"
:{
children
:
"{{controllerBtns}}"
}
},
quotationNo
:{
//报价单号
type
:
'string'
,
"x-component"
:
"Search"
,
"x-mega-props"
:{
},
"x-component-props"
:{
placeholder
:
'报价单搜索'
}
}
}
},
[
FORM_FILTER_PATH
]:{
type
:
'object'
,
"x-component"
:
"flex-layout"
,
"x-component-props"
:{
rowStyle
:{
flexWrap
:
'nowrap'
},
colStyle
:{
marginLeft
:
20
}
},
properties
:{
PRO_LAYOUT
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-mega-props"
:{
span
:
5
},
"x-component-props"
:{
inline
:
true
},
properties
:{
inquiryListNo
:{
//需求单号
type
:
'string'
,
"x-mega-props"
:{
},
"x-component-props"
:{
placeholder
:
'询价单号'
}
},
details
:{
type
:
'string'
,
"x-component-props"
:{
placeholder
:
'询价单摘要'
}
},
memberName
:{
type
:
'string'
,
"x-component-props"
:{
placeholder
:
'被询价会员'
}
},
// category:{
// type:'string',
// 'x-component': 'CustomInputSearch',
// 'x-component-props': {
// placeholder: '商品品类',
// showSearch: true,
// showArrow: true,
// defaultActiveFirstOption: false,
// filterOption: false,
// notFoundContent: null,
// style: { width: '174px', lineHeight: '32px' },
// searchValue: null,
// dataoption: []
// }
// // "x-component-props":{
// // placeholder:'请选择品类'
// // },
// // enum:[]
// },
voucherTime
:{
type
:
'string'
,
default
:
0
,
"x-component-props"
:{
placeholder
:
'请选择单据时间'
},
enum
:
TimeList
},
}
},
sumbit
:{
"x-component"
:
'Submit'
,
"x-mega-props"
:{
span
:
1
},
"x-component-props"
:{
children
:
'查询'
}
}
}
}
}
}
/**
* @description: 需求报价-需求单查询
* @param {type}
* @return {type}
*/
export
const
enquierySearchSchema
:
ISchema
=
{
type
:
'object'
,
properties
:{
megalayout
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
properties
:{
requisitionFormNo
:{
type
:
'string'
,
"x-component"
:
"Search"
,
"x-mega-props"
:{
},
"x-component-props"
:{
placeholder
:
'搜索'
,
align
:
'flex-left'
,
}
}
}
},
[
FORM_FILTER_PATH
]:{
type
:
'object'
,
"x-component"
:
"flex-layout"
,
"x-component-props"
:{
rowStyle
:{
justifyContent
:
'flex-start'
,
flexWrap
:
'nowrap'
},
colStyle
:{
//改变间隔
marginRight
:
20
}
},
properties
:{
PRO_LAYOUT
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-mega-props"
:{
span
:
5
},
"x-component-props"
:{
inline
:
true
},
properties
:{
demandMembers
:{
type
:
'string'
,
"x-component-props"
:{
placeholder
:
'询价会员'
}
},
// category:{
// type:'string',
// 'x-component': 'CustomInputSearch',
// 'x-component-props': {
// placeholder: '商品品类',
// showSearch: true,
// showArrow: true,
// defaultActiveFirstOption: false,
// filterOption: false,
// notFoundContent: null,
// style: { width: '174px', lineHeight: '32px' },
// searchValue: null,
// dataoption: []
// }
// // "x-component-props":{
// // placeholder:'请选择品类'
// // },
// // enum:[]
// },
voucherTime
:{
type
:
'string'
,
default
:
0
,
"x-component-props"
:{
placeholder
:
'请选择单据时间'
},
enum
:
TimeList
},
}
},
sumbit
:{
"x-component"
:
'Submit'
,
"x-mega-props"
:{
span
:
1
},
"x-component-props"
:{
children
:
'查询'
}
}
}
}
}
}
/**
* @description: 需求报价-报价查询
* @param {type}
* @return {type}
*/
export
const
enquieryOfferSearchSchema
:
ISchema
=
{
type
:
'object'
,
properties
:{
megalayout
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
properties
:{
inquiryListNo
:{
type
:
'string'
,
"x-component"
:
"Search"
,
"x-mega-props"
:{
},
"x-component-props"
:{
placeholder
:
'搜索'
,
align
:
'flex-left'
,
}
}
}
},
[
FORM_FILTER_PATH
]:{
type
:
'object'
,
"x-component"
:
"flex-layout"
,
"x-component-props"
:{
rowStyle
:{
justifyContent
:
'flex-start'
,
flexWrap
:
'nowrap'
},
colStyle
:{
//改变间隔
marginRight
:
20
}
},
properties
:{
PRO_LAYOUT
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-mega-props"
:{
span
:
5
},
"x-component-props"
:{
inline
:
true
},
properties
:{
memberName
:{
type
:
'string'
,
"x-component-props"
:{
placeholder
:
'询价会员'
}
},
voucherTime
:{
type
:
'string'
,
default
:
0
,
"x-component-props"
:{
placeholder
:
'请选择单据时间'
},
enum
:
TimeList
},
externalState
:{
type
:
'string'
,
default
:
0
,
"x-component-props"
:{
placeholder
:
'外部状态'
},
enum
:
TimeList
},
interiorState
:{
type
:
'string'
,
default
:
0
,
"x-component-props"
:{
placeholder
:
'内部状态'
},
enum
:
TimeList
},
}
},
sumbit
:{
"x-component"
:
'Submit'
,
"x-mega-props"
:{
span
:
1
},
"x-component-props"
:{
children
:
'查询'
}
}
}
}
}
}
/**
* @description: 报价单新增编辑-需求单查询
* @param {type}
* @return {type}
*/
export
const
dialogEqformSearch
:
ISchema
=
{
type
:
'object'
,
properties
:{
megalayout
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
properties
:{
requisitionFormNo
:{
type
:
'string'
,
"x-component"
:
"Search"
,
"x-mega-props"
:{
},
"x-component-props"
:{
placeholder
:
'需求单号'
,
align
:
'flex-left'
,
}
}
}
},
[
FORM_FILTER_PATH
]:{
type
:
'object'
,
"x-component"
:
"flex-layout"
,
"x-component-props"
:{
rowStyle
:{
justifyContent
:
'flex-start'
,
flexWrap
:
'nowrap'
},
colStyle
:{
//改变间隔
marginRight
:
20
}
},
properties
:{
PRO_LAYOUT
:{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-mega-props"
:{
span
:
5
},
"x-component-props"
:{
inline
:
true
},
properties
:{
details
:{
type
:
'string'
,
"x-component-props"
:{
placeholder
:
'需求摘要'
}
},
demandMembers
:{
type
:
'string'
,
"x-component-props"
:{
placeholder
:
'需求会员'
}
},
voucherTime
:{
type
:
'string'
,
default
:
0
,
"x-component-props"
:{
placeholder
:
'请选择单据时间'
},
enum
:
TimeList
},
}
},
sumbit
:{
"x-component"
:
'Submit'
,
"x-mega-props"
:{
span
:
1
},
"x-component-props"
:{
children
:
'查询'
}
}
}
}
}
}
\ No newline at end of file
src/pages/transaction/goodsOffer/schema/productModal.tsx
0 → 100644
View file @
428f5f29
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment