Browse Source

人事管理开发4-30

mentoswzq 4 years ago
parent
commit
50cc800060

+ 98 - 0
js/component/manageCenter/statistics/personnel/addPicModal.jsx

@@ -0,0 +1,98 @@
+import React from "react";
+import { Spin, Button, Tabs, Table, message, Modal, Upload, Form, Input } from "antd";
+import { splitUrl } from "@/tools";
+import PicturesWall from "./picturesWall";
+const FormItem = Form.Item;
+
+const AddPicModal = React.createClass({
+  getInitialState() {
+    return {
+      newVisible: false,
+      rotateDeg: 0,
+      voucherUrl: [],
+    };
+  },
+  componentWillReceiveProps(nextProps) {
+    this.setState({
+      newVisible: nextProps.ShowModal,
+    });
+  },
+  handleOk() {
+    this.setState({
+      newVisible: false,
+    });
+  },
+  add() {
+    if(this.state.voucherUrl.length == 0) {
+        message.warning("请上传图片")
+        return
+    }
+    if(this.state.remarks == "" || this.state.remarks == undefined) {
+        message.warning("请填写图片备注")
+        return
+    }
+    this.props.add(this.state.voucherUrl[0].response.data, this.state.remarks);
+    this.setState({
+      voucherUrl: [],
+      remarks: undefined,
+    });
+  },
+  getVoucherUrl(e) {
+    this.setState({
+      voucherUrl: e,
+    });
+  },
+  cancel() {
+      this.props.cancel()
+    this.setState({
+        voucherUrl: [],
+        remarks: undefined
+    })
+  },
+  render() {
+    return (
+      <Modal
+        visible={this.props.visible}
+        width={400}
+        okText={"保存"}
+        onOk={this.add}
+        onCancel={this.cancel}
+      >
+        <div className="clearfix">
+          <FormItem
+            className="half-item"
+            labelCol={{ span: 6 }}
+            wrapperCol={{ span: 30 }}
+            label="附件"
+          >
+            <PicturesWall
+              fileList={this.getVoucherUrl}
+              pictureUrl={this.state.voucherUrl}
+              url="/api/admin/personnel/uploadFile"
+              sign="personnel_file"
+            />
+          </FormItem>
+          <FormItem
+            className="half-item"
+            labelCol={{ span: 6 }}
+            wrapperCol={{ span: 30 }}
+            label="备注"
+          >
+            <Input
+              placeholder="输入备注"
+              style={{ width: 80 }}
+              value={this.state.remarks}
+              onChange={(e) => {
+                this.setState({
+                  remarks: e.target.value,
+                });
+              }}
+            />
+          </FormItem>
+        </div>
+      </Modal>
+    );
+  },
+});
+
+export default AddPicModal;

+ 370 - 121
js/component/manageCenter/statistics/personnel/personnelAll.jsx

@@ -26,6 +26,7 @@ import {
 import { splitUrl } from "@/tools";
 import { getProvinceList } from "@/addressList";
 import PicModal from "./picModal"
+import AddPicModal from "./addPicModal";
 const FormItem = Form.Item;
 const { TabPane } = Tabs;
 const { TextArea } = Input;
@@ -96,6 +97,9 @@ const PersonnelAll = React.createClass({
   },
   getInitialState() {
     return {
+      annexName: "",
+      annexUrl: "",
+      voucherUrl: [],
       ModalData: [],
       contractTime: [],
       quitTime: [],
@@ -151,31 +155,13 @@ const PersonnelAll = React.createClass({
         },
         {
           title: "员工状态",
-          dataIndex: "status",
-          key: "status",
-          render: (text) => {
-            if (text == 0) {
-              return "在职(试用期)";
-            } else if (text == 1) {
-              return "在职(正式工)";
-            } else if (text == 2) {
-              return "离职";
-            }
-          },
+          dataIndex: "statusName",
+          key: "statusName",
         },
         {
           title: "所属系统",
-          dataIndex: "system",
-          key: "system",
-          render: (text) => {
-            if (text == 0) {
-              return "管理系统";
-            } else if (text == 1) {
-              return "营销系统";
-            } else if (text == 2) {
-              return "技术系统";
-            }
-          },
+          dataIndex: "systemName",
+          key: "systemName",
         },
         {
           title: "公司名称",
@@ -220,6 +206,11 @@ const PersonnelAll = React.createClass({
           },
         },
         {
+          title: "婚姻状态",
+          dataIndex: "marriageName",
+          key: "marriageName",
+        },
+        {
           title: "子/女",
           dataIndex: "son",
           key: "son",
@@ -229,37 +220,13 @@ const PersonnelAll = React.createClass({
         },
         {
           title: "政治面貌",
-          dataIndex: "politicalOutlook",
-          key: "politicalOutlook",
-          render: (text) => {
-            if (text == 0) {
-              return "群众";
-            } else if (text == 1) {
-              return "中共预备党员";
-            } else if (text == 2) {
-              return "中共党员";
-            } else if (text == 3) {
-              return "致公党员";
-            }
-          },
+          dataIndex: "politicalOutlookName",
+          key: "politicalOutlookName",
         },
         {
           title: "教育经历",
-          dataIndex: "education",
-          key: "education",
-          render: (text) => {
-            if (text == 0) {
-              return "高中/中专";
-            } else if (text == 1) {
-              return "专科/高职";
-            } else if (text == 2) {
-              return "本科";
-            } else if (text == 3) {
-              return "研究生";
-            } else if (text == 5) {
-              return "博士";
-            }
-          },
+          dataIndex: "educationName",
+          key: "educationName",
         },
         {
           title: "毕业学校",
@@ -351,6 +318,26 @@ const PersonnelAll = React.createClass({
           dataIndex: "month",
           key: "month",
         },
+        {
+          title: "参保时间",
+          dataIndex: "insuranceStartTimes",
+          key: "insuranceStartTimes",
+        },
+        {
+          title: "停保时间",
+          dataIndex: "insuranceEndTimes",
+          key: "insuranceEndTimes",
+        },
+        {
+          title: "公积金时间",
+          dataIndex: "fundStartTimes",
+          key: "fundStartTimes",
+        },
+        {
+          title: "停办公积金时间",
+          dataIndex: "fundEndTimes",
+          key: "fundEndTimes",
+        },
       ],
       dataSource: [],
       resVisible: false,
@@ -422,8 +409,8 @@ const PersonnelAll = React.createClass({
           key: "子/女",
           value: "son",
           render: (e, i) => {
-            return e + "/" + i
-          }
+            return e + "/" + i;
+          },
         },
         {
           key: "政治面貌",
@@ -594,10 +581,52 @@ const PersonnelAll = React.createClass({
   editPeo() {
 
   },
-  stayModal() {
+  stayModal(id) {
     this.setState({
       stayVisible: true
     })
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/personnel/selectBypdId",
+      data: {
+        id: id
+      },
+      success: function (data) {
+        let res = data.data
+        let theArr = [];
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          this.setState({
+            id: res.id,
+            status: res.status + "",
+            system: res.system + "",
+            jobNature: res.jobNature,
+            jobNatureRemarks: res.jobNatureRemarks,
+            age: res.age,
+            entryTimes: res.entryTimes,
+            promotionTimes: res.promotionTimes,
+            company: res.company,
+            lvl: res.lvl + "",
+            jobs: res.jobs + "",
+            star: res.star + "",
+            allowance: res.allowance,
+          });
+          this.getList();
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
   },
   stayCancel() {
     this.setState({
@@ -605,7 +634,52 @@ const PersonnelAll = React.createClass({
     })
   },
   editStay() {
-
+    if(this.state.star == "" || this.state.star == undefined) {
+      message.warning("请选择星级")
+      return
+    }
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      method: "post",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/personnel/update",
+      data: {
+        id: this.state.id,
+        status: this.state.status,
+        system: this.state.system,
+        jobNature: this.state.jobNature,
+        jobNatureRemarks: this.state.jobNatureRemarks,
+        entryTimes: this.state.entryTimes,
+        promotionTimes: this.state.promotionTimes,
+        company: this.state.company,
+        lvl: this.state.lvl,
+        jobs: this.state.jobs,
+        star: this.state.star,
+        allowance: this.state.allowance,
+      },
+      success: function (data) {
+        let res = data.data;
+        let theArr = [];
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          this.setState({
+            stayVisible: false,
+          });
+          this.tableRowClick(this.state.ModalData);
+          message.success("提交成功")
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
   },
   phoneModal() {
     this.setState({
@@ -624,6 +698,51 @@ const PersonnelAll = React.createClass({
     this.setState({
       entryVisible: true
     });
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/personnel/selectBypdId",
+      data: {
+        id: 3,
+      },
+      success: function (data) {
+        let theArr = [];
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          console.log(data.data);
+          
+          // let data = data.data.personnelEntry ? data.data.personnelEntry : []
+          // if(data) {
+            this.setState({
+              id: data.data.personnelEntry.id,
+              school: data.data.personnelEntry.school,
+              education: data.data.personnelEntry.education,
+              major: data.data.personnelEntry.major,
+              title: data.data.personnelEntry.title,
+              entryRemarks: data.data.personnelEntry.entryRemarks,
+              annexUrl: data.data.personnelEntry.annexUrl
+                ? data.data.personnelEntry.annexUrl
+                : "",
+              annexName: data.data.personnelEntry.annexName
+                ? data.data.personnelEntry.annexName
+                : "",
+            });
+          // }
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+
   },
   entryCancel() {
     this.setState({
@@ -638,6 +757,7 @@ const PersonnelAll = React.createClass({
   tableRowClick(record) {
     this.setState({
       visible: true,
+      id: record.id
     })
     this.setState({
       loading: true,
@@ -671,6 +791,59 @@ const PersonnelAll = React.createClass({
   search() {
     this.loadData()
   },
+  addPic() {
+    this.setState({
+      addPicModal: true
+    })
+  },
+  addPicModalCancel() {
+    this.setState({
+      addPicModal: false,
+    })
+  },
+  getVoucherUrl(e) {
+    this.setState({
+      voucherUrl: e
+    });
+  },
+  addRuzhi(e, i) {
+    this.setState({
+      addPicModal: false
+    })
+    this.state.annexUrl += "," + e
+    this.state.annexName += "," + i;
+    this.setState({
+      annexUrl: this.state.annexUrl,
+      annexName: this.state.annexName,
+      loading: true,
+    });
+    $.ajax({
+      method: "post",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/personnel/updateEntry",
+      data: {
+        id: this.state.id,
+        annexUrl: this.state.annexUrl,
+        annexName: this.state.annexName,
+      },
+      success: function (data) {
+        let theArr = [];
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          message.warning("保存成功");
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+    
+  },
   reset() {
     this.state.nameSearch = undefined
     this.state.statusSearch = undefined;
@@ -721,10 +894,92 @@ const PersonnelAll = React.createClass({
   },
   picToArr(e) {
     let arr = e.split(",")
-    console.log(arr);
-    
     return arr
   },
+  ruzhiRemove(e) {
+    console.log(e.file.response.data);
+    let url = e.file.response.data
+    let arr = this.state.annexUrl.split(",")
+    let arrName = this.state.annexName.split(",")
+    let num = ""
+    arr.forEach((item, index) => {
+      if(item == url) {
+        arr.splice(index, 1)
+        num = index
+      }
+    })
+    arrName.splice(num, 1)
+    this.setState({
+      annexUrl: arr.join(","),
+      annexName: arrName.join(","),
+      loading: true
+    })
+    $.ajax({
+      method: "post",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/personnel/updateEntry",
+      data: {
+        id: this.state.id,
+        annexUrl: this.state.annexUrl,
+        annexName: this.state.annexName,
+      },
+      success: function (data) {
+        let theArr = [];
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          message.warning("删除成功");
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  },
+  getList() {
+    this.setState({
+      loading: true
+    })
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/personnel/selectLvlList",
+      data: {},
+      success: function (data) {
+        let theArr = [];
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          console.log(data);
+          let arr = data.data
+          let starArr = []
+          arr.forEach((item, index) => {
+            if(item.jobs == this.state.jobs) {
+              let obj = {
+                star: item.lvl + "",
+                starName: item.lvlName,
+              };
+              starArr.push(obj)
+            }
+          })
+          this.setState({
+            starArr
+          })
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  },
   render() {
     const rowSelection = {
       selectedRowKeys: this.state.selectedRowKeys,
@@ -972,13 +1227,6 @@ const PersonnelAll = React.createClass({
             </Button>
             <Button
               type="primary"
-              onClick={this.phoneModal}
-              style={{ margin: "11px 0px 10px 10px" }}
-            >
-              修改联系信息
-            </Button>
-            <Button
-              type="primary"
               onClick={this.entryModal}
               style={{ margin: "11px 0px 10px 10px" }}
             >
@@ -1412,8 +1660,11 @@ const PersonnelAll = React.createClass({
                 </Radio.Group>
                 <Input
                   placeholder="输入性质"
-                  style={{ width: 80 }}
-                  disabled={this.state.jobNatureRemarks == 2 ? false : true}
+                  style={{
+                    width: 80,
+                    display:
+                      this.state.jobNature == 2 ? "inline-block" : "none",
+                  }}
                   value={this.state.jobNatureRemarks}
                   onChange={(e) => {
                     this.setState({
@@ -1423,7 +1674,7 @@ const PersonnelAll = React.createClass({
                 />
               </FormItem>
               <FormItem className="half-item" {...formItemLayout} label="工龄">
-                <span>2</span>
+                <span>{this.state.age}</span>
               </FormItem>
             </div>
             <div className="clearfix">
@@ -1512,17 +1763,21 @@ const PersonnelAll = React.createClass({
                   style={{ width: 200, marginRight: 10 }}
                   value={this.state.jobs}
                   onChange={(e) => {
-                    this.setState({ jobs: e });
+                    this.setState({ jobs: e, star: undefined });
+                    console.log(e);
+                    this.getList();
                   }}
                 >
-                  <Option value="0">员工</Option>
-                  <Option value="1">主管</Option>
-                  <Option value="2">经理</Option>
-                  <Option value="3">总经理</Option>
-                  <Option value="4">副总裁</Option>
-                  <Option value="5">副总</Option>
-                  <Option value="6">总监</Option>
-                  <Option value="7">董事长</Option>
+                  <Option value="1">员工</Option>
+                  <Option value="2">试用营销员</Option>
+                  <Option value="3">试用营销储备经理</Option>
+                  <Option value="4">营销经理</Option>
+                  <Option value="5">总监合伙人</Option>
+                  <Option value="6">技术助理</Option>
+                  <Option value="7">咨询师</Option>
+                  <Option value="8">咨询师主管</Option>
+                  <Option value="9">咨询师经理</Option>
+                  <Option value="10">高级经理</Option>
                 </Select>
               </FormItem>
               <FormItem className="half-item" {...formItemLayout} label="星级">
@@ -1534,14 +1789,13 @@ const PersonnelAll = React.createClass({
                   }}
                   value={this.state.star}
                 >
-                  <Option value="0">一级</Option>
-                  <Option value="1">二级</Option>
-                  <Option value="2">三级</Option>
-                  <Option value="3">四级</Option>
-                  <Option value="4">五级</Option>
-                  <Option value="5">六级</Option>
-                  <Option value="6">七级</Option>
-                  <Option value="7">八级</Option>
+                  {this.state.starArr
+                    ? this.state.starArr.map((item, index) => {
+                        return (
+                          <Option value={item.star}>{item.starName}</Option>
+                        );
+                      })
+                    : []}
                 </Select>
               </FormItem>
             </div>
@@ -1804,9 +2058,9 @@ const PersonnelAll = React.createClass({
                   placeholder="请选择学历"
                   style={{ width: 200 }}
                   onChange={(e) => {
-                    this.setState({ politicalOutlook: e });
+                    this.setState({ education: e });
                   }}
-                  value={this.state.politicalOutlook}
+                  value={this.state.education}
                 >
                   <Option value="0">高中/中专</Option>
                   <Option value="1">专科/高职</Option>
@@ -1826,10 +2080,10 @@ const PersonnelAll = React.createClass({
                 <Input
                   placeholder="请输入专业名称"
                   style={{ width: 200 }}
-                  value={this.state.zhuanye}
+                  value={this.state.major}
                   onChange={(e) => {
                     this.setState({
-                      zhuanye: e.target.value,
+                      major: e.target.value,
                     });
                   }}
                 />
@@ -1843,10 +2097,10 @@ const PersonnelAll = React.createClass({
                 <Input
                   placeholder="请输入职称"
                   style={{ width: 200 }}
-                  value={this.state.zhicheng}
+                  value={this.state.title}
                   onChange={(e) => {
                     this.setState({
-                      zhicheng: e.target.value,
+                      title: e.target.value,
                     });
                   }}
                 />
@@ -1862,43 +2116,26 @@ const PersonnelAll = React.createClass({
                 <Input
                   placeholder="请输入备注"
                   style={{ width: 200 }}
-                  value={this.state.beizhu}
+                  value={this.state.entryRemarks}
                   onChange={(e) => {
                     this.setState({
-                      beizhu: e.target.value,
+                      entryRemarks: e.target.value,
                     });
                   }}
                 />
               </FormItem>
             </div>
-            <div className="clearfix">
-              <FormItem
-                className="half-item"
-                labelCol={{ span: 6 }}
-                wrapperCol={{ span: 30 }}
-                label="附件"
-              >
-                <Upload
-                  className="demandDetailShow-upload"
-                  listType="picture-card"
-                  fileList={
-                    this.state.pic
-                      ? splitUrl(
-                          this.state.pic,
-                          ",",
-                          globalConfig.avatarHost + "/upload"
-                        )
-                      : []
-                  }
-                  onPreview={(file) => {
-                    this.setState({
-                      previewImage: file.url || file.thumbUrl,
-                      previewVisible: true,
-                    });
-                  }}
-                />
-                <Button>添加附件</Button>
-              </FormItem>
+            <div
+              className="clearfix"
+              style={{ paddingLeft: 70, marginBottom: 10 }}
+            >
+              <div style={{ marginBottom: 10 }}>附件:</div>
+              <PicModal
+                remarks={this.picToArr(this.state.annexName)}
+                picUrl={this.picToArr(this.state.annexUrl)}
+                remove={this.ruzhiRemove}
+              />
+              <Button onClick={this.addPic}>添加附件</Button>
             </div>
             <Button
               type="primary"
@@ -1981,8 +2218,8 @@ const PersonnelAll = React.createClass({
               <span>任职信息</span>
               <Button
                 type="primary"
-                onClick={e => {
-                  this.stayModal(this.state.ModalData.id)
+                onClick={(e) => {
+                  this.stayModal(this.state.ModalData.id);
                 }}
                 style={{ position: "absolute", right: 0, height: 30 }}
               >
@@ -2094,6 +2331,13 @@ const PersonnelAll = React.createClass({
             </div>
             <div className="title-peo">
               <span>联系信息</span>
+              <Button
+                type="primary"
+                onClick={this.phoneModal}
+                style={{ position: "absolute", right: 0, height: 30 }}
+              >
+                修改联系信息
+              </Button>
             </div>
             <div className="clearfix">
               <FormItem
@@ -2434,6 +2678,11 @@ const PersonnelAll = React.createClass({
             )}
           </Spin>
         </Modal>
+        <AddPicModal
+          cancel={this.addPicModalCancel}
+          add={this.addRuzhi}
+          visible={this.state.addPicModal}
+        />
       </div>
     );
   },

+ 40 - 0
js/component/manageCenter/statistics/personnel/personnelList.jsx

@@ -0,0 +1,40 @@
+import { func } from "prop-types";
+
+arr: [
+  {
+    flag: false,
+  },
+  {
+    flag: false,
+  },
+  {
+    flag: false,
+  },
+  {
+    flag: false,
+  },
+  {
+    flag: false,
+  },
+  {
+    flag: false,
+  },
+  {
+    flag: false,
+  },
+
+];
+fn(index) {
+    arr[index].flag = !arr[index].flag
+    this.setState({
+        arr
+    })
+}
+
+{arr.map((item, index) => {
+    return (
+        <div style={{ backgroundColor: item.flag ? "black" : "white" }} onClick={e => { fun(index) }}>
+            盒子
+        </div>
+    )
+})}

+ 7 - 3
js/component/manageCenter/statistics/personnel/picModal.jsx

@@ -1,8 +1,9 @@
 import React from "react";
 import { Spin, Button, Tabs, Table, message, Modal, Upload } from "antd";
 import { splitUrl } from "@/tools";
+import "./remove.less"
 
-const ShowModal = React.createClass({
+const PicModal = React.createClass({
   getInitialState() {
     return {
       newVisible: false,
@@ -71,6 +72,7 @@ const ShowModal = React.createClass({
               <Upload
                 className="demandDetailShow-upload"
                 listType="picture-card"
+                onChange={this.props.remove}
                 fileList={
                   item
                     ? splitUrl(item, ",", globalConfig.avatarHost + "/upload")
@@ -83,7 +85,9 @@ const ShowModal = React.createClass({
                   });
                 }}
               />
-              <div style={{ textAlign: "center" }}>{this.props.remarks[index]}</div>
+              <div style={{ textAlign: "center" }}>
+                {this.props.remarks[index]}
+              </div>
             </div>
           );
         })}
@@ -142,4 +146,4 @@ const ShowModal = React.createClass({
   },
 });
 
-export default ShowModal;
+export default PicModal;

+ 79 - 0
js/component/manageCenter/statistics/personnel/picturesWall.js

@@ -0,0 +1,79 @@
+import React, { Component } from "react";
+import { Modal, Icon, Upload } from "antd";
+import { timingSafeEqual } from "crypto";
+
+class PicturesWall extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      previewVisible: false,
+      previewImage: "",
+      fileList: this.props.pictureUrl,
+    };
+    this.handleCancel = this.handleCancel.bind(this);
+    this.handleChange = this.handleChange.bind(this);
+    this.handlePreview = this.handlePreview.bind(this);
+  }
+
+  handleCancel() {
+    this.setState({
+      previewVisible: false,
+    });
+  }
+
+  handlePreview(file) {
+    this.setState({
+      previewImage: file.url || file.thumbUrl,
+      previewVisible: true,
+    });
+  }
+
+  handleChange(info) {
+      console.log(info);
+      
+    let fileList = info.fileList;
+    this.setState({
+      fileList,
+    });
+    this.props.fileList(fileList);
+  }
+
+  componentWillReceiveProps(nextProps) {
+    this.state.fileList = nextProps.pictureUrl;
+    this.state.pojectApplicationUrl = undefined;
+  }
+
+  render() {
+    const { previewVisible, previewImage, fileList } = this.state;
+    const uploadButton = (
+      <div>
+        <Icon type="plus" />
+        <div className="ant-upload-text">点击上传</div>
+      </div>
+    );
+    return (
+      <div style={{ display: "inline-block" }}>
+        <Upload
+          action={globalConfig.context + this.props.url}
+          data={{ sign: this.props.sign }}
+          listType="picture-card"
+          fileList={fileList}
+          onPreview={this.handlePreview}
+          onChange={this.handleChange}
+        >
+          {fileList.length >= 1 ? null : uploadButton}
+        </Upload>
+        <Modal
+          maskClosable={false}
+          visible={previewVisible}
+          footer={null}
+          onCancel={this.handleCancel}
+        >
+          <img alt="example" style={{ width: "100%" }} src={previewImage} />
+        </Modal>
+      </div>
+    );
+  }
+}
+
+export default PicturesWall;

+ 3 - 0
js/component/manageCenter/statistics/personnel/remove.less

@@ -0,0 +1,3 @@
+// .anticon-delete {
+//     // display: none !important;
+// }