liting2017 лет назад: 7
Родитель
Сommit
a0c3c400cf

+ 39 - 3
js/component/manageCenter/order/departmentOrder/servicesOrder/addService.jsx

@@ -277,6 +277,7 @@ const NewService = Form.create()(React.createClass({
 						signTotalAmount:this.state.signTotalAmount,
 						signFirstPayment:this.state.signFirstPayment,
 						orderRemarks:this.state.orderRemarks,
+						contractNo:this.state.contractNo
 						//headPortraitUrl:theorgCodeUrl.length?theorgCodeUrl:'',
 					}
 				}).done(function(data) {
@@ -326,6 +327,7 @@ const NewService = Form.create()(React.createClass({
                		//签单
                		orderNo:thisData.orderNo,//订单编号
                		buyerName:thisData.buyerName,
+               		contractNo:thisData.contractNo
                 });
             }.bind(this),
        }).always(function () {
@@ -440,9 +442,14 @@ const NewService = Form.create()(React.createClass({
     },
     //签单
     signBitt(){
-    	this.setState({
-    		signVisible:true
-    	})
+    	if(this.state.contractNo){
+    		this.setState({
+    			contractNo:this.state.contractNo,
+    			signVisible:true
+    		})
+    	}else{
+    		message.warning("请输入合同编号!")
+    	}
     },
     signBittOk(){
     	this.setState({
@@ -612,6 +619,7 @@ const NewService = Form.create()(React.createClass({
 				signFirstPayment:this.state.signFirstPayment,
 				approval:this.state.approval,
 				orderRemarks:this.state.orderRemarks,
+				contractNo:this.state.contractNo
 			}
 		}).done(function(data) {
 			this.setState({
@@ -639,6 +647,10 @@ const NewService = Form.create()(React.createClass({
 			message.warning('实签首款不能为空!')
 			return false;
 		};
+		if(!this.state.contractNo){
+			message.warning("请输入合同编号!");
+			return false;
+		}
 		this.setState({
 			loading: true
 		});
@@ -654,6 +666,7 @@ const NewService = Form.create()(React.createClass({
 				signFirstPayment:this.state.signFirstPayment,
 				approval:this.state.approval,
 				orderRemarks:this.state.orderRemarks,
+				contractNo:this.state.contractNo
 			}
 		}).done(function(data) {
 			this.setState({
@@ -842,6 +855,12 @@ const NewService = Form.create()(React.createClass({
 								                            label="特批立项" >  
 								                            <span>{getApprovedState(this.state.approval)}</span>
 							                    		</FormItem>
+							                    		<FormItem className="half-item"
+									                            {...formItemLayout}
+									                            label="合同编号" >                             
+								                                    <Input placeholder="请输入合同编号" 
+								                                    	onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'240px'}} />
+									                    </FormItem>
 							                    		<div className='clearfix'>
 												            <FormItem
 												                labelCol={{ span: 4 }}
@@ -880,6 +899,11 @@ const NewService = Form.create()(React.createClass({
 								                            label="特批立项" >   
 								                            <span>{getApprovedState(orderDetaiel.approval)}</span>
 							                    		</FormItem>
+							                    		<FormItem className="half-item"
+								                            {...formItemLayout}
+								                            label="合同编号" >   
+								                            <span>{orderDetaiel.contractNo}</span>
+							                    		</FormItem>
 														<div className="clearfix">
 															<FormItem
 										                        labelCol={{ span: 4 }}
@@ -917,6 +941,11 @@ const NewService = Form.create()(React.createClass({
 							                            label="订单负责人" >  
 							                            <span>{orderDetaiel.salesmanName}</span>
 						                    		</FormItem>
+						                    		<FormItem className="half-item"
+							                            {...formItemLayout}
+							                            label="业务品类" >  
+							                            <span>{orderDetaiel.projectType}</span>
+						                    		</FormItem>
 						                    	</div>
 						                    	<div className='clearfix'>
 						                    		<FormItem className="half-item"
@@ -1159,6 +1188,13 @@ const NewService = Form.create()(React.createClass({
 						                        </Select>
 					                    		<span className="mandatory">*</span>
 						                </FormItem>
+						                <FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >                             
+				                                    <Input placeholder="请输入合同编号" 
+				                                    	onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'200px'}} />
+					                    		<span className="mandatory">*</span>
+					                    </FormItem>
 						                <div className='clearfix'>
 								        	<FormItem
 									            labelCol={{ span: 4 }}

+ 0 - 419
js/component/manageCenter/order/memberOrderList.jsx

@@ -1,419 +0,0 @@
-import React from 'react';
-import { Icon, Button, Input, Select, Spin, Table, message, DatePicker, Modal, InputNumber, Radio } from 'antd';
-import ajax from 'jquery/src/ajax/xhr.js';
-import $ from 'jquery/src/ajax';
-import './content.less';
-import moment from 'moment';
-import { getTime } from '../../tools';
-
-
-const OrderList = React.createClass({
-    loadData (pageNo) {
-        this.state.data = [];
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "get",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/member/selectMemberOrderBa",
-            data: {
-                pageNo: pageNo || 1,
-                pageSize: this.state.pagination.pageSize,
-                id: this.state.searchOrderNumber,
-                nickname: this.state.searchName,
-                mobile: this.state.searchAftNumber,
-                orderState: this.state.searchOrderStatus, //支付状态 0,1
-                startTime: this.state.searchTime[0],
-                endTime: this.state.searchTime[1]
-            },
-            success: function (data) {
-                if (!data.data || !data.data.list) {
-                    if (data.error && data.error.length) {
-                        message.warning(data.error[0].message);
-                    };
-                } else {
-                    for (let i = 0; i < data.data.list.length; i++) {
-                        let thisdata = data.data.list[i];
-                        this.state.data.push({
-                            key: i,
-                            id: thisdata.id,
-                            formattedOrderTime: thisdata.formattedOrderTime,
-                            formattedPaymentTime: thisdata.formattedPaymentTime,
-                            formattedValidTime: thisdata.formattedValidTime,
-                            gradeName: thisdata.gradeName,
-                            menberType: thisdata.menberType,
-                            nickname: thisdata.nickname,
-                            mobile: thisdata.mobile,
-                            orderState: thisdata.orderState,
-                            orderTime: thisdata.orderTime,
-                            paymentId: thisdata.paymentId,
-                            paymentTime: thisdata.paymentTime,
-                            paymentType: thisdata.paymentType,
-                            paymentValue: thisdata.paymentValue,
-                            price: thisdata.price,
-                            userId: thisdata.userId,
-                            validMonth: thisdata.validMonth,
-                            validTime: thisdata.validTime,
-                        });
-                    };
-                    this.state.pagination.current = data.data.pNo;
-                    this.state.pagination.total = data.data.countWhere;
-                };
-                this.setState({
-                    dataSource: this.state.data,
-                    pagination: this.state.pagination
-                });
-            }.bind(this),
-        }).always(function () {
-            this.setState({
-                loading: false
-            });
-        }.bind(this));
-    },
-    getInitialState () {
-        return {
-            searchMore: true,
-            data: [],
-            modalData: {},
-            visible: false,
-            delVisible: false,
-            searchTime: [],
-            loading: false,
-            selectedRowKeys: [],
-            selectedRows: [],
-            pagination: {
-                defaultCurrent: 1,
-                defaultPageSize: 10,
-                showQuickJumper: true,
-                pageSize: 10,
-                onChange: function (page) {
-                    this.loadData(page);
-                }.bind(this),
-                showTotal: function (total) {
-                    return '共' + total + '条数据';
-                }
-            },
-            columns: [
-                {
-                    title: '订单编号',
-                    dataIndex: 'id',
-                    key: 'id',
-                }, {
-                    title: '账号',
-                    dataIndex: 'mobile',
-                    key: 'mobile',
-                }, {
-                    title: '认证名称',
-                    dataIndex: 'nickname',
-                    key: 'nickname',
-                }, {
-                    title: '会员类型',
-                    dataIndex: 'gradeName',
-                    key: 'gradeName',
-                }, {
-                    title: '订单状态',
-                    dataIndex: 'orderState',
-                    key: 'orderState',
-                    render: (text) => {
-                        if (text == 1) {
-                            return '已支付'
-                        } else {
-                            return '未支付'
-                        };
-                    }
-                }, {
-                    title: '生成时间',
-                    dataIndex: 'formattedOrderTime',
-                    key: 'formattedOrderTime',
-                }, {
-                    title: '支付时间',
-                    dataIndex: 'formattedPaymentTime',
-                    key: 'formattedPaymentTime',
-                }, {
-                    title: '有效时间',
-                    dataIndex: 'formattedValidTime',
-                    key: 'formattedValidTime',
-                    render: (index, record) => {
-                        if (record.paymentTime && record.validMonth && record.orderState == 1) {
-                            return getTime(record.paymentTime) + ' -- ' + getTime(record.paymentTime, record.validMonth)
-                        }
-                    }
-                }
-            ],
-            dataSource: []
-        };
-    },
-    componentWillMount () {
-        this.loadData();
-    },
-    search () {
-        this.loadData();
-    },
-    reset () {
-        this.state.searchOrderNumber = undefined;
-        this.state.searchAftNumber = undefined;
-        this.state.searchOrderStatus = undefined;
-        this.state.searchName = undefined;
-        this.state.searchTime = [];
-        this.loadData();
-    },
-    submit () {
-        if (this.state.modalData.paymentType == 1 && !this.state.modalData.formattedPaymentTime) {
-            message.warning('状态为已支付时支付时间必填');
-            return
-        }
-        this.setState({ loading: true });
-        $.ajax({
-            method: "post",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/member/updateMemberOrder",
-            data: {
-                id: this.state.modalData.id,
-                userId: this.state.modalData.userId,
-                memberRank: this.state.modalData.menberType,
-                validMonth: this.state.modalData.validMonth,
-                paymentValue: this.state.modalData.paymentValue,
-                orderState: this.state.modalData.orderState,
-                paymentTime: this.state.modalData.formattedPaymentTime,
-                paymentType: this.state.modalData.paymentType,
-                paymentId: this.state.modalData.paymentId
-            }
-        }).done(function (data) {
-            if (!data.error.length) {
-                message.success('保存成功!');
-                this.setState({ loading: false, visible: false });
-                this.loadData();
-            } else {
-                message.warning(data.error[0].message);
-            }
-        }.bind(this)).always(function () {
-            this.setState({ loading: false });
-        }.bind(this));
-    },
-    tableRowClick (record, index) {
-        let theObj = {};
-        for (let item in record) {
-            theObj[item] = record[item]
-        }
-        this.state.modalData = theObj;
-        this.setState({ visible: true });
-    },
-    deleteRow () {
-        let deletedId;
-        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
-            let rowItem = this.state.selectedRows[idx];
-            if (rowItem.orderState !== 0) {
-                message.warning('订单状态不是未支付,无法删除!');
-                this.setState({ delVisible: false });
-                return;
-            }
-            if (rowItem.id) {
-                deletedId = rowItem.id
-            };
-        };
-        this.setState({
-            selectedRowKeys: [],
-            loading: deletedId.length > 0
-        });
-        $.ajax({
-            method: "POST",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/member/delMemberOrder",
-            data: {
-                id: deletedId
-            }
-        }).done(function (data) {
-            if (!data.error.length) {
-                message.success('删除成功!');
-            } else {
-                message.warning(data.error[0].message);
-            };
-            this.setState({
-                loading: false,
-                delVisible: false
-            });
-            this.loadData();
-        }.bind(this));
-    },
-    render () {
-        const rowSelection = {
-            selectedRowKeys: this.state.selectedRowKeys,
-            onChange: (selectedRowKeys, selectedRows) => {
-                this.setState({
-                    selectedRows: selectedRows.slice(-1),
-                    selectedRowKeys: selectedRowKeys.slice(-1)
-                });
-            }
-        };
-        const hasSelected = this.state.selectedRowKeys.length > 0;
-        const { RangePicker } = DatePicker;
-        const Option = Select.Option;
-        return (
-            <div className="user-content" >
-                <div className="content-title">
-                    <span>会员订单列表</span>
-                </div>
-                <div className="user-search">
-                    <Input placeholder="订单编号" value={this.state.searchOrderNumber}
-                        onChange={(e) => { this.setState({ searchOrderNumber: e.target.value }); }} />
-                    <Input placeholder="用户账号" value={this.state.searchAftNumber}
-                        onChange={(e) => { this.setState({ searchAftNumber: e.target.value }); }} />
-                    <Input placeholder="认证名称" value={this.state.searchName}
-                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
-                    <Select placeholder="订单状态" value={this.state.searchOrderStatus} style={{ width: 120 }}
-                        onChange={(e) => { this.setState({ searchOrderStatus: e }) }}>
-                        <Option value="0">未付款</Option>
-                        <Option value="1">已付款</Option>
-                    </Select>
-                    <div className="search-div">
-                        <span>订单生成时间:</span>
-                        <RangePicker
-                            allowClear={false}
-                            value={[this.state.searchTime[0] ? moment(this.state.searchTime[0]) : null,
-                            this.state.searchTime[1] ? moment(this.state.searchTime[1]) : null]}
-                            onChange={(data, dataString) => { this.setState({ searchTime: dataString }); }} />
-                    </div>
-                    <Button type="primary" onClick={this.search}>搜索</Button>
-                    <Button onClick={this.reset}>重置</Button>
-                    <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }}
-                        disabled={!hasSelected}
-                        onClick={() => { this.setState({ delVisible: true }) }}>删除<Icon type="minus" /></Button>
-                </div>
-                <div className="patent-table">
-                    <Spin spinning={this.state.loading}>
-                        <Table className="no-all-select"
-                            columns={this.state.columns}
-                            dataSource={this.state.dataSource}
-                            rowSelection={rowSelection}
-                            pagination={this.state.pagination}
-                            onRowClick={this.tableRowClick} />
-                    </Spin>
-                </div>
-                <Modal title="订单详情" width={600} className="activity-modal"
-                    visible={this.state.visible}
-                    maskClosable={false}
-                    footer={null}
-                    afterClose={() => { this.state.modalData = {}; }}
-                    onCancel={() => { this.setState({ visible: false }) }} >
-                    <Spin spinning={this.state.loading}>
-                        <div className="clearfix">
-                            <div className="modal-box">
-                                <span className="modal-box-title">会员等级</span>
-                                <div className="modal-box-detail">
-                                    <Select placeholder="选择会员等级"
-                                        style={{ width: 120 }}
-                                        value={this.state.modalData.menberType ? this.state.modalData.menberType.toString() : undefined}
-                                        onChange={(e) => {
-                                            this.state.modalData.menberType = e;
-                                            this.setState({ modalData: this.state.modalData });
-                                        }}>
-                                        <Select.Option value="1">Lv.1</Select.Option>
-                                        <Select.Option value="2">Lv.2</Select.Option>
-                                        <Select.Option value="3">Lv.3</Select.Option>
-                                        <Select.Option value="4">Lv.4</Select.Option>
-                                        <Select.Option value="5">Lv.5</Select.Option>
-                                    </Select>
-                                </div>
-                            </div>
-                            <div className="modal-box">
-                                <span className="modal-box-title">会员时长</span>
-                                <div className="modal-box-detail" style={{ width: '160px' }}>
-                                    <InputNumber value={this.state.modalData.validMonth} step={1} onChange={(e) => {
-                                        this.state.modalData.validMonth = e;
-                                        this.setState({ modalData: this.state.modalData });
-                                    }} />
-                                    <span> 月</span>
-                                </div>
-                            </div>
-                            <div className="modal-box">
-                                <span className="modal-box-title">订单金额</span>
-                                <div className="modal-box-detail" style={{ width: '160px' }}>
-                                    <span>{this.state.modalData.price}</span>
-                                    <span> 元</span>
-                                </div>
-                                <span className="modal-box-title">实际支付金额</span>
-                                <div className="modal-box-detail" style={{ width: '160px' }}>
-                                    <InputNumber value={this.state.modalData.paymentValue} step={0.01} onChange={(e) => {
-                                        this.state.modalData.paymentValue = e;
-                                        this.setState({ modalData: this.state.modalData });
-                                    }} />
-                                    <span> 元</span>
-                                </div>
-                            </div>
-                            <div className="modal-box">
-                                <span className="modal-box-title">支付方式</span>
-                                <div className="modal-box-detail" style={{ width: '160px' }}>
-                                    <Input value={this.state.modalData.paymentType} onChange={(e) => {
-                                        this.state.modalData.paymentType = e.target.value;
-                                        this.setState({ modalData: this.state.modalData });
-                                    }} />
-                                </div>
-                                <span className="modal-box-title">流水号</span>
-                                <div className="modal-box-detail" style={{ width: '160px' }}>
-                                    <Input value={this.state.modalData.paymentId} onChange={(e) => {
-                                        this.state.modalData.paymentId = e.target.value;
-                                        this.setState({ modalData: this.state.modalData });
-                                    }} />
-                                </div>
-                            </div>
-                            <div className="modal-box">
-                                <span className="modal-box-title">支付状态</span>
-                                <div className="modal-box-detail">
-                                    <Radio.Group value={this.state.modalData.orderState}
-                                        onChange={(e) => {
-                                            this.state.modalData.orderState = e.target.value;
-                                            this.setState({ modalData: this.state.modalData });
-                                        }} >
-                                        <Radio value={0}>未支付</Radio>
-                                        <Radio value={1}>已支付</Radio>
-                                    </Radio.Group>
-                                </div>
-                            </div>
-                            <div className="modal-box">
-                                <span className="modal-box-title">支付时间</span>
-                                <div className="modal-box-detail">
-                                    <DatePicker style={{ width: '150px' }}
-                                        showTime
-                                        format="YYYY-MM-DD HH:mm:ss"
-                                        placeholder="选择支付时间"
-                                        value={this.state.modalData.formattedPaymentTime ? moment(this.state.modalData.formattedPaymentTime, "YYYY-MM-DD HH:mm:ss") : undefined}
-                                        onChange={(t, str) => {
-                                            this.state.modalData.formattedPaymentTime = str;
-                                            this.setState({ modalData: this.state.modalData });
-                                        }} />
-                                </div>
-                            </div>
-                        </div>
-                        <div className="modal-box" style={{ marginTop: '100px' }}>
-                            <Button type="primary" onClick={this.submit}>提交</Button>
-                            <Button type="ghost" onClick={() => { this.setState({ visible: false }) }}>取消</Button>
-                        </div>
-                    </Spin>
-                </Modal>
-                <Modal title="删除确认" width={600} className="activity-modal"
-                    visible={this.state.delVisible}
-                    maskClosable={false}
-                    footer={null}
-                    onCancel={() => { this.setState({ delVisible: false }) }} >
-                    <Spin spinning={this.state.loading}>
-                        <div className="clearfix">
-                            <div className="modal-box">
-                                <span>是否确定删除这条记录?删除后数据不可恢复!</span>
-                            </div>
-                            <div className="modal-box" >
-                                <Button type="primary" onClick={this.deleteRow}>提交</Button>
-                                <Button type="ghost" onClick={() => { this.setState({ delVisible: false }) }}>取消</Button>
-                            </div>
-                        </div>
-                    </Spin>
-                </Modal>
-            </div >
-        );
-    }
-});
-
-export default OrderList;

+ 129 - 8
js/component/manageCenter/order/myOrder/servicesOrder/addService.jsx

@@ -115,6 +115,7 @@ const NewService = Form.create()(React.createClass({
 			loading: false,
 			visible: false,
 			orgCodeUrl:[],
+			bussStats:false,
 			checkedKeys: [],
 			lookflowList:[],
 			active:{
@@ -253,11 +254,17 @@ const NewService = Form.create()(React.createClass({
         	if(this.state.orderType==undefined){
 	        	message.warning('请选择订单类型');
 	        	return false;
-	        }
+	        };
+	        
+	        if(this.state.contractType==undefined&&this.state.orderType==0){
+	        	message.warning('请选择业务品类');
+	        	return false;
+	        };
         	if(!this.state.autoId){ 
 	        	message.warning('客户名称不匹配');
 	        	return false;
         	};
+        	
         }
 		this.props.form.validateFields((err, values) => {
 			if(!err) {
@@ -272,12 +279,14 @@ const NewService = Form.create()(React.createClass({
 					url: globalConfig.context + api,
 					data: !this.props.userDetaile?{
 						uid:this.state.autoId,
-						orderType:this.state.orderType
+						orderType:this.state.orderType,
+						contractType:this.state.contractType
 					}:{
 						orderNo:this.props.datauser.orderNo,
 						signTotalAmount:this.state.signTotalAmount,
 						signFirstPayment:this.state.signFirstPayment,
 						orderRemarks:this.state.orderRemarks,
+						contractNo:this.state.contractNo
 						//headPortraitUrl:theorgCodeUrl.length?theorgCodeUrl:'',
 					}
 				}).done(function(data) {
@@ -326,6 +335,7 @@ const NewService = Form.create()(React.createClass({
                		//签单
                		orderNo:thisData.orderNo,//订单编号
                		buyerName:thisData.buyerName,
+               		contractNo:thisData.contractNo
                 });
             }.bind(this),
        }).always(function () {
@@ -445,9 +455,14 @@ const NewService = Form.create()(React.createClass({
     },
     //签单
     signBitt(){
-    	this.setState({
-    		signVisible:true
-    	})
+    	if(this.state.contractNo){
+    		this.setState({
+    			contractNo:this.state.contractNo,
+    			signVisible:true
+    		})
+    	}else{
+    		message.warning("请输入合同编号!")
+    	}
     },
     signBittOk(){
     	this.setState({
@@ -679,6 +694,7 @@ const NewService = Form.create()(React.createClass({
 				signFirstPayment:this.state.signFirstPayment,
 				approval:this.state.approval,
 				orderRemarks:this.state.orderRemarks,
+				contractNo:this.state.contractNo
 			}
 		}).done(function(data) {
 			this.setState({
@@ -706,6 +722,10 @@ const NewService = Form.create()(React.createClass({
 			message.warning('实签首款不能为空!')
 			return false;
 		};
+		if(!this.state.contractNo){
+			message.warning("请输入合同编号!");
+			return false;
+		}
 		this.setState({
 			loading: true
 		});
@@ -721,6 +741,7 @@ const NewService = Form.create()(React.createClass({
 				signFirstPayment:this.state.signFirstPayment,
 				approval:this.state.approval,
 				orderRemarks:this.state.orderRemarks,
+				contractNo:this.state.contractNo
 			}
 		}).done(function(data) {
 			this.setState({
@@ -845,6 +866,62 @@ const NewService = Form.create()(React.createClass({
             });
         }.bind(this));
     },
+    //开单选择订单类型骚操作
+    orderTypeFn(e){
+    	if(e==0){
+	    	this.setState({
+	    		bussStats:true,
+	    		orderType:e
+    		})
+    	}else{
+    		this.setState({
+    			contractType:undefined,
+	    		bussStats:false,
+	    		orderType:e
+    		})
+    	}
+    },
+    //品类数据获取
+    category(){
+    	this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/Varieties/getSuperList",
+			data: {
+				
+			},
+			success: function(data) {
+				let thedata = data.data;
+				let theArr=[];
+				if(!thedata) {
+					if(data.error && data.error.length) {
+						message.warning(data.error[0].message);
+					};
+					thedata = {};
+				}else{
+					thedata.map(function(item,index){
+						theArr.push({
+							key:index,
+							name:item.cname,
+							id:item.id,
+						})
+					})
+				}
+				this.setState({
+					contractType:undefined,
+					categoryArr:theArr,
+				})
+			}.bind(this),
+			}).always(function() {
+				this.setState({
+					loading: false
+				});
+			}.bind(this));
+    },
 	componentWillReceiveProps(nextProps) { //props改变时触发
 		this.state.visible = nextProps.showDesc;
 		this.state.signBillVisible=nextProps.signBillVisible;
@@ -855,11 +932,14 @@ const NewService = Form.create()(React.createClass({
 			this.loaduser(nextProps.datauser);
 			this.loadData(nextProps.datauser);
 		}else{
+			this.category();
 			this.setState({
 				orderType:undefined,
 				customerName:'',
 				autoId:'',
-				customerArr:[]
+				customerArr:[],
+				contractType:undefined,
+				bussStats:false
 			})
 		}
 	},
@@ -870,7 +950,8 @@ const NewService = Form.create()(React.createClass({
 			wrapperCol: { span: 14 },
 		};
 		const editFws=this.state.editFw;
-		const orderDetaiel=this.state.orderList || []
+		const categoryList=this.state.categoryArr ||[];
+		const orderDetaiel=this.state.orderList || [];
 		const dataSources=this.state.customerArr || [];
         const options = this.state.states?dataSources.map((group,index) =>
 				      <Select.Option key={index} value={group.name}>{group.name}</Select.Option>
@@ -898,7 +979,7 @@ const NewService = Form.create()(React.createClass({
 							                            <Select placeholder="请选择订单类型"
 								                            style={{ width:'200px'}}
 								                            value={this.state.orderType}
-								                            onChange={(e) => { this.setState({ orderType: e }) }}>
+								                            onChange={this.orderTypeFn}>
 								                            {
 							                                    orderType.map(function (item) {
 							                                            return <Select.Option key={item.value} >{item.key}</Select.Option>
@@ -908,6 +989,23 @@ const NewService = Form.create()(React.createClass({
 							                    		<span className="mandatory">*</span>
 							                    </FormItem>
 							                </div>
+							                {this.state.bussStats&&<div className="clearfix">
+						                    	<FormItem 
+							                            {...formItemLayout}
+							                            label="业务品类" > 
+							                            <Select placeholder="请选择业务品类"
+								                            style={{ width:'200px'}}
+								                            value={this.state.contractType}
+								                            onChange={(e)=>{this.setState({contractType:e})}}>
+								                            {
+							                                    categoryList.map(function (item) {
+							                                            return <Select.Option key={item.id} >{item.name}</Select.Option>
+							                                    })
+							                                }
+								                        </Select>
+							                    		<span className="mandatory">*</span>
+							                    </FormItem>
+							                </div>}
 							                <div className="clearfix">
 							                    <FormItem 
 							                            {...formItemLayout}
@@ -1001,6 +1099,12 @@ const NewService = Form.create()(React.createClass({
 								                            label="特批立项" >  
 								                            <span>{getApprovedState(this.state.approval)}</span>
 							                    		</FormItem>
+							                    		<FormItem className="half-item"
+									                            {...formItemLayout}
+									                            label="合同编号" >                             
+								                                    <Input placeholder="请输入合同编号" 
+								                                    	onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'240px'}} />
+									                    </FormItem>
 							                    		<div className='clearfix'>
 												            <FormItem
 												                labelCol={{ span: 4 }}
@@ -1039,6 +1143,11 @@ const NewService = Form.create()(React.createClass({
 								                            label="特批立项" >   
 								                            <span>{getApprovedState(orderDetaiel.approval)}</span>
 							                    		</FormItem>
+							                    		<FormItem className="half-item"
+								                            {...formItemLayout}
+								                            label="合同编号" >   
+								                            <span>{orderDetaiel.contractNo}</span>
+							                    		</FormItem>
 														<div className="clearfix">
 															<FormItem
 										                        labelCol={{ span: 4 }}
@@ -1076,6 +1185,11 @@ const NewService = Form.create()(React.createClass({
 							                            label="订单负责人" >  
 							                            <span>{orderDetaiel.salesmanName}</span>
 						                    		</FormItem>
+						                    		<FormItem className="half-item"
+							                            {...formItemLayout}
+							                            label="业务品类" >  
+							                            <span>{orderDetaiel.projectType}</span>
+						                    		</FormItem>
 						                    	</div>
 						                    	<div className='clearfix'>
 						                    		<FormItem className="half-item"
@@ -1325,6 +1439,13 @@ const NewService = Form.create()(React.createClass({
 						                        </Select>
 					                    		<span className="mandatory">*</span>
 						                </FormItem>
+						                <FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >                             
+				                                    <Input placeholder="请输入合同编号" 
+				                                    	onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'200px'}} />
+					                    		<span className="mandatory">*</span>
+					                    </FormItem>
 						                <div className='clearfix'>
 								        	<FormItem
 									            labelCol={{ span: 4 }}

+ 10 - 0
js/component/manageCenter/order/orderManagement/approveOrder/approveOrderDetaile.jsx

@@ -427,6 +427,11 @@ const ApproveOrderDetaile = Form.create()(React.createClass({
 					                            label="特批立项" >   
 					                            <span>{getApprovedState(orderDetaiel.approval)}</span>
 				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >   
+					                            <span>{orderDetaiel.contractNo}</span>
+				                    		</FormItem>
 											<div className="clearfix">
 												<FormItem
 							                        labelCol={{ span: 4 }}
@@ -465,6 +470,11 @@ const ApproveOrderDetaile = Form.create()(React.createClass({
 				                            label="订单负责人" >  
 				                            <span>{orderDetaiel.salesmanName}</span>
 			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="业务品类" >  
+				                            <span>{orderDetaiel.projectType}</span>
+			                    		</FormItem>
 			                    	</div>
 			                    	<div className='clearfix'>
 			                    		<FormItem className="half-item"

+ 10 - 0
js/component/manageCenter/order/orderManagement/publicOrder/publicOrderDetaile.jsx

@@ -426,6 +426,11 @@ const ApproveDetaile = Form.create()(React.createClass({
 					                            label="特批立项" >   
 					                            <span>{getApprovedState(orderDetaiel.approval)}</span>
 				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >   
+					                            <span>{orderDetaiel.contractNo}</span>
+				                    		</FormItem>
 											<div className="clearfix">
 												<FormItem
 							                        labelCol={{ span: 4 }}
@@ -464,6 +469,11 @@ const ApproveDetaile = Form.create()(React.createClass({
 				                            label="订单负责人" >  
 				                            <span>{orderDetaiel.salesmanName}</span>
 			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="业务品类" >  
+				                            <span>{orderDetaiel.projectType}</span>
+			                    		</FormItem>
 			                    	</div>
 			                    	<div className='clearfix'>
 			                    		<FormItem className="half-item"

+ 10 - 0
js/component/manageCenter/order/settlementOrder/mySettlement/mySettlementDetaile.jsx

@@ -426,6 +426,11 @@ const MySettlementDetaile = Form.create()(React.createClass({
 					                            label="特批立项" >   
 					                            <span>{getApprovedState(orderDetaiel.approval)}</span>
 				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >   
+					                            <span>{orderDetaiel.contractNo}</span>
+				                    		</FormItem>
 											<div className="clearfix">
 												<FormItem
 							                        labelCol={{ span: 4 }}
@@ -464,6 +469,11 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				                            label="订单负责人" >  
 				                            <span>{orderDetaiel.salesmanName}</span>
 			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="业务品类" >  
+				                            <span>{orderDetaiel.projectType}</span>
+			                    		</FormItem>
 			                    	</div>
 			                    	<div className='clearfix'>
 			                    		<FormItem className="half-item"

+ 10 - 0
js/component/manageCenter/order/settlementOrder/settlementManage/managementDetaile.jsx

@@ -427,6 +427,11 @@ const ManagementDetaile = Form.create()(React.createClass({
 					                            label="特批立项" >   
 					                            <span>{getApprovedState(orderDetaiel.approval)}</span>
 				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >   
+					                            <span>{orderDetaiel.contractNo}</span>
+				                    		</FormItem>
 											<div className="clearfix">
 												<FormItem
 							                        labelCol={{ span: 4 }}
@@ -465,6 +470,11 @@ const ManagementDetaile = Form.create()(React.createClass({
 				                            label="订单负责人" >  
 				                            <span>{orderDetaiel.salesmanName}</span>
 			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="业务品类" >  
+				                            <span>{orderDetaiel.projectType}</span>
+			                    		</FormItem>
 			                    	</div>
 			                    	<div className='clearfix'>
 			                    		<FormItem className="half-item"

+ 42 - 10
js/component/manageCenter/servicesManage/projectOrder/myTask/projectManage.jsx

@@ -27,7 +27,7 @@ const MyTask=Form.create()(React.createClass({
                 buyerName:this.state.buyerNameSearch,//客户名称
                 taskStatus:this.state.orderStatusSearch, //订单状态
                 projectNo:this.state.orderNoSearch,//订单编号
-                deleteSign:this.state.deleteSignSearch,//锁定激活
+                deletedSign:this.state.deleteSignSearch,//锁定激活
                 categoryId:this.state.categoryIdSearch,
                 taskReceiverName:this.state.salesmanNameSearch
             },
@@ -48,7 +48,7 @@ const MyTask=Form.create()(React.createClass({
 	                         categoryName:thisdata.categoryName,
 	                         buyerName:thisdata.buyerName,
 	                         taskDistributionTimes:thisdata.taskDistributionTimes,
-	                         deleteSign:thisdata.deleteSign,
+	                         deleteSign:thisdata.deletedSign,
 	                         taskStatus:thisdata.taskStatus,
 	                         taskReceiverName:thisdata.taskReceiverName,
 	                         projectNo:thisdata.projectNo
@@ -193,6 +193,12 @@ const MyTask=Form.create()(React.createClass({
 								{record.taskStatus==2?<Popconfirm title={'请确认是否完成【'+record.commodityName+'】任务?'} onConfirm={(e)=>{this.endUp(record)}} okText="确认" cancelText="取消">
 							   	   <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} >完成</Button>                 
 								</Popconfirm>:''}
+								{record.deleteSign==2?<Popconfirm title={'请确认是否解锁【'+record.commodityName+'】任务?'} onConfirm={(e)=>{this.unLock(record)}} okText="确认" cancelText="取消">
+							   	   <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} >解锁</Button>                 
+								</Popconfirm>:
+								<Popconfirm title={'请确认是否锁定【'+record.commodityName+'】任务?'} onConfirm={(e)=>{this.lock(record)}} okText="确认" cancelText="取消">
+							   	   <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} >锁定</Button>                 
+								</Popconfirm>}
 							</div>
 							)
                     }
@@ -250,6 +256,39 @@ const MyTask=Form.create()(React.createClass({
     		distributionVisible:false
     	})
     },
+    //锁定
+    lock(record){
+    	this.lockFn(2,record);
+    },
+    //解锁
+    unLock(record){
+    	this.lockFn(0,record);
+    },
+    lockFn(status,record){
+    	this.setState({
+    		loading:true
+    	});
+    	 $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/techproject/lockOrRevokeOrder",
+            data: {
+            	taskId:record.taskId,
+            	operatorType:status
+            }
+        }).done(function (data) {
+            if (!data.error.length) {
+                message.success('操作成功!');
+                this.setState({
+                    loading: false,
+                });
+                this.loadData(this.state.pageNo);
+            } else {
+                message.warning(data.error[0].message);
+            };
+        }.bind(this));
+    },
     //分配对象列表
     contactList(){
         $.ajax({
@@ -487,15 +526,8 @@ const MyTask=Form.create()(React.createClass({
                                     })
                                 }
 	                        </Select>
-	                        <Select placeholder="是否锁定"
-	                            style={{ width: 150 ,marginRight:'10px',marginBottom:'10px'}}
-	                            value={this.state.deleteSignSearch}
-	                            onChange={(e) => { this.setState({ deleteSignSearch: e }) }}>
-	                            <Select.Option value='0'>未锁定</Select.Option>
-	                            <Select.Option value='2'>锁定</Select.Option>
-	                        </Select>
 	                        <Select placeholder="业务类别"
-	                            style={{ width: 150 ,marginRight:'10px'}}
+	                            style={{ width: 150 ,marginRight:'10px',marginBottom:'10px'}}
 	                            value={this.state.categoryIdSearch}
 	                            onChange={(e) => { this.setState({ categoryIdSearch: e }) }}>
 	                            {

+ 7 - 7
js/component/manageCenter/servicesManage/projectOrder/orderOrder/projectOrder.jsx

@@ -51,7 +51,8 @@ const ProjectOrder=Form.create()(React.createClass({
 	                         departmentName:thisdata.departmentName,
 	                         financeName:thisdata.financeName,
 	                         buyerName:thisdata.buyerName,
-	                         projectStage:thisdata.projectStage
+	                         projectStage:thisdata.projectStage,
+	                         projectType:thisdata.projectType
                         });
                     };
                     this.state.pagination.current = data.data.pageNo;
@@ -151,13 +152,12 @@ const ProjectOrder=Form.create()(React.createClass({
                     title: '客户名称',
                     dataIndex: 'buyerName',
                     key: 'buyerName'
-                },
-                {
-                    title: '订单类型',
-                    dataIndex: 'orderType',
-                    key: 'orderType',
+                },{
+                    title: '业务品类',
+                    dataIndex: 'projectType',
+                    key: 'projectType',
                     render:(text)=>{return getOrderType(text) }
-                }, {
+                },{
                     title: '订单状态',
                     dataIndex: 'orderStatus',
                     key: 'orderStatus',

+ 15 - 0
js/component/manageCenter/servicesManage/projectOrder/orderOrder/projectOrderDetaile.jsx

@@ -374,6 +374,16 @@ const MySettlementDetaile = Form.create()(React.createClass({
 					                            label="特批立项" >   
 					                            <span>{getApprovedState(orderDetaiel.approval)}</span>
 				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >   
+					                            <span>{orderDetaiel.contractNo}</span>
+				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="合同编号" >   
+					                            <span>{orderDetaiel.contractNo}</span>
+				                    		</FormItem>
 											<div className="clearfix">
 												<FormItem
 							                        labelCol={{ span: 4 }}
@@ -412,6 +422,11 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				                            label="订单负责人" >  
 				                            <span>{orderDetaiel.salesmanName}</span>
 			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="业务品类" >  
+				                            <span>{orderDetaiel.projectType}</span>
+			                    		</FormItem>
 			                    	</div>
 			                    	<div className='clearfix'>
 			                    		<FormItem className="half-item"

+ 5 - 5
js/component/manageCenter/servicesManage/projectOrder/projectManagement/projectManage.jsx

@@ -32,7 +32,7 @@ const ProjectOrder=Form.create()(React.createClass({
                 salesmanName:this.state.salesmanNameSearch,//订单负责人
                 financeLeaderSearch:this.state.financeLeaderSearch,//财务负责人
                 orderNo:this.state.orderNoSearch,//订单编号
-                deleteSign:this.state.deleteSignSearch,//锁定激活
+                deletedSign:this.state.deleteSignSearch,//锁定激活
                 serialNumber:this.state.serialNumberSearch //项目编号
             },
             success: function (data) {
@@ -52,7 +52,7 @@ const ProjectOrder=Form.create()(React.createClass({
 	                         buyerName:thisdata.buyerName,
 	                         projectType:thisdata.projectType,
 	                         projectStatus:thisdata.projectStatus,
-	                         deleteSign:thisdata.deleteSign,
+	                         deleteSign:thisdata.deletedSign,
 	                         orderNo:thisdata.orderNo,
 	                         orderTime:thisdata.orderTime,
 	                         orderStatus:thisdata.orderStatus,
@@ -60,7 +60,7 @@ const ProjectOrder=Form.create()(React.createClass({
 	                         approval:thisdata.approval,
 	                         buyerType:thisdata.buyerType,
 	                         salesmanName:thisdata.salesmanName,
-	                         departmentName:thisdata.departmentName
+	                         departmentName:thisdata.departmentName,
                         });
                     };
                     this.state.pagination.current = data.data.pageNo;
@@ -130,7 +130,7 @@ const ProjectOrder=Form.create()(React.createClass({
                     key: 'buyerProvince',
                     render:(text)=>{return text?'单位客户':'个人客户'}
                 },{
-                    title: '项目类型',
+                    title: '业务品类',
                     dataIndex: 'projectType',
                     key: 'projectType',
                     render:(text)=>{return getOrderType(text) }
@@ -206,7 +206,7 @@ const ProjectOrder=Form.create()(React.createClass({
                     key: 'buyerType',
                     render:(text)=>{return text?'单位客户':'个人客户'}
                 },{
-                    title: '项目类型',
+                    title: '业务品类',
                     dataIndex: 'projectType',
                     key: 'projectType',
                     render:(text)=>{return getOrderType(text) }

+ 73 - 3
js/component/manageCenter/servicesManage/projectOrder/projectManagement/projectManageDetaile.jsx

@@ -399,6 +399,10 @@ const MySettlementDetaile = Form.create()(React.createClass({
        		message.warning('请选择项目负责人');
        		return false;
        };
+       if(!this.state.contractType){
+       		message.warning('请选择业务品类');
+       		return false;
+       };
        if(this.state.signComment&&this.state.signComment.length>45){
        		message.warning('项目说明字数不能超过45字');
        		return false;
@@ -416,6 +420,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				signComment:this.state.signComment,
 				aid:this.state.aid,
 				projectType:0,
+				contractType:this.state.contractType
 			}
 		}).done(function(data) {
 			this.setState({
@@ -712,6 +717,47 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			}
 		}.bind(this));
 	},
+	//品类数据获取
+    category(){
+    	this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/Varieties/getSuperList",
+			data: {
+				
+			},
+			success: function(data) {
+				let thedata = data.data;
+				let theArr=[];
+				if(!thedata) {
+					if(data.error && data.error.length) {
+						message.warning(data.error[0].message);
+					};
+					thedata = {};
+				}else{
+					thedata.map(function(item,index){
+						theArr.push({
+							key:index,
+							name:item.cname,
+							id:item.id,
+						})
+					})
+				}
+				this.setState({
+					contractType:undefined,
+					categoryArr:theArr,
+				})
+			}.bind(this),
+			}).always(function() {
+				this.setState({
+					loading: false
+				});
+			}.bind(this));
+    },
 	tableRowClick(record, index) {
         this.setState({
         	addTaskState:false,
@@ -728,13 +774,15 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				this.loadData(nextProps.datauser);
 			}
 		}else{
+			this.category();
 			this.setState({
 				customerArr:[],
 				customerName:'',
 				autoId:'',
 				signComment:'',
 				projectName:'',
-				aid:''
+				aid:'',
+				contractType:undefined
 			})
 		}
 	},
@@ -758,7 +806,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			   })
 			},
         };
-        //
+        const categoryList=this.state.categoryArr ||[];
         let departmentArr = this.props.departmentArr || [];
         const hasSelected = this.state.selectedRowKey.length > 0;
 		const orderDetaiel=this.state.orderList || [];
@@ -785,7 +833,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                            {...formItemLayout}
 			                            label="订单编号" >
 			                            <span>{orderDetaiel.orderNo}</span>
-			                            {orderDetaiel.orderNo&&<Button  onClick={this.seeOrder} style={{float:'right',fontSize:'12px'}}>查看订单</Button>}
+			                            {orderDetaiel.orderNo&&!this.props.queryProject?<Button  onClick={this.seeOrder} style={{float:'right',fontSize:'12px'}}>查看订单</Button>:''}
 		                    		</FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -828,6 +876,11 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                            label="立项时间" >  
 			                            <span>{orderDetaiel.signDate}</span>
 		                    		</FormItem>
+		                    		<FormItem className="half-item"
+			                            {...formItemLayout}
+			                            label="业务品类" >  
+			                            <span>{orderDetaiel.projectType}</span>
+		                    		</FormItem>
 			                        <div className='clearfix'>
 							        	<FormItem
 								            labelCol={{ span: 4 }}
@@ -1059,6 +1112,23 @@ const MySettlementDetaile = Form.create()(React.createClass({
 							                    </FormItem>
 							                </div>
 							                <div className='clearfix'>
+							                	<FormItem 
+							                            {...formItemLayout}
+							                            label="业务品类" > 
+							                            <Select placeholder="请选择业务品类"
+								                            style={{ width:'200px'}}
+								                            value={this.state.contractType}
+								                            onChange={(e)=>{this.setState({contractType:e})}}>
+								                            {
+							                                    categoryList.map(function (item) {
+							                                            return <Select.Option key={item.id} >{item.name}</Select.Option>
+							                                    })
+							                                }
+								                        </Select>
+							                    		<span className="mandatory">*</span>
+							                    </FormItem>
+							                </div>
+							                <div className='clearfix'>
 									        	<FormItem
 										            labelCol={{ span: 8 }}
 										            wrapperCol={{ span: 12 }}

+ 13 - 42
package-lock.json

@@ -3278,12 +3278,11 @@
       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
       "dev": true
     },
-<<<<<<< HEAD
     "fsevents": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
-      "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
-=======
+      "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q=="
+		},
     "function-bind": {
       "version": "1.1.0",
       "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.0.tgz",
@@ -3308,29 +3307,6 @@
       "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
       "dev": true
     },
-    "getpass": {
-      "version": "0.1.7",
-      "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
-      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
->>>>>>> 7b9c98a54ad5297f0b6e76d0dd5ecbb5579c4974
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "nan": "2.8.0",
-        "node-pre-gyp": "0.6.39"
-      },
-      "dependencies": {
-        "abbrev": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-<<<<<<< HEAD
-        },
-=======
-        }
-      }
-    },
     "glob": {
       "version": "7.1.2",
       "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz",
@@ -3345,6 +3321,17 @@
         "path-is-absolute": "1.0.1"
       }
     },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "nan": "2.8.0",
+        "node-pre-gyp": "0.6.39"
+      }
+    },
     "glob-base": {
       "version": "0.3.0",
       "resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz",
@@ -3426,7 +3413,6 @@
         "har-schema": "1.0.5"
       },
       "dependencies": {
->>>>>>> 7b9c98a54ad5297f0b6e76d0dd5ecbb5579c4974
         "ajv": {
           "version": "4.11.8",
           "bundled": true,
@@ -3436,7 +3422,6 @@
             "co": "4.6.0",
             "json-stable-stringify": "1.0.1"
           }
-<<<<<<< HEAD
         },
         "ansi-regex": {
           "version": "2.1.1",
@@ -4463,8 +4448,6 @@
             "co": "4.6.0",
             "json-stable-stringify": "1.0.1"
           }
-=======
->>>>>>> 7b9c98a54ad5297f0b6e76d0dd5ecbb5579c4974
         }
       }
     },
@@ -5166,7 +5149,6 @@
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
       "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
-<<<<<<< HEAD
       "dev": true
     },
     "is-data-descriptor": {
@@ -5215,8 +5197,6 @@
       "version": "1.0.3",
       "resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz",
       "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
-=======
->>>>>>> 7b9c98a54ad5297f0b6e76d0dd5ecbb5579c4974
       "dev": true
     },
     "is-data-descriptor": {
@@ -6185,7 +6165,6 @@
       "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
       "dev": true
     },
-<<<<<<< HEAD
     "nan": {
       "version": "2.8.0",
       "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
@@ -6193,8 +6172,6 @@
       "dev": true,
       "optional": true
     },
-=======
->>>>>>> 7b9c98a54ad5297f0b6e76d0dd5ecbb5579c4974
     "nanomatch": {
       "version": "1.2.7",
       "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz",
@@ -9303,7 +9280,6 @@
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
       "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
-<<<<<<< HEAD
       "dev": true,
       "requires": {
         "define-property": "0.2.5",
@@ -9388,8 +9364,6 @@
       "version": "2.0.1",
       "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz",
       "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
-=======
->>>>>>> 7b9c98a54ad5297f0b6e76d0dd5ecbb5579c4974
       "dev": true,
       "requires": {
         "define-property": "0.2.5",
@@ -10553,10 +10527,7 @@
             "anymatch": "2.0.0",
             "async-each": "1.0.1",
             "braces": "2.3.0",
-<<<<<<< HEAD
             "fsevents": "1.1.3",
-=======
->>>>>>> 7b9c98a54ad5297f0b6e76d0dd5ecbb5579c4974
             "glob-parent": "3.1.0",
             "inherits": "2.0.3",
             "is-binary-path": "1.0.1",