Sfoglia il codice sorgente

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

# Conflicts:
#	cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldFileServiceImpl.java
5 anni fa
parent
commit
d36771ec14

+ 1 - 1
cloud-model/src/main/java/com/hssx/cloudmodel/controller/MouldFileController.java

@@ -78,7 +78,7 @@ public class MouldFileController {
     @ApiOperation("零件文档的批量上传")
     @RequestMapping("/uploadPartFileList")
     @ResponseBody
-    public HttpRespMsg uploadFile(@RequestParam(required = false) MultipartFile[] files,UserVO userVO) throws Exception {
+    public HttpRespMsg uploadFile(@RequestParam("file") MultipartFile[] files,UserVO userVO) throws Exception {
         HttpRespMsg msg = new HttpRespMsg();
         msg = mouldFileService.addPartFile(userVO,path, files);
         return msg;

+ 8 - 7
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldFileServiceImpl.java

@@ -365,10 +365,13 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
     @Override
     public HttpRespMsg addPartFile(UserVO userVO, String path, MultipartFile[] files) {
         HttpRespMsg msg = new HttpRespMsg();
+        System.out.println("files==============="+files);
+        System.out.println("files==============="+files.length);
         User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
+        System.out.println("进来了");
         if (user != null) {
             List<Part> partLists = partMapper.selectList(new QueryWrapper<Part>().eq("mould_id", userVO.getMouldId()));
-            if (files.length > 0) {
+            System.out.println("partLists"+partLists);
                 for (MultipartFile file : files) {
                     MouldFile partFile = new MouldFile();
                     partFile.setModelId(userVO.getMouldId());
@@ -380,10 +383,12 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
                         dir.mkdirs();
                     }
                     String fileName = "";
-                    if (!file.isEmpty()) {
+                    System.out.println(file);
+                    //if (file != null && !file.isEmpty()) {
                         fileName = file.getOriginalFilename();
                         String fileNamePrex = fileName.substring(0, fileName.lastIndexOf("."));
                         String[] split = fileNamePrex.split("\\+");
+                        System.out.println("split"+split);
                         for (Part part : partLists) {
                             if (split[0] == part.getPartNo()) {
                                 partFile.setPartId(part.getId());
@@ -404,7 +409,6 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
                         fileName = rand + sufix;
                         partFile.setFileType(sufix);//文件后缀
                         partFile.setFileUrl("/upload/" + fileName);
-//                        partFile.setUplodtorId();
                         File saveFile = new File(dir, fileName);
                         mouldFileMapper.insert(partFile);
                         try {
@@ -425,12 +429,9 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
                         dynamics.setOperatorName(user.getUsername());
                         dynamics.setMouldId(userVO.getMouldId());
                         mouldOperationDynamicsMapper.insert(dynamics);
-                    }
+                    //}
                     msg.data = partFile;
                 }
-            } else {
-                msg.setError("上传文件不可为空");
-            }
         } else {
             msg.setError("用户不存在或者未登录");
         }

+ 2 - 2
cloud-model/src/main/resources/application.properties

@@ -42,8 +42,8 @@ download.path=D:/mould/download/
 #######################################################################################################
 # 配置上传文件的大小设置
 # Single file max size  即单个文件大小
-spring.servlet.multipart.max-file-size=10MB
-spring.servlet.multipart.max-request-size=100MB
+spring.servlet.multipart.max-file-size=1000MB
+spring.servlet.multipart.max-request-size=1000MB
 ##################SpringBoot连接池配置########
 spring.datasource.hikari.minimum-idle=3
 spring.datasource.hikari.maximum-pool-size=10

+ 5 - 0
ys_vue/src/port.js

@@ -53,6 +53,11 @@ export default {
         moldFileDelete: '/mouldfile/delFile', //项目文档的删除
         moldOperationList: '/mouldoperationdynamics/list', //项目文档的删除
 
+        partList: '/part/list', //零件列表
+        addPart: '/part/addOrUpdate', //单个零件添加
+        importPart: '/part/importAppLogin',//零件的excel导入
+        partUpload: '/mouldfile/uploadPartFileList', //零件文档的批量上传
+
         moldMaintain: '/mouldmaintain/maintain', //维护
         moldMaintainList: '/mouldmaintain/list' //获取列表
     },

+ 504 - 438
ys_vue/src/views/Home.vue

@@ -1,485 +1,551 @@
 <template>
-    <el-row class="container">
-        <el-col :span="24" class="header">
-            <el-col :span="10" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'" :style="collapsed?'padding:0':''">
-                <img v-if="collapsed" class="headImg" src="../assets/image/head_logo.png">
-                <span v-else>{{sysName}}</span>
-            </el-col>
-            <el-col :span="10">
-                <div class="tools" @click.prevent="collapse">
-                    <i class="fa fa-align-justify"></i>
-                </div>
-            </el-col>
-            <el-col :span="6" class="userinfo">
-                <el-badge is-dot class="itemNew">
-                    <i class="el-icon-message-solid" style="font-size:24px" v-popover:popover1></i>
-                    <!-- 消息中心 -->
-                    <el-popover ref="popover1" placement="bottom" width="400" trigger="hover" popper-class="popover-self">
-                        <div class="popover-main">消息盒子</div>
-                        <div class="popover-item" v-if="popoverData.length == 0">暂无消息</div>
-                        <div class="popover-item" v-for="item in popoverData">
-                            <p class="popover-title">
-                                <span
-                                    style="cursor: pointer;"
-                                    @click="locationHerf(item.refId, item.noticeType)"
-                                >{{item.projectName}}</span>
-                                <span class="popover-type" v-if="item.noticeType == 0">[审批]</span>
-                                <span class="popover-type" v-else-if="item.noticeType == 1">[警告]</span>
-                                <span class="popover-type" v-else-if="item.noticeType == 2">[保养]</span>
-                            </p>
-                            <p>{{item.content}}</p>
-                        </div>
-                        <router-link :to="'/message'" tag="div" class="popover-button">查看全部</router-link>
-                    </el-popover>
-                </el-badge>
-                <el-dropdown trigger="hover">
-                    <span class="el-dropdown-link userinfo-inner">
-                        <img src="../assets/image/userHead.jpg" />
-                        {{sysUserName}}
-                    </span>
-                    <el-dropdown-menu slot="dropdown">
-                        <el-dropdown-item @click.native="reset">修改密码</el-dropdown-item>
-                        <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
-                    </el-dropdown-menu>
-                </el-dropdown>
-            </el-col>
-        </el-col>
+  <el-row class="container">
+    <el-col :span="24" class="header">
+      <el-col
+        :span="10"
+        class="logo"
+        :class="collapsed?'logo-collapse-width':'logo-width'"
+        :style="collapsed?'padding:0':''"
+      >
+        <img v-if="collapsed" class="headImg" src="../assets/image/head_logo.png" />
+        <span v-else>{{sysName}}</span>
+      </el-col>
+      <el-col :span="10">
+        <div class="tools" @click.prevent="collapse">
+          <i class="fa fa-align-justify"></i>
+        </div>
+      </el-col>
+      <el-col :span="6" class="userinfo">
+        <el-badge :is-dot="tips" class="itemNew">
+          <i class="el-icon-message-solid" style="font-size:24px" v-popover:popover1></i>
+          <!-- 消息中心 -->
+          <el-popover
+            ref="popover1"
+            placement="bottom"
+            width="400"
+            trigger="hover"
+            popper-class="popover-self"
+          >
+            <div class="popover-main">消息盒子</div>
+            <div class="popover-item" v-if="popoverData.length == 0">暂无消息</div>
+            <div class="popover-item" v-for="item in popoverData">
+              <p class="popover-title">
+                <span
+                  style="cursor: pointer;"
+                  @click="locationHerf(item.refId, item.noticeType)"
+                >{{item.projectName}}</span>
+                <span class="popover-type" v-if="item.noticeType == 0">[审批]</span>
+                <span class="popover-type" v-else-if="item.noticeType == 1">[警告]</span>
+                <span class="popover-type" v-else-if="item.noticeType == 2">[保养]</span>
+              </p>
+              <p>{{item.content}}</p>
+            </div>
+            <router-link :to="'/message'" tag="div" class="popover-button">查看全部</router-link>
+          </el-popover>
+        </el-badge>
+        <el-dropdown trigger="hover">
+          <span class="el-dropdown-link userinfo-inner">
+            <img src="../assets/image/userHead.jpg" />
+            {{sysUserName}}
+          </span>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item @click.native="reset">修改密码</el-dropdown-item>
+            <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </el-col>
+    </el-col>
 
-        <el-col :span="24" class="main">
-            <aside :class="collapsed?'menu-collapsed':'menu-expanded'">
-                <!--导航菜单-->
-                <el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect" unique-opened router v-if="!collapsed">
-                    <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
-                        <el-submenu :index="index+''" v-if="!item.leaf">
-                            <template slot="title">
-                                <i :class="item.iconCls"></i>
-                                <span class="itemName">{{item.name}}</span>
-                            </template>
-                            <el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" v-if="!child.hidden">{{child.name}}</el-menu-item>
-                        </el-submenu>
-                        <el-menu-item v-if="item.leaf && item.children.length > 0" :index="item.children[0].path">
-                            <i :class="item.iconCls"></i>
-                            {{item.children[0].name}}
-                        </el-menu-item>
-                    </template>
-                </el-menu>
-                <!--导航菜单-折叠后-->
-                <ul class="el-menu el-menu-vertical-demo collapsed" v-if="collapsed" ref="menuCollapsed">
-                <li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item" :style="{overflow:!item.leaf?'':'hidden'}">
-                    <template v-if="!item.leaf">
-                        <div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)">
-                            <i :class="item.iconCls"></i>
-                        </div>
-                        <ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)">
-                            <li v-for="child in item.children" v-if="!child.hidden" :key="child.path"
-                                class="el-menu-item"
-                                style="padding-left: 40px;"
-                                :class="$route.path==child.path?'is-active':''"
-                                @click="$router.push(child.path)"
-                            >{{child.name}}</li>
-                        </ul>
-                    </template>
-                    <template v-else>
-                        <li class="el-submenu">
-                            <div
-                                class="el-submenu__title el-menu-item"
-                                style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;"
-                                :class="$route.path==item.children[0].path?'is-active':''"
-                                @click="$router.push(item.children[0].path)"
-                            >
-                            <i :class="item.iconCls"></i>
-                            </div>
-                        </li>
-                    </template>
-                </li>
-                </ul>
-            </aside>
-            <section class="content-container">
-                <div class="grid-content bg-purple-light">
-                    <el-col :span="24" class="content-wrapper">
-                        <transition name="fade" mode="out-in">
-                            <router-view></router-view>
-                        </transition>
-                    </el-col>
+    <el-col :span="24" class="main">
+      <aside :class="collapsed?'menu-collapsed':'menu-expanded'">
+        <!--导航菜单-->
+        <el-menu
+          :default-active="$route.path"
+          class="el-menu-vertical-demo"
+          @open="handleopen"
+          @close="handleclose"
+          @select="handleselect"
+          unique-opened
+          router
+          v-if="!collapsed"
+        >
+          <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
+            <el-submenu :index="index+''" v-if="!item.leaf">
+              <template slot="title">
+                <i :class="item.iconCls"></i>
+                <span class="itemName">{{item.name}}</span>
+              </template>
+              <el-menu-item
+                v-for="child in item.children"
+                :index="child.path"
+                :key="child.path"
+                v-if="!child.hidden"
+              >{{child.name}}</el-menu-item>
+            </el-submenu>
+            <el-menu-item
+              v-if="item.leaf && item.children.length > 0"
+              :index="item.children[0].path"
+            >
+              <i :class="item.iconCls"></i>
+              {{item.children[0].name}}
+            </el-menu-item>
+          </template>
+        </el-menu>
+        <!--导航菜单-折叠后-->
+        <ul class="el-menu el-menu-vertical-demo collapsed" v-if="collapsed" ref="menuCollapsed">
+          <li
+            v-for="(item,index) in $router.options.routes"
+            v-if="!item.hidden"
+            class="el-submenu item"
+            :style="{overflow:!item.leaf?'':'hidden'}"
+          >
+            <template v-if="!item.leaf">
+              <div
+                class="el-submenu__title"
+                style="padding-left: 20px;"
+                @mouseover="showMenu(index,true)"
+                @mouseout="showMenu(index,false)"
+              >
+                <i :class="item.iconCls"></i>
+              </div>
+              <ul
+                class="el-menu submenu"
+                :class="'submenu-hook-'+index"
+                @mouseover="showMenu(index,true)"
+                @mouseout="showMenu(index,false)"
+              >
+                <li
+                  v-for="child in item.children"
+                  v-if="!child.hidden"
+                  :key="child.path"
+                  class="el-menu-item"
+                  style="padding-left: 40px;"
+                  :class="$route.path==child.path?'is-active':''"
+                  @click="$router.push(child.path)"
+                >{{child.name}}</li>
+              </ul>
+            </template>
+            <template v-else>
+              <li class="el-submenu">
+                <div
+                  class="el-submenu__title el-menu-item"
+                  style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;"
+                  :class="$route.path==item.children[0].path?'is-active':''"
+                  @click="$router.push(item.children[0].path)"
+                >
+                  <i :class="item.iconCls"></i>
                 </div>
+              </li>
+            </template>
+          </li>
+        </ul>
+      </aside>
+      <section class="content-container">
+        <div class="grid-content bg-purple-light">
+          <el-col :span="24" class="content-wrapper">
+            <transition name="fade" mode="out-in">
+              <router-view></router-view>
+            </transition>
+          </el-col>
+        </div>
 
-                <!--修改密码-->
-                <el-dialog
-                    title="修改密码"
-                    v-if="editPassWord"
-                    :visible.sync="editPassWord"
-                    :close-on-click-modal="false"
-                    customClass="customWidth"
-                >
-                    <el-form :model="addForm" label-width="80px" :rules="passRule" ref="addForm">
-                        <el-form-item label="新密码" prop="password">
-                        <el-input
-                            v-model="addForm.password"
-                            autocomplete="off"
-                            placeholder="请输入新密码"
-                            show-password
-                        ></el-input>
-                        </el-form-item>
-                    </el-form>
-                    <div slot="footer" class="dialog-footer">
-                        <el-button @click.native="editPassWord = false">取消</el-button>
-                        <el-button type="primary" @click.native="resetPwd" :loading="editLoading">提交</el-button>
-                    </div>
-                </el-dialog>
-            </section>
-        </el-col>
-    </el-row>
+        <!--修改密码-->
+        <el-dialog
+          title="修改密码"
+          v-if="editPassWord"
+          :visible.sync="editPassWord"
+          :close-on-click-modal="false"
+          customClass="customWidth"
+        >
+          <el-form :model="addForm" label-width="80px" :rules="passRule" ref="addForm">
+            <el-form-item label="新密码" prop="password">
+              <el-input
+                v-model="addForm.password"
+                autocomplete="off"
+                placeholder="请输入新密码"
+                show-password
+              ></el-input>
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click.native="editPassWord = false">取消</el-button>
+            <el-button type="primary" @click.native="resetPwd" :loading="editLoading">提交</el-button>
+          </div>
+        </el-dialog>
+      </section>
+    </el-col>
+  </el-row>
 </template>
 
 <script>
-    export default {
-        data() {
-            return {
-            user: sessionStorage.getItem("user"),
-            sysName: "云塑网后台管理系统",
-            collapsed: false,
-            sysUserName: "",
+export default {
+  data() {
+    return {
+      user: sessionStorage.getItem("user"),
+      sysName: "云塑网后台管理系统",
+      collapsed: false,
+      sysUserName: "",
 
-            editPassWord: false,
-            editLoading: false,
-            addForm: {
-                password: ""
-            },
-            passRule: {
-                password: [{ required: true, message: "请输入新密码", trigger: "blur" }]
-            },
-            //消息数据
-            popoverData: []
-            };
-        },
-        methods: {
-            onSubmit() {},
+      editPassWord: false,
+      editLoading: false,
+      addForm: {
+        password: ""
+      },
+      passRule: {
+        password: [{ required: true, message: "请输入新密码", trigger: "blur" }]
+      },
+      //消息数据
+      popoverData: [],
+      tips: false
+    };
+  },
+  methods: {
+    onSubmit() {},
 
-            handleopen() {},
+    handleopen() {},
 
-            handleclose() {},
+    handleclose() {},
 
-            handleselect: function(a, b) {},
+    handleselect: function(a, b) {},
 
-            //退出登录
-            logout: function() {
-                var _this = this;
-                this.$confirm("确认退出吗?", "提示", {
-                    //type: 'warning'
-                }).then(() => {
-                    sessionStorage.removeItem("user");
-                    _this.$router.push("/login");
-                });
-            },
+    //退出登录
+    logout: function() {
+      var _this = this;
+      this.$confirm("确认退出吗?", "提示", {
+        //type: 'warning'
+      }).then(() => {
+        sessionStorage.removeItem("user");
+        _this.$router.push("/login");
+      });
+    },
 
-            //折叠导航栏
-            collapse: function() {
-                this.collapsed = !this.collapsed;
-            },
+    //折叠导航栏
+    collapse: function() {
+      this.collapsed = !this.collapsed;
+    },
 
-            showMenu(i, status) {
-                this.$refs.menuCollapsed.getElementsByClassName(
-                    "submenu-hook-" + i
-                )[0].style.display = status ? "block" : "none";
-            },
+    showMenu(i, status) {
+      this.$refs.menuCollapsed.getElementsByClassName(
+        "submenu-hook-" + i
+      )[0].style.display = status ? "block" : "none";
+    },
 
-            reset() {
-                this.editPassWord = true;
-                this.addForm.id = JSON.parse(sessionStorage.getItem("user")).id;
-                this.addForm.account = JSON.parse(sessionStorage.getItem("user")).account;
-            },
+    reset() {
+      this.editPassWord = true;
+      this.addForm.id = JSON.parse(sessionStorage.getItem("user")).id;
+      this.addForm.account = JSON.parse(sessionStorage.getItem("user")).account;
+    },
 
-            resetPwd() {
-                this.$refs.addForm.validate(valid => {
-                    if (valid) {
-                        this.editLoading = true;
-                        this.http.post( this.port.pwd.resetPwd, this.addForm,
-                        res => {
-                            this.editLoading = false;
-                            this.editPassWord = false;
-                            if (res.code == "ok") {
-                                this.$message({
-                                message: "修改成功,请重新登录",
-                                type: "success"
-                                });
-                                this.$router.push("/login");
-                            } else {
-                                this.$message({
-                                message: res.msg,
-                                type: "error"
-                                });
-                            }
-                        },
-                        error => {
-                            this.editLoading = false;
-                            this.editPassWord = false;
-                            this.$message({
-                                message: error,
-                                type: "error"
-                            });
-                            }
-                        );
-                    }
+    resetPwd() {
+      this.$refs.addForm.validate(valid => {
+        if (valid) {
+          this.editLoading = true;
+          this.http.post(
+            this.port.pwd.resetPwd,
+            this.addForm,
+            res => {
+              this.editLoading = false;
+              this.editPassWord = false;
+              if (res.code == "ok") {
+                this.$message({
+                  message: "修改成功,请重新登录",
+                  type: "success"
                 });
-            },
-            //读取消息提示
-            loadNotice() {
-            this.http.post( this.port.notice.list, {
-                pageNum: 1,
-                pageSize: 5
-            },
-                res => {
-                    if (res.code == "ok") {
-                        this.popoverData = res.data.list.list;
-                    } else {
-                        this.$message({
-                        message: res.msg,
-                        type: "error"
-                        });
-                    }
-                },
-                error => {
-                    this.$message({
-                        message: error,
-                        type: "error"
-                    });
+                this.$router.push("/login");
+              } else {
+                this.$message({
+                  message: res.msg,
+                  type: "error"
                 });
+              }
             },
-            //点击消息的跳转
-            locationHerf(id, type) {
-                this.http.post( this.port.notice.read, {
-                    "id": id
-                },
-                res => {
-                    if (res.code == "ok") {
-                        
-                    } else {
-                        this.$message({
-                        message: res.msg,
-                        type: "error"
-                        });
-                    }
-                },
-                error => {
-                    this.$message({
-                        message: error,
-                        type: "error"
-                    });
-                });
-                if (type == 0) {
-                    //审批 跳转到模具详情
-                    this.$router.push("/moldList/" + id);
-                } else if (type == 1) {
-                    //警告 跳转到运行监测
-                    this.$router.push("/detection");
-                } else if (type == 2) {
-                    //保养 跳转到运行监测详情
-                    this.$router.push("/detection/" + id);
-                }
+            error => {
+              this.editLoading = false;
+              this.editPassWord = false;
+              this.$message({
+                message: error,
+                type: "error"
+              });
             }
+          );
+        }
+      });
+    },
+    //读取消息提示
+    loadNotice() {
+      this.http.post(
+        this.port.notice.list,
+        {
+          pageNum: 1,
+          pageSize: 5
         },
-        mounted() {
-            if (this.user) {
-                var user = JSON.parse(this.user);
-                this.user = user;
-                this.sysUserName = user.username || "";
-                this.loadNotice();
-            } else {
-                this.$router.push("/login");
-            }
+        res => {
+          if (res.code == "ok") {
+            this.popoverData = res.data.list.list;
+            this.tips = res.data.isRedPoint;
+          } else {
+            this.$message({
+              message: res.msg,
+              type: "error"
+            });
+          }
+        },
+        error => {
+          this.$message({
+            message: error,
+            type: "error"
+          });
         }
-    };
-</script>
-
-<style scoped lang="scss">
-    @import "~scss_vars";
-
-    .el-menu-vertical-demo i {
-        margin-right: 10px;
+      );
+    },
+    //点击消息的跳转
+    locationHerf(id, type) {
+      this.http.post(
+        this.port.notice.read,
+        {
+          id: id
+        },
+        res => {
+          if (res.code == "ok") {
+          } else {
+            this.$message({
+              message: res.msg,
+              type: "error"
+            });
+          }
+        },
+        error => {
+          this.$message({
+            message: error,
+            type: "error"
+          });
+        }
+      );
+      if (type == 0) {
+        //审批 跳转到模具详情
+        this.$router.push("/moldList/" + id);
+      } else if (type == 1) {
+        //警告 跳转到运行监测
+        this.$router.push("/detection");
+      } else if (type == 2) {
+        //保养 跳转到运行监测详情
+        this.$router.push("/detection/" + id);
+      }
+    },
+    //右上角弹窗警告
+    notify() {
+      this.$notify({
+        title: "警告",
+        message: "这是一条烦人的警告提示消息",
+        type: "warning",
+        duration: 0
+      });
     }
+  },
+  mounted() {
+    this.notify();
 
-    .container .header .logo img.headImg {
-        margin:0;
-        width:40px;
-        height: 40px;
-        margin: 10px 0 0 10px;
+    if (this.user) {
+      var user = JSON.parse(this.user);
+      this.user = user;
+      this.sysUserName = user.username || "";
+      this.loadNotice();
+    } else {
+      this.$router.push("/login");
     }
+  }
+};
+</script>
 
-    .itemNew {
-        height: 25px;
-        margin-right: 25px;
-        i {
-            vertical-align: top;
-        }
-    }
+<style scoped lang="scss">
+@import "~scss_vars";
 
-    .container {
-    position: absolute;
-    top: 0px;
-    bottom: 0px;
-    width: 100%;
-        .header {
-            height: 60px;
-            line-height: 60px;
-            background: $color-primary;
-            color: #fff;
-            .userinfo {
-                text-align: right;
-                padding-right: 35px;
-                float: right;
+.el-menu-vertical-demo i {
+  margin-right: 10px;
+}
 
-                .userinfo-inner {
-                    cursor: pointer;
-                    color: #fff;
-                    img {
-                    width: 40px;
-                    height: 40px;
-                    border-radius: 20px;
-                    margin: 10px 10px 10px 10px;
-                    // float: right;
-                    float: left;
-                    }
-                }
-            }
-            .logo {
-                //width:230px;
-                height: 60px;
-                font-size: 21px;
-                padding-left: 20px;
-                padding-right: 20px;
-                border-color: rgba(238, 241, 146, 0.3);
-                border-right-width: 1px;
-                border-right-style: solid;
-                img {
-                    width: 40px;
-                    float: left;
-                    margin: 10px 10px 10px 18px;
-                }
-                .txt {
-                    color: #fff;
-                }
-            }
+.container .header .logo img.headImg {
+  margin: 0;
+  width: 40px;
+  height: 40px;
+  margin: 10px 0 0 10px;
+}
 
-            .logo-width {
-                width: 230px;
-            }
+.itemNew {
+  height: 25px;
+  margin-right: 25px;
+  i {
+    vertical-align: top;
+  }
+}
 
-            .logo-collapse-width {
-                width: 60px;
-            }
+.container {
+  position: absolute;
+  top: 0px;
+  bottom: 0px;
+  width: 100%;
+  .header {
+    height: 60px;
+    line-height: 60px;
+    background: $color-primary;
+    color: #fff;
+    .userinfo {
+      text-align: right;
+      padding-right: 35px;
+      float: right;
 
-            .tools {
-                padding: 0px 23px;
-                width: 14px;
-                height: 60px;
-                line-height: 60px;
-                cursor: pointer;
-            }
+      .userinfo-inner {
+        cursor: pointer;
+        color: #fff;
+        img {
+          width: 40px;
+          height: 40px;
+          border-radius: 20px;
+          margin: 10px 10px 10px 10px;
+          // float: right;
+          float: left;
         }
-        .main {
-            display: flex;
-            // background: #324057;
-            position: absolute;
-            top: 60px;
-            bottom: 0px;
-            overflow: hidden;
-            aside {
-                flex: 0 0 230px;
-                width: 230px;
-                // position: absolute;
-                // top: 0px;
-                // bottom: 0px;
-                .el-menu {
-                    height: 100%;
-                }
-                .collapsed {
-                    width: 60px;
-                    .item {
-                    position: relative;
-                    }
-                    .submenu {
-                    position: absolute;
-                    top: 0px;
-                    left: 60px;
-                    z-index: 99999;
-                    height: auto;
-                    display: none;
-                    }
-                }
-            }
+      }
+    }
+    .logo {
+      //width:230px;
+      height: 60px;
+      font-size: 21px;
+      padding-left: 20px;
+      padding-right: 20px;
+      border-color: rgba(238, 241, 146, 0.3);
+      border-right-width: 1px;
+      border-right-style: solid;
+      img {
+        width: 40px;
+        float: left;
+        margin: 10px 10px 10px 18px;
+      }
+      .txt {
+        color: #fff;
+      }
+    }
 
-            .menu-collapsed {
-                flex: 0 0 60px;
-                width: 60px;
-            }
+    .logo-width {
+      width: 230px;
+    }
 
-            .menu-expanded {
-                flex: 0 0 230px;
-                width: 230px;
-            }
+    .logo-collapse-width {
+      width: 60px;
+    }
 
-            .content-container {
-                // background: #f8f8f8;
-                //f1f2f7
-                flex: 1;
-                width: 80%;
-                // position: absolute;
-                // right: 0px;
-                // top: 0px;
-                // bottom: 0px;
-                // left: 230px;
-                // overflow-y: scroll;
-                padding: 20px;
-                .breadcrumb-container {
-                    //margin-bottom: 15px;
-                    .title {
-                    width: 200px;
-                    float: left;
-                    color: #475669;
-                    }
-                    .breadcrumb-inner {
-                    float: right;
-                    }
-                }
-                .content-wrapper {
-                    background-color: #fff;
-                    box-sizing: border-box;
-                }
-            }
+    .tools {
+      padding: 0px 23px;
+      width: 14px;
+      height: 60px;
+      line-height: 60px;
+      cursor: pointer;
+    }
+  }
+  .main {
+    display: flex;
+    // background: #324057;
+    position: absolute;
+    top: 60px;
+    bottom: 0px;
+    overflow: hidden;
+    aside {
+      flex: 0 0 230px;
+      width: 230px;
+      // position: absolute;
+      // top: 0px;
+      // bottom: 0px;
+      .el-menu {
+        height: 100%;
+      }
+      .collapsed {
+        width: 60px;
+        .item {
+          position: relative;
+        }
+        .submenu {
+          position: absolute;
+          top: 0px;
+          left: 60px;
+          z-index: 99999;
+          height: auto;
+          display: none;
         }
+      }
     }
 
-    .popover-main {
-        font-weight: 700;
-        padding: 10px;
-        border-bottom: 1px #EEE solid;
+    .menu-collapsed {
+      flex: 0 0 60px;
+      width: 60px;
     }
 
-    .popover-item {
-        padding: 10px;
-        border-bottom: 1px #EEE solid;
+    .menu-expanded {
+      flex: 0 0 230px;
+      width: 230px;
     }
 
-    .popover-item > p {
-        margin: 0;
-        line-height: 18px;
+    .content-container {
+      // background: #f8f8f8;
+      //f1f2f7
+      flex: 1;
+      width: 80%;
+      // position: absolute;
+      // right: 0px;
+      // top: 0px;
+      // bottom: 0px;
+      // left: 230px;
+      // overflow-y: scroll;
+      padding: 20px;
+      .breadcrumb-container {
+        //margin-bottom: 15px;
+        .title {
+          width: 200px;
+          float: left;
+          color: #475669;
+        }
+        .breadcrumb-inner {
+          float: right;
+        }
+      }
+      .content-wrapper {
+        background-color: #fff;
+        box-sizing: border-box;
+      }
     }
+  }
+}
 
-    .popover-title {
-        color: #409eff;
-        padding-bottom: 8px;
-    }
+.popover-main {
+  font-weight: 700;
+  padding: 10px;
+  border-bottom: 1px #eee solid;
+}
 
-    .popover-type {
-        color: #aaa;
-        font-size: 8px;
-        float: right;
-    }
+.popover-item {
+  padding: 10px;
+  border-bottom: 1px #eee solid;
+}
 
-    .popover-button {
-        font-weight: 900;
-        padding: 10px;
-        text-align: center;
-        cursor: pointer;
-    }
+.popover-item > p {
+  margin: 0;
+  line-height: 18px;
+}
+
+.popover-title {
+  color: #409eff;
+  padding-bottom: 8px;
+}
+
+.popover-type {
+  color: #aaa;
+  font-size: 8px;
+  float: right;
+}
+
+.popover-button {
+  font-weight: 900;
+  padding: 10px;
+  text-align: center;
+  cursor: pointer;
+}
 </style>

+ 9 - 3
ys_vue/src/views/detection/detection.vue

@@ -30,7 +30,13 @@
     >
         <el-table-column type="index" width="60"></el-table-column>
         <el-table-column prop="modelNo" label="模具编号" width="100" sortable></el-table-column>
-        <el-table-column prop="modelName" label="模具名称" width="200" sortable></el-table-column>
+        <el-table-column label="模具名称" width="200" sortable>
+            <template slot-scope="scope">
+                <a style="color: #409EFF; cursor: pointer" @click="toMaintenance(scope.row.id)">
+                    {{scope.row.modelName}}
+                </a>
+            </template>
+        </el-table-column>
         <el-table-column prop="equipmentNo" label="云模盒编号" width="120" sortable></el-table-column>
         <el-table-column prop="projectName" label="所属项目" width="200" sortable></el-table-column>
         <el-table-column prop="factoryName" label="制造工厂" width="200" sortable></el-table-column>
@@ -41,8 +47,8 @@
         <el-table-column prop="state" label="当前状态" align="center" width="100" sortable></el-table-column>
         <el-table-column label="模具保养" align="center" fixed="right" width="100">
             <template slot-scope="scope">
-                <span v-if="scope.row.runTimes > scope.row.initialModulus"><a style="color: #409EFF; cursor: pointer" @click="toMaintenance(scope.row.id)">需要</a></span>
-                <span v-else><a style="color: #409EFF; cursor: pointer" @click="toMaintenance(scope.row.id)">不需要</a></span>
+                <span v-if="scope.row.runTimes > scope.row.initialModulus">需要</span>
+                <span v-else>不需要</span>
             </template>
         </el-table-column>
     </el-table>

+ 2 - 2
ys_vue/src/views/detection/maintenance.vue

@@ -10,10 +10,10 @@
         <el-form-item>
           {{mouldName}}
         </el-form-item>
-        <el-form-item style="float:right;">
+        <!-- <el-form-item style="float:right;">
           保养提醒:
           <el-switch v-model="prompt" active-color="#ff4949"></el-switch>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item style="float: right">
           当前保养状态:
           <span style="color: #ff4949; margin-right: 16px;">需要</span>

+ 143 - 70
ys_vue/src/views/message.vue

@@ -1,86 +1,159 @@
 <template>
-    <section>
-        <!--工具条-->
-        <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
-            <el-form :inline="true">
-                <el-col :span="2">
-                    <el-form-item>全部消息</el-form-item>
-                </el-col>
-            </el-form>
+  <section>
+    <!--工具条-->
+    <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
+      <el-form :inline="true">
+        <el-col :span="2">
+          <el-form-item>全部消息</el-form-item>
         </el-col>
-        <div class="message-div" v-for="item in messages">
-            <p>
-                <span class="message-type" v-if="item.noticeType == 0">【审批】</span>
-                <span class="message-type" v-else-if="item.noticeType == 1">【警告】</span>
-                <span class="message-type" v-else-if="item.noticeType == 2">【保养】</span>
-                <span class="message-title">{{item.projectName}}</span>
-                <span class="message-time">{{item.indate}}</span>
-            </p>
-            <p class="message-article">{{item.content}}</p>
-        </div>
-    </section>
+      </el-form>
+    </el-col>
+    <div class="message-div" v-for="item in messages">
+      <p>
+        <span class="message-type" v-if="item.noticeType == 0">【审批】</span>
+        <span class="message-type" v-else-if="item.noticeType == 1">【警告】</span>
+        <span class="message-type" v-else-if="item.noticeType == 2">【保养】</span>
+        <span
+          class="message-title"
+          @click="locationHerf(item.refId, item.noticeType)"
+        >{{item.projectName}}</span>
+        <span class="message-time">{{item.indate}}</span>
+      </p>
+      <p class="message-article">{{item.content}}</p>
+    </div>
+    <!--工具条-->
+    <el-col :span="24" class="toolbar">
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :page-sizes="[20 , 50 , 80 , 100 , 200]"
+        :page-size="20"
+        layout="total, sizes, prev, pager, next"
+        :total="total"
+        style="float:right;"
+      ></el-pagination>
+    </el-col>
+  </section>
 </template>
 
 <script>
-    import util from "../common/js/util";
-    export default {
-        data() {
-            return {
-            messages: []
-            };
+import util from "../common/js/util";
+export default {
+  data() {
+    return {
+      messages: [],
+      page: 1,
+      size: 20,
+      total: 0,
+      tableHeight: 0
+    };
+  },
+  methods: {
+    //分页
+    handleCurrentChange(val) {
+      this.page = val;
+      this.loadNotice();
+    },
+    handleSizeChange(val) {
+      this.size = val;
+      this.loadNotice();
+    },
+    //读取消息提示
+    loadNotice() {
+      this.http.post(
+        this.port.notice.list,
+        {
+          pageNum: this.page,
+          pageSize: this.size
         },
-        methods: {
-            //读取消息提示
-            loadNotice() {
-            this.http.post(
-                this.port.notice.list,
-                {},
-                res => {
-                if (res.code == "ok") {
-                    this.messages = res.data.list.list;
-                } else {
-                    this.$message({
-                    message: res.msg,
-                    type: "error"
-                    });
-                }
-                },
-                error => {
-                this.$message({
-                    message: error,
-                    type: "error"
-                });
-                }
-            );
-            }
+        res => {
+          if (res.code == "ok") {
+            this.messages = res.data.list.list;
+          } else {
+            this.$message({
+              message: res.msg,
+              type: "error"
+            });
+          }
         },
-        created() {},
-        mounted() {
-            this.loadNotice();
+        error => {
+          this.$message({
+            message: error,
+            type: "error"
+          });
         }
-    };
+      );
+    },
+    //点击消息的跳转
+    locationHerf(id, type) {
+      this.http.post(
+        this.port.notice.read,
+        {
+          id: id
+        },
+        res => {
+          if (res.code == "ok") {
+          } else {
+            this.$message({
+              message: res.msg,
+              type: "error"
+            });
+          }
+        },
+        error => {
+          this.$message({
+            message: error,
+            type: "error"
+          });
+        }
+      );
+      if (type == 0) {
+        //审批 跳转到模具详情
+        this.$router.push("/moldList/" + id);
+      } else if (type == 1) {
+        //警告 跳转到运行监测
+        this.$router.push("/detection");
+      } else if (type == 2) {
+        //保养 跳转到运行监测详情
+        this.$router.push("/detection/" + id);
+      }
+    }
+  },
+  created() {
+    let height = window.innerHeight;
+    this.tableHeight = height - 260;
+  },
+  mounted() {
+    this.loadNotice();
+  }
+};
 </script>
 
 <style scoped>
-    .message-div {
-        padding: 5px 0;
-    }
+.message-div {
+  padding: 5px 0;
+}
 
-    .message-div > p {
-        line-height: 25px;
-        margin: 0;
-    }
+.message-div > p {
+  line-height: 25px;
+  margin: 0;
+}
 
-    .message-type {
-        font-weight: 700;
-    }
+.message-type {
+  font-weight: 700;
+}
 
-    .message-time {
-        padding-left: 30px;
-        color: #777;
-    }
+.message-time {
+  padding-left: 30px;
+  color: #777;
+}
 
-    .message-article {
-        color: #555;
-    }
+.message-title {
+  cursor: pointer;
+  color: #409eff;
+}
+
+.message-article {
+  color: #555;
+}
 </style>

+ 196 - 29
ys_vue/src/views/mold/moldDetail.vue

@@ -85,18 +85,23 @@
             文档资料
 
             <!-- 上传 模具0 零件1 时 -->
-            <el-dropdown trigger="click" style="float:right;" v-show="(activeTab == 0 || activeTab == 1) && update == 1">
+            <el-dropdown trigger="click" style="float:right;" v-show="activeTab == 0 && update == 1">
                 <el-button size="small" type="primary">
                     上传
                     <i class="el-icon-arrow-down el-icon--right"></i>
                 </el-button>
                 <el-dropdown-menu slot="dropdown">
                     <el-upload ref="upload" action="customize" :http-request="uploadFile" :show-file-list="false" multiple :limit="5" style="float:right;">
-                    <el-dropdown-item @click.native="fileType = 0">2D</el-dropdown-item>
-                    <el-dropdown-item @click.native="fileType = 1">3D</el-dropdown-item>
+                        <el-dropdown-item @click.native="fileType = 0">2D图档</el-dropdown-item>
+                        <el-dropdown-item @click.native="fileType = 1">3D图档</el-dropdown-item>
                     </el-upload>
                 </el-dropdown-menu>
             </el-dropdown>
+            
+            <!-- 上传 模具0 零件1 时 -->
+            <el-button size="small" type="primary" style="float:right;" v-show="activeTab == 1 && update == 1" @click.native="fileType = 0;centerDialog4Visible = true;">
+                上传
+            </el-button>
 
             <!-- 零件1 新建零件 -->
             <el-dropdown trigger="click" style="float:right; margin-right: 10px;" v-show=" activeTab == 1 && update == 1">
@@ -106,7 +111,16 @@
                 </el-button>
                 <el-dropdown-menu slot="dropdown">
                     <el-dropdown-item @click.native="centerDialog3Visible = true">单个新建</el-dropdown-item>
-                    <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>
+                    </el-dropdown-item>
                 </el-dropdown-menu>
             </el-dropdown>
 
@@ -178,27 +192,29 @@
                 <el-tab-pane label="零件文档" name="1">
 
                     <el-table
-                    :data="documents.part"
-                    highlight-current-row
-                    v-loading="listLoading"
-                    style="width: 100%;"
+                        :data="documents.part"
+                        highlight-current-row
+                        v-loading="listLoading"
+                        style="width: 100%;"
                     >
                         <el-table-column type="index" width="40"></el-table-column>
-                        <el-table-column label="零件编号" width="200" sortable></el-table-column>
-                        <el-table-column prop="fileName" label="零件名称" sortable></el-table-column>
-                        <el-table-column label="寿命次数" width="100" sortable></el-table-column>
-                        <el-table-column label="易损件" width="100" sortable></el-table-column>
-                        <el-table-column prop="fileSize" label="大小" width="200" sortable></el-table-column>
-                        <el-table-column prop="uploadtor" label="上传者" width="200" sortable></el-table-column>
+                        <el-table-column prop="partNo" label="零件编号" width="150" sortable></el-table-column>
+                        <el-table-column prop="partName" label="零件名称" sortable></el-table-column>
+                        <el-table-column prop="partLife" label="寿命次数" width="100" sortable></el-table-column>
+                        <el-table-column prop="isVulnerable" label="易损件" width="100" sortable>
+                            <template slot-scope="scope">{{scope.row.isVulnerable==0?'否':'是'}}</template>
+                        </el-table-column>
+                        <el-table-column prop="part3dFile" label="3D图档" width="200" sortable></el-table-column>
+                        <el-table-column prop="part2dFile" label="2D图档" width="200" sortable></el-table-column>
                         <el-table-column prop="indate" label="上传时间" width="200" sortable></el-table-column>
                         <el-table-column label="状态" width="120" sortable>
                             <template slot-scope="scope">
-                            <span v-if="scope.row.state == -2">生产方审核不通过</span>
-                            <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
-                            <span v-else-if="scope.row.state == 0">待双方审核</span>
-                            <span v-else-if="scope.row.state == 1">待生产方审核</span>
-                            <span v-else-if="scope.row.state == 2">待资产方审核</span>
-                            <span v-else-if="scope.row.state == 3">审核通过</span>
+                                <span v-if="scope.row.state == -2">生产方审核不通过</span>
+                                <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
+                                <span v-else-if="scope.row.state == 0">待双方审核</span>
+                                <span v-else-if="scope.row.state == 1">待生产方审核</span>
+                                <span v-else-if="scope.row.state == 2">待资产方审核</span>
+                                <span v-else-if="scope.row.state == 3">审核通过</span>
                             </template>
                         </el-table-column>
                         <el-table-column label="操作" width="200" sortable>
@@ -206,9 +222,12 @@
                                 <el-button size="small" 
                                     v-if="approve == 1 && (scope.row.state == 0 || (scope.row.state == 1 && user.subordinateType == 1) || (scope.row.state == 2 && user.subordinateType == 0))" 
                                     @click="checkOpen(scope.row.id, scope.row.fileName)">审批</el-button>
-                                <a :href="scope.row.fileUrl" :download="scope.row.fileName" v-if="download == 1 && scope.row.state == 3">
-                                    <el-button size="small" @click="dowloadfile(scope.row.id)">下载</el-button>
-                                </a>
+                                <el-button size="small" @click="dowloadfile(scope.row.id)" v-if="download == 1 && scope.row.state == 3">
+                                    修改
+                                </el-button>
+                                <el-button size="small" @click="dowloadfile(scope.row.id)" v-if="download == 1 && scope.row.state == 3">
+                                    <a :href="scope.row.fileUrl" :download="scope.row.fileName">下载 </a>
+                                </el-button>
                                 <el-button size="small" 
                                     v-if="scope.row.uplodtorId == user.id && scope.row.state <= 0" 
                                     @click="deleteFile(scope.row.id)" type="danger">删除</el-button>
@@ -400,22 +419,33 @@
             </span>
         </el-dialog>
 
+        <!-- 零件文档上传弹窗 -->
+        <el-dialog title="零件文档上传" v-if="centerDialog4Visible" :visible.sync="centerDialog4Visible" width="30%" :before-close="clearFileRecord" center>
+            <p style="color:#ccc;">文件命名规则:零件编号+2D/3D  如 LJ001+2D.dwg</p>
+            <el-upload ref="upload4" action="uploadFile" :http-request="uploadPartFile" :show-file-list="true" :before-remove="beforeRemove" multiple>
+                <el-button size="small" type="primary">上传</el-button>
+            </el-upload>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="uploadFilePart">确定</el-button>
+            </span>
+        </el-dialog>
+
         <!-- 单个新增零件弹窗 -->
         <el-dialog title="编辑模具" v-if="centerDialog3Visible" :visible.sync="centerDialog3Visible" :close-on-click-modal="false" customClass="customWidth">
             <el-form :model="newParts" label-width="100px" :rules="formRules" ref="newParts" :inline="true" class="demo-form-inline">
                 <el-form-item label="零件编号" prop="number">
-                    <el-input v-model="newParts.number" autocomplete="off" placeholder="请输入模具名称"></el-input>
+                    <el-input v-model="newParts.number" autocomplete="off" placeholder="请输入零件编号"></el-input>
                 </el-form-item>
                 <el-form-item label="零件名称" prop="name">
-                    <el-input v-model="newParts.name" autocomplete="off" placeholder="请输入模具编号"></el-input>
+                    <el-input v-model="newParts.name" autocomplete="off" placeholder="请输入零件名称"></el-input>
                 </el-form-item>
                 <el-form-item label="零件寿命" prop="life">
-                    <el-input v-model="newParts.life" autocomplete="off" placeholder="请输入初始模次"></el-input>
+                    <el-input v-model="newParts.life" autocomplete="off" placeholder="请输入零件寿命"></el-input>
                 </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
                 <el-button @click.native="centerDialog3Visible = false">取消</el-button>
-                <el-button type="primary">提交</el-button>
+                <el-button type="primary" @click.native="subPart" :loading="editLoading">提交</el-button>
             </div>
         </el-dialog>
 
@@ -525,6 +555,7 @@
                 centerDialogVisible: false, //审批界面
                 centerDialog2Visible: false, //模具界面
                 centerDialog3Visible: false, //创建零件界面
+                centerDialog4Visible: false, //零件文档上传界面
 
                 listLoading: false,
                 activeTab: 0,
@@ -545,7 +576,9 @@
                     rfid: "",
                     produceCompanyId: "",
                     flag: 1
-                }
+                },
+
+                files: new FormData()
             };
         },
         methods: {
@@ -612,6 +645,7 @@
                         this.approve = res.data.approve;
 
                         this.getDocument();
+                        this.getPartList();
                     } else {
                         this.$message({
                             message: res.msg,
@@ -719,7 +753,7 @@
                 if(num == 0){
                     this.documents.mould = array;
                 } else if(num == 1) {
-                    this.documents.part = array;
+                    //this.documents.part = array;
                 } else if(num == 2) {
                     this.documents.check = array;
                 } else if(num == 3) {
@@ -741,8 +775,10 @@
             //清理报废文档上传窗口中的文件
             clearFileRecord() {
                 this.centerDialog2Visible = false;
+                this.centerDialog4Visible = false;
                 this.$refs.upload1.clearFiles();
                 this.$refs.upload2.clearFiles();
+                this.$refs.upload4.clearFiles();
             },
 
             //审批文件
@@ -866,6 +902,137 @@
                 })
             },
 
+            //零件新建
+            subPart() {
+                this.editLoading = true;
+                this.http.post( this.port.mold.moulds, {
+                    belongCompanyId: this.user.companyId,
+                    mouldId: this.detailId
+                },
+                res => {
+                    this.editLoading = false;
+                    if (res.code == "ok") {
+                        this.$message({
+                            message: "新建成功",
+                            type: "success"
+                        });
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.editLoading = false;
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
+
+            //零件列表
+            getPartList() {
+                this.http.post( this.port.mold.partList, {
+                    mouldId: this.detailId
+                },
+                res => {
+                    if (res.code == "ok") {
+                        this.documents.part = res.data;
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
+
+            //零件导入
+            uploadPart(params) {
+                var fileObj = params.file;
+                var form = new FormData();
+                form.append("file", fileObj);
+                form.append("mouldId", this.detailId);
+                this.http.uploadFile( this.port.mold.importPart, form,
+                res => {
+                    if (res.code == "ok") {
+                        this.$message({
+                            message: "上传成功",
+                            type: "success"
+                        });
+                        this.$refs.upload.clearFiles();
+                        this.getPartList();
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
+
+            //零件文档批量
+            beforeRemove(params) {
+                for(var i in this.files){
+                    if(this.files[i].uid == params.uid) {
+                        this.files.splice(i , 1); 
+                    }
+                }
+            },
+
+            uploadPartFile(params) {
+                //this.files.push(params.file)
+                this.files.append("file", params.file);
+                return false;
+            },
+
+            uploadFilePart() {
+                // var fileObj = this.files;
+                // var form = new FormData();
+                // for(var i in fileObj){
+                //     console.log(fileObj[i])
+                //     form.append("file", fileObj[i]);
+                // }
+                var form = this.files;
+                form.append("mouldId", this.detailId);
+                this.http.uploadFile( this.port.mold.partUpload, form,
+                res => {
+                    if (res.code == "ok") {
+                        this.$message({
+                            message: "上传成功",
+                            type: "success"
+                        });
+                        this.$refs.upload.clearFiles();
+                        this.getPartList();
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
+
             //获取操作记录
             getOperationRecord(type) {
                 this.http.post( this.port.mold.moldOperationList, { 

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

@@ -43,7 +43,7 @@
             <el-table-column prop="hillNumber" label="电量" align="center" width="100" sortable></el-table-column>
             <el-table-column prop="diffTime" label="倒计时" align="center" width="100" sortable></el-table-column>
             <el-table-column prop="projectName" label="所属项目" width="140" sortable></el-table-column>
-            <el-table-column prop="ownerCompanyName" label="所属资产方" width="300" sortable></el-table-column>
+            <el-table-column prop="companyName" label="所属资产方" width="300" 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="settingLife" label="模次寿命" width="100" align="center" sortable></el-table-column>