浏览代码

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

5 年之前
父节点
当前提交
61fd7834b4

+ 3 - 2
ys_vue/build/utils.js

@@ -15,7 +15,7 @@ exports.cssLoaders = function (options) {
   var cssLoader = {
     loader: 'css-loader',
     options: {
-      minimize: process.env.NODE_ENV === 'production',
+      //minimize: process.env.NODE_ENV === 'production',
       sourceMap: options.sourceMap
     }
   }
@@ -37,7 +37,8 @@ exports.cssLoaders = function (options) {
     if (options.extract) {
       return ExtractTextPlugin.extract({
         use: loaders,
-        fallback: 'vue-style-loader'
+        fallback: 'vue-style-loader',
+        publicPath: '../../'
       })
     } else {
       return ['vue-style-loader'].concat(loaders)

+ 2 - 2
ys_vue/config/index.js

@@ -6,7 +6,7 @@ module.exports = {
     index: path.resolve(__dirname, '../dist/index.html'),
     assetsRoot: path.resolve(__dirname, '../dist'),
     assetsSubDirectory: 'static',
-    assetsPublicPath: '/vue-admin/',
+    assetsPublicPath: './',
     productionSourceMap: true,
     productionGzip: false,
     productionGzipExtensions: ['js', 'css'],
@@ -17,7 +17,7 @@ module.exports = {
     port: 8090,
     autoOpenBrowser: true,
     assetsSubDirectory: 'static',
-    assetsPublicPath: '/',
+    assetsPublicPath: './',
     proxyTable: {
         '/api': {    
             target: 'http://192.168.101.6:8099',  // 接口域名 开发

+ 10 - 24
ys_vue/package-lock.json

@@ -1515,9 +1515,9 @@
       }
     },
     "base64-js": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
-      "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+      "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
       "dev": true
     },
     "bcrypt-pbkdf": {
@@ -3610,14 +3610,12 @@
         "balanced-match": {
           "version": "1.0.0",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "brace-expansion": {
           "version": "1.1.11",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "balanced-match": "^1.0.0",
             "concat-map": "0.0.1"
@@ -3632,20 +3630,17 @@
         "code-point-at": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "concat-map": {
           "version": "0.0.1",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "console-control-strings": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "core-util-is": {
           "version": "1.0.2",
@@ -3762,8 +3757,7 @@
         "inherits": {
           "version": "2.0.3",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "ini": {
           "version": "1.3.5",
@@ -3775,7 +3769,6 @@
           "version": "1.0.0",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "number-is-nan": "^1.0.0"
           }
@@ -3790,7 +3783,6 @@
           "version": "3.0.4",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "brace-expansion": "^1.1.7"
           }
@@ -3798,14 +3790,12 @@
         "minimist": {
           "version": "0.0.8",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "minipass": {
           "version": "2.3.5",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "safe-buffer": "^5.1.2",
             "yallist": "^3.0.0"
@@ -3824,7 +3814,6 @@
           "version": "0.5.1",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "minimist": "0.0.8"
           }
@@ -3905,8 +3894,7 @@
         "number-is-nan": {
           "version": "1.0.1",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "object-assign": {
           "version": "4.1.1",
@@ -3918,7 +3906,6 @@
           "version": "1.4.0",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "wrappy": "1"
           }
@@ -4040,7 +4027,6 @@
           "version": "1.0.2",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "code-point-at": "^1.0.0",
             "is-fullwidth-code-point": "^1.0.0",

+ 1 - 1
ys_vue/package.json

@@ -58,7 +58,7 @@
     "vue-loader": "^11.1.4",
     "vue-style-loader": "^2.0.0",
     "vue-template-compiler": "^2.2.4",
-    "webpack": "^2.2.1",
+    "webpack": "^2.7.0",
     "webpack-bundle-analyzer": "^2.2.1",
     "webpack-dev-middleware": "^1.10.0",
     "webpack-hot-middleware": "^2.16.1",

+ 2 - 2
ys_vue/src/routes.js

@@ -62,7 +62,7 @@ let routes = [
         iconCls: 'iconfont icon-ic_dashboard',
         children: [
             { path: '/project', component: project, name: '项目列表' },
-            { path: '/projectDetail', component: projectDetail, name: '项目详情', hidden: true },
+            { path: '/project/:id', component: projectDetail, name: '项目详情', hidden: true },
             { path: '/staff', component: staff, name: '人员管理' },
             { path: '/competence', component: competence, name: '权限管理' }
         ]
@@ -75,7 +75,7 @@ let routes = [
         iconCls: 'iconfont icon-moxing',
         children: [
             { path: '/moldList', component: moldList, name: '模具列表' },
-            { path: '/moldDetail', component: moldDetail, name: '模具详情', hidden: true },
+            { path: '/moldList/:id', component: moldDetail, name: '模具详情', hidden: true },
             { path: '/moldFile', component: moldFile, name: '文档审批' },
             { path: '/moldDownload', component: moldDownload, name: '文档下载' }
         ]

+ 7 - 1
ys_vue/src/views/detection/detection.vue

@@ -92,7 +92,13 @@ export default {
       this.getMoulds();
     },
     toMaintenance(id) {
-      this.$router.push("/detection/" + id);
+        this.$router.push({
+            path: '/detectionDetail',
+            query: {
+                id: row.id
+            }
+        });
+      //this.$router.push("/detection/" + id);
     },
     getMoulds(keyWord) {
       this.listLoading = true;

+ 1 - 1
ys_vue/src/views/mold/moldDetail.vue

@@ -128,7 +128,7 @@
     export default {
         data() {
             return {
-                detailId: this.$route.query.id,
+                detailId: this.$route.params.id,
                 //临时数据
                 moldDetail: {},
                 documents: [

+ 1 - 6
ys_vue/src/views/mold/moldList.vue

@@ -235,12 +235,7 @@
             },
             //详情
             toDetail(row) {
-                this.$router.push({
-                    path: '/moldDetail',
-                    query: {
-                        id: row.id
-                    }
-                });
+                this.$router.push('/moldList/' + row.id);
             },
 
             //添加界面

+ 19 - 31
ys_vue/src/views/project/project.vue

@@ -19,18 +19,18 @@
 		<el-table :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
 			<el-table-column type="index" width="60">
 			</el-table-column>
-			<el-table-column prop="projectName" label="项目名称" width="200" sortable>
+			<el-table-column prop="projectName" label="项目名称" width="250" sortable>
                 <template slot-scope="scope">
                     <el-link :underline="false" type="primary" @click="toDetail(scope.row)">{{scope.row.projectName}}</el-link>
 				</template>
 			</el-table-column>
-            <el-table-column prop="ownerCompanyName" label="生产方" width="250" sortable>
+            <el-table-column prop="customCompaniesStr" label="生产方公司" width="600" sortable>
 			</el-table-column>
-            <el-table-column prop="charger" label="生产方负责人" width="200" align="center" sortable>
+            <el-table-column prop="manager" label="项目经理" align="center" sortable>
 			</el-table-column>
-			<el-table-column prop="creator" label="项目创建人" width="180" align="center"  sortable>
+			<el-table-column prop="creator" label="项目创建人" align="center"  sortable>
 			</el-table-column>
-			<el-table-column prop="indate" label="创建时间" width="200" align="center" sortable>
+			<el-table-column prop="indate" label="创建时间" width="250" align="center" sortable>
 			</el-table-column>
 			<!-- <el-table-column label="操作" width="250" align="center">
 				<template slot-scope="scope">
@@ -79,22 +79,6 @@
                         </el-select>
                     </el-form-item>
                 </el-col>
-                <!-- <el-col :span="24">
-                    <el-form-item label="本方参与人">
-                        <el-select v-model="addForm.userA" clearable filterable multiple placeholder="请选择本方参与人" style="width:510px">
-                            <el-option v-for="item in userA" :key="item.id" :label="item.username" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="24">
-                    <el-form-item label="生产方参与人">
-                        <el-select v-model="addForm.userB" clearable filterable multiple placeholder="请选择生产方参与人" style="width:510px">
-                            <el-option v-for="item in userB" :key="item.id" :label="item.username" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col> -->
 			</el-form>
 			<div slot="footer" class="dialog-footer">
 				<el-button @click.native="addFormVisible = false">取消</el-button>
@@ -220,6 +204,18 @@
                 }, res => {
                     this.listLoading = false;
                     if (res.code == "ok") {
+                        var list = res.data.list;
+                        for(var i in list){
+                            var customCompaniesStr = "";
+                            for(var j in list[i].customCompanies){
+                                if(j == list[i].customCompanies.length -1){
+                                    customCompaniesStr += list[i].customCompanies[j].companyName;
+                                } else {
+                                    customCompaniesStr += list[i].customCompanies[j].companyName + "、";
+                                }
+                            }
+                            list[i].customCompaniesStr = customCompaniesStr;
+                        }
                         this.list = res.data.list;
                         this.total = res.data.total;
                     } else {
@@ -239,12 +235,7 @@
 
             //详情
             toDetail(row) {
-                this.$router.push({
-                    path: '/projectDetail',
-                    query: {
-                        id: row.id
-                    }
-                });
+                this.$router.push('/project/' + row.id);
             },
 
             //选择公司切换人员
@@ -279,9 +270,7 @@
 				this.addForm = {
 					projectName: '',
                     customerCompany: '',
-                    managerId: '',
-                    // userA: [],
-                    // userB: []
+                    managerId: ''
 				};
             },
 
@@ -292,7 +281,6 @@
                         var cId = "",
                             cName = "";
                         for(var i in this.addForm.customerCompany){
-                            console.log(this.addForm.customerCompany[i])
                             cId += this.addForm.customerCompany[i].id + ",";
                             cName += this.addForm.customerCompany[i].companyName + ",";
                         }

+ 212 - 25
ys_vue/src/views/project/projectDetail.vue

@@ -24,7 +24,7 @@
                 </el-col>
                 <el-col :span="6" class="detail">
                     项目经理:
-                    <span class="info">{{proDetail.name}}</span>
+                    <span class="info">{{proDetail.manager}}</span>
                 </el-col>
                 <el-col :span="6" class="detail">
                     资产方审批人:
@@ -90,8 +90,7 @@
                 <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">
-                            <!-- @change="companyChange(0)"  -->
-                            <el-option v-for="item in company" :key="item.id" :label="item.companyName" :value="item">
+                            <el-option v-for="item in company" :key="item.companyName" :label="item.companyName" :value="item">
                             </el-option>
                         </el-select>
                     </el-form-item>
@@ -105,41 +104,41 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
-                    <el-form-item label="资产方审批人" prop="ownerApproverId">
+                    <el-form-item label="资产方审批人">
                         <el-select v-model="editForm.ownerApproverId" clearable filterable placeholder="请选择资产方审批人" value-key='id' style="width:190px">
-                            <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
+                            <el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
                             </el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
-                    <el-form-item label="生产方审批人" prop="customerApproverId">
+                    <el-form-item label="生产方审批人">
                         <el-select v-model="editForm.customerApproverId" clearable filterable placeholder="请选择生产方审批人" value-key='id' style="width:190px">
-                            <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
+                            <el-option v-for="item in produce" :key="item.id" :label="item.username" :value="item.id">
                             </el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
                     <el-form-item label="项目模具">
-                        <el-select v-model="editForm.userA" clearable filterable multiple placeholder="请选择项目模具" style="width:510px">
-                            <el-option v-for="item in userA" :key="item.id" :label="item.username" :value="item.id">
+                        <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-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
                     <el-form-item label="资产方参与人">
-                        <el-select v-model="editForm.userA" clearable filterable multiple placeholder="请选择资产方参与人" style="width:510px">
-                            <el-option v-for="item in userA" :key="item.id" :label="item.username" :value="item.id">
+                        <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>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
                     <el-form-item label="生产方参与人">
-                        <el-select v-model="editForm.userB" clearable filterable multiple placeholder="请选择生产方参与人" style="width:510px">
-                            <el-option v-for="item in userB" :key="item.id" :label="item.username" :value="item.id">
+                        <el-select v-model="editForm.produce" clearable filterable multiple placeholder="请选择生产方参与人" style="width:510px">
+                            <el-option v-for="item in produce" :key="item.id" :label="item.username" :value="item.id">
                             </el-option>
                         </el-select>
                     </el-form-item>
@@ -147,7 +146,7 @@
 			</el-form>
 			<div slot="footer" class="dialog-footer">
 				<el-button @click.native="editFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
+				<el-button type="primary" @click.native="addSubmit" :loading="editLoading">提交</el-button>
 			</div>
 		</el-dialog>
     </section>
@@ -158,7 +157,7 @@
     export default {
         data() {
             return {
-                detailId: this.$route.query.id,
+                detailId: this.$route.params.id,
                 user: JSON.parse(sessionStorage.getItem('user')),
                 //临时数据
                 proDetail: {},
@@ -189,7 +188,8 @@
                 activePage: 0,
 
                 company:[],
-                owner: [],
+                assets: [],
+                produce: [],
                 charger: [],
                 formRules: {
 					projectName: [
@@ -204,12 +204,17 @@
                 },
                 
                 editFormVisible: false,//新增界面是否显示
-				addLoading: false,
+				editLoading: false,
 				//新增界面数据
 				editForm: {
 					projectName: '',
                     customerCompany: [],
-                    managerId: ''
+                    managerId: '',
+                    ownerApproverId: '',
+                    customerApproverId: '',
+                    modelIds: [],
+                    assets: [],
+                    produce: []
 				}
             };
         },
@@ -219,7 +224,6 @@
                 this.$router.push("/project");
             },
             handleClick(tab, event) {
-                console.log(tab, event);
             },
             //获取详情
             getDetail() {
@@ -229,6 +233,7 @@
                 }, res => {
                     if (res.code == "ok") {
                         this.proDetail = res.data;
+                        this.getMsg();
                     } else {
                         this.$message({
                             message: res.msg,
@@ -244,21 +249,27 @@
             },
             //获取信息
             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: this.user.companyId,
+                    companyIds: compIds,
                     id: this.user.id
                 } , res => {
                     if (res.code == "ok") {
-                        var list = res.data , array = [] , owner = [];
+                        var list = res.data , assets = [] , produce = [];
                         for(var i in list) {
                             if(list[i].companyId == this.user.companyId){
-                                owner.push(list[i])
+                                assets.push(list[i])
                             } else {
-                                array.push(list[i])
+                                produce.push(list[i])
                             }
                         }
                         this.charger = res.data;
-                        this.owner = owner;
+                        this.assets = assets;
+                        this.produce = produce;
                     } else {
                         this.$message({
                             message: res.msg,
@@ -272,6 +283,7 @@
                     });
                 })
 
+                // 获取人员
                 this.http.post(this.port.base.companys, {
                     parentId: this.user.parentId,
                     id: this.user.id
@@ -296,17 +308,192 @@
                         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'
+                    });
+                })
+            },
+            //选择公司切换人员
+            companyChange() {
+                var param = {} ,
+                    str = this.user.companyId;
+                for(var i in this.editForm.customerCompany){
+                    str += "," + this.editForm.customerCompany[i].id;
+                }
+                param.companyIds = str;
+                param.id = this.user.id
+                this.http.post(this.port.project.getUserById, param , res => {
+                    if (res.code == "ok") {
+                        var list = res.data , assets = [] , produce = [];
+                        for(var i in list) {
+                            if(list[i].companyId == this.user.companyId){
+                                assets.push(list[i])
+                            } else {
+                                produce.push(list[i])
+                            }
+                        }
+                        this.charger = res.data;
+                        this.assets = assets;
+                        this.produce = produce;
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        });
+                    }
+                }, error => {
+                    this.$message({
+                        message: error,
+                        type: 'error'
+                    });
+                })
             },
             edit() {
                 this.editFormVisible = true;
+                var compArr = [] ,
+                    manager = {} ,
+                    ownerApproverId = '' ,
+                    customerApproverId = '' ,
+                    moldArr = [];
+                for(var i in this.proDetail.customCompanies){
+                    for(var j in this.company){
+                        if(this.company[j].id == this.proDetail.customCompanies[i].companyId){
+                            compArr.push(this.company[j])
+                        }
+                    }
+                }
+
+                for(var i in this.charger){
+                    if(this.charger[i].id == this.proDetail.managerId){
+                        manager = this.charger[i];
+                    }
+                }
+
+                for(var i in this.proDetail.approves) {
+                    if(this.proDetail.approves[i].subordinateType == 0){
+                        ownerApproverId = this.proDetail.approves[i].approverName;
+                    } else {
+                        customerApproverId = this.proDetail.approves[i].approverName;
+                    }
+                }
+
+                for(var i in this.molds){
+                    for(var j in this.proDetail.models){
+                        if(this.molds[i].id == this.proDetail.models[j].id){
+                            moldArr.push(this.molds[i])
+                        }
+                    }
+                }
+
                 this.editForm = {
                     id: this.proDetail.id,
-                    projectName: this.proDetail.projectName
+                    projectName: this.proDetail.projectName,
+                    customerCompany: compArr,
+                    managerId: manager,
+                    ownerApproverId: ownerApproverId,
+                    customerApproverId: customerApproverId,
+                    modelIds: moldArr,
+                    assets: [],
+                    produce: []
                 }
             },
             //上传
             uploadFile(params) {
                 console.log(params)
+            },
+            addSubmit() {
+                this.$refs.editForm.validate((valid) => {
+					if (valid) {
+                        var cId = "",
+                            cName = "",
+                            modelIds = "",
+                            userIds = "";
+                        for(var i in this.editForm.customerCompany){
+                            cId += this.editForm.customerCompany[i].id + ",";
+                            cName += this.editForm.customerCompany[i].companyName + ",";
+                        }
+                        cId = cId.substring(0,cId.length-1);
+                        cName = cName.substring(0,cName.length-1);
+
+                        for(var i in this.editForm.modelIds){
+                            modelIds += this.editForm.modelIds[i] + ","
+                        }
+                        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] + ","
+                            }
+                        }
+                        
+                        if(userIds != ""){
+                            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] + ","
+                            }
+                        }
+
+                        this.editLoading = true;
+                        this.http.post(this.port.project.addProject, {
+                            id: this.editForm.id,
+                            projectName: this.editForm.projectName,
+                            customerCompanyIds: cId,
+                            customerCompanyNames: cName,
+                            manager: this.editForm.managerId.username,
+                            managerId: this.editForm.managerId.id,
+                            ownerApproverId: this.editForm.ownerApproverId,
+                            customerApproverId: this.editForm.customerApproverId,
+                            modelIds: modelIds,
+                            userIds: userIds,
+                            flag: 1
+                        } , res => {
+                            this.editLoading = false;
+                            this.editFormVisible = false;
+                            if (res.code == "ok") {
+                                this.$message({
+                                    message: '修改成功',
+                                    type: 'success'
+                                });
+                                this.getUsers();
+                            } else {
+                                this.$message({
+                                    message: res.msg,
+                                    type: 'error'
+                                });
+                            }
+                        }, error => {
+                            this.editLoading = false;
+                            this.editFormVisible = false;
+                            this.$message({
+                                message: error,
+                                type: 'error'
+                            });
+                        })
+					}
+				});
             }
         },
         created() {