guoyuji
2023-12-25 67a2e68fbd740189de38827806b8daf6753b536e
Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
21个文件已修改
2个文件已添加
5251 ■■■■■ 已修改文件
north-glass-erp/.idea/workspace.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/router/index.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/CreateIngredients.vue 282 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/Ingredients.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/SelectIngredients.vue 327 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/AccessoriesMonthlySettlement.vue 324 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/IngredientsStock.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/MaterialOutbound.vue 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/OriginalMonthlySettlement.vue 312 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue 471 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue 396 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue 338 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue 456 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductReturn.vue 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStock.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue 563 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainTrader/CreateTrader.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainTrader/SelectTrader.vue 371 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainTrader/Trader.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/BOM/OrderBOMDetails.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/.idea/workspace.xml
@@ -212,7 +212,7 @@
      <workItem from="1702631535326" duration="205000" />
      <workItem from="1702858329054" duration="9016000" />
      <workItem from="1703031064839" duration="55055000" />
      <workItem from="1703463546867" duration="5864000" />
      <workItem from="1703463546867" duration="8535000" />
    </task>
    <task id="LOCAL-00001" summary="第一次推送">
      <option name="closed" value="true" />
north-glass-erp/northglass-erp/src/router/index.js
@@ -631,6 +631,17 @@
              name: 'originalMonthlySettlement',
              component:()=>import('../views/mm/mainIngredientStock/OriginalMonthlySettlement.vue')
            },
            //   物料出库
            {
              path: 'materialOutbound',
              name: 'materialOutbound',
              component:()=>import('../views/mm/mainIngredientStock/MaterialOutbound.vue')
            },
            {
              path:'createOutBound',
              name:'createOutBound',
              component:()=>import('../views/mm/mainIngredientStock/CreateOutBound.vue')
            },
            {
              path: '',
              redirect:'/main/ingredientsStock/SelectIngredientsStock'
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/CreateIngredients.vue
@@ -1,171 +1,183 @@
<!-- 物料资料新增 -->
<!-- 物料资料新增原片 -->
<script lang="ts" setup>
import {ref} from "vue";
const value = ref('')
const options = [
  {
    value: '原片',
    label: '原片'
  },
  {
    value: '辅料',
    label: '辅料',
  }
]
</script>
<template>
 <div class="center-box">
   <el-card class="form-card">
   <el-form  size="medium" >
<div>
  <el-row>
  <el-col :span="4">
    <el-select v-model="value" placeholder="请选择类别">
      <el-option
          v-for="item in options"
          :key="item.value"
          :label="item.label"
          :value="item.value"
      />
    </el-select>
  </el-col>
  </el-row>
</div>
     <el-divider ></el-divider> <!-- 添加分隔线 -->
     <el-row gutter="5">
     <el-row gutter="5" v-show="value=='原片'" >
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入物料编码" style="width: 150px; height: 30px;" />
        长度 <el-input v-show="value=='原片'" v-model="name" placeholder="请输入长度" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="productName" placeholder="请输入物料名称" style="width: 150px; height: 30px;" />
         厚度 <el-input v-show="value=='原片'"  v-model="name" placeholder="请输入厚度" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="salId" placeholder="请输入重量" style="width: 150px; height: 30px;" />
         宽度 <el-input v-show="value=='原片'" v-model="name" placeholder="请输入宽度" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4">
         <el-dropdown>
           <el-button type="primary">
             等级<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item>制镜级</el-dropdown-item>
               <el-dropdown-item>合格品</el-dropdown-item>
               <el-dropdown-item>一等品</el-dropdown-item>
               <el-dropdown-item>协议品</el-dropdown-item>
               <el-dropdown-item>优等品</el-dropdown-item>
             </el-dropdown-menu>
           </template>
         </el-dropdown>
       </el-col>
<!--       <el-col :span="4">-->
<!--         <el-dropdown>-->
<!--           <el-button type="primary">-->
<!--             膜系<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
<!--           </el-button>-->
<!--           <template #dropdown>-->
<!--             <el-dropdown-menu>-->
<!--               <el-dropdown-item>非镀膜</el-dropdown-item>-->
<!--               <el-dropdown-item>在线LOW-E</el-dropdown-item>-->
<!--               <el-dropdown-item>SUPPER-I</el-dropdown-item>-->
<!--               <el-dropdown-item>SUPPER-I+</el-dropdown-item>-->
<!--               <el-dropdown-item>SUPPER-II</el-dropdown-item>-->
<!--               <el-dropdown-item>SUPPER-III</el-dropdown-item>-->
<!--               <el-dropdown-item>SUPPER-V</el-dropdown-item>-->
<!--               <el-dropdown-item>SUPPER-IA</el-dropdown-item>-->
<!--               <el-dropdown-item>SUNLITE LOWE</el-dropdown-item>-->
<!--               <el-dropdown-item>LOW-E40</el-dropdown-item>-->
<!--               <el-dropdown-item>LOW-E40A</el-dropdown-item>-->
<!--               <el-dropdown-item>LOW-E50</el-dropdown-item>-->
<!--               <el-dropdown-item>LOW-E55N</el-dropdown-item>-->
<!--             </el-dropdown-menu>-->
<!--           </template>-->
<!--         </el-dropdown>-->
<!--       </el-col>-->
     </el-row>
     <el-divider ></el-divider> <!-- 添加分隔线 -->
       <el-row gutter="5" v-show="value=='原片'|| value=='辅料'">
       <el-col :span="4.5">
         名称 <el-input  v-show="value=='原片' || value=='辅料'" v-model="productName" placeholder="请输入名称" style="width: 150px; height: 30px;" />
       </el-col>
         <el-col :span="4.5">
           数量 <el-input v-show="value=='原片' || value=='辅料'"  v-model="salId" placeholder="请输入数量" style="width: 150px; height: 30px;" />
         </el-col>
         <el-col :span="4.5">
           单位 <el-input v-model="name" placeholder="请输入单位" style="width: 150px; height: 30px;" />
         </el-col>
         <el-col :span="4.5">
           型号<el-input v-model="name" placeholder="请输入型号" style="width: 150px; height: 30px;" />
         </el-col>
       </el-row>
     <el-divider v-show="false" ></el-divider> <!-- 添加分隔线 -->
<!--         <el-row gutter="5">-->
<!--           <el-col span="4.5">-->
<!--           <el-input v-model="name" placeholder="请输入换算单位" style="width: 150px; height: 30px;" />-->
<!--           </el-col>-->
<!--           <el-col :span="4.5">-->
<!--             <el-input v-model="name" placeholder="请输入换算率" style="width: 150px; height: 30px;" />-->
<!--           </el-col>-->
<!--     </el-row>-->
     <el-divider ></el-divider> <!-- 添加分隔线 -->
     <el-row gutter="5">
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入宽度" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入高度" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入厚度" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4">
         <el-dropdown>
           <el-button type="primary">
             大类<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item>辅片</el-dropdown-item>
               <el-dropdown-item>原片</el-dropdown-item>
             </el-dropdown-menu>
           </template>
         </el-dropdown>
       </el-col>
     </el-row>
     <el-divider ></el-divider> <!-- 添加分隔线 -->
<!--     <el-divider ></el-divider> &lt;!&ndash; 添加分隔线 &ndash;&gt;-->
     <el-row gutter="5">
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入型号" style="width: 150px; height: 30px;" />
       </el-col>
<!--     <el-row gutter="5">-->
<!--       <el-col :span="4.5">-->
<!--         <el-input v-model="name" placeholder="请输入型号" style="width: 150px; height: 30px;" />-->
<!--       </el-col>-->
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入单位" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4">
         <el-dropdown>
           <el-button type="primary">
             产地<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item>暂无</el-dropdown-item>
             </el-dropdown-menu>
           </template>
         </el-dropdown>
       </el-col>
       <el-col :span="4">
         <el-dropdown>
           <el-button type="primary">
             中类<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item>0</el-dropdown-item>
             </el-dropdown-menu>
           </template>
         </el-dropdown>
       </el-col>
     </el-row>
<!--       <el-col :span="4.5">-->
<!--         <el-input v-model="name" placeholder="请输入单位" style="width: 150px; height: 30px;" />-->
<!--       </el-col>-->
<!--       <el-col :span="4">-->
<!--         <el-dropdown>-->
<!--           <el-button type="primary">-->
<!--             产地<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
<!--           </el-button>-->
<!--           <template #dropdown>-->
<!--             <el-dropdown-menu>-->
<!--               <el-dropdown-item>暂无</el-dropdown-item>-->
<!--             </el-dropdown-menu>-->
<!--           </template>-->
<!--         </el-dropdown>-->
<!--       </el-col>-->
<!--       <el-col :span="4">-->
<!--         <el-dropdown>-->
<!--           <el-button type="primary">-->
<!--             中类<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
<!--           </el-button>-->
<!--           <template #dropdown>-->
<!--             <el-dropdown-menu>-->
<!--               <el-dropdown-item>0</el-dropdown-item>-->
<!--             </el-dropdown-menu>-->
<!--           </template>-->
<!--         </el-dropdown>-->
<!--       </el-col>-->
<!--     </el-row>-->
     <el-divider ></el-divider> <!-- 添加分隔线 -->
<!--     <el-divider ></el-divider> &lt;!&ndash; 添加分隔线 &ndash;&gt;-->
     <el-row gutter="5">
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入换算单位" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入换算率" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入备注" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4">
         <el-dropdown>
           <el-button type="primary">
             小类<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item>0</el-dropdown-item>
             </el-dropdown-menu>
           </template>
         </el-dropdown>
       </el-col>
     </el-row>
<!--     <el-row gutter="5">-->
     <el-divider ></el-divider> <!-- 添加分隔线 -->
<!--       <el-col :span="4.5">-->
<!--         <el-input v-model="name" placeholder="请输入备注" style="width: 150px; height: 30px;" />-->
<!--       </el-col>-->
<!--       <el-col :span="4">-->
<!--         <el-dropdown>-->
<!--           <el-button type="primary">-->
<!--             小类<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
<!--           </el-button>-->
<!--           <template #dropdown>-->
<!--             <el-dropdown-menu>-->
<!--               <el-dropdown-item>0</el-dropdown-item>-->
<!--             </el-dropdown-menu>-->
<!--           </template>-->
<!--         </el-dropdown>-->
<!--       </el-col>-->
<!--     </el-row>-->
<!--     <el-divider ></el-divider> &lt;!&ndash; 添加分隔线 &ndash;&gt;-->
     <el-row gutter="5">
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入保质期" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入最高预警" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4.5">
         <el-input v-model="name" placeholder="请输入拆包预警" style="width: 150px; height: 30px;" />
       </el-col>
       <el-col :span="4">
         <el-dropdown>
           <el-button type="primary">
             膜系<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item>非镀膜</el-dropdown-item>
               <el-dropdown-item>在线LOW-E</el-dropdown-item>
               <el-dropdown-item>SUPPER-I</el-dropdown-item>
               <el-dropdown-item>SUPPER-I+</el-dropdown-item>
               <el-dropdown-item>SUPPER-II</el-dropdown-item>
               <el-dropdown-item>SUPPER-III</el-dropdown-item>
               <el-dropdown-item>SUPPER-V</el-dropdown-item>
               <el-dropdown-item>SUPPER-IA</el-dropdown-item>
               <el-dropdown-item>SUNLITE LOWE</el-dropdown-item>
               <el-dropdown-item>LOW-E40</el-dropdown-item>
               <el-dropdown-item>LOW-E40A</el-dropdown-item>
               <el-dropdown-item>LOW-E50</el-dropdown-item>
               <el-dropdown-item>LOW-E55N</el-dropdown-item>
             </el-dropdown-menu>
           </template>
         </el-dropdown>
       </el-col>
<!--       <el-col :span="4.5">-->
<!--         <el-input v-model="name" placeholder="请输入保质期" style="width: 150px; height: 30px;" />-->
<!--       </el-col>-->
<!--       <el-col :span="4.5">-->
<!--         <el-input v-model="name" placeholder="请输入最高预警" style="width: 150px; height: 30px;" />-->
<!--       </el-col>-->
<!--       <el-col :span="4.5">-->
<!--         <el-input v-model="name" placeholder="请输入拆包预警" style="width: 150px; height: 30px;" />-->
<!--       </el-col>-->
     </el-row>
     <el-divider ></el-divider> <!-- 添加分隔线 -->
     <el-row  gutter="10" justify="center" >
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/Ingredients.vue
@@ -19,8 +19,9 @@
  <div id="main">
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item :to="{ path: '/main/ingredients/SelectIngredients' }">产品查询</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/ingredients/SelectIngredients' }">物料资料</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/ingredients/CreateIngredients' }">物料新增</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">报表</el-breadcrumb-item>
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/mm/mainIngredient/SelectIngredients.vue
@@ -1,174 +1,183 @@
<!-- 物料资料 -->
<script lang="ts" setup>
import { ref } from 'vue';
const name = ref('')
const productName = ref('')
const salId = ref('')
let tableData = ref([
  {
    "自序":'1',
    "物料编码":'700900000000941',
    "物料名称":'丝袜防晒手套套袖',
    "产地":'00',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "型号":'',
    "换算率":'1000',
    "单位":'双',
    "换算单位":'1',
    "保质期":'12',
    "重量":'0.0000',
    "数量":'2016-10-17',
    "库存组织":'人工库',
    "备注":'',
<script setup>
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/ingredients/CreateIngredients', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  {
    "自序":'2',
    "物料编码":'700900000000940',
    "物料名称":'自复位按钮开关',
    "产地":'00',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "型号":'',
    "换算率":'1000',
    "单位":'件',
    "换算单位":'1',
    "保质期":'12',
    "重量":'0.0000',
    "数量":'2016-10-17',
    "库存组织":'人工库',
    "备注":'',
  filterConfig: {   //筛选配置项
    remote: true
  },
  {
    "自序":'3',
    "物料编码":'700900000001189',
    "物料名称":'户外明装防水插座',
    "产地":'00',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "型号":'',
    "换算率":'1000',
    "单位":'个',
    "换算单位":'1',
    "保质期":'12',
    "重量":'0.0000',
    "数量":'2016-10-17',
    "库存组织":'人工库',
    "备注":'',
  customConfig: {
    storage: true
  },
  {
    "自序":'4',
    "物料编码":'700900000001188',
    "物料名称":'平板地拖',
    "产地":'00',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "型号":'',
    "换算率":'1000',
    "单位":'把',
    "换算单位":'1',
    "保质期":'12',
    "重量":'0.0000',
    "数量":'2016-10-17',
    "库存组织":'人工库',
    "备注":'',
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    // { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'materialCode', width:'150', title: '物料编码', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'materialName', width: '150',title: '物料名称', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'origin', width: '120',title: '产地', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'width', width: '100',title: '宽度', sortable: true},
    {field: 'height',width: '100', title: '高度', sortable: true,showOverflow:"ellipsis"},
    {field: 'thickness', width: '80',title: '厚度', sortable: true},
    {field: 'model',width: '100', title: '型号', sortable: true},
    {field: 'conversionRate', width: '100',title: '换算率', sortable: true},
    {field: 'unit',width: '100', title: '单位', sortable: true},
    {field: 'conversionUnit', width: '80',title: '换算单位', sortable: true},
    {field: 'shelfLife',width: '100', title: '保质期', sortable: true},
    {field: 'weight', width: '100',title: ' 重量', sortable: true},
    {field: 'quantity',width: '110', title: '数量', sortable: true},
    {field: 'inventoryOrganization',width: '100', title: '库存组织', sortable: true},
    {field: 'remark',width: '80', title: '备注', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
])
  data:  [
    {
      "materialCode": 700900000000941,
      "materialName": "丝袜防晒手套套袖",
      "origin": "00",
      "width": "00",
      "height": "00",
      "thickness":'00',
      "model": "服饰",
      "conversionRate": "1000",
      "unit": "双",
      "conversionUnit": "1",
      "shelfLife": "12个月",
      "weight": "0.0000",
      "quantity": "10000",
      "inventoryOrganization": "人工库",
      "remark": "测试",
    },
    {
      "materialCode": 700900000000941,
      "materialName": "丝袜防晒手套套袖",
      "origin": "00",
      "width": "00",
      "height": "00",
      "thickness":'00',
      "model": "服饰",
      "conversionRate": "1000",
      "unit": "双",
      "conversionUnit": "1",
      "shelfLife": "12个月",
      "weight": "0.0000",
      "quantity": "10000",
      "inventoryOrganization": "人工库",
      "remark": "测试",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
  <div>
    <!-- 表单开始 -->
    <div>
      <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
<!--        <el-row gutter="5">-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输入物料编码" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="productName" placeholder="请输入物料名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="salId" placeholder="请输入宽度" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="salId" placeholder="请输入高度" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
<!--        </el-row>-->
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
      </template>
<!--        &lt;!&ndash; <el-form-item size="large">-->
<!--          <el-button type="primary" @click="submitForm">查询</el-button>-->
<!--          <el-button @click="resetForm">重置</el-button>-->
<!--        </el-form-item>&ndash;&gt;-->
<!--        <el-row gutter="5">-->
<!--          <el-col :span="4">-->
<!--            <el-dropdown>-->
<!--              <el-button type="primary">-->
<!--                请选择库存组织<el-icon class="el-icon&#45;&#45;right" style="width: 66px;"><arrow-down /></el-icon>-->
<!--              </el-button>-->
<!--              <template #dropdown>-->
<!--                <el-dropdown-menu>-->
<!--                  <el-dropdown-item>Action 1</el-dropdown-item>-->
<!--                  <el-dropdown-item>Action 2</el-dropdown-item>-->
<!--                  <el-dropdown-item>Action 3</el-dropdown-item>-->
<!--                  <el-dropdown-item>Action 4</el-dropdown-item>-->
<!--                  <el-dropdown-item>Action 5</el-dropdown-item>-->
<!--                </el-dropdown-menu>-->
<!--              </template>-->
<!--            </el-dropdown>-->
<!--          </el-col>-->
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输宽度" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输型号" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-button id="searchButton" type="primary" :icon="Search">查询</el-button>-->
<!--          </el-col>-->
<!--        </el-row>-->
      </el-form>
    </div>
    <!-- 表单结束 -->
    <!-- 表格开始 -->
    <div>
      <el-table :data="tableData" border style="width: 100%">
        <el-table-column prop="自序" label="自序" width="180" />
        <el-table-column prop="物料编码" label="物料编码" width="180" />
        <el-table-column prop="物料名称" label="物料名称" width="180"/>
        <el-table-column prop="产地" label="产地" width="180"/>
        <el-table-column prop="宽度" label="宽度" width="180"/>
        <el-table-column prop="高度" label="高度" width="180"/>
        <el-table-column prop="厚度" label="厚度" width="180"/>
        <el-table-column prop="型号" label="型号" width="180"/>
        <el-table-column prop="换算率" label="换算率" width="180"/>
        <el-table-column prop="单位" label="单位" width="180"/>
        <el-table-column prop="换算单位" label="换算单位" width="180"/>
        <el-table-column prop="保质期" label="保质期" width="180"/>
        <el-table-column prop="重量" label="重量" width="180"/>
        <el-table-column prop="数量" label="数量" width="180"/>
        <el-table-column prop="库存组织" label="库存组织" width="180"/>
        <el-table-column prop="备注" label="备注" width="180"/>
        <el-table-column fixed="left" label="操作" width="120">
          <template #default>
            <el-button link type="primary" size="small" @click="handleClick"
            >编辑</el-button
            >
            <el-button link type="primary" size="small">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
    </vxe-grid>
  </div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/AccessoriesMonthlySettlement.vue
@@ -1,94 +1,252 @@
<!--辅料月结-->
<script setup>
import {reactive, ref} from "vue";
import {useRouter} from  'vue-router'
import {VXETable} from "vxe-table";
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
<script lang="ts" setup>
  }
}
</script>
<template>
  <div>
    <div>
      <el-form>
        <el-row gutter="10" >
          <el-col :span="2.5">
            <div class="label-text">查询辅料报表日期</div>
          </el-col>
          <el-col :span="4">
            <el-date-picker
                type="daterange"
                start-placeholder="开始时间"
                end-placeholder="结束时间"
                style="width: 200px;"
            />
          </el-col>
          <el-col :span="4">
            <el-dropdown>
              <el-button type="primary">
                辅料类型<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
              </el-button>
              <template #dropdown>
                <el-dropdown-menu>
                  <el-dropdown-item>化学品</el-dropdown-item>
                  <el-dropdown-item>磨轮</el-dropdown-item>
                  <el-dropdown-item>无尘纸</el-dropdown-item>
                  <el-dropdown-item>膜</el-dropdown-item>
                  <el-dropdown-item>木箱</el-dropdown-item>
                  <el-dropdown-item>电工电气</el-dropdown-item>
                  <el-dropdown-item>机器配件</el-dropdown-item>
                  <el-dropdown-item>工具</el-dropdown-item>
                  <el-dropdown-item>办公用品</el-dropdown-item>
                  <el-dropdown-item>辅料余料</el-dropdown-item>
                  <el-dropdown-item>来料加工</el-dropdown-item>
                  <el-dropdown-item>丝印</el-dropdown-item>
                  <el-dropdown-item>木板</el-dropdown-item>
                  <el-dropdown-item>气体</el-dropdown-item>
                  <el-dropdown-item>化工管件</el-dropdown-item>
                  <el-dropdown-item>发外加工</el-dropdown-item>
                  <el-dropdown-item>机器设备维修</el-dropdown-item>
                  <el-dropdown-item>机械设备</el-dropdown-item>
                  <el-dropdown-item>台板</el-dropdown-item>
                </el-dropdown-menu>
              </template>
            </el-dropdown>
          </el-col>
          <el-col :span="4">
            <el-button id="searchButton" type="primary" :icon="Search">查询报表</el-button>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <div>
      <div>
        <el-table :data="tableData" border style="width: 100%">
          <el-table-column prop="自序" label="自序" width="100" />
          <el-table-column prop="月份" label="月份" width="100" />
          <el-table-column prop="单位" label="单位" width="60"/>
          <el-table-column prop="物料编码" label="物料编码" width="100"/>
          <el-table-column prop="物料名称" label="物料名称" width="100"/>
          <el-table-column prop="高度" label="高度" width="100"/>
          <el-table-column prop="厚度" label="厚度" width="100"/>
          <el-table-column prop="宽度" label="宽度" width="100"/>
          <el-table-column prop="上月数量" label="上月数量" width="100"/>
          <el-table-column prop="本月入库数量" label="本月入库数量" width="110"/>
          <el-table-column prop="本月出库数量" label="本月出库数量" width="110"/>
          <el-table-column prop="本月库存数量" label="本月库存数量" width="110"/>
        </el-table>
      </div>
    </div>
  </div>
</template>
<style>
.centered-box {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:  [
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    // { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'month', width:'150', title: '月份', sortable: true,editRender: { name: 'input' },filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
    {field: 'unit', width: '150',title: '单位', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialCode', width: '120',title: '物料编码', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialName', width: '100',title: '物料名称', sortable: true},
    {field: 'height',width: '100', title: '高度', sortable: true,showOverflow:"ellipsis"},
    {field: 'thickness', width: '80',title: '厚度', sortable: true},
    {field: 'width',width: '100', title: '宽度', sortable: true},
    {field: 'lastMonthQuantity', width: '100',title: '上月数量', sortable: true},
    {field: 'lastMonthArea',width: '100', title: '上月面积', sortable: true},
    {field: 'thisMonthReceivedQuantity', width: '140',title: '本月入库数量', sortable: true},
    {field: 'thisMonthReceivedArea',width: '140', title: '本月入库面积', sortable: true},
    {field: 'thisMonthIssuedQuantity', width: '140',title: '本月出库数量', sortable: true},
    {field: 'thisMonthIssuedArea',width: '140', title: '本月出库面积', sortable: true},
    {field: 'thisMonthInventoryQuantity',width: '140', title: '本月库存数量', sortable: true},
    {field: 'thisMonthInventoryArea',width: '140', title: '本月库存面积', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    // buttons: [{
    //   'name': '查询',
    //   'code':'add'
    // },],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      'month':'3',
      'unit':'件',
      'materialCode':'KF2023122101',
      'materialName':'公牛插座',
      'height':'0',
      'thickness':'0',
      'width':'0',
      'lastMonthQuantity':'100',
      'lastMonthArea':'0',
      'thisMonthReceivedQuantity':'100',
      'thisMonthReceivedArea':'0',
      'thisMonthIssuedQuantity':'23',
      'thisMonthIssuedArea':'0',
      'thisMonthInventoryQuantity':'77',
      'thisMonthInventoryArea':'0',
    },
    {
      'month':'3',
      'unit':'件',
      'materialCode':'KF2023122101',
      'materialName':'公牛插座',
      'height':'0',
      'thickness':'0',
      'width':'0',
      'lastMonthQuantity':'100',
      'lastMonthArea':'0',
      'thisMonthReceivedQuantity':'100',
      'thisMonthReceivedArea':'0',
      'thisMonthIssuedQuantity':'23',
      'thisMonthIssuedArea':'0',
      'thisMonthInventoryQuantity':'77',
      'thisMonthInventoryArea':'0',
    },
    {
      'month':'3',
      'unit':'件',
      'materialCode':'KF2023122101',
      'materialName':'公牛插座',
      'height':'0',
      'thickness':'0',
      'width':'0',
      'lastMonthQuantity':'100',
      'lastMonthArea':'0',
      'thisMonthReceivedQuantity':'100',
      'thisMonthReceivedArea':'0',
      'thisMonthIssuedQuantity':'23',
      'thisMonthIssuedArea':'0',
      'thisMonthInventoryQuantity':'77',
      'thisMonthInventoryArea':'0',
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
const  xGrid = ref();
const gridEvents = {
  toolbarButtonClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'add': {
          router.push({path: '/main/trader/CreateTrader'})
          /*if($grid.getCheckboxRecords().length==0){
            VXETable.modal.message( '请选择一条数据!')
            return
          }*/
          return;
        }
      }
    }
  },
  toolbarToolClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'myPrint': {
          $grid.print()
          break
        }
      }
    }
  },
}
</script>
<template>
  <div class="main-div-customer">
    <el-row gutter="10" >
      <el-col :span="2.5">
        <div class="label-text">查询辅料报表日期</div>
      </el-col>
      <el-col :span="4">
        <el-date-picker
            type="daterange"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            style="width: 200px;"
        />
      </el-col>
      <el-col span="4">
        <el-button id="searchButton" type="primary" :icon="Search">查询报表</el-button>
      </el-col>
    </el-row>
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
.label-text {
  font-weight: bold;
    </vxe-grid>
  </div>
</template>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue
New file
@@ -0,0 +1,225 @@
<!--物料出库-->
<script setup>
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      alert('我接收到子组件传送的编辑信息')
      // router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    // { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'MaterialCode', width: '150',title: '物料编码', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'MaterialName', width: '120',title: '物料名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'InventoryCount',width: '100', title: '库存数量', sortable: true},
    {field: 'OutNum', width:'150', title: '出库数量', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'Origin', width: '100',title: '产地', sortable: true},
    {field: 'Width', width: '80',title: '宽度', sortable: true},
    {field: 'Height',width: '100', title: '高度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'MainUnit',width: '100', title: '单位', sortable: true},
    {field: 'SafetyStock', width: '100',title: '单片面积', sortable: true},
    {field: 'AvailableInventory', width: '100',title: '换算率', sortable: true},
    {field: 'UnclaimedQuantity',width: '140', title: '未领取数量', sortable: true},
    {field: 'TotalArea',width: '100', title: '库区', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
    {field: 'ProductionDate',width: '100', title: '库位', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
    {field: 'ShelfLife',width: '100', title: '工程单号', sortable: true},
    {field: 'LocationNumber',width: '100', title: '生产日期', sortable: true},
    {field: 'remark',width: '80', title: '备注', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } }},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
      'name': '提交',status:'primary'
    }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
  <el-row gutter="10" >
    <el-col :span="2.5">
      <div class="label-text">领料日期</div>
    </el-col>
    <el-col :span="4">
      <el-date-picker
          type="daterange"
          start-placeholder="开始时间"
          end-placeholder="结束时间"
          style="width: 200px;height: 30px"
      />
    </el-col>
    <el-col :span="4">
    <el-input v-model="productName" placeholder="请输入领料员名称" style="width: 200px; height: 30px;" />
    </el-col>
    <el-col :span="4">
    <el-input v-model="banzu" placeholder="请输入领料班组" style="width: 200px; height: 30px;" />
    </el-col>
    <el-col :span="7">
    仓管员<el-input v-model="banzu" placeholder="王翠兰" style="width: 200px; height: 30px;" />
    </el-col>
<!--    <el-col span="4">-->
<!--      <el-button id="searchButton" type="primary" :icon="Search">查询报表</el-button>-->
<!--    </el-col>-->
  </el-row>
  <el-row gutter="10" >
    <el-col :span="2.5">
      <div class="label-text">库存组织</div>
    </el-col>
    <el-col :span="4">
                  <el-dropdown>
                    <el-button type="primary">
                      请选择库存组织<el-icon class="el-icon--right" style="width: 66px;height: 30px"><arrow-down /></el-icon>
                    </el-button>
                    <template #dropdown>
                      <el-dropdown-menu>
                        <el-dropdown-item>人工库</el-dropdown-item>
                        <el-dropdown-item>计划库</el-dropdown-item>
                        <el-dropdown-item>自动化库</el-dropdown-item>
                      </el-dropdown-menu>
                    </template>
                  </el-dropdown>
                </el-col>
    <el-col :span="4">
      <el-dropdown>
        <el-button type="primary">
          请选择出库类型<el-icon class="el-icon--right" style="width:66px;"><arrow-down /></el-icon>
        </el-button>
        <template #dropdown>
          <el-dropdown-menu>
            <el-dropdown-item>标准出库</el-dropdown-item>
            <el-dropdown-item>补单领料</el-dropdown-item>
            <el-dropdown-item>返工领料</el-dropdown-item>
          </el-dropdown-menu>
        </template>
      </el-dropdown>
    </el-col>
    <el-col :span="12">
      <el-input v-model="banzu" placeholder="请输入销售单号" style="width: 200px; height: 30px;" />
    </el-col>
<!--    <el-col span="4">-->
<!--      <el-button id="searchButton" type="primary" :icon="Search">提交</el-button>-->
<!--    </el-col>-->
    <!--    <el-col span="4">-->
    <!--      <el-button id="searchButton" type="primary" :icon="Search">查询报表</el-button>-->
    <!--    </el-col>-->
  </el-row>
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
    </vxe-grid>
  </div>
</template>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/IngredientsStock.vue
@@ -19,9 +19,11 @@
  <div id="main">
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item :to="{ path: '/main/ingredientsStock/SelectIngredientsStock' }">产品查询</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/ingredientsStock/SelectIngredientsStock' }">物料库存</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/ingredientsStock/MaterialOutbound' }">物料出库</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/ingredientsStock/OriginalMonthlySettlement' }">原片月结</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/ingredientsStock/AccessoriesMonthlySettlement' }">辅料月结</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">报表</el-breadcrumb-item>
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/MaterialOutbound.vue
New file
@@ -0,0 +1,244 @@
<!--物料出库-->
<script setup>
import {reactive, ref} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      alert('我接收到子组件传送的编辑信息')
      // router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'InventoryOrganization', width:'150', title: '库存组织', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'MaterialCode', width: '150',title: '物料编码', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'MaterialName', width: '120',title: '物料名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'InventoryCount',width: '100', title: '库存数量', sortable: true},
    {field: 'OutNum', width:'150', title: '出库数量', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'Origin', width: '100',title: '产地', sortable: true},
    {field: 'InventoryNumber',width: '100', title: '库存编号', sortable: true,showOverflow:"ellipsis"},
    {field: 'Width', width: '80',title: '宽度', sortable: true},
    {field: 'Height',width: '100', title: '高度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'MainUnit',width: '100', title: '主单位', sortable: true},
    {field: 'SafetyStock', width: '100',title: '安全库存', sortable: true},
    {field: 'AvailableInventory', width: '100',title: '可用库存', sortable: true},
    {field: 'UnclaimedQuantity',width: '140', title: '未领取数量', sortable: true},
    {field: 'TotalArea',width: '100', title: '总面积', sortable: true},
    {field: 'ProductionDate',width: '100', title: '生产日期', sortable: true},
    {field: 'ShelfLife',width: '100', title: '保质期', sortable: true},
    {field: 'LocationNumber',width: '100', title: '库位编号', sortable: true},
    {field: 'StorageArea',width: '100', title: '存储区域', sortable: true},
    {field: 'Location',width: '100', title: '库位', sortable: true},
    {field: 'BacklogInventory',width: '100', title: '积压库存', sortable: true},
    {field: 'remark',width: '80', title: '备注', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
      code:'add','name': '出库新增',status:'primary'
    }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "InventoryOrganization": "人工库",
      "MaterialCode": "700900000000115",
      "MaterialName": "冬装170",
      "Origin": "China",
      "InventoryNumber": "KC2006891",
      "Width": '',
      "Height": "",
      "Thickness": "",
      "MainUnit": "件",
      "SafetyStock": "5",
      "InventoryCount": "20",
      "AvailableInventory": "9",
      "UnclaimedQuantity": "2",
      "TotalArea": "0",
      "ProductionDate": "2016-10-17",
      "ShelfLife": "0",
      "LocationNumber": "0",
      "StorageArea": "0",
      "Location": "0",
      "BacklogInventory": "40",
      "remark": "测试",
    },
    {
      "InventoryOrganization": "人工库",
      "MaterialCode": "700900000000115",
      "MaterialName": "冬装175",
      "Origin": "China",
      "InventoryNumber": "KC2006891",
      "Width": '',
      "Height": "",
      "Thickness": "",
      "MainUnit": "件",
      "SafetyStock": "5",
      "InventoryCount": "20",
      "AvailableInventory": "9",
      "UnclaimedQuantity": "2",
      "TotalArea": "0",
      "ProductionDate": "2016-10-17",
      "ShelfLife": "0",
      "LocationNumber": "0",
      "StorageArea": "0",
      "Location": "0",
      "BacklogInventory": "40",
      "remark": "测试",
    },{
      "InventoryOrganization": "人工库",
      "MaterialCode": "700900000000115",
      "MaterialName": "冬装180",
      "Origin": "China",
      "InventoryNumber": "KC2006891",
      "Width": '',
      "Height": "",
      "Thickness": "",
      "MainUnit": "件",
      "SafetyStock": "2",
      "InventoryCount": "23",
      "AvailableInventory": "4",
      "UnclaimedQuantity": "3",
      "TotalArea": "0",
      "ProductionDate": "2016-10-17",
      "ShelfLife": "0",
      "LocationNumber": "0",
      "StorageArea": "0",
      "Location": "0",
      "BacklogInventory": "40",
      "remark": "测试",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
const  xGrid = ref();
const gridEvents = {
  toolbarButtonClick({ code }) {
    const $grid = xGrid.value
    if($grid){
      switch (code){
        case 'add':{
          /*VXETable.modal.confirm('点击了库存调拨');*/
          router.push({path: '/main/ingredientsStock/CreateOutbound'});
          return;
          break
        }
      }
    }
  }
}
</script>
<template>
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
    </vxe-grid>
  </div>
</template>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/OriginalMonthlySettlement.vue
@@ -1,81 +1,253 @@
<!-- 原片月结  -->
<script setup>
import {reactive, ref} from "vue";
import {useRouter} from  'vue-router'
import {VXETable} from "vxe-table";
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
<script lang="ts" setup>
  }
}
</script>
<template>
  <div>
    <div>
      <el-form>
        <el-row gutter="10" >
        <el-col :span="2.5">
          <div class="label-text">查询原片报表日期</div>
        </el-col>
        <el-col :span="4">
          <el-date-picker
              type="daterange"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              style="width: 200px;"
          />
        </el-col>
          <el-col :span="4">
            <el-dropdown>
              <el-button type="primary">
                原片<el-icon class="el-icon--right" style="width: 66px;"><arrow-down /></el-icon>
              </el-button>
              <template #dropdown>
                <el-dropdown-menu>
                  <el-dropdown-item>原片</el-dropdown-item>
                  <el-dropdown-item>余料</el-dropdown-item>
                </el-dropdown-menu>
              </template>
            </el-dropdown>
          </el-col>
          <el-col :span="4">
            <el-button id="searchButton" type="primary" :icon="Search">查询报表</el-button>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <div>
      <div>
        <el-table :data="tableData" border style="width: 100%">
          <el-table-column prop="自序" label="自序" width="100" />
          <el-table-column prop="月份" label="月份" width="100" />
          <el-table-column prop="单位" label="单位" width="60"/>
          <el-table-column prop="物料编码" label="物料编码" width="100"/>
          <el-table-column prop="物料名称" label="物料名称" width="100"/>
          <el-table-column prop="高度" label="高度" width="100"/>
          <el-table-column prop="厚度" label="厚度" width="100"/>
          <el-table-column prop="宽度" label="宽度" width="100"/>
          <el-table-column prop="上月数量" label="上月数量" width="100"/>
          <el-table-column prop="上月面积" label="上月面积" width="100"/>
          <el-table-column prop="本月入库数量" label="本月入库数量" width="110"/>
          <el-table-column prop="本月入库面积" label="本月入库面积" width="110"/>
          <el-table-column prop="本月出库数量" label="本月出库数量" width="110"/>
          <el-table-column prop="本月出库面积" label="本月出库面积" width="110"/>
          <el-table-column prop="本月库存数量" label="本月库存数量" width="110"/>
          <el-table-column prop="本月库存面积" label="本月库存面积" width="110"/>
        </el-table>
    </div>
  </div>
  </div>
</template>
<style>
.centered-box {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:  [
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    // { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'month', width:'150', title: '月份', sortable: true,editRender: { name: 'input' },filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
    {field: 'unit', width: '150',title: '单位', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialCode', width: '120',title: '物料编码', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialName', width: '100',title: '物料名称', sortable: true},
    {field: 'height',width: '100', title: '高度', sortable: true,showOverflow:"ellipsis"},
    {field: 'thickness', width: '80',title: '厚度', sortable: true},
    {field: 'width',width: '100', title: '宽度', sortable: true},
    {field: 'lastMonthQuantity', width: '100',title: '上月数量', sortable: true},
    {field: 'lastMonthArea',width: '100', title: '上月面积', sortable: true},
    {field: 'thisMonthReceivedQuantity', width: '140',title: '本月入库数量', sortable: true},
    {field: 'thisMonthReceivedArea',width: '140', title: '本月入库面积', sortable: true},
    {field: 'thisMonthIssuedQuantity', width: '140',title: '本月出库数量', sortable: true},
    {field: 'thisMonthIssuedArea',width: '140', title: '本月出库面积', sortable: true},
    {field: 'thisMonthInventoryQuantity',width: '140', title: '本月库存数量', sortable: true},
    {field: 'thisMonthInventoryArea',width: '140', title: '本月库存面积', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    // buttons: [{
    //   'name': '查询',
    //   'code':'add'
    // },],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
    'month':'3',
    'unit':'mm',
    'materialCode':'KF2023122101',
    'materialName':'普通钢化玻璃',
    'height':'110.20',
    'thickness':'3.00',
    'width':'90.40',
    'lastMonthQuantity':'100',
    'lastMonthArea':'0',
    'thisMonthReceivedQuantity':'100',
    'thisMonthReceivedArea':'0',
    'thisMonthIssuedQuantity':'23',
    'thisMonthIssuedArea':'0',
    'thisMonthInventoryQuantity':'77',
    'thisMonthInventoryArea':'0',
    },
    {
      'month':'3',
      'unit':'mm',
      'materialCode':'KF2023122101',
      'materialName':'普通钢化玻璃',
      'height':'224.50',
      'thickness':'5.00',
      'width':'120.80',
      'lastMonthQuantity':'100',
      'lastMonthArea':'0',
      'thisMonthReceivedQuantity':'100',
      'thisMonthReceivedArea':'0',
      'thisMonthIssuedQuantity':'23',
      'thisMonthIssuedArea':'0',
      'thisMonthInventoryQuantity':'77',
      'thisMonthInventoryArea':'0',
    },
    {
      'month':'3',
      'unit':'mm',
      'materialCode':'KF2023122101',
      'materialName':'普通钢化玻璃',
      'height':'190.00',
      'thickness':'4.00',
      'width':'90.00',
      'lastMonthQuantity':'100',
      'lastMonthArea':'0',
      'thisMonthReceivedQuantity':'100',
      'thisMonthReceivedArea':'0',
      'thisMonthIssuedQuantity':'23',
      'thisMonthIssuedArea':'0',
      'thisMonthInventoryQuantity':'77',
      'thisMonthInventoryArea':'0',
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
const  xGrid = ref();
const gridEvents = {
  toolbarButtonClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'add': {
          router.push({path: '/main/trader/CreateTrader'})
          /*if($grid.getCheckboxRecords().length==0){
            VXETable.modal.message( '请选择一条数据!')
            return
          }*/
          return;
        }
      }
    }
  },
  toolbarToolClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'myPrint': {
          $grid.print()
          break
        }
      }
    }
  },
}
</script>
<template>
  <div class="main-div-customer">
    <el-row gutter="10" >
      <el-col :span="2.5">
        <div class="label-text">查询原片报表日期</div>
      </el-col>
      <el-col :span="4">
        <el-date-picker
            type="daterange"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            style="width: 200px;"
        />
      </el-col>
    <el-col span="4">
      <el-button id="searchButton" type="primary" :icon="Search">查询报表</el-button>
    </el-col>
    </el-row>
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
.label-text {
  font-weight: bold;
    </vxe-grid>
  </div>
</template>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue
@@ -1,277 +1,224 @@
<!-- 物料库存 -->
<script lang="ts" setup>
import { ref } from 'vue';
const name = ref('')
const productName = ref('')
const salId = ref('')
let tableData = ref([
  {
    "库存组织":'人工库',
    "物料编码":'700900000000122',
    "物料名称":'夏装 品管',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
<script setup>
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  {
    "库存组织":'人工库',
    "物料编码":'700900000000121',
    "物料名称":'夏装 浅蓝',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
  filterConfig: {   //筛选配置项
    remote: true
  },
  {
    "库存组织":'人工库',
    "物料编码":'700900000000120',
    "物料名称":'夏装 深蓝',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
  },{
    "库存组织":'人工库',
    "物料编码":'700900000000119',
    "物料名称":'冬装 品管',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
  },{
    "库存组织":'人工库',
    "物料编码":'700900000000118',
    "物料名称":'冬装 深蓝',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
  },{
    "库存组织":'人工库',
    "物料编码":'700900000000117',
    "物料名称":'航吊定期保养卡',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
  },{
    "库存组织":'人工库',
    "物料编码":'700900000000116',
    "物料名称":'冬装165',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
  },{
    "库存组织":'人工库',
    "物料编码":'700900000000115',
    "物料名称":'冬装170',
    "产地":'',
    "库存编号":'KC2006891',
    "宽度":'0.00',
    "高度":'0.00',
    "厚度":'0.00',
    "主单位":'件',
    "安全库存":'0.00',
    "库存数":'20.00',
    "可用库存":'',
    "未领取数量":'',
    "总面积":'0.0000',
    "生产日期":'2016-10-17',
    "保质期":'',
    "库位编号":'',
    "库区":'',
    "库位":'',
    "积压库存":'40',
    "备注":'',
  customConfig: {
    storage: true
  },
])
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    // { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'InventoryOrganization', width:'150', title: '库存组织', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'MaterialCode', width: '150',title: '物料编码', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'MaterialName', width: '120',title: '物料名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'Origin', width: '100',title: '产地', sortable: true},
    {field: 'InventoryNumber',width: '100', title: '库存编号', sortable: true,showOverflow:"ellipsis"},
    {field: 'Width', width: '80',title: '宽度', sortable: true},
    {field: 'Height',width: '100', title: '高度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'MainUnit',width: '100', title: '主单位', sortable: true},
    {field: 'SafetyStock', width: '100',title: '安全库存', sortable: true},
    {field: 'InventoryCount',width: '100', title: '库存数量', sortable: true},
    {field: 'AvailableInventory', width: '100',title: '可用库存', sortable: true},
    {field: 'UnclaimedQuantity',width: '140', title: '未领取数量', sortable: true},
    {field: 'TotalArea',width: '100', title: '总面积', sortable: true},
    {field: 'ProductionDate',width: '100', title: '生产日期', sortable: true},
    {field: 'ShelfLife',width: '100', title: '保质期', sortable: true},
    {field: 'LocationNumber',width: '100', title: '库位编号', sortable: true},
    {field: 'StorageArea',width: '100', title: '存储区域', sortable: true},
    {field: 'Location',width: '100', title: '库位', sortable: true},
    {field: 'BacklogInventory',width: '100', title: '积压库存', sortable: true},
    {field: 'remark',width: '80', title: '备注', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    // buttons: [{
    //   'name': '新增'
    // }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "InventoryOrganization": "人工库",
      "MaterialCode": "700900000000115",
      "MaterialName": "冬装170",
      "Origin": "China",
      "InventoryNumber": "KC2006891",
      "Width": '',
      "Height": "",
      "Thickness": "",
      "MainUnit": "件",
      "SafetyStock": "5",
      "InventoryCount": "20",
      "AvailableInventory": "9",
      "UnclaimedQuantity": "2",
      "TotalArea": "0",
      "ProductionDate": "2016-10-17",
      "ShelfLife": "0",
      "LocationNumber": "0",
      "StorageArea": "0",
      "Location": "0",
      "BacklogInventory": "40",
      "remark": "测试",
    },
    {
      "InventoryOrganization": "人工库",
      "MaterialCode": "700900000000115",
      "MaterialName": "冬装175",
      "Origin": "China",
      "InventoryNumber": "KC2006891",
      "Width": '',
      "Height": "",
      "Thickness": "",
      "MainUnit": "件",
      "SafetyStock": "5",
      "InventoryCount": "20",
      "AvailableInventory": "9",
      "UnclaimedQuantity": "2",
      "TotalArea": "0",
      "ProductionDate": "2016-10-17",
      "ShelfLife": "0",
      "LocationNumber": "0",
      "StorageArea": "0",
      "Location": "0",
      "BacklogInventory": "40",
      "remark": "测试",
    },{
      "InventoryOrganization": "人工库",
      "MaterialCode": "700900000000115",
      "MaterialName": "冬装180",
      "Origin": "China",
      "InventoryNumber": "KC2006891",
      "Width": '',
      "Height": "",
      "Thickness": "",
      "MainUnit": "件",
      "SafetyStock": "2",
      "InventoryCount": "23",
      "AvailableInventory": "4",
      "UnclaimedQuantity": "3",
      "TotalArea": "0",
      "ProductionDate": "2016-10-17",
      "ShelfLife": "0",
      "LocationNumber": "0",
      "StorageArea": "0",
      "Location": "0",
      "BacklogInventory": "40",
      "remark": "测试",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
  <div>
    <div>
      <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
<!--        <el-row gutter="5">-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输入物料编码" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="productName" placeholder="请输入宽" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="salId" placeholder="请输入高" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输入物料名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col span="4">-->
<!--            <el-button id="searchWarehousing" type="primary" :icon="Search1">线边仓储查询</el-button>-->
<!--          </el-col>-->
<!--          <el-col span="4">-->
<!--            <el-button id="searchButton" type="primary" :icon="Search">查询</el-button>-->
<!--          </el-col>-->
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
<!--        </el-row>-->
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
      </template>
        <!-- <el-form-item size="large">
          <el-button type="primary" @click="submitForm">查询</el-button>
          <el-button @click="resetForm">重置</el-button>
        </el-form-item>-->
        <el-row gutter="5">
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
          <el-col :span="4">
          </el-col>
        </el-row>
      </el-form>
    </div>
    <!-- 表格开始 -->
    <div>
      <el-table :data="tableData" border style="width: 100%">
        <el-table-column prop="库存组织" label="库存组织" width="180" />
        <el-table-column prop="物料编码" label="物料编码" width="180" />
        <el-table-column prop="物料名称" label="物料名称" width="180"/>
        <el-table-column prop="产地" label="产地" width="180"/>
        <el-table-column prop="宽度" label="宽度" width="180"/>
        <el-table-column prop="高度" label="高度" width="180"/>
        <el-table-column prop="厚度" label="厚度" width="180"/>
        <el-table-column prop="主单位" label="主单位" width="180"/>
        <el-table-column prop="安全库存" label="安全库存" width="180"/>
        <el-table-column prop="库存数" label="库存数" width="180"/>
        <el-table-column prop="可用库存" label="可用库存" width="180"/>
        <el-table-column prop="未领取数量" label="未领取数量" width="180"/>
        <el-table-column prop="总面积" label="总面积" width="180"/>
        <el-table-column prop="生产日期" label="生产日期" width="180"/>
        <el-table-column prop="保质期" label="保质期" width="180"/>
        <el-table-column prop="库位编号" label="库位编号" width="180"/>
        <el-table-column prop="库区" label="库区" width="180"/>
        <el-table-column prop="库位" label="库位" width="180"/>
        <el-table-column prop="积压库存" label="积压库存" width="180"/>
        <el-table-column prop="备注" label="备注" width="180"/>
        <el-table-column fixed="left" label="操作" width="120">
          <template #default>
            <el-button link type="primary" size="small" @click="handleClick"
            >修改</el-button
            >
            <el-button link type="primary" size="small">审核</el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
    <!-- 表格结束 -->
    </vxe-grid>
  </div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
@@ -1,156 +1,266 @@
<!--产品入库-->
<script setup>
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
      break
    }
    case 'back':{
      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
      break
    }
    case 'out' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
      break
    }
  }
}
<script lang="ts" setup>
import {ref} from "vue";
let tableData = ref([
  {
    "销售单号":'NG23072003',
    "楼层编号":'10059419',
    "成品编号":'0604000027',
    "成品名称":'NG23072003A01',
    "产品名称":'',
    "长":'1075.00',
    "宽":'440.00',
    "业务员":'陈宗凯',
    "客户名称":'71',
    "项目名称":'钢化玻璃',
    "订序":'1',
    "订单总数":'3800',
    "数量":'1140',
    "完工":'1140',
    "面积":'505.270000',
    "流程卡号":'NG23112311A01',
    "已入数量":'0',
    "下工序":'成品',
    "批次":'',
  },{
    "销售单号":'NG23072003',
    "楼层编号":'10059419',
    "成品编号":'0604000027',
    "成品名称":'NG23072003A01',
    "产品名称":'',
    "长":'1075.00',
    "宽":'440.00',
    "业务员":'陈宗凯',
    "客户名称":'71',
    "项目名称":'钢化玻璃',
    "订序":'1',
    "订单总数":'3800',
    "数量":'1140',
    "完工":'1140',
    "面积":'505.270000',
    "流程卡号":'NG23112311A01',
    "已入数量":'0',
    "下工序":'成品',
    "批次":'',
  },{
    "销售单号":'NG23072003',
    "楼层编号":'10059419',
    "成品编号":'0604000027',
    "成品名称":'NG23072003A01',
    "产品名称":'',
    "长":'1075.00',
    "宽":'440.00',
    "业务员":'陈宗凯',
    "客户名称":'71',
    "项目名称":'钢化玻璃',
    "订序":'1',
    "订单总数":'3800',
    "数量":'1140',
    "完工":'1140',
    "面积":'505.270000',
    "流程卡号":'NG23112311A01',
    "已入数量":'0',
    "下工序":'成品',
    "批次":'',
  },{
    "销售单号":'NG23072003',
    "楼层编号":'10059419',
    "成品编号":'0604000027',
    "成品名称":'NG23072003A01',
    "产品名称":'',
    "长":'1075.00',
    "宽":'440.00',
    "业务员":'陈宗凯',
    "客户名称":'71',
    "项目名称":'钢化玻璃',
    "订序":'1',
    "订单总数":'3800',
    "数量":'1140',
    "完工":'1140',
    "面积":'505.270000',
    "流程卡号":'NG23112311A01',
    "已入数量":'0',
    "下工序":'成品',
    "批次":'',
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
])
const checked1 = ref(true)
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '220', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'SalesOrderNumber', width: '150',title: '销售单号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'floorNumber', width: '120',title: '楼层编号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'finishedProductNumber',width: '100', title: '成品编号', sortable: true,showOverflow:"ellipsis"},
    {field: 'finishedProductName', width: '100',title: ' 成品名称', sortable: true},
    {field: 'productName',width: '100', title: '产品名称', sortable: true},
    {field: 'length', width: '100',title: '长度', sortable: true},
    {field: 'width',width: '100', title: '宽度', sortable: true},
    {field: 'salesperson', width: '100',title: '业务员', sortable: true},
    {field: 'customerName',width: '100', title: '客户名称', sortable: true},
    {field: 'projectName', width: '100',title: '项目名称', sortable: true},
    {field: 'orderNumber',width: '140', title: '订序', sortable: true},
    {field: 'totalOrders',width: '140', title: '订单总数', sortable: true},
    {field: 'quantity',width: '100', title: '数量', sortable: true},
    {field: 'completion',width: '140', title: '完工', sortable: true},
    {field: 'area',width: '140', title: '面积', sortable: true},
    {field: 'processCardNumber',width: '100', title: '流程卡号', sortable: true},
    {field: 'quantityEntered',width: '100', title: '已入数量', sortable: true},
    {field: 'nextProcess',width: '100', title: ' 下工序', sortable: true},
    {field: 'Batch',width: '100', title: '批次', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
      'name': '确认入库',
      'code':'add',
      status: 'primary'
    }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "SalesOrderNumber": "NG23072003",
      "floorNumber": "10059419",
      "finishedProductNumber": "0604000027",
      "finishedProductName": "NG23072003A01",
      "productName": '钢化玻璃',
      "length": "1075.00",
      "width": "440.00",
      "salesperson": "小岳",
      "customerName": "大头",
      "projectName": "Tempered Glass",
      "orderNumber": "1",
      "totalOrders": "3800",
      "quantity": "1140",
      "completion":'1140',
      "area": "505.270000",
      "processCardNumber": "NG23112311A01",
      "quantityEntered": "0",
      "nextProcess": "Finished Product",
      "Batch": "一",
    },
    {
      "SalesOrderNumber": "NG23072003",
      "floorNumber": "10059419",
      "finishedProductNumber": "0604000027",
      "finishedProductName": "NG23072003A01",
      "productName": '钢化玻璃',
      "length": "1075.00",
      "width": "440.00",
      "salesperson": "小岳",
      "customerName": "大头",
      "projectName": "Tempered Glass",
      "orderNumber": "1",
      "totalOrders": "3800",
      "quantity": "1140",
      "completion":'1140',
      "area": "505.270000",
      "processCardNumber": "NG23112311A01",
      "quantityEntered": "0",
      "nextProcess": "Finished Product",
      "Batch": "一",
    },
    {
      "SalesOrderNumber": "NG23072003",
      "floorNumber": "10059419",
      "finishedProductNumber": "0604000027",
      "finishedProductName": "NG23072003A01",
      "productName": '钢化玻璃',
      "length": "1075.00",
      "width": "440.00",
      "salesperson": "小岳",
      "customerName": "大头",
      "projectName": "Tempered Glass",
      "orderNumber": "1",
      "totalOrders": "3800",
      "quantity": "1140",
      "completion":'1140',
      "area": "505.270000",
      "processCardNumber": "NG23112311A01",
      "quantityEntered": "0",
      "nextProcess": "Finished Product",
      "Batch": "一",
    },
    {
      "SalesOrderNumber": "NG23072003",
      "floorNumber": "10059419",
      "finishedProductNumber": "0604000027",
      "finishedProductName": "NG23072003A01",
      "productName": '钢化玻璃',
      "length": "1075.00",
      "width": "440.00",
      "salesperson": "小岳",
      "customerName": "大头",
      "projectName": "Tempered Glass",
      "orderNumber": "1",
      "totalOrders": "3800",
      "quantity": "1140",
      "completion":'1140',
      "area": "505.270000",
      "processCardNumber": "NG23112311A01",
      "quantityEntered": "0",
      "nextProcess": "Finished Product",
      "Batch": "一",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
const gridEvents = {
  toolbarButtonClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'add': {
          router.push({path: '/main/trader/CreateTrader'})
          /*if($grid.getCheckboxRecords().length==0){
            VXETable.modal.message( '请选择一条数据!')
            return
          }*/
          return;
        }
      }
    }
  },
}
</script>
<template>
<div>
  <div>
    <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
<!--      <el-row gutter="7">-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="name" placeholder="销售单号" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="productName" placeholder="流程卡号" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="salId" placeholder="订序" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
<!--        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">订单调拨</el-button>-->
<!--        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">成品领出</el-button>-->
<!--        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">成品返工</el-button>-->
      </template>
<!--        <el-col :span="4">-->
<!--          <el-button id="searchButton" type="primary" :icon="Search" style="width: 100px; height: 25px">查询</el-button>-->
<!--        </el-col>-->
<!--      </el-row>-->
      <el-row gutter="7">
        <el-col :span="4">
          <el-input v-model="name" placeholder="制单员" style="width: 200px; height: 30px;" />
        </el-col>
        <el-col :span="4">
          <el-input v-model="productName" placeholder="工号" style="width: 200px; height: 30px;" />
        </el-col>
        <el-col :span="4">
          <el-input v-model="salId" placeholder="库位" style="width: 200px; height: 30px;" />
        </el-col>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
        <el-col :span="4">
          <el-button id="searchButton" type="primary" :icon="Search" style="width: 100px; height: 25px">确定</el-button>
        </el-col>
      </el-row>
    </el-form>
    <div>
      <el-table :data="tableData" border style="width: 100%">
        <el-table-column prop="销售单号" label="销售单号" width="100" />
        <el-table-column prop="楼层编号" label="楼层编号" width="100" />
        <el-table-column prop="成品编号" label="成品编号" width="100"/>
        <el-table-column prop="成品名称" label="成品名称" width="180"/>
        <el-table-column prop="长" label="长" width="80"/>
        <el-table-column prop="宽" label="宽" width="80"/>
        <el-table-column prop="业务员" label="业务员" width="100"/>
        <el-table-column prop="客户名称" label="客户名称" width="100"/>
        <el-table-column prop="项目名称" label="项目名称" width="180"/>
        <el-table-column prop="订序" label="订序" width="80"/>
        <el-table-column prop="订单总数" label="订单总数" width="100"/>
        <el-table-column prop="数量" label="数量" width="80"/>
        <el-table-column prop="完工" label="完工" width="80"/>
        <el-table-column prop="面积" label="面积" width="80"/>
        <el-table-column prop="流程卡号" label="流程卡号" width="100"/>
        <el-table-column prop="已入数量" label="已入数量" width="100"/>
        <el-table-column prop="下工序" label="下工序" width="80"/>
        <el-table-column prop="批次" label="批次" width="80"/>
        <el-table-column prop="选择" label="选择"  type="selection" width="80"/>
      </el-table>
    </div>
    </vxe-grid>
  </div>
</div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
@@ -1,119 +1,247 @@
<!-- 成品领出 -->
<!--成品领出-->
<script lang="ts" setup>
import {ref} from "vue";
<script setup>
let tableData = ref([
  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
  },  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    // case 'edit' :{
    //   //alert('我接收到子组件传送的编辑信息')
    //   router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
    //   break
    // }
    // case 'back':{
    //   router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
    //   break
    // }
    // case 'out' :{
    //   //alert('我接收到子组件传送的编辑信息')
    //   router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
    //   break
    // }
  }
}
const gridEvents = {
  toolbarButtonClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'add': {
          router.push({path: '/main/trader/CreateTrader'})
          /*if($grid.getCheckboxRecords().length==0){
            VXETable.modal.message( '请选择一条数据!')
            return
          }*/
          return;
        }
      }
    }
  },
  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
  toolbarToolClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'myPrint': {
          $grid.print()
          break
        }
      }
    }
  },
])
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    // { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '220', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'SalesOrderNumber', width: '150',title: '销售单号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProjectName', width: '120',title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProcessCardNumber',width: '100', title: '流程卡号', sortable: true,showOverflow:"ellipsis"},
    {field: 'FinishedProductNumber', width: '100',title: '成品编号', sortable: true},
    {field: 'Quantity',width: '140', title: '数量', sortable: true},
    {field: 'DiaoQuantity',width: '140', title: '领出数量',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true},
    {field: 'ProductNumber',width: '100', title: '产品编号', sortable: true},
    {field: 'CustomerNumber', width: '100',title: '客户编号', sortable: true},
    {field: 'CustomerName',width: '100', title: '客户名称', sortable: true},
    {field: 'Length', width: '100',title: '长度', sortable: true},
    {field: 'Width',width: '100', title: '宽度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'SingleArea',width: '140', title: '单片面积', sortable: true},
    {field: 'TotalArea',width: '100', title: '总面积', sortable: true},
    {field: 'StorageArea',width: '100', title: '库区', sortable: true},
    {field: 'Location',width: '100', title: '库位', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
      'name': '确认领出',
      status: 'primary'
    },{
      'name': '领出记录',
    }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
    },{
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
    },{
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
  <div>
    <div>
      <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        <el-row gutter="5">
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输客户名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输项目名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输销售单号" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
          <el-col :span="2.5">
            <el-button id="searchButton" type="primary" :icon="Search">领出记录</el-button>
          </el-col>
          <el-col :span="4">
            <el-button id="searchButton" type="primary" :icon="Search">查询</el-button>
          </el-col>
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
        </el-row>
      </el-form>
    </div>
    <div>
      <el-table :data="tableData" border style="width: 100%;">
        <el-table-column prop="销售单号" label="销售单号" width="180" style="text-align: center"/>
        <el-table-column prop="项目名称" label="项目名称" width="180" />
        <el-table-column prop="客户编号" label="客户编号" width="180"/>
        <el-table-column prop="客户名称" label="客户名称" width="180"/>
        <el-table-column prop="流程卡号" label="流程卡号" width="180"/>
        <el-table-column prop="成品编号" label="成品编号" width="180"/>
        <el-table-column prop="箱架号" label="箱架号" width="180"/>
        <el-table-column prop="成品名称" label="成品名称" width="180"/>
        <el-table-column prop="长" label="长" width="180"/>
        <el-table-column prop="宽" label="宽" width="180"/>
        <el-table-column prop="厚" label="厚" width="180"/>
        <el-table-column prop="数量" label="数量" width="180"/>
        <el-table-column prop="单片面积" label="单片面积" width="180"/>
        <el-table-column prop="总面积" label="总面积" width="180"/>
        <el-table-column prop="库区" label="库区" width="180"/>
        <el-table-column prop="库位" label="库位" width="180"/>
        <el-table-column fixed="left" label="操作" width="80">
          <template #default>
            <el-button link type="primary" size="small" @click="handleClick(row)"
            >编辑</el-button>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">订单调拨</el-button>
        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">成品领出</el-button>
        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">成品返工</el-button>
      </template>
          </template>
        </el-table-column>
      </el-table>
    </div>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
    </vxe-grid>
  </div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
@@ -1,200 +1,288 @@
<!--成品出库-->
<script setup>
<script lang="ts" setup>
import {ref} from "vue";
import {Search} from "@element-plus/icons-vue";
import {defineComponent} from "vue";
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
      break
    }
    case 'back':{
      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
      break
    }
    case 'out' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
      break
    }
  }
}
//子组件接收参数
let tableData = ref([
  {
    "送货单号":'JG23121112',
    "销售单号":'NG23120610',
    "客户名称":'中山市横栏镇环照灯饰厂',
    "项目名称":'钢化镜',
    "业务员":'王良',
    "订序":'1',
    "楼层编号":'813404',
    "订单数":'346',
    "长":'813.00',
    "宽":'404.00',
    "厚度":'4.00',
    "总数量":'176.00',
    "总面积":'58.0800',
    "箱号":'',
    "报表日期":'2023-23-13',
    "成品编号":'0601000622',
    "成品名称":'4mm方形钢化镜',
    "数量":'176',
    "状态":'已出库',
    "备注":'',
  }, {
    "送货单号":'JG23121112',
    "销售单号":'NG23120610',
    "客户名称":'中山市横栏镇环照灯饰厂',
    "项目名称":'钢化镜',
    "业务员":'王良',
    "订序":'1',
    "楼层编号":'813404',
    "订单数":'346',
    "长":'813.00',
    "宽":'404.00',
    "厚度":'4.00',
    "总数量":'176.00',
    "总面积":'58.0800',
    "箱号":'',
    "报表日期":'2023-23-13',
    "成品编号":'0601000622',
    "成品名称":'4mm方形钢化镜',
    "数量":'176',
    "状态":'已出库',
    "备注":'',
  }, {
    "送货单号":'JG23121112',
    "销售单号":'NG23120610',
    "客户名称":'中山市横栏镇环照灯饰厂',
    "项目名称":'钢化镜',
    "业务员":'王良',
    "订序":'1',
    "楼层编号":'813404',
    "订单数":'346',
    "长":'813.00',
    "宽":'404.00',
    "厚度":'4.00',
    "总数量":'176.00',
    "总面积":'58.0800',
    "箱号":'',
    "报表日期":'2023-23-13',
    "成品编号":'0601000622',
    "成品名称":'4mm方形钢化镜',
    "数量":'176',
    "状态":'已出库',
    "备注":'',
  }, {
    "送货单号":'JG23121112',
    "销售单号":'NG23120610',
    "客户名称":'中山市横栏镇环照灯饰厂',
    "项目名称":'钢化镜',
    "业务员":'王良',
    "订序":'1',
    "楼层编号":'813404',
    "订单数":'346',
    "长":'813.00',
    "宽":'404.00',
    "厚度":'4.00',
    "总数量":'176.00',
    "总面积":'58.0800',
    "箱号":'',
    "报表日期":'2023-23-13',
    "成品编号":'0601000622',
    "成品名称":'4mm方形钢化镜',
    "数量":'176',
    "状态":'已出库',
    "备注":'',
  }, {
    "送货单号":'JG23121112',
    "销售单号":'NG23120610',
    "客户名称":'中山市横栏镇环照灯饰厂',
    "项目名称":'钢化镜',
    "业务员":'王良',
    "订序":'1',
    "楼层编号":'813404',
    "订单数":'346',
    "长":'813.00',
    "宽":'404.00',
    "厚度":'4.00',
    "总数量":'176.00',
    "总面积":'58.0800',
    "箱号":'',
    "报表日期":'2023-23-13',
    "成品编号":'0601000622',
    "成品名称":'4mm方形钢化镜',
    "数量":'176',
    "状态":'已出库',
    "备注":'',
  }, {
    "送货单号":'JG23121112',
    "销售单号":'NG23120610',
    "客户名称":'中山市横栏镇环照灯饰厂',
    "项目名称":'钢化镜',
    "业务员":'王良',
    "订序":'1',
    "楼层编号":'813404',
    "订单数":'346',
    "长":'813.00',
    "宽":'404.00',
    "厚度":'4.00',
    "总数量":'176.00',
    "总面积":'58.0800',
    "箱号":'',
    "报表日期":'2023-23-13',
    "成品编号":'0601000622',
    "成品名称":'4mm方形钢化镜',
    "数量":'176',
    "状态":'已出库',
    "备注":'',
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {title: '操作', width: '80', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'DeliveryOrderNumber', width:'150', title: '送货单号', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'SalesOrderNumber', width: '150',title: '销售单号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProjectName', width: '120',title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProductName', width: '100',title: '成品名称', sortable: true},
    {field: 'ProductNumber',width: '100', title: '成品编号', sortable: true},
    {field: 'CustomerName',width: '100', title: '客户名称', sortable: true},
    {field: 'Length', width: '100',title: '长度', sortable: true},
    {field: 'Width',width: '100', title: '宽度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'TotalQuantity',width: '140', title: '总数量', sortable: true},
    {field: 'TotalArea',width: '100', title: '总面积', sortable: true},
    {field: 'FloorNumber',width: '100', title: '楼层编号', sortable: true},
    {field: 'OrderNumber',width: '100', title: '订序', sortable: true},
    {field: 'Salesman',width: '100', title: '业务员', sortable: true},
    {field: 'BoxNumber',width: '100', title: '箱号', sortable: true},
    {field: 'Quantity',width: '100', title: '数量', sortable: true},
    {field: 'ReportingDate',width: '140', title: '报表日期', sortable: true},
    {field: 'OrderQuantity',width: '100', title: '订单数', sortable: true},
    {field: 'Status',width: '100', title: '状态', sortable: true},
    {field: 'remark',width: '80', title: '备注', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
      'name': '确认出库',status: 'primary'
    }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "DeliveryOrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "CustomerName": "李二牛",
      "Salesman": "小岳",
      "OrderNumber": '7',
      "FloorNumber": "06040000022",
      "OrderQuantity": "7",
      "Length": "1230.00",
      "Width": "1075.00",
      "Thickness": "6。700",
      "TotalQuantity": "100.00",
      "TotalArea": "360.80",
      "BoxNumber": "06",
      "ReportingDate": "2023-12-22",
      "ProductNumber": "NG2312220001",
      "ProductName": "超级玻璃",
      "Quantity": "360",
      "Status": "已调架",
      "remark": "测试",
    },  {
      "DeliveryOrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "CustomerName": "李二牛",
      "Salesman": "小岳",
      "OrderNumber": '7',
      "FloorNumber": "06040000022",
      "OrderQuantity": "7",
      "Length": "1230.00",
      "Width": "1075.00",
      "Thickness": "6。700",
      "TotalQuantity": "100.00",
      "TotalArea": "360.80",
      "BoxNumber": "06",
      "ReportingDate": "2023-12-22",
      "ProductNumber": "NG2312220001",
      "ProductName": "超级玻璃",
      "Quantity": "360",
      "Status": "已调架",
      "remark": "测试",
    },  {
      "DeliveryOrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "CustomerName": "李二牛",
      "Salesman": "小岳",
      "OrderNumber": '7',
      "FloorNumber": "06040000022",
      "OrderQuantity": "7",
      "Length": "1230.00",
      "Width": "1075.00",
      "Thickness": "6。700",
      "TotalQuantity": "100.00",
      "TotalArea": "360.80",
      "BoxNumber": "06",
      "ReportingDate": "2023-12-22",
      "ProductNumber": "NG2312220001",
      "ProductName": "超级玻璃",
      "Quantity": "360",
      "Status": "已调架",
      "remark": "测试",
    },  {
      "DeliveryOrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "CustomerName": "李二牛",
      "Salesman": "小岳",
      "OrderNumber": '7',
      "FloorNumber": "06040000022",
      "OrderQuantity": "7",
      "Length": "1230.00",
      "Width": "1075.00",
      "Thickness": "6。700",
      "TotalQuantity": "100.00",
      "TotalArea": "360.80",
      "BoxNumber": "06",
      "ReportingDate": "2023-12-22",
      "ProductNumber": "NG2312220001",
      "ProductName": "超级玻璃",
      "Quantity": "360",
      "Status": "已调架",
      "remark": "测试",
    },  {
      "DeliveryOrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "CustomerName": "李二牛",
      "Salesman": "小岳",
      "OrderNumber": '7',
      "FloorNumber": "06040000022",
      "OrderQuantity": "7",
      "Length": "1230.00",
      "Width": "1075.00",
      "Thickness": "6。700",
      "TotalQuantity": "100.00",
      "TotalArea": "360.80",
      "BoxNumber": "06",
      "ReportingDate": "2023-12-22",
      "ProductNumber": "NG2312220001",
      "ProductName": "超级玻璃",
      "Quantity": "360",
      "Status": "已调架",
      "remark": "测试",
    },  {
      "DeliveryOrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "CustomerName": "李二牛",
      "Salesman": "小岳",
      "OrderNumber": '7',
      "FloorNumber": "06040000022",
      "OrderQuantity": "7",
      "Length": "1230.00",
      "Width": "1075.00",
      "Thickness": "6。700",
      "TotalQuantity": "100.00",
      "TotalArea": "360.80",
      "BoxNumber": "06",
      "ReportingDate": "2023-12-22",
      "ProductNumber": "NG2312220001",
      "ProductName": "超级玻璃",
      "Quantity": "360",
      "Status": "已调架",
      "remark": "测试",
    },
]);
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
  <div>
    <div>
      <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        <el-row gutter="7">
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="销售单号" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="productName" placeholder="送货单号" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="salId" placeholder="客户名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="2">-->
<!--            <el-button id="searchButton" type="primary" :icon="Search" style="width: 100px; height: 25px">导出</el-button>-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-button id="searchButton" type="primary" :icon="Search" style="width: 100px; height: 25px">查询</el-button>-->
<!--          </el-col>-->
          <el-col :span="4">
            <el-button id="searchButton" type="primary" :icon="Search" style="width: 100px; height: 25px">确定</el-button>
          </el-col>
        </el-row>
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
      </el-form>
      <div>
        <el-table :data="tableData" border style="width: 100%">
          <el-table-column prop="送货单号" label="送货单号" width="100" />
          <el-table-column prop="销售单号" label="销售单号" width="120" />
          <el-table-column prop="客户名称" label="客户名称" width="180"/>
          <el-table-column prop="项目名称" label="项目名称" width="100"/>
          <el-table-column prop="业务员" label="业务员" width="80"/>
          <el-table-column prop="订序" label="订序" width="80"/>
          <el-table-column prop="楼层编号" label="楼层编号" width="100"/>
          <el-table-column prop="订单数" label="订单数" width="100"/>
          <el-table-column prop="长" label="长" width="180"/>
          <el-table-column prop="宽" label="宽" width="80"/>
          <el-table-column prop="厚度" label="厚度" width="100"/>
          <el-table-column prop="总数量" label="总数量" width="80"/>
          <el-table-column prop="箱号" label="箱号" width="80"/>
          <el-table-column prop="总面积" label="总面积" width="80"/>
          <el-table-column prop="报表日期" label="报表日期" width="100"/>
          <el-table-column prop="成品编号" label="成品编号" width="120"/>
          <el-table-column prop="成品名称" label="成品名称" width="130"/>
          <el-table-column prop="数量" label="数量" width="80"/>
          <el-table-column prop="状态" label="状态" width="80"/>
          <el-table-column prop="备注" label="备注" width="80"/>
          <el-table-column prop="选择" label="选择" type="selection"  width="80"/>
        </el-table>
      </div>
    </div>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
    </vxe-grid>
  </div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductReturn.vue
@@ -1,87 +1,184 @@
<!-- 成品退货 -->
<!--成品退货-->
<script lang="ts" setup>
import {ref} from "vue";
let tableData = ref([
  {
    "退货单号":'TH23113001',
    "销售单号":'NG23112209',
    "发货单号":'JG23112209',
    "客户名称":'79',
    "项目名称":'高性能环保镜',
    "产品名称":'4mm高性能环保镜',
    "退货数量":'367',
    "业务员":'毛卫',
    "制单日期":'23-11-30 00:00:00',
    "备注":'',
  },
  {
    "退货单号":'TH23113001',
    "销售单号":'NG23112209',
    "发货单号":'JG23112209',
    "客户名称":'79',
    "项目名称":'高性能环保镜',
    "产品名称":'4mm高性能环保镜',
    "退货数量":'367',
    "业务员":'毛卫',
    "制单日期":'23-11-30 00:00:00',
    "备注":'',
  },
  {
    "退货单号":'TH23113001',
    "销售单号":'NG23112209',
    "发货单号":'JG23112209',
    "客户名称":'79',
    "项目名称":'高性能环保镜',
    "产品名称":'4mm高性能环保镜',
    "退货数量":'367',
    "业务员":'毛卫',
    "制单日期":'23-11-30 00:00:00',
    "备注":'',
<script setup>
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      alert('根据退货单号查询各单明细,在明细中修改')
      // router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
])
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    // { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    // { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {title: '操作', width: '100', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'ReturnNumber', width: '150',title: '退货单号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'SalesNumber', width: '120',title: '销售单号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'NewNum', width:'150', title: '订序', sortable: true },
    {field: 'ShippingNumber',width: '100', title: '发货单号', sortable: true,showOverflow:"ellipsis"},
    {field: 'CustomerName', width: '100',title: '客户名称', sortable: true},
    {field: 'ProjectName',width: '100', title: '产品名称', sortable: true},
    {field: 'ReturnedQuantity', width: '100',title: '退货数量', sortable: true},
    {field: 'ProductName',width: '100', title: '客户名称', sortable: true},
    {field: 'Salesperson', width: '100',title: '业务员', sortable: true},
    {field: 'OrderDate',width: '100', title: '制单日期', sortable: true},
    {field: 'Remark', width: '100',title: '备注', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    // buttons: [{
    //   'name': '新增'
    // }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "ReturnNumber": "TD23072003",
      "SalesNumber": "NG23112209",
      "ShippingNumber": "JG23112209",
      'CustomerName':'张三',
      'ProjectName':'高性能环保镜',
      'ProductName':'4mm高性能环保镜',
      "ReturnedQuantity": "367",
      "Salesperson": "毛卫",
      "OrderDate": "23-11-30 00:00:00",
      "NewNum":'123123123',
      "Remark": "测试",
    } ,{
      "ReturnNumber": "TD23072003",
      "SalesNumber": "NG23112209",
      "ShippingNumber": "JG23112209",
      'CustomerName':'张三',
      'ProjectName':'高性能环保镜',
      'ProductName':'4mm高性能环保镜',
      "ReturnedQuantity": "367",
      "Salesperson": "毛卫",
      "OrderDate": "23-11-30 00:00:00",
      "NewNum":'123123123',
      "Remark": "测试",
    }, {
      "ReturnNumber": "TD23072003",
      "SalesNumber": "NG23112209",
      "ShippingNumber": "JG23112209",
      'CustomerName':'张三',
      'ProjectName':'高性能环保镜',
      'ProductName':'4mm高性能环保镜',
      "ReturnedQuantity": "367",
      "Salesperson": "毛卫",
      "OrderDate": "23-11-30 00:00:00",
      "NewNum":'123123123',
      "Remark": "测试",
    }
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
<div>
  <div>
    <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
<!--      <el-row gutter="7">-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="name" placeholder="销售单号" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="productName" placeholder="发货单号" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="salId" placeholder="客户名称" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="salId" placeholder="项目名称" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
<!--        <el-col :span="4">-->
<!--          <el-button id="searchButton" type="primary" :icon="Search" style="width: 100px; height: 25px">查询</el-button>-->
<!--        </el-col>-->
<!--      </el-row>-->
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
    </el-form>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
    </vxe-grid>
  </div>
  <div>
    <el-table :data="tableData" border style="width: 85.3%">
      <el-table-column prop="退货单号" label="退货单号" width="110" />
      <el-table-column prop="销售单号" label="销售单号" width="110" />
      <el-table-column prop="发货单号" label="发货单号" width="100"/>
      <el-table-column prop="客户名称" label="客户名称" width="80"/>
      <el-table-column prop="项目名称" label="项目名称" width="110"/>
      <el-table-column prop="产品名称" label="产品名称" width="180"/>
      <el-table-column prop="退货数量" label="退货数量" width="100"/>
      <el-table-column prop="业务员" label="业务员" width="100"/>
      <el-table-column prop="制单日期" label="制单日期" width="180"/>
      <el-table-column prop="备注" label="备注" width="80"/>
    </el-table>
  </div>
</div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue
@@ -1,146 +1,216 @@
<!-- 成品返工 -->
<!--成品返工-->
<script lang="ts" setup>
import {ref} from "vue";
const handleClick = (row)=>{
  router.push({
    path: '/orderAllocationUpdate',
    query: {
      rowData: JSON.stringify(row)
<script setup>
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
      break
    }
  });
  return {
    tableData,
    handleClick
  };
    case 'back':{
      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
      break
    }
    case 'out' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
      break
    }
  }
}
let tableData = ref([
  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
  },  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
  filterConfig: {   //筛选配置项
    remote: true
  },
])
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    // { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '220', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'SalesOrderNumber', width: '150',title: '销售单号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProjectName', width: '120',title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProcessCardNumber',width: '100', title: '流程卡号', sortable: true,showOverflow:"ellipsis"},
    {field: 'FinishedProductNumber', width: '100',title: '成品编号', sortable: true},
    {field: 'Quantity',width: '140', title: '数量', sortable: true},
    {field: 'ReworkQuantity',width: '140', title: '返工数量',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true},
    {field: 'ProductNumber',width: '100', title: '产品编号', sortable: true},
    {field: 'CustomerNumber', width: '100',title: '客户编号', sortable: true},
    {field: 'CustomerName',width: '100', title: '客户名称', sortable: true},
    {field: 'Length', width: '100',title: '长度', sortable: true},
    {field: 'Width',width: '100', title: '宽度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'SingleArea',width: '140', title: '单片面积', sortable: true},
    {field: 'TotalArea',width: '100', title: '总面积', sortable: true},
    {field: 'StorageArea',width: '100', title: '库区', sortable: true},
    {field: 'Location',width: '100', title: '库位', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
      'name': '返工确认',status: 'primary'
    },{
      'name': '返工记录'
    }],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
    },{
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
    },{
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
  <div>
    <div>
      <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        <el-row gutter="5">
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输客户名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输项目名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输销售单号" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
          <el-col :span="4">
            <el-dropdown>
              <el-button type="primary" style="width: auto">
                请选择返工类型<el-icon class="el-icon--right" style="width: 60px;">
                <arrow-down />
              </el-icon>
              </el-button>
              <template #dropdown>
                <el-dropdown-menu>
                  <el-dropdown-item>库存返工</el-dropdown-item>
                  <el-dropdown-item>退货返工</el-dropdown-item>
                </el-dropdown-menu>
              </template>
            </el-dropdown>
          </el-col>
          <el-col :span="2">
            <el-button id="searchButton" type="primary" :icon="Search">返工记录</el-button>
          </el-col>
          <el-col :span="4">
            <el-button id="searchButton" type="primary" :icon="Search">查询</el-button>
          </el-col>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">订单调拨</el-button>
        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">成品领出</el-button>
        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">成品返工</el-button>
      </template>
        </el-row>
      </el-form>
    </div>
    <div>
      <el-table :data="tableData" border style="width: 100%;">
        <el-table-column prop="销售单号" label="销售单号" width="180" style="text-align: center"/>
        <el-table-column prop="项目名称" label="项目名称" width="180" />
        <el-table-column prop="客户编号" label="客户编号" width="180"/>
        <el-table-column prop="客户名称" label="客户名称" width="180"/>
        <el-table-column prop="流程卡号" label="流程卡号" width="180"/>
        <el-table-column prop="成品编号" label="成品编号" width="180"/>
        <el-table-column prop="箱架号" label="箱架号" width="180"/>
        <el-table-column prop="成品名称" label="成品名称" width="180"/>
        <el-table-column prop="长" label="长" width="180"/>
        <el-table-column prop="宽" label="宽" width="180"/>
        <el-table-column prop="厚" label="厚" width="180"/>
        <el-table-column prop="数量" label="数量" width="180"/>
        <el-table-column prop="单片面积" label="单片面积" width="180"/>
        <el-table-column prop="总面积" label="总面积" width="180"/>
        <el-table-column prop="库区" label="库区" width="180"/>
        <el-table-column prop="库位" label="库位" width="180"/>
        <el-table-column fixed="left" label="操作" width="80">
          <template #default>
            <el-button link type="primary" size="small" @click="handleClick(row)"
            >编辑</el-button>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
          </template>
        </el-table-column>
      </el-table>
    </div>
    </vxe-grid>
  </div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue
@@ -1,130 +1,220 @@
<!-- 订单调拨 -->
<!--成品调拨-->
<script lang="ts" setup>
import {ref} from "vue";
const handleClick = (row)=>{
  router.push({
    path: '/orderAllocationUpdate',
    query: {
      rowData: JSON.stringify(row)
<script setup>
import {reactive} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      alert('我接收到子组件传送的编辑信息')
      // router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
      break
    }
  });
  return {
    tableData,
    handleClick
  };
    case 'back':{
      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
      break
    }
    case 'out' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
      break
    }
  }
}
let tableData = ref([
  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
  },  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  {
    "销售单号":'NG23121309',
    "项目名称":'钢化玻璃',
    "客户编号":'89',
    "客户名称":'',
    "流程卡号":'NG23121309A01',
    "成品编号":'0604000299',
    "箱架号":'0',
    "成品名称":'3.2mm拱形钢化玻璃',
    "长":'1610.00',
    "宽":'520.00',
    "厚":'3.20',
    "数量":'122.00',
    "单片面积":'0.8372',
    "总面积":'102.1384',
    "库区":'库区',
    "库位":'0',
  filterConfig: {   //筛选配置项
    remote: true
  },
])
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    // { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '80', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'SalesOrderNumber', width: '150',title: '销售单号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProjectName', width: '120',title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'NowNum', width: '120',title: '当前序号', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'Quantity',width: '140', title: '订单数量', sortable: true},
    {field: 'DiaoSalesOrderNumber', width: '150',title: '调拨单号',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'NewNum', width:'150', title: '新订序', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'DiaoQuantity',width: '140', title: '调拨数量',editRender: { name: 'input', attrs: { placeholder: '' } }, sortable: true},
    {field: 'ProcessCardNumber',width: '100', title: '流程卡号', sortable: true,showOverflow:"ellipsis"},
    {field: 'FinishedProductNumber', width: '100',title: '成品编号', sortable: true},
    {field: 'ProductNumber',width: '100', title: '产品编号', sortable: true},
    {field: 'CustomerNumber', width: '100',title: '客户编号', sortable: true},
    {field: 'CustomerName',width: '100', title: '客户名称', sortable: true},
    {field: 'Length', width: '100',title: '长度', sortable: true},
    {field: 'Width',width: '100', title: '宽度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'SingleArea',width: '140', title: '单片面积', sortable: true},
    {field: 'TotalArea',width: '100', title: '总面积', sortable: true},
    {field: 'StorageArea',width: '100', title: '库区', sortable: true},
    {field: 'Location',width: '100', title: '库位', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [
        {'name': '确认调架',status: 'primary'},
        {'name': '调拨记录'}
    ],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
      "NowNum":'1'
    },{
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
      "NowNum":'1'
    },{
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "ProcessCardNumber": "NG23072003A01",
      'FinishedProductNumber':'',
      'FinishedProductName':'',
      'BoxNumber':'',
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "Quantity": "360",
      "SingleArea": "0.473000",
      "TotalArea": "170.28",
      "StorageArea": "0.47",
      "Location": "170.28",
      "NowNum":'1'
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
</script>
<template>
<div>
  <div>
    <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
      <el-row gutter="5">
<!--      <el-col :span="4">-->
<!--        <el-input v-model="name" placeholder="请输客户名称" style="width: 200px; height: 30px;" />-->
<!--      </el-col>-->
<!--      <el-col :span="4">-->
<!--        <el-input v-model="name" placeholder="请输项目名称" style="width: 200px; height: 30px;" />-->
<!--      </el-col>-->
<!--        <el-col :span="4">-->
<!--          <el-input v-model="name" placeholder="请输销售单号" style="width: 200px; height: 30px;" />-->
<!--        </el-col>-->
        <el-col :span="2.5  ">
          <el-button id="searchButton" type="primary" :icon="Search">调架记录</el-button>
        </el-col>
        <el-col :span="4">
          <el-button id="searchButton" type="primary" :icon="Search">查询</el-button>
        </el-col>
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
      </el-row>
    </el-form>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
<!--        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">成品领出</el-button>-->
<!--        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">成品返工</el-button>-->
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
    </vxe-grid>
  </div>
  <div>
    <el-table :data="tableData" border style="width: 100%;">
      <el-table-column prop="销售单号" label="销售单号" width="180" style="text-align: center"/>
      <el-table-column prop="项目名称" label="项目名称" width="180" />
      <el-table-column prop="客户编号" label="客户编号" width="180"/>
      <el-table-column prop="客户名称" label="客户名称" width="180"/>
      <el-table-column prop="流程卡号" label="流程卡号" width="180"/>
      <el-table-column prop="成品编号" label="成品编号" width="180"/>
      <el-table-column prop="箱架号" label="箱架号" width="180"/>
      <el-table-column prop="成品名称" label="成品名称" width="180"/>
      <el-table-column prop="长" label="长" width="180"/>
      <el-table-column prop="宽" label="宽" width="180"/>
      <el-table-column prop="厚" label="厚" width="180"/>
      <el-table-column prop="数量" label="数量" width="180"/>
      <el-table-column prop="单片面积" label="单片面积" width="180"/>
      <el-table-column prop="总面积" label="总面积" width="180"/>
      <el-table-column prop="库区" label="库区" width="180"/>
      <el-table-column prop="库位" label="库位" width="180"/>
      <el-table-column fixed="left" label="操作" width="80">
        <template #default>
          <el-button link type="primary" size="small" @click="handleClick(row)"
          >编辑</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStock.vue
@@ -16,13 +16,14 @@
  <div id="main">
   <div id="div-title">
     <el-breadcrumb :separator-icon="ArrowRight">
       <el-breadcrumb-item :to="{ path: '/main/productStock/ProductStockList' }">产品查询</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/main/productStock/ProductStockList' }">库存查询</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/main/productStock/CreateProductStock' }">成品入库</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedProductOut' }">成品出库</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedProductReturn' }">订单成品退货</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/main/productStock/OrderAllocation' }">订单调拨</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedGoodsIssue' }">成品领出</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedProductRework' }">成品返工</el-breadcrumb-item>
       <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">报表</el-breadcrumb-item>
<!--       <el-breadcrumb-item :to="{ path: '/main/productStock/OrderAllocation' }">订单调拨</el-breadcrumb-item>-->
<!--       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedGoodsIssue' }">成品领出</el-breadcrumb-item>-->
<!--       <el-breadcrumb-item :to="{ path: '/main/productStock/FinishedProductRework' }">成品返工</el-breadcrumb-item>-->
       <!-- <el-breadcrumb-item :to="{ path: '/main/product/createProduct' }"></el-breadcrumb-item> -->
     </el-breadcrumb>
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue
@@ -1,287 +1,292 @@
<!-- 成品库存 -->
<script  lang="ts" setup>
import { ref } from 'vue'
import router from "@/router";
let tableData = ref([
  {
    "自序":'30',
    "订单序号":'1',
    "销售单号":'NG23072003',
    "项目名称":'钢化玻璃',
    "订单类型":'普通订单',
    "流程卡号":'NG23072003A01',
    "产品名称":'',
    "产品编号":'06040000022',
    "客户编号":'KD0071',
    "客户名称":'',
    "长度":'1075.00',
    "宽度":'440.00',
    "厚度":'3.00',
    "库存数":'360',
    "实际单片面积":'0.473000',
    "面积":'170.28',
    "结算单片面积":'0.47',
    "结算总面积":'170.28',
    "可用数量":'360',
    "楼层编号":'10927769',
    "送货地址":'钢化玻璃',
    "批次":'',
    "业务员":'陈宗凯',
    "平凡毫米":'1915.6500',
    "重量":'1.91565',
    "最后入库日期":'2023-09-22 08:31:17',
    "库位编号":'成品库',
    "库区":'库区',
    "库位":'0',
    "单据状态":'1',
    "备注":'',
  }, {
    "自序":'31',
    "订单序号":'1',
    "销售单号":'NG23072003',
    "项目名称":'钢化玻璃',
    "订单类型":'普通订单',
    "流程卡号":'NG23072003A02',
    "产品名称":'',
    "产品编号":'06040000022',
    "客户编号":'KD0071',
    "客户名称":'',
    "长度":'1075.00',
    "宽度":'440.00',
    "厚度":'3.00',
    "库存数":'360',
    "实际单片面积":'0.473000',
    "面积":'170.28',
    "结算单片面积":'0.47',
    "结算总面积":'170.28',
    "可用数量":'360',
    "楼层编号":'10927769',
    "送货地址":'钢化玻璃',
    "批次":'',
    "业务员":'陈宗凯',
    "平凡毫米":'1915.6500',
    "重量":'1.91565',
    "最后入库日期":'2023-09-22 08:31:17',
    "库位编号":'成品库',
    "库区":'库区',
    "库位":'0',
    "单据状态":'1',
    "备注":'',
  }, {
    "自序":'32',
    "订单序号":'1',
    "销售单号":'NG23072003',
    "项目名称":'钢化玻璃',
    "订单类型":'普通订单',
    "流程卡号":'NG23072003A01',
    "产品名称":'',
    "产品编号":'06040000022',
    "客户编号":'KD0071',
    "客户名称":'',
    "长度":'1075.00',
    "宽度":'440.00',
    "厚度":'3.00',
    "库存数":'360',
    "实际单片面积":'0.473000',
    "面积":'170.28',
    "结算单片面积":'0.47',
    "结算总面积":'170.28',
    "可用数量":'360',
    "楼层编号":'10927769',
    "送货地址":'钢化玻璃',
    "批次":'',
    "业务员":'陈宗凯',
    "平凡毫米":'1915.6500',
    "重量":'1.91565',
    "最后入库日期":'2023-09-22 08:31:17',
    "库位编号":'成品库',
    "库区":'库区',
    "库位":'0',
    "单据状态":'1',
    "备注":'',
  }, {
    "自序":'33',
    "订单序号":'1',
    "销售单号":'NG23072003',
    "项目名称":'钢化玻璃',
    "订单类型":'普通订单',
    "流程卡号":'NG23072003A01',
    "产品名称":'',
    "产品编号":'06040000022',
    "客户编号":'KD0071',
    "客户名称":'',
    "长度":'1075.00',
    "宽度":'440.00',
    "厚度":'3.00',
    "库存数":'360',
    "实际单片面积":'0.473000',
    "面积":'170.28',
    "结算单片面积":'0.47',
    "结算总面积":'170.28',
    "可用数量":'360',
    "楼层编号":'10927769',
    "送货地址":'钢化玻璃',
    "批次":'',
    "业务员":'陈宗凯',
    "平凡毫米":'1915.6500',
    "重量":'1.91565',
    "最后入库日期":'2023-09-22 08:31:17',
    "库位编号":'成品库',
    "库区":'库区',
    "库位":'0',
    "单据状态":'1',
    "备注":'',
  }, {
    "自序":'34',
    "订单序号":'1',
    "销售单号":'NG23072003',
    "项目名称":'钢化玻璃',
    "订单类型":'普通订单',
    "流程卡号":'NG23072003A01',
    "产品名称":'',
    "产品编号":'06040000022',
    "客户编号":'KD0071',
    "客户名称":'',
    "长度":'1075.00',
    "宽度":'440.00',
    "厚度":'3.00',
    "库存数":'360',
    "实际单片面积":'0.473000',
    "面积":'170.28',
    "结算单片面积":'0.47',
    "结算总面积":'170.28',
    "可用数量":'360',
    "楼层编号":'10927769',
    "送货地址":'钢化玻璃',
    "批次":'',
    "业务员":'陈宗凯',
    "平凡毫米":'1915.6500',
    "重量":'1.91565',
    "最后入库日期":'2023-09-22 08:31:17',
    "库位编号":'成品库',
    "库区":'库区',
    "库位":'0',
    "单据状态":'1',
    "备注":'',
  }, {
    "自序":'35',
    "订单序号":'1',
    "销售单号":'NG23072003',
    "项目名称":'钢化玻璃',
    "订单类型":'普通订单',
    "流程卡号":'NG23072003A01',
    "产品名称":'',
    "产品编号":'06040000022',
    "客户编号":'KD0071',
    "客户名称":'',
    "长度":'1075.00',
    "宽度":'440.00',
    "厚度":'3.00',
    "库存数":'360',
    "实际单片面积":'0.473000',
    "面积":'170.28',
    "结算单片面积":'0.47',
    "结算总面积":'170.28',
    "可用数量":'360',
    "楼层编号":'10927769',
    "送货地址":'钢化玻璃',
    "批次":'',
    "业务员":'陈宗凯',
    "平凡毫米":'1915.6500',
    "重量":'1.91565',
    "最后入库日期":'2023-09-22 08:31:17',
    "库位编号":'成品库',
    "库区":'库区',
    "库位":'0',
    "单据状态":'1',
    "备注":'',
<script setup>
import {reactive, ref} from "vue";
import {useRouter} from  'vue-router'
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/OrderAllocation', query: { id: row.id }})
      break
    }
    case 'back':{
      router.push({path: '/main/productStock/FinishedProductRework', query: { id: row.id }})
      break
    }
    case 'out' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
      break
    }
  }
])
const name = ref('')
const productName = ref('')
const salId = ref('')
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    // { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    // {title: '操作', width: '220', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'OrderNumber', width:'150', title: '订单序号', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'SalesOrderNumber', width: '150',title: '销售单号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'ProjectName', width: '120',title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'OrderType', width: '100',title: '订单类型', sortable: true},
    {field: 'ProcessCardNumber',width: '100', title: '流程卡号', sortable: true,showOverflow:"ellipsis"},
    {field: 'ProductName', width: '100',title: '产品名称', sortable: true},
    {field: 'ProductNumber',width: '100', title: '产品编号', sortable: true},
    {field: 'CustomerNumber', width: '100',title: '客户编号', sortable: true},
    {field: 'CustomerName',width: '100', title: '客户名称', sortable: true},
    {field: 'Length', width: '100',title: '长度', sortable: true},
    {field: 'Width',width: '100', title: '宽度', sortable: true},
    {field: 'Thickness', width: '100',title: '厚度', sortable: true},
    {field: 'InventoryCount',width: '140', title: '库存数', sortable: true},
    {field: 'ActualSingleArea',width: '140', title: '实际单片面积', sortable: true},
    {field: 'Area',width: '100', title: '面积', sortable: true},
    {field: 'SettlementSingleArea',width: '140', title: '结算单片面积', sortable: true},
    {field: 'SettlementTotalArea',width: '140', title: '结算总面积', sortable: true},
    {field: 'AvailableQuantity',width: '100', title: '可用数量', sortable: true},
    {field: 'FloorNumber',width: '100', title: '楼层编号', sortable: true},
    {field: 'DeliveryAddress',width: '100', title: '送货地址', sortable: true},
    {field: 'Batch',width: '100', title: '批次', sortable: true},
    {field: 'Salesman',width: '100', title: '业务员', sortable: true},
    {field: 'OrdinaryMillimeter',width: '100', title: '平凡毫米', sortable: true},
    {field: 'Weight',width: '100', title: '重量', sortable: true},
    {field: 'LastWarehousingDate',width: '140', title: '最后入库日期', sortable: true},
    {field: 'LocationNumber',width: '100', title: '库位编号', sortable: true},
    {field: 'StorageArea',width: '100', title: '存储区域', sortable: true},
    {field: 'Location',width: '100', title: '库位', sortable: true},
    {field: 'DocumentStatus',width: '100', title: '单据状态', sortable: true},
    {field: 'remark',width: '80', title: '备注', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [
      { 'code' :'issue','name':'订单调拨',status: 'primary'},
      { 'code' :'out','name':'成品领出',status: 'primary'},
      { 'code' :'rework','name':'成品返工',status: 'primary'},
    ],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  data:  [
    {
      "OrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "OrderType": "普通订单",
      "ProcessCardNumber": "NG23072003A01",
      "ProductName": '',
      "ProductNumber": "06040000022",
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "InventoryCount": "360",
      "ActualSingleArea": "0.473000",
      "Area": "170.28",
      "SettlementSingleArea": "0.47",
      "SettlementTotalArea": "170.28",
      "AvailableQuantity": "360",
      "FloorNumber": "10927769",
      "DeliveryAddress": "上海",
      "Batch": "测试",
      "OrdinaryMillimeter": "陈宗凯",
      "Weight": "1915.6500",
      "LastWarehousingDate": "2023-09-22 08:31:17",
      "LocationNumber": "成品库",
      "StorageArea": "测试",
      "Location": "2",
      "DocumentStatus": "1",
      "Remarks": "测试",
    },
    {
      "OrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "OrderType": "普通订单",
      "ProcessCardNumber": "NG23072003A01",
      "ProductName": '',
      "ProductNumber": "06040000022",
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "InventoryCount": "360",
      "ActualSingleArea": "0.473000",
      "Area": "170.28",
      "SettlementSingleArea": "0.47",
      "SettlementTotalArea": "170.28",
      "AvailableQuantity": "360",
      "FloorNumber": "10927769",
      "DeliveryAddress": "上海",
      "Batch": "测试",
      "OrdinaryMillimeter": "陈宗凯",
      "Weight": "1915.6500",
      "LastWarehousingDate": "2023-09-22 08:31:17",
      "LocationNumber": "成品库",
      "StorageArea": "测试",
      "Location": "2",
      "DocumentStatus": "1",
      "Remarks": "测试",
    },{
      "OrderNumber": "1",
      "SalesOrderNumber": "NG23072003",
      "ProjectName": "钢化玻璃",
      "OrderType": "普通订单",
      "ProcessCardNumber": "NG23072003A01",
      "ProductName": '',
      "ProductNumber": "06040000022",
      "CustomerNumber": "KD0071",
      "CustomerName": "件",
      "Length": "1075.00",
      "Width": "440.00",
      "Thickness": "3.00",
      "InventoryCount": "360",
      "ActualSingleArea": "0.473000",
      "Area": "170.28",
      "SettlementSingleArea": "0.47",
      "SettlementTotalArea": "170.28",
      "AvailableQuantity": "360",
      "FloorNumber": "10927769",
      "DeliveryAddress": "上海",
      "Batch": "测试",
      "OrdinaryMillimeter": "陈宗凯",
      "Weight": "1915.6500",
      "LastWarehousingDate": "2023-09-22 08:31:17",
      "LocationNumber": "成品库",
      "StorageArea": "测试",
      "Location": "2",
      "DocumentStatus": "1",
      "Remarks": "测试",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
const  xGrid = ref();
const gridEvents = {
  toolbarButtonClick({ code }) {
    const $grid = xGrid.value
    if($grid){
      switch (code){
        case 'issue':{
          /*VXETable.modal.confirm('点击了库存调拨');*/
          router.push({path: '/main/productStock/OrderAllocation'});
          return;
          break
        }
        case 'out':{
          router.push({path: '/main/productStock/FinishedGoodsIssue'});
          return;
          break;
        }
        case 'rework':{
          router.push({path: '/main/productStock/FinishedProductRework'});
          return;
          break;
        }
      }
    }
  }
}
</script>
<template>
  <div>
    <!-- 表单开始 -->
    <div>
      <el-form  size="medium" >
       <el-row gutter="7">
<!--  <el-col :span="4">-->
<!--    <el-input v-model="name" placeholder="请输入客户名称" style="width: 200px; height: 30px;" />-->
<!--  </el-col>-->
<!--  <el-col :span="4">-->
<!--    <el-input v-model="productName" placeholder="请输入项目名称" style="width: 200px; height: 30px;" />-->
<!--  </el-col>-->
<!--  <el-col :span="4">-->
<!--    <el-input v-model="salId" placeholder="请输入销售单号" style="width: 200px; height: 30px;" />-->
<!--  </el-col>-->
  <el-col :span="6.5">
    <el-date-picker
    type="daterange"
    start-placeholder="开始时间"
    end-placeholder="结束时间"
   />
  </el-col>
  <el-col :span="4">
           <el-button id="searchButton" type="primary" :icon="Search" style="width: 100px;">查询</el-button>
         </el-col>
</el-row>
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
<!--        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">订单调拨</el-button>-->
<!--        <el-button @click="getTableRow(row,'out')" link type="primary" size="small">成品领出</el-button>-->
<!--        <el-button @click="getTableRow(row,'back')" link type="primary" size="small">成品返工</el-button>-->
      </template>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
        <!-- <el-form-item size="large">
          <el-button type="primary" @click="submitForm">查询</el-button>
          <el-button @click="resetForm">重置</el-button>
        </el-form-item>-->
      </el-form>
    </div>
    <!-- 表单结束 -->
    <!-- 表格开始 -->
    <div>
  <el-table :data="tableData" border style="width: 100%">
    <el-table-column prop="自序" label="自序" width="180" />
    <el-table-column prop="订单序号" label="订单序号" width="180" />
    <el-table-column prop="销售单号" label="销售单号" width="180"/>
    <el-table-column prop="项目名称" label="项目名称" width="180"/>
    <el-table-column prop="订单类型" label="订单类型" width="180"/>
    <el-table-column prop="流程卡号" label="流程卡号" width="180"/>
    <el-table-column prop="产品名称" label="产品名称" width="180"/>
    <el-table-column prop="产品编号" label="产品编号" width="180"/>
    <el-table-column prop="客户编号" label="客户编号" width="180"/>
    <el-table-column prop="客户名称" label="客户名称" width="180"/>
    <el-table-column prop="长度" label="长度" width="180"/>
    <el-table-column prop="宽度" label="宽度" width="180"/>
    <el-table-column prop="厚度" label="厚度" width="180"/>
    <el-table-column prop="库存数" label="库存数" width="180"/>
    <el-table-column prop="实际单片面积" label="实际单片面积" width="180"/>
    <el-table-column prop="面积" label="面积" width="180"/>
    <el-table-column prop="结算单片面积" label="结算单片面积" width="180"/>
    <el-table-column prop="结算总面积" label="结算总面积" width="180"/>
    <el-table-column prop="可用数量" label="可用数量" width="180"/>
    <el-table-column prop="楼层编号" label="楼层编号" width="180"/>
    <el-table-column prop="送货地址" label="送货地址" width="180"/>
    <el-table-column prop="批次" label="批次" width="180"/>
    <el-table-column prop="业务员" label="业务员" width="180"/>
    <el-table-column prop="平方毫米" label="平方毫米" width="180"/>
    <el-table-column prop="重量" label="重量" width="180"/>
    <el-table-column prop="最后入库日期" label="最后入库日期" width="180"/>
    <el-table-column prop="库位编号" label="库位编号" width="180"/>
    <el-table-column prop="库区" label="库区" width="180"/>
    <el-table-column prop="库位" label="库位" width="180"/>
    <el-table-column prop="单据状态" label="单据状态" width="180"/>
    <el-table-column prop="备注" label="备注" width="180"/>
  </el-table>
    </div>
    <!-- 表格结束 -->
    </vxe-grid>
  </div>
  </template>
</template>
  <style scoped>
  </style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainTrader/CreateTrader.vue
@@ -1,4 +1,4 @@
<script>
<script lang="ts" setup>
</script>
<template>
@@ -79,7 +79,7 @@
            <el-button id="searchButton" type="primary" :icon="Search">查询</el-button>
          </el-col>
          <el-col span="4.5">
            <el-button id="searchButton" type="primary" :icon="Search">确定</el-button>
            <el-button id="searchButton" type="primary" :icon="save">确定</el-button>
          </el-col>
        </el-row>
      </el-form>
north-glass-erp/northglass-erp/src/views/mm/mainTrader/SelectTrader.vue
@@ -1,184 +1,219 @@
<!-- 供应商管理 -->
<script lang="ts" setup>
import { ref } from "vue";
const name = ref('')
const productName = ref('')
const salId = ref('')
let tableData = ref([
  {
    "供应商编码":'221',
    "供应商名称":'成都正华电子仪器有限公司',
    "代理产品":'辅料',
    "结算方式":'货到付款',
    "联系人":'',
    "联系电话":'',
    "税率":'13.00',
    "公司地址":'北京市辖区东城区',
    "收货地址":'北京市辖区东城区',
    "所属集团":'',
    "等级":'',
    "单据状态":'未审核',
    "审核员":'0.0000',
    "审核日期":'2023-11-19',
    "换算单位":'0',
    "备注":'0',
<script setup>
import {reactive, ref} from "vue";
import {useRouter} from  'vue-router'
import {VXETable} from "vxe-table";
let router=useRouter()
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
      break
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
}
//子组件接收参数
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  {
    "供应商编码":'220',
    "供应商名称":'广州合申机电科技有限公司',
    "代理产品":'辅料',
    "结算方式":'货到付款',
    "联系人":'',
    "联系电话":'',
    "税率":'13.00',
    "公司地址":'北京市辖区东城区',
    "收货地址":'北京市辖区东城区',
    "所属集团":'',
    "等级":'',
    "单据状态":'未审核',
    "审核员":'0.0000',
    "审核日期":'2023-11-19',
    "换算单位":'0',
    "备注":'0',
  filterConfig: {   //筛选配置项
    remote: true
  },
  {
    "供应商编码":'219',
    "供应商名称":'江门市中锐金刚石工具有限公司',
    "代理产品":'辅料',
    "结算方式":'货到付款',
    "联系人":'',
    "联系电话":'',
    "税率":'13.00',
    "公司地址":'北京市辖区东城区',
    "收货地址":'北京市辖区东城区',
    "所属集团":'',
    "等级":'',
    "单据状态":'未审核',
    "审核员":'0.0000',
    "审核日期":'2023-11-19',
    "换算单位":'0',
    "备注":'0',
  customConfig: {
    storage: true
  },
  {
    "供应商编码":'218',
    "供应商名称":'深圳悦创精密自动化技术有限公司',
    "代理产品":'辅料',
    "结算方式":'货到付款',
    "联系人":'',
    "联系电话":'',
    "税率":'13.00',
    "公司地址":'北京市辖区东城区',
    "收货地址":'北京市辖区东城区',
    "所属集团":'',
    "等级":'',
    "单据状态":'未审核',
    "审核员":'0.0000',
    "审核日期":'2023-11-19',
    "换算单位":'0',
    "备注":'0',
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
    // { type: 'checkbox',fixed:"left", title: '选择', width: '80' },
    { type: 'seq',fixed:"left", title: '自序', width: '80' },
    {title: '操作', width: '110', slots: { default: 'button_slot' },fixed:"left"},
    {field: 'supplierCode', width:'150', title: '供应商编号', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } },
    {field: 'supplierName', width: '150',title: '供应商名称', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'agentProduct', width: '120',title: '代理产品', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'settlementMethod', width: '100',title: '结算方式', sortable: true},
    {field: 'contactPerson',width: '100', title: '联系人', sortable: true,showOverflow:"ellipsis"},
    {field: 'taxRate', width: '80',title: '税率', sortable: true},
    {field: 'companyAddress',width: '100', title: '公司地址', sortable: true},
    {field: 'receivingAddress', width: '100',title: '收货地址', sortable: true},
    {field: 'belongingGroup',width: '100', title: '所属集团', sortable: true},
    {field: 'grade', width: '80',title: '等级', sortable: true},
    {field: 'documentStatus',width: '100', title: '单据状态', sortable: true},
    {field: 'auditor', width: '100',title: '审核员', sortable: true},
    {field: 'auditDate',width: '110', title: '审核日期', sortable: true},
    {field: 'conversionUnit',width: '100', title: '换算单位', sortable: true},
    {field: 'remark',width: '80', title: '备注', sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
      'name': '新增',
       'code':'add'
    },],
    import: false,
    export: true,
    print: true,
    zoom: true,
    custom: true
  },
  {
    "供应商编码":'217',
    "供应商名称":'深圳市伯欣科技有限公司',
    "代理产品":'辅料',
    "结算方式":'货到付款',
    "联系人":'',
    "联系电话":'',
    "税率":'13.00',
    "公司地址":'北京市辖区东城区',
    "收货地址":'北京市辖区东城区',
    "所属集团":'',
    "等级":'',
    "单据状态":'未审核',
    "审核员":'0.0000',
    "审核日期":'2023-11-19',
    "换算单位":'0',
    "备注":'0',
  data:  [
    {
      "supplierCode": 216,
      "supplierName": "宿迁宣之文电子商务有限公司",
      "agentProduct": "辅料",
      "settlementMethod": "货到付款",
      "contactPerson": "平钢",
      "taxRate": 13.00,
      "companyAddress": "北京市辖区东城区",
      "receivingAddress": "北京市辖区东城区",
      "belongingGroup": "上海北玻",
      "grade": "5",
      "documentStatus": "未审核",
      "auditor": "小岳",
      "auditDate": "2023-11-19",
      "conversionUnit": "0",
      "remark": "测试",
    },
    {
      "supplierCode": 215,
      "supplierName": "宿迁宣之文电子商务有限公司",
      "agentProduct": "辅料",
      "settlementMethod": "货到付款",
      "contactPerson": "小岳",
      "taxRate": 13.00,
      "companyAddress": "北京市辖区东城区",
      "receivingAddress": "北京市辖区东城区",
      "belongingGroup": "上海北玻",
      "grade": "5",
      "documentStatus": "未审核",
      "auditor": "小岳",
      "auditDate": "2023-11-19",
      "conversionUnit": "0",
      "remark": "测试",
    },
  ],//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        return ''
      })
    ]
  }
})
const  xGrid = ref();
const gridEvents = {
  toolbarButtonClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'add': {
          router.push({path: '/main/trader/CreateTrader'})
          /*if($grid.getCheckboxRecords().length==0){
            VXETable.modal.message( '请选择一条数据!')
            return
          }*/
          return;
        }
      }
    }
  },
  {
    "供应商编码":'216',
    "供应商名称":'宿迁宣之文电子商务有限公司',
    "代理产品":'辅料',
    "结算方式":'货到付款',
    "联系人":'',
    "联系电话":'',
    "税率":'13.00',
    "公司地址":'北京市辖区东城区',
    "收货地址":'北京市辖区东城区',
    "所属集团":'',
    "等级":'',
    "单据状态":'未审核',
    "审核员":'0.0000',
    "审核日期":'2023-11-19',
    "换算单位":'0',
    "备注":'0',
  toolbarToolClick ({ code }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'myPrint': {
          $grid.print()
          break
        }
      }
    }
  },
])
}
</script>
<template>
  <div>
    <!-- 表单开始 -->
    <div>
      <el-form  size="medium" >
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
<!--        <el-row gutter="5">-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="name" placeholder="请输入供应商编码" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="productName" placeholder="请输入供应商名称" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="salId" placeholder="请输入代理产品" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-input v-model="salId" placeholder="请输入联系人" style="width: 200px; height: 30px;" />-->
<!--          </el-col>-->
<!--          <el-col :span="4">-->
<!--            <el-button id="searchButton" type="primary" :icon="Search">查询</el-button>-->
<!--          </el-col>-->
<!--        </el-row>-->
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row}">
        <ul class="expand-wrapper">
          <li  v-for="(item,key,index) in row">
            <span style="font-weight: bold">{{key+':  '}}</span>
            <span>{{ item }}</span>
          </li>
        </ul>
      </template>
        <!-- <el-form-item size="large">
          <el-button type="primary" @click="submitForm">查询</el-button>
          <el-button @click="resetForm">重置</el-button>
        </el-form-item>-->
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">编辑</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">删除</el-button>
      </template>
      </el-form>
    </div>
    <!-- 表单结束 -->
    <!-- 表格开始 -->
    <div>
      <el-table :data="tableData" border style="width: 100%">
        <el-table-column prop="供应商编码" label="供应商编码" width="180" />
        <el-table-column prop="供应商名称" label="供应商名称" width="180" />
        <el-table-column prop="代理产品" label="代理产品" width="180"/>
        <el-table-column prop="结算方式" label="结算方式" width="180"/>
        <el-table-column prop="联系人" label="联系人" width="180"/>
        <el-table-column prop="联系电话" label="联系电话" width="180"/>
        <el-table-column prop="税率" label="税率" width="180"/>
        <el-table-column prop="公司地址" label="公司地址" width="180"/>
        <el-table-column prop="收货地址" label="收货地址" width="180"/>
        <el-table-column prop="所属集团" label="所属集团" width="180"/>
        <el-table-column prop="等级" label="等级" width="180"/>
        <el-table-column prop="单据状态" label="单据状态" width="180"/>
        <el-table-column prop="审核员" label="审核员" width="180"/>
        <el-table-column prop="审核日期" label="审核日期" width="180"/>
        <el-table-column prop="换算单位" label="换算单位" width="180"/>
        <el-table-column prop="备注" label="备注" width="180"/>
        <el-table-column fixed="left" label="操作" width="120">
          <template #default>
            <el-button link type="primary" size="small" @click="handleClick"
            >修改</el-button
            >
            <el-button link type="primary" size="small">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
    </vxe-grid>
  </div>
</template>
<style>
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/mm/mainTrader/Trader.vue
@@ -19,8 +19,9 @@
  <div id="main">
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item :to="{ path: '/main/trader/SelectTrader' }">产品查询</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/trader/CreateTrader' }">创建</el-breadcrumb-item>
        <el-breadcrumb-item :to="{ path: '/main/trader/SelectTrader' }">供应商列表</el-breadcrumb-item>
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">报表</el-breadcrumb-item>
<!--        <el-breadcrumb-item :to="{ path: '/main/trader/CreateTrader' }">创建</el-breadcrumb-item>-->
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/pp/BOM/OrderBOMDetails.vue
@@ -73,7 +73,6 @@
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
    { type: 'seq',fixed:"left", title: '自序', width: 50 },
    {title: '操作', width: 60, slots: { default: 'button_slot' },fixed:"left"},
    { slots: { default: 'state' }, title: '基准BOM', width: 110 },
    { slots: { default: 'state' }, title: '标准BOM', width: 110 },
    { slots: { default: 'state' }, title: '审核', width: 80 },