Parcourir la source

Merge branch 'master' of http://47.100.37.243:10080/ZHOU/yunsu

il y a 5 ans
Parent
commit
42f8932132

+ 1 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/entity/vo/ProjectVO.java

@@ -16,6 +16,7 @@ import java.util.List;
 public class ProjectVO extends Project {
 public class ProjectVO extends Project {
     private List<User> customUsers = new ArrayList<>();
     private List<User> customUsers = new ArrayList<>();
     private List<User> ownerUsers = new ArrayList<>();
     private List<User> ownerUsers = new ArrayList<>();
+    private List<User> participateUsers = new ArrayList<>();
     private List<Mould> models = new ArrayList<>();
     private List<Mould> models = new ArrayList<>();
     private List<ProjectApprove>approves = new ArrayList<>();
     private List<ProjectApprove>approves = new ArrayList<>();
     private List<CustomCompany> customCompanies = new ArrayList<>();
     private List<CustomCompany> customCompanies = new ArrayList<>();

+ 11 - 9
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/ProjectServiceImpl.java

@@ -139,6 +139,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         .stream()
                         .stream()
                         .map(ProjectApprove::getApproverId)
                         .map(ProjectApprove::getApproverId)
                         .collect(Collectors.toList());
                         .collect(Collectors.toList());
+                approverIds.add(-1);
                 powerMapper.delete(new QueryWrapper<Power>().in("user_id",approverIds));
                 powerMapper.delete(new QueryWrapper<Power>().in("user_id",approverIds));
                 //重新添加审批人
                 //重新添加审批人
                 //1.添加资产方审批人
                 //1.添加资产方审批人
@@ -353,17 +354,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             map.put("approve", approve);
             map.put("approve", approve);
         }
         }
         List<User> users = projectMapper.getProjectUserById(project.getId());
         List<User> users = projectMapper.getProjectUserById(project.getId());
+        vo.setParticipateUsers(users);
         //处理users按照客户呼和供应商分组
         //处理users按照客户呼和供应商分组
         System.out.println("users===>" + users);
         System.out.println("users===>" + users);
-        for (User user : users) {
-            if (user.getSubordinateType() == 0) {
-                //资产方
-                vo.getOwnerUsers().add(user);
-            } else if (user.getSubordinateType() == 1) {
-                //生产方
-                vo.getCustomUsers().add(user);
-            }
-        }
+//        for (User user : users) {
+//            if (user.getSubordinateType() == 0) {
+//                //资产方
+//                vo.getOwnerUsers().add(user);
+//            } else if (user.getSubordinateType() == 1) {
+//                //生产方
+//                vo.getCustomUsers().add(user);
+//            }
+//        }
         map.put("vo", vo);
         map.put("vo", vo);
         msg.data = map;
         msg.data = map;
         return msg;
         return msg;

+ 3 - 0
ys_vue/src/port.js

@@ -76,6 +76,9 @@ export default {
         companys: '/company/getCompanyList', //创建账号是所获取的公司列表
         companys: '/company/getCompanyList', //创建账号是所获取的公司列表
         comps: '/company/getCompanys', //创建模具获取的(资产方)公司列表
         comps: '/company/getCompanys', //创建模具获取的(资产方)公司列表
         addCompanyListToProject: '/company/addCompanyListToProject', //项目分配生产方公司列表
         addCompanyListToProject: '/company/addCompanyListToProject', //项目分配生产方公司列表
+        relationList: '/company/relationList', //建立关联公司时的公司列表
+        ownerComps: 'company/ownerRelateCompany', //返回当前公司的关联公司列表
+
 
 
         addFactory: '/factory/add',  //(工厂)
         addFactory: '/factory/add',  //(工厂)
         factoryList: '/factory/list',
         factoryList: '/factory/list',

+ 26 - 86
ys_vue/src/views/Home.vue

@@ -16,8 +16,7 @@
         </div>
         </div>
       </el-col>
       </el-col>
       <el-col :span="6" class="userinfo">
       <el-col :span="6" class="userinfo">
-        <!-- :value="messageCount[0] == 0 ? false : messageCount[0]" -->
-        <el-badge class="itemNew">
+        <el-badge class="itemNew" :value="unreadCount[3]">
           <i class="el-icon-message-solid" style="font-size:24px" v-popover:popover1></i>
           <i class="el-icon-message-solid" style="font-size:24px" v-popover:popover1></i>
           <!-- 消息中心 -->
           <!-- 消息中心 -->
           <el-popover
           <el-popover
@@ -32,11 +31,11 @@
               <!-- 审批的页面 -->
               <!-- 审批的页面 -->
               <el-tab-pane name="0">
               <el-tab-pane name="0">
                 <span slot="label">
                 <span slot="label">
-                  <span v-if="messageCount[1] == 0">审批</span>
-                  <span v-else>审批({{messageCount[1]}})</span>
+                  <span v-if="unreadCount[0] == 0">审批</span>
+                  <span v-else>审批({{unreadCount[0]}})</span>
                 </span>
                 </span>
-                <div class="popover-item" v-if="popoverData.length == 0">暂无审批消息</div>
-                <div class="popover-item" v-for="item in popoverData">
+                <div class="popover-item" v-if="unreadCount[0] == 0">暂无审批消息</div>
+                <div class="popover-item" v-for="item in popoverData[0]">
                   <p class="popover-title">
                   <p class="popover-title">
                     <span
                     <span
                       style="cursor: pointer;"
                       style="cursor: pointer;"
@@ -50,11 +49,11 @@
               <!-- 警告的页面 -->
               <!-- 警告的页面 -->
               <el-tab-pane name="1">
               <el-tab-pane name="1">
                 <span slot="label">
                 <span slot="label">
-                  <span v-if="messageCount[2] == 0">警告</span>
-                  <span v-else>警告{{messageCount[2]}})</span>
+                  <span v-if="unreadCount[1] == 0">警告</span>
+                  <span v-else>警告({{unreadCount[1]}})</span>
                 </span>
                 </span>
-                <div class="popover-item" v-if="popoverData.length == 0">暂无警告消息</div>
-                <div class="popover-item" v-for="item in popoverData">
+                <div class="popover-item" v-if="unreadCount[1] == 0">暂无警告消息</div>
+                <div class="popover-item" v-for="item in popoverData[1]">
                   <p class="popover-title">
                   <p class="popover-title">
                     <span
                     <span
                       style="cursor: pointer;"
                       style="cursor: pointer;"
@@ -68,11 +67,11 @@
               <!-- 保养的页面 -->
               <!-- 保养的页面 -->
               <el-tab-pane name="2">
               <el-tab-pane name="2">
                 <span slot="label">
                 <span slot="label">
-                  <span v-if="messageCount[3] == 0">保养</span>
-                  <span v-else>保养{{messageCount[3]}})</span>
+                  <span v-if="unreadCount[2] == 0">保养</span>
+                  <span v-else>保养({{unreadCount[2]}})</span>
                 </span>
                 </span>
-                <div class="popover-item" v-if="popoverData.length == 0">暂无保养消息</div>
-                <div class="popover-item" v-for="item in popoverData">
+                <div class="popover-item" v-if="unreadCount[2] == 0">暂无保养消息</div>
+                <div class="popover-item" v-for="item in popoverData[2]">
                   <p class="popover-title">
                   <p class="popover-title">
                     <span
                     <span
                       style="cursor: pointer;"
                       style="cursor: pointer;"
@@ -293,9 +292,8 @@ export default {
       },
       },
       //消息数据
       //消息数据
       popoverData: [],
       popoverData: [],
-      tips: false,
-      activePage: 0,
-      messageCount: [0, 0, 0, 0]
+      unreadCount: [],
+      activePage: 0
     };
     };
   },
   },
   methods: {
   methods: {
@@ -436,8 +434,17 @@ export default {
         },
         },
         res => {
         res => {
           if (res.code == "ok") {
           if (res.code == "ok") {
-            this.popoverData = res.data.list.list;
-            this.tips = res.data.isRedPoint;
+            this.popoverData = [];
+            this.popoverData.push(res.data[0].emergencyList.list);
+            this.popoverData.push(res.data[1].emergencyList.list);
+            this.popoverData.push(res.data[2].emergencyList.list);
+            this.unreadCount = [];
+            this.unreadCount.push(res.data[0].isNotReadCount);
+            this.unreadCount.push(res.data[1].isNotReadCount);
+            this.unreadCount.push(res.data[2].isNotReadCount);
+            this.unreadCount.push(
+              this.unreadCount[0] + this.unreadCount[1] + this.unreadCount[2]
+            );
           } else {
           } else {
             this.$message({
             this.$message({
               message: res.msg,
               message: res.msg,
@@ -487,79 +494,12 @@ export default {
         this.$router.push("/detection/" + id);
         this.$router.push("/detection/" + id);
       }
       }
     },
     },
-    //检查是否要进行报废提示
-    checkDiscardNotice() {
-      this.http.post(
-        this.port.mold.moldDiscardListGet,
-        {},
-        res => {
-          if (res.code == "ok") {
-            //说明有东西需要保养
-            if (res.data.length > 0) {
-              this.notify("报废");
-            }
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },
-        error => {
-          this.editLoading = false;
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        }
-      );
-    },
-    //检查是否要进行保养提示
-    checkMaintainNotice() {
-      this.http.post(
-        this.port.mold.moldMaintainListGet,
-        {},
-        res => {
-          if (res.code == "ok") {
-            //说明有东西需要保养
-            if (res.data.length > 0) {
-              this.notify("保养");
-            }
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },
-        error => {
-          this.editLoading = false;
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        }
-      );
-    },
-    //右上角弹窗警告
-    notify(action) {
-      this.$notify({
-        title: "有模具需要" + action,
-        message: "请到消息列表中查看",
-        type: "warning",
-        duration: 0
-      });
-    },
     //标签页面切换时
     //标签页面切换时
     handleClick(tab, event) {
     handleClick(tab, event) {
       this.activeTab = tab.name;
       this.activeTab = tab.name;
-      //   this.getOperationRecord(this.activeTab);//应该是取得对应的消息
     }
     }
   },
   },
   mounted() {
   mounted() {
-    //告警 保养的烦人弹窗警告 先不弹出了
-    // this.checkMaintainNotice();
-    // this.checkDiscardNotice();
     if (this.user) {
     if (this.user) {
       var user = JSON.parse(this.user);
       var user = JSON.parse(this.user);
       this.user = user;
       this.user = user;

+ 178 - 27
ys_vue/src/views/base/comp.vue

@@ -18,12 +18,17 @@
 		<!--列表-->
 		<!--列表-->
 		<el-table :data="list" highlight-current-row :height="tableHeight" v-loading="listLoading" style="width: 100%;">
 		<el-table :data="list" highlight-current-row :height="tableHeight" v-loading="listLoading" style="width: 100%;">
             <el-table-column type="index" width="60"></el-table-column>
             <el-table-column type="index" width="60"></el-table-column>
-			<el-table-column prop="companyName" label="资产方名称" width="300" sortable></el-table-column>
-            <!-- <el-table-column prop="companyType" label="资产方类型" width="200" sortable>
+			<el-table-column prop="companyName" label="资产方名称" width="250" sortable></el-table-column>
+            <el-table-column prop="administrator" label="资产方管理员" width="150" sortable>
+            </el-table-column>
+            <el-table-column prop="relateCompanyList" label="关联生产方" width="400" sortable>
                 <template slot-scope="scope">
                 <template slot-scope="scope">
-                    {{ scope.row.companyType == 0?"资产方":"生产方" }}
+                    <span class="info" v-for="(item, index) in scope.row.relateCompanyList">
+                        {{item.companyName}}
+                        <span v-if="index != scope.row.relateCompanyList.length-1">、</span>
+                    </span>
                 </template>
                 </template>
-            </el-table-column> -->
+            </el-table-column>
             <el-table-column prop="companyAddress" label="资产方地址" sortable></el-table-column>
             <el-table-column prop="companyAddress" label="资产方地址" sortable></el-table-column>
 			<el-table-column label="操作" width="150">
 			<el-table-column label="操作" width="150">
 				<template slot-scope="scope">
 				<template slot-scope="scope">
@@ -47,24 +52,36 @@
 		</el-col>
 		</el-col>
 
 
         <!--新增界面-->
         <!--新增界面-->
-		<el-dialog title="新增资产方" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+		<el-dialog :title="addTitle" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 			<el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm">
 			<el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm">
-				<el-form-item label="资产方名称" prop="companyName">
+				<el-form-item label="资产方名称" prop="companyName" v-if="addState">
 					<el-input v-model="addForm.companyName" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 					<el-input v-model="addForm.companyName" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 				</el-form-item>
 				</el-form-item>
-                <!-- <el-form-item label="公司类型" prop="companyType">
-                    <el-select v-model="addForm.companyType" clearable filterable placeholder="请选择公司类型" style="width:533px">
-                        <el-option v-for="item in team" :key="item.value" :label="item.label" :value="item.value">
+                <el-form-item label="关联生产方" v-if="addState">
+                    <el-select v-model="addForm.companyIds" clearable multiple filterable placeholder="请选择生产方" style="width:533px">
+                        <el-option v-for="item in companys" :key="item.id" :label="item.companyName" :value="item.id">
                         </el-option>
                         </el-option>
                     </el-select>
                     </el-select>
-				</el-form-item> -->
-                <el-form-item label="资产方地址" prop="companyAddress">
+				</el-form-item>
+                <el-form-item label="资产方地址" prop="companyAddress" v-if="addState">
 					<el-input v-model="addForm.companyAddress" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 					<el-input v-model="addForm.companyAddress" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 				</el-form-item>
 				</el-form-item>
+                <el-form-item label="姓名" prop="username" v-if="!addState">
+					<el-input v-model="addForm.username" autocomplete="off" placeholder="请输入姓名"></el-input>
+				</el-form-item>
+				<el-form-item label="手机号" prop="account" v-if="!addState">
+					<el-input v-model="addForm.account" autocomplete="off" placeholder="请输入手机号(登录账号)"></el-input>
+				</el-form-item>
+                <el-form-item label="角色" v-if="!addState">
+                    <el-input v-model="addForm.roleName" autocomplete="off" placeholder="请输入角色名称"></el-input>
+				</el-form-item>
 			</el-form>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
 			<div slot="footer" class="dialog-footer">
+                <span v-if="!addState" style="color:#f00;float:left;margin-left:60px;">初始密码:000000</span>
 				<el-button @click.native="addFormVisible = false">取消</el-button>
 				<el-button @click.native="addFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
+                <el-button v-if="addState" type="primary" @click.native="toNext(0)">下一步</el-button>
+                <el-button v-if="!addState" type="primary" @click.native="toPart(0)">上一步</el-button>
+				<el-button v-if="!addState" type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
 			</div>
 			</div>
 		</el-dialog>
 		</el-dialog>
 
 
@@ -74,12 +91,12 @@
 				<el-form-item label="资产方名称" prop="companyName">
 				<el-form-item label="资产方名称" prop="companyName">
 					<el-input v-model="editForm.companyName" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 					<el-input v-model="editForm.companyName" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 				</el-form-item>
 				</el-form-item>
-                <!-- <el-form-item label="公司名称" prop="companyType">
-                    <el-select v-model="editForm.companyType" clearable filterable placeholder="请选择公司类型" style="width:533px">
-                        <el-option v-for="item in team" :key="item.value" :label="item.label" :value="item.value">
+                <el-form-item label="关联生产方">
+                    <el-select v-model="editForm.companyIds" clearable multiple filterable placeholder="请选择生产方" style="width:533px">
+                        <el-option v-for="item in companys" :key="item.id" :label="item.companyName" :value="item.id">
                         </el-option>
                         </el-option>
                     </el-select>
                     </el-select>
-				</el-form-item> -->
+				</el-form-item>
                 <el-form-item label="资产方地址" prop="companyAddress">
                 <el-form-item label="资产方地址" prop="companyAddress">
 					<el-input v-model="editForm.companyAddress" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 					<el-input v-model="editForm.companyAddress" autocomplete="off" placeholder="请输入资产方地址"></el-input>
 				</el-form-item>
 				</el-form-item>
@@ -97,10 +114,25 @@
 
 
 	export default {
 	export default {
 		data() {
 		data() {
+            var checkPhone = (rule, value, callback) => {
+                if (!value) {
+                    return callback(new Error('请输入联系方式'));
+                } else {
+                    const reg = /^1[0-9]\d{9}$/
+                    if (reg.test(value)) {
+                        callback();
+                    } else {
+                        return callback(new Error('请输入正确的联系方式'));
+                    }
+                }
+            };
 			return {
 			return {
 				filters: {
 				filters: {
                     keyName: ''
                     keyName: ''
                 },
                 },
+
+                user: JSON.parse(sessionStorage.getItem('user')),
+                companys:[],
 				list: [],
 				list: [],
 				total: 0,
 				total: 0,
                 page: 1,
                 page: 1,
@@ -112,33 +144,44 @@
 					companyName: [
 					companyName: [
 						{ required: true, message: '请输入资产方名称', trigger: 'blur' }
 						{ required: true, message: '请输入资产方名称', trigger: 'blur' }
                     ],
                     ],
-                    companyType: [
-                        { required: true, message:'请选择资产方类型', trigger: ['blur', 'change'] }
-                    ],
                     companyAddress: [
                     companyAddress: [
                         { required: true, message: '请输入资产方地址', trigger: 'blur' }
                         { required: true, message: '请输入资产方地址', trigger: 'blur' }
+                    ],
+                    username: [
+						{ required: true, message: '请输入姓名', trigger: 'blur' }
+                    ],
+                    account: [
+                        { required: true, validator: checkPhone, trigger: 'blur'}
                     ]
                     ]
                 },
                 },
 
 
                 team: [{label:'资产方',value:0},{label:'生产方',value:1}],
                 team: [{label:'资产方',value:0},{label:'生产方',value:1}],
+
                 // 新增界面
                 // 新增界面
 				addFormVisible: false,
 				addFormVisible: false,
-				addLoading: false,
+                addLoading: false,
+                addState: true,
+                addTitle: '新增资产方',
 				addForm: {
 				addForm: {
                     companyName: '',
                     companyName: '',
-                    companyType: 0,
                     companyAddress: '',
                     companyAddress: '',
+                    companyIds: [],
+                    username: '',
+                    account: '',
+                    companyId: '',
+                    roleName: "系统管理员",
                     flag: 0
                     flag: 0
 				},
 				},
                 
                 
                 // 编辑界面
                 // 编辑界面
 				editFormVisible: false,
 				editFormVisible: false,
-				editLoading: false,
+                editLoading: false,
 				editForm: {
 				editForm: {
 					id: 0,
 					id: 0,
                     companyName: '',
                     companyName: '',
                     companyType: 0,
                     companyType: 0,
                     companyAddress: '',
                     companyAddress: '',
+                    companyIds: [],
                     flag: 1
                     flag: 1
 				}
 				}
 			}
 			}
@@ -155,7 +198,28 @@
 				this.getComp();
 				this.getComp();
             },
             },
 
 
-			//获取用户列表
+            //获取基础数据
+            getMsg() {
+                this.http.post(this.port.base.relationList, {
+                    companyType: 1
+                }, res => {
+                    if (res.code == "ok") {
+                        this.companys = res.data;
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        });
+                    }
+                }, error => {
+                    this.$message({
+                        message: error,
+                        type: 'error'
+                    });
+                })
+            },
+
+			//获取资产方列表
 			getComp() {
 			getComp() {
 				this.listLoading = true;
 				this.listLoading = true;
                 this.http.post(this.port.base.companyList, {
                 this.http.post(this.port.base.companyList, {
@@ -181,15 +245,35 @@
                         type: 'error'
                         type: 'error'
                     });
                     });
                 })
                 })
+            }, 
+
+            toNext(i) {
+                if(i == 0) {
+                    this.addState = false;
+                     this.addTitle = '新增资产方管理员';
+                }
+            },
+
+            toPart(i) {
+                if(i == 0) {
+                    this.addState = true;
+                    this.addTitle = '新增资产方';
+                }
             },
             },
 
 
             //显示新增界面
             //显示新增界面
 			handleAdd() {
 			handleAdd() {
                 this.addFormVisible = true;
                 this.addFormVisible = true;
+                this.addState = true;
+                this.addTitle = '新增资产方';
 				this.addForm = {
 				this.addForm = {
                     companyName: '',
                     companyName: '',
-                    companyType: 0,
                     companyAddress: '',
                     companyAddress: '',
+                    companyIds: [],
+                    username: '',
+                    account: '',
+                    companyId: '',
+                    roleName: "系统管理员",
                     flag: 0
                     flag: 0
 				};
 				};
             },
             },
@@ -199,7 +283,54 @@
 				this.$refs.addForm.validate((valid) => {
 				this.$refs.addForm.validate((valid) => {
 					if (valid) {
 					if (valid) {
                         this.addLoading = true;
                         this.addLoading = true;
-                        this.http.post(this.port.base.addCompany, this.addForm , res => {
+                        var str = "";
+                        for(var i in this.addForm.companyIds){
+                            if(i == this.addForm.companyIds.length-1){
+                                str += this.addForm.companyIds
+                            } else {
+                                str += this.addForm.companyIds + ","
+                            }
+                        }
+                        this.http.post(this.port.base.addCompany, {
+                            companyName: this.addForm.companyName,
+                            companyType: 0,
+                            companyAddress: this.addForm.companyAddress,
+                            companyIds: str,
+                            flag: 0
+                        } , res => {
+                            if (res.code == "ok") {
+                                this.addPeo(res.data.id);
+                            } else {
+                                this.$message({
+                                    message: res.msg,
+                                    type: 'error'
+                                });
+                            }
+                        }, error => {
+                            this.addLoading = false;
+                            this.addFormVisible = false;
+                            this.$message({
+                                message: error,
+                                type: 'error'
+                            });
+                        })
+					}
+				});
+            },
+
+            //添加人员
+            addPeo(companyId) {
+                this.$refs.addForm.validate((valid) => {
+					if (valid) {
+                        this.http.post(this.port.project.addUser, {
+                            username: this.addForm.username,
+                            account: this.addForm.account,
+                            companyId: companyId,
+                            roleName: this.addForm.roleName,
+                            parentId: this.user.id,
+                            addType: 0,
+                            flag: 0
+                        } , res => {
                             this.addLoading = false;
                             this.addLoading = false;
                             if (res.code == "ok") {
                             if (res.code == "ok") {
                                 this.addFormVisible = false;
                                 this.addFormVisible = false;
@@ -258,11 +389,16 @@
 			//显示编辑界面
 			//显示编辑界面
 			handleEdit(index, row) {
 			handleEdit(index, row) {
                 this.editFormVisible = true;
                 this.editFormVisible = true;
+                var array = [];
+                for(var i in row.relateCompanyList) {
+                    array.push(row.relateCompanyList[i].id)
+                }
                 this.editForm = {
                 this.editForm = {
                     id: row.id,
                     id: row.id,
                     companyName: row.companyName,
                     companyName: row.companyName,
                     companyType: 0,
                     companyType: 0,
                     companyAddress: row.companyAddress,
                     companyAddress: row.companyAddress,
+                    companyIds: array,
                     flag: 1
                     flag: 1
 				};
 				};
             },
             },
@@ -271,8 +407,22 @@
 			editSubmit() {
 			editSubmit() {
 				this.$refs.editForm.validate((valid) => {
 				this.$refs.editForm.validate((valid) => {
 					if (valid) {
 					if (valid) {
-						this.editLoading = true;
-                        this.http.post(this.port.base.addCompany, this.editForm , res => {
+                        this.editLoading = true;
+                        var str = "";
+                        for(var i in this.editForm.companyIds){
+                            if(i == this.editForm.companyIds.length-1){
+                                str += this.editForm.companyIds
+                            } else {
+                                str += this.editForm.companyIds + ","
+                            }
+                        }
+                        this.http.post(this.port.base.addCompany, {
+                            companyName: this.editForm.companyName,
+                            companyType: 0,
+                            companyAddress: this.editForm.companyAddress,
+                            companyIds: str,
+                            flag: 1
+                        } , res => {
                             this.editLoading = false;
                             this.editLoading = false;
                             if (res.code == "ok") {
                             if (res.code == "ok") {
                                 this.editFormVisible = false;
                                 this.editFormVisible = false;
@@ -310,6 +460,7 @@
         },
         },
 
 
 		mounted() {
 		mounted() {
+            this.getMsg();
 			this.getComp();
 			this.getComp();
         }
         }
 	}
 	}

+ 163 - 13
ys_vue/src/views/base/factory.vue

@@ -18,7 +18,17 @@
 		<!--列表-->
 		<!--列表-->
 		<el-table :data="list" highlight-current-row :height="tableHeight" v-loading="listLoading" style="width: 100%;">
 		<el-table :data="list" highlight-current-row :height="tableHeight" v-loading="listLoading" style="width: 100%;">
             <el-table-column type="index" width="60"></el-table-column>
             <el-table-column type="index" width="60"></el-table-column>
-			<el-table-column prop="companyName" label="生产方名称" width="300" sortable></el-table-column>
+			<el-table-column prop="companyName" label="生产方名称" width="250" sortable></el-table-column>
+            <el-table-column prop="administrator" label="资产方管理员" width="150" sortable>
+            </el-table-column>
+            <el-table-column prop="relateCompanyList" label="关联资产方" width="400" sortable>
+                <template slot-scope="scope">
+                    <span class="info" v-for="(item, index) in scope.row.relateCompanyList">
+                        {{item.companyName}}
+                        <span v-if="index != scope.row.relateCompanyList.length-1">、</span>
+                    </span>
+                </template>
+            </el-table-column>
             <el-table-column prop="companyAddress" label="生产方地址" sortable></el-table-column>
             <el-table-column prop="companyAddress" label="生产方地址" sortable></el-table-column>
 			<el-table-column label="操作" width="150">
 			<el-table-column label="操作" width="150">
 				<template slot-scope="scope">
 				<template slot-scope="scope">
@@ -44,17 +54,35 @@
         <!--新增界面-->
         <!--新增界面-->
 		<el-dialog title="新增生产方" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 		<el-dialog title="新增生产方" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 			<el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm">
 			<el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm">
-				<el-form-item label="生产方名称" prop="factoryName">
+				<el-form-item label="生产方名称" prop="factoryName" v-if="addState">
 					<el-input v-model="addForm.companyName" autocomplete="off" placeholder="请输入生产方名称"></el-input>
 					<el-input v-model="addForm.companyName" autocomplete="off" placeholder="请输入生产方名称"></el-input>
 				</el-form-item>
 				</el-form-item>
-                <el-form-item label="生产方地址" prop="factoryArea">
-					<el-input v-model="addForm.companyAddress" autocomplete="off" :change="changeFactoryArea('addContainer')" placeholder="请输入生产方地址"></el-input>
+                <el-form-item label="关联资产方" v-if="addState">
+                    <el-select v-model="addForm.companyIds" clearable multiple filterable placeholder="请选择生产方" style="width:533px">
+                        <el-option v-for="item in companys" :key="item.id" :label="item.companyName" :value="item.id">
+                        </el-option>
+                    </el-select>
+				</el-form-item>
+                <el-form-item label="生产方地址" prop="factoryArea" v-show="addState">
+					<el-input v-model.lazy="addForm.companyAddress" autocomplete="off" @change="changeFactoryArea('addContainer')" placeholder="请输入生产方地址"></el-input>
+				</el-form-item>
+                <div id="addContainer" class="formMap" v-if="addState"></div>
+                <el-form-item label="姓名" prop="username" v-if="!addState">
+					<el-input v-model="addForm.username" autocomplete="off" placeholder="请输入姓名"></el-input>
+				</el-form-item>
+				<el-form-item label="手机号" prop="account" v-if="!addState">
+					<el-input v-model="addForm.account" autocomplete="off" placeholder="请输入手机号(登录账号)"></el-input>
+				</el-form-item>
+                <el-form-item label="角色" v-if="!addState">
+                    <el-input v-model="addForm.roleName" autocomplete="off" placeholder="请输入角色名称"></el-input>
 				</el-form-item>
 				</el-form-item>
-                <div id="addContainer" class="formMap"></div>
 			</el-form>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
 			<div slot="footer" class="dialog-footer">
+                 <span v-if="!addState" style="color:#f00;float:left;margin-left:60px;">初始密码:000000</span>
 				<el-button @click.native="addFormVisible = false">取消</el-button>
 				<el-button @click.native="addFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
+                <el-button v-if="addState" type="primary" @click.native="toNext(0)">下一步</el-button>
+                <el-button v-if="!addState" type="primary" @click.native="toPart(0)">上一步</el-button>
+				<el-button v-if="!addState" type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
 			</div>
 			</div>
 		</el-dialog>
 		</el-dialog>
 
 
@@ -83,10 +111,25 @@
 
 
 	export default {
 	export default {
 		data() {
 		data() {
+            var checkPhone = (rule, value, callback) => {
+                if (!value) {
+                    return callback(new Error('请输入联系方式'));
+                } else {
+                    const reg = /^1[0-9]\d{9}$/
+                    if (reg.test(value)) {
+                        callback();
+                    } else {
+                        return callback(new Error('请输入正确的联系方式'));
+                    }
+                }
+            };
 			return {
 			return {
 				filters: {
 				filters: {
                     keyName: ''
                     keyName: ''
                 },
                 },
+
+                user: JSON.parse(sessionStorage.getItem('user')),
+                companys:[],
 				list: [],
 				list: [],
 				total: 0,
 				total: 0,
                 page: 1,
                 page: 1,
@@ -100,6 +143,12 @@
                     ],
                     ],
                     companyAddress: [
                     companyAddress: [
                         { required: true, message: '请输入生产方地址', trigger: 'blur' }
                         { required: true, message: '请输入生产方地址', trigger: 'blur' }
+                    ],
+                    username: [
+						{ required: true, message: '请输入姓名', trigger: 'blur' }
+                    ],
+                    account: [
+                        { required: true, validator: checkPhone, trigger: 'blur'}
                     ]
                     ]
                 },
                 },
 
 
@@ -109,13 +158,20 @@
 
 
                 // 新增界面
                 // 新增界面
 				addFormVisible: false,
 				addFormVisible: false,
-				addLoading: false,
+                addLoading: false,
+                addState: true,
+                addTitle: '新增生产方',
 				addForm: {
 				addForm: {
                     companyName: '',
                     companyName: '',
                     companyType: 1,
                     companyType: 1,
                     companyAddress: '',
                     companyAddress: '',
-                    yLng: 0,
-                    xLat: 0,
+                    yLng: 116.397511,
+                    xLat: 39.907545,
+                    companyIds: [],
+                    username: '',
+                    account: '',
+                    companyId: '',
+                    roleName: "系统管理员",
                     flag: 0
                     flag: 0
 				},
 				},
                 
                 
@@ -145,6 +201,27 @@
 				this.getFactory();
 				this.getFactory();
             },
             },
 
 
+            //获取基础数据
+            getMsg() {
+                this.http.post(this.port.base.relationList, {
+                    companyType: 0
+                }, res => {
+                    if (res.code == "ok") {
+                        this.companys = res.data;
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        });
+                    }
+                }, error => {
+                    this.$message({
+                        message: error,
+                        type: 'error'
+                    });
+                })
+            },
+
 			//获取列表
 			//获取列表
 			getFactory() {
 			getFactory() {
 				this.listLoading = true;
 				this.listLoading = true;
@@ -183,15 +260,37 @@
                 
                 
             },
             },
 
 
+            toNext(i) {
+                if(i == 0) {
+                    this.addState = false;
+                     this.addTitle = '新增生产方管理员';
+                }
+            },
+
+            toPart(i) {
+                if(i == 0) {
+                    this.addState = true;
+                    this.addTitle = '新增生产方';
+                }
+                var _this = this
+                setTimeout(function(){ _this.setMap('addContainer'); }, 100);
+            },
+
             //显示新增界面
             //显示新增界面
 			handleAdd() {
 			handleAdd() {
                 this.addFormVisible = true;
                 this.addFormVisible = true;
+                this.addState = true;
+                this.addTitle = '新增资产方';
 				this.addForm = {
 				this.addForm = {
                     companyName: '',
                     companyName: '',
-                    companyType: 1,
                     companyAddress: '',
                     companyAddress: '',
                     yLng: 116.397511,
                     yLng: 116.397511,
                     xLat: 39.907545,
                     xLat: 39.907545,
+                    companyIds: [],
+                    username: '',
+                    account: '',
+                    companyId: '',
+                    roleName: "系统管理员",
                     flag: 0
                     flag: 0
                 };
                 };
             },
             },
@@ -201,7 +300,57 @@
 				this.$refs.addForm.validate((valid) => {
 				this.$refs.addForm.validate((valid) => {
 					if (valid) {
 					if (valid) {
                         this.addLoading = true;
                         this.addLoading = true;
-                        this.http.post(this.port.base.addCompany, this.addForm , res => {
+                        var str = "";
+                        for(var i in this.addForm.companyIds){
+                            if(i == this.addForm.companyIds.length-1){
+                                str += this.addForm.companyIds
+                            } else {
+                                str += this.addForm.companyIds + ","
+                            }
+                        }
+                        this.http.post(this.port.base.addCompany, {
+                            companyName: this.addForm.companyName,
+                            companyType: 1,
+                            companyAddress: this.addForm.companyAddress,
+                            yLng: this.addForm.yLng,
+                            xLat: this.addForm.xLat,
+                            companyIds: str,
+                            flag: 0
+                        } , res => {
+                            this.addLoading = false;
+                            if (res.code == "ok") {
+                                this.addPeo(res.data.id);
+                            } else {
+                                this.$message({
+                                    message: res.msg,
+                                    type: 'error'
+                                });
+                            }
+                        }, error => {
+                            this.addLoading = false;
+                            this.addFormVisible = false;
+                            this.$message({
+                                message: error,
+                                type: 'error'
+                            });
+                        })
+					}
+				});
+            },
+
+            //添加人员
+            addPeo(companyId) {
+                this.$refs.addForm.validate((valid) => {
+					if (valid) {
+                        this.http.post(this.port.project.addUser, {
+                            username: this.addForm.username,
+                            account: this.addForm.account,
+                            companyId: companyId,
+                            roleName: this.addForm.roleName,
+                            parentId: this.user.id,
+                            addType: 0,
+                            flag: 0
+                        } , res => {
                             this.addLoading = false;
                             this.addLoading = false;
                             if (res.code == "ok") {
                             if (res.code == "ok") {
                                 this.addFormVisible = false;
                                 this.addFormVisible = false;
@@ -308,13 +457,13 @@
                 if(mapId == 'addContainer') {
                 if(mapId == 'addContainer') {
                     this.map = new AMap.Map('addContainer', {
                     this.map = new AMap.Map('addContainer', {
                         resizeEnable: true, // 允许缩放
                         resizeEnable: true, // 允许缩放
-                        center:[118.784333,32.041546],
+                        center:[ this.addForm.yLng , this.addForm.xLat ],
                         zoom:10
                         zoom:10
                     })
                     })
 
 
                     this.marker = new AMap.Marker({
                     this.marker = new AMap.Marker({
                         map: this.map,
                         map: this.map,
-                        position: new AMap.LngLat(118.784333,32.041546),   // 经纬度
+                        position: new AMap.LngLat(this.addForm.yLng , this.addForm.xLat),   // 经纬度
                     });
                     });
                 } else {
                 } else {
                     this.map = new AMap.Map('editContainer', {
                     this.map = new AMap.Map('editContainer', {
@@ -407,6 +556,7 @@
             }
             }
         },
         },
 		mounted() {
 		mounted() {
+            this.getMsg();
 			this.getFactory();
 			this.getFactory();
         }
         }
 	}
 	}

+ 6 - 12
ys_vue/src/views/mold/moldDetail.vue

@@ -23,7 +23,7 @@
         <el-col :span="24" :style="allDetail">
         <el-col :span="24" :style="allDetail">
         <el-col :span="24" class="title">
         <el-col :span="24" class="title">
             模具基本信息
             模具基本信息
-            <i class="el-icon-edit editDetail" v-if="user.id == moldDetail.managerId || user.id == moldDetail.creatorId" @click="edit"></i>
+            <!-- <i class="el-icon-edit editDetail" v-if="user.id == moldDetail.managerId || user.id == moldDetail.creatorId" @click="edit"></i> -->
         </el-col>
         </el-col>
 
 
         <el-col :span="24" class="main">
         <el-col :span="24" class="main">
@@ -57,7 +57,7 @@
             </el-col>
             </el-col>
             <el-col :span="6" class="detail">
             <el-col :span="6" class="detail">
                 穴数:
                 穴数:
-                <span class="info">{{moldDetail.waterGap}}</span>
+                <span class="info">{{moldDetail.holes}}</span>
             </el-col>
             </el-col>
             <el-col :span="12" class="detail">
             <el-col :span="12" class="detail">
                 所属项目:
                 所属项目:
@@ -112,12 +112,7 @@
                 <el-dropdown-menu slot="dropdown">
                 <el-dropdown-menu slot="dropdown">
                     <el-dropdown-item @click.native="centerDialog3Visible = true">单个新建</el-dropdown-item>
                     <el-dropdown-item @click.native="centerDialog3Visible = true">单个新建</el-dropdown-item>
                     <el-dropdown-item>
                     <el-dropdown-item>
-                         <el-upload ref="upload"
-                            action="customize"
-                            :http-request="uploadPart"
-                            :show-file-list="false"
-                            :limit="1"
-                        >
+                         <el-upload ref="upload" action="customize" :http-request="uploadPart" :show-file-list="false" :limit="1">
                             批量导入
                             批量导入
                         </el-upload>
                         </el-upload>
                     </el-dropdown-item>
                     </el-dropdown-item>
@@ -139,7 +134,7 @@
 
 
             <!-- 更新4 --><!-- 目前还没加入权限 -->
             <!-- 更新4 --><!-- 目前还没加入权限 -->
             <el-button
             <el-button
-                v-show="activeTab == 4"
+                v-show="activeTab == 4 && user.id == moldDetail.managerId"
                 size="small"
                 size="small"
                 type="primary"
                 type="primary"
                 style="float: right;"
                 style="float: right;"
@@ -200,7 +195,6 @@
 
 
                 <!-- 零件文档 -->
                 <!-- 零件文档 -->
                 <el-tab-pane label="零件文档" name="1">
                 <el-tab-pane label="零件文档" name="1">
-
                     <el-table
                     <el-table
                         :data="documents.part"
                         :data="documents.part"
                         highlight-current-row
                         highlight-current-row
@@ -389,8 +383,8 @@
 
 
         <!-- 操作记录 -->
         <!-- 操作记录 -->
         <el-col :span="24" class="title">
         <el-col :span="24" class="title">
-            操作记录
-            <el-button size="small" type="primary" style="float: right;" @click="centerDialog5Visible = true">导出</el-button>
+            {{activeTab == 4?"更新":"操作"}}记录
+            <el-button v-if="user.id == moldDetail.managerId" size="small" type="primary" style="float: right;" @click="centerDialog5Visible = true">导出</el-button>
             </el-col>
             </el-col>
             <el-table :data="operations" highlight-current-row v-loading="listLoading" style="width: 100%;">
             <el-table :data="operations" highlight-current-row v-loading="listLoading" style="width: 100%;">
                 <el-table-column type="index" width="40"></el-table-column>
                 <el-table-column type="index" width="40"></el-table-column>

+ 96 - 14
ys_vue/src/views/mold/moldList.vue

@@ -24,7 +24,7 @@
                 <el-form-item>
                 <el-form-item>
                     <el-button type="primary" @click="getMoldList">查询</el-button>
                     <el-button type="primary" @click="getMoldList">查询</el-button>
                 </el-form-item>
                 </el-form-item>
-                <el-form-item style="float: right" v-if="user.parentId == 1">
+                <el-form-item style="float: right" v-if="user.parentId == 1 && user.subordinateType == 0">
                     <el-button type="primary" @click="showAdd">新建</el-button>
                     <el-button type="primary" @click="showAdd">新建</el-button>
                 </el-form-item>
                 </el-form-item>
             </el-form>
             </el-form>
@@ -47,7 +47,7 @@
             <el-table-column prop="produceCompany" label="所属生产方" width="200" sortable></el-table-column>
             <el-table-column prop="produceCompany" label="所属生产方" width="200" sortable></el-table-column>
             <el-table-column prop="initialModulus" label="初始模次" width="100" align="center" sortable></el-table-column>
             <el-table-column prop="initialModulus" label="初始模次" width="100" align="center" sortable></el-table-column>
             <el-table-column prop="settingLife" label="模次寿命" width="100" align="center" sortable></el-table-column>
             <el-table-column prop="settingLife" label="模次寿命" width="100" align="center" sortable></el-table-column>
-            <el-table-column prop="initial" label="穴数" width="100" align="center" sortable></el-table-column>
+            <el-table-column prop="holes" label="穴数" width="100" align="center" sortable></el-table-column>
             <el-table-column prop="rfid" label="对应RFID码" width="120" align="center" sortable></el-table-column>
             <el-table-column prop="rfid" label="对应RFID码" width="120" align="center" sortable></el-table-column>
             <el-table-column label="状态" width="100" align="center" sortable>
             <el-table-column label="状态" width="100" align="center" sortable>
                 <template slot-scope="scope">
                 <template slot-scope="scope">
@@ -55,7 +55,7 @@
                     <span v-else style="color:#999999;">静止</span>
                     <span v-else style="color:#999999;">静止</span>
                 </template>
                 </template>
             </el-table-column>
             </el-table-column>
-            <el-table-column label="操作" width="150" align="center" fixed="right" sortable v-if="user.parentId == 1">
+            <el-table-column label="操作" width="150" align="center" sortable v-if="user.parentId == 1 && user.subordinateType == 0">
                 <template slot-scope="scope">
                 <template slot-scope="scope">
                     <el-button size="small" type="danger" @click="handleDel(scope.row)">删除</el-button>
                     <el-button size="small" type="danger" @click="handleDel(scope.row)">删除</el-button>
                 </template>
                 </template>
@@ -89,6 +89,28 @@
                         <el-option v-for="item in boxes" :key="item.id" :label="item.equipmentNo" :value="item.id"></el-option>
                         <el-option v-for="item in boxes" :key="item.id" :label="item.equipmentNo" :value="item.id"></el-option>
                     </el-select>
                     </el-select>
                 </el-form-item>
                 </el-form-item>
+                <el-form-item label="初始模次" prop="initialModulus">
+                    <el-input v-model="addForm.initialModulus" autocomplete="off" placeholder="请输入初始模次"></el-input>
+                </el-form-item>
+                <el-form-item label="模次寿命" prop="settingLife">
+                    <el-input v-model="addForm.settingLife" autocomplete="off" placeholder="请输入模次寿命"></el-input>
+                </el-form-item>
+                <el-form-item label="RIFD码" prop="rfid">
+                    <el-input v-model="addForm.rfid" autocomplete="off" placeholder="请输入RIFD码"></el-input>
+                </el-form-item>
+                <el-form-item label="穴数" prop="holes">
+                    <el-input v-model="addForm.holes" autocomplete="off" placeholder="请输入穴数"></el-input>
+                </el-form-item>
+                <el-form-item label="所属生产方" prop="produceCompanyId">
+                    <el-select v-model="addForm.produceCompanyId" clearable filterable placeholder="请选择所属生产方" style="width:202px">
+                        <el-option v-for="item in companys" :key="item.id" :label="item.companyName" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="保养次数" prop="maintainCount">
+                    <el-select v-model="addForm.maintainCount" clearable multiple allow-create filterable default-first-option placeholder="请选择保养次数" style="width:515px">
+                        <el-option v-for="item in maintainCount" :key="item" :label="item" :value="item"></el-option>
+                    </el-select>
+                </el-form-item>
             </el-form>
             </el-form>
             <div slot="footer" class="dialog-footer">
             <div slot="footer" class="dialog-footer">
                 <el-button @click.native="addFormVisible = false">取消</el-button>
                 <el-button @click.native="addFormVisible = false">取消</el-button>
@@ -120,25 +142,49 @@
                         { required: true, message: "请输入模具名称", trigger: "blur" }
                         { required: true, message: "请输入模具名称", trigger: "blur" }
                     ],
                     ],
                     equipmentId: [
                     equipmentId: [
-                        {
-                            required: true,
-                            message: "请选择云模盒编号",
-                            trigger: ["blur", "change"]
-                        }
+                        { required: true, message: "请选择云模盒编号", trigger: ["blur", "change"] }
+                    ],
+                    initialModulus: [
+                        { required: true, message: "请输入初始模次", trigger: "blur" }
+                    ],
+                    settingLife: [
+                        { required: true, message: "请输入模次寿命", trigger: "blur" }
+                    ],
+                    rfid: [
+                        { required: true, message: "请输入RIFD码", trigger: "blur" }
+                    ],
+                    holes: [
+                        { required: true, message: "请输入穴数", trigger: "blur" }
+                    ],
+                    produceCompanyId: [
+                        { required: true, message: "请选择所属生产方", trigger: ["blur", "change"] }
+                    ],
+                    maintainCount: [
+                        { required: true, message: "请输入保养次数", trigger: ["blur", "change"] }
                     ]
                     ]
                 },
                 },
                 listLoading: false,
                 listLoading: false,
                 total: 0,
                 total: 0,
                 tableHeight: 0,
                 tableHeight: 0,
+
                 boxes: [],
                 boxes: [],
+                companys: [],
                 projects: [],
                 projects: [],
 
 
+                maintainCount: [5000,10000,15000,20000,25000],
+
                 addLoading: false,
                 addLoading: false,
                 addFormVisible: false,
                 addFormVisible: false,
                 addForm: {
                 addForm: {
                     modelNo: "",
                     modelNo: "",
                     modelName: "",
                     modelName: "",
-                    equipmentId: ""
+                    equipmentId: "",
+                    initialModulus: "",
+                    settingLife: "",
+                    maintainCount: [],
+                    rfid: "",
+                    holes: "",
+                    produceCompanyId: ""
                 }
                 }
             };
             };
         },
         },
@@ -165,6 +211,27 @@
                     });
                     });
                 });
                 });
 
 
+                this.http.post( this.port.base.ownerComps, {
+                    id: this.user.companyId
+                },
+                res => {
+                    if (res.code == "ok") {
+                        this.companys = res.data;
+                    } else {
+                        this.$message({
+                        message: res.msg,
+                        type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.listLoading = false;
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+
                 this.http.post( this.port.project.projects, {},
                 this.http.post( this.port.project.projects, {},
                 res => {
                 res => {
                     if (res.code == "ok") {
                     if (res.code == "ok") {
@@ -277,7 +344,13 @@
                 this.addForm = {
                 this.addForm = {
                     modelNo: "",
                     modelNo: "",
                     modelName: "",
                     modelName: "",
-                    equipmentId: ""
+                    equipmentId: "",
+                    initialModulus: "",
+                    settingLife: "",
+                    maintainCount: [],
+                    rfid: "",
+                    holes: "",
+                    produceCompanyId: ""
                 };
                 };
             },
             },
 
 
@@ -285,9 +358,16 @@
                 this.$refs.addForm.validate(valid => {
                 this.$refs.addForm.validate(valid => {
                     if (valid) {
                     if (valid) {
                         this.addLoading = true;
                         this.addLoading = true;
-                        this.http.post(
-                            this.port.mold.addMold,
-                            this.addForm,
+                        var maintainCount = this.addForm.maintainCount , str = "";
+                        for(var i in maintainCount) {
+                            if(i == maintainCount.length-1){
+                                str += maintainCount[i]
+                            } else {
+                                str += maintainCount[i] + ","
+                            }
+                        }
+                        this.addForm.maintainCount = str;
+                        this.http.post( this.port.mold.addMold, this.addForm,
                         res => {
                         res => {
                             this.addLoading = false;
                             this.addLoading = false;
                             if (res.code == "ok") {
                             if (res.code == "ok") {
@@ -325,7 +405,9 @@
             };
             };
         },
         },
         mounted() {
         mounted() {
-            this.getMsg();
+            if(this.user.id != 1){
+                this.getMsg();
+            }
             this.getMoldList();
             this.getMoldList();
         }
         }
     };
     };

+ 45 - 25
ys_vue/src/views/project/project.vue

@@ -9,7 +9,7 @@
 				<el-form-item>
 				<el-form-item>
 					<el-button type="primary" v-on:click="getProject">查询</el-button>
 					<el-button type="primary" v-on:click="getProject">查询</el-button>
 				</el-form-item>
 				</el-form-item>
-				<el-form-item style="float:right;" v-if="user.parentId == 1">
+				<el-form-item style="float:right;" v-if="user.parentId == 1 && user.subordinateType == 0">
 					<el-button type="primary" @click="handleAdd">新增</el-button>
 					<el-button type="primary" @click="handleAdd">新增</el-button>
 				</el-form-item>
 				</el-form-item>
 			</el-form>
 			</el-form>
@@ -26,7 +26,7 @@
 			</el-table-column>
 			</el-table-column>
             <el-table-column prop="ownerCompanyName" label="资产方公司" sortable>
             <el-table-column prop="ownerCompanyName" label="资产方公司" sortable>
 			</el-table-column>
 			</el-table-column>
-            <el-table-column prop="customCompaniesStr" label="生产方公司" width="500">
+            <el-table-column prop="customCompaniesStr" label="生产方公司" width="450">
 			</el-table-column>
 			</el-table-column>
             <el-table-column prop="manager" label="项目经理" width="100" align="center" sortable>
             <el-table-column prop="manager" label="项目经理" width="100" align="center" sortable>
 			</el-table-column>
 			</el-table-column>
@@ -63,18 +63,11 @@
                     </el-form-item>
                     </el-form-item>
                 </el-col>
                 </el-col>
                 <el-col :span="24">
                 <el-col :span="24">
-                    <el-form-item label="生产方公司" prop="customerCompany">
-                        <el-select v-model="addForm.customerCompany" clearable filterable multiple placeholder="请选择生产方公司" @change="companyChange" value-key='id' style="width:510px">
-                            <!-- @change="companyChange(0)"  -->
-                            <el-option v-for="item in company" :key="item.id" :label="item.companyName" :value="item">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="24">
-                    <el-form-item label="项目经理" prop="managerId">
-                        <el-select v-model="addForm.managerId" clearable filterable placeholder="请选择项目经理" value-key='id' style="width:510px">
-                            <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
+                    <el-form-item label="项目模具" prop="mold">
+                        <el-select v-model="addForm.mold" clearable filterable multiple placeholder="请选择项目模具" value-key='id' style="width:510px">
+                            <el-option v-for="item in molds" :key="item.id" :label="item.modelName" :value="item">
+                                <span style="float: left">{{ item.modelName }}</span>
+                                <span style="float: right; color: #8492a6; font-size: 6px;margin-right:17px;">{{ item.produceCompany }}</span>
                             </el-option>
                             </el-option>
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
@@ -100,6 +93,7 @@
                 user: JSON.parse(sessionStorage.getItem('user')),
                 user: JSON.parse(sessionStorage.getItem('user')),
                 company:[],
                 company:[],
                 charger: [],
                 charger: [],
+                molds: [],
 
 
 				list: [],
 				list: [],
 				total: 0,
 				total: 0,
@@ -112,8 +106,8 @@
 					projectName: [
 					projectName: [
 						{ required: true, message: '请输入项目名称', trigger: 'blur' }
 						{ required: true, message: '请输入项目名称', trigger: 'blur' }
                     ],
                     ],
-                    customerCompany: [
-                        { required: true, message: '请选择客户公司', trigger: 'blur' }
+                    mold: [
+                        { required: true, message: '请选择项目模具', trigger: ['blur','change'] }
                     ],
                     ],
                     managerId: [
                     managerId: [
                         { required: true, message: '请选择项目经理', trigger: ['blur','change'] }
                         { required: true, message: '请选择项目经理', trigger: ['blur','change'] }
@@ -125,7 +119,7 @@
 				//新增界面数据
 				//新增界面数据
 				addForm: {
 				addForm: {
 					projectName: '',
 					projectName: '',
-                    customerCompany: [],
+                    mold: [],
                     managerId: ''
                     managerId: ''
 				}
 				}
 
 
@@ -177,6 +171,26 @@
                         type: 'error'
                         type: 'error'
                     });
                     });
                 })
                 })
+
+                // 获取模具
+                this.http.post(this.port.mold.modelList, {
+                    parentId: this.user.parentId,
+                    id: this.user.id
+                }, res => {
+                    if (res.code == "ok") {
+                        this.molds = res.data;
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        });
+                    }
+                }, error => {
+                    this.$message({
+                        message: error,
+                        type: 'error'
+                    });
+                })
             },
             },
 
 
 			//分页
 			//分页
@@ -212,7 +226,7 @@
                             }
                             }
                             list[i].customCompaniesStr = customCompaniesStr;
                             list[i].customCompaniesStr = customCompaniesStr;
                         }
                         }
-                        this.list = res.data.list;
+                        this.list = list;
                         this.total = res.data.total;
                         this.total = res.data.total;
                     } else {
                     } else {
                         this.$message({
                         this.$message({
@@ -238,8 +252,8 @@
             companyChange() {
             companyChange() {
                 var param = {} ,
                 var param = {} ,
                     str = this.user.companyId;
                     str = this.user.companyId;
-                for(var i in this.addForm.customerCompany){
-                    str += "," + this.addForm.customerCompany[i].id;
+                for(var i in this.addForm.molds){
+                    str += "," + this.addForm.molds[i].companyId;
                 }
                 }
                 param.companyIds = str;
                 param.companyIds = str;
                 param.id = this.user.id
                 param.id = this.user.id
@@ -265,7 +279,7 @@
 				this.addFormVisible = true;
 				this.addFormVisible = true;
 				this.addForm = {
 				this.addForm = {
 					projectName: '',
 					projectName: '',
-                    customerCompany: '',
+                    mold: [],
                     managerId: ''
                     managerId: ''
 				};
 				};
             },
             },
@@ -275,13 +289,18 @@
 				this.$refs.addForm.validate((valid) => {
 				this.$refs.addForm.validate((valid) => {
 					if (valid) {
 					if (valid) {
                         var cId = "",
                         var cId = "",
-                            cName = "";
-                        for(var i in this.addForm.customerCompany){
-                            cId += this.addForm.customerCompany[i].id + ",";
-                            cName += this.addForm.customerCompany[i].companyName + ",";
+                            cName = "",
+                            mId = "";
+
+                        for(var i in this.addForm.mold){
+                            cId += this.addForm.mold[i].produceCompanyId + ",";
+                            cName += this.addForm.mold[i].produceCompany + ",";
+                            mId += this.addForm.mold[i].id + ","
                         }
                         }
                         cId = cId.substring(0,cId.length-1);
                         cId = cId.substring(0,cId.length-1);
                         cName = cName.substring(0,cName.length-1);
                         cName = cName.substring(0,cName.length-1);
+                        mId = mId.substring(0,mId.length-1);
+
                         this.addLoading = true;
                         this.addLoading = true;
                         this.http.post(this.port.project.addProject, {
                         this.http.post(this.port.project.addProject, {
                             projectName: this.addForm.projectName,
                             projectName: this.addForm.projectName,
@@ -289,6 +308,7 @@
                             customerCompanyNames: cName,
                             customerCompanyNames: cName,
                             manager: this.addForm.managerId.username,
                             manager: this.addForm.managerId.username,
                             managerId: this.addForm.managerId.id,
                             managerId: this.addForm.managerId.id,
+                            modelIds: mId,
                             flag: 0
                             flag: 0
                         } , res => {
                         } , res => {
                             this.addLoading = false;
                             this.addLoading = false;

+ 350 - 106
ys_vue/src/views/project/projectDetail.vue

@@ -13,6 +13,8 @@
                 </el-form-item>
                 </el-form-item>
             </el-form>
             </el-form>
         </el-col>
         </el-col>
+
+
         <el-col :span="24" :style="allDetail">
         <el-col :span="24" :style="allDetail">
             <el-col :span="24" class="title">项目基本信息
             <el-col :span="24" class="title">项目基本信息
                 <i class="el-icon-edit editDetail" v-if="user.id == proDetail.managerId || user.id == proDetail.creatorId" @click="edit"></i>
                 <i class="el-icon-edit editDetail" v-if="user.id == proDetail.managerId || user.id == proDetail.creatorId" @click="edit"></i>
@@ -41,64 +43,97 @@
                         <span v-if="index != proDetail.customCompanies.length-1">、</span>
                         <span v-if="index != proDetail.customCompanies.length-1">、</span>
                     </span>
                     </span>
                 </el-col>
                 </el-col>
-                <el-col :span="24" class="detail">
+                <!-- <el-col :span="24" class="detail">
                     项目模具:
                     项目模具:
                     <span class="info model" v-for="(item, index) in proDetail.models">
                     <span class="info model" v-for="(item, index) in proDetail.models">
                         <span @click="toMold(item.id)">{{item.modelName}}({{item.modelNo}})</span>
                         <span @click="toMold(item.id)">{{item.modelName}}({{item.modelNo}})</span>
                         <span v-if="index != proDetail.models.length-1">、</span>
                         <span v-if="index != proDetail.models.length-1">、</span>
                     </span>
                     </span>
-                </el-col>
+                </el-col> -->
                 <el-col :span="24" class="detail">
                 <el-col :span="24" class="detail">
-                    资产方人员:
-                    <span class="info" v-for="(item, index) in proDetail.ownerUsers">
+                    普通人员:
+                    <span class="info" v-for="(item, index) in proDetail.participateUsers">
                         {{item.username}}
                         {{item.username}}
-                        <span v-if="index != proDetail.ownerUsers.length-1">、</span>
+                        <span v-if="index != proDetail.participateUsers.length-1">、</span>
                     </span>
                     </span>
                 </el-col>
                 </el-col>
-                <el-col :span="24" class="detail">
+                <!-- <el-col :span="24" class="detail">
                     生产方人员:
                     生产方人员:
                     <span class="info" v-for="(item, index) in proDetail.customUsers">
                     <span class="info" v-for="(item, index) in proDetail.customUsers">
                         {{item.username}}
                         {{item.username}}
                         <span v-if="index != proDetail.customUsers.length-1">、</span>
                         <span v-if="index != proDetail.customUsers.length-1">、</span>
                     </span>
                     </span>
-                </el-col>
-            </el-col>
-
-            <el-col :span="24" class="title">项目文档
-                <!-- update == 1 -->
-                <el-upload v-if="user.id == proDetail.managerId" class="upload-demo" action="customize" :http-request="uploadFile" :show-file-list="false" multiple :limit="5" style="float:right;">
-                    <el-button size="small" type="primary" :loading="upLoading">点击上传</el-button>
-                </el-upload>
+                </el-col> -->
             </el-col>
             </el-col>
+             
             <el-col :span="24">
             <el-col :span="24">
-                <el-table :data="files" highlight-current-row v-loading="listLoading" height="400" style="width: 100%;">
-                    <el-table-column type="index" width="40"></el-table-column>
-                    <el-table-column prop="fileName" label="名称" sortable></el-table-column>
-                    <el-table-column prop="fileSize" label="大小" width="150" align="center" sortable></el-table-column>
-                    <el-table-column prop="uploader" label="上传者" width="120" align="center" sortable></el-table-column>
-                    <el-table-column prop="indate" label="上传时间" width="200" align="center" sortable></el-table-column>
-                    <el-table-column label="操作" width="220" align="center" sortable>
-                        <template slot-scope="scope" v-if="download == 1">
-                            <el-button size="small" @click="dowloadFile(scope.row.id)">
-                                <a :href="scope.row.url" :download="scope.row.fileName">下载</a>
-                            </el-button>
-                            <el-button size="small" type="danger" @click="fileDel(scope.row.id)" v-if="scope.row.uploaderId == user.id">删除</el-button>
+                <el-collapse v-model="activeNames">
+                    <el-collapse-item name="1">
+                        <template slot="title">
+                            <el-col :span="24" class="title">项目模具</el-col>
+                        </template>
+                        <el-col :span="24" class="detail">
+                            <el-table :data="proDetail.models" highlight-current-row v-loading="modelsLoading" style="width: 100%;">
+                                <el-table-column type="index" width="40"></el-table-column>
+                                <el-table-column prop="modelNo" label="模具编号" width="200" sortable>
+                                    <template slot-scope="scope">
+                                        <span class="model" @click="toMold(scope.row.id)">{{scope.row.modelNo}}</span>
+                                    </template>
+                                </el-table-column>
+                                <el-table-column prop="modelName" label="模具名称" width="500" sortable></el-table-column>
+                                <el-table-column prop="produceCompanyName" label="所属生产商" sortable></el-table-column>
+                            </el-table>
+                        </el-col>
+                    </el-collapse-item>
+
+                    <el-collapse-item name="2">
+                        <template slot="title">
+                            <el-col :span="24" class="title">项目文档
+                                <!-- update == 1 -->
+                                <el-upload v-if="user.id == proDetail.managerId" action="customize" :http-request="uploadFile" :show-file-list="false" multiple :limit="5" style="float:right;margin-right:20px;">
+                                    <el-button size="small" type="primary" :loading="upLoading">点击上传</el-button>
+                                </el-upload>
+                            </el-col>
                         </template>
                         </template>
-                        <template slot-scope="scope" v-else>
-                            -
+                        <el-col :span="24" class="detail">
+                            <el-table :data="files" highlight-current-row v-loading="listLoading" style="width: 100%;">
+                                <el-table-column type="index" width="40"></el-table-column>
+                                <el-table-column prop="fileName" label="名称" sortable></el-table-column>
+                                <el-table-column prop="fileSize" label="大小" width="150" align="center" sortable></el-table-column>
+                                <el-table-column prop="uploader" label="上传者" width="120" align="center" sortable></el-table-column>
+                                <el-table-column prop="indate" label="上传时间" width="200" align="center" sortable></el-table-column>
+                                <el-table-column label="操作" width="220" align="center" sortable>
+                                    <template slot-scope="scope" v-if="download == 1">
+                                        <el-button size="small" @click="dowloadFile(scope.row.id)">
+                                            <a :href="scope.row.url" :download="scope.row.fileName">下载</a>
+                                        </el-button>
+                                        <el-button size="small" type="danger" @click="fileDel(scope.row.id)" v-if="scope.row.uploaderId == user.id">删除</el-button>
+                                    </template>
+                                    <template slot-scope="scope" v-else>
+                                        -
+                                    </template>
+                                </el-table-column>
+                            </el-table>
+                        </el-col>
+                    </el-collapse-item>
+
+                    <el-collapse-item name="3">
+                        <template slot="title">
+                            <el-col :span="24" class="title">操作记录</el-col>
                         </template>
                         </template>
-                    </el-table-column>
-                </el-table>
+                        <el-col :span="24" class="detail">
+                            <el-table :data="opers" highlight-current-row v-loading="oplistLoading" style="width: 100%;">
+                                <el-table-column type="index" width="40"></el-table-column>
+                                <el-table-column prop="content" label="操作" width="120" sortable></el-table-column>
+                                <el-table-column prop="fileName" label="操作文档名称" sortable></el-table-column>
+                                <el-table-column prop="operator" label="操作人" width="120" align="center" sortable></el-table-column>
+                                <el-table-column prop="indate" label="操作时间" width="200" align="center" sortable></el-table-column>
+                            </el-table>
+                        </el-col>
+                    </el-collapse-item>
+                </el-collapse>
             </el-col>
             </el-col>
-
-            <el-col :span="24" class="title">操作记录</el-col>
-            <el-table :data="opers" highlight-current-row v-loading="oplistLoading" height="400" style="width: 100%;">
-                <el-table-column type="index" width="40"></el-table-column>
-                <el-table-column prop="content" label="操作" width="120" sortable></el-table-column>
-                <el-table-column prop="fileName" label="操作文档名称" sortable></el-table-column>
-                <el-table-column prop="operator" label="操作人" width="120" align="center" sortable></el-table-column>
-                <el-table-column prop="indate" label="操作时间" width="200" align="center" sortable></el-table-column>
-            </el-table>
+            
         </el-col>
         </el-col>
 
 
         <!--编辑界面-->
         <!--编辑界面-->
@@ -110,16 +145,18 @@
                     </el-form-item>
                     </el-form-item>
                 </el-col>
                 </el-col>
                 <el-col :span="24">
                 <el-col :span="24">
-                    <el-form-item label="生产方公司" prop="customerCompany">
-                        <el-select v-model="editForm.customerCompany" clearable filterable multiple placeholder="请选择生产方公司" @change="companyChange" value-key='id' style="width:510px">
-                            <el-option v-for="item in company" :key="item.companyName" :label="item.companyName" :value="item">
+                    <el-form-item label="项目模具" prop="modelIds">
+                        <el-select v-model="editForm.modelIds" clearable filterable multiple placeholder="请选择项目模具" value-key='id' style="width:510px">
+                            <el-option v-for="item in molds" :key="item.id" :label="item.modelName" :value="item">
+                                <span style="float: left">{{ item.modelName }}</span>
+                                <span style="float: right; color: #8492a6; font-size: 6px;margin-right:17px;">{{ item.produceCompany }}</span>
                             </el-option>
                             </el-option>
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
                 </el-col>
                 </el-col>
                 <el-col :span="24">
                 <el-col :span="24">
                     <el-form-item label="项目经理" prop="managerId">
                     <el-form-item label="项目经理" prop="managerId">
-                        <el-select v-model="editForm.managerId" clearable filterable placeholder="请选择项目经理" value-key='id' style="width:510px">
+                        <el-select v-model="editForm.managerId" @change="changeStaff(0)" clearable filterable placeholder="请选择项目经理" value-key='id' style="width:510px">
                             <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
                             <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
                             </el-option>
                             </el-option>
                         </el-select>
                         </el-select>
@@ -127,7 +164,7 @@
                 </el-col>
                 </el-col>
                 <el-col :span="12">
                 <el-col :span="12">
                     <el-form-item label="资产方审批人" prop="ownerApproverId">
                     <el-form-item label="资产方审批人" prop="ownerApproverId">
-                        <el-select v-model="editForm.ownerApproverId" clearable filterable placeholder="请选择资产方审批人" value-key='id' style="width:190px">
+                        <el-select v-model="editForm.ownerApproverId" @change="changeStaff(0)" clearable filterable placeholder="请选择资产方审批人" value-key='id' style="width:190px">
                             <el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
                             <el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
                             </el-option>
                             </el-option>
                         </el-select>
                         </el-select>
@@ -135,21 +172,21 @@
                 </el-col>
                 </el-col>
                 <el-col :span="12">
                 <el-col :span="12">
                     <el-form-item label="生产方审批人" prop="customerApproverId">
                     <el-form-item label="生产方审批人" prop="customerApproverId">
-                        <el-select v-model="editForm.customerApproverId" clearable filterable placeholder="请选择生产方审批人" value-key='id' style="width:190px">
+                        <el-select v-model="editForm.customerApproverId" @change="changeStaff(0)" clearable filterable placeholder="请选择生产方审批人" value-key='id' style="width:190px">
                             <el-option v-for="item in produce" :key="item.id" :label="item.username" :value="item.id">
                             <el-option v-for="item in produce" :key="item.id" :label="item.username" :value="item.id">
                             </el-option>
                             </el-option>
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
                 </el-col>
                 </el-col>
                 <el-col :span="24">
                 <el-col :span="24">
-                    <el-form-item label="项目模具">
-                        <el-select v-model="editForm.modelIds" clearable filterable multiple placeholder="请选择项目模具" style="width:510px">
-                            <el-option v-for="item in molds" :key="item.id" :label="item.modelName" :value="item.id">
+                    <el-form-item label="项目普通用户">
+                        <el-select v-model="editForm.users" @change="changeStaff(1)" clearable filterable multiple placeholder="请选择项目普通用户" style="width:510px">
+                            <el-option v-for="item in general" :key="item.id" :label="item.username" :value="item.id">
                             </el-option>
                             </el-option>
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
                 </el-col>
                 </el-col>
-                <el-col :span="24">
+                <!-- <el-col :span="24">
                     <el-form-item label="资产方参与人">
                     <el-form-item label="资产方参与人">
                         <el-select v-model="editForm.assets" clearable filterable multiple placeholder="请选择资产方参与人" style="width:510px">
                         <el-select v-model="editForm.assets" clearable filterable multiple placeholder="请选择资产方参与人" style="width:510px">
                             <el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
                             <el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
@@ -164,13 +201,41 @@
                             </el-option>
                             </el-option>
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
-                </el-col>
+                </el-col> -->
 			</el-form>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
 			<div slot="footer" class="dialog-footer">
+                <el-button size="small" style="float:left;margin-left:20px;" type="primary" @click.native="addStaff" :loading="editLoading">添加人员</el-button>
 				<el-button @click.native="editFormVisible = false">取消</el-button>
 				<el-button @click.native="editFormVisible = false">取消</el-button>
 				<el-button type="primary" @click.native="addSubmit" :loading="editLoading">提交</el-button>
 				<el-button type="primary" @click.native="addSubmit" :loading="editLoading">提交</el-button>
 			</div>
 			</div>
 		</el-dialog>
 		</el-dialog>
+
+        <!--新增界面-->
+		<el-dialog title="新增人员" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+			<el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm" :inline="true" class="demo-form-inline">
+				<el-form-item label="姓名" prop="username">
+					<el-input v-model="addForm.username" autocomplete="off" placeholder="请输入姓名"></el-input>
+				</el-form-item>
+				<el-form-item label="手机号" prop="account">
+					<el-input v-model="addForm.account" autocomplete="off" placeholder="请输入手机号(登录账号)"></el-input>
+				</el-form-item>
+                <el-form-item label="公司" prop="companyId">
+					<el-select v-model="addForm.companyId" clearable filterable placeholder="请选择所属公司" style="width:202px">
+                        <el-option v-for="item in staffComp" :key="item.id" :label="item.companyName" :value="item.id">
+                        </el-option>
+                    </el-select>
+				</el-form-item>
+                <el-form-item label="角色">
+                    <el-input v-model="addForm.roleName" autocomplete="off" placeholder="请输入角色名称"></el-input>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+                <span style="color:#f00;float:left;margin-left:60px;">初始密码:000000</span>
+				<el-button @click.native="addFormVisible = false">取消</el-button>
+                <el-button type="primary" @click.native="addPeople(1)" :loading="addLoading">提交并新增</el-button>
+				<el-button type="primary" @click.native="addPeople(0)" :loading="addLoading">提交</el-button>
+			</div>
+		</el-dialog>
     </section>
     </section>
 </template>
 </template>
 
 
@@ -178,7 +243,21 @@
     import util from "../../common/js/util";
     import util from "../../common/js/util";
     export default {
     export default {
         data() {
         data() {
+            var checkPhone = (rule, value, callback) => {
+                if (!value) {
+                    return callback(new Error('请输入联系方式'));
+                } else {
+                    const reg = /^1[0-9]\d{9}$/
+                    if (reg.test(value)) {
+                        callback();
+                    } else {
+                        return callback(new Error('请输入正确的联系方式'));
+                    }
+                }
+            };
             return {
             return {
+                activeNames: ['1','2','3'],
+
                 detailId: this.$route.params.id,
                 detailId: this.$route.params.id,
                 user: JSON.parse(sessionStorage.getItem('user')),
                 user: JSON.parse(sessionStorage.getItem('user')),
                 //临时数据
                 //临时数据
@@ -193,6 +272,7 @@
                 },
                 },
 
 
                 listLoading: false,
                 listLoading: false,
+                modelsLoading: false,
                 upLoading: false,
                 upLoading: false,
                 oplistLoading: false,
                 oplistLoading: false,
                 activePage: 0,
                 activePage: 0,
@@ -202,10 +282,15 @@
                 view: 0,
                 view: 0,
                 approve: 0,
                 approve: 0,
 
 
-                company:[],
+                company: [],
+
+                staffComp: [],
+                allUser: [],
                 assets: [],
                 assets: [],
                 produce: [],
                 produce: [],
                 charger: [],
                 charger: [],
+                general: [],
+
                 formRules: {
                 formRules: {
 					projectName: [
 					projectName: [
 						{ required: true, message: '请输入项目名称', trigger: 'blur' }
 						{ required: true, message: '请输入项目名称', trigger: 'blur' }
@@ -213,6 +298,9 @@
                     customerCompany: [
                     customerCompany: [
                         { required: true, message: '请选择客户公司', trigger: 'blur' }
                         { required: true, message: '请选择客户公司', trigger: 'blur' }
                     ],
                     ],
+                    modelIds: [
+                        { required: true, message: '请选择项目模具', trigger: ['blur','change'] }
+                    ],
                     managerId: [
                     managerId: [
                         { required: true, message: '请选择项目经理', trigger: ['blur','change'] }
                         { required: true, message: '请选择项目经理', trigger: ['blur','change'] }
                     ],
                     ],
@@ -221,7 +309,20 @@
                     ],
                     ],
                     customerApproverId: [
                     customerApproverId: [
                         { required: true, message: '请选择生产方审批人', trigger: ['blur','change'] }
                         { required: true, message: '请选择生产方审批人', trigger: ['blur','change'] }
-                    ]
+                    ],
+                    // 新建人员
+                    username: [
+						{ required: true, message: '请输入姓名', trigger: 'blur' }
+                    ],
+                    account: [
+						{ required: true, validator: checkPhone, trigger: 'blur'}
+                    ],
+                    teamName: [
+						{ required: true, message: '请选择人员类型', trigger: ["blur",'change'] }
+					],
+                    companyId: [
+						{ required: true, message: '请选择所属公司', trigger: ["blur",'change'] }
+					],
                 },
                 },
                 
                 
                 editFormVisible: false,//新增界面是否显示
                 editFormVisible: false,//新增界面是否显示
@@ -234,9 +335,20 @@
                     ownerApproverId: '',
                     ownerApproverId: '',
                     customerApproverId: '',
                     customerApproverId: '',
                     modelIds: [],
                     modelIds: [],
-                    assets: [],
-                    produce: []
-				}
+                    users: []
+                },
+
+                //新增界面是否显示
+                addFormVisible: false,
+				addLoading: false,
+				//新增界面数据
+				addForm: {
+					username: '',
+                    account: '',
+					companyId: '',
+                    roleName: '',
+                    flag: 0
+				},
             };
             };
         },
         },
         methods: {
         methods: {
@@ -245,16 +357,21 @@
                 this.$router.go(-1);
                 this.$router.go(-1);
                 // this.$router.push("/project");
                 // this.$router.push("/project");
             },
             },
+
             toMold(id) {
             toMold(id) {
                 this.$router.push('/moldList/' + id);
                 this.$router.push('/moldList/' + id);
             },
             },
+            
             handleClick(tab, event) {
             handleClick(tab, event) {
             },
             },
+
             //获取详情
             //获取详情
             getDetail() {
             getDetail() {
+                this.modelsLoading = true;
                 this.http.post(this.port.project.projectDetail, {
                 this.http.post(this.port.project.projectDetail, {
                     id: this.detailId
                     id: this.detailId
                 }, res => {
                 }, res => {
+                    this.modelsLoading = false;
                     if (res.code == "ok") {
                     if (res.code == "ok") {
                         this.update = res.data.update;
                         this.update = res.data.update;
                         this.download = res.data.download;
                         this.download = res.data.download;
@@ -274,6 +391,7 @@
                         this.proDetail = list;
                         this.proDetail = list;
                         if(this.user.parentId != 0){
                         if(this.user.parentId != 0){
                             this.getMsg();
                             this.getMsg();
+                            this.getStaff();
                         }
                         }
                     } else {
                     } else {
                         this.$message({
                         this.$message({
@@ -282,12 +400,14 @@
                         });
                         });
                     }
                     }
                 }, error => {
                 }, error => {
+                    this.modelsLoading = false;
                     this.$message({
                     this.$message({
                         message: error,
                         message: error,
                         type: 'error'
                         type: 'error'
                     });
                     });
                 })
                 })
             },
             },
+
             getFileList() {
             getFileList() {
                 this.listLoading = true;
                 this.listLoading = true;
                 // 获取文档列表
                 // 获取文档列表
@@ -311,6 +431,7 @@
                     });
                     });
                 })
                 })
             },
             },
+
             getOperList() {
             getOperList() {
                 this.oplistLoading = true;
                 this.oplistLoading = true;
                 // 获取文档列表
                 // 获取文档列表
@@ -334,34 +455,22 @@
                     });
                     });
                 })
                 })
             },
             },
+
             //获取信息
             //获取信息
             getMsg() {
             getMsg() {
-                // 获取人员
-                var compIds = this.user.companyId;
-                for(var i in this.proDetail.customCompanies){
-                    compIds += "," + this.proDetail.customCompanies[i].companyId;
-                }
-                this.http.post(this.port.project.getUserById, {
-                    companyIds: compIds,
+                // 获取公司
+                this.http.post(this.port.base.addCompanyListToProject, {
+                    parentId: this.user.parentId,
                     id: this.user.id
                     id: this.user.id
-                } , res => {
+                }, res => {
                     if (res.code == "ok") {
                     if (res.code == "ok") {
-                        var list = res.data , assets = [] , produce = [];
-                        for(var i in list) {
-                            if(list[i].companyId == this.user.companyId){
-                                console.log(list[i])
-                                if(list[i].id != this.user.id){
-                                    if(list[i].id != this.proDetail.managerId){
-                                        assets.push(list[i])
-                                    }
-                                }
-                            } else {
-                                produce.push(list[i])
+                        var list = res.data , array = [];
+                        for(var i in list){
+                            if(list[i].id != this.user.companyId){
+                                array.push(list[i])
                             }
                             }
                         }
                         }
-                        this.charger = res.data;
-                        this.assets = assets;
-                        this.produce = produce;
+                        this.company = array;
                     } else {
                     } else {
                         this.$message({
                         this.$message({
                             message: res.msg,
                             message: res.msg,
@@ -375,19 +484,13 @@
                     });
                     });
                 })
                 })
 
 
-                // 获取公司
-                this.http.post(this.port.base.addCompanyListToProject, {
+                // 获取模具
+                this.http.post(this.port.mold.modelList, {
                     parentId: this.user.parentId,
                     parentId: this.user.parentId,
                     id: this.user.id
                     id: this.user.id
                 }, res => {
                 }, res => {
                     if (res.code == "ok") {
                     if (res.code == "ok") {
-                        var list = res.data , array = [];
-                        for(var i in list){
-                            if(list[i].id != this.user.companyId){
-                                array.push(list[i])
-                            }
-                        }
-                        this.company = array;
+                        this.molds = res.data;
                     } else {
                     } else {
                         this.$message({
                         this.$message({
                             message: res.msg,
                             message: res.msg,
@@ -401,13 +504,57 @@
                     });
                     });
                 })
                 })
 
 
-                // 获取模具
-                this.http.post(this.port.mold.modelList, {
+                this.http.post(this.port.base.companys, {
                     parentId: this.user.parentId,
                     parentId: this.user.parentId,
                     id: this.user.id
                     id: this.user.id
                 }, res => {
                 }, res => {
                     if (res.code == "ok") {
                     if (res.code == "ok") {
-                        this.molds = res.data;
+                        this.staffComp = res.data;
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        });
+                    }
+                }, error => {
+                    this.$message({
+                        message: error,
+                        type: 'error'
+                    });
+                })
+            },
+
+            // 获取人员
+            getStaff() {
+                // 获取人员
+                var compIds = this.user.companyId;
+                for(var i in this.proDetail.customCompanies){
+                    compIds += "," + this.proDetail.customCompanies[i].companyId;
+                }
+                this.http.post(this.port.project.getUserById, {
+                    companyIds: compIds,
+                    id: this.user.id
+                } , res => {
+                    if (res.code == "ok") {
+                        var list = res.data , assets = [] , produce = [];
+                        for(var i in list) {
+                            if(list[i].companyId == this.user.companyId){
+                                if(list[i].id != this.user.id){
+                                    if(list[i].id != this.proDetail.managerId){
+                                        assets.push(list[i])
+                                    }
+                                }
+                            } else {
+                                produce.push(list[i])
+                            }
+                        }
+
+                        this.allUser = res.data;
+                        this.charger = res.data;
+                        this.assets = assets;
+                        this.produce = produce;
+                        this.general = res.data;
+
                     } else {
                     } else {
                         this.$message({
                         this.$message({
                             message: res.msg,
                             message: res.msg,
@@ -421,6 +568,40 @@
                     });
                     });
                 })
                 })
             },
             },
+
+            //切换人员
+            changeStaff(i) {
+                if(i == 0){
+                    var list = this.allUser , array = [];
+                    for(var i in list){ 
+                        if(list[i].id != this.editForm.customerApproverId && list[i].id != this.editForm.managerId.id && list[i].id != this.editForm.ownerApproverId){
+                            array.push(list[i])
+                        }
+                    }
+                    console.log(array)
+                    this.general = array;
+                } else if(i == 1) {
+                    var list = this.allUser , str = this.editForm.users.toString() , array = [] , assets = [] , produce = [];
+                    for(var i in list) {
+                        if(str.indexOf(list[i].id) == -1) {
+                            array.push(list[i]);
+                        }
+                    }
+
+                    for(var i in list) {
+                        if(list[i].subordinateType == 0){
+                            assets.push(list[i])
+                        } else {
+                            produce.push(list[i])
+                        }
+                    }
+
+                    this.charger = array;
+                    this.assets = assets;
+                    this.produce = produce;
+                }
+            },
+
             //选择公司切换人员
             //选择公司切换人员
             companyChange() {
             companyChange() {
                 var param = {} ,
                 var param = {} ,
@@ -456,6 +637,7 @@
                     });
                     });
                 })
                 })
             },
             },
+
             //打开编辑页面
             //打开编辑页面
             edit() {
             edit() {
                 this.editFormVisible = true;
                 this.editFormVisible = true;
@@ -491,7 +673,7 @@
                 for(var i in this.molds){
                 for(var i in this.molds){
                     for(var j in this.proDetail.models){
                     for(var j in this.proDetail.models){
                         if(this.molds[i].id == this.proDetail.models[j].id){
                         if(this.molds[i].id == this.proDetail.models[j].id){
-                            moldArr.push(this.molds[i].id)
+                            moldArr.push(this.proDetail.models[j])
                         }
                         }
                     }
                     }
                 }
                 }
@@ -516,6 +698,7 @@
                     produce: produce
                     produce: produce
                 }
                 }
             },
             },
+
             //提交
             //提交
             addSubmit() {
             addSubmit() {
                 this.$refs.editForm.validate((valid) => {
                 this.$refs.editForm.validate((valid) => {
@@ -532,27 +715,35 @@
                         cName = cName.substring(0,cName.length-1);
                         cName = cName.substring(0,cName.length-1);
 
 
                         for(var i in this.editForm.modelIds){
                         for(var i in this.editForm.modelIds){
-                            modelIds += this.editForm.modelIds[i] + ","
+                            modelIds += this.editForm.modelIds[i].id + ","
                         }
                         }
                         modelIds = modelIds.substring(0,modelIds.length-1);
                         modelIds = modelIds.substring(0,modelIds.length-1);
 
 
-                        for(var i in this.editForm.assets){
-                            if(i == this.editForm.assets.length -1){
-                                userIds += this.editForm.assets[i]
-                            } else {
-                                userIds += this.editForm.assets[i] + ","
-                            }
-                        }
+                        // for(var i in this.editForm.assets){
+                        //     if(i == this.editForm.assets.length -1){
+                        //         userIds += this.editForm.assets[i]
+                        //     } else {
+                        //         userIds += this.editForm.assets[i] + ","
+                        //     }
+                        // }
                         
                         
-                        if(userIds != "" && this.editForm.produce.length != 0){
-                            userIds += ","
-                        }
-
-                        for(var i in this.editForm.produce){
-                            if(i == this.editForm.produce.length -1){
-                                userIds += this.editForm.produce[i]
+                        // if(userIds != "" && this.editForm.produce.length != 0){
+                        //     userIds += ","
+                        // }
+
+                        // for(var i in this.editForm.produce){
+                        //     if(i == this.editForm.produce.length -1){
+                        //         userIds += this.editForm.produce[i]
+                        //     } else {
+                        //         userIds += this.editForm.produce[i] + ","
+                        //     }
+                        // }
+
+                        for(var i in this.editForm.users) {
+                            if(i == this.editForm.users.length -1){
+                                userIds += this.editForm.users[i]
                             } else {
                             } else {
-                                userIds += this.editForm.produce[i] + ","
+                                userIds += this.editForm.users[i] + ","
                             }
                             }
                         }
                         }
 
 
@@ -595,6 +786,55 @@
 					}
 					}
 				});
 				});
             },
             },
+
+            //打开新增人员
+            addStaff() {
+                this.addFormVisible = true;
+				this.addForm = {
+                    parentId: this.user.id,
+					username: '',
+                    account: '',
+					companyId: '',
+                    roleName: '',
+                    projectId: this.detailId,
+                    flag: 0
+				};
+            },
+
+            addPeople(i) {
+                this.$refs.addForm.validate((valid) => {
+					if (valid) {
+                        if(i == 0){
+                            this.addLoading = true;
+                        }
+                        this.http.post(this.port.project.addUser, this.addForm , res => {
+                            if(i == 0){ this.addLoading = false; }
+                            else { this.$refs.addForm.resetFields();this.addForm.roleName = "" }
+                            if (res.code == "ok") {
+                                if(i == 0){ this.addFormVisible = false; }
+                                this.getDetail();
+                                this.$message({
+                                    message: '创建成功',
+                                    type: 'success'
+                                });
+                            } else {
+                                this.$message({
+                                    message: res.msg,
+                                    type: 'error'
+                                });
+                            }
+                        }, error => {
+                            if(i == 0){ this.addLoading = false;this.addFormVisible = false; }
+                            else { this.$refs.addForm.resetFields();this.addForm.roleName = "" }
+                            this.$message({
+                                message: error,
+                                type: 'error'
+                            });
+                        })
+					}
+				});
+            },
+
             //上传
             //上传
             uploadFile(params) {
             uploadFile(params) {
                 this.upLoading = true;
                 this.upLoading = true;
@@ -625,6 +865,7 @@
                     });
                     });
                 })
                 })
             },
             },
+
             //下载
             //下载
             dowloadFile(id) {
             dowloadFile(id) {
                 this.http.post(this.port.project.dowloadFile, {
                 this.http.post(this.port.project.dowloadFile, {
@@ -634,6 +875,7 @@
                 }, error => {
                 }, error => {
                 })
                 })
             },
             },
+
             //删除上传文件
             //删除上传文件
 			fileDel(id) {
 			fileDel(id) {
                 this.$confirm('确认删除该文档吗?', '提示', {
                 this.$confirm('确认删除该文档吗?', '提示', {
@@ -664,6 +906,7 @@
 				});
 				});
             },
             },
         },
         },
+
         created() {
         created() {
             let height = window.innerHeight;
             let height = window.innerHeight;
             this.allDetail.height = height - 170 + "px";
             this.allDetail.height = height - 170 + "px";
@@ -672,6 +915,7 @@
                 that.allDetail.height = window.innerHeight - 170;    
                 that.allDetail.height = window.innerHeight - 170;    
             };
             };
         },
         },
+
         mounted() {
         mounted() {
             this.getDetail();
             this.getDetail();
             this.getFileList();
             this.getFileList();