guoyuji
2024-06-04 fcc47ceae27b5dc6eccacf0fdd014fd7cb71cc2c
尺寸确认已完成
2个文件已修改
1个文件已添加
183 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -54,8 +54,8 @@
  {field: 'technology_number', width: 90,title: '小片顺序',showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: '数量'},
  {field: 'shippedQuantity',width: 120, title: '发货数量'},
  {field: 'inventory',width: 120, title: '入库数量'},
  {field: 'inventoryArea',width: 120, title: '入库面积'},
  {field: 'inventory',width: 120, title: '库存数量'},
  {field: 'inventoryArea',width: 120, title: '库存面积'},
  {field: 'broken_num',width: 90, title: '次破数量'},
]
let column = [0,1,3,6,7,8,9]
north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue
New file
@@ -0,0 +1,138 @@
<script setup>
import {defineEmits, onMounted, reactive, ref, watch} from "vue";
import {changeFilterEvent, filterChanged} from "@/hook"
import {useI18n} from "vue-i18n"
import request from "@/utils/request"
import {ElMessage} from "element-plus";
const { t } = useI18n()
const xGrid = ref()
const gridOptions = reactive({
  loading:false,
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  showOverflow:true,
  id:'sizeCheck',
  toolbarConfig: {
    buttons: [
      {'code': 'review', 'name': '审核',status: 'primary'},
    ]
  },
  rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮
  virtualScroll: true, // 开启虚拟滚动功能
  scrollY:{ enabled: true,gt:13 },//开启虚拟滚动
  //scrollX:{ enabled: true,gt:15 },//开启虚拟滚动
  columnConfig: {
    useKey: true
  },
  editConfig: {
    trigger: 'dblclick',
    mode: 'cell',
    showStatus: true,
    showIcon:false
  },
  mouseConfig:{selected: true},
  keyboardConfig:{
    isArrow: true,
    isDel: true,
    isEnter: true,
    isTab: true,
    isEdit: true,
    isChecked: true,
    enterToTab:true
  },
  customConfig: {
    storage: true
  },
  columns:[
    {field: 'width',  title: '宽',editRender: { name: 'input'}},
    {field: 'height',  title:'高', editRender: { name: 'input'}},
    {field: 'quantity', title: '数量' ,editRender: { name: 'input'}, },
  ],
  editRules: {
    width: [
      { required: true, message: '必填,参数不一致' }
    ],
    height: [
      { required: true, message: '必填,参数不一致' }
    ],
    quantity: [
      { required: true, message: '必填,参数不一致' }
    ]
  }
})
const gridEvents = {
  async toolbarButtonClick({code}) {
    const $grid = xGrid.value
    if ($grid) {
      switch (code) {
        case 'review' :{
          const errMap = await $grid.validate(true)
          if (errMap) {
            ElMessage.error(t('basicData.msg.checkoutLose'))
            return
          }
          // const $table = props.OrderDetail
          // $table.getTableData().fullData.forEach((row)=>{
          //   if()row.computeGrossArea
          // })
          emit('getParent')
          break
        }
      }
    }
  }
}
const emit = defineEmits(['getParent'])
let props = defineProps({
  OrderDetail:null
})
onMounted(()=>{
  const length = props.OrderDetail.getTableData().fullData.length
  const $grid = xGrid.value
  let list = []
  for (let i = 0; i < length; i++) {
    list.push({})
  }
  xGrid.value.reloadData(list)
})
const editClosedEvent = ({ row, column,rowIndex}) => {
  const $table = props.OrderDetail
  let checkVal = row[column.property]*1
  const oldVal = $table.getTableData().fullData[rowIndex][column.property]*1
  if(checkVal!=oldVal){
    row[column.property]=null
  }
}
</script>
<template>
  <div style="width: 100%;height: 100%">
    <vxe-grid
        height="100%"
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
        @edit-closed="editClosedEvent"
    >
    </vxe-grid>
  </div>
</template>
<style scoped>
</style>
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -8,6 +8,7 @@
import  useUserInfoStore from '@/stores/userInfo'
import SelectProduct from "@/views/sd/product/SelectProduct.vue"
import OrderOtherMoney from "@/components/sd/order/OrderOtherMoney.vue"
import OrderSizeCheck from "@/components/sd/order/OrderSizeCheck.vue"
import {changeFilterEvent,filterChanged} from "@/hook"
import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove"
import downLoadFile from "@/hook/downLoadFile"
@@ -19,6 +20,7 @@
let productVisible = ref(false)
let errorAreaVisible = ref(false)
let otherMoneyVisible = ref(false)
let sizeCheckVisible = ref(false)
const maxTableLen =ref(150)
let errorArea = ref(0.4)
const userStore = useUserInfoStore()
@@ -104,7 +106,8 @@
          { code: 'clearChecked', name: t('basicData.clearSelection'), prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false },
          { code: 'computedMoney', name: t('basicData.calculateAmount'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true },
          { code: 'errorArea', name: '误差结算面积', prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false },
          { code: 'otherMoney', name: '其他金额', prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false }
          { code: 'otherMoney', name: '其他金额', prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false },
          { code: 'sizeCheck', name: '尺寸审核', prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: true }
        ]
      ]
    }
@@ -434,6 +437,10 @@
          otherMoneyVisible.value=true
          break
        }
        case 'sizeCheck' :{
          sizeCheckVisible.value=true
          break
        }
      }
    }
  },
@@ -500,10 +507,12 @@
      if(res.data.order.processReview === 2){
        gridOptions.toolbarConfig.buttons[4].disabled = true
      }
      //取消审核按钮禁用
      //工艺审核后,订单未审核 取消审核按钮禁用和尺寸审核
      if(res.data.order.processReview === 2 && res.data.order.orderReview === 0){
        gridOptions.toolbarConfig.buttons[2].disabled = false
        gridOptions.menuConfig.body.options[0][8].disabled =false
      }
      //按钮审核过后变为反审
@@ -512,6 +521,7 @@
        gridOptions.toolbarConfig.buttons[2].code='reviews'
        gridOptions.toolbarConfig.buttons[2].name=t('basicData.cancelReview')
        gridOptions.toolbarConfig.buttons[3].disabled = false
        const button = {'code': 'cancelOrder',
          status: 'primary',
          'name': (res.data.order.orderReview>0?t('basicData.cancel'):t('basicData.restore'))}
@@ -656,6 +666,13 @@
      ElMessage.error(res.msg)
    }
  })
}
const gaveOrderSizeCheck = () => {
  reviewOrder(2)
}
const changeCustomer =  () => {
@@ -1074,6 +1091,21 @@
          style="width: 100%;height: 100%" />
    </el-dialog>
<!--    尺寸审核窗口-->
    <el-dialog
        id="sizeCheck"
        v-model="sizeCheckVisible"
       :title="'尺寸校验'"
       destroy-on-close
       :close-on-click-modal="false"
       :close-on-press-escape="false"
       style="width: 614px;height:445px "
    >
      <order-size-check
          @getParent="gaveOrderSizeCheck"
          :OrderDetail="xGrid"/>
    </el-dialog>
  </div>
</template>
@@ -1111,4 +1143,9 @@
    width: 100%;
  }
  :deep(#sizeCheck .el-dialog__body){
    height: 90%;
    width: 100%;
  }
</style>