Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
frontend
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
Schedules
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
h5-communicate
frontend
Commits
b3078cec
Commit
b3078cec
authored
Jul 14, 2020
by
熊成伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
debug
parent
abda54db
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
912 additions
and
5 deletions
+912
-5
CardItem.jsx
src/components/Card/WorkCard/CardItem.jsx
+1
-1
index.jsx
src/components/Input/index.jsx
+27
-0
index.less
src/components/Input/index.less
+14
-0
index.jsx
src/components/TopSearch/index.jsx
+2
-2
Application.jsx
src/pages/EventProcessing/UnCommon/Application.jsx
+5
-1
index.less
src/pages/EventProcessing/index.less
+1
-0
AddWork.jsx
src/pages/Work/AddWork.jsx
+28
-0
WorkDetail.jsx
src/pages/Work/WorkDetail.jsx
+6
-1
AddGood.jsx
src/pages/Work/components/AddGood.jsx
+62
-0
Goods.jsx
src/pages/Work/components/Goods.jsx
+153
-0
Meeting.jsx
src/pages/Work/components/Meeting.jsx
+142
-0
Notice.jsx
src/pages/Work/components/Notice.jsx
+90
-0
Receive.jsx
src/pages/Work/components/Receive.jsx
+133
-0
Send.jsx
src/pages/Work/components/Send.jsx
+146
-0
index.less
src/pages/Work/components/index.less
+99
-0
index.less
src/pages/Work/index.less
+1
-0
router.js
src/router.js
+2
-0
No files found.
src/components/Card/WorkCard/CardItem.jsx
View file @
b3078cec
...
...
@@ -21,7 +21,7 @@ const CardItem = (props) => {
iconAction
()
};
return
(
<
div
className=
"card-content"
onClick=
{
contentCLick
}
>
<
div
className=
"card-content"
onClick=
{
data
.
id
&&
data
.
text
&&
contentCLick
}
>
{
data
.
text
&&
(
<
div
className=
"card-content-box"
>
<
div
className=
"card-content-img"
>
...
...
src/components/Input/index.jsx
0 → 100644
View file @
b3078cec
import
React
,
{
useState
}
from
'react'
;
import
classname
from
'classnames'
import
'./index.less'
const
Index
=
(
props
)
=>
{
const
[
status
,
setStatus
]
=
useState
(
false
);
const
topSearch
=
()
=>
{
const
input
=
document
.
getElementsByClassName
(
"auto-com-input"
);
let
inputValue
=
input
[
0
].
value
;
setStatus
(
inputValue
!=
null
&&
inputValue
!==
''
)
};
const
enterPress
=
(
e
)
=>
{
const
input
=
document
.
getElementsByClassName
(
"auto-com-input"
);
if
(
e
.
keyCode
===
13
)
{
props
.
onSearch
(
input
[
0
].
value
);
}
};
return
(
<
div
className=
"search-box"
>
<
input
{
...
props
.
cForm
}
onChange=
{
topSearch
}
onKeyDown=
{
enterPress
}
className=
{
classname
(
'auto-com-input'
,
props
.
className
)
}
/>
</
div
>
);
};
export
default
Index
;
src/components/Input/index.less
0 → 100644
View file @
b3078cec
.search-box{
width: 100%;
height: 42px;
display: flex;
align-items: center;
}
.auto-com-input{
width: 100%;
height: 100%;
border:0 solid rgba(38, 104, 255, 0.2);
border-radius:6px;
padding: 0 10px;
font-size: 14px;
}
src/components/TopSearch/index.jsx
View file @
b3078cec
...
...
@@ -14,7 +14,7 @@ const Index = (props) => {
const
enterPress
=
(
e
)
=>
{
const
input
=
document
.
getElementsByClassName
(
"top-single-search"
);
if
(
e
.
keyCode
===
13
)
{
props
.
onSearch
(
input
[
0
].
value
);
props
.
onSearch
&&
props
.
onSearch
(
input
[
0
].
value
);
}
}
const
clear
=
()
=>
{
...
...
@@ -22,7 +22,7 @@ const Index = (props) => {
const
input
=
document
.
getElementsByClassName
(
"top-single-search"
);
input
[
0
].
value
=
null
;
input
[
0
].
focus
();
props
.
onSearch
(
''
);
props
.
onSearch
&&
props
.
onSearch
(
''
);
}
return
(
<
div
className=
"search-box"
>
...
...
src/pages/EventProcessing/UnCommon/Application.jsx
View file @
b3078cec
...
...
@@ -43,7 +43,7 @@ const Process = (props) => {
setFlow
(
res
.
property
.
showFlow
===
'1'
);
// const keys = res.elementList ? Object.keys(res.elementList) : [];
// console.log(keys);
setBasic
(
res
.
elementList
?
res
.
elementList
.
map
(
item
=>
({
title
:
item
.
showName
}))
:
[]);
setBasic
(
res
.
elementList
&&
res
.
elementList
.
length
>
0
?
res
.
elementList
.
map
(
item
=>
({
title
:
item
.
showName
}))
:
[]);
setTableId
(
res
.
table
&&
res
.
table
.
tableId
);
setTemplateId
(
res
.
property
&&
res
.
property
.
templateId
);
setNodeId
(
res
.
property
&&
res
.
property
.
curNodeId
);
...
...
@@ -238,12 +238,16 @@ const Process = (props) => {
<
div
id=
"event-basic"
/>
<
WhiteSpace
/>
{
resultLoading
?
(
<
div
>
{
applicateData
.
length
>
0
&&
(
<
div
>
<
Basic
data=
{
basic
}
/>
<
WhiteSpace
/>
<
div
className=
"good-title"
>
申领物品信息
</
div
>
<
Goods
list=
{
applicateList
}
data=
{
applicateData
}
onClick=
{
treeClick
}
/>
</
div
>
)
}
</
div
>
)
:
<
Skeleton
/>
}
<
div
id=
"event-adjunct"
/>
<
WhiteSpace
/>
...
...
src/pages/EventProcessing/index.less
View file @
b3078cec
...
...
@@ -27,6 +27,7 @@
}
.event-footer-button:active{
background: @primary;
color: #ffffff;
opacity: 0.8;
}
.event-footer-button.button-disabled{
...
...
src/pages/Work/AddWork.jsx
0 → 100644
View file @
b3078cec
import
React
from
'react'
;
import
{
WingBlank
}
from
"antd-mobile"
;
import
Document
from
'react-document-title'
import
Send
from
'./components/Send'
;
import
Receive
from
'./components/Receive'
;
import
Goods
from
'./components/Goods'
;
import
Meeting
from
'./components/Meeting'
;
import
Notice
from
'./components/Notice'
;
const
Work
=
(
props
)
=>
{
const
{
name
}
=
props
.
match
.
params
;
return
(
<
Document
title=
"新增"
>
<
WingBlank
>
{
name
.
indexOf
(
'发文'
)
>
-
1
&&
<
Send
{
...
props
}
/>
}
{
name
.
indexOf
(
'收文'
)
>
-
1
&&
<
Receive
{
...
props
}
/>
}
{
name
.
indexOf
(
'会议'
)
>
-
1
&&
<
Meeting
{
...
props
}
/>
}
{
name
.
indexOf
(
'办公用品'
)
>
-
1
&&
<
Goods
{
...
props
}
/>
}
{
name
.
indexOf
(
'通知公告'
)
>
-
1
&&
<
Notice
{
...
props
}
/>
}
</
WingBlank
>
</
Document
>
);
}
export
default
Work
;
src/pages/Work/WorkDetail.jsx
View file @
b3078cec
...
...
@@ -105,7 +105,7 @@ const Notice = (props) => {
}
setTabData
(
menuG
);
},
[]);
console
.
log
(
!
loading
&&
!
end
&&
data
.
length
>
0
)
return
(
<
Document
title=
"通知"
>
<
WingBlank
>
...
...
@@ -137,6 +137,11 @@ const Notice = (props) => {
</
div
>
)
}
</
div
>
<
div
className=
"event-footer"
>
<
div
className=
"event-footer-button"
onClick=
{
()
=>
props
.
history
.
push
(
`/blank/work-add/${name}`
)
}
>
新增
</
div
>
</
div
>
</
WingBlank
>
</
Document
>
...
...
src/pages/Work/components/AddGood.jsx
0 → 100644
View file @
b3078cec
import
React
from
'react'
;
import
{
createForm
}
from
'rc-form'
;
import
{
List
,
Picker
,
InputItem
,
Button
,
Modal
,
TextareaItem
}
from
"antd-mobile"
;
import
'./index.less'
const
Send
=
(
props
)
=>
{
const
{
visible
,
onClose
,
addGoods
}
=
props
;
const
{
getFieldProps
,
resetFields
}
=
props
.
form
;
const
district
=
[
{
label
:
'111'
,
value
:
'111'
}
];
const
handleClose
=
()
=>
{
resetFields
();
onClose
()
};
const
handleSubmit
=
()
=>
{
props
.
form
.
validateFields
({
force
:
true
},
(
error
)
=>
{
if
(
!
error
)
{
const
values
=
props
.
form
.
getFieldsValue
();
addGoods
(
values
);
handleClose
()
}
});
}
return
(
<
div
>
<
Modal
title=
"添加物品"
className=
"date-modal"
visible=
{
visible
}
transparent
onClose=
{
handleClose
}
>
<
form
>
<
List
className=
"goods-form"
>
<
InputItem
{
...
getFieldProps
('
name
')}
>
领取人
</
InputItem
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ggf1
')}
>
<
List
.
Item
arrow=
"horizontal"
>
品名
</
List
.
Item
>
</
Picker
>
<
InputItem
{
...
getFieldProps
('
amount
')}
placeholder=
{
`(库存剩余:${0})`
}
>
申请数量
</
InputItem
>
<
TextareaItem
title=
"内容"
placeholder=
"请输入内容"
{
...
getFieldProps
('
_mail_editor_text
')}
rows=
{
4
}
/>
</
List
>
</
form
>
<
div
className=
"modal-form-footer"
>
<
Button
className=
"gray-button"
inline
onClick=
{
handleClose
}
>
关闭
</
Button
>
<
Button
className=
"date-button"
inline
type=
"primary"
onClick=
{
handleSubmit
}
>
保存
</
Button
>
</
div
>
</
Modal
>
</
div
>
);
};
export
default
createForm
()(
Send
);
src/pages/Work/components/Goods.jsx
0 → 100644
View file @
b3078cec
import
React
,
{
useState
}
from
'react'
;
import
{
createForm
}
from
'rc-form'
;
import
Upload
from
'rc-upload'
;
import
{
DatePicker
,
List
,
WhiteSpace
,
WingBlank
,
Picker
,
Checkbox
,
Modal
}
from
"antd-mobile"
;
import
axiosRequest
from
"../../../utils/request"
;
import
MailA
from
'../../../components/Adjunct/MailA'
import
AddGood
from
'./AddGood'
import
'./index.less'
const
Item
=
Checkbox
.
CheckboxItem
;
const
AgreeItem
=
Checkbox
.
AgreeItem
;
const
alert
=
Modal
.
alert
;
const
Send
=
(
props
)
=>
{
const
{
getFieldProps
}
=
props
.
form
;
const
onSubmit
=
()
=>
{
props
.
form
.
validateFields
({
force
:
true
},
(
error
)
=>
{
if
(
!
error
)
{
const
values
=
props
.
form
.
getFieldsValue
();
console
.
log
(
values
);
axiosRequest
({
method
:
'post'
,
url
:
'/idtAppServiceV6/application/interfaces/addCalendar.jsp'
,
body
:
values
,
}).
then
(
res
=>
{});
}
});
};
const
district
=
[
{
label
:
'111'
,
value
:
'111'
}
];
/*附件*/
const
[
upload
,
setUpload
]
=
useState
([]);
const
uploaderProps
=
{
multiple
:
true
,
beforeUpload
(
file
)
{
const
newUpload
=
[...
upload
,
file
];
setUpload
(
newUpload
);
return
false
}
};
const
uploadDelete
=
uid
=>
{
const
newData
=
[...
upload
];
const
Index
=
newData
.
findIndex
(
item
=>
item
.
uid
===
uid
);
Index
>
-
1
&&
newData
.
splice
(
Index
,
1
);
setUpload
(
newData
)
};
/*添加、删除物品*/
const
[
goods
,
setGoods
]
=
useState
([]);
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
sGood
,
setSGood
]
=
useState
([]);
const
checkGood
=
(
index
,
checked
)
=>
{
const
newData
=
[...
sGood
];
const
Index
=
sGood
.
findIndex
(
item
=>
item
.
id
===
index
);
checked
?
newData
.
push
(
goods
[
index
])
:
newData
.
splice
(
Index
,
1
);
setSGood
(
newData
)
};
const
addGoods
=
(
values
)
=>
{
const
newGood
=
[...
goods
,
values
];
const
newGoods
=
newGood
.
map
((
item
,
index
)
=>
({...
item
,
id
:
index
,
checked
:
false
}));
setGoods
(
newGoods
)
};
const
selectAll
=
(
checked
)
=>
{
setSGood
(
checked
?
goods
:
[])
};
const
deleteGood
=
()
=>
{
alert
(
'删除记录'
,
'确定删除选中的记录'
,
[
{
text
:
'取消'
},
{
text
:
'确认'
,
onPress
:
()
=>
{
const
ids
=
sGood
.
map
(
item
=>
item
.
id
);
const
result
=
goods
.
filter
(
item
=>
ids
.
indexOf
(
item
.
id
)
<
0
);
setGoods
(
result
);
setSGood
([]);
}
},
])
};
const
getGoodInfo
=
(
index
,
e
)
=>
{
e
.
preventDefault
();
const
newGoods
=
[...
goods
];
newGoods
[
index
].
checked
=
!
newGoods
[
index
].
checked
;
setGoods
(
newGoods
)
}
return
(
<
div
>
<
form
>
<
List
className=
"send-content"
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss1
')}
>
<
List
.
Item
arrow=
"horizontal"
>
申请人
</
List
.
Item
>
</
Picker
>
<
DatePicker
className=
"send-date-style"
{
...
getFieldProps
('
endtime
')}
>
<
List
.
Item
arrow=
"horizontal"
>
申请日期
</
List
.
Item
>
</
DatePicker
>
<
DatePicker
className=
"send-date-style"
{
...
getFieldProps
('
endtime2
')}
>
<
List
.
Item
arrow=
"horizontal"
>
申请科室
</
List
.
Item
>
</
DatePicker
>
<
List
.
Item
extra=
{
<
div
className=
"good-btn-content"
>
<
div
className=
"good-btn mr-12 c-primary"
onClick=
{
()
=>
setVisible
(
true
)
}
>
添加
</
div
>
<
div
className=
{
`good-btn ${sGood.length > 0 ? 'c-orange' : 'c-gray'}`
}
onClick=
{
setGoods
.
length
>
0
&&
deleteGood
}
>
删除
</
div
>
</
div
>
}
>
申请物品
</
List
.
Item
>
{
goods
.
length
>
0
&&
(<
Item
onChange=
{
(
val
)
=>
selectAll
(
val
.
target
.
checked
)
}
>
全选
</
Item
>)
}
{
goods
.
length
>
0
&&
goods
.
map
((
item
,
index
)
=>
(
<
AgreeItem
className=
"mt-10"
key=
{
index
}
checked=
{
sGood
.
findIndex
(
item
=>
item
.
id
===
index
)
>
-
1
}
onChange=
{
(
val
)
=>
checkGood
(
index
,
val
.
target
.
checked
)
}
>
<
div
className=
"good-item-box"
onClick=
{
(
e
)
=>
getGoodInfo
(
index
,
e
)
}
>
<
div
className=
"good-item-content"
>
品名:
{
item
.
name
||
''
}
<
img
src=
"/img/rarrow.png"
alt=
""
className=
{
`icon18 ${item.checked ? 'icon-checked' : 'icon-unchecked'}`
}
/>
</
div
>
{
item
.
checked
&&
(
<
div
>
<
div
className=
"good-item-content"
>
领取人:
{
item
.
name
||
''
}
</
div
>
<
div
className=
"good-item-content"
>
申请数量:
{
item
.
name
||
''
}
</
div
>
<
div
className=
"good-item-content"
>
实际发放数量:
{
item
.
name
||
''
}
</
div
>
</
div
>
)
}
</
div
>
</
AgreeItem
>
))
}
{
/*附件*/
}
<
div
className=
"am-textarea-label upload-title"
>
附件:
</
div
>
<
WingBlank
>
{
upload
.
length
>
0
&&
upload
.
map
((
item
,
index
)
=>
(
<
MailA
key=
{
index
}
data=
{
item
}
onDelete=
{
uploadDelete
}
/>
))
}
</
WingBlank
>
<
Upload
className=
"auto-upload"
{
...
uploaderProps
}
>
<
a
className=
"auto-upload"
>
上传附件 +
</
a
>
</
Upload
>
<
WhiteSpace
/>
</
List
>
<
div
className=
"event-footer"
>
<
div
className=
"event-footer-button"
onClick=
{
onSubmit
}
>
发送
</
div
>
</
div
>
</
form
>
<
AddGood
visible=
{
visible
}
onClose=
{
()
=>
setVisible
(
false
)
}
addGoods=
{
addGoods
}
/>
</
div
>
);
};
export
default
createForm
()(
Send
);
src/pages/Work/components/Meeting.jsx
0 → 100644
View file @
b3078cec
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
createForm
}
from
'rc-form'
;
import
axiosRequest
from
"../../../utils/request"
;
import
{
DatePicker
,
List
,
TextareaItem
,
WhiteSpace
,
WingBlank
,
Picker
,
InputItem
}
from
"antd-mobile"
;
import
MailA
from
'../../../components/Adjunct/MailA'
import
Upload
from
'rc-upload'
;
import
'./index.less'
import
queryString
from
"query-string"
;
const
Send
=
(
props
)
=>
{
const
[
searchValue
,
setSearchValue
]
=
useState
({});
useEffect
(()
=>
{
const
query
=
queryString
.
parse
(
props
.
location
.
search
);
let
search
=
{};
if
(
Object
.
keys
(
query
).
length
>
0
)
{
const
data
=
JSON
.
parse
(
localStorage
.
getItem
(
'search'
));
search
=
{...
data
,
...
query
}
}
setSearchValue
(
search
);
localStorage
.
removeItem
(
'search'
)
},
[]);
const
{
getFieldProps
}
=
props
.
form
;
const
onSubmit
=
()
=>
{
props
.
form
.
validateFields
({
force
:
true
},
(
error
)
=>
{
if
(
!
error
)
{
const
values
=
props
.
form
.
getFieldsValue
();
console
.
log
(
values
);
axiosRequest
({
method
:
'post'
,
url
:
'/idtAppServiceV6/application/interfaces/addCalendar.jsp'
,
body
:
values
,
}).
then
(
res
=>
{});
}
});
};
const
district
=
[
{
label
:
'111'
,
value
:
'111'
}
];
const
[
upload2
,
setUpload2
]
=
useState
([]);
const
uploaderProps2
=
{
multiple
:
true
,
beforeUpload
(
file
)
{
const
newUpload
=
[...
upload2
,
file
];
setUpload2
(
newUpload
);
return
false
}
};
const
uploadDelete2
=
uid
=>
{
const
newData
=
[...
upload2
];
const
Index
=
newData
.
findIndex
(
item
=>
item
.
uid
===
uid
);
Index
>
-
1
&&
newData
.
splice
(
Index
,
1
);
setUpload2
(
newData
)
};
const
CustomChildren
=
({
extra
,
onClick
})
=>
(
<
div
onClick=
{
onClick
}
className=
"time-meeting"
>
<
span
>
{
extra
}
</
span
>
</
div
>
);
const
getPlace
=
()
=>
{
// saveValue()
};
const
getPeople
=
()
=>
{
// saveValue()
};
const
saveValue
=
values
=>
{
localStorage
.
setItem
(
'search'
,
JSON
.
stringify
(
values
))
}
return
(
<
div
>
<
form
>
<
List
className=
"send-content"
>
<
InputItem
{
...
getFieldProps
('
s1
')}
>
会议标题
</
InputItem
>
<
DatePicker
mode=
"date"
className=
"send-date-style"
{
...
getFieldProps
('
endtime
',
{
initialValue
:
setSearchValue
.
endtime
})}
>
<
List
.
Item
arrow=
"horizontal"
>
会议日期
</
List
.
Item
>
</
DatePicker
>
<
List
.
Item
className=
"auto-flex-2"
extra=
{
<
div
className=
"pos-aline auto-time-select"
>
<
DatePicker
mode=
"time"
className=
"send-date-style"
{
...
getFieldProps
('
endtime
',
{
initialValue
:
setSearchValue
.
endtime22
})}
>
<
CustomChildren
/>
</
DatePicker
>
-
<
DatePicker
mode=
"time"
className=
"send-date-style"
{
...
getFieldProps
('
endtime22
',
{
initialValue
:
setSearchValue
.
endtime22
})}
>
<
CustomChildren
/>
</
DatePicker
>
</
div
>
}
>
会议时间
</
List
.
Item
>
<
List
.
Item
className=
"auto-flex"
extra=
{
<
div
>
<
div
className=
"meet-select-btn"
>
选择会议地点
</
div
>
</
div
>
}
>
会议地点
</
List
.
Item
>
<
InputItem
{
...
getFieldProps
('
s3
')}
>
参加人数
</
InputItem
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss1
',
{
preserve
:
true
})}
>
<
List
.
Item
arrow=
"horizontal"
>
会议类别
</
List
.
Item
>
</
Picker
>
<
InputItem
{
...
getFieldProps
('
s3
')}
>
预约单位
</
InputItem
>
<
DatePicker
mode=
"date"
className=
"send-date-style"
{
...
getFieldProps
('
endtime2
',
{
preserve
:
true
})}
>
<
List
.
Item
arrow=
"horizontal"
>
预约时间
</
List
.
Item
>
</
DatePicker
>
<
List
.
Item
extra=
"11111"
>
预约人
</
List
.
Item
>
<
InputItem
{
...
getFieldProps
('
s3s
')}
>
联系方式
</
InputItem
>
<
List
.
Item
className=
"auto-flex"
extra=
{
<
div
>
<
div
className=
"meet-select-btn"
>
选择参会人员
</
div
>
</
div
>
}
>
参会人员
</
List
.
Item
>
<
TextareaItem
title=
"备注"
placeholder=
"请输入备注"
{
...
getFieldProps
('
_mail_editor_text
')}
rows=
{
4
}
/>
{
/*附件*/
}
<
div
className=
"am-textarea-label upload-title"
>
附件:
</
div
>
<
WingBlank
>
{
upload2
.
length
>
0
&&
upload2
.
map
((
item
,
index
)
=>
(
<
MailA
key=
{
index
}
data=
{
item
}
onDelete=
{
uploadDelete2
}
/>
))
}
</
WingBlank
>
<
Upload
className=
"auto-upload"
{
...
uploaderProps2
}
>
<
a
className=
"auto-upload"
>
上传附件 +
</
a
>
</
Upload
>
<
WhiteSpace
/>
</
List
>
<
div
className=
"event-footer"
>
<
div
className=
"event-footer-button"
onClick=
{
onSubmit
}
>
发送
</
div
>
</
div
>
</
form
>
</
div
>
);
};
export
default
createForm
()(
Send
);
src/pages/Work/components/Notice.jsx
0 → 100644
View file @
b3078cec
import
React
,
{
useState
}
from
'react'
;
import
{
createForm
}
from
'rc-form'
;
import
axiosRequest
from
"../../../utils/request"
;
import
{
DatePicker
,
List
,
TextareaItem
,
WhiteSpace
,
WingBlank
,
Picker
}
from
"antd-mobile"
;
import
MailA
from
'../../../components/Adjunct/MailA'
import
Upload
from
'rc-upload'
;
import
'./index.less'
const
Send
=
(
props
)
=>
{
const
{
getFieldProps
}
=
props
.
form
;
const
onSubmit
=
()
=>
{
props
.
form
.
validateFields
({
force
:
true
},
(
error
)
=>
{
if
(
!
error
)
{
const
values
=
props
.
form
.
getFieldsValue
();
console
.
log
(
values
);
axiosRequest
({
method
:
'post'
,
url
:
'/idtAppServiceV6/application/interfaces/addCalendar.jsp'
,
body
:
values
,
}).
then
(
res
=>
{});
}
});
};
const
district
=
[
{
label
:
'111'
,
value
:
'111'
}
];
const
[
upload
,
setUpload
]
=
useState
([]);
const
uploaderProps
=
{
multiple
:
true
,
beforeUpload
(
file
)
{
const
newUpload
=
[...
upload
,
file
];
setUpload
(
newUpload
);
return
false
}
};
const
uploadDelete
=
uid
=>
{
const
newData
=
[...
upload
];
const
Index
=
newData
.
findIndex
(
item
=>
item
.
uid
===
uid
);
Index
>
-
1
&&
newData
.
splice
(
Index
,
1
);
setUpload
(
newData
)
};
return
(
<
div
>
<
form
>
<
List
className=
"send-content"
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss1
')}
>
<
List
.
Item
arrow=
"horizontal"
>
标题
</
List
.
Item
>
</
Picker
>
<
DatePicker
mode=
"date"
className=
"send-date-style"
{
...
getFieldProps
('
endtime
')}
>
<
List
.
Item
arrow=
"horizontal"
>
登记日期
</
List
.
Item
>
</
DatePicker
>
<
List
.
Item
extra=
"11111"
>
登记人
</
List
.
Item
>
<
DatePicker
mode=
"date"
className=
"send-date-style"
{
...
getFieldProps
('
endtime2
')}
>
<
List
.
Item
arrow=
"horizontal"
>
发布日期
</
List
.
Item
>
</
DatePicker
>
<
DatePicker
mode=
"date"
className=
"send-date-style"
{
...
getFieldProps
('
endtime3
')}
>
<
List
.
Item
arrow=
"horizontal"
>
有效期
</
List
.
Item
>
</
DatePicker
>
<
TextareaItem
title=
"内容"
placeholder=
"请输入内容"
{
...
getFieldProps
('
_mail_editor_text
')}
rows=
{
4
}
/>
{
/*正文*/
}
<
div
className=
"am-textarea-label upload-title"
>
附件:
</
div
>
<
WingBlank
>
{
upload
.
length
>
0
&&
upload
.
map
((
item
,
index
)
=>
(
<
MailA
key=
{
index
}
data=
{
item
}
onDelete=
{
uploadDelete
}
/>
))
}
</
WingBlank
>
<
Upload
className=
"auto-upload"
{
...
uploaderProps
}
>
<
a
className=
"auto-upload"
>
上传附件 +
</
a
>
</
Upload
>
<
WhiteSpace
/>
</
List
>
<
div
className=
"event-footer"
>
<
div
className=
"event-footer-button"
onClick=
{
onSubmit
}
>
发送
</
div
>
</
div
>
</
form
>
</
div
>
);
};
export
default
createForm
()(
Send
);
src/pages/Work/components/Receive.jsx
0 → 100644
View file @
b3078cec
import
React
,
{
useState
}
from
'react'
;
import
{
createForm
}
from
'rc-form'
;
import
axiosRequest
from
"../../../utils/request"
;
import
{
DatePicker
,
List
,
TextareaItem
,
WhiteSpace
,
WingBlank
,
Picker
,
InputItem
}
from
"antd-mobile"
;
import
MailA
from
'../../../components/Adjunct/MailA'
import
Upload
from
'rc-upload'
;
import
'./index.less'
const
Send
=
(
props
)
=>
{
const
{
getFieldProps
}
=
props
.
form
;
const
onSubmit
=
()
=>
{
props
.
form
.
validateFields
({
force
:
true
},
(
error
)
=>
{
if
(
!
error
)
{
const
values
=
props
.
form
.
getFieldsValue
();
console
.
log
(
values
);
axiosRequest
({
method
:
'post'
,
url
:
'/idtAppServiceV6/application/interfaces/addCalendar.jsp'
,
body
:
values
,
}).
then
(
res
=>
{});
}
});
};
const
district
=
[
{
label
:
'111'
,
value
:
'111'
}
];
const
[
upload
,
setUpload
]
=
useState
([]);
const
[
upload2
,
setUpload2
]
=
useState
([]);
const
uploaderProps
=
{
multiple
:
true
,
beforeUpload
(
file
)
{
const
newUpload
=
[...
upload
,
file
];
setUpload
(
newUpload
);
return
false
}
};
const
uploadDelete
=
uid
=>
{
const
newData
=
[...
upload
];
const
Index
=
newData
.
findIndex
(
item
=>
item
.
uid
===
uid
);
Index
>
-
1
&&
newData
.
splice
(
Index
,
1
);
setUpload
(
newData
)
};
const
uploaderProps2
=
{
multiple
:
true
,
beforeUpload
(
file
)
{
const
newUpload
=
[...
upload2
,
file
];
setUpload2
(
newUpload
);
return
false
}
};
const
uploadDelete2
=
uid
=>
{
const
newData
=
[...
upload2
];
const
Index
=
newData
.
findIndex
(
item
=>
item
.
uid
===
uid
);
Index
>
-
1
&&
newData
.
splice
(
Index
,
1
);
setUpload2
(
newData
)
}
return
(
<
div
>
<
form
>
<
List
className=
"send-content"
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss11
')}
>
<
List
.
Item
arrow=
"horizontal"
>
来文单位
</
List
.
Item
>
</
Picker
>
<
InputItem
{
...
getFieldProps
('
s1111
')}
>
文件字号
</
InputItem
>
<
InputItem
{
...
getFieldProps
('
s2
')}
>
文件标题
</
InputItem
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss1
')}
>
<
List
.
Item
arrow=
"horizontal"
>
文件类别
</
List
.
Item
>
</
Picker
>
<
DatePicker
className=
"send-date-style"
{
...
getFieldProps
('
endtime
')}
>
<
List
.
Item
arrow=
"horizontal"
>
收文日期
</
List
.
Item
>
</
DatePicker
>
<
InputItem
{
...
getFieldProps
('
s121
')}
>
收文编号
</
InputItem
>
<
InputItem
{
...
getFieldProps
('
s1
')}
>
份数
</
InputItem
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss1
')}
>
<
List
.
Item
arrow=
"horizontal"
>
文件密级
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss2
')}
>
<
List
.
Item
arrow=
"horizontal"
>
紧急程度
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss3
')}
>
<
List
.
Item
arrow=
"horizontal"
>
经办人
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss4
')}
>
<
List
.
Item
arrow=
"horizontal"
>
联系电话
</
List
.
Item
>
</
Picker
>
<
TextareaItem
title=
"拟办意见"
placeholder=
"请输入拟办意见"
{
...
getFieldProps
('
_mail_editor_text
')}
rows=
{
4
}
/>
{
/*正文*/
}
<
div
className=
"am-textarea-label upload-title"
>
正文:
</
div
>
<
WingBlank
>
{
upload
.
length
>
0
&&
upload
.
map
((
item
,
index
)
=>
(
<
MailA
key=
{
index
}
data=
{
item
}
onDelete=
{
uploadDelete
}
/>
))
}
</
WingBlank
>
<
Upload
className=
"auto-upload"
{
...
uploaderProps
}
>
<
a
className=
"auto-upload"
>
上传正文 +
</
a
>
</
Upload
>
{
/*<WhiteSpace/>*/
}
{
/*附件*/
}
<
div
className=
"am-textarea-label upload-title"
>
附件:
</
div
>
<
WingBlank
>
{
upload2
.
length
>
0
&&
upload2
.
map
((
item
,
index
)
=>
(
<
MailA
key=
{
index
}
data=
{
item
}
onDelete=
{
uploadDelete2
}
/>
))
}
</
WingBlank
>
<
Upload
className=
"auto-upload"
{
...
uploaderProps2
}
>
<
a
className=
"auto-upload"
>
上传附件 +
</
a
>
</
Upload
>
<
WhiteSpace
/>
</
List
>
<
div
className=
"event-footer"
>
<
div
className=
"event-footer-button"
onClick=
{
onSubmit
}
>
发送
</
div
>
</
div
>
</
form
>
</
div
>
);
};
export
default
createForm
()(
Send
);
src/pages/Work/components/Send.jsx
0 → 100644
View file @
b3078cec
import
React
,
{
useState
}
from
'react'
;
import
{
createForm
}
from
'rc-form'
;
import
axiosRequest
from
"../../../utils/request"
;
import
{
DatePicker
,
List
,
TextareaItem
,
WhiteSpace
,
WingBlank
,
Picker
,
InputItem
,
Switch
}
from
"antd-mobile"
;
import
MailA
from
'../../../components/Adjunct/MailA'
import
Upload
from
'rc-upload'
;
import
'./index.less'
const
Send
=
(
props
)
=>
{
const
{
getFieldProps
,
setFieldsValue
}
=
props
.
form
;
const
onSubmit
=
()
=>
{
props
.
form
.
validateFields
({
force
:
true
},
(
error
)
=>
{
if
(
!
error
)
{
const
values
=
props
.
form
.
getFieldsValue
();
console
.
log
(
values
);
axiosRequest
({
method
:
'post'
,
url
:
'/idtAppServiceV6/application/interfaces/addCalendar.jsp'
,
body
:
values
,
}).
then
(
res
=>
{});
}
});
};
const
district
=
[
{
label
:
'111'
,
value
:
'111'
}
];
const
[
upload
,
setUpload
]
=
useState
([]);
const
[
upload2
,
setUpload2
]
=
useState
([]);
const
uploaderProps
=
{
multiple
:
true
,
beforeUpload
(
file
)
{
const
newUpload
=
[...
upload
,
file
];
setUpload
(
newUpload
);
return
false
}
};
const
uploadDelete
=
uid
=>
{
const
newData
=
[...
upload
];
const
Index
=
newData
.
findIndex
(
item
=>
item
.
uid
===
uid
);
Index
>
-
1
&&
newData
.
splice
(
Index
,
1
);
setUpload
(
newData
)
};
const
uploaderProps2
=
{
multiple
:
true
,
beforeUpload
(
file
)
{
const
newUpload
=
[...
upload2
,
file
];
setUpload2
(
newUpload
);
return
false
}
};
const
uploadDelete2
=
uid
=>
{
const
newData
=
[...
upload2
];
const
Index
=
newData
.
findIndex
(
item
=>
item
.
uid
===
uid
);
Index
>
-
1
&&
newData
.
splice
(
Index
,
1
);
setUpload2
(
newData
)
}
return
(
<
div
>
<
form
>
<
List
className=
"send-content"
>
<
InputItem
{
...
getFieldProps
('
s1
')}
>
标题
</
InputItem
>
<
InputItem
{
...
getFieldProps
('
s2
')}
>
拟稿人
</
InputItem
>
<
InputItem
{
...
getFieldProps
('
s3
')}
>
拟稿电话
</
InputItem
>
<
InputItem
{
...
getFieldProps
('
s4
')}
>
拟稿部门
</
InputItem
>
<
DatePicker
className=
"send-date-style"
{
...
getFieldProps
('
endtime
')}
>
<
List
.
Item
arrow=
"horizontal"
>
拟稿日期
</
List
.
Item
>
</
DatePicker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss1
')}
>
<
List
.
Item
arrow=
"horizontal"
>
核稿人
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss2
')}
>
<
List
.
Item
arrow=
"horizontal"
>
复核人
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss3
')}
>
<
List
.
Item
arrow=
"horizontal"
>
紧急程度
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss4
')}
>
<
List
.
Item
arrow=
"horizontal"
>
密级
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss5
')}
>
<
List
.
Item
arrow=
"horizontal"
>
公开属性
</
List
.
Item
>
</
Picker
>
<
List
.
Item
extra=
{
<
Switch
{
...
getFieldProps
('
Switch1
',
{
initialValue
:
true
,
valuePropName
:
'
checked
',
})}
onClick=
{
(
checked
)
=>
setFieldsValue
({
Switch1
:
checked
,})
}
/>
}
>
是否解读
</
List
.
Item
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss6
')}
>
<
List
.
Item
arrow=
"horizontal"
>
文种
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss7
')}
>
<
List
.
Item
arrow=
"horizontal"
>
主送机关
</
List
.
Item
>
</
Picker
>
<
Picker
data=
{
district
}
cols=
{
1
}
{
...
getFieldProps
('
ss8
')}
>
<
List
.
Item
arrow=
"horizontal"
>
抄送机关
</
List
.
Item
>
</
Picker
>
<
TextareaItem
title=
"拟办意见"
placeholder=
"请输入拟办意见"
{
...
getFieldProps
('
_mail_editor_text
')}
rows=
{
4
}
/>
{
/*正文*/
}
<
div
className=
"am-textarea-label upload-title"
>
正文:
</
div
>
<
WingBlank
>
{
upload
.
length
>
0
&&
upload
.
map
((
item
,
index
)
=>
(
<
MailA
key=
{
index
}
data=
{
item
}
onDelete=
{
uploadDelete
}
/>
))
}
</
WingBlank
>
<
Upload
className=
"auto-upload"
{
...
uploaderProps
}
>
<
a
className=
"auto-upload"
>
上传正文 +
</
a
>
</
Upload
>
{
/*<WhiteSpace/>*/
}
{
/*附件*/
}
<
div
className=
"am-textarea-label upload-title"
>
附件:
</
div
>
<
WingBlank
>
{
upload2
.
length
>
0
&&
upload2
.
map
((
item
,
index
)
=>
(
<
MailA
key=
{
index
}
data=
{
item
}
onDelete=
{
uploadDelete2
}
/>
))
}
</
WingBlank
>
<
Upload
className=
"auto-upload"
{
...
uploaderProps2
}
>
<
a
className=
"auto-upload"
>
上传附件 +
</
a
>
</
Upload
>
<
WhiteSpace
/>
</
List
>
<
div
className=
"event-footer"
>
<
div
className=
"event-footer-button"
onClick=
{
onSubmit
}
>
发送
</
div
>
</
div
>
</
form
>
</
div
>
);
};
export
default
createForm
()(
Send
);
src/pages/Work/components/index.less
0 → 100644
View file @
b3078cec
@import "../../../variable.less";
.am-list-item .am-list-line .am-list-content{
font-size: 17px !important;
}
.send-content{
position: relative;
top: 10px;
margin-bottom: 60px;
}
.am-switch input[type="checkbox"]:checked + .checkbox{
background: @primary !important;
}
.am-list-item .am-list-line .am-list-extra{
flex: 1;
}
.auto-flex .am-list-line .am-list-extra{
flex: 2.5;
}
.auto-flex-2 .am-list-line .am-list-extra{
flex: 2;
}
.am-list-item .am-input-control input{
text-align: right;
}
.meet-select-btn{
display: flex;
align-items: center;
justify-content: center;
width: 100px;
padding: 4px 7px;
border-radius: 4px;
letter-spacing: 2px;
font-size: 14px !important;
background: rgba(239, 154, 54, 1);
color: #ffffff;
}
.meet-select-btn:active{
background: rgba(239, 154, 54, 0.8);
color: #ffffff;
}
.auto-time-select{
display: flex;
justify-content: space-between;
}
.time-meeting{
width: 70px;
text-align: center;
padding: 4px 13px;
background: rgba(255, 249, 249, 1);
}
.good-btn-content{
display: flex;
justify-content: space-between;
}
.good-btn{
width: 60px;
border-radius: 4px;
padding: 4px 13px;
display: flex;
justify-content: center;
align-items: center;
color: #ffffff;
}
.c-primary{
background: @primary;
}
.c-orange{
background: rgba(239, 154, 54, 0.8);
}
.c-gray{
background: rgba(151, 151, 151, 1) !important;
color: #ffffff !important;
}
.gray-button{
background: rgba(151, 151, 151, 1) !important;
color: #ffffff !important;
margin-right: 12px;
}
.good-item-content{
display: flex;
justify-content: space-between;
align-items: center;
width: 261px;
height: 43.9px;
padding: 0 15px;
}
.am-checkbox-agree{
padding: 0 !important;
}
.mt-10{
margin-top: 10px;
}
.good-item-box {
border: 1px solid rgba(0, 0, 0, 0.12);
border-radius: 5px;
}
src/pages/Work/index.less
View file @
b3078cec
...
...
@@ -6,6 +6,7 @@
}
.notice-box-content{
position: relative;
bottom: 50px;
}
.extra-content{
height: 40px;
...
...
src/router.js
View file @
b3078cec
...
...
@@ -6,6 +6,7 @@ import CommonLayout from './layout/CommonLayout';
import
Backlog
from
'./pages/Backlog/Backlog'
import
Work
from
'./pages/Work/Work'
import
WorkDetail
from
'./pages/Work/WorkDetail'
import
WorkAdd
from
'./pages/Work/AddWork'
import
Notice
from
'./pages/Notice/Notice'
import
AddressBook
from
'./pages/Communicate/AddressBook'
;
import
NewAddress
from
'./pages/Communicate/NewAddress'
;
...
...
@@ -49,6 +50,7 @@ const ReactRouter = () => {
<
Route
path
=
"/blank/application/:id/:uuid/:FLOWTBID"
component
=
{
Application
}
/
>
<
Route
path
=
"/blank/work/:type/:name"
component
=
{
WorkDetail
}
/
>
<
Route
path
=
"/blank/work-add/:name"
component
=
{
WorkAdd
}
/
>
<
Route
path
=
"/blank/submit/:flowNodeId/:uuid/:flowTbId"
component
=
{
SubmitDetail
}
/
>
<
Route
path
=
"/blank/info/:id/:uuid/:FLOWTBID"
component
=
{
Process
}
/
>
<
/BlankLayout
>
...
...
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