Browse Source

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend into dev

quwangxin 3 years ago
parent
commit
e89d956561
38 changed files with 534 additions and 317 deletions
  1. 1 1
      src/api/material/manage.js
  2. 3 2
      src/enum/dict.js
  3. 7 14
      src/views/equipmentManage/components/equipment-search.vue
  4. 6 4
      src/views/equipmentManage/components/link-material-dialog.vue
  5. 2 2
      src/views/equipmentManage/index.vue
  6. 8 7
      src/views/factoryModel/plant/components/edit.vue
  7. 8 7
      src/views/factoryModel/productionLine/components/edit.vue
  8. 67 34
      src/views/factoryModel/workshop/components/edit.vue
  9. 1 0
      src/views/factoryModel/workshop/components/search.vue
  10. 7 1
      src/views/material/list/components/CategoryDialog.vue
  11. 9 4
      src/views/material/list/components/list-edit.vue
  12. 22 6
      src/views/material/manage/components/PlanInfo.vue
  13. 57 57
      src/views/material/manage/components/TurnoverInfo.vue
  14. 1 1
      src/views/material/manage/components/index-data.vue
  15. 41 28
      src/views/material/manage/manageMaterial.vue
  16. 6 3
      src/views/material/product/components/link-msg.vue
  17. 1 0
      src/views/material/product/detail.vue
  18. 1 0
      src/views/material/product/index.vue
  19. 38 25
      src/views/material/productLinkMaterial/components/link-material-dialog.vue
  20. 4 11
      src/views/material/productLinkMaterial/components/product-search.vue
  21. 2 2
      src/views/material/productLinkMaterial/index.vue
  22. 30 10
      src/views/technology/control/components/user-edit.vue
  23. 45 7
      src/views/technology/parameter/components/user-edit.vue
  24. 2 1
      src/views/technology/production/components/parameter/index.vue
  25. 3 3
      src/views/technology/production/components/user-edit.vue
  26. 49 16
      src/views/technology/production/components/user-setting.vue
  27. 13 14
      src/views/technology/production/index.vue
  28. 14 13
      src/views/technology/route/components/production/components/parameter/components/user-search.vue
  29. 44 14
      src/views/technology/route/components/production/components/user-setting.vue
  30. 2 2
      src/views/technology/route/components/user-edit.vue
  31. 3 3
      src/views/technology/route/components/user-search.vue
  32. 14 14
      src/views/technology/route/index.vue
  33. 3 3
      src/views/technology/work/components/user-edit.vue
  34. 2 2
      src/views/technology/work/components/user-search.vue
  35. 5 2
      src/views/workforceManagement/classes/components/edit.vue
  36. 11 2
      src/views/workforceManagement/classes/components/timeTable.vue
  37. 1 1
      src/views/workforceManagement/schedule/index.vue
  38. 1 1
      src/views/workforceManagement/team/components/edit.vue

+ 1 - 1
src/api/material/manage.js

@@ -13,7 +13,7 @@ export async function getTreeByPid (pid) {
 export async function addMaterial (data) {
   const res = await request.post(`/main/category/add`, data);
   if (res.data.code == 0) {
-    return res.data.data;
+    return res.data.message;
   }
   return Promise.reject(new Error(res.data.message));
 }

+ 3 - 2
src/enum/dict.js

@@ -28,7 +28,8 @@ export default {
   产能计划周期: 'capacity_cycle',
   产量目标单位: 'target_unit',
   产能计划状态: 'capacity_status',
-  分类层级: 'bom_level'
+  分类层级: 'bom_level',
+  周转车材质: 'turnover_material'
 };
 
 export const numberList = [
@@ -40,5 +41,5 @@ export const numberList = [
   'schedule_type',
   'leadtime_unit',
   'inspection_scheme',
-  'angle', 
+  'angle'
 ];

+ 7 - 14
src/views/equipmentManage/components/equipment-search.vue

@@ -18,17 +18,17 @@
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { md: 5 } : { span: 4 }">
-        <el-form-item label="牌号">
-          <el-input clearable v-model="where.name" placeholder="请输入" />
+        <el-form-item label="牌号" label-width="50px">
+          <el-input clearable v-model="where.brandNum" placeholder="请输入" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { md: 5 } : { span: 4 }">
-        <el-form-item label="型号">
-          <el-input clearable v-model="where.name" placeholder="请输入" />
+        <el-form-item label="型号"  label-width="50px">
+          <el-input clearable v-model="where.modelType" placeholder="请输入" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { md: 4 } : { span: 4 }">
-        <el-form-item>
+        <el-form-item label-width="0">
           <el-button
             type="primary"
             icon="el-icon-search"
@@ -58,14 +58,10 @@
       const defaultWhere = {
         name: '',
         code: '',
-        appType: ''
+        brandNum: '',
+        modelType:''
       };
       return {
-        options: [
-          { value: 0, label: '全部' },
-          { value: 1, label: '业务字典' },
-          { value: 2, label: '数据字典' }
-        ],
         defaultWhere,
         // 表单数据
         where: { ...defaultWhere }
@@ -80,9 +76,6 @@
     methods: {
       /* 搜索 */
       search () {
-        if (this.where.appType === 0) {
-          this.where.appType = '';
-        }
         this.$emit('search', this.where);
       },
       /*  重置 */

+ 6 - 4
src/views/equipmentManage/components/link-material-dialog.vue

@@ -329,16 +329,18 @@
       },
       async getDatasource () {
         const data = await unassociated({
-          categoryLevelGroupId: this.idMap[this.type]
+           categoryLevelGroupId: this.idMap[this.type],
+           categoryLevelRootId: this.type,
+           mainCategoryId: this.row.id
         });
         this.datasource = data.slice(0);
         this.datasourceShow = data.slice(0);
       },
       async getDatasourceRight () {
         const data = await getRelatesInformationList({
-          mainCategoryId: this.row.categoryLevelId,
-          // categoryLevelGroupId: this.idMap[this.type],
-          categoryLevelRootId: this.type
+          categoryLevelGroupId: this.idMap[this.type],
+          categoryLevelRootId: this.type,
+          mainCategoryId: this.row.id
         });
         this.datasourceRight = data.slice(0);
         this.datasourceRightShow = data.slice(0);

+ 2 - 2
src/views/equipmentManage/index.vue

@@ -117,8 +117,8 @@
         this.$refs.linkMaterialDialogRef.open(type, this.current);
       },
       /* 刷新表格 */
-      reload () {
-        this.$refs.table.reload();
+      reload (where) {
+        this.$refs.table.reload({ where: where});
       },
       handleNodeClick (data) {
         this.categoryLevelId = data.id;

+ 8 - 7
src/views/factoryModel/plant/components/edit.vue

@@ -93,9 +93,9 @@
           </el-form-item>
         </el-col>
         <el-col :span="8" style="margin-bottom: 22px">
-          <el-form-item label="负责人:" prop="extInfo.principal">
+          <el-form-item label="负责人:" prop="leaderId">
             <el-select
-              v-model="form.extInfo.principal"
+              v-model="form.leaderId"
               placeholder="请选择"
               @change="change_principal"
               style="width: 100%"
@@ -257,8 +257,9 @@ export default {
       id: '',
       code: '',
       name: '',
+      leaderId:'',
       extInfo: {
-        principal: '', // 负责人
+        // principal: '', // 负责人
         principalDep: '', // 负责人部门
         phone: '', // 手机号
         locationDetail: '', // 详细地址
@@ -292,8 +293,8 @@ export default {
         'extInfo.principalDep': [
           { required: true, message: '请输入', trigger: 'change' }
         ],
-        'extInfo.principal': [
-          { required: true, message: '请输入', trigger: 'change' }
+        leaderId: [
+          { required: true, message: '请选择', trigger: 'change' }
         ],
         'extInfo.phone': [
           { min: 11, message: '手机号格式不正确', trigger: 'blur' }
@@ -434,14 +435,14 @@ export default {
     },
     // 选择负责人部门
     change_principalDep() {
-      this.form.extInfo.principal = '';
+      this.form.leaderId = '';
       this.options.principal = [];
       this.getUserPage();
     },
     // 选择负责人
     change_principal() {
       let result = this.options.principal.find(
-        (n) => n.id == this.form.extInfo.principal
+        (n) => n.id == this.form.leaderId
       );
       this.form.extInfo.phone = result.phone;
     }

+ 8 - 7
src/views/factoryModel/productionLine/components/edit.vue

@@ -99,9 +99,9 @@
              </el-form-item>
            </el-col>
            <el-col :span="8" style="margin-bottom: 22px">
-             <el-form-item label="负责人:" prop="extInfo.principal">
+             <el-form-item label="负责人:" prop="leaderId">
                <el-select
-                 v-model="form.extInfo.principal"
+                 v-model="form.leaderId"
                  placeholder="请选择"
                  @change="change_principal"
                  style="width: 100%"
@@ -311,9 +311,10 @@ export default {
       id: '',
       code: '',
       name: '',
+      leaderId:'',
       extInfo: {
         factoryId: '',
-        principal: '', // 负责人
+        // principal: '', // 负责人
         principalDep: '', // 负责人部门
         phone: '', // 手机号
         workMeter: '', // 工作节拍
@@ -343,8 +344,8 @@ export default {
         'extInfo.principalDep': [
           { required: true, message: '请输入', trigger: 'change' }
         ],
-        'extInfo.principal': [
-          { required: true, message: '请输入', trigger: 'change' }
+        leaderId: [
+          { required: true, message: '请选择', trigger: 'change' }
         ],
         'extInfo.phone': [
           { min: 11, message: '手机号格式不正确', trigger: 'blur' }
@@ -510,7 +511,7 @@ export default {
     },
     // 选择负责人部门
     change_principalDep() {
-      this.form.extInfo.principal = '';
+      this.form.leaderId = '';
       this.options.principal = [];
       this.getUserPage();
     },
@@ -524,7 +525,7 @@ export default {
     // 选择负责人
     change_principal() {
       let result = this.options.principal.find(
-        (n) => n.id == this.form.extInfo.principal
+        (n) => n.id == this.form.leaderId
       );
       this.form.extInfo.phone = result.phone;
     }

+ 67 - 34
src/views/factoryModel/workshop/components/edit.vue

@@ -21,7 +21,7 @@
               clearable
               :maxlength="20"
               v-model="form.code"
-              placeholder="请输入"
+              placeholder="请输入车间编码"
             />
           </el-form-item>
         </el-col>
@@ -35,7 +35,7 @@
               clearable
               :maxlength="20"
               v-model="form.name"
-              placeholder="请输入"
+              placeholder="请输入车间名称"
             />
           </el-form-item>
         </el-col>
@@ -51,16 +51,16 @@
               v-model="form.groupId"
               valueKey="id"
               labelKey="name"
-              placeholder="请选择"
+              placeholder="请选择所属公司"
               default-expand-all
             />
           </el-form-item>
         </el-col>
-        <el-col :span="12" style="margin-bottom: 22px">
-          <el-form-item label="所属工厂:" prop="location_city">
+        <el-col :span="12">
+          <el-form-item label="所属工厂:" prop="parentId" style="margin-bottom: 22px">
             <el-select
               v-model="form.parentId"
-              placeholder="请选择"
+              placeholder="请选择所属工厂"
               style="width: 100%"
             >
               <el-option
@@ -74,24 +74,38 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="负责人部门:" prop="extInfo.principalDep">
-            <ele-tree-select
+          <el-form-item label="负责人部门:" prop="extInfo.principalDep"
+            style="margin-bottom: 22px"
+          >
+            <deptSelect
+              v-model="form.extInfo.principalDep"
+              @changeGroup="change_principalDep"
+              placeholder="请选择负责人部门"
+            />
+<!--            <ele-tree-select
               clearable
               :data="options_groupId"
               v-model="form.extInfo.principalDep"
               valueKey="id"
               labelKey="name"
-              placeholder="请选择"
+              placeholder="请选择负责人部门"
               @change="change_principalDep"
               default-expand-all
-            />
+            /> -->
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="负责人:" prop="leaderId">
-            <el-select
+          <el-form-item label="负责人:" prop="leaderId"
+            style="margin-bottom: 22px"
+          >
+            <personSelect
+              ref="directorRef"
+              v-model="form.leaderId"
+              :init="false"
+            />
+            <!-- <el-select
               v-model="form.leaderId"
-              placeholder="请选择"
+              placeholder="请选择负责人"
               style="width: 100%"
             >
               <el-option
@@ -101,16 +115,18 @@
                 :value="item.id"
               >
               </el-option>
-            </el-select>
+            </el-select> -->
           </el-form-item>
         </el-col>
-        <el-col :span="12" style="margin-bottom: 22px">
-          <el-form-item label="地址:" prop="location_city">
+        <el-col :span="12">
+          <el-form-item label="地址:" prop="location_city"
+            style="margin-bottom: 22px"
+          >
             <el-input
               clearable
               :maxlength="20"
               v-model="form.extInfo.location"
-              placeholder="请输入"
+              placeholder="请输入地址"
             />
           </el-form-item>
         </el-col>
@@ -128,6 +144,8 @@
 <script>
 import { saveOrUpdate } from '@/api/factoryModel';
 import { getUserPage } from '@/api/system/organization';
+import deptSelect from '@/components/CommomSelect/dept-select.vue';
+import personSelect from '@/components/CommomSelect/person-select.vue';
 export default {
   props: {
     options_groupId: {
@@ -148,6 +166,10 @@ export default {
       this.toTreeData(nval);
     }
   },
+  components: {
+    deptSelect,
+    personSelect
+  },
   data() {
     const defaultForm = function () {
       return {
@@ -171,17 +193,17 @@ export default {
       form: { ...defaultForm() },
       // 表单验证规则
       rules: {
-        code: [{ required: true, message: '请输入', trigger: 'blur' }],
-        name: [{ required: true, message: '请输入', trigger: 'blur' }],
-        groupId: [{ required: true, message: '请输入', trigger: 'blur' }],
-        parentId: [{ required: true, message: '请输入', trigger: 'blur' }],
+        code: [{ required: true, message: '请输入车间编码', trigger: 'blur' }],
+        name: [{ required: true, message: '请输入车间名称', trigger: 'blur' }],
+        groupId: [{ required: true, message: '请选择所属公司', trigger: 'change' }],
+        parentId: [{ required: true, message: '请选择所属工厂', trigger: 'change' }],
         leaderId: {
           required: true,
-          message: '请输入',
+          message: '请选择负责人',
           trigger: 'change'
         },
         'extInfo.principalDep': [
-          { required: true, message: '请输入', trigger: 'change' }
+          { required: true, message: '请选择负责人部门', trigger: 'change' }
         ]
       },
       visible: false,
@@ -221,6 +243,12 @@ export default {
             }
           }
         }
+        if(row.extInfo.principalDep){
+           const params = { executeGroupId: row.extInfo.principalDep };
+           this.$nextTick(() => {
+             this.$refs.directorRef.getList(params);
+           });
+        }
       }
     },
     /* 保存编辑 */
@@ -267,20 +295,25 @@ export default {
       });
     },
     // 选择负责人部门
-    change_principalDep() {
+    change_principalDep(id,info) {
       this.form.leaderId = '';
-      this.getUserPage();
+      // this.getUserPage();
+      // 根据部门获取人员
+      const params = { executeGroupId: id };
+      this.$nextTick(() => {
+        this.$refs.directorRef.getList(params);
+      });
     },
     // 获取人员
-    getUserPage() {
-      let par = {
-        groupId: this.form.extInfo.principalDep,
-        size: 999
-      };
-      getUserPage(par).then((res) => {
-        this.options.leaderId = res.list;
-      });
-    }
+    // getUserPage() {
+    //   let par = {
+    //     groupId: this.form.extInfo.principalDep,
+    //     size: 999
+    //   };
+    //   getUserPage(par).then((res) => {
+    //     this.options.leaderId = res.list;
+    //   });
+    // }
   }
 };
 </script>

+ 1 - 0
src/views/factoryModel/workshop/components/search.vue

@@ -36,6 +36,7 @@
             v-model="where.parentId"
             placeholder="请选择"
             style="width: 100%"
+            clearable
           >
             <el-option
               v-for="item in options_factory"

+ 7 - 1
src/views/material/list/components/CategoryDialog.vue

@@ -99,9 +99,14 @@ export default {
 
   watch: {
 
+
   },
   methods: {
-    open(){
+    open(item){
+      if(item){
+        this.current = item
+        this.radio = item.id
+      }
       this.categoryVisible = true
       this.getList()
     },
@@ -116,6 +121,7 @@ export default {
       this.categoryVisible = false
       this.current = null
       this.radio = ''
+      this.search = {}
     },
     reset(){
       this.search={}

+ 9 - 4
src/views/material/list/components/list-edit.vue

@@ -94,7 +94,8 @@
         // 提交状态
         loading: false,
         // 是否是修改
-        isUpdate: false
+        isUpdate: false,
+        chooseItem:null
       };
     },
     computed: {
@@ -105,11 +106,15 @@
     },
     methods: {
       chooseCategory(){
-           this.$refs.categoryRefs.open()
+          let item = {
+             id: this.form.categoryLevelRootId,
+             name: this.form.categoryLevelRootName
+          }
+           this.$refs.categoryRefs.open(item)
       },
       changeCategory(row){
-         this.$set(this.form,'categoryLevelRootName',row.name)
-         this.$set(this.form,'categoryLevelRootId',row.id)
+            this.$set(this.form,'categoryLevelRootName',row.name)
+            this.$set(this.form,'categoryLevelRootId',row.id)
       },
       /* 保存编辑 */
       save() {

+ 22 - 6
src/views/material/manage/components/PlanInfo.vue

@@ -11,22 +11,22 @@
          <el-row :gutter="24">
            <el-col :span="8">
              <el-form-item label="固定提前期" prop="fixLeadTime">
-                <el-input  v-model="form.fixLeadTime"/>
+                <el-input  v-model="form.fixLeadTime" @input="inputFix"/>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="变动提前期" prop="changeLeadTime">
-                <el-input  v-model="form.changeLeadTime"/>
+                <el-input  v-model="form.changeLeadTime" @input="inputChange"/>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="检验提前期" prop="checkLeadTime">
-                <el-input  v-model="form.checkLeadTime"/>
+                <el-input  v-model="form.checkLeadTime" @input="inputCheck"/>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="累计提前期" prop="cumLeadTime">
-                <el-input  v-model="form.cumLeadTime"/>
+                <el-input  v-model="form.cumLeadTime" readonly/>
              </el-form-item>
            </el-col>
            <el-col :span="8">
@@ -66,8 +66,24 @@
     },
 
     methods: {
-
-
+      inputFix(val){
+         const  changeLeadTime = this.form.changeLeadTime?Number(this.form.changeLeadTime):0
+         const  checkLeadTime = this.form.checkLeadTime?Number(this.form.checkLeadTime):0
+         val = val?Number(val):0
+         this.form.cumLeadTime = val + changeLeadTime  + checkLeadTime
+      },
+      inputChange(val){
+        const  fixLeadTime = this.form.fixLeadTime?Number(this.form.fixLeadTime):0
+        const  checkLeadTime = this.form.checkLeadTime?Number(this.form.checkLeadTime):0
+        val = val?Number(val):0
+         this.form.cumLeadTime = val + fixLeadTime  + checkLeadTime
+      },
+      inputCheck(val){
+          const  fixLeadTime = this.form.fixLeadTime?Number(this.form.fixLeadTime):0
+          const  changeLeadTime = this.form.changeLeadTime?Number(this.form.changeLeadTime):0
+          val = val?Number(val):0
+         this.form.cumLeadTime = val + fixLeadTime  + changeLeadTime
+      }
     }
   };
 </script>

+ 57 - 57
src/views/material/manage/components/TurnoverInfo.vue

@@ -1,47 +1,53 @@
 <template>
   <div class="other">
-      <el-form label-width="120px"  ref="form" :model="form">
-         <div class="divider">
-           <div class="title">
-             <div class="ele-bg-primary"></div>
-             <span>周转车信息</span>
-           </div>
-           <div class="ele-bg-primary ele-width"></div>
-         </div>
-         <el-row :gutter="24">
-           <el-col :span="8">
-             <el-form-item label="层数" prop="levelNum">
-                <el-input  v-model="form.levelNum"/>
-             </el-form-item>
-           </el-col>
-           <el-col :span="8">
-             <el-form-item label="材质" prop="materialQuality">
-                <el-input  v-model="form.materialQuality"/>
-             </el-form-item>
-           </el-col>
-           <el-col :span="8">
-             <el-form-item label="长" prop="vehicleLen">
-                <el-input v-model="form.vehicleLen">
-                    <template slot="append">mm</template>
-                </el-input>
-             </el-form-item>
-           </el-col>
-           <el-col :span="8">
-             <el-form-item label="宽" prop="wilde">
-                <el-input v-model="form.wilde">
-                    <template slot="append">mm</template>
-                </el-input>
-             </el-form-item>
-           </el-col>
-           <el-col :span="8">
-             <el-form-item label="高" prop="hight">
-                <el-input v-model="form.hight">
-                    <template slot="append">mm</template>
-                </el-input>
-             </el-form-item>
-           </el-col>
-         </el-row>
-      </el-form>
+    <el-form label-width="120px" ref="form" :model="form">
+      <div class="divider">
+        <div class="title">
+          <div class="ele-bg-primary"></div>
+          <span>周转车信息</span>
+        </div>
+        <div class="ele-bg-primary ele-width"></div>
+      </div>
+      <el-row :gutter="24">
+        <el-col :span="8">
+          <el-form-item label="层数" prop="levelNum">
+            <el-input v-model="form.levelNum" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="材质" prop="materialQuality">
+            <DictSelection
+              dictName="周转车材质"
+              clearable
+              v-model="form.materialQuality"
+            >
+            </DictSelection>
+            <!-- <el-input  v-model="form.materialQuality"/> -->
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="长" prop="vehicleLen">
+            <el-input v-model="form.vehicleLen">
+              <template slot="append">mm</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="宽" prop="wilde">
+            <el-input v-model="form.wilde">
+              <template slot="append">mm</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="高" prop="hight">
+            <el-input v-model="form.hight">
+              <template slot="append">mm</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
   </div>
 </template>
 
@@ -53,23 +59,17 @@
         default: {}
       }
     },
-    components: { },
-    data() {
-      return {
-
-
-      };
+    components: {},
+    data () {
+      return {};
     },
 
-    methods: {
-
-
-    }
+    methods: {}
   };
 </script>
 
 <style lang="scss" scoped>
-  .other{
+  .other {
     background: #fff;
     padding: 1px 17px;
   }
@@ -88,17 +88,17 @@
         font-size: 20px;
       }
     }
-    .ele-width{
+    .ele-width {
       width: 100%;
       height: 2px;
     }
   }
-  .form-line{
+  .form-line {
     display: flex;
     align-items: center;
     justify-content: space-between;
-    .line-select{
-      margin-left:15px;
+    .line-select {
+      margin-left: 15px;
     }
   }
 </style>

+ 1 - 1
src/views/material/manage/components/index-data.vue

@@ -22,7 +22,7 @@
             class="ele-btn-icon"
             @click="openEdit({},2)"
           >
-            添加
+            新建物料
           </el-button>
       </template>
       <template v-slot:action="{ row }">

+ 41 - 28
src/views/material/manage/manageMaterial.vue

@@ -15,10 +15,6 @@
                  </el-col>
                </el-row>
             </div>
-            <div>
-               <el-button @click="cancel">返回</el-button>
-               <el-button type="primary" @click="submit" :loading="loading">保存</el-button>
-            </div>
          </div>
          <div class="divider">
            <div class="title">
@@ -126,29 +122,34 @@
              </el-form-item>
            </el-col>
          </el-row>
+
+         <!-- 物料组弹窗 -->
+         <GroupDialog ref="groupRefs" @changeMaterial='determineChoose'/>
+         <!-- 分类选择弹窗 -->
+         <CategoryDialog ref="categoryRefs" @chooseCategory='confirmCategory'/>
+         <!-- 仓储配置 -->
+         <WarehouseInfo ref="warehouseRefs" :form="categoryWms"/>
+         <!-- 生产信息 -->
+          <ProductionInfo ref="productionRefs" :form="categoryMes"/>
+          <!-- 计划 -->
+          <PlanInfo ref="planRefs" :form="categoryAps"/>
+          <!-- 质量配置 -->
+          <QualityInfo ref="qualityRefs" :form="categoryQms"/>
+          <!-- 舟皿信息 -->
+          <BoatInfo ref="qualityRefs" :form="categoryPallet"/>
+          <!-- 周转车信息 -->
+          <TurnoverInfo ref="turnoverRefs" :form="categoryVehicle"/>
+          <!-- 模具信息 -->
+          <MoldInfo ref="moldRefs" :form="categoryMold"/>
+          <!-- 备注信息 -->
+          <RemarkInfo ref="remarkRefs" :form="remarkform"/>
+         <div class="footer-btn">
+             <el-button @click="cancel">返回</el-button>
+             <el-button type="primary" @click="submit" :loading="loading">保存</el-button>
+          </div>
       </el-form>
     </el-card>
 
-    <!-- 物料组弹窗 -->
-    <GroupDialog ref="groupRefs" @changeMaterial='determineChoose'/>
-    <!-- 分类选择弹窗 -->
-    <CategoryDialog ref="categoryRefs" @chooseCategory='confirmCategory'/>
-    <!-- 仓储配置 -->
-    <WarehouseInfo ref="warehouseRefs" :form="categoryWms"/>
-    <!-- 生产信息 -->
-     <ProductionInfo ref="productionRefs" :form="categoryMes"/>
-     <!-- 计划 -->
-     <PlanInfo ref="planRefs" :form="categoryAps"/>
-     <!-- 质量配置 -->
-     <QualityInfo ref="qualityRefs" :form="categoryQms"/>
-     <!-- 舟皿信息 -->
-     <BoatInfo ref="qualityRefs" :form="categoryPallet"/>
-     <!-- 周转车信息 -->
-     <TurnoverInfo ref="turnoverRefs" :form="categoryVehicle"/>
-     <!-- 模具信息 -->
-     <MoldInfo ref="moldRefs" :form="categoryMold"/>
-     <!-- 备注信息 -->
-     <RemarkInfo ref="remarkRefs" :form="remarkform"/>
   </div>
 </template>
 
@@ -179,12 +180,15 @@
     data() {
       const defaultForm = {
         categoryLevelGroupName:'',
-        categoryLevelName:'',
+        categoryLevelName:''
       };
       return {
          loading:false,
          form:{...defaultForm},
-         categoryAps:{},
+         categoryAps:{
+           unit:1,
+           orderIntervalUnit:1
+         },
          categoryMes:{},
          categoryMold:{},
          categoryPallet:{},
@@ -238,8 +242,8 @@
            this.judgeSet(info)
            delete this.form.remarkAttach
            delete this.form.remark
-           // this.$set(this.remarkform,'remarkAttach',info.remarkAttach)
-           this.$set(this.remarkform,'remark',info.remark)
+           this.$set(this.remarkform,'remarkAttach',info.category.remarkAttach)
+           this.$set(this.remarkform,'remark',info.category.remark)
            this.$set(this.form,'categoryLevelGroupName',this.chooseItem.name)
            if(this.titileStatus == 1){
               delete this.form.code
@@ -344,6 +348,8 @@
       changeProduct(){
          if(!this.form.isProduct){
            this.$refs.manageForm.clearValidate(["productCategoryLevelName"]);
+           this.$set(this.form,'productCategoryLevelName','')
+           this.$set(this.form,'productCategoryLevelId','')
          }
       },
 
@@ -436,4 +442,11 @@
       margin-left:15px;
     }
   }
+  .footer-btn{
+    width:100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin:20px auto;
+  }
 </style>

+ 6 - 3
src/views/material/product/components/link-msg.vue

@@ -34,7 +34,8 @@
     mixins: [dictMixins],
     props: {
       id: [Number, String],
-      categoryLevelId: [Number, String]
+      categoryLevelId: [Number, String],
+      categoryLevelGroupId: [Number, String]
     },
     data () {
       return {
@@ -195,7 +196,8 @@
       async getEqData () {
         const data = await getRelatesInformationList({
           mainCategoryId: this.categoryLevelId,
-          categoryLevelRootId: 4 //设备
+          categoryLevelRootId: 4 ,//设备
+          categoryLevelGroupId:this.categoryLevelGroupId
         });
 
         this.eqData = data;
@@ -204,7 +206,8 @@
       async getModuleData () {
         const data = await getRelatesInformationList({
           mainCategoryId: this.categoryLevelId,
-          categoryLevelRootId: 5 //模具
+          categoryLevelRootId: 5 ,//模具
+          categoryLevelGroupId:this.categoryLevelGroupId
         });
 
         this.moduleData = data;

+ 1 - 0
src/views/material/product/detail.vue

@@ -161,6 +161,7 @@
       ref="linkMsgRef"
       :id="$route.query.id"
       :categoryLevelId="form.categoryLevelId"
+      :categoryLevelGroupId = "form.categoryLevelGroupId"
     />
   </div>
 </template>

+ 1 - 0
src/views/material/product/index.vue

@@ -103,6 +103,7 @@
           ...where,
           pageNum: page,
           size: limit,
+          isProduct:true,
           categoryLevelId: this.categoryLevelId
         });
       },

+ 38 - 25
src/views/material/productLinkMaterial/components/link-material-dialog.vue

@@ -1,7 +1,7 @@
 <template>
-  <ele-modal :visible.sync="visible" title="" width="80%" @close="cancel">
+  <ele-modal :visible.sync="visible" title="" width="95%" @close="cancel">
     <el-row :gutter="40">
-      <el-col :span="12">
+      <el-col :span="11">
         <headerTitle>
           <template v-slot:title>
             可选
@@ -21,14 +21,14 @@
             >
           </template>
         </headerTitle>
-        <el-form label-width="100px">
+        <el-form label-width="60px">
           <el-row>
             <el-col :span="12">
               <el-form-item :label="`分类`">
                 <categorySelect
                   :pid="type"
                   :key="type"
-                  v-model="where.categoryLevelGroupId"
+                  v-model="where.categoryId"
                 />
                 <!-- <el-input
                   placeholder="请输入"
@@ -75,7 +75,7 @@
         >
         </ele-pro-table>
       </el-col>
-      <el-col :span="12">
+      <el-col :span="13">
         <headerTitle
           ><template v-slot:title
             >已关联
@@ -95,14 +95,14 @@
             ></template
           ></headerTitle
         >
-        <el-form label-width="100px">
+        <el-form label-width="60px">
           <el-row>
             <el-col :span="12">
               <el-form-item :label="`分类`">
                 <categorySelect
                   :pid="type"
                   :key="type"
-                  v-model="whereRight.categoryLevelGroupId"
+                  v-model="whereRight.categoryId"
                 /> </el-form-item
             ></el-col>
             <el-col :span="12">
@@ -169,8 +169,9 @@
           <template v-slot:angle="{ row }">
             <DictSelection dictName="角度" clearable v-model="row.angle">
             </DictSelection>
-          </template> </ele-pro-table
-      ></el-col>
+          </template> 
+          </ele-pro-table>
+        </el-col>
     </el-row>
 
     <div slot="footer" class="footer">
@@ -251,15 +252,18 @@
           },
           {
             label: `${this.catogaryName}分类`,
-            prop: 'categoryLevelGroupName'
+            prop: 'categoryLevelGroupName',
+            width: 110
           },
           {
             label: `${this.catogaryName}编码`,
-            prop: 'code'
+            prop: 'code',
+            width: 110
           },
           {
             label: `${this.catogaryName}名称`,
-            prop: 'name'
+            prop: 'name',
+            width: 110
           },
           {
             label: '型号',
@@ -269,7 +273,10 @@
             ? [
                 {
                   label: '槽数',
-                  prop: 'modelType'
+                  prop: 'slotNum',
+                  formatter:(_row, _column, cellValue) => {
+                    return _row.extendInfo.slotNum;
+                  }
                 },
                 {
                   label: '角度',
@@ -283,7 +290,8 @@
                 {
                   label: '产能',
                   slot: 'capacity',
-                  action: 'capacity'
+                  action: 'capacity',
+                  width: 240
                 }
               ]
             : [])
@@ -294,19 +302,22 @@
       open (type, row) {
         this.type = type;
         this.row = row;
+        // console.log('this.row',this.row)
         this.getDatasource();
         this.getDatasourceRight();
         this.visible = true;
       },
       cancel () {
         this.visible = false;
+        this.whereRight = {};
+        this.where = {};
       },
       async save () {
         // if (!this.datasourceRightShow.length) {
         //   return this.$message.error('请添加关联数据');
         // }
         const params = {
-          mainCategoryId: this.row.categoryLevelId,
+          mainCategoryId: this.row.id,
           mainCategoryLevelRootId: this.type,
           materialDetailsPOList: this.datasourceRightShow.map((i) => ({
             ...i,
@@ -355,9 +366,9 @@
       reload () {
         this.datasourceShow = this.datasource.filter((item) => {
           return (
-            (!this.where.categoryLevelGroupId ||
-              item.categoryLevelGroupId.includes(
-                this.where.categoryLevelGroupId
+            (!this.where.categoryId ||
+              item.parentId.includes(
+                this.where.categoryId
               )) &&
             (!this.where.code || item.code.includes(this.where.code)) &&
             (!this.where.name || item.name.includes(this.where.name)) &&
@@ -369,9 +380,9 @@
       reloadRight () {
         this.datasourceRightShow = this.datasourceRight.filter((item) => {
           return (
-            (!this.whereRight.categoryLevelGroupId ||
-              item.categoryLevelGroupId.includes(
-                this.whereRight.categoryLevelGroupId
+            (!this.whereRight.categoryId ||
+              item.parentId.includes(
+                this.whereRight.categoryId
               )) &&
             (!this.whereRight.code ||
               item.code.includes(this.whereRight.code)) &&
@@ -384,16 +395,18 @@
       },
       async getDatasource () {
         const data = await unassociated({
-          categoryLevelGroupId: this.idMap[this.type]
+          categoryLevelGroupId: this.idMap[this.type],
+          categoryLevelRootId: this.type,
+          mainCategoryId: this.row.id
         });
         this.datasource = data.slice(0);
         this.datasourceShow = data.slice(0);
       },
       async getDatasourceRight () {
         const data = await getRelatesInformationList({
-          mainCategoryId: this.row.categoryLevelId,
-          // categoryLevelGroupId: this.idMap[this.type],
-          categoryLevelRootId: this.type
+          categoryLevelGroupId: this.idMap[this.type],
+          categoryLevelRootId: this.type,
+          mainCategoryId: this.row.id
         });
         this.datasourceRight = data.slice(0);
         this.datasourceRightShow = data.slice(0);

+ 4 - 11
src/views/material/productLinkMaterial/components/product-search.vue

@@ -19,12 +19,12 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { md: 5 } : { span: 4 }">
         <el-form-item label="牌号">
-          <el-input clearable v-model="where.name" placeholder="请输入" />
+          <el-input clearable v-model="where.brandNum" placeholder="请输入" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { md: 5 } : { span: 4 }">
         <el-form-item label="型号">
-          <el-input clearable v-model="where.name" placeholder="请输入" />
+          <el-input clearable v-model="where.modelType" placeholder="请输入" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { md: 4 } : { span: 4 }">
@@ -57,14 +57,10 @@
       const defaultWhere = {
         name: '',
         code: '',
-        appType: ''
+        brandNum: '',
+        modelType:''
       };
       return {
-        options: [
-          { value: 0, label: '全部' },
-          { value: 1, label: '业务字典' },
-          { value: 2, label: '数据字典' }
-        ],
         defaultWhere,
         // 表单数据
         where: { ...defaultWhere }
@@ -79,9 +75,6 @@
     methods: {
       /* 搜索 */
       search () {
-        if (this.where.appType === 0) {
-          this.where.appType = '';
-        }
         this.$emit('search', this.where);
       },
       /*  重置 */

+ 2 - 2
src/views/material/productLinkMaterial/index.vue

@@ -120,8 +120,8 @@
         this.$refs.linkMaterialDialogRef.open(type, this.current);
       },
       /* 刷新表格 */
-      reload () {
-        this.$refs.table.reload();
+      reload (where) {
+        this.$refs.table.reload({where:where});
       },
       handleNodeClick (data) {
         this.categoryLevelId = data.id;

+ 30 - 10
src/views/technology/control/components/user-edit.vue

@@ -35,7 +35,7 @@
       <el-row>
         <el-col :span="8">
           <el-form-item label="检验方式:" prop="checkMethod">
-            <el-select v-model="form.checkMethod" placeholder="请选择">
+            <el-select filterable v-model="form.checkMethod" placeholder="请选择">
               <el-option
                 v-for="item in checkMethodList"
                 :key="item.value"
@@ -46,9 +46,29 @@
             </el-select>
           </el-form-item>
         </el-col>
+<!--        <el-col :span="8" v-if="form.checkMethod==2">
+          <el-form-item label="互检:" prop="huj">
+             <el-switch
+               v-model="form.huj"
+               :active-value='1'
+               :inactive-value='0'
+             >
+             </el-switch>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" v-if="form.checkMethod==2">
+          <el-form-item label="专检:" prop="zj">
+              <el-switch
+                v-model="form.zj"
+                :active-value='1'
+                :inactive-value='0'
+              >
+              </el-switch>
+          </el-form-item>
+        </el-col> -->
         <el-col :span="8">
           <el-form-item label="报工方式:" prop="submitMethod">
-            <el-select v-model="form.submitMethod" placeholder="请选择">
+            <el-select filterable v-model="form.submitMethod" placeholder="请选择">
               <el-option
                 v-for="item in submitMethodList"
                 :key="item.code"
@@ -61,7 +81,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="加工方式:" prop="produceMethod">
-            <el-select v-model="form.produceMethod" placeholder="请选择">
+            <el-select filterable v-model="form.produceMethod" placeholder="请选择">
               <el-option
                 v-for="item in produceMethodList"
                 :key="item.value"
@@ -101,7 +121,7 @@
         id: null,
         code: '',
         name: '',
-        checkMethod: '',
+        checkMethod: 2,
         submitMethod: '',
         produceMethod: ''
       };
@@ -116,15 +136,15 @@
             { required: true, message: '请输入控制码名称', trigger: 'blur' }
           ],
           code: [{ required: true, trigger: 'change' }],
-          checkMethod: [
-            { required: true, message: '请选择检验方式', trigger: 'blur' }
-          ],
+          // checkMethod: [
+          //   { required: true, message: '请选择检验方式', trigger: 'blur' }
+          // ],
           submitMethod: [
             { required: true, message: '请选择报工方式', trigger: 'blur' }
           ],
-          produceMethod: [
-            { required: true, message: '请选择加工方式', trigger: 'blur' }
-          ]
+          // produceMethod: [
+          //   { required: true, message: '请选择加工方式', trigger: 'blur' }
+          // ]
         },
         // 提交状态
         loading: false,

+ 45 - 7
src/views/technology/parameter/components/user-edit.vue

@@ -30,7 +30,12 @@
         </el-col>
         <el-col :span="10">
           <el-form-item label="默认值:">
-            <el-input v-model="form.defaultValue" placeholder="请输入" />
+            <!-- <el-input type="number" v-model="form.defaultValue" maxlength="8" placeholder="请输入" /> -->
+            <el-input
+              oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3').replace(/^\./g, '').replace(/^0+(?!\.|$)/g, ''),value = Number(value) >= 999999.99 ? 999999.99 : value"
+              v-model="form.defaultValue"
+              placeholder="请输入"
+            ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="10">
@@ -40,12 +45,22 @@
         </el-col>
         <el-col :span="10">
           <el-form-item label="参数上限:">
-            <el-input placeholder="请输入" v-model="form.maxValue" />
+            <!-- <el-input placeholder="请输入" v-model="form.maxValue" /> -->
+            <el-input
+              oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3').replace(/^\./g, '').replace(/^0+(?!\.|$)/g, ''),value = Number(value) >= 999999.99 ? 999999.99 : value"
+              v-model="form.maxValue"
+              placeholder="请输入"
+            ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="10">
           <el-form-item label="参数下限:">
-            <el-input placeholder="请输入" v-model="form.minValue" />
+            <!-- <el-input placeholder="请输入" v-model="form.minValue" /> -->
+            <el-input
+              oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3').replace(/^\./g, '').replace(/^0+(?!\.|$)/g, ''),value = Number(value) >= 999999.99 ? 999999.99 : value"
+              v-model="form.minValue"
+              placeholder="请输入"
+            ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="20">
@@ -63,7 +78,7 @@
             <el-select
               v-model="form.categoryType"
               filterable
-              placeholder="选择"
+              placeholder="选择"
             >
               <el-option
                 v-for="item in statusList"
@@ -77,7 +92,7 @@
         </el-col>
         <el-col :span="10">
           <el-form-item label="是否必填:" prop="notNull">
-            <el-select v-model="form.notNull" filterable placeholder="选择">
+            <el-select v-model="form.notNull" filterable placeholder="选择">
               <el-option
                 v-for="item in timeType"
                 :key="item.value"
@@ -127,7 +142,7 @@
         minValue: '',
         unitName: '',
         remark: '',
-        notNull: ''
+        notNull: 0
       };
       return {
         defaultForm,
@@ -193,11 +208,33 @@
               ? parameter.update
               : parameter.save;
 
+            const defaultValue =  Number(this.form.defaultValue) 
+            const maxValue = Number(this.form.maxValue) 
+            const minValue =  Number(this.form.minValue)
+            if(defaultValue!=''&maxValue!=''){
+               if(defaultValue>maxValue||defaultValue==maxValue){
+                  this.loading = false;
+                  return this.$message.warning('默认值应小于参数上限')
+               }
+            }
+            if(defaultValue!=''&minValue!=''){
+               if(defaultValue<minValue||defaultValue==minValue){
+                  this.loading = false;
+                  return this.$message.warning('默认值应大于参数下限')
+               }
+            }
+            if(maxValue!=''&minValue!=''){
+               if(maxValue<minValue||maxValue==minValue){
+                  this.loading = false;
+                  return this.$message.warning('参数上限应大于参数下限')
+               }
+            }
             saveOrUpdate(this.form)
               .then((msg) => {
                 this.loading = false;
                 this.form = {};
-                this.$message.success(msg);
+                const info = this.isUpdate?'修改成功':'新增成功'
+                this.$message.success(info);
                 this.updateVisible(false);
                 this.$emit('done');
               })
@@ -231,6 +268,7 @@
           }
         } else {
           this.$refs.form.clearValidate();
+          this.$refs.form1.clearValidate();
           this.form = { ...this.defaultForm };
         }
       }

+ 2 - 1
src/views/technology/production/components/parameter/index.vue

@@ -145,7 +145,8 @@
 
       /* 刷新表格 */
       reload(where) {
-        this.$refs.table.reload({ page: 1, where: where });
+        console.log('where',where)
+        this.$refs.tableParameter.reload({ page: 1, where: where });
       },
       /* 打开编辑弹窗 */
       openEdit(row) {

+ 3 - 3
src/views/technology/production/components/user-edit.vue

@@ -30,7 +30,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="控制码:" prop="controlId">
-             <el-select v-model="form.controlId">
+             <el-select v-model="form.controlId" filterable>
                <el-option
                  v-for="item in controlList"
                  :key="item.id"
@@ -48,7 +48,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="工序时间单位:" prop="timeUnit">
-            <el-select v-model="form.timeUnit">
+            <el-select v-model="form.timeUnit" filterable>
               <el-option
                 v-for="item in timeType"
                 :key="item.code"
@@ -102,7 +102,7 @@
         <el-col :span="24">
           <el-col :span="12">
             <el-form-item label="间隔策略:">
-              <el-select v-model="form.intervalTime.tactics">
+              <el-select v-model="form.intervalTime.tactics" filterable>
                 <el-option
                   v-for="item in tacticsType"
                   :key="item.code"

+ 49 - 16
src/views/technology/production/components/user-setting.vue

@@ -109,7 +109,7 @@
   import producetask from '@/api/technology/production';
   import parameter from '@/api/technology/parameter';
   import Paramrter from './parameter';
-
+  import { deepClone } from '@/components/FormGenerator/utils/index';
   export default {
     components: { Paramrter },
     props: {
@@ -153,21 +153,21 @@
             slot: 'maxValue',
             label: '参数上限',
             align: 'center',
-            showOverflowTooltip: true
+            // showOverflowTooltip: true
           },
           {
             prop: 'minValue',
             slot: 'minValue',
             label: '参数下限',
             align: 'center',
-            showOverflowTooltip: true
+            // showOverflowTooltip: true
           },
           {
             prop: 'defaultValue',
             slot: 'defaultValue',
             label: '默认值',
             align: 'center',
-            showOverflowTooltip: true
+            // showOverflowTooltip: true
           },
           {
             prop: 'notNull',
@@ -196,7 +196,7 @@
 
     methods: {
       addParamrter() {
-        let arr = this.$refs.Paramrter.selection;
+        let arr = deepClone(this.$refs.Paramrter.selection)
         arr.forEach((element) => {
           this.$set(element, 'paramId', element.id);
           this.$set(element, 'paramName', element.name);
@@ -208,7 +208,7 @@
         this.closeAdd();
       },
       showAddLog() {
-        this.tableData = this.$refs.table.getData();
+        this.tableData = this.$refs.table.getData()
         this.addDialog = true;
       },
       /*关闭选择参数*/
@@ -252,16 +252,49 @@
             this.$set(it, 'taskId', this.data.id);
           }
         });
-        producetask
-          .paramSave({
-            removeList: this.removeList,
-            saveList: arr
-          })
-          .then(() => {
-            this.$message.success('保存成功!');
-            this.updateVisible(false);
-          });
-
+        if(!arr.length){
+          return this.$message.warning('参数不能为空')
+        }
+        let canSave = true
+        for(var i=0;i<arr.length;i++){
+            const defaultValue = Number(arr[i].defaultValue)
+            const maxValue = Number(arr[i].maxValue)
+            const minValue = Number(arr[i].minValue)
+            if(defaultValue!=''&maxValue!=''){
+               if(defaultValue>maxValue||defaultValue==maxValue){
+                  this.$message.warning('默认值应小于参数上限')
+                  canSave = false
+                  break
+               }
+            }
+            if(defaultValue!=''&minValue!=''){
+               if(defaultValue<minValue||defaultValue==minValue){
+                  this.$message.warning('默认值应大于参数下限')
+                  canSave = false
+                  break
+               }
+            }
+            if(maxValue!=''&minValue!=''){
+               if(maxValue<minValue||maxValue==minValue){
+                  this.$message.warning('参数上限应大于参数下限')
+                  canSave = false
+                  break
+               }
+            }
+        }
+        if(canSave){
+            producetask
+              .paramSave({
+                removeList: this.removeList,
+                saveList: arr
+              })
+              .then((msg) => {
+                if(msg){
+                  this.$message.success(msg);
+                  this.updateVisible(false);
+                }
+              });
+        }
         // this.$refs.form.validate((valid) => {
         //   if (!valid) {
         //     return false;

+ 13 - 14
src/views/technology/production/index.vue

@@ -12,7 +12,7 @@
         row-key="code"
       >
         <!-- 表头工具栏 -->
-        <template v-slot:toolbar>
+<!--        <template v-slot:toolbar>
           <el-button
             size="small"
             type="primary"
@@ -31,7 +31,7 @@
           >
             删除
           </el-button>
-        </template>
+        </template> -->
 
         <template v-slot:roleList="{ row }">
           <el-tag
@@ -48,14 +48,14 @@
 
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
-          <el-link
+<!--          <el-link
             type="primary"
             :underline="false"
             icon="el-icon-edit"
             @click="openEdit(row)"
           >
             修改
-          </el-link>
+          </el-link> -->
           <el-link
             type="primary"
             :underline="false"
@@ -65,7 +65,7 @@
             配置工艺参数
           </el-link>
 
-          <el-popconfirm
+<!--          <el-popconfirm
             class="ele-action"
             title="确定要删除当前工序吗?"
             @confirm="remove(row)"
@@ -75,7 +75,7 @@
                 删除
               </el-link>
             </template>
-          </el-popconfirm>
+          </el-popconfirm> -->
         </template>
       </ele-pro-table>
     </el-card>
@@ -113,14 +113,13 @@
       return {
         // 表格列配置
         columns: [
-          {
-            columnKey: 'selection',
-            type: 'selection',
-            width: 45,
-            align: 'center',
-            fixed: 'left'
-          },
-
+          // {
+          //   columnKey: 'selection',
+          //   type: 'selection',
+          //   width: 45,
+          //   align: 'center',
+          //   fixed: 'left'
+          // },
           {
             prop: 'code',
             label: '工序编码',

+ 14 - 13
src/views/technology/route/components/production/components/parameter/components/user-search.vue

@@ -1,7 +1,7 @@
 <!-- 搜索表单 -->
 <template>
   <el-form
-    label-width="120px"
+    label-width="100px"
     class="ele-form-search"
     @keyup.enter.native="search"
     @submit.native.prevent
@@ -43,19 +43,20 @@
           </el-select>
         </el-form-item>
       </el-col>
-
       <el-col v-bind="styleResponsive ? { lg: 4, md: 12 } : { span: 4 }">
-        <div class="ele-form-actions">
-          <el-button
-            type="primary"
-            icon="el-icon-search"
-            class="ele-btn-icon"
-            @click="search"
-          >
-            查询
-          </el-button>
-          <el-button @click="reset">重置</el-button>
-        </div>
+        <el-form-item label-width="20px">
+          <div class="ele-form-actions">
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              class="ele-btn-icon"
+              @click="search"
+            >
+              查询
+            </el-button>
+            <el-button @click="reset">重置</el-button>
+          </div>
+        </el-form-item>
       </el-col>
     </el-row>
   </el-form>

+ 44 - 14
src/views/technology/route/components/production/components/user-setting.vue

@@ -162,21 +162,21 @@
             slot: 'maxValue',
             label: '参数上限',
             align: 'center',
-            showOverflowTooltip: true
+            // showOverflowTooltip: true
           },
           {
             prop: 'minValue',
             slot: 'minValue',
             label: '参数下限',
             align: 'center',
-            showOverflowTooltip: true
+            // showOverflowTooltip: true
           },
           {
             prop: 'defaultValue',
             slot: 'defaultValue',
             label: '默认值',
             align: 'center',
-            showOverflowTooltip: true
+            // showOverflowTooltip: true
           },
           {
             prop: 'notNull',
@@ -268,18 +268,48 @@
             this.$set(it, 'routingTaskId', this.data.id);
           }
         });
-        route
-          .taskinstanceParamSave({
-            removeList: this.removeList,
-            saveList: arr
-          })
-          .then((res) => {
-            if (res) {
-              this.$message.success('保存成功!');
-
-              this.updateVisible(false);
+        let canSave = true
+        for(var i=0;i<arr.length;i++){
+            const defaultValue = Number(arr[i].defaultValue)
+            const maxValue = Number(arr[i].maxValue)
+            const minValue = Number(arr[i].minValue)
+            if(defaultValue!=''&maxValue!=''){
+               if(defaultValue>maxValue||defaultValue==maxValue){
+                  this.$message.warning('默认值应小于参数上限')
+                  canSave = false
+                  break
+               }
             }
-          });
+            if(defaultValue!=''&minValue!=''){
+               if(defaultValue<minValue||defaultValue==minValue){
+                  this.$message.warning('默认值应大于参数下限')
+                  canSave = false
+                  break
+               }
+            }
+            if(maxValue!=''&minValue!=''){
+               if(maxValue<minValue||maxValue==minValue){
+                  this.$message.warning('参数上限应大于参数下限')
+                  canSave = false
+                  break
+               }
+            }
+        }
+        if(canSave){
+            route
+              .taskinstanceParamSave({
+                removeList: this.removeList,
+                saveList: arr
+              })
+              .then((res) => {
+                if (res) {
+                  this.$message.success('保存成功!');
+            
+                  this.updateVisible(false);
+                }
+              });
+        }
+
 
         // this.$refs.form.validate((valid) => {
         //   if (!valid) {

+ 2 - 2
src/views/technology/route/components/user-edit.vue

@@ -30,7 +30,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="所属工厂:" prop="factoryId">
-            <el-select v-model="form.factoryId" placeholder="请选择">
+            <el-select v-model="form.factoryId" placeholder="请选择" filterable>
               <el-option
                 v-for="item in fList"
                 :key="item.id"
@@ -62,7 +62,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="状态:" prop="status">
-            <el-select v-model="form.status" placeholder="">
+            <el-select v-model="form.status" placeholder="" filterable>
               <el-option
                 v-for="item in statusList"
                 :key="item.value"

+ 3 - 3
src/views/technology/route/components/user-search.vue

@@ -17,7 +17,7 @@
           <el-input clearable v-model="where.name" placeholder="请输入" />
         </el-form-item>
       </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 4 }">
+<!--      <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 4 }">
         <el-form-item label="生产版本:">
           <el-input
             clearable
@@ -26,9 +26,9 @@
             placeholder="请输入"
           />
         </el-form-item>
-      </el-col>
+      </el-col> -->
       <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 4 }">
-        <el-form-item label="状态:">
+        <el-form-item label="状态:" label-width="70px">
           <el-select v-model="where.status" filterable placeholder="请选择">
             <el-option
               v-for="item in statusList"

+ 14 - 14
src/views/technology/route/index.vue

@@ -9,10 +9,10 @@
         :columns="columns"
         :datasource="datasource"
         :selection.sync="selection"
-        row-key="code"
+        row-key="id"
       >
         <!-- 表头工具栏 -->
-        <template v-slot:toolbar>
+<!--        <template v-slot:toolbar>
           <el-button
             size="small"
             type="primary"
@@ -22,7 +22,7 @@
           >
             新建
           </el-button>
-        </template>
+        </template> -->
 
         <!-- 状态列 -->
         <template v-slot:status="{ row }">
@@ -31,14 +31,14 @@
 
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
-          <el-link
+<!--          <el-link
             type="primary"
             :underline="false"
             icon="el-icon-edit"
             @click="openEdit(row)"
           >
             修改
-          </el-link>
+          </el-link> -->
           <el-link
             type="primary"
             :underline="false"
@@ -48,7 +48,7 @@
             配置工序
           </el-link>
 
-          <el-popconfirm
+<!--          <el-popconfirm
             v-if="row.status != 1"
             class="ele-action"
             title="确定要删除当前工序吗?"
@@ -59,7 +59,7 @@
                 删除
               </el-link>
             </template>
-          </el-popconfirm>
+          </el-popconfirm> -->
         </template>
       </ele-pro-table>
     </el-card>
@@ -97,13 +97,13 @@
       return {
         // 表格列配置
         columns: [
-          {
-            columnKey: 'selection',
-            type: 'selection',
-            width: 45,
-            align: 'center',
-            fixed: 'left'
-          },
+          // {
+          //   columnKey: 'selection',
+          //   type: 'selection',
+          //   width: 45,
+          //   align: 'center',
+          //   fixed: 'left'
+          // },
 
           {
             prop: 'code',

+ 3 - 3
src/views/technology/work/components/user-edit.vue

@@ -31,7 +31,7 @@
 
         <el-col :span="8">
           <el-form-item label="所属工厂:" prop="factoryId">
-            <el-select v-model="form.factoryId" placeholder="所属工厂">
+            <el-select v-model="form.factoryId" filterable placeholder="所属工厂">
               <el-option
                 v-for="item in flist"
                 :key="item.id"
@@ -44,7 +44,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="工作中心类别:" prop="categoryType">
-            <el-select v-model="form.categoryType" placeholder="工作中心类别">
+            <el-select v-model="form.categoryType" filterable placeholder="工作中心类别">
               <el-option
                 v-for="item in categoryTypes"
                 :key="item.code"
@@ -57,7 +57,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="负责人:" prop="leaderUserId">
-            <el-select v-model="form.leaderUserId" placeholder="负责人">
+            <el-select v-model="form.leaderUserId" filterable placeholder="负责人">
               <el-option
                 v-for="item in userList"
                 :key="item.id"

+ 2 - 2
src/views/technology/work/components/user-search.vue

@@ -9,7 +9,7 @@
     <el-row :gutter="15">
       <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
         <el-form-item label="所属工厂:">
-          <el-select v-model="where.factoryId" placeholder="所属工厂">
+          <el-select v-model="where.factoryId" filterable placeholder="所属工厂">
             <el-option
               v-for="item in flist"
               :key="item.id"
@@ -33,7 +33,7 @@
 
       <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
         <el-form-item label="工作中心类别:">
-          <el-select v-model="where.categoryType" placeholder="工作中心类别">
+          <el-select v-model="where.categoryType" filterable placeholder="工作中心类别">
             <el-option
               v-for="item in categoryTypes"
               :key="item.code"

+ 5 - 2
src/views/workforceManagement/classes/components/edit.vue

@@ -56,7 +56,7 @@
         header="工作时间段"
         body-style="padding: 22px 22px 0 22px;"
       >
-        <timeTable ref="timeTable" @timeAll="gettimeAll"></timeTable>
+        <timeTable ref="timeTable" @timeAll="gettimeAll" :delDetailIds="delDetailIds"></timeTable>
       </el-card>
     </el-form>
     <template v-slot:footer>
@@ -102,7 +102,8 @@ export default {
         workshopId: [],
         productionLineId: [],
         workStationId: []
-      }
+      },
+      delDetailIds:[]
     };
   },
   computed: {
@@ -158,6 +159,7 @@ export default {
               break;
             case 'edit':
               fn = updateteamtime;
+              this.form.delDetailIds = this.delDetailIds
               break;
             default:
               break;
@@ -182,6 +184,7 @@ export default {
       this.form = { ...this.defaultForm };
     },
     handleClose() {
+      this.delDetailIds = []
       this.restForm();
       this.$refs.timeTable.restTable();
       this.visible = false;

+ 11 - 2
src/views/workforceManagement/classes/components/timeTable.vue

@@ -6,6 +6,7 @@
       :columns="columns"
       :datasource="form.datasource"
       cache-key="systemRoleTable"
+      class="time-form"
     >
       <!-- 表头工具栏 -->
       <template v-slot:toolbar>
@@ -112,6 +113,9 @@
 </template>
 <script>
 export default {
+  props:{
+    delDetailIds:Array
+  },
   data() {
     const defaultForm = {
       key: null,
@@ -173,11 +177,13 @@ export default {
   },
   methods: {
     remove(row) {
-      console.log(row);
       let index = this.form.datasource.findIndex((n) => n.key == row.key);
       if (index !== -1) {
         this.form.datasource.splice(index, 1);
         this.setSort();
+        if(row.id){
+          this.delDetailIds.push(row.id)
+        }
       }
     },
     // 清空表格
@@ -291,4 +297,7 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-</style>
+  .time-form .el-form-item{
+    margin-bottom: 0!important;
+  }
+</style>

+ 1 - 1
src/views/workforceManagement/schedule/index.vue

@@ -92,7 +92,7 @@
           {
             columnKey: 'action',
             label: '操作',
-
+            width:260,
             align: 'center',
             resizable: false,
             slot: 'action',

+ 1 - 1
src/views/workforceManagement/team/components/edit.vue

@@ -244,7 +244,7 @@ export default {
           })
           .catch((e) => {
             this.loading = false;
-            this.$message.error(e.message);
+            // this.$message.error(e.message);
           });
       });
     },