소스 검색

Sop切换状态禁止选中,硬件类型下拉修复

pm 1 년 전
부모
커밋
17a0679790

+ 1 - 1
src/api/mes/hw/hadrwareType.js

@@ -2,7 +2,7 @@ import request from '@/utils/request'
 
 
 // 查询硬件类型-列表
-export function listHanrware(query) {
+export function listHanrwareType(query) {
   return request({
     url: '/iscs/type/getIsHardwareTypePage',
     method: 'get',

+ 1 - 8
src/api/mes/hw/hardwareinfo.js

@@ -9,14 +9,7 @@ export function listHardware(query) {
     params: query
   })
 }
-// 获取硬件类型-所有
-export function getHardwareTypeListAPI(query) {
-  return request({
-    url: '/iscs/type/getIsHardwareTypeList',
-    method: 'get',
-    params: query
-  })
-}
+
 // 获取所有车间
 export function listAllWorkshop(){
   return request({

+ 65 - 47
src/views/mes/hw/information/index.vue

@@ -41,20 +41,10 @@
           </el-select>
         </el-form-item>
 
-        <el-form-item label="硬件类型" prop="hardwareTypeId">
-          <el-select
-            v-model="queryParams.hardwareTypeId"
-            placeholder="请选择硬件类型"
-            clearable
-          >
-            <el-option
-              v-for="dict in hardwareTypeOption"
-              :key="dict.key"
-              :label="dict.label"
-              :value="dict.key"
-            />
-          </el-select>
-        </el-form-item>
+       <el-form-item label="硬件类型" prop="hardwareTypeId">
+         <treeselect style="width: 215px" v-model="queryParams.hardwareTypeId" :options="hardwareTypeOption"  :show-count="true" placeholder="请选择" />
+       </el-form-item>
+
       </el-row>
       <el-form-item label="规格型号" prop="hardwareSpec">
         <el-input
@@ -273,21 +263,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="11">
-            <el-form-item label="硬件类型" prop="hardwareTypeName">
-              <el-select
-                v-model="form.hardwareTypeName"
-                placeholder="请选择硬件类型"
-                clearable
-                style="width: 100%"
-                @change="hardTypeChange"
-              >
-                <el-option
-                  v-for="dict in this.hardwareTypeOption"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                />
-              </el-select>
+            <el-form-item label="硬件类型" prop="hardwareTypeId">
+              <treeselect v-model="form.hardwareTypeId" :options="hardwareTypeOption" @input="onSelectChange" :show-count="true" placeholder="请选择" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -403,7 +380,6 @@
 <script>
 import {
   listHardware,
-  getHardwareTypeListAPI,
   addHardware,
   updateHardware,
   delHardware,
@@ -411,10 +387,14 @@ import {
   listAllWorkshop,
 } from "@/api/mes/hw/hardwareinfo";
 import { genCode } from "@/api/system/autocode/rule";
+import { listHanrwareType } from '@/api/mes/hw/hadrwareType'
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "hardwareinfo",
   dicts: ["hardware_status"],
   // components: { Repairline, MachinerySelectSingle },
+  components: { Treeselect },
   data() {
     return {
       autoGenFlag: false,
@@ -464,6 +444,7 @@ export default {
         hardwareTypeId: 0,
         workshopCode: 0,
         workshopId: 0,
+        hardwareTypeName:''
       },
       // 表单校验
       rules: {
@@ -510,11 +491,15 @@ export default {
       // 新增状态
       radio: 3,
       EditId: 0, //修改判断
+      cascaderOptions: [] ,// 转换后的数据
+      flatHardwareTypeOption: [], // 用于快速查找
     };
   },
   created() {
     this.getList();
     this.getHardwareTypeList();
+    this.convertToTreeStructure();
+
   },
   methods: {
     // 格式化日期查询数据
@@ -556,27 +541,60 @@ export default {
     },
     // 获取硬件类型-所有
     getHardwareTypeList() {
-      getHardwareTypeListAPI(this.queryTypeParams).then((response) => {
+      const data = {
+        current: 1,
+        size: 10000,
+      };
+      listHanrwareType(data).then((response) => {
         console.log(response, "Type");
-        this.hardwareTypeOption = response.data.map((item) => {
-          return {
-            label: item.hardwareTypeName,
-            value: item.hardwareTypeCode,
-            key: item.id,
-          };
-        });
+        this.flatHardwareTypeOption = response.data.records; // 保存扁平数据
+        this.hardwareTypeOption = this.convertToTreeStructure(response.data.records);
       });
     },
-    // 硬件类型下拉
-    hardTypeChange(val) {
-      console.log(val, "下拉类型");
-      const TypeId = this.hardwareTypeOption.find((item) => {
-        return item.value == val ? item.key : null;
+
+    // 将扁平数据转换为树形结构
+    convertToTreeStructure(data) {
+      const map = {};
+      const tree = [];
+
+      // console.log(data, 'convertToTreeStructure-data');
+
+      data.forEach((item) => {
+        map[item.id] = {
+          id: item.id,
+          label: item.hardwareTypeName,
+          children: []
+        };
       });
-      this.form.hardwareTypeId = TypeId.key;
-      this.form.hardwareTypeCode = TypeId.value;
-      this.form.hardwareTypeName = TypeId.label;
-      console.log(this.form.hardwareTypeId, "hardwareTypeId");
+
+      data.forEach((item) => {
+        const node = map[item.id];
+        if (item.parentTypeId === '0') {
+          tree.push(node);
+        } else {
+          const parent = map[item.parentTypeId];
+          if (parent) {
+            parent.children.push(node);
+          }
+        }
+      });
+
+      return tree;
+    },
+    // 处理选择变化
+    onSelectChange(selectedId) {
+      this.form.hardwareTypeId = selectedId;
+
+      // 查找对应的 hardwareTypeName
+      const selectedOption = this.flatHardwareTypeOption.find(option => option.id === selectedId);
+      if (selectedOption) {
+        this.form.hardwareTypeName = selectedOption.hardwareTypeName;
+      } else {
+        console.error('Selected ID not found:', selectedId);
+      }
+
+      console.log('Selected ID:', selectedId);
+      console.log('Selected Name:', this.form.hardwareTypeName);
     },
     // 车间下拉 --新增表单
     workShopChange(val) {

+ 3 - 3
src/views/mes/hw/type/index.vue

@@ -210,7 +210,7 @@
 
 <script>
 import {
-  listHanrware,
+  listHanrwareType,
   getHardwareTypeInfo,
   delHardwareType,
   addHardwareType,
@@ -278,7 +278,7 @@ export default {
     /** 查询设备类型列表 */
     getList() {
       this.loading = true;
-      listHanrware(this.queryParams).then((response) => {
+      listHanrwareType(this.queryParams).then((response) => {
         this.machinerytypeList = this.handleTree(
           response.data.records,
           "id",
@@ -301,7 +301,7 @@ export default {
     },
     /** 查询设备类型下拉树结构 */
     getTreeselect() {
-      listHanrware().then((response) => {
+      listHanrwareType().then((response) => {
         debugger;
         this.machinerytypeOptions = [];
         const data = this.handleTree(

+ 0 - 424
src/views/mes/hw/type/index1.vue

@@ -1,424 +0,0 @@
-<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="hardwareTypeCode">
-        <el-input
-          v-model="queryParams.hardwareTypeCode"
-          placeholder="请输入硬件编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="类型名称" prop="hardwareTypeName">
-        <el-input
-          v-model="queryParams.hardwareTypeName"
-          placeholder="请输入类型名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-
-      <el-form-item label="状态" prop="enableFlag">
-        <el-select
-          v-model="queryParams.enableFlag"
-          placeholder="请选择状态"
-          clearable
-        >
-          <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 style="margin-left: 50px">
-        <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:hw:type:add']"
-          >新增</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          @click="handleDelete"
-          v-hasPermi="['mes:hw:type:batchremove']"
-          >批量删除</el-button
-        >
-      </el-col>
-      <right-toolbar
-        :showSearch.sync="showSearch"
-        @queryTable="getList"
-      ></right-toolbar>
-    </el-row>
-
-    <el-table
-      v-loading="loading"
-      :data="repairList"
-      @selection-change="handleSelectionChange"
-    >
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column
-        label="硬件编号"
-        width="120px"
-        align="center"
-        prop="hardwareTypeCode"
-      />
-      <el-table-column
-        label="类型名称"
-        width="150px"
-        align="center"
-        prop="hardwareTypeName"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column label="状态" align="center" prop="enableFlag">
-        <template slot-scope="scope">
-          <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="remark" />
-      <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:hw:type:edit']"
-            >编辑</el-button
-          >
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['mes:hw:type:remove']"
-            >删除</el-button
-          >
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      :page.sync="queryParams.current"
-      :limit.sync="queryParams.size"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改设备维修单对话框 -->
-    <el-dialog :visible.sync="open" width="500px" 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="120px">
-        <el-row>
-          <el-col :span="18">
-            <el-form-item label="硬件编号" prop="hardwareTypeCode">
-              <el-input
-                v-model="form.hardwareTypeCode"
-                placeholder="请输入硬件编号"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label-width="30">
-              <el-switch
-                v-model="autoGenFlag"
-                active-color="#13ce66"
-                active-text="自动生成"
-                @change="handleAutoGenChange(autoGenFlag)"
-                v-if="optType != 'view'"
-              >
-              </el-switch>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="硬件名称" prop="hardwareTypeName">
-          <el-input
-            v-model="form.hardwareTypeName"
-            placeholder="请输入硬件名称"
-          />
-        </el-form-item>
-        <el-form-item label="硬件层级" prop="level">
-          <el-input-number
-            v-model="form.level"
-            controls-position="right"
-            @change="handleChange"
-            :min="1"
-            :max="10"
-          ></el-input-number>
-        </el-form-item>
-        <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
-            v-model="form.remark"
-            type="textarea"
-            placeholder="请输入内容"
-          />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">提 交</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import {
-  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"],
-
-  data() {
-    return {
-      //自动生成编码
-      autoGenFlag: false,
-      optType: undefined,
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 设备维修单表格数据
-      repairList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 硬件状态
-      radio: "1",
-      // 硬件层级
-      num: 1,
-      // 查询参数
-      queryParams: {
-        current: 1,
-        size: 10,
-        hardwareTypeCode: "",
-        hardwareTypeName: "",
-        enableFlag: "",
-      },
-      // 表单参数
-      form: {
-        parentTypeId: 0,
-      },
-      EditId: null, //编辑传递id
-      // 表单校验
-      rules: {
-        hardwareTypeCode: [
-          { required: true, message: "硬件编号不能为空", trigger: "blur" },
-        ],
-        hardwareTypeName: [
-          { required: true, message: "硬件名称不能为空", trigger: "blur" },
-        ],
-      },
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询硬件类型列表 */
-    getList() {
-      this.loading = true;
-      listHanrware(this.queryParams).then((response) => {
-        this.repairList = response.data.records;
-        this.total = response.data.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 层级计数器函数
-    handleChange(value) {
-      console.log(value);
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        hardwareTypeCode: "",
-        hardwareTypeName: "",
-        level: "",
-        enableFlag: "",
-        remark: "",
-      };
-      this.autoGenFlag = false;
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.current = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      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.EditId = null;
-      this.title = "新增硬件类型";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      this.EditId = row.id || this.ids;
-      getHardwareTypeInfo(this.EditId).then((response) => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "编辑硬件类型";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          if (this.EditId != null) {
-            updateHardware(this.form).then((response) => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            this.form.parentTypeId = 0;
-            addHardwareType(this.form).then((response) => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.EditId = null;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const repairIds = row.id || this.ids;
-      this.$modal
-        .confirm('是否删除硬件编号为"' + repairIds + '"的硬件类型?')
-        .then(function () {
-          return delHardware(repairIds);
-        })
-        .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-        })
-        .catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download(
-        "dv/repair/export",
-        {
-          ...this.queryParams,
-        },
-        `repair_${new Date().getTime()}.xlsx`
-      );
-    },
-
-    //自动生成编码
-    handleAutoGenChange(autoGenFlag) {
-      if (autoGenFlag) {
-        genCode("HARDWARE_TYPE_CODE").then((response) => {
-          this.form.hardwareTypeCode = response;
-        });
-      } else {
-        this.form.hardwareTypeCode = null;
-      }
-    },
-  },
-};
-</script>
-<style scoped lang="scss" src="@/assets/styles/dialog-title.scss">
-</style>

+ 1 - 1
src/views/mes/job/jobm/NewOperations.vue

@@ -699,7 +699,7 @@ export default {
         // 插入一个默认的空选项
         const defaultOption = {
           sopId: null,
-          sopName: ''
+          sopName: '不使用sop模板  '
         };
 
         // 将默认选项添加到结果的最前面

+ 2 - 1
src/views/system/user/index.vue

@@ -481,6 +481,7 @@ export default {
     getTreeselect() {
       treeselect().then(response => {
         debugger;
+        console.log(response.data,'部门下拉树形结构')
         this.deptOptions = response.data;
       });
     },
@@ -669,4 +670,4 @@ export default {
     }
   }
 };
-</script>
+</script>