lupeng пре 1 година
родитељ
комит
1ec36c24d3

+ 0 - 115
src/views/base/modeling/production-line/capacity/columns.ts

@@ -1,115 +0,0 @@
-import { useDictionaryStoreHook } from "@/store";
-const { dicts } = useDictionaryStoreHook();
-export const columns = [
-  {
-    label: "物料编号",
-    prop: "materialCode",
-    search: true,
-    rules: [{
-      required: true,
-      message: "请选择物料编号",
-      trigger: "blur"
-    }],
-  },
-  {
-    label: "产能",
-    prop: "capacity",
-    search: true,
-    rules: [{
-      required: true,
-      message: "请填写产能",
-      trigger: "blur"
-    }],
-  },
-  {
-    label: "工位类型",
-    prop: "stationDictValue",
-    search: true,
-    rules: [{
-      required: true,
-      message: "请选择工位类型",
-      trigger: "blur"
-    }],
-    type: 'select',
-    dicData:dicts.station_type,
-    searchClearable: false, //可清空的输入框,默认为true
-    filterable: true, //添加filterable属性即可启用搜索功能
-    props: {
-      label: "dictLabel", // 下拉菜单显示的字段
-      value: "dictValue" // 下拉菜单值的字段
-    },
-  },
-  {
-    label: "工位操作方式",
-    prop: "operateDictValue",
-    rules: [{
-      required: true,
-      message: "请选择工位方式",
-      trigger: "blur"
-    }],
-    type: 'select',
-    dicData:dicts.station_operate_type,
-    props: {
-      label: "dictLabel", // 下拉菜单显示的字段
-      value: "dictValue" // 下拉菜单值的字
-    },
-  },
-  {
-    label: "工位负责人",
-    prop: "manager",
-    rules: [{
-      required: true,
-      message: "请选择工位负责人",
-      trigger: "blur"
-    }],
-    type: 'select',
-    dicUrl:import.meta.env.VITE_APP_BASE_API+"/api/v1/sys/user/list",
-    dicMethod:"post",
-    props: {
-      label: "userName", // 下拉菜单显示的字段
-      value: "userName" // 下拉菜单值的字段
-    },
-  },
-  {
-    label: "所属产线",
-    prop: "productionLineName",
-    display:false
-  },
-  {
-    label: "工位地址",
-    prop: "position",
-    rules: [{
-      required: true,
-      message: "请填写工位地址",
-      trigger: "blur"
-    }],
-  },
-  {
-    label: "工位IP地址",
-    prop: "stationIp",
-    rules: [{
-      required: true,
-      message: "请填写工位IP地址",
-      trigger: "blur",
-    }],
-
-  },
-  {
-    label: "工位描述",
-    prop: "remark",
-    type: 'textarea',
-    span: 24,
-  },
-  {
-    label: "创建人",
-    prop: "creator",
-    display:false
-  },
-  {
-    label: "创建时间",
-    prop: "created",
-    display:false
-  },
-]
-
-

+ 0 - 6
src/views/base/modeling/production-line/capacity/index.vue

@@ -1,6 +0,0 @@
-<template>
-  <avue-form ref="formRef"
-             :option="option"
-             v-model="form"
-             @submit="handleSubmit"></avue-form>
-</template>

+ 190 - 0
src/views/base/modeling/production-line/components/capacity-page.vue

@@ -0,0 +1,190 @@
+<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"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
+      search-option="false"
+    >
+      <template #menu-left="{ size }">
+        <el-button
+          :disabled="toDeleteIds.length < 1"
+          type="danger"
+          icon="el-icon-delete"
+          :size="size"
+          @click="multipleDelete"
+        >删除</el-button
+        >
+      </template>
+    </avue-crud>
+    <CommonTable
+      ref="ctableRef"
+      tableTitle="物料列表"
+      tableType="MARTERIAL"
+      @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 { useDictionaryStoreHook } from "@/store";
+  import { columns } from "./columns";
+  import {
+    addStationDevice,
+  } from "@/api/station";
+  const test = () => {
+    isShowTable.value = true;
+    tableType.value = tableType.value == 1 ? 2 : 1;
+  };
+
+  // 传入一个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 crudRef = ref(null); //crudRef.value 获取avue-crud对象
+
+  onMounted(() => {
+    // console.log("crudRef", crudRef)
+    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();
+  }
+  // 设置表格列或者其他自定义的option
+  option.value = Object.assign(option.value, {
+    selection: true,
+    labelWidth: 200,
+    span: 20,
+    column: [{
+      label: "物料编号",
+      prop: "materialCode",
+      display:false,
+    },
+      {
+        label: "物料名称",
+        prop: "materialName",
+        click: ({ value, column }) => {
+          ctableRef.value.startSelect();
+
+        },
+      },
+      {
+        label: "产线",
+        prop: "productionLineName",
+        display:false,
+      },
+      {
+        label: "产线id",
+        prop: "productionLineId",
+        display:false,
+        hide:true
+      },
+      {
+        label: "产能",
+        prop: "capacity",
+        rules: [{
+          required: true,
+          message: "请填写产能",
+          trigger: "blur"
+        }],
+      },
+      {
+        label: "最小齐套数",
+        prop: "minCapacity",
+        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;
+      }
+    }
+  })
+
+  watch?.(
+    () => props.productionLineId,
+    (newVal: string) => {
+      search.value.productionLineId = newVal
+      dataList()
+    }
+  );
+  const onSelectedFinish=(selectedValue)=>{
+
+    form.value.materialCode=selectedValue.materialCode;
+    form.value.materialName=selectedValue.materialName;
+
+    form.value.productionLineId=props.productionLineId;
+  }
+</script>
+

+ 51 - 0
src/views/base/modeling/production-line/components/columns.ts

@@ -0,0 +1,51 @@
+import { useDictionaryStoreHook } from "@/store";
+const { dicts } = useDictionaryStoreHook();
+export const columns = [
+  {
+    label: "物料编号",
+    prop: "materialCode",
+    hide:true,
+    display:false
+  },
+  {
+    label: "物料名称",
+    prop: "materialName",
+    rules: [{
+      required: true,
+      message: "请选择物料名称",
+      trigger: "blur"
+    }],
+    click: ({ value, column }) => {
+      if(column.boxType){
+        dialog.visible = true
+      }
+    },
+  },
+  {
+    label: "产线",
+    prop: "productionLineName",
+    hide:true,
+    display:false
+  },
+  {
+    label: "产能",
+    prop: "capacity",
+    rules: [{
+      required: true,
+      message: "请填写产能",
+      trigger: "blur"
+    }],
+  },
+  {
+    label: "最小齐套数",
+    prop: "minCapacity",
+    rules: [{
+      required: true,
+      message: "请填写产能",
+      trigger: "blur"
+    }],
+  },
+
+]
+
+

+ 15 - 2
src/views/base/modeling/production-line/index.vue

@@ -34,6 +34,14 @@
         >产能</el-button>
       </template>
     </avue-crud>
+    <el-dialog
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="900px"
+      @close="dialog.visible = false"
+    >
+      <capacity-page  :productionLineId="productionLine.id"/>
+    </el-dialog>
   </div>
 </template>
 <script setup>
@@ -47,7 +55,10 @@
     isShowTable.value = true;
     tableType.value = tableType.value == 1 ? 2 : 1;
   };
-
+  const dialog = reactive({
+    title: "产能",
+    visible: false,
+  });
   // 传入一个url,后面不带/
   const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
     useCrud({
@@ -86,8 +97,10 @@
       uploadRef.value.show("/api/v1/plan/order/import");
     }
   };
+  const productionLine=ref(null);
   const binding=(row)=>{
-
+    productionLine.value=row;
+    dialog.visible=true;
   }
   // 设置表格列或者其他自定义的option
   option.value = Object.assign(option.value, {

+ 6 - 6
src/views/base/modeling/station/columns.ts

@@ -3,7 +3,7 @@ const { dicts } = useDictionaryStoreHook();
 export const columns = [
   {
     label: "工位编号",
-    prop: "code",
+    prop: "stationCode",
     search: true,
     rules: [{
       required: true,
@@ -40,11 +40,11 @@ export const columns = [
     },
   },
   {
-    label: "工位操作方式",
+    label: "操作方式",
     prop: "operateDictValue",
     rules: [{
       required: true,
-      message: "请选择工位方式",
+      message: "操作方式",
       trigger: "blur"
     }],
     type: 'select',
@@ -55,11 +55,11 @@ export const columns = [
     },
   },
   {
-    label: "工位负责人",
+    label: "负责人",
     prop: "manager",
     rules: [{
       required: true,
-      message: "请选择工位负责人",
+      message: "请选择负责人",
       trigger: "blur"
     }],
     type: 'select',
@@ -85,7 +85,7 @@ export const columns = [
     }],
   },
   {
-    label: "工位IP地址",
+    label: "IP地址",
     prop: "stationIp",
     rules: [{
       required: true,

+ 6 - 2
src/views/base/modeling/station/components/columns.ts

@@ -18,11 +18,11 @@ export const columns = [
   },
   {
     label: "设备类型",
-    prop: "device_type",
+    prop: "deviceType",
     search: true,
     rules: [{
       required: true,
-      message: "请选择工位类型",
+      message: "请选择设备类型",
       trigger: "blur"
     }],
     type: 'select',
@@ -34,6 +34,10 @@ export const columns = [
       value: "dictValue" // 下拉菜单值的字段
     },
   },
+  {
+    label: "规格",
+    prop: "specifications",
+  },
 ]
 
 

+ 0 - 2
src/views/base/modeling/station/components/station-page.vue

@@ -128,7 +128,6 @@
   watch?.(
     () => props.stationId,
     (newVal: string) => {
-      alert(newVal)
       search.value.stationId = newVal
       dataList()
     }
@@ -146,7 +145,6 @@
             message: data.msg,
             type: "success",
           });
-          router.back();
         }
         else {
           ElMessage({