Преглед изворни кода

硬件信息接口调用完毕

pm пре 1 година
родитељ
комит
135bb311ab

+ 3 - 0
src/api/mes/dv/repair.js

@@ -42,3 +42,6 @@ export function delRepair(repairId) {
     method: 'delete'
   })
 }
+
+
+

+ 46 - 0
src/api/mes/hw/hadrwareType.js

@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+
+
+// 查询硬件类型-列表
+export function listHanrware(query) {
+  return request({
+    url: '/iscs/type/getIsHardwareTypePage',
+    method: 'get',
+    params: query
+  })
+}
+
+// 获取硬件类型详细信息
+export function getHardwareTypeInfo(repairId) {
+  return request({
+    url: '/iscs/type/selectIsHardwareTypeById/?id=' + repairId,
+    method: 'get'
+  })
+}
+
+//新增硬件类型
+export function addHardwareType(query) {
+  return request({
+    url: '/iscs/type/insertIsHardwareType',
+    method: 'post',
+    data: query
+  })
+}
+
+// 修改设备维修单
+export function updateHardware(data) {
+  return request({
+    url: '/iscs/type/updateIsHardwareType',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除设备维修单
+export function delHardware(repairId) {
+  return request({
+    url: '/iscs/type/deleteIsHardwareTypeByIds?ids='+ repairId,
+    method: 'post'
+
+  })
+}

+ 52 - 0
src/api/mes/hw/hardwareinfo.js

@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+
+// 查询硬件-列表
+export function listHardware(query) {
+  return request({
+    url: '/iscs/hardware/getIsHardwarePage',
+    method: 'get',
+    params: query
+  })
+}
+// 获取硬件类型-所有
+export function getHardwareTypeListAPI() {
+  return request({
+    url: '/iscs/type/getIsHardwareTypeList',
+    method: 'get',
+
+  })
+}
+// 获取硬件详细信息
+export function getHardwareInfo(repairId) {
+  return request({
+    url: '/iscs/hardware/selectIsHardwareById/?id=' + repairId,
+    method: 'get'
+  })
+}
+
+//新增硬件信息
+export function addHardware(query) {
+  return request({
+    url: '/iscs/hardware/insertIsHardware',
+    method: 'post',
+    data: query
+  })
+}
+
+// 修改硬件
+export function updateHardware(data) {
+  return request({
+    url: '/iscs/hardware/updateIsHardware',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除硬件
+export function delHardware(repairId) {
+  return request({
+    url: '/iscs/hardware/deleteIsHardwareByIds?ids='+ repairId,
+    method: 'post'
+  })
+}

BIN
src/assets/images/error.png


BIN
src/assets/images/success.png


BIN
src/assets/images/warn.png


+ 2 - 2
src/directive/dialog/drag.js

@@ -1,6 +1,6 @@
 /**
 * v-dialogDrag 弹窗拖拽
-* Copyright (c) 2019 ruoyi
+* Copyright (c) 2024 guoruan
 */
 
 export default {
@@ -61,4 +61,4 @@ export default {
       };
     }
   }
-};
+};

+ 2 - 2
src/directive/dialog/dragHeight.js

@@ -1,6 +1,6 @@
 /**
 * v-dialogDragWidth 可拖动弹窗高度(右下角)
-* Copyright (c) 2019 ruoyi
+* Copyright (c) 2024 guoruan
 */
 
 export default {
@@ -31,4 +31,4 @@ export default {
             }, false);
         dragDom.appendChild(lineEl);
     }
-}
+}

+ 2 - 2
src/directive/dialog/dragWidth.js

@@ -1,6 +1,6 @@
 /**
 * v-dialogDragWidth 可拖动弹窗宽度(右侧边)
-* Copyright (c) 2019 ruoyi
+* Copyright (c) 2024 guoruan
 */
 
 export default {
@@ -27,4 +27,4 @@ export default {
             }, false);
         dragDom.appendChild(lineEl);
     }
-}
+}

+ 1 - 1
src/directive/module/clipboard.js

@@ -1,6 +1,6 @@
 /**
 * v-clipboard 文字复制剪贴
-* Copyright (c) 2021 ruoyi
+* Copyright (c) 2024 guoruan
 */
 
 import Clipboard from 'clipboard'

+ 2 - 2
src/directive/permission/hasPermi.js

@@ -1,8 +1,8 @@
  /**
  * v-hasPermi 操作权限处理
- * Copyright (c) 2019 ruoyi
+ * Copyright (c) 2024 guoruan
  */
- 
+
 import store from '@/store'
 
 export default {

+ 2 - 2
src/directive/permission/hasRole.js

@@ -1,8 +1,8 @@
  /**
  * v-hasRole 角色权限处理
- * Copyright (c) 2019 ruoyi
+ * Copyright (c) 2024 guoruan
  */
- 
+
 import store from '@/store'
 
 export default {

+ 9 - 0
src/main.js

@@ -63,6 +63,15 @@ Vue.component('Editor', Editor)
 Vue.component('FileUpload', FileUpload)
 Vue.component('ImageUpload', ImageUpload)
 Vue.component('ImagePreview', ImagePreview)
+// 解决el-radio报错
+Vue.directive('removeAriaHidden', {
+  bind(el, binding) {
+    let ariaEls = el.querySelectorAll('.el-radio__original');
+    ariaEls.forEach((item) => {
+      item.removeAttribute('aria-hidden');
+    });
+  }
+});
 
 Vue.use(directive)
 Vue.use(plugins)

+ 1 - 0
src/router/index.js

@@ -247,6 +247,7 @@ export const dynamicRoutes = [
       }
     ]
   },
+
   {
     path: '/print/pt',
     component: Layout,

+ 3 - 3
src/utils/ruoyi.js

@@ -2,7 +2,7 @@
 
 /**
  * 通用js方法封装处理
- * Copyright (c) 2019 ruoyi
+ * Copyright (c) 2024 guoruan
  */
 
 // 日期格式化
@@ -68,7 +68,7 @@ export function addDateRange(params, dateRange, propName) {
   return search;
 }
 
-// 回显数据字典 
+// 回显数据字典
 export function selectDictLabel(datas, value) {
   if (value === undefined) {
     return "";
@@ -233,4 +233,4 @@ export async function blobValidate(data) {
   } catch (error) {
     return true;
   }
-}
+}

+ 8 - 8
src/views/index_v1.vue

@@ -39,9 +39,9 @@
     </el-row>
     <el-row :gutter="20">
       <el-col :sm="24" :lg="12" style="padding-left: 20px">
-        <h2>若依后台管理框架</h2>
+        <h2>国软后台管理框架</h2>
         <p>
-          一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
+          一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了国软管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
         </p>
         <p>
           <b>当前版本:</b> <span>v{{ version }}</span>
@@ -112,15 +112,15 @@
           <div class="body">
             <p>
               <i class="el-icon-s-promotion"></i> 官网:<el-link
-                href="http://www.ruoyi.vip"
+                href="http://www.guoruan.vip"
                 target="_blank"
-                >http://www.ruoyi.vip</el-link
+                >http://www.guoruan.vip</el-link
               >
             </p>
             <p>
               <i class="el-icon-user-solid"></i> QQ群:<s>满937441</s> <s>满887144332</s>
               <s>满180251782</s> <s>满104180207</s> <s>满186866453</s> <s>满201396349</s>
-              <s>满101456076</s> <s>满101539465</s> <s>满264312783</s> <s>满167385320</s> 
+              <s>满101456076</s> <s>满101539465</s> <s>满264312783</s> <s>满167385320</s>
               <s>满139821253</s> <a href="https://jq.qq.com/?_wv=1027&k=96Dkdq0k" target="_blank">
                 104748341</a
               >
@@ -128,14 +128,14 @@
             <p>
               <i class="el-icon-chat-dot-round"></i> 微信:<a
                 href="javascript:;"
-                >/ *若依</a
+                >/ *国软</a
               >
             </p>
             <p>
               <i class="el-icon-money"></i> 支付宝:<a
                 href="javascript:;"
                 class="支付宝信息"
-                >/ *若依</a
+                >/ *国软</a
               >
             </p>
           </div>
@@ -802,7 +802,7 @@
             </el-collapse-item>
             <el-collapse-item title="v1.0.0 - 2019-10-08">
               <ol>
-                <li>若依前后端分离系统正式发布</li>
+                <li>国软前后端分离系统正式发布</li>
               </ol>
             </el-collapse-item>
           </el-collapse>

+ 179 - 188
src/views/mes/hw/information/index.vue

@@ -9,17 +9,17 @@
       label-width="100px"
     >
       <el-row>
-        <el-form-item label="硬件编码" prop="repairCode">
+        <el-form-item label="硬件编码" prop="hardwareCode">
           <el-input
-            v-model="queryParams.repairCode"
+            v-model="queryParams.hardwareCode"
             placeholder="请输入硬件编码"
             clearable
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="硬件名称" prop="repairName">
+        <el-form-item label="硬件名称" prop="hardwareName">
           <el-input
-            v-model="queryParams.repairName"
+            v-model="queryParams.hardwareName"
             placeholder="请输入硬件名称"
             clearable
             @keyup.enter.native="handleQuery"
@@ -32,41 +32,44 @@
             placeholder="请选择硬件状态"
             clearable
           >
-            <el-option
-              v-for="dict in dict.type.mes_order_status"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
+            <el-option label="在线" value="1"></el-option>
+            <el-option label="离线" value="2"></el-option>
+            <el-option label="异常" value="3"></el-option>
+<!--            <el-option-->
+<!--              v-for="dict in dict.type.mes_order_status"-->
+<!--              :key="dict.value"-->
+<!--              :label="dict.label"-->
+<!--              :value="dict.value"-->
+<!--            />-->
           </el-select>
         </el-form-item>
 
-        <el-form-item label="硬件类型" prop="status">
+        <el-form-item label="硬件类型" prop="hardwareTypeName">
           <el-select
-            v-model="queryParams.status"
+            v-model="queryParams.hardwareTypeName"
             placeholder="请选择硬件类型"
             clearable
           >
             <el-option
-              v-for="dict in dict.type.mes_order_status"
-              :key="dict.value"
+              v-for="dict in hardwareTypeOption"
+              :key="dict.key"
               :label="dict.label"
               :value="dict.value"
             />
           </el-select>
         </el-form-item>
       </el-row>
-      <el-form-item label="规格型号" prop="machineryCode">
+      <el-form-item label="规格型号" prop="hardwareSpec">
         <el-input
-          v-model="queryParams.machineryCode"
+          v-model="queryParams.hardwareSpec"
           placeholder="请输入规格型号"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="创建时间" prop="machineryName">
+      <el-form-item label="创建时间" prop="createTime">
         <el-date-picker
-          v-model="value2"
+          v-model="queryParams.createTime"
           type="datetimerange"
           :picker-options="pickerOptions"
           range-separator="-"
@@ -79,15 +82,15 @@
       </el-form-item>
       <el-form-item label="所属车间" prop="status">
         <el-select
-          v-model="queryParams.status"
+          v-model="queryParams.workshopName"
           placeholder="请选择所属车间"
           clearable
         >
           <el-option
-            v-for="dict in dict.type.mes_order_status"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
+            v-for="dict in this.workshopOption"
+            :key="dict.workshopId"
+            :label="dict.workshopName"
+            :value="dict.workshopCode"
           />
         </el-select>
       </el-form-item>
@@ -138,7 +141,7 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['mes:hw:information:remove']"
+          v-hasPermi="['mes:hw:information:batchremove']"
           >批量删除</el-button
         >
       </el-col>
@@ -158,43 +161,43 @@
         label="硬件编码"
         width="120px"
         align="center"
-        prop="repairCode"
+        prop="hardwareCode"
       />
       <el-table-column
         label="硬件名称"
         width="150px"
         align="center"
-        prop="repairName"
+        prop="hardwareName"
         :show-overflow-tooltip="true"
       />
-      <el-table-column label="硬件类型" align="center" prop="machineryCode" />
-      <el-table-column label="规格型号" align="center" prop="machineryName" />
-      <el-table-column label="所属车间" align="center" prop="machineryName" />
-      <el-table-column label="硬件状态" align="center" prop="acceptedBy" />
+      <el-table-column label="硬件类型" align="center" prop="hardwareTypeName" />
+      <el-table-column label="规格型号" align="center" prop="hardwareSpec" />
+      <el-table-column label="所属车间" align="center" prop="workshopName" />
+      <el-table-column label="硬件状态" align="center" prop="status" />
       <el-table-column
         label="创建时间"
         align="center"
-        prop="requireDate"
-        width="120"
+        prop="createTime"
+        width="180"
       >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.requireDate, "{y}-{m}-{d}") }}</span>
+          <span>{{ scope.row.createTime }}</span>
         </template>
       </el-table-column>
       <el-table-column
         label="启用时间"
         align="center"
-        prop="finishDate"
+        prop="activationTime"
         width="120"
       >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.finishDate, "{y}-{m}-{d}") }}</span>
+          <span>{{ scope.row.activationTime }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="可用次数" align="center" prop="machineryName" />
-      <el-table-column label="可用寿命" align="center" prop="machineryName" />
-      <el-table-column label="已用次数" align="center" prop="machineryName" />
-      <el-table-column label="已用寿命" align="center" prop="machineryName" />
+      <el-table-column label="可用次数" align="center" prop="availableTimes" />
+      <el-table-column label="可用寿命" align="center" prop="availableLife" />
+      <el-table-column label="已用次数" align="center" prop="usedTimes" />
+      <el-table-column label="已用寿命" align="center" prop="usedLife" />
       <el-table-column
         label="操作"
         align="center"
@@ -218,7 +221,7 @@
             v-hasPermi="['mes:hw:information:remove']"
             >删除</el-button
           >
-          <el-button size="mini" type="text">预览</el-button>
+<!--          <el-button size="mini" type="text">预览</el-button>-->
         </template>
       </el-table-column>
     </el-table>
@@ -226,8 +229,8 @@
     <pagination
       v-show="total > 0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
       @pagination="getList"
     />
 
@@ -241,24 +244,25 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-row>
           <el-col :span="11">
-            <el-form-item label="硬件编码" prop="repairCode">
+            <el-form-item label="硬件编码" prop="hardwareCode">
               <el-input
-                v-model="form.repairCode"
+                v-model="form.hardwareCode"
                 placeholder="请输入硬件编码"
                 style="width: 100%"
               />
             </el-form-item>
           </el-col>
           <el-col :span="11">
-            <el-form-item label="硬件类型" prop="status">
+            <el-form-item label="硬件类型" prop="hardwareTypeName">
               <el-select
-                v-model="queryParams.status"
+                v-model="form.hardwareTypeName"
                 placeholder="请选择硬件类型"
                 clearable
                 style="width: 100%"
+                @change="hardTypeChange"
               >
                 <el-option
-                  v-for="dict in dict.type.mes_order_status"
+                  v-for="dict in this.hardwareTypeOption"
                   :key="dict.value"
                   :label="dict.label"
                   :value="dict.value"
@@ -269,17 +273,17 @@
         </el-row>
         <el-row>
           <el-col :span="11">
-            <el-form-item label="硬件名称" prop="repairName">
+            <el-form-item label="硬件名称" prop="hardwareName">
               <el-input
-                v-model="form.repairName"
+                v-model="form.hardwareName"
                 placeholder="请输入硬件名称"
               />
             </el-form-item>
           </el-col>
           <el-col :span="11">
-            <el-form-item label="规格型号" prop="repairName">
+            <el-form-item label="规格型号" prop="hardwareSpec">
               <el-input
-                v-model="form.repairName"
+                v-model="form.hardwareSpec"
                 placeholder="请输入规格型号"
               />
             </el-form-item>
@@ -287,10 +291,10 @@
         </el-row>
         <el-row>
           <el-col :span="11">
-            <el-form-item label="启用日期" prop="requireDate">
+            <el-form-item label="启用日期" prop="activationTime">
               <el-date-picker
                 clearable
-                v-model="form.requireDate"
+                v-model="form.activationTime"
                 style="width: 100%"
                 type="date"
                 value-format="yyyy-MM-dd"
@@ -299,18 +303,19 @@
               </el-date-picker> </el-form-item
           ></el-col>
           <el-col :span="11">
-            <el-form-item label="所属车间" prop="status">
+            <el-form-item label="所属车间" prop="workshopName">
               <el-select
-                v-model="queryParams.status"
+                v-model="form.workshopName"
                 placeholder="请选择所属车间"
                 clearable
                 style="width: 100%"
+                @change="workShopChange"
               >
                 <el-option
-                  v-for="dict in dict.type.mes_order_status"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
+                  v-for="dict in this.workshopOption"
+                  :key="dict.workshopId"
+                  :label="dict.workshopName"
+                  :value="dict.workshopCode"
                 />
               </el-select>
             </el-form-item>
@@ -318,19 +323,17 @@
         </el-row>
         <el-row>
           <el-col :span="11">
-            <el-form-item label="可用次数" prop="acceptedName">
+            <el-form-item label="可用次数" prop="availableTimes">
               <el-input
-                v-model="form.acceptedName"
-                readonly="readonly"
+                v-model="form.availableTimes"
                 placeholder="请输入可用次数"
               />
             </el-form-item>
           </el-col>
           <el-col :span="11">
-            <el-form-item label="已用次数" prop="acceptedName">
+            <el-form-item label="已用次数" prop="usedTimes">
               <el-input
-                v-model="form.acceptedName"
-                readonly="readonly"
+                v-model="form.usedTimes"
                 placeholder="请输入已用次数"
               />
             </el-form-item>
@@ -338,28 +341,26 @@
         </el-row>
         <el-row>
           <el-col :span="11">
-            <el-form-item label="可用寿命" prop="acceptedName">
+            <el-form-item label="可用寿命" prop="availableLife">
               <el-input
-                v-model="form.acceptedName"
-                readonly="readonly"
+                v-model="form.availableLife"
                 placeholder="请输入可用寿命"
               />
             </el-form-item>
           </el-col>
           <el-col :span="11">
-            <el-form-item label="已用寿命" prop="acceptedName">
+            <el-form-item label="已用寿命" prop="usedLife">
               <el-input
-                v-model="form.acceptedName"
-                readonly="readonly"
+                v-model="form.usedLife"
                 placeholder="请输入已用寿命"
               />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-form-item label="状态" prop="acceptedName">
-          <el-radio-group v-model="radio">
-            <el-radio :label="3"
+        <el-form-item label="状态" prop="status">
+          <el-radio-group v-model="form.status" v-removeAriaHidden>
+            <el-radio :label="1"
               ><img
                 src="@/assets/images/success.png"
                 alt=""
@@ -367,11 +368,10 @@
               />
               在线</el-radio
             >
-            <el-radio :label="6"
-              ><img src="@/assets/images/error.png" alt="" class="imgstatus" />
+            <el-radio  :label="2" ><img src="@/assets/images/error.png" alt="" class="imgstatus" />
               离线</el-radio
             >
-            <el-radio :label="9"
+            <el-radio :label="3"
               ><img src="@/assets/images/warn.png" alt="" class="imgstatus" />
               异常</el-radio
             >
@@ -381,27 +381,8 @@
       <div slot="footer" class="dialog-footer">
         <el-button
           type="primary"
-          v-if="form.status == 'PREPARE' && optType != 'view'"
           @click="submitForm"
-          >提 交</el-button
-        >
-        <el-button
-          type="primary"
-          v-if="form.status == 'APPROVING' && optType != 'view'"
-          @click="finish"
-          >完成维修</el-button
-        >
-        <el-button
-          type="success"
-          v-if="form.status == 'FINISHED' && optType != 'view'"
-          @click="confirm"
-          >验收通过</el-button
-        >
-        <el-button
-          type="danger"
-          v-if="form.status == 'FINISHED' && optType != 'view'"
-          @click="unconfirm"
-          >不通过</el-button
+          >确 定</el-button
         >
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -411,16 +392,16 @@
 
 <script>
 import {
-  listRepair,
-  getRepair,
-  delRepair,
-  addRepair,
-  updateRepair,
-} from "@/api/mes/dv/repair";
-// import MachinerySelectSingle from "@/components/machinerySelect/single.vue";
-import { genCode } from "@/api/system/autocode/rule";
+  listHardware,
+  getHardwareTypeListAPI,
+  addHardware,
+  updateHardware,
+  delHardware,
+  getHardwareInfo
+} from '@/api/mes/hw/hardwareinfo'
+
 export default {
-  name: "Repair",
+  name: "hardwareinfo",
   dicts: ["mes_repair_result", "mes_order_status"],
   // components: { Repairline, MachinerySelectSingle },
   data() {
@@ -447,43 +428,45 @@ export default {
       open: false,
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        repairCode: null,
-        repairName: null,
-        machineryId: null,
-        machineryCode: null,
-        machineryName: null,
-        machineryBrand: null,
-        machinerySpec: null,
-        machineryTypeId: null,
-        requireDate: null,
-        finishDate: null,
-        confirmDate: null,
-        repairResult: null,
-        acceptedBy: null,
-        confirmBy: null,
-        status: null,
+        current: 1,
+        size: 10,
+        hardwareCode:'',
+        hardwareName:'',
+        status:'',
+        hardwareTypeName:'',
+        hardwareSpec:'',
+        createTime:'',
+        workshopName:''
       },
+      workshopOption:[
+        {
+          workshopCode:'EEE',
+          workshopId:1,
+          workshopName:'车间一'
+        },
+        {
+          workshopCode:'FFF',
+          workshopId:2,
+          workshopName:'车间二'
+        }
+      ],
+      hardwareTypeOption:[],
       // 表单参数
-      form: {},
+      form: {
+        hardwareTypeId:0,
+        workshopCode:0,
+        workshopId:0,
+
+      },
       // 表单校验
       rules: {
-        repairCode: [
-          { required: true, message: "维修单编号不能为空", trigger: "blur" },
+        hardwareCode: [
+          { required: true, message: "硬件编码不能为空", trigger: "blur" },
         ],
-        machineryId: [
-          { required: true, message: "设备ID不能为空", trigger: "blur" },
-        ],
-        machineryCode: [
-          { required: true, message: "设备编码不能为空", trigger: "blur" },
-        ],
-        machineryName: [
-          { required: true, message: "设备名称不能为空", trigger: "blur" },
-        ],
-        requireDate: [
-          { required: true, message: "请选择报修日期", trigger: "blur" },
+        hardwareName: [
+          { required: true, message: "硬件名称不能为空", trigger: "blur" },
         ],
+
       },
       // 日期选择
       pickerOptions: {
@@ -520,21 +503,53 @@ export default {
       value2: "",
       // 新增状态
       radio: 3,
+      repairId:null,//修改判断
     };
   },
   created() {
     this.getList();
+    this.getHardwareTypeList()
   },
   methods: {
     /** 查询设备维修单列表 */
     getList() {
       this.loading = true;
-      listRepair(this.queryParams).then((response) => {
-        this.repairList = response.rows;
-        this.total = response.total;
+      listHardware(this.queryParams).then((response) => {
+        this.repairList = response.data.records;
+        this.total = response.data.total;
         this.loading = false;
       });
     },
+    // 获取硬件类型-所有
+    getHardwareTypeList() {
+      getHardwareTypeListAPI().then(response => {
+        console.log(response,'Type')
+        this.hardwareTypeOption=response.data.map((item) => {
+          return{
+            label:item.hardwareTypeName,
+            value: item.hardwareTypeCode,
+            key:item.id,
+          }
+        })
+      })
+    },
+    // 硬件类型下拉
+    hardTypeChange(val){
+      console.log(val,'下拉类型')
+      const TypeId=this.hardwareTypeOption.find((item)=>{
+        return item.value==val?item.key:null;
+      })
+      this.form.hardwareTypeId=TypeId.key
+      console.log(this.form.hardwareTypeId,'hardwareTypeId')
+    },
+    // 车间下拉
+    workShopChange(val){
+      this.form.workshopCode=val
+      const workshopId=this.workshopOption.find((item)=>{
+        return item.workshopCode==val?item.workshopId:null;
+      })
+      this.form.workshopId=workshopId.workshopId
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -543,38 +558,20 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        repairId: null,
-        repairCode: null,
-        repairName: null,
-        machineryId: null,
-        machineryCode: null,
-        machineryName: null,
-        machineryBrand: null,
-        machinerySpec: null,
-        machineryTypeId: null,
-        requireDate: null,
-        finishDate: null,
-        confirmDate: null,
-        repairResult: "",
-        acceptedBy: null,
-        confirmBy: null,
-        status: "PREPARE",
-        remark: null,
-        attr1: null,
-        attr2: null,
-        attr3: null,
-        attr4: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null,
+        hardwareCode:'',
+        hardwareName:'',
+        status:'',
+        hardwareTypeName:'',
+        hardwareSpec:'',
+        createTime:'',
+        workshopName:''
       };
       this.autoGenFlag = false;
       this.resetForm("form");
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
+      this.queryParams.current = 1;
       this.getList();
     },
     /** 重置按钮操作 */
@@ -584,7 +581,7 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.repairId);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
@@ -597,8 +594,8 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const repairId = row.repairId || this.ids;
-      getRepair(repairId).then((response) => {
+      this.repairId = row.id || this.ids;
+      getHardwareInfo(this.repairId).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "编辑硬件信息";
@@ -606,16 +603,18 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
+
       this.$refs["form"].validate((valid) => {
         if (valid) {
-          if (this.form.repairId != null) {
-            updateRepair(this.form).then((response) => {
+          if (this.repairId != null) {
+            updateHardware(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addRepair(this.form).then((response) => {
+            console.log(this.form,'form')
+            addHardware(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -626,17 +625,20 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const repairIds = row.repairId || this.ids;
+      const repairIds = row.id || this.ids;
       this.$modal
-        .confirm('是否确认删除设备维修单编号为"' + repairIds + '"的数据项?')
+        .confirm('是否确认删除硬件编号为"' + repairIds + '"的数据项?')
         .then(function () {
-          return delRepair(repairIds);
+
+          return delHardware(repairIds);
         })
         .then(() => {
           this.getList();
           this.$modal.msgSuccess("删除成功");
         })
-        .catch(() => {});
+        .catch(() => {
+
+        });
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -648,18 +650,7 @@ export default {
         `repair_${new Date().getTime()}.xlsx`
       );
     },
-    //设备资源选择弹出
-    handleMachineryAdd() {
-      this.$refs.machinerySelect.showFlag = true;
-    },
-    //设备资源选择回调
-    onMachineryAdd(row) {
-      this.form.machineryId = row.machineryId;
-      this.form.machineryTypeId = row.machineryTypeId;
-      this.form.machineryCode = row.machineryCode;
-      this.form.machineryName = row.machineryName;
-      this.form.machineryBrand = row.machineryBrand;
-    },
+
     //自动生成编码
     handleAutoGenChange(autoGenFlag) {
       if (autoGenFlag) {

+ 85 - 114
src/views/mes/hw/type/index.vue

@@ -8,38 +8,41 @@
       v-show="showSearch"
       label-width="100px"
     >
-      <el-form-item label="硬件编号" prop="repairCode">
+      <el-form-item label="硬件编号" prop="hardwareTypeCode">
         <el-input
-          v-model="queryParams.repairCode"
+          v-model="queryParams.hardwareTypeCode"
           placeholder="请输入硬件编号"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="类型名称" prop="repairName">
+      <el-form-item label="类型名称" prop="hardwareTypeName">
         <el-input
-          v-model="queryParams.repairName"
+          v-model="queryParams.hardwareTypeName"
           placeholder="请输入类型名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
 
-      <el-form-item label="状态" prop="status">
+      <el-form-item label="状态" prop="enableFlag">
         <el-select
-          v-model="queryParams.status"
+          v-model="queryParams.enableFlag"
           placeholder="请选择状态"
           clearable
         >
-          <el-option
-            v-for="dict in dict.type.mes_order_status"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
+          <el-option label="启用" value="y"></el-option>
+          <el-option label="禁用" value="n"></el-option>
+
+<!--          <el-option-->
+<!--            v-for="dict in dict.type.mes_order_status"-->
+<!--            :key="dict.value"-->
+<!--            :label="dict.label"-->
+<!--            :value="dict.value"-->
+<!--          />-->
         </el-select>
       </el-form-item>
-      <el-form-item>
+      <el-form-item style="margin-left: 50px">
         <el-button
           type="primary"
           icon="el-icon-search"
@@ -93,25 +96,32 @@
         label="硬件编号"
         width="120px"
         align="center"
-        prop="repairCode"
+        prop="hardwareTypeCode"
       />
       <el-table-column
         label="类型名称"
         width="150px"
         align="center"
-        prop="repairName"
+        prop="hardwareTypeName"
         :show-overflow-tooltip="true"
       />
-      <el-table-column label="状态" align="center" prop="status">
+      <el-table-column label="状态" align="center" prop="enableFlag">
         <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.mes_order_status"
-            :value="scope.row.status"
-          />
+          <el-tag v-if="scope.row.enableFlag=='y'">启用</el-tag>
+          <el-tag v-else type="danger">禁用</el-tag>
+
+<!--          <dict-tag-->
+<!--            :options="dict.type.mes_order_status"-->
+<!--            :value="scope.row.enableFlag"-->
+<!--          />-->
+        </template>
+      </el-table-column>
+      <el-table-column label="硬件层级" align="center" prop="level" >
+        <template slot-scope="scope">
+          {{scope.row.level=='1'?'一':scope.row.level=='2'?'二':scope.row.level=='3'?'三':scope.row.level}}级
         </template>
       </el-table-column>
-      <el-table-column label="硬件层级" align="center" prop="machineryName" />
-      <el-table-column label="备注" align="center" prop="machineryName" />
+      <el-table-column label="备注" align="center" prop="remark" />
       <el-table-column
         label="操作"
         align="center"
@@ -141,8 +151,8 @@
     <pagination
       v-show="total > 0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
       @pagination="getList"
     />
 
@@ -153,24 +163,24 @@
         <span class="title">{{ title }}</span>
       </div>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="硬件编号" prop="repairCode">
-          <el-input v-model="form.repairCode" placeholder="请输入硬件编号" />
+        <el-form-item label="硬件编号" prop="hardwareTypeCode">
+          <el-input v-model="form.hardwareTypeCode" placeholder="请输入硬件编号" />
         </el-form-item>
-        <el-form-item label="硬件名称" prop="repairName">
-          <el-input v-model="form.repairName" placeholder="请输入硬件名称" />
+        <el-form-item label="硬件名称" prop="hardwareTypeName">
+          <el-input v-model="form.hardwareTypeName" placeholder="请输入硬件名称" />
         </el-form-item>
-        <el-form-item label="硬件层级" prop="machineryCode">
+        <el-form-item label="硬件层级" prop="level">
           <el-input-number
-            v-model="num"
+            v-model="form.level"
             controls-position="right"
             @change="handleChange"
             :min="1"
             :max="10"
           ></el-input-number>
         </el-form-item>
-        <el-form-item label="状态" prop="repairResult">
-          <el-radio v-model="radio" label="1">启用</el-radio>
-          <el-radio v-model="radio" label="2">禁用</el-radio>
+        <el-form-item label="状态" prop="enableFlag">
+          <el-radio v-model="form.enableFlag" label="y" >启用</el-radio>
+          <el-radio v-model="form.enableFlag" label="n" >禁用</el-radio>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
           <el-input
@@ -190,18 +200,18 @@
 
 <script>
 import {
-  listRepair,
-  getRepair,
-  delRepair,
-  addRepair,
-  updateRepair,
-} from "@/api/mes/dv/repair";
-// import MachinerySelectSingle from "@/components/machinerySelect/single.vue";
+  listHanrware,
+  getHardwareTypeInfo,
+  delHardware,
+  addHardwareType,
+  updateHardware,
+} from "@/api/mes/hw/hadrwareType";
+
 import { genCode } from "@/api/system/autocode/rule";
 export default {
   name: "Repair",
   dicts: ["mes_repair_result", "mes_order_status"],
-  // components: { Repairline, MachinerySelectSingle },
+
   data() {
     return {
       autoGenFlag: false,
@@ -230,33 +240,23 @@ export default {
       num: 1,
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        repairCode: null,
-        repairName: null,
-        machineryId: null,
-        machineryCode: null,
-        machineryName: null,
-        machineryBrand: null,
-        machinerySpec: null,
-        machineryTypeId: null,
-        requireDate: null,
-        finishDate: null,
-        confirmDate: null,
-        repairResult: null,
-        acceptedBy: null,
-        confirmBy: null,
-        status: null,
+        current: 1,
+        size: 10,
+        hardwareTypeCode:'',
+        hardwareTypeName:'',
+        enableFlag:'',
       },
       // 表单参数
-      form: {},
+      form: {
+        parentTypeId:0
+      },
       // 表单校验
       rules: {
-        repairCode: [
-          { required: true, message: "类型编号不能为空", trigger: "blur" },
+        hardwareTypeCode: [
+          { required: true, message: "硬件编号不能为空", trigger: "blur" },
         ],
-        repairName: [
-          { required: true, message: "类型名称不能为空", trigger: "blur" },
+        hardwareTypeName: [
+          { required: true, message: "硬件名称不能为空", trigger: "blur" },
         ],
       },
     };
@@ -268,9 +268,9 @@ export default {
     /** 查询设备维修单列表 */
     getList() {
       this.loading = true;
-      listRepair(this.queryParams).then((response) => {
-        this.repairList = response.rows;
-        this.total = response.total;
+      listHanrware(this.queryParams).then((response) => {
+        this.repairList = response.data.records;
+        this.total = response.data.total;
         this.loading = false;
       });
     },
@@ -286,38 +286,18 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        repairId: null,
-        repairCode: null,
-        repairName: null,
-        machineryId: null,
-        machineryCode: null,
-        machineryName: null,
-        machineryBrand: null,
-        machinerySpec: null,
-        machineryTypeId: null,
-        requireDate: null,
-        finishDate: null,
-        confirmDate: null,
-        repairResult: "",
-        acceptedBy: null,
-        confirmBy: null,
-        status: "PREPARE",
-        remark: null,
-        attr1: null,
-        attr2: null,
-        attr3: null,
-        attr4: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null,
+        hardwareTypeCode:'',
+        hardwareTypeName:'',
+        level:'',
+        enableFlag:'',
+        remark:''
       };
       this.autoGenFlag = false;
       this.resetForm("form");
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
+      this.queryParams.current = 1;
       this.getList();
     },
     /** 重置按钮操作 */
@@ -327,12 +307,13 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.repairId);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
     handleAdd() {
+      console.log(this.form,'新增')
       this.reset();
       this.open = true;
       this.title = "新增硬件类型";
@@ -340,8 +321,8 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const repairId = row.repairId || this.ids;
-      getRepair(repairId).then((response) => {
+      const id = row.id || this.ids;
+      getHardwareTypeInfo(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "编辑硬件类型";
@@ -351,14 +332,15 @@ export default {
     submitForm() {
       this.$refs["form"].validate((valid) => {
         if (valid) {
-          if (this.form.repairId != null) {
-            updateRepair(this.form).then((response) => {
+          if (this.form.hardwareTypeCode != null) {
+            updateHardware(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addRepair(this.form).then((response) => {
+            this.form.parentTypeId=0
+            addHardwareType(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -369,11 +351,11 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const repairIds = row.repairId || this.ids;
+      const repairIds = row.id || this.ids;
       this.$modal
-        .confirm('是否删除硬件编号为"' + repairIds + '"的硬件?')
+        .confirm('是否删除硬件编号为"' + repairIds + '"的硬件类型?')
         .then(function () {
-          return delRepair(repairIds);
+          return delHardware(repairIds);
         })
         .then(() => {
           this.getList();
@@ -391,18 +373,7 @@ export default {
         `repair_${new Date().getTime()}.xlsx`
       );
     },
-    //设备资源选择弹出
-    handleMachineryAdd() {
-      this.$refs.machinerySelect.showFlag = true;
-    },
-    //设备资源选择回调
-    onMachineryAdd(row) {
-      this.form.machineryId = row.machineryId;
-      this.form.machineryTypeId = row.machineryTypeId;
-      this.form.machineryCode = row.machineryCode;
-      this.form.machineryName = row.machineryName;
-      this.form.machineryBrand = row.machineryBrand;
-    },
+
     //自动生成编码
     handleAutoGenChange(autoGenFlag) {
       if (autoGenFlag) {
@@ -417,4 +388,4 @@ export default {
 };
 </script>
 <style scoped lang="scss" src="@/assets/styles/dialog-title.scss">
-</style>
+</style>

+ 457 - 0
src/views/mes/job/jobmanagement/index.vue

@@ -0,0 +1,457 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="作业编号" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入作业编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="作业名称" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入作业名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="状态" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="状态">
+          <el-option>新建中</el-option>
+          <el-option>未通过</el-option>
+          <el-option>待审批</el-option>
+          <el-option>已生效</el-option>
+          <el-option>已失效</el-option>
+          <!--          <el-option-->
+          <!--            v-for="dict in dict.type.mes_calendar_type"-->
+          <!--            :key="dict.value"-->
+          <!--            :label="dict.label"-->
+          <!--            :value="dict.value"-->
+          <!--          />-->
+        </el-select>
+      </el-form-item>
+      <el-form-item label="车间名称" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="请选择车间名称">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="产线" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="请选择产线">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="上锁人" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入上锁人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="共锁人" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入共锁人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间">
+        <el-date-picker
+          style="width:218px"
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="隔离能量类型" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="请选择隔离能量类型">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="隔离方式" prop="calendarType">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入隔离方式"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['mes:job:jobm:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="success"-->
+      <!--          plain-->
+      <!--          icon="el-icon-edit"-->
+      <!--          size="mini"-->
+      <!--          :disabled="single"-->
+      <!--          @click="handleUpdate"-->
+      <!--          v-hasPermi="['mes:cal:team:edit']"-->
+      <!--        >修改</el-button>-->
+      <!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="danger"-->
+<!--          plain-->
+<!--          icon="el-icon-delete"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="handleDelete"-->
+<!--          v-hasPermi="['mes:sop:sopm:batchremove']"-->
+<!--        >批量删除-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          @click="handleExport"-->
+      <!--          v-hasPermi="['mes:cal:team:export']"-->
+      <!--        >导出</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="teamList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="SOP编号" align="center" prop="teamCode">
+        <template slot-scope="scope">
+          <el-button
+            type="text"
+            @click="handleView(scope.row)"
+            v-hasPermi="['mes:job:jobm:query']"
+          >{{ scope.row.teamCode }}
+          </el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="SOP名称" align="center" prop="teamName"/>
+      <el-table-column label="状态" align="center" prop="calendarType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.mes_calendar_type" :value="scope.row.calendarType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="车间名称" align="center" prop="remark">
+        <template slot-scope="scope">
+          <img src="" alt="">
+        </template>
+      </el-table-column>
+      <el-table-column label="上锁人" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="产线" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="隔离能量类型" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="隔离方式" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['mes:job:jobm:edit']"
+          >编辑
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['mes:job:jobm:progress']"
+          >查看审批进度
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['mes:job:jobm:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+
+  </div>
+</template>
+
+<script>
+import { listTeam, getTeam, delTeam, addTeam, updateTeam } from '@/api/mes/cal/team'
+
+import { genCode } from '@/api/system/autocode/rule'
+
+export default {
+  name: 'Team',
+
+  dicts: ['mes_calendar_type'],
+  data() {
+    return {
+      //自动生成编码
+      autoGenFlag: false,
+      optType: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 班组表格数据
+      teamList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        teamCode: null,
+        teamName: null,
+        calendarType: null
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+
+      value2: '',
+
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        teamCode: [
+          { required: true, message: '班组编号不能为空', trigger: 'blur' }
+        ],
+        teamName: [
+          { required: true, message: '班组名称不能为空', trigger: 'blur' }
+        ],
+        calendarType: [
+          { required: true, message: '清选择班组类型', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询班组列表 */
+    getList() {
+      this.loading = true
+      listTeam(this.queryParams).then(response => {
+        this.teamList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        teamId: null,
+        teamCode: null,
+        teamName: null,
+        calendarType: null,
+        remark: null,
+        attr1: null,
+        attr2: null,
+        attr3: null,
+        attr4: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.teamId)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.$router.push('/mes/sop/sopm/addView')
+      this.title = '添加隔离点'
+      this.optType = 'add'
+    },
+    // 查询明细按钮操作
+    handleView(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '查看班组'
+        this.optType = 'view'
+      })
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改隔离点信息'
+        this.optType = 'edit'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.teamId != null) {
+            updateTeam(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addTeam(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const teamIds = row.teamId || this.ids
+      this.$modal.confirm('是否确认删除班组编号为"' + teamIds + '"的数据项?').then(function() {
+        return delTeam(teamIds)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('cal/team/export', {
+        ...this.queryParams
+      }, `team_${new Date().getTime()}.xlsx`)
+    },
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode('CAL_TEAM_CODE').then(response => {
+          this.form.teamCode = response
+        })
+      } else {
+        this.form.teamCode = null
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
+.el-input-width {
+  width: 380px !important;
+}
+</style>

+ 501 - 0
src/views/mes/material/collectionmanagement/index.vue

@@ -0,0 +1,501 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="物资编码" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入物资编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物资名称" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入物资名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="领取人" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入领取人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否需要归还" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="是否需要归还">
+          <el-option>需要归还</el-option>
+          <el-option>不需要归还</el-option>
+          <!--          <el-option-->
+          <!--            v-for="dict in dict.type.mes_calendar_type"-->
+          <!--            :key="dict.value"-->
+          <!--            :label="dict.label"-->
+          <!--            :value="dict.value"-->
+          <!--          />-->
+        </el-select>
+      </el-form-item>
+      <el-form-item label="领取柜" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="领取柜子">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="归还柜" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="归还柜">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['mes:mat:info:add']"-->
+<!--        >新增-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="success"-->
+      <!--          plain-->
+      <!--          icon="el-icon-edit"-->
+      <!--          size="mini"-->
+      <!--          :disabled="single"-->
+      <!--          @click="handleUpdate"-->
+      <!--          v-hasPermi="['mes:cal:team:edit']"-->
+      <!--        >修改</el-button>-->
+      <!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['mes:mat:coll:batchremove']"
+        >批量删除
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          @click="handleExport"-->
+      <!--          v-hasPermi="['mes:cal:team:export']"-->
+      <!--        >导出</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="teamList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="物资编码" align="center" prop="teamCode">
+        <template slot-scope="scope">
+          <el-button
+            type="text"
+            @click="handleView(scope.row)"
+            v-hasPermi="['mes:mat:coll:query']"
+          >{{ scope.row.teamCode }}
+          </el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="物资名称" align="center" prop="teamName"/>
+      <el-table-column label="状态" align="center" prop="calendarType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.mes_calendar_type" :value="scope.row.calendarType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" prop="remark">
+
+      </el-table-column>
+      <el-table-column label="领取柜" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="是否需要归还" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="领取人" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-edit"-->
+<!--            @click="handleUpdate(scope.row)"-->
+<!--            v-hasPermi="['mes:mat:info:edit']"-->
+<!--          >编辑-->
+<!--          </el-button>-->
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['mes:mat:coll:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改班组对话框 -->
+    <el-dialog  :visible.sync="open" width="960px" append-to-body>
+      <div slot="title" class="dialog-title">
+        <i></i>
+        <span class="title">{{ title }}</span>
+      </div>
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="物资类型编码" prop="teamCode" >
+              <el-input   v-model="form.teamCode" placeholder="请输入物资类型编码" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="物资类型" prop="calendarType">
+              <el-select style="width: 348px"  v-model="form.calendarType" placeholder="请选择隔离点类型">
+                <el-option
+                  v-for="dict in dict.type.mes_calendar_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="物资名称" prop="teamCode">
+              <el-input  v-model="form.teamCode" placeholder="请输入物资名称"       />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属柜" prop="teamCode">
+              <el-select style="width: 348px"  v-model="form.calendarType" placeholder="请选择所属柜">
+                <el-option
+                  v-for="dict in dict.type.mes_calendar_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="启用日期" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="" disabled />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="物资使用次数" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="请输入物资使用次数"  />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="可用次数" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="" disabled />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="物资寿命" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="请输入物资寿命"  />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="物资报废时间" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder=""  disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="是否需要归还" prop="calendarType">
+              <el-radio v-model="radio" label="1">需要归还</el-radio>
+              <el-radio v-model="radio" label="2">不需要归还</el-radio>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button>
+        <el-button type="primary" @click="submitForm" v-else>确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listTeam, getTeam, delTeam, addTeam, updateTeam } from '@/api/mes/cal/team'
+
+import { genCode } from '@/api/system/autocode/rule'
+
+export default {
+  name: 'Team',
+
+  dicts: ['mes_calendar_type'],
+  data() {
+    return {
+      //自动生成编码
+      autoGenFlag: false,
+      optType: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 班组表格数据
+      teamList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        teamCode: null,
+        teamName: null,
+        calendarType: null
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+
+      value2: '',
+
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        teamCode: [
+          { required: true, message: '班组编号不能为空', trigger: 'blur' }
+        ],
+        teamName: [
+          { required: true, message: '班组名称不能为空', trigger: 'blur' }
+        ],
+        calendarType: [
+          { required: true, message: '清选择班组类型', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询班组列表 */
+    getList() {
+      this.loading = true
+      listTeam(this.queryParams).then(response => {
+        this.teamList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    //图片上传成功
+    handleImgUplaoded(imgUrl){
+      this.form.sipUrl = imgUrl;
+    },
+    //图片移除
+    handleImgRemoved(imgUrl){
+      this.form.sipUrl = null;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        teamId: null,
+        teamCode: null,
+        teamName: null,
+        calendarType: null,
+        remark: null,
+        attr1: null,
+        attr2: null,
+        attr3: null,
+        attr4: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.teamId)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '新增物资类型'
+      this.optType = 'add'
+    },
+    // 查询明细按钮操作
+    handleView(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '查看班组'
+        this.optType = 'view'
+      })
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '编辑物资类型'
+        this.optType = 'edit'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.teamId != null) {
+            updateTeam(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addTeam(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const teamIds = row.teamId || this.ids
+      this.$modal.confirm('是否确认删除班组编号为"' + teamIds + '"的数据项?').then(function() {
+        return delTeam(teamIds)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('cal/team/export', {
+        ...this.queryParams
+      }, `team_${new Date().getTime()}.xlsx`)
+    },
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode('CAL_TEAM_CODE').then(response => {
+          this.form.teamCode = response
+        })
+      } else {
+        this.form.teamCode = null
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
+.el-input-width {
+  width: 380px !important;
+}
+</style>

+ 466 - 0
src/views/mes/material/expireremind/index.vue

@@ -0,0 +1,466 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="物资编码" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入物资编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物资名称" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入物资名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="状态" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="状态">
+          <el-option>已读</el-option>
+          <el-option>未读</el-option>
+          <!--          <el-option-->
+          <!--            v-for="dict in dict.type.mes_calendar_type"-->
+          <!--            :key="dict.value"-->
+          <!--            :label="dict.label"-->
+          <!--            :value="dict.value"-->
+          <!--          />-->
+        </el-select>
+      </el-form-item>
+      <el-form-item label="过期时间">
+        <el-date-picker
+          v-model="value2"
+          type="datetime"
+          placeholder="选择日期时间"
+          align="right"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="所属柜" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="领取柜">
+          <!--          <el-option>柜中</el-option>-->
+          <!--          <el-option>柜外</el-option>-->
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="物资报废时间">
+        <el-date-picker
+          v-model="value3"
+          type="datetime"
+          placeholder="选择日期时间"
+          align="right"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['mes:mat:exp:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="success"-->
+      <!--          plain-->
+      <!--          icon="el-icon-edit"-->
+      <!--          size="mini"-->
+      <!--          :disabled="single"-->
+      <!--          @click="handleUpdate"-->
+      <!--          v-hasPermi="['mes:cal:team:edit']"-->
+      <!--        >修改</el-button>-->
+      <!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['mes:mat:exp:batchremove']"
+        >批量删除
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          @click="handleExport"-->
+      <!--          v-hasPermi="['mes:cal:team:export']"-->
+      <!--        >导出</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="teamList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="物资编码" align="center" prop="teamCode">
+        <template slot-scope="scope">
+          <el-button
+            type="text"
+            @click="handleView(scope.row)"
+            v-hasPermi="['mes:mat:exp:query']"
+          >{{ scope.row.teamCode }}
+          </el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="物资名称" align="center" prop="teamName"/>
+      <el-table-column label="状态" align="center" prop="calendarType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.mes_calendar_type" :value="scope.row.calendarType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="通知人" align="center" prop="remark">
+
+      </el-table-column>
+      <el-table-column label="所属柜" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="过期时间" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="状态" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['mes:mat:exp:edit']"
+          >编辑
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['mes:mat:exp:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改班组对话框 -->
+    <el-dialog :visible.sync="open" width="460px" append-to-body>
+      <div slot="title" class="dialog-title">
+        <i></i>
+        <span class="title">{{ title }}</span>
+      </div>
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-form-item label="物资编码" prop="teamCode">
+          <el-input v-model="form.teamCode" placeholder="请输入物资编码"/>
+        </el-form-item>
+        <el-form-item label="物资名称" prop="calendarType">
+          <el-select style="width: 310px" v-model="form.calendarType" placeholder="请选择物资名称">
+            <el-option
+              v-for="dict in dict.type.mes_calendar_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+
+
+        <el-form-item label="通知人" prop="teamCode">
+          <el-input v-model="form.teamCode" placeholder="请输入通知人"/>
+        </el-form-item>
+
+        <el-form-item label="过期时间" prop="teamCode">
+          <el-date-picker
+            style="width: 310px"
+            v-model="value2"
+            type="datetime"
+            placeholder="选择日期时间"
+            align="right"
+            :picker-options="pickerOptions"
+          >
+          </el-date-picker>
+        </el-form-item>
+
+        <el-form-item label="所属柜" prop="calendarType">
+          <el-select style="width: 310px" v-model="form.calendarType" placeholder="请选择所属柜">
+            <el-option
+              v-for="dict in dict.type.mes_calendar_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button>
+        <el-button type="primary" @click="submitForm" v-else>确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listTeam, getTeam, delTeam, addTeam, updateTeam } from '@/api/mes/cal/team'
+
+import { genCode } from '@/api/system/autocode/rule'
+
+export default {
+  name: 'Team',
+
+  dicts: ['mes_calendar_type'],
+  data() {
+    return {
+      //自动生成编码
+      autoGenFlag: false,
+      optType: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 班组表格数据
+      teamList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        teamCode: null,
+        teamName: null,
+        calendarType: null
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+
+      value2: '',
+      value3: '',
+
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        teamCode: [
+          { required: true, message: '班组编号不能为空', trigger: 'blur' }
+        ],
+        teamName: [
+          { required: true, message: '班组名称不能为空', trigger: 'blur' }
+        ],
+        calendarType: [
+          { required: true, message: '清选择班组类型', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询班组列表 */
+    getList() {
+      this.loading = true
+      listTeam(this.queryParams).then(response => {
+        this.teamList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    //图片上传成功
+    handleImgUplaoded(imgUrl) {
+      this.form.sipUrl = imgUrl
+    },
+    //图片移除
+    handleImgRemoved(imgUrl) {
+      this.form.sipUrl = null
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        teamId: null,
+        teamCode: null,
+        teamName: null,
+        calendarType: null,
+        remark: null,
+        attr1: null,
+        attr2: null,
+        attr3: null,
+        attr4: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.teamId)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '新增提醒'
+      this.optType = 'add'
+    },
+    // 查询明细按钮操作
+    handleView(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '查看班组'
+        this.optType = 'view'
+      })
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '编辑提醒'
+        this.optType = 'edit'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.teamId != null) {
+            updateTeam(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addTeam(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const teamIds = row.teamId || this.ids
+      this.$modal.confirm('是否确认删除班组编号为"' + teamIds + '"的数据项?').then(function() {
+        return delTeam(teamIds)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('cal/team/export', {
+        ...this.queryParams
+      }, `team_${new Date().getTime()}.xlsx`)
+    },
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode('CAL_TEAM_CODE').then(response => {
+          this.form.teamCode = response
+        })
+      } else {
+        this.form.teamCode = null
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
+.el-input-width {
+  width: 380px !important;
+}
+</style>

+ 111 - 32
src/views/mes/material/materialinformation/index.vue

@@ -41,17 +41,38 @@
       </el-form-item>
       <el-form-item label="启用时间">
         <el-date-picker
+          style="width: 218px"
           v-model="value2"
-          type="daterange"
-          align="right"
-          unlink-panels
-          range-separator="至"
+          type="datetimerange"
+          :picker-options="pickerOptions"
+          range-separator="-"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
-          :picker-options="pickerOptions"
-        >
+          align="right">
         </el-date-picker>
       </el-form-item>
+      <el-form-item label="所属物资柜" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="所属物资柜">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="是否需要归还" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="是否需要归还">
+          <el-option>需要归还</el-option>
+          <el-option>不需要归还</el-option>
+<!--          <el-option-->
+<!--            v-for="dict in dict.type.mes_calendar_type"-->
+<!--            :key="dict.value"-->
+<!--            :label="dict.label"-->
+<!--            :value="dict.value"-->
+<!--          />-->
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -66,7 +87,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-hasPermi="['mes:spm:seg:add']"
+          v-hasPermi="['mes:mat:info:add']"
         >新增
         </el-button>
       </el-col>
@@ -89,7 +110,7 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['mes:spm:seg:batchremove']"
+          v-hasPermi="['mes:mat:info.batchremove']"
         >批量删除
         </el-button>
       </el-col>
@@ -113,7 +134,7 @@
           <el-button
             type="text"
             @click="handleView(scope.row)"
-            v-hasPermi="['mes:spm:seg:query']"
+            v-hasPermi="['mes:mat:info:query']"
           >{{ scope.row.teamCode }}
           </el-button>
         </template>
@@ -139,7 +160,7 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['mes:spm:seg:edit']"
+            v-hasPermi="['mes:mat:info:edit']"
           >编辑
           </el-button>
           <el-button
@@ -147,7 +168,7 @@
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['mes:spm:seg:remove']"
+            v-hasPermi="['mes:mat:info:remove']"
           >删除
           </el-button>
         </template>
@@ -163,32 +184,90 @@
     />
 
     <!-- 添加或修改班组对话框 -->
-    <el-dialog  :visible.sync="open" width="660px" append-to-body>
+    <el-dialog  :visible.sync="open" width="960px" append-to-body>
       <div slot="title" class="dialog-title">
         <i></i>
         <span class="title">{{ title }}</span>
       </div>
       <el-form ref="form" :model="form" :rules="rules" label-width="110px">
-        <el-form-item label="物资类型编码" prop="teamCode" >
-          <el-input style="width: 318px"  v-model="form.teamCode" placeholder="请输入物资类型编码" />
-        </el-form-item>
-        <el-form-item label="物资类型名称" prop="teamCode">
-          <el-input style="width: 318px" v-model="form.teamCode" placeholder="请输入物资类型名称"       />
-        </el-form-item>
-        <el-form-item label="借用时长" prop="calendarType">
-          <el-input style="width: 318px" v-model="form.teamCode" placeholder="请输入借用时长"       />
-        </el-form-item>
-        <el-form-item label="是否需要归还" prop="calendarType">
-          <el-radio v-model="radio" label="1">需要归还</el-radio>
-          <el-radio v-model="radio" label="2">不需要归还</el-radio>
-        </el-form-item>
-        <el-form-item label="状态" prop="calendarType">
-          <el-radio v-model="radio" label="1">启用</el-radio>
-          <el-radio v-model="radio" label="2">禁用</el-radio>
-        </el-form-item>
-        <el-form-item label="备注" prop="calendarType">
-          <el-input type="textarea" style="width: 318px" :row="4" v-model="form.teamCode" placeholder="请输入" />
-        </el-form-item>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="物资编码" prop="teamCode" >
+              <el-input   v-model="form.teamCode" placeholder="请输入物资编码" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="物资类型" prop="calendarType">
+              <el-select style="width: 348px"  v-model="form.calendarType" placeholder="请选择物资类型">
+                <el-option
+                  v-for="dict in dict.type.mes_calendar_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="物资名称" prop="teamCode">
+              <el-input  v-model="form.teamCode" placeholder="请输入物资名称"       />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属柜" prop="teamCode">
+              <el-select style="width: 348px"  v-model="form.calendarType" placeholder="请选择所属柜">
+                <el-option
+                  v-for="dict in dict.type.mes_calendar_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="启用日期" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="" disabled />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="物资使用次数" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="请输入物资使用次数"  />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="可用次数" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="" disabled />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="物资寿命" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder="请输入物资寿命"  />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="物资报废时间" prop="calendarType">
+              <el-input  v-model="form.teamCode" placeholder=""  disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="是否需要归还" prop="calendarType">
+              <el-radio v-model="radio" label="1">需要归还</el-radio>
+              <el-radio v-model="radio" label="2">不需要归还</el-radio>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
 
       <div slot="footer" class="dialog-footer">

+ 498 - 0
src/views/mes/material/returnremind/index.vue

@@ -0,0 +1,498 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="物资编码" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入物资编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物资名称" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入物资名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="领取人" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入领取人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="领取时间">
+        <el-date-picker
+          v-model="value2"
+          type="datetime"
+          placeholder="选择日期时间"
+          align="right"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="领取柜" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="领取柜">
+          <!--          <el-option>柜中</el-option>-->
+          <!--          <el-option>柜外</el-option>-->
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="物资报废时间">
+        <el-date-picker
+          v-model="value3"
+          type="datetime"
+          placeholder="选择日期时间"
+          align="right"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="物资类型" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="物资状态">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+
+
+      <el-form-item label="状态" prop="teamCode">
+        <el-select v-model="queryParams.calendarType" placeholder="状态">
+          <el-option>已读</el-option>
+          <el-option>未读</el-option>
+          <!--          <el-option-->
+          <!--            v-for="dict in dict.type.mes_calendar_type"-->
+          <!--            :key="dict.value"-->
+          <!--            :label="dict.label"-->
+          <!--            :value="dict.value"-->
+          <!--          />-->
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['mes:mat:ret:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="success"-->
+      <!--          plain-->
+      <!--          icon="el-icon-edit"-->
+      <!--          size="mini"-->
+      <!--          :disabled="single"-->
+      <!--          @click="handleUpdate"-->
+      <!--          v-hasPermi="['mes:cal:team:edit']"-->
+      <!--        >修改</el-button>-->
+      <!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['mes:mat:ret:batchremove']"
+        >批量删除
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          @click="handleExport"-->
+      <!--          v-hasPermi="['mes:cal:team:export']"-->
+      <!--        >导出</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="teamList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="物资编码" align="center" prop="teamCode">
+        <template slot-scope="scope">
+          <el-button
+            type="text"
+            @click="handleView(scope.row)"
+            v-hasPermi="['mes:mat:ret:query']"
+          >{{ scope.row.teamCode }}
+          </el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="物资名称" align="center" prop="teamName"/>
+      <el-table-column label="提醒人" align="center" prop="calendarType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.mes_calendar_type" :value="scope.row.calendarType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="领取柜" align="center" prop="remark">
+        <template slot-scope="scope">
+          <img src="" alt="">
+        </template>
+      </el-table-column>
+      <el-table-column label="领取时间" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="到期时间" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="状态" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['mes:mat:ret:edit']"
+          >编辑
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['mes:mat:ret:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改班组对话框 -->
+    <el-dialog :visible.sync="open" width="460px" append-to-body>
+      <div slot="title" class="dialog-title">
+        <i></i>
+        <span class="title">{{ title }}</span>
+      </div>
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-form-item label="物资编码" prop="teamCode">
+          <el-input v-model="form.teamCode" placeholder="请输入物资编码"/>
+        </el-form-item>
+        <el-form-item label="物资名称" prop="calendarType">
+          <el-select style="width: 310px" v-model="form.calendarType" placeholder="请选择物资名称">
+            <el-option
+              v-for="dict in dict.type.mes_calendar_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+
+
+        <el-form-item label="提醒人" prop="teamCode">
+          <el-input v-model="form.teamCode" placeholder="请输入提醒人"/>
+        </el-form-item>
+
+        <el-form-item label="领取时间" prop="teamCode">
+          <el-date-picker
+            style="width: 310px"
+            v-model="value2"
+            type="datetime"
+            placeholder="选择日期时间"
+            align="right"
+            :picker-options="pickerOptions"
+          >
+          </el-date-picker>
+        </el-form-item>
+
+        <el-form-item label="领取柜子" prop="calendarType">
+          <el-select style="width: 310px" v-model="form.calendarType" placeholder="请选择领取柜子">
+            <el-option
+              v-for="dict in dict.type.mes_calendar_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="到期时间" prop="teamCode">
+          <el-date-picker
+            style="width: 310px"
+            v-model="value2"
+            type="datetime"
+            placeholder="选择到期时间"
+            align="right"
+            :picker-options="pickerOptions"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button>
+        <el-button type="primary" @click="submitForm" v-else>确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listTeam, getTeam, delTeam, addTeam, updateTeam } from '@/api/mes/cal/team'
+
+import { genCode } from '@/api/system/autocode/rule'
+
+export default {
+  name: 'Team',
+
+  dicts: ['mes_calendar_type'],
+  data() {
+    return {
+      //自动生成编码
+      autoGenFlag: false,
+      optType: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 班组表格数据
+      teamList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        teamCode: null,
+        teamName: null,
+        calendarType: null
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+
+      value2: '',
+      value3: '',
+
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        teamCode: [
+          { required: true, message: '班组编号不能为空', trigger: 'blur' }
+        ],
+        teamName: [
+          { required: true, message: '班组名称不能为空', trigger: 'blur' }
+        ],
+        calendarType: [
+          { required: true, message: '清选择班组类型', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询班组列表 */
+    getList() {
+      this.loading = true
+      listTeam(this.queryParams).then(response => {
+        this.teamList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    //图片上传成功
+    handleImgUplaoded(imgUrl) {
+      this.form.sipUrl = imgUrl
+    },
+    //图片移除
+    handleImgRemoved(imgUrl) {
+      this.form.sipUrl = null
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        teamId: null,
+        teamCode: null,
+        teamName: null,
+        calendarType: null,
+        remark: null,
+        attr1: null,
+        attr2: null,
+        attr3: null,
+        attr4: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.teamId)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '新增提醒'
+      this.optType = 'add'
+    },
+    // 查询明细按钮操作
+    handleView(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '查看班组'
+        this.optType = 'view'
+      })
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '编辑提醒'
+        this.optType = 'edit'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.teamId != null) {
+            updateTeam(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addTeam(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const teamIds = row.teamId || this.ids
+      this.$modal.confirm('是否确认删除班组编号为"' + teamIds + '"的数据项?').then(function() {
+        return delTeam(teamIds)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('cal/team/export', {
+        ...this.queryParams
+      }, `team_${new Date().getTime()}.xlsx`)
+    },
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode('CAL_TEAM_CODE').then(response => {
+          this.form.teamCode = response
+        })
+      } else {
+        this.form.teamCode = null
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
+.el-input-width {
+  width: 380px !important;
+}
+</style>

+ 11 - 8
src/views/mes/material/typeofmaterial/index.vue

@@ -45,7 +45,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-hasPermi="['mes:spm:seg:add']"
+          v-hasPermi="['mes:mat:type:add']"
         >新增
         </el-button>
       </el-col>
@@ -68,7 +68,7 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['mes:spm:seg:batchremove']"
+          v-hasPermi="['mes:mat:type:batchremove']"
         >批量删除
         </el-button>
       </el-col>
@@ -92,7 +92,7 @@
           <el-button
             type="text"
             @click="handleView(scope.row)"
-            v-hasPermi="['mes:spm:seg:query']"
+            v-hasPermi="['mes:mat:type:query']"
           >{{ scope.row.teamCode }}
           </el-button>
         </template>
@@ -118,7 +118,7 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['mes:spm:seg:edit']"
+            v-hasPermi="['mes:mat:type:edit']"
           >编辑
           </el-button>
           <el-button
@@ -126,7 +126,7 @@
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['mes:spm:seg:remove']"
+            v-hasPermi="['mes:mat:type:remove']"
           >删除
           </el-button>
         </template>
@@ -142,7 +142,11 @@
     />
 
     <!-- 添加或修改班组对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="660px" append-to-body>
+    <el-dialog  :visible.sync="open" width="660px" append-to-body>
+      <div slot="title" class="dialog-title">
+        <i></i>
+        <span class="title">{{ title }}</span>
+      </div>
       <el-form ref="form" :model="form" :rules="rules" label-width="110px">
         <el-form-item label="物资类型编码" prop="teamCode" >
           <el-input style="width: 318px"  v-model="form.teamCode" placeholder="请输入物资类型编码" />
@@ -183,7 +187,6 @@ import { genCode } from '@/api/system/autocode/rule'
 export default {
   name: 'Team',
 
-  dicts: ['mes_calendar_type'],
   data() {
     return {
       //自动生成编码
@@ -401,7 +404,7 @@ export default {
   }
 }
 </script>
-<style lang="scss" scoped>
+<style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
 .el-input-width {
   width: 380px !important;
 }

+ 18 - 0
src/views/mes/sop/sopm/addView.vue

@@ -0,0 +1,18 @@
+<template>
+<div>
+ <h1>我是新增的sop</h1>
+</div>
+</template>
+
+
+<script>
+export default {
+  name: 'addView'
+}
+</script>
+
+
+
+<style scoped lang="scss">
+
+</style>

+ 457 - 0
src/views/mes/sop/sopm/index.vue

@@ -0,0 +1,457 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="sop编号" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入SOP编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="SOP名称" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入SOP名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="状态" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="状态">
+          <el-option>新建中</el-option>
+          <el-option>未通过</el-option>
+          <el-option>待审批</el-option>
+          <el-option>已生效</el-option>
+          <el-option>已失效</el-option>
+          <!--          <el-option-->
+          <!--            v-for="dict in dict.type.mes_calendar_type"-->
+          <!--            :key="dict.value"-->
+          <!--            :label="dict.label"-->
+          <!--            :value="dict.value"-->
+          <!--          />-->
+        </el-select>
+      </el-form-item>
+      <el-form-item label="车间名称" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="请选择车间名称">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="产线" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="请选择产线">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="上锁人" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入上锁人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="共锁人" prop="teamCode">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入共锁人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间">
+        <el-date-picker
+          style="width:218px"
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="隔离能量类型" prop="calendarType">
+        <el-select v-model="queryParams.calendarType" placeholder="请选择隔离能量类型">
+          <el-option
+            v-for="dict in dict.type.mes_calendar_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="隔离方式" prop="calendarType">
+        <el-input
+          v-model="queryParams.teamCode"
+          placeholder="请输入隔离方式"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['mes:sop:sopm:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="success"-->
+      <!--          plain-->
+      <!--          icon="el-icon-edit"-->
+      <!--          size="mini"-->
+      <!--          :disabled="single"-->
+      <!--          @click="handleUpdate"-->
+      <!--          v-hasPermi="['mes:cal:team:edit']"-->
+      <!--        >修改</el-button>-->
+      <!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['mes:sop:sopm:batchremove']"
+        >批量删除
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          @click="handleExport"-->
+      <!--          v-hasPermi="['mes:cal:team:export']"-->
+      <!--        >导出</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="teamList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="SOP编号" align="center" prop="teamCode">
+        <template slot-scope="scope">
+          <el-button
+            type="text"
+            @click="handleView(scope.row)"
+            v-hasPermi="['mes:sop:sopm:query']"
+          >{{ scope.row.teamCode }}
+          </el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="SOP名称" align="center" prop="teamName"/>
+      <el-table-column label="状态" align="center" prop="calendarType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.mes_calendar_type" :value="scope.row.calendarType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="车间名称" align="center" prop="remark">
+        <template slot-scope="scope">
+          <img src="" alt="">
+        </template>
+      </el-table-column>
+      <el-table-column label="上锁人" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="产线" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="隔离能量类型" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="隔离方式" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="remark">
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['mes:sop:sopm:edit']"
+          >编辑
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['mes:sop:sopm:progress']"
+          >查看审批进度
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['mes:sop:sopm:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+
+  </div>
+</template>
+
+<script>
+import { listTeam, getTeam, delTeam, addTeam, updateTeam } from '@/api/mes/cal/team'
+
+import { genCode } from '@/api/system/autocode/rule'
+
+export default {
+  name: 'Team',
+
+  dicts: ['mes_calendar_type'],
+  data() {
+    return {
+      //自动生成编码
+      autoGenFlag: false,
+      optType: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 班组表格数据
+      teamList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        teamCode: null,
+        teamName: null,
+        calendarType: null
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+
+      value2: '',
+
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        teamCode: [
+          { required: true, message: '班组编号不能为空', trigger: 'blur' }
+        ],
+        teamName: [
+          { required: true, message: '班组名称不能为空', trigger: 'blur' }
+        ],
+        calendarType: [
+          { required: true, message: '清选择班组类型', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询班组列表 */
+    getList() {
+      this.loading = true
+      listTeam(this.queryParams).then(response => {
+        this.teamList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        teamId: null,
+        teamCode: null,
+        teamName: null,
+        calendarType: null,
+        remark: null,
+        attr1: null,
+        attr2: null,
+        attr3: null,
+        attr4: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.teamId)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.$router.push('/mes/sop/sopm/addView')
+      this.title = '添加隔离点'
+      this.optType = 'add'
+    },
+    // 查询明细按钮操作
+    handleView(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '查看班组'
+        this.optType = 'view'
+      })
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const teamId = row.teamId || this.ids
+      getTeam(teamId).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改隔离点信息'
+        this.optType = 'edit'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.teamId != null) {
+            updateTeam(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addTeam(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const teamIds = row.teamId || this.ids
+      this.$modal.confirm('是否确认删除班组编号为"' + teamIds + '"的数据项?').then(function() {
+        return delTeam(teamIds)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('cal/team/export', {
+        ...this.queryParams
+      }, `team_${new Date().getTime()}.xlsx`)
+    },
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode('CAL_TEAM_CODE').then(response => {
+          this.form.teamCode = response
+        })
+      } else {
+        this.form.teamCode = null
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
+.el-input-width {
+  width: 380px !important;
+}
+</style>

+ 6 - 2
src/views/mes/spm/segregationpoint/index.vue

@@ -179,7 +179,11 @@
     />
 
     <!-- 添加或修改班组对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="660px" append-to-body>
+    <el-dialog  :visible.sync="open" width="660px" append-to-body>
+      <div slot="title" class="dialog-title">
+        <i></i>
+        <span class="title">{{ title }}</span>
+      </div>
       <el-form ref="form" :model="form" :rules="rules" label-width="110px">
         <el-form-item label="隔离点编号" prop="teamCode" >
           <el-input style="width: 318px"  v-model="form.teamCode" placeholder="请输入隔离点编号" />
@@ -451,7 +455,7 @@ export default {
   }
 }
 </script>
-<style lang="scss" scoped>
+<style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
 .el-input-width {
   width: 380px !important;
 }

+ 1 - 1
src/views/monitor/job/index.vue

@@ -181,7 +181,7 @@
                 <el-tooltip placement="top">
                   <div slot="content">
                     Bean调用示例:ryTask.ryParams('ry')
-                    <br />Class类调用示例:com.ruoyi.quartz.task.RyTask.ryParams('ry')
+                    <br />Class类调用示例:com.guoruan.quartz.task.RyTask.ryParams('ry')
                     <br />参数说明:支持字符串,布尔类型,长整型,浮点型,整型
                   </div>
                   <i class="el-icon-question"></i>

+ 1 - 1
src/views/tool/gen/genInfoForm.vue

@@ -15,7 +15,7 @@
         <el-form-item prop="packageName">
           <span slot="label">
             生成包路径
-            <el-tooltip content="生成在哪个java包下,例如 com.ruoyi.system" placement="top">
+            <el-tooltip content="生成在哪个java包下,例如 com.guoruan.system" placement="top">
               <i class="el-icon-question"></i>
             </el-tooltip>
           </span>

+ 2 - 2
vue.config.js

@@ -35,14 +35,14 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://localhost:9090`,
+        target: `http://192.168.1.127:9090`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''
         }
       },
       '/ureport': {
-        target: 'http://localhost:9090',
+        target: 'http://192.168.1.127:9090',
         ws:false,
         changeOrigin: true,
         pathRewrite: {