Sfoglia il codice sorgente

Merge branch 'master' of http://192.168.101.4:3000/jiaxiaoqiang/JG-ADMIN-TEMP

qinhb 1 anno fa
parent
commit
b9bb04cbf5

+ 6 - 7
src/hooks/userCrud.ts

@@ -135,7 +135,7 @@ export const useCrud = (config?: UseCrudConfig) => {
           data.value = res?.data || [];
         }
         for (let i = 0; i < data.value.length; i++) {
-          data.value[i].$cellEdit=true;
+          data.value[i].$cellEdit = true;
         }
         console.info(data);
         config?.done && config?.done();
@@ -224,22 +224,21 @@ export const useCrud = (config?: UseCrudConfig) => {
      * */
     multipleUpdate: async () => {
       try {
+        // 由于数据带有$开头的属性,所以需要处理下,改为只传id和sortNum。
+        const dtosArray: { id: string; sortNum: number }[] = [];
         for (let i = 0; i < data.value.length; i++) {
           let cur = page.value.currentPage ?? 1;
           cur = cur - 1;
           const size = page.value.pageSize ?? 10;
           let sortNum = cur * size;
           sortNum = sortNum + i;
-          console.log("sortNum", cur, size, sortNum);
-          data.value[i].sortNum = sortNum;
+
+          dtosArray.push({ id: data.value[i].id, sortNum: sortNum });
         }
-        const p = {
-          dtos: data.value,
-        };
         const res = await request({
           url: `${url.value}/batch-update`,
           method: "post",
-          data: p,
+          data: dtosArray,
         });
         Methords.dataList();
         config?.done && config?.done();

+ 2 - 1
src/store/modules/dictionary.ts

@@ -24,6 +24,7 @@ export const useDictionaryStore = defineStore("dictionaryStore", {
       "skill_requirements",
       "station_type",
       "danwei_type",
+      "trace_type",
     ],
     dicts: [],
   }),
@@ -40,6 +41,6 @@ export const useDictionaryStore = defineStore("dictionaryStore", {
 });
 
 export function useDictionaryStoreHook() {
-	// console.log('dicts:',useDictionaryStore(store))
+  // console.log('dicts:',useDictionaryStore(store))
   return useDictionaryStore(store);
 }

+ 79 - 55
src/views/base/craftManagement/process/index.vue

@@ -32,7 +32,7 @@
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item
-                @click="downloadTemplate('/api/v1/plan/order/template')"
+                @click="downloadTemplate('/api/v1/op/baseOperation/template')"
               >
                 <i-ep-download />下载模板
               </el-dropdown-item>
@@ -42,12 +42,12 @@
             </el-dropdown-menu>
           </template>
         </el-dropdown>
-        <el-button
+        <!-- <el-button
           class="ml-3"
           @click="exportData('/api/v1/plan/order/export')"
         >
           <template #icon> <i-ep-download /> </template>导出
-        </el-button>
+        </el-button> -->
       </template>
     </avue-crud>
     <ExcelUpload ref="uploadRef" @finished="uploadFinished" />
@@ -98,7 +98,7 @@ const uploadFinished = () => {
 };
 const importExcelData = () => {
   if (uploadRef.value) {
-    uploadRef.value.show("/api/v1/plan/order/import");
+    uploadRef.value.show("/api/v1/op/baseOperation/import");
   }
 };
 
@@ -116,20 +116,20 @@ const switchOp = [
 option.value = Object.assign(option.value, {
   selection: true,
   column: [
-    {
-      label: "工序OP号",
-      prop: "operationOp",
-      search: true,
-      span: 12,
-      dispaly: false,
-      rules: [
-        {
-          required: true,
-          message: "工序OP号不能为空",
-          trigger: "blur",
-        },
-      ],
-    },
+    // {
+    //   label: "工序OP号",
+    //   prop: "operationOp",
+    //   search: true,
+    //   span: 12,
+    //   dispaly: false,
+    //   rules: [
+    //     {
+    //       required: true,
+    //       message: "工序OP号不能为空",
+    //       trigger: "blur",
+    //     },
+    //   ],
+    // },
     {
       label: "工序名称",
       prop: "operationName",
@@ -316,15 +316,15 @@ option.value = Object.assign(option.value, {
       dicData: switchOp,
       value: 0,
     },
-    {
-      label: "是否外协",
-      prop: "externalCooperation",
-      span: 8,
-	  hide: true,
-      type: "switch",
-      dicData: switchOp,
-      value: 0,
-    },
+   //  {
+   //    label: "是否外协",
+   //    prop: "externalCooperation",
+   //    span: 8,
+	  // hide: true,
+   //    type: "switch",
+   //    dicData: switchOp,
+   //    value: 0,
+   //  },
     {
       label: "是否首检",
       prop: "firstCheck",
@@ -352,24 +352,24 @@ option.value = Object.assign(option.value, {
       dicData: switchOp,
       value: 0,
     },
-    {
-      label: "是否工艺数量",
-      prop: "common",
-      span: 8,
-	  hide: true,
-      type: "switch",
-      dicData: switchOp,
-      value: 0,
-    },
-    {
-      label: "是否分批",
-      prop: "batch",
-      span: 8,
-	  hide: true,
-      type: "switch",
-      dicData: switchOp,
-      value: 0,
-    },
+   //  {
+   //    label: "是否工艺数量",
+   //    prop: "common",
+   //    span: 8,
+	  // hide: true,
+   //    type: "switch",
+   //    dicData: switchOp,
+   //    value: 0,
+   //  },
+   //  {
+   //    label: "是否分批",
+   //    prop: "batch",
+   //    span: 8,
+	  // hide: true,
+   //    type: "switch",
+   //    dicData: switchOp,
+   //    value: 0,
+   //  },
     {
       label: "是否合批",
       prop: "merge",
@@ -378,35 +378,59 @@ option.value = Object.assign(option.value, {
       type: "switch",
       dicData: switchOp,
       value: 0,
+	  //联动隐藏
+	  control:  (val, form) =>{
+	  		  return {
+	  		  	mergeNum: {
+	  		  	  display: val == 1 ? true : false
+	  		  	}
+	  		  }
+	  }
     },
+	{
+	  label: "是否委外",
+	  prop: "outsourcing",
+	  span: 8,
+	  hide: true,
+	  type: "switch",
+	  dicData: switchOp,
+	  // click: ({ column,value }) => {
+		 //  if(value == 0){
+			// console.log('column',column)  
+		 //  }
+	  // },
+	  //联动隐藏
+	  control:  (val, form) =>{
+		  return {
+		  	outTime: {
+		  	  display: val == 1 ? true : false
+		  	}
+		  }
+	  },
+	  value: 0,
+	},
     {
       label: "合批数量",
       prop: "mergeNum",
       span: 5,
 	  hide: true,
-      value: 0,
-    },
-    {
-      label: "是否委外",
-      prop: "outsourcing",
-      span: 8,
-	  hide: true,
-      type: "switch",
-      dicData: switchOp,
+	  display: false,
       value: 0,
     },
     {
       label: "分批数量",
       prop: "batchNum",
       span: 5,
+	  display: false,
 	  hide: true,
       value: 0,
       // slot:true, // 自定义列
     },
     {
-      label: "外时间",
+      label: "外时间",
       prop: "outTime",
       span: 5,
+	  display: false,
 	  hide: true,
       value: 0,
       // slot:true, // 自定义列

+ 48 - 20
src/views/base/craftManagement/route/components/bottomTable.vue

@@ -1,21 +1,29 @@
 <template>
-  <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"
-    @selection-change="selectionChange"
-    @sortable-change="onSortChange"
-    @search-change="searchChange"
-    @search-reset="resetChange"
-    @size-change="dataList"
-    @current-change="dataList"
-  />
+  <div>
+    <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"
+      @selection-change="selectionChange"
+      @sortable-change="onSortChange"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+    />
+    <CommonTable
+      ref="commonTableRef"
+      :tableTitle="tableTitle"
+      :tableType="commonTableType"
+      @selected-sure="onSelectedFinish"
+    />
+  </div>
 </template>
 <script setup>
 import { ref, getCurrentInstance } from "vue";
@@ -50,7 +58,11 @@ const { selectionChange, multipleUpdate } = Methords; //选中和批量删除事
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
 const startCreat = () => {
-  crudRef.value && crudRef.value.rowAdd();
+  if (props.tableType === "wuliaocaiji") {
+    commonTableRef.value && commonTableRef.value.startSelect();
+  } else {
+    crudRef.value && crudRef.value.rowAdd();
+  }
 };
 
 const saveSortData = async () => {
@@ -65,6 +77,21 @@ const onSortChange = () => {
   });
 };
 
+// ============公共弹窗table选择相关,物料采集等使用===============
+const commonTableRef = ref({});
+const commonTableType = ref("MARTERIAL");
+const onSelectedFinish = (itemValue) => {
+  crudRef.value && crudRef.value.rowAdd();
+  if (props.tableType === "wuliaocaiji") {
+    form.value.itemName = itemValue.materialName;
+    form.value.itemCode = itemValue.materialCode;
+    form.value.itemModel = itemValue.spec;
+    form.value.num = 1;
+    form.value.traceType = "S";
+    form.value.unit = itemValue.unitDictValue;
+  }
+};
+
 onMounted(() => {
   url.value = tableConfig[props.tableType].url;
   option.value = Object.assign(option.value, {
@@ -83,9 +110,10 @@ watch(
     console.log("faslegb");
     url.value = tableConfig[props.tableType].url;
     option.value = Object.assign(option.value, {
-      menu: false,
-      highlightCurrentRow: true,
       addBtn: false,
+      searchShow: false,
+      header: false,
+      sortable: true,
       column: tableConfig[props.tableType].column,
     });
     dataList();

+ 111 - 29
src/views/base/craftManagement/route/components/configs.ts

@@ -30,55 +30,137 @@ export const getTableConfig = (id: string) => {
         { label: "下限值", prop: "lower" },
       ],
     },
-
-    FACTORY: {
-      url: "/api/v1/base/workShop",
+    //工序物料
+    wuliaocaiji: {
+      url: "/api/v1/op/operationItem",
       column: [
         {
-          label: "车间名称",
-          prop: "name",
+          label: "工序id",
+          prop: "operationId",
+          display: false,
+          hide: true,
+          value: id,
+        },
+        { label: "物料名称", prop: "itemName" },
+        { label: "物料编码", prop: "itemCode" },
+        { label: "物料规格", prop: "itemModel" },
+        { label: "所需数量", prop: "num" },
+        {
+          label: "追溯类型",
+          prop: "traceType",
           search: true,
+          filterable: true,
+          type: "select",
+          dataType: "string",
+          dicData: dicts.trace_type,
+          props: { label: "dictLabel", value: "dictValue" },
         },
         {
-          label: "车间负责人",
-          prop: "manager",
+          label: "单位",
+          prop: "unit",
+          search: true,
+          filterable: true,
+          type: "select",
+          dataType: "string",
+          dicData: dicts.danwei_type,
+          props: { label: "dictLabel", value: "dictValue" },
+        },
+        {
+          label: "是否需要",
+          prop: "isTrace",
+          type: "radio", //类型为单选框
+          dicData: [
+            {
+              label: "需采集物料",
+              value: 1,
+            },
+            {
+              label: "非必须采集物料",
+              value: 0,
+            },
+          ],
+          value: 1,
           rules: [
             {
               required: true,
-              message: "请选择厂区负责人",
+              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: "position",
         },
+      ],
+    },
+    dianjian: {
+      url: `/api/v1/op/operationCheck`,
+      column: [
         {
-          label: "所属工厂",
-          prop: "factoryName",
+          label: "工序id",
+          prop: "operationId",
           display: false,
+          hide: true,
+          value: id,
         },
+        { label: "工序点检项名称", prop: "checkName" },
+        { label: "工序点检项编码", prop: "checkCode" },
+        { label: "内容", prop: "content" },
         {
-          label: "车间描述",
-          prop: "remark",
+          label: "单位",
+          prop: "unit",
+          search: true,
+          filterable: true,
+          type: "select",
+          dataType: "string",
+          dicData: dicts.danwei_type,
+          props: { label: "dictLabel", value: "dictValue" },
         },
+        { label: "标准值", prop: "standard" },
+        { label: "上限值", prop: "upper" },
+        { label: "下限值", prop: "lower" },
+      ],
+    },
+    shebeijilu: {
+      url: "/api/v1/op/operationEquit",
+      column: [
         {
-          label: "创建人",
-          prop: "creator",
+          label: "工序id",
+          prop: "operationId",
           display: false,
+          hide: true,
+          value: id,
         },
+        { label: "所需数量", prop: "num" },
         {
-          label: "创建时间",
-          prop: "created",
-          display: false,
+          label: "设备类型",
+          prop: "equitType",
+          search: true,
+          filterable: true,
+          type: "select",
+          dataType: "string",
+          dicData: dicts.device_type,
+          props: { label: "dictLabel", value: "dictValue" },
+        },
+        {
+          label: "必须采集",
+          prop: "collection",
+          type: "radio", //类型为单选框
+          dicData: [
+            {
+              label: "必须",
+              value: 1,
+            },
+            {
+              label: "非必须",
+              value: 0,
+            },
+          ],
+          value: 1,
+          rules: [
+            {
+              required: true,
+              message: "是否必须采集",
+              trigger: "blur",
+            },
+          ],
         },
       ],
     },
@@ -121,7 +203,7 @@ export const comTypes: comType[] = [
   },
   {
     compentName: "铭牌绑定",
-    compentType: "mingpai",
+    compentType: "c",
   },
   {
     compentName: "多媒体采集",

+ 23 - 8
src/views/base/craftManagement/route/components/processComponent.vue

@@ -53,10 +53,7 @@
     </div>
     <div class="binContainer">
       <div v-if="isChanged || selectIndex === -1">
-        <el-empty
-          :image-size="200"
-          description="请先保存组件,然后再进行操作"
-        />
+        <el-empty :image-size="200" :description="getTipContent()" />
       </div>
       <div v-else>
         <div class="tipTitle">{{ tipTitle }}</div>
@@ -105,7 +102,6 @@ const loadTopList = () => {
 
 onMounted(async () => {
   await loadTopList();
-  isChanged.value = false;
 });
 
 // 顶部====================
@@ -140,13 +136,18 @@ const handleCommand = (itme) => {
 const clickToolCom = (com, index) => {
   selectIndex.value = index;
   currentCom.value = com;
-
-  tableType.value = com.compentType;
+  if (com.compentType === "mingpai" || com.compentType === "duomeiticaiji") {
+    isChanged.value = true;
+  } else {
+    tableType.value = com.compentType;
+    isChanged.value = false;
+  }
 };
 
 const onUpdate = () => {
   console.log("update");
   isChanged.value = true;
+  selectIndex.value = -1;
 };
 
 const clickDelete = (index) => {
@@ -171,6 +172,20 @@ const creatNewData = () => {
 const saveSortData = () => {
   bottomTableRef.value && bottomTableRef.value.saveSortData();
 };
+
+const getTipContent = (itemValue) => {
+  let str = "";
+  if (isChanged.value) {
+    if (selectIndex.value === -1) {
+      str = "请先保存组件,然后再进行操作";
+    } else {
+      str = "标准组件无需编辑";
+    }
+  } else {
+    str = "请先选择组件";
+  }
+  return str;
+};
 </script>
 
 <style lang="scss" scoped>
@@ -259,7 +274,7 @@ const saveSortData = () => {
 }
 
 .binContainer {
-  height: calc(100vh - 165px);
+  height: calc(100vh - 280px);
   width: 100%;
   background-color: #f5f7f9;
   overflow-y: auto;

+ 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>

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

@@ -0,0 +1,197 @@
+<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",
+        rules: [{
+          required: true,
+          message: "请选择物料名称",
+          trigger: "blur"
+        }],
+        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: [{
+          required: true,
+          message: "请填写产能",
+          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;
+      }
+    }
+  })
+
+  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({

+ 10 - 3
src/views/demo/hooksDemo.vue

@@ -2,7 +2,14 @@
   <div>{{ form }}</div>
   <div>{{ search }}</div>
   <el-button @click="test">测试公共弹窗</el-button>
-  <el-button v-debounce:click="testDebunce">测试防抖截流</el-button>
+  <el-button
+    v-debounce:click="
+      () => {
+        testDebunce('这是传递的参数');
+      }
+    "
+    >测试防抖截流</el-button
+  >
   <div class="mainContentBox">
     <avue-crud
       ref="crudRef"
@@ -84,8 +91,8 @@ const onSelectedFinish = (selectedValue) => {
   console.log("onSelectedFinish", selectedValue);
 };
 
-const testDebunce = () => {
-  console.log("执行了事件");
+const testDebunce = (args) => {
+  console.log("执行了事件", args);
 };
 
 // 传入一个url,后面不带/