Parcourir la source

1.1440 产线管理添加产能,添加重复物料时,提交按钮一直转圈无法刷新
2.1487 工位管理 工位绑定设备弹窗数据改为多选

jiaxiaoqiang il y a 10 mois
Parent
commit
a24fe2370d

+ 122 - 128
src/views/base/modeling/production-line/components/capacity-page.vue

@@ -1,15 +1,11 @@
 <template>
-
-
   <div class="mainContentBox">
     <avue-form
       ref="formRef"
       v-model="form"
       :option="option"
       @submit="rowSave"
-    >
-
-    </avue-form>
+    />
     <avue-crud
       ref="crudRef"
       v-model:search="search"
@@ -34,7 +30,7 @@
           icon="el-icon-delete"
           :size="size"
           @click="multipleDelete"
-        >删除</el-button
+          >删除</el-button
         >
       </template>
     </avue-crud>
@@ -45,146 +41,144 @@
       @selected-sure="onSelectedFinish"
     />
   </div>
-
 </template>
 <script setup lang="ts">
-  import { ref, getCurrentInstance } from "vue";
-  import { useCrud } from "@/hooks/userCrud";
-  import ButtonPermKeys from "@/common/configs/buttonPermission";
-  import { useCommonStoreHook } from "@/store";
-
-  const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-  import { useDictionaryStore } from "@/store";
-  import {
-    addStationDevice,
-  } from "@/api/station";
-  const test = () => {
-    isShowTable.value = true;
-    tableType.value = tableType.value == 1 ? 2 : 1;
-  };
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook } from "@/store";
 
-  // 传入一个url,后面不带/
-  const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/base/capacity",
-    });
-  const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
-    Methords; //增删改查
-  const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-  const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
-  // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
-  // const permission = reactive({
-  //   delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
-  //   addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
-  //   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
-  //   menu: true,
-  // });
-  function rowSave(form,done,loading) {
-    console.info(form);
-    createRow(form,done,loading);
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+import { useDictionaryStore } from "@/store";
+import { addStationDevice } from "@/api/station";
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
 
-  }
-  const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-
-  onMounted(() => {
-    // console.log("crudRef", crudRef)
-    search.value.productionLineId=props.productionLineId;
-    dataList();
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/base/capacity",
   });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+// checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
+// const permission = reactive({
+//   delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
+//   addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
+//   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
+//   menu: true,
+// });
+function rowSave(form, done) {
+  createRow(form, done, done);
+}
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  search.value.productionLineId = props.productionLineId;
+  dataList();
+});
 
-  /**
-   * 上传excel相关
-   */
-  const uploadRef = ref(null);
-  const uploadFinished = () => {
-    // 上传完成后的刷新操作
-    page.currentPage = 1;
-    dataList();
-  };
-  const importExcelData = () => {
-    if (uploadRef.value) {
-      uploadRef.value.show("/api/v1/base/stationDevice");
-    }
-  };
-  const ctableRef=ref(null);
-  const deviceList=()=>{
-    ctableRef.value.startSelect();
+/**
+ * 上传excel相关
+ */
+const uploadRef = ref(null);
+const uploadFinished = () => {
+  // 上传完成后的刷新操作
+  page.currentPage = 1;
+  dataList();
+};
+const importExcelData = () => {
+  if (uploadRef.value) {
+    uploadRef.value.show("/api/v1/base/stationDevice");
   }
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    selection: true,
-    labelWidth: 200,
-    span: 20,
-    column: [{
+};
+const ctableRef = ref(null);
+const deviceList = () => {
+  ctableRef.value.startSelect();
+};
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: true,
+  labelWidth: 200,
+  span: 20,
+  column: [
+    {
       label: "物料编号",
       prop: "materialCode",
-      display:false,
+      display: false,
     },
-      {
-        label: "物料名称",
-        prop: "materialName",
-        rules: [{
+    {
+      label: "物料名称",
+      prop: "materialName",
+      rules: [
+        {
           required: true,
           message: "请选择物料名称",
-          trigger: "blur"
-        }],
-        click: ({ value, column }) => {
-          ctableRef.value.startSelect();
-
+          trigger: "change",
         },
+      ],
+      click: ({ value, column }) => {
+        ctableRef.value.startSelect();
       },
-      {
-        label: "产线",
-        prop: "productionLineName",
-        display:false,
-      },
-      {
-        label: "产线id",
-        prop: "productionLineId",
-        display:false,
-        hide:true
-      },
-      {
-        label: "产能",
-        prop: "capacity",
-        type:"number",
-        rules: [{
+    },
+    {
+      label: "产线",
+      prop: "productionLineName",
+      display: false,
+    },
+    {
+      label: "产线id",
+      prop: "productionLineId",
+      display: false,
+      hide: true,
+    },
+    {
+      label: "产能",
+      prop: "capacity",
+      type: "number",
+      rules: [
+        {
           required: true,
           message: "请填写产能",
-          trigger: "blur"
-        }],
-      },
-      {
-        label: "最小齐套数",
-        prop: "minCapacity",
-        type:"number",
-        rules: [{
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "最小齐套数",
+      prop: "minCapacity",
+      type: "number",
+      rules: [
+        {
           required: true,
           message: "请填写产能",
-          trigger: "blur"
-        }],
-      },],
-    delBtn: false,
-    editBtn: false,
-    viewBtn: false,
-    addBtn:false,
-    menu: false,
-  });
-  const props = defineProps({
-    productionLineId: {
-      type: Number,
-      default: () => {
-        return 0;
-      }
-    }
-  })
-
-  const onSelectedFinish=(selectedValue)=>{
+          trigger: "blur",
+        },
+      ],
+    },
+  ],
+  delBtn: false,
+  editBtn: false,
+  viewBtn: false,
+  addBtn: false,
+  menu: false,
+});
+const props = defineProps({
+  productionLineId: {
+    type: String,
+    default: "",
+  },
+});
 
-    form.value.materialCode=selectedValue.materialCode;
-    form.value.materialName=selectedValue.materialName;
+const onSelectedFinish = (selectedValue) => {
+  form.value.materialCode = selectedValue.materialCode;
+  form.value.materialName = selectedValue.materialName;
 
-    form.value.productionLineId=props.productionLineId;
-  }
+  form.value.productionLineId = props.productionLineId;
+};
 </script>
-

+ 102 - 113
src/views/base/modeling/station/components/station-page.vue

@@ -17,11 +17,8 @@
       @selection-change="selectionChange"
     >
       <template #menu-left="{ size }">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          @click="deviceList"
-        >新增</el-button
+        <el-button type="primary" icon="el-icon-plus" @click="deviceList"
+          >新增</el-button
         >
         <el-button
           :disabled="toDeleteIds.length < 1"
@@ -29,7 +26,7 @@
           icon="el-icon-delete"
           :size="size"
           @click="multipleDelete"
-        >删除</el-button
+          >删除</el-button
         >
       </template>
     </avue-crud>
@@ -37,129 +34,121 @@
       ref="ctableRef"
       tableTitle="设备列表"
       tableType="DEVICE"
-      @selected-sure="onSelectedFinish"
+      :multiple="true"
+      @select-multiple-sure="onSelectedFinish"
     />
   </div>
 </template>
 <script setup lang="ts">
-  import { ref, getCurrentInstance } from "vue";
-  import { useCrud } from "@/hooks/userCrud";
-  import ButtonPermKeys from "@/common/configs/buttonPermission";
-  import { useCommonStoreHook } from "@/store";
-
-  const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-  import { useDictionaryStore } from "@/store";
-  import { columns } from "./columns";
-  import {
-    addStationDevice,
-  } from "@/api/station";
-  const test = () => {
-    isShowTable.value = true;
-    tableType.value = tableType.value == 1 ? 2 : 1;
-  };
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook } from "@/store";
 
-  // 传入一个url,后面不带/
-  const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/base/stationDevice",
-    });
-  const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
-    Methords; //增删改查
-  const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-  const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
-  // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
-  // const permission = reactive({
-  //   delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
-  //   addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
-  //   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
-  //   menu: true,
-  // });
-  function rowSave(form,done,loading) {
-    createRow(form,done,loading);
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+import { useDictionaryStore } from "@/store";
+import { columns } from "./columns";
+import { addStationDevice } from "@/api/station";
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
 
-  }
-  const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-
-  onMounted(() => {
-    // console.log("crudRef", crudRef)
-    search.value.stationId = props.stationId;
-    dataList();
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/base/stationDevice",
   });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+// checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
+// const permission = reactive({
+//   delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
+//   addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
+//   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
+//   menu: true,
+// });
+function rowSave(form, done, loading) {
+  createRow(form, done, loading);
+}
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  search.value.stationId = props.stationId;
+  dataList();
+});
 
-  const ctableRef=ref(null);
-  const deviceList=()=>{
-    ctableRef.value.startSelect();
-  }
+const ctableRef = ref(null);
+const deviceList = () => {
+  ctableRef.value.startSelect();
+};
 
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    selection: true,
-    column: columns,
-    saveBtn:false,
-    delBtn: false,
-    editBtn: false,
-    addBtn: false,
-    viewBtn: false,
-    menu: false,
-  });
-  const props = defineProps({
-    stationId: {
-      type: Number,
-      default: () => {
-        return 0;
-      }
-    }
-  })
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: true,
+  column: columns,
+  saveBtn: false,
+  delBtn: false,
+  editBtn: false,
+  addBtn: false,
+  viewBtn: false,
+  menu: false,
+});
+const props = defineProps({
+  stationId: {
+    type: Number,
+    default: () => {
+      return 0;
+    },
+  },
+});
 
-  watch?.(
-    () => props.stationId,
-    (newVal: string) => {
-      search.value.stationId = newVal
-      dataList()
-    }
-  );
-  const onSelectedFinish=(selectedValue)=>{
-    for(let i=0;i<data.value.length;i++){
-      if(data.value[i].deviceNo===selectedValue.deviceNo){
-        ElMessage({
-          message: "设备已绑定过,无需再次绑定",
-          type: "error",
-        });
-        return false;
-      }
-    }
-    if(selectedValue.deviceNo==undefined||selectedValue.deviceNo==null){
+watch?.(
+  () => props.stationId,
+  (newVal: string) => {
+    search.value.stationId = newVal;
+    dataList();
+  }
+);
+const onSelectedFinish = (selectedValue: string[]) => {
+  for (let i = 0; i < data.value.length; i++) {
+    if (selectedValue.includes(data.value[i].deviceNo)) {
       ElMessage({
-        message: "没有选择设备",
+        message: "设备已绑定过,无需再次绑定",
         type: "error",
       });
       return false;
     }
-    const selectDevice=ref({
-      deviceNo: selectedValue.deviceNo,
-      stationId:props.stationId,
+  }
+  if (selectedValue.length < 1) {
+    ElMessage({
+      message: "没有选择设备",
+      type: "error",
+    });
+    return false;
+  }
+  const selectDevice = ref({
+    deviceNos: selectedValue,
+    stationId: props.stationId,
   });
 
-    addStationDevice(selectDevice.value).then(
-      (data:any)=>{
-        if(data.code==="200") {
-          ElMessage({
-            message: data.msg,
-            type: "success",
-          });
-          search.value.stationId = props.stationId;
-          dataList()
-        }
-        else {
-          ElMessage({
-            message: data.msg,
-            type: "error",
-          });
-        }
-      }
-    );
-
-  }
+  addStationDevice(selectDevice.value).then((data: any) => {
+    if (data.code === "200") {
+      ElMessage({
+        message: data.msg,
+        type: "success",
+      });
+      search.value.stationId = props.stationId;
+      dataList();
+    } else {
+      ElMessage({
+        message: data.msg,
+        type: "error",
+      });
+    }
+  });
+};
 </script>
-