Browse Source

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

jiaxiaoqiang 11 months ago
parent
commit
4b57ac68d6

+ 4 - 0
src/api/station/types.ts

@@ -10,6 +10,10 @@ export interface Station {
   code?: string;
   //上级产线编码
   parentCode?: string;
+
+  //是否启用
+  enable?: string;
+
 }
 
 

+ 9 - 1
src/components/Upload/FilesUpload.vue

@@ -73,6 +73,10 @@ const props = defineProps({
     type: Array<string>,
     default: () => [],
   },
+  fileNameList: {
+    type: Array<string>,
+    default: () => [],
+  },
   generatePdf: {
     type: Boolean,
     default: false,
@@ -85,6 +89,7 @@ const emit = defineEmits([
   "update:src",
   "update:srcList",
   "update:pdfList",
+  "update:fileNameList",
   "finished",
 ]);
 
@@ -92,6 +97,7 @@ const emit = defineEmits([
 const src = useVModel(props, "src", emit); //单文件用这个
 const srcList = useVModel(props, "srcList", emit); //多文件用这个
 const pdfList = useVModel(props, "pdfList", emit); //转换成pdf后的多文件用这个
+const fileNameList=useVModel(props,"fileNameList",emit);//多文件上传要显示文件名
 
 // el-upload 绑定的值
 const fileList = ref<UploadUserFile[]>([]);
@@ -108,6 +114,7 @@ const handleChange = async (uploadFile: UploadFile) => {
       src.value = res.data.fileUrl;
       pdfList.value.push(res.data.pdfUrl);
       srcList.value.push(res.data.fileUrl);
+      fileNameList.value.push(res.data.fileName);
       emit("finished");
     })
     .catch((err) => {
@@ -120,7 +127,8 @@ const deleteFile = (index: number) => {
   src.value = ""; //删除直接清空src即可,不用考虑是哪个,因为单文件不会有多个
   fileList.value.splice(index, 1);
   srcList.value.splice(index, 1);
-  pdfList.value.splice(index,1)
+  pdfList.value.splice(index,1);
+  fileNameList.value.splice(index,1)
 };
 
 const PDFVisible = ref(false);

+ 2 - 2
src/views/base/bom/components/version-drawing.vue

@@ -63,9 +63,9 @@
   //   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
   //   menu: true,
   // });
-  function rowSave(form2,done,loading) {
+  function rowSave(form2,done) {
     form.value.materialCode=props.materialCode;
-    createRow(form,done,loading);
+    createRow(form,done,done);
 
   }
 

+ 2 - 2
src/views/base/bom/components/version-page.vue

@@ -70,9 +70,9 @@
   //   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
   //   menu: true,
   // });
-  function rowSave(form2,done,loading) {
+  function rowSave(form2,done) {
     form.value.materialCode=props.materialCode;
-    createRow(form,done,loading);
+    createRow(form,done,done);
 
   }
 

+ 8 - 4
src/views/base/bom/index.vue

@@ -37,13 +37,15 @@
           @click="openMaterial"
           >新增</el-button>
           <el-select v-model="version" placeholder="请选择BOM版本" style="width:150px;margin-left:15px" @click="openBomVersion">
-          <el-option
+
+            <el-option
             v-for="item in options"
             :key="item.value"
             :label="item.label"
             :value="item.value"
           >
           </el-option>
+
         </el-select>
 
           </div>
@@ -341,9 +343,11 @@ const queryMaterialDetail = () => {
 };
 
 const selectedFinish=(selectedValue)=> {
-
-  version.value.value=selectedValue.bomVersion;
-  version.value.label=selectedValue.bomVersion;
+  console.info(selectedValue.bomVersion);
+  if (selectedValue.bomVersion!=undefined&&selectedValue.bomVersion!=null) {
+   version.value.value = selectedValue.bomVersion;
+   version.value.label = selectedValue.bomVersion;
+ }
   search.value.bomVersion = version.value.value;
   dataNoPageList();
 }

+ 55 - 8
src/views/base/information/index.vue

@@ -19,8 +19,10 @@
       <template #drawingPath-form="scope">
 <!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
         <FilesUpload
-            v-model:src="fileUrl"
+            v-model:src-list="srcList"
             v-model:pdf-list="pdfUrlList"
+            v-model:file-name-list="fileNameList"
+            :limit="10"
             :generate-pdf="true"
             @finished="testFiles"
         />
@@ -43,7 +45,6 @@
             :need-to-show-pdf="true"
             content-type="button"
             :is-link="true"
-            :show-pdf-number="1"
             :pdf-source="filePath + row.pdfPath"
         />
         <el-button @click="deleteRecord(row,index,done)"
@@ -74,10 +75,14 @@ const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 // 数据字典相关
 const { dicts } = useDictionaryStoreHook();
 const fileUrl = ref(""); //单文件
-const pdfUrlList = ref([])
+const pdfUrlList = ref([]);
+const srcList = ref([]);
+const fileNameList = ref([]);
 const testFiles =()=>{
-  form.value.pdfPath = pdfUrlList.value[0]
-  form.value.drawingPath = fileUrl.value
+  form.value.pdfPathList = pdfUrlList.value;
+  form.value.drawingPathList = srcList.value;
+  form.value.drawingPath = srcList.value[0];
+  form.value.fileNameList=fileNameList.value;
 }
 const filePath = import.meta.env.VITE_APP_UPLOAD_URL;
 const test = () => {
@@ -122,6 +127,7 @@ onMounted?.(() => {
 const onSelectedFinish = (selectedValue) => {
   form.value.associationCode=selectedValue.materialCode;
   form.value.associationName=selectedValue.materialCode;
+  form.value.materialCode=selectedValue.materialCode;
 };
 
 
@@ -144,17 +150,25 @@ option.value = Object.assign(option.value, {
   delBtn:false,
   menu:true,
   column: [
-    { label: "图纸编号", prop: "drawingCode", width: 180,search: true,overHidden: true ,rules: [{
+    { label: "图纸编号", prop: "drawingCode", width: 150,search: true,overHidden: true ,rules: [{
         required: true,
         message: "请填写图纸编号",
         trigger: "blur"
       }],},
-    { label: "图纸名称", prop: "drawingTitle", width: 180,overHidden: true,search: true ,rules: [{
+    { label: "图纸名称", prop: "drawingTitle", width: 150,overHidden: true,search: true ,rules: [{
         required: true,
         message: "请填写图纸名称",
         trigger: "blur"
       }],},
-    { label: "物料编号", prop: "associationCode", width: 180,search: true,overHidden: true ,editDisplay: false,
+    { label: "物料编号", prop: "associationCode", width: 150,search: true,overHidden: true ,editDisplay: false,addDisplay: false,
+      rules: [{
+        required: true,
+        message: "请填写物料编号",
+        trigger: "blur"
+      }],
+     },
+
+    { label: "物料编号", prop: "materialCode", width: 150,overHidden: true ,editDisplay: false,hide:true,
       rules: [{
         required: true,
         message: "请填写物料编号",
@@ -197,6 +211,37 @@ option.value = Object.assign(option.value, {
         trigger: "blur"
       }],
     },
+    {
+      label: "文件名称",
+      prop: "fileName",
+      span: 24,
+      width:120,
+      display:false,
+    },
+    {
+      label: "文件数组",
+      prop: "drawingPathList",
+      span: 24,
+      hide:true,
+      display:false,
+    },
+    {
+      label: "pdf数组",
+      prop: "pdfPathList",
+      span: 24,
+      hide:true,
+      display:false,
+
+    },
+
+    {
+      label: "文件名称数组",
+      prop: "fileNameList",
+      span: 24,
+      slot: true,
+      hide:true,
+      display:false,
+    },
     /*{ label: "文件",
       prop: "drawing",
       type: 'img',
@@ -221,6 +266,8 @@ option.value = Object.assign(option.value, {
     {
       label: "创建时间",
       prop: "created",
+      width:120,
+      overHidden:true,
       display:false,
     },
     { label: "启用状态",

+ 42 - 4
src/views/base/materials/components/drawing-page.vue

@@ -4,8 +4,10 @@
       <template #drawingPath="scope">
         <!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
         <FilesUpload
-          v-model:src="fileUrl"
+          v-model:src-list="srcList"
           v-model:pdf-list="pdfUrlList"
+          v-model:file-name-list="fileNameList"
+          :limit="10"
           :generate-pdf="true"
           @finished="testFiles"
         />
@@ -75,8 +77,10 @@ const test = () => {
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
 const testFiles =()=>{
-  form.value.pdfPath = pdfUrlList.value[0]
-  form.value.drawingPath = fileUrl.value
+  form.value.pdfPathList = pdfUrlList.value;
+  form.value.drawingPathList = srcList.value;
+  form.value.drawingPath = srcList.value[0];
+  form.value.fileNameList=fileNameList.value;
 }
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
@@ -101,6 +105,8 @@ const version=ref({
 const options=ref([]);
 const fileUrl = ref(""); //单文件
 const pdfUrlList = ref([]);
+const srcList = ref([]);
+const fileNameList = ref([]);
 import dictDataUtil from "@/common/configs/dictDataUtil";
 const getVersionDrawing=()=>{
   if(version.value.value!="0"){
@@ -109,7 +115,7 @@ const getVersionDrawing=()=>{
     dataList();
   }
 }
-function rowSave(form,done,loading) {
+function rowSave(form,done) {
   form.associationCode = props.materialCode;
   form.associationName=props.materialName;
   console.info("formRef.value",done);
@@ -128,6 +134,7 @@ function rowSave(form,done,loading) {
           message: data.msg,
           type: "error",
         });
+
       }
     }
   )
@@ -213,6 +220,37 @@ option.value = Object.assign(option.value, {
       }],
     },
     {
+      label: "文件名称",
+      prop: "fileName",
+      span: 24,
+      width:120,
+      display:false,
+    },
+    {
+      label: "文件数组",
+      prop: "drawingPathList",
+      span: 24,
+      hide:true,
+      display:false,
+    },
+    {
+      label: "pdf数组",
+      prop: "pdfPathList",
+      span: 24,
+      hide:true,
+      display:false,
+
+    },
+
+    {
+      label: "文件名称数组",
+      prop: "fileNameList",
+      span: 24,
+      slot: true,
+      hide:true,
+      display:false,
+    },
+    {
       label: "版本",
       prop: "drawingVersion",
       type: "number",

+ 168 - 1
src/views/base/materials/index.vue

@@ -83,6 +83,8 @@ import ButtonPermKeys from "@/common/configs/buttonPermission";
 import { useCommonStoreHook, useDictionaryStoreHook } from "@/store";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 import { columns } from "./columns";
+const { dicts } = useDictionaryStoreHook();
+
 
 const test = () => {
   isShowTable.value = true;
@@ -143,7 +145,172 @@ const importExcelData = () => {
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   selection: true,
-  column: columns,
+  column: [
+    { label: "物料编码", prop: "materialCode", width: 130,overHidden: true,search: true ,rules: [{
+        required: true,
+        editDisabled:false,
+        message: "请填写物料编码",
+        trigger: "blur"
+      }],},
+    { label: "物料名称", prop: "materialName", width: 140,overHidden: true,search: true ,rules: [{
+        required: true,
+        message: "请填写物料名称",
+        trigger: "blur"
+      }],},
+    {
+      label: "物料属性",
+      prop: "attributeDictValue",
+      search: true,
+      filterable: true,
+      type: 'select',
+      width: 100,overHidden: true,
+      dicData:dicts.material_properties,
+      props: { label: "dictLabel", value: "dictValue" },
+      rules: [{
+        required: true,
+        message: "请选择物料属性",
+        trigger: "blur"
+      }],
+    },
+    { label: "物料规格", prop: "spec", width: 100,overHidden: true,rules: [{
+        required: true,
+        message: "请填写物料规格",
+        trigger: "blur"
+      }], },
+    {
+      label: "单位",
+      prop: "unitDictValue",
+      filterable: true,
+      type: "select",
+      dicData:dicts.danwei_type,
+      props: { label: "dictLabel", value: "dictValue" },
+      rules: [{
+        required: true,
+        message: "请选择单位",
+        trigger: "blur"
+      }],
+    },
+    {
+      label: "物料级别",
+      prop: "levelDictValue",
+      search: true,
+      filterable: true,
+      type: "select",
+      width: 100,overHidden: true,
+      dicData:dicts.material_level,
+      props: { label: "dictLabel", value: "dictValue" },
+      rules: [{
+        required: true,
+        message: "请选择物料级别",
+        trigger: "blur"
+      }],
+    },
+    { label: "生产厂家", prop: "manufacturer",width: 100,overHidden: true ,rules: [{
+        required: true,
+        message: "请填写生产厂家",
+        trigger: "blur"
+      }],},
+    {
+      label: "质检方案",
+      prop: "inspectDictValue",
+      search: true,
+      filterable: true,
+      type: "select",
+      width: 100,overHidden: true,
+      dicData:dicts.quality_testing_plan,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
+    {
+      label: "适用平台",
+      prop: "applicablePlatformsDictValue",
+      search: true,
+      filterable: true,
+      type: "select",
+      width: 100,overHidden: true,
+      dicData:dicts.applicable_platforms,
+      props: { label: "dictLabel", value: "dictValue" },
+      rules: [{
+        required: true, message: "请选择适用平台",
+        trigger: "blur"
+      }],
+    },
+    {
+      label: "质量等级",
+      prop: "qualityLevelDictValue",
+      search: true,
+      width: 100,overHidden: true,
+      filterable: true,
+      type: "select",
+      dicData:dicts.quality_grade,
+      props: { label: "dictLabel", value: "dictValue" },
+      rules: [{
+        required: true,
+        message: "请选择质量等级",
+        trigger: "blur"
+      }],
+    },
+    {
+      label: "选用类型",
+      prop: "selectionDictValue",
+      search: true,
+      filterable: true,
+      width: 100,overHidden: true,
+      type: "select",
+      dicData:dicts.selection_type,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
+    {
+      label: "产品阶段",
+      prop: "stageDictValue",
+      search: true,
+      filterable: true,
+      width: 100,overHidden: true,
+      type: "select",
+      dicData:dicts.stage,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
+    { label: "客户型号", prop: "customerModel",width: 100,overHidden: true,  },
+    { label: "保质期(天)", prop: "qualityGuaranteePeriod",width: 100,overHidden: true,type:"number" ,min:0 },
+    {
+      label: "封装方法",
+      prop: "packageDictValue",
+      search: true,
+      width: 100,overHidden: true,
+      filterable: true,
+      type: "select",
+      dicData:dicts.packaging_method,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
+
+    {
+      label: "是否工装",
+      prop: "frock",
+      search: true,
+      width: 90,overHidden: true,
+      filterable: true,
+      type: "radio", //类型为单选框
+      dicData: [
+        {
+          label: "是",
+          value: "1",
+        },
+        {
+          label: "否",
+          value: "0",
+        },
+
+      ],
+      value: "1",
+      rules: [{
+        required: true,
+        message: "是否工装",
+        trigger: "blur"
+      }],
+    },
+    { label: "筛选规范", prop: "selectionSpec",width: 150,overHidden: true,  type: "textarea",span:18},
+
+    { label: "备注", prop: "remark", width: 150,overHidden: true,type: "textarea", span:18 },
+  ],
 });
 
 </script>

+ 36 - 2
src/views/base/modeling/station/index.vue

@@ -16,6 +16,19 @@
       @current-change="dataList"
       @selection-change="selectionChange"
     >
+      <template #enable="scope">
+        <el-switch
+          active-value="1"
+          inactive-value="0"
+          inline-prompt
+          active-text="启用"
+          inactive-text="禁用"
+          v-model="scope.row.enable"
+          @click="changeItem(scope.row)"
+          class="ml-2"
+          style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
+        />
+      </template>
       <template #menu-left="{ size }">
         <el-button
           :disabled="toDeleteIds.length < 1"
@@ -56,7 +69,7 @@
   import { useCrud } from "@/hooks/userCrud";
   import ButtonPermKeys from "@/common/configs/buttonPermission";
   import { useCommonStoreHook } from "@/store";
-
+  import { updateStation } from "@/api/station";
   const { isShowTable, tableType } = toRefs(useCommonStoreHook());
   import { useDictionaryStoreHook } from "@/store";
   const { dicts } = useDictionaryStoreHook();
@@ -118,7 +131,21 @@
   }
   const onSelectedFinish=(selectedValue)=>{
     form.value.manager=selectedValue.userName;
-    form.value.managerId=selectedValue.userId;
+    form.value.managerId=selectedValue.id;
+  }
+  const stationUpdate=ref({});
+  const changeItem=(row)=>{
+    stationUpdate.value.id=row.id;
+    stationUpdate.value.enable=row.enable;
+    updateStation(stationUpdate.value).then((data) => {
+      dataList();
+      ElMessage({
+        message: data.msg,
+        type: "success",
+      });
+
+    });
+
   }
   // 设置表格列或者其他自定义的option
   option.value = Object.assign(option.value, {
@@ -236,6 +263,13 @@
         }],
 
       },
+      { label: "启用状态",
+        slot:true,
+        headerAlign: 'center',
+        prop: "enable",
+        width: 100,
+        display: false
+      },
       {
         label: "工位描述",
         width:90,

+ 2 - 1
src/views/device/allocate/index.vue

@@ -71,7 +71,7 @@
             <p>申请部门: {{maintenanceInfo.creator}}</p>
             <p>申请人员: {{maintenanceInfo.creator}}</p>
             <p>调拨周期: {{maintenanceInfo.allocateCycle}}天</p>
-            <p>调拨目标位置: {{maintenanceInfo.deviceToPosition}}</p>
+            <p>调拨目标位置: {{maintenanceInfo.deviceToPosition}}</p>
             <p>申请时间: {{maintenanceInfo.created}}</p>
           </el-card>
         </el-timeline-item>
@@ -81,6 +81,7 @@
             <h4>调拨审批</h4>
             <p>审批人员: {{maintenanceInfo.auditUser}}</p>
             <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 1 ? '通过' : '不通过') : ''}}</p>
+            <p>审批时间: {{maintenanceInfo.auditTime}}</p>
           </el-card>
           <el-card v-if="!viewPage">
             <h4>调拨审批</h4>

+ 95 - 92
src/views/device/maintenance/components/record-page.vue

@@ -34,113 +34,116 @@ const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
 const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate } = Utils; //按钮权限等工具
-
+const mType = ref("-1")
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 const props = defineProps({
-  maintenanceId: {
-    type: Number,
+  maintenance: {
+    type: Object,
     default: () => {
-      return 0;
+      return {};
     }
   }
 })
 
 watch?.(
-    () => props.maintenanceId,
+    () => props.maintenance,
     (newVal) => {
-      search.value.maintenanceId = newVal
+      search.value.maintenanceId = newVal.id
+      mType.value = newVal.type
+      handleOption()
       dataList()
     }
 );
-
-// 设置表格列或者其他自定义的option
-option.value = Object.assign(option.value, {
-  delBtn: false,
-  selection: false,
-  search: false,
-  editBtn: false,
-  addBtn: false,
-  viewBtn: false,
-  menu: false,
-  column: [
-    {
-      label: "设备编号",
-      prop: "deviceNo",
-      width: '120',
-      rules: [
-        {
-          required: true,
-          message: "设备编号不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    {
-      label: "设备名称",
-      prop: "deviceName",
-      width: '120',
-      rules: [
-        {
-          required: true,
-          message: "设备名称不能为空",
-          trigger: "trigger",
+const handleOption =()=>{
+  // 设置表格列或者其他自定义的option
+  option.value = Object.assign(option.value, {
+    delBtn: false,
+    selection: false,
+    search: false,
+    editBtn: false,
+    addBtn: false,
+    viewBtn: false,
+    menu: false,
+    column: [
+      {
+        label: "设备编号",
+        prop: "deviceNo",
+        width: '120',
+        rules: [
+          {
+            required: true,
+            message: "设备编号不能为空",
+            trigger: "trigger",
+          },
+        ],
+      },
+      {
+        label: "设备名称",
+        prop: "deviceName",
+        width: '120',
+        rules: [
+          {
+            required: true,
+            message: "设备名称不能为空",
+            trigger: "trigger",
+          },
+        ],
+      },
+      /*{
+        label: "设备类型",
+        prop: "deviceType",
+        type: "select",
+        width: '100',
+        dicUrl:
+            dictDataUtil.request_url +
+            dictDataUtil.TYPE_CODE.device_type,
+        props: {
+          label: "dictLabel",
+          value: "dictValue",
         },
-      ],
-    },
-    {
-      label: "设备类型",
-      prop: "deviceType",
-      type: "select",
-      width: '100',
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
+      },*/
+      /* {
+         label: "设备位置",
+         width: '150',
+         prop: "devicePosition",
+       },*/
+      /*{
+        label: "维护类型",
+        prop: "type",
+        type: "select",
+        editDisplay: false,
+        dicData: [{label: '点检',value:'0'},{label: '保养',value:'1'}]
+      },*/
+      {
+        label: mType.value === "1" ? "维护内容" : "点检内容",
+        prop: "maintenanceContent",
+        minRows: 2, //最小行/最小值
+        maxlength: 512, //最大输入长度
+        overHidden: true
       },
-    },
-   /* {
-      label: "设备位置",
-      width: '150',
-      prop: "devicePosition",
-    },*/
-    {
-      label: "维护类型",
-      prop: "type",
-      type: "select",
-      editDisplay: false,
-      dicData: [{label: '点检',value:'0'},{label: '保养',value:'1'}]
-    },
-    {
-      label: "维护内容",
-      prop: "maintenanceContent",
-      minRows: 2, //最小行/最小值
-      maxlength: 512, //最大输入长度
-      overHidden: true
-    },
-    {
-      label: "维护人",
-      prop: "maintenanceUser",
-    },
-    {
-      label: "维护结果",
-      prop: "result",
-      search: true,
-      type: "select",
-      editDisplay: false,
-      dicData: [{label: '正常',value:0},{label: '报故',value:1}]
-    },
-    {
-      label: "维护时间",
-      width: '180',
-      prop: "maintenanceTime",
-    },
-  ],
-});
-
+      {
+        label: mType.value === "1" ? "维护人员" : "点检人员",
+        prop: "maintenanceUser",
+      },
+      {
+        label: mType.value === "1" ? "维护结果" : "点检结果",
+        prop: "result",
+        search: true,
+        type: "select",
+        editDisplay: false,
+        dicData: mType.value === "1" ? [{label: '正常',value:"0"},{label: '报故',value:"1"}] : [{label: '合格',value:"0"},{label: '不合格',value:"1"}]
+      },
+      {
+        label: mType.value === "1" ? "维护时间" : "点检时间",
+        width: '180',
+        prop: "maintenanceTime",
+      },
+    ],
+  })
+}
 onMounted?.(() => {
-  search.value.maintenanceId = props.maintenanceId
+  search.value.maintenanceId = props.maintenance.id
+  handleOption()
   dataList();
 });
 </script>

+ 6 - 5
src/views/device/maintenance/index.vue

@@ -33,14 +33,14 @@
                    icon="el-icon-setting"
                    text
                    v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.maintenance_handle]"
-                   v-if="row.state === 0"
+                   v-if="row.type === '1' && row.state === 0"
                    type="primary"
                    :size="size">维护</el-button>
         <el-button disabled
                    icon="el-icon-setting"
                    text
                    v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.maintenance_handle]"
-                   v-if="row.state === 1"
+                   v-if="row.type === '1' && row.state === 1"
                    type="primary"
                    :size="size">维护</el-button>
         <el-button @click="maintenanceList(row)"
@@ -124,7 +124,7 @@
         height="80%"
         @close="dialog2.visible = false"
     >
-      <record-page :maintenanceId="maintenanceInfo.id"></record-page>
+      <record-page :maintenance="clickRecord"></record-page>
     </el-dialog>
   </div>
 </template>
@@ -176,6 +176,7 @@ const deviceInfo = (value) => {
   dialog.visible = false
 }
 const maintenanceInfo = ref(null)
+const clickRecord = ref(null)
 const maintenance = (row)=>{
   maintenanceInfo.value = row
   maintenanceInfo.value.maintenanceContent = row.remark
@@ -183,7 +184,7 @@ const maintenance = (row)=>{
   dialog1.visible = true
 }
 const maintenanceList = (row)=>{
-  maintenanceInfo.value = row
+  clickRecord.value = row
   dialog2.visible = true
 }
 const queryUserList = ()=>{
@@ -201,7 +202,7 @@ const maintenanceSubmit =()=>{
           message: data.msg,
           type: "success",
         });
-        maintenanceInfo.value = null
+        //maintenanceInfo.value = null
         dialog1.visible = false
         dataList()
       })

+ 166 - 0
src/views/plan/finishProduct/index.vue

@@ -0,0 +1,166 @@
+<template>
+  <div class="mainContentBox">
+    <avue-crud
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
+    >
+
+
+        <template #menu="{row,index,type}">
+          <el-button @click="editSkills(row)"
+                     icon="el-icon-edit"
+                     text
+                     type="primary"
+          >编辑</el-button>
+        </template>
+
+    </avue-crud>
+    <el-dialog
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="800px"
+      :destroy-on-close="true"
+      @close="dialog.visible = false"
+    >
+      <user-skill   :dialog="dialog"/>
+    </el-dialog>
+
+    <el-dialog
+      v-model="editDialog.visible"
+      :title="editDialog.title"
+      width="800px"
+      :destroy-on-close="true"
+      @close="editClose"
+    >
+      <editSkill   :editDialog="editDialog" :skillId="editUser.id" :postId="editUser.postId"/>
+    </el-dialog>
+  </div>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook, useDictionaryStoreHook } from "@/store";
+import dictDataUtil from "@/common/configs/dictDataUtil";
+import editSkill from "@/views/base/skill/components/edit-skill.vue"
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+// 数据字典相关
+const { dicts } = useDictionaryStoreHook();
+
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
+const dialog = reactive({
+  title: "员工技能",
+  visible: false,
+});
+
+const editDialog = reactive({
+  title: "编辑",
+  visible: false,
+});
+const editClose=()=>{
+  editDialog.visible = false;
+  dataList();
+}
+const addRow=()=>{
+  dialog.visible=true;
+}
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/plan/workOrder/finishProductIn",
+  });
+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,
+// });
+
+
+
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  dataList();
+});
+
+
+
+/**
+ * 上传excel相关
+ */
+const uploadRef = ref(null);
+const uploadFinished = () => {
+  // 上传完成后的刷新操作
+  page.currentPage = 1;
+  dataList();
+};
+
+const editUser=ref(null);
+const editSkills=(row)=>{
+  editDialog.visible=true;
+  editUser.value=row;
+
+}
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: false,
+  addBtn:false,
+  viewBtn:false,
+  columnBtn: false,
+  gridBtn: false,
+  refreshBtn:false,
+  editBtn:false,
+  column: [
+
+
+    { label: "产品名称", prop: "materialName",
+      search: true,
+      overHidden: true,
+
+    },
+    { label: "产品编码", prop: "materialCode", width: 140,overHidden: true,search: true
+    },
+    {
+      label: "订单编码",
+      prop: "orderCode",
+      search: true,
+    },
+    { label: "工单号", prop: "workOrderCode",
+      search: true,
+      overHidden: true
+
+    },
+    { label: "完工时间", prop: "updated", overHidden: true,
+      disabled:true, },
+    {
+      label: "物料数量",
+      prop: "completeNum",
+    },
+    {
+      label: "入库数量",
+      prop: "inventoryNum",
+    },
+  ],
+});
+
+
+</script>

+ 1 - 0
src/views/plan/order/index.vue

@@ -241,6 +241,7 @@ option.value = {
       type: "select", //类型为下拉选择框
       width: 100,
       overHidden: true,
+      editDisabled:true,
       dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_order_type,
       props: {
         label: "dictLabel",

+ 53 - 3
src/views/quality/faultHandle/components/fault-detail.vue

@@ -54,6 +54,15 @@
       处理结果:&nbsp;&nbsp;{{faultDetails1.disposalMeasures}}
     </div>
   </div>
+  <div class="mainContentBox" v-if="faultDetails1!=null&&faultDetails1.currentState==5">
+    <avue-crud
+      ref="formRef"
+      v-model="form"
+      :data="data2"
+      :option="option2"
+    >
+    </avue-crud>
+  </div>
 </template>
 <script setup>
   import { ref, getCurrentInstance } from "vue";
@@ -61,7 +70,7 @@
   import ButtonPermKeys from "@/common/configs/buttonPermission";
   import { useCommonStoreHook, useDictionaryStoreHook } from "@/store";
   const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-  import {getFault,getFaultDetails} from "@/api/fault"
+  import {getFault,getFaultDetails,getSeqNoList} from "@/api/fault"
   import dictDataUtil from "@/common/configs/dictDataUtil";
   // 数据字典相关
   const { dicts } = useDictionaryStoreHook();
@@ -72,7 +81,7 @@
   };
   const props = defineProps({
     escalationFaultId: {
-      type: Number,
+      type: String,
       default: () => {
         return 0;
       }
@@ -111,6 +120,9 @@
 
   const faultImg1=ref(null);
   const formData1=ref({});
+  const data2=ref([]);
+  const option2=ref([]);
+  const formFault=ref({});
   const faultDetails1=ref(null);
 
   onMounted(() => {
@@ -118,10 +130,11 @@
     search.value.escalationFaultId=props.escalationFaultId;
     dataNoPageList();
     formData1.value.escalationFaultId=props.escalationFaultId;
+    formFault.value.escalationFaultId=props.escalationFaultId;
     getFault(formData1.value).then((data) => {
 
       faultImg1.value=data.data;
-      console.info(faultImg1.value);
+
     });
     getFaultDetails(props.escalationFaultId).then((data) => {
 
@@ -131,8 +144,17 @@
           faultDetails1.value.disposalMeasures=dicts.disposal_measures_type[i].dictLabel;
         }
       }
+      getSeqNoList(formFault.value).then((data) => {
+
+        data2.value=data.data;
+        for(let i=0;i<data2.value.length;i++){
+          data2.value[i].$cellEdit=true;
+        }
+      });
+      console.info(faultDetails1.value);
     });
 
+
   });
 
 
@@ -144,6 +166,8 @@
     delBtn:false,
     viewBtn:false,
     menu:false,
+    columnBtn: false,
+    gridBtn: false,
     column: [
       {
         label: "缺陷大类",
@@ -159,6 +183,32 @@
   });
 
 
+  // 设置表格列或者其他自定义的option
+  option2.value = {
+    addBtn: false,
+    editBtn:false,
+    delBtn:false,
+    viewBtn:false,
+    menu:false,
+    columnBtn: false,
+    gridBtn: false,
+    refreshBtn:false,
+    column: [
+      {
+        label: "跟踪卡号",
+        prop: "seqNo",
+        labelWidth:130,
+      },
+      {
+        label: "返工工序",
+        prop: "reworkOperationName",
+        labelWidth:130,
+        type:"select",
+      },
+
+    ],
+  };
+
 </script>
 <style>
   .title-fault{

+ 8 - 2
src/views/quality/faultHandle/components/fault-page.vue

@@ -177,9 +177,15 @@
 const listData=(row)=>{
 
   postDetail.value[row.$index].reworkProcessId=value.value[row.$index];
-  postDetail.value[row.$index].workOrderCode=props.workOrderCode;
 
-}
+  postDetail.value[row.$index].workOrderCode=props.workOrderCode;
+  for(let i=0;i<optionFault.value[row.$index].length;i++){
+    if(value.value[row.$index]==optionFault.value[row.$index][i].id){
+      postDetail.value[row.$index].reworkOperationName=optionFault.value[row.$index][i].operationName;
+    }
+  }
+  console.info(postDetail.value[row.$index]);
+ }
 const faultHandle=ref({});
  const onHandle=()=>{
    for(let i=0;i<postDetail.value.length;i++){

+ 9 - 3
src/views/report/statistics/dailystorage/index.vue

@@ -114,7 +114,6 @@ data1.value.option = Object.assign(data1.value.option, {
       overHidden: true,
       search: true,
       editDisabled: true,
-      hide: true,
     },
     {
       label: "订单名称",
@@ -184,12 +183,12 @@ data1.value.option = Object.assign(data1.value.option, {
       search: false,
     },
     {
-      label: "计划总共用时",
+      label: "计划总共用时(秒)",
       prop: "planTotalTime",
       search: false,
     },
     {
-      label: "实际总共用时",
+      label: "实际总共用时(秒)",
       prop: "realTotalTime",
       search: false,
     },
@@ -216,6 +215,13 @@ data2.value.option = Object.assign(data2.value.option, {
   delBtn: false,
   column: [
     {
+      label: "流转卡号",
+      prop: "seqNo",
+      search: false,
+      width:150,
+      overHidden:true,
+    },
+    {
       label: "交付日期",
       prop: "deliverTime",
       search: false,

+ 2 - 2
src/views/report/statistics/outputstatistics/index.vue

@@ -171,12 +171,12 @@ data1.value.option = Object.assign(data1.value.option, {
       search: false,
     },
     {
-      label: "标准用时",
+      label: "标准用时(秒)",
       prop: "standardWorktime",
       search: false,
     },
     {
-      label: "总共用时",
+      label: "总共用时(秒)",
       prop: "totalTime",
       search: false,
     },

+ 1 - 0
src/views/report/statistics/processanomaly/index.vue

@@ -72,6 +72,7 @@ const { selectionChange, multipleDelete } = data1.value.Methords;
 
 const ckickCell = (row) => {
   data2.value.search.workOrderCode = row.workOrderCode;
+  data2.value.search.operationCode = row.operationCode
   data2.value.search.searchTime = data1.value.search.searchTime;
   editDialog.value.visible = true;
 };

+ 2 - 2
src/views/report/statistics/stationBeat/index.vue

@@ -132,12 +132,12 @@ data1.value.option = Object.assign(data1.value.option, {
       search: false,
     },
     {
-      label: "标准用时",
+      label: "标准用时(秒)",
       prop: "standardWorktime",
       search: false,
     },
     {
-      label: "总共用时",
+      label: "总共用时(秒)",
       prop: "totalTime",
       search: false,
     },

+ 10 - 6
src/views/report/statistics/workeveryday/index.vue

@@ -293,11 +293,6 @@ data1.value.option = Object.assign(data1.value.option, {
       search: false,
     },
     {
-      label: "完工日期",
-      prop: "realEndWhen",
-      search: false,
-    },
-    {
       label: "总完工数量",
       prop: "total",
       search: false,
@@ -335,13 +330,22 @@ const setTime = () => {
 onMounted(async () => {
   setTime();
   charts.value = echarts.init(document.getElementById("dailystoragecharts"));
-
   dataList();
   await setChartsData1();
   echartOption1.value.yAxis[0].data = chartsData1.value.operationList;
   echartOption1.value.series[0].data = chartsData1.value.total;
   charts.value.setOption(echartOption1.value, true);
 });
+watch(
+  () => data1.value.data,
+  async () => {
+    await setChartsData1();
+    echartOption1.value.yAxis[0].data = chartsData1.value.operationList;
+    echartOption1.value.series[0].data = chartsData1.value.total;
+    console.log(echartOption1.value);
+    charts.value.setOption(echartOption1.value, true);
+  }
+);
 </script>
 <style lang="scss" scoped>
 :deep(.avue-crud__left) {

+ 42 - 1
src/views/storage/alarm/index.vue

@@ -27,6 +27,14 @@
         >
       </template>
     </avue-crud>
+    <el-dialog
+        v-model="dialog1.visible"
+        :title="dialog1.title"
+        width="950px"
+        @close="dialog1.visible = false"
+    >
+      <choice-item-page @materialInfo="materialInfo"/>
+    </el-dialog>
   </div>
 </template>
 <script setup>
@@ -50,7 +58,16 @@ const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
 const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
-
+const dialog1 = reactive({
+  title: "物料选择",
+  visible: false,
+});
+const materialInfo = (value) => {
+  form.value.code = value.materialCode
+  form.value.name = value.materialName
+  form.value.unit = value.unitDictValue
+  dialog1.visible = false
+}
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
 // 设置表格列或者其他自定义的option
@@ -81,6 +98,8 @@ option.value = Object.assign(option.value, {
     {
       label: "物料编码",
       prop: "code",
+      width: 150,
+      overHidden: true,
       search: true,
       rules: [
         {
@@ -89,11 +108,19 @@ option.value = Object.assign(option.value, {
           trigger: "trigger",
         },
       ],
+      click: ({ value, column }) => {
+        if(column.boxType){
+          dialog1.visible = true
+        }
+      },
     },
     {
       label: "物料名称",
       prop: "name",
       search: true,
+      width: 150,
+      overHidden: true,
+      disabled: true,
       rules: [
         {
           required: true,
@@ -133,6 +160,7 @@ option.value = Object.assign(option.value, {
     {
       label: "单位",
       prop: "unit",
+      disabled: true,
     },
     {
       label: "状态",
@@ -155,6 +183,19 @@ option.value = Object.assign(option.value, {
       ],
     },
     {
+      label: "提示内容",
+      prop: "msg",
+      width: 200,
+      overHidden: true,
+      rules: [
+        {
+          required: true,
+          message: "提示内容不能为空",
+          trigger: "trigger",
+        },
+      ],
+    },
+    {
       label: "创建时间",
       prop: "created",
       width: 180,

+ 0 - 124
src/views/storage/returnTask/index.vue

@@ -1,124 +0,0 @@
-<template>
-  <div class="mainContentBox">
-    <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"
-    >
-    </avue-crud>
-  </div>
-</template>
-<script setup>
-import { ref, getCurrentInstance } from "vue";
-import { useCrud } from "@/hooks/userCrud";
-import ButtonPermKeys from "@/common/configs/buttonPermission";
-
-import { useCommonStoreHook } from "@/store";
-import dictDataUtil from "@/common/configs/dictDataUtil";
-const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-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/wms/task",
-  });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
-const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
-
-const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-// 设置表格列或者其他自定义的option
-option.value = Object.assign(option.value, {
-  delBtn: false,
-  selection: false,
-  viewBtn: false,
-  editBtn: false,
-  menu: false,
-  addBtn: false,
-  column: [
-    {
-      label: "退料单号",
-      prop: "taskNo",
-      search: true,
-      width:150,
-      overHidden: true
-    },
-    {
-      label: "计划单号",
-      prop: "planNo",
-      search: true,
-    },
-    {
-      label: "物料编号",
-      width: 130,
-      overHidden: true,
-      prop: "materialNo",
-    },
-    {
-      label: "物料名称",
-      width:150,
-      overHidden: true,
-      prop: "materialName",
-    },
-    {
-      label: "批次号",
-      prop: "batchCode",
-      width:150,
-      overHidden: true
-    },
-    {
-      label: "退料总数量",
-      prop: "num",
-    },
-    {
-      label: "已退料数量",
-      prop: "completedNum",
-    },
-    {
-      label: "待退料数量",
-      prop: "unDoNum",
-    },
-    {
-      label: "单位",
-      prop: "unit",
-    },
-    {
-      label: "关联出库单",
-      prop: "relOutOrderNo",
-    },
-    {
-      label: "状态",
-      prop: "state",
-      type: "select",
-      search: true,
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.warehouse_task_state,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
-      }
-    },
-  ],
-});
-
-onMounted(() => {
-  // console.log("crudRef", crudRef)
-  search.value.type = '3'
-  dataList();
-});
-</script>

+ 12 - 10
src/views/storage/stock/index.vue

@@ -186,14 +186,16 @@ option.value = Object.assign(option.value, {
       prop: "num",
       type: 'number',
       min: 0,
-      max: 99999
-      /*rules: [
-        {
-          required: true,
-          message: "数量不能为空",
-          trigger: "trigger",
-        },
-      ],*/
+      max: 99999,
+      width: 150,
+      overHidden: true,
+      formatter:(val,value,label)=>{
+        if(val.warningMsg){
+          return val.num+"("+val.warningMsg+")"
+        }else{
+          return val.num
+        }
+      }
     },
     {
       label: "单位",
@@ -202,7 +204,7 @@ option.value = Object.assign(option.value, {
   ],
 });
 const rowStyle = ({row,column,rowIndex}) =>{
-  if(row.warning){
+  if(row.warningMsg){
     return {
       backgroundColor:'#f3d2d2',
       color:'#6c6a6a'
@@ -211,7 +213,7 @@ const rowStyle = ({row,column,rowIndex}) =>{
 }
 const cellStyle = ({row,column,rowIndex,columnIndex})=>{
   if(columnIndex === 10){
-    if(row.warning){
+    if(row.warningMsg){
       return {
         color:'red',
         fontWeight:'bold',

+ 13 - 6
src/views/storage/inTask/index.vue

@@ -51,7 +51,7 @@ option.value = Object.assign(option.value, {
   addBtn: false,
   column: [
     {
-      label: "入库单号",
+      label: "任务单号",
       prop: "taskNo",
       search: true,
       width:150,
@@ -63,6 +63,13 @@ option.value = Object.assign(option.value, {
       search: true,
     },
     {
+      label: "类型",
+      prop: "type",
+      type: "select",
+      search: true,
+      dicData:[{label: "入库",value: "1"},{label: "出库",value: "2"},{label: "退料",value: "3"}],
+    },
+    {
       label: "物料编号",
       width: 130,
       overHidden: true,
@@ -81,15 +88,15 @@ option.value = Object.assign(option.value, {
       overHidden: true
     },
     {
-      label: "入库总数量",
+      label: "总数量",
       prop: "num",
     },
     {
-      label: "已入库数量",
+      label: "已操作数量",
       prop: "completedNum",
     },
     {
-      label: "待入库数量",
+      label: "待操作数量",
       prop: "unDoNum",
     },
     {
@@ -97,7 +104,7 @@ option.value = Object.assign(option.value, {
       prop: "unit",
     },
     {
-      label: "入库仓库",
+      label: "仓库",
       prop: "houseType",
       type: "select",
       search: true,
@@ -127,7 +134,7 @@ option.value = Object.assign(option.value, {
 
 onMounted(() => {
   // console.log("crudRef", crudRef)
-  search.value.type = '1'
+  //search.value.type = '1'
   dataList();
 });
 </script>

+ 53 - 29
src/views/storage/outTask/index.vue

@@ -34,7 +34,7 @@ const test = () => {
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
-    src: "/api/v1/wms/task",
+    src: "/api/v1/wmsOrder",
   });
 const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
@@ -51,7 +51,7 @@ option.value = Object.assign(option.value, {
   addBtn: false,
   column: [
     {
-      label: "出库单号",
+      label: "任务单号",
       prop: "taskNo",
       search: true,
       width:150,
@@ -63,51 +63,64 @@ option.value = Object.assign(option.value, {
       search: true,
     },
     {
+      label: "类型",
+      prop: "type",
+      type: "select",
+      search: true,
+      dicData:[{label: "入库",value: "1"},{label: "出库",value: "2"},{label: "退料",value: "3"}],
+    },
+    {
+      label: "载具编号",
+      width: 130,
+      overHidden: true,
+      prop: "vehicleCode",
+    },
+    {
       label: "物料编号",
       width: 130,
+      search: true,
       overHidden: true,
       prop: "materialNo",
     },
     {
       label: "物料名称",
-      width:150,
+      width:130,
+      search: true,
       overHidden: true,
       prop: "materialName",
     },
     {
-      label: "批次号",
-      prop: "batchCode",
-      width:150,
-      overHidden: true
-    },
-    {
-      label: "出库总数量",
-      prop: "num",
+      label: "物料型号",
+      width:130,
+      overHidden: true,
+      prop: "spec",
     },
     {
-      label: "已出库数量",
-      prop: "completedNum",
+      label: "单位",
+      overHidden: true,
+      prop: "unit",
     },
     {
-      label: "待出库数量",
-      prop: "unDoNum",
+      label: "库位",
+      overHidden: true,
+      prop: "locationNo",
     },
     {
-      label: "单位",
-      prop: "unit",
+      label: "二维码",
+      prop: "batchCode",
+      width:150,
+      overHidden: true,
+      formatter:(val,value,label)=>{
+        if(val.seqNo){
+          return val.seqNo;
+        }else{
+          return val.batchCode
+        }
+      }
     },
     {
-      label: "出库类型",
-      prop: "outType",
-      type: "select",
-      search: true,
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.warehouse_out_task_type,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
-      }
+      label: "数量",
+      prop: "num",
     },
     {
       label: "状态",
@@ -122,12 +135,23 @@ option.value = Object.assign(option.value, {
         value: "dictValue",
       }
     },
+    {
+      label: "操作时间",
+      prop: "created",
+      width: 180,
+      display: false
+    },
+    {
+      label: "操作人",
+      prop: "creator",
+      display: false
+    },
   ],
 });
 
 onMounted(() => {
   // console.log("crudRef", crudRef)
-  search.value.type = '2'
+  //search.value.type = '2'
   dataList();
 });
 </script>