熟悉 reactjs、dva 的哥们请进(外包项目)

2017-12-26 09:31:08 +08:00
 winglight2016

情况是这样的,之前接到一个外包项目,前端做了三分之一左右的工作,然后项目中断了一段时间,现在那个前端没时间参与了,所以我想在 v2 找个有兴趣的前端工程师来合作,工期大约一个月,框架:react+webpack+dva,有意请加 weixin:chy447648 ——注明:reactjs 外包

3195 次点击
所在节点    程序员
7 条回复
wxsm
2017-12-26 09:38:45 +08:00
推倒重来的要不要,超烦半路接手
rover5056
2017-12-26 10:13:08 +08:00
我也觉得。。
半路接手真的神烦。。
天天要揣摩他是怎么写的。。。
winglight2016
2017-12-26 10:53:55 +08:00
@wxsm
@rover5056
推倒重来不是个事儿,但是涉及时间、成本和风险,我觉得要慎重衡量,我贴一段代码,你们可以参考一下:

···
import React from 'react'
import {Modal, Form} from 'components'
import {
Input,
Radio,
InputNumber,
DatePicker,
Table,
Popover,
Cascader
} from 'antd'
import {Operation} from 'components'
import moment from 'moment'
const RadioButton = Radio.Button;
const RadioGroup = Radio.Group;
import {china_area_data} from 'utils'

const modal = ({
onOk,
onAudit,
payload = {}
}) => {
const {type, data} = payload
const handleAudit = (key, event, record) => {
let values = {
uid: payload.uid,
isAgree: key === 'agree',
comment: '',
aid: record.id
}
onAudit(values)
}
const columns = [
{
title: '审核名称',
dataIndex: 'name'
}, {
title: '审核类型',
width: 100,
dataIndex: 'auditTypeEnum',
render: text => ['实名审核', '快递协议审核', '提现审核', '分仓任务审核'][text]
}, {
title: '审核内容',
width: 220,
dataIndex: 'content',
render: text =>< Popover content = {
text
} > <a href='#' style={{
maxWidth: '200px',
display: 'inline-block',
whiteSpace: 'nowrap',
overflow: 'hidden',
textOverflow: 'ellipsis'
}}>{text}</a>
</Popover>
}, {
title: '更新时间',
width: 140,
dataIndex: 'lastUpdateTime'
}, {
title: '审核',
width: 120,
render: (text, record) =>< Operation options = {
[
{
name: '同意',
key: 'agree'
}, {
name: '拒绝',
key: 'refuse',
confirm: <Input placeholder='理由'/>
}
]
}
onClick = {
(key, event) => handleAudit(key, event, record)
} />
}
]
const handleOk = (close, form) => {
form.validateFields((err, values) => {
if (!err) {
values.birth = values.birth
? values.birth.format('YYYY-MM-DD')
: undefined
if (values.area.length == 3) {
values.province = values.area[0],
values.city = values.area[1],
values.zone = values.area[2]
delete values.area
} else if (values.area.length == 2) {
values.province = ''
values.city = values.area[0]
values.zone = values.area[1]
delete values.area
}
for (let key in values) {
if (values[key] === undefined || values[key] === null) {
delete values[key]
}
}
onOk(values, type)
close()
}
})
}
return (<Modal id='modal' title={{
audit: '审核',
update: '更新'
}[type]} onOk={handleOk} width={type == 'audit'
? 800
: 416}>
{
type == 'update'
? (<Form labelCol={4}>
<InputNumber name='id' initialValue={data.id} hidden="hidden"/>
<Input name='name' initialValue={data.name} label='昵称' placeholder='昵称'/>
<Input name='shopName' initialValue={data.shopName} label='店铺名称' placeholder='店铺名称'/>
<Cascader name='area' initialValue={[data.province, data.city, data.zone]} options={china_area_data} placeholder="地址" label='地址' type='array'/>
<Input name='address' initialValue={data.address} label='详细地址' placeholder='详细地址'/>
<DatePicker name='birth' initialValue={data.birth && moment(data.birth)} type='object' label='生日' placeholder='生日' style={{
width: '100%'
}}/>
<RadioGroup name='sexEnum' label='性别' initialValue={data.sexEnum} type='number' prefixCls='ant-radio-group'>
<RadioButton value={1}>男</RadioButton>
<RadioButton value={2}>女</RadioButton>
</RadioGroup>
</Form>)
: ''
}{
type == 'audit'
? <Table columns={columns} dataSource={data} size="middle" pagination={false} scroll={{
y: 440
}} rowKey={record => record.id}/>
: ''
}
</Modal>)
}

export default Modal.connect('modal')(modal)
···
Manweill
2017-12-26 11:04:23 +08:00
能不能推倒重来,react+dva+antd 全家桶专业户
kuxuan
2017-12-26 12:38:20 +08:00
不喜欢用 dva 啊。
wxsm
2017-12-26 13:02:32 +08:00
@winglight2016

既然推倒重来不是事,那也没必要限制 react 技术栈吧。

至于时间、风险跟成本:

* 对陌生项目来说,重新开始一定比从 1/3 开始省时;
* 你找外包永远都会有风险,主要看你找的人靠不靠谱而已;
* 如果你要求一个开发者半路接手,你觉得你可以省下一些成本(因为别人只需完成剩下的 2/3 ),实际上开发者却要付出比 3/3 更多的劳动。
vicvinc
2017-12-27 01:37:25 +08:00
这应该是 ant design pro 那套东西,楼主可以联系下~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/417606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX