情况是这样的,之前接到一个外包项目,前端做了三分之一左右的工作,然后项目中断了一段时间,现在那个前端没时间参与了,所以我想在 v2 找个有兴趣的前端工程师来合作,工期大约一个月,框架:react+webpack+dva,有意请加 weixin:chy447648 ——注明:reactjs 外包
1
wxsm 2017-12-26 09:38:45 +08:00
推倒重来的要不要,超烦半路接手
|
2
rover5056 2017-12-26 10:13:08 +08:00
我也觉得。。
半路接手真的神烦。。 天天要揣摩他是怎么写的。。。 |
3
winglight2016 OP @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) ··· |
4
Manweill 2017-12-26 11:04:23 +08:00
能不能推倒重来,react+dva+antd 全家桶专业户
|
5
kuxuan 2017-12-26 12:38:20 +08:00
不喜欢用 dva 啊。
|
6
wxsm 2017-12-26 13:02:32 +08:00
@winglight2016
既然推倒重来不是事,那也没必要限制 react 技术栈吧。 至于时间、风险跟成本: * 对陌生项目来说,重新开始一定比从 1/3 开始省时; * 你找外包永远都会有风险,主要看你找的人靠不靠谱而已; * 如果你要求一个开发者半路接手,你觉得你可以省下一些成本(因为别人只需完成剩下的 2/3 ),实际上开发者却要付出比 3/3 更多的劳动。 |
7
vicvinc 2017-12-27 01:37:25 +08:00 via iPhone
这应该是 ant design pro 那套东西,楼主可以联系下~
|