north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
@@ -12,9 +12,9 @@
import BasicTable from '@/components/sd/product/BasicTable.vue'
import {VXETable} from "vxe-table";
import useUserInfoStore from "@/stores/userInfo";
import { useI18n } from 'vue-i18n'
import {useI18n} from 'vue-i18n'
//语言获取
const { t } = useI18n()
const {t} = useI18n()
let productGlassTypeStore = useProductGlassTypeStore()
let router = useRouter()
const userStore = useUserInfoStore()
@@ -36,7 +36,7 @@
          location.reload();
        } else {
          ElMessage.warning(res.msg)
         // router.push("/login")
          // router.push("/login")
        }
      })
      break
@@ -144,7 +144,7 @@
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe: true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮
  rowConfig: {isCurrent: true, isHover: true, height: 30, useKey: false},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
@@ -157,7 +157,7 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
                    //remote: true
    //remote: true
  },
  customConfig: {
    storage: true
@@ -245,7 +245,7 @@
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe: true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮
  rowConfig: {isCurrent: true, isHover: true, height: 30, useKey: false},//鼠标移动或选择高亮
  id: 'CustomerList',
  showFooter: true,//显示脚
  printConfig: {},
@@ -258,7 +258,7 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
                    //remote: true
    //remote: true
  },
  customConfig: {
    storage: true
@@ -275,7 +275,7 @@
      title: t('processCard.processId'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      width: 130,
      width: 100,
      filterMethod: filterChanged
    },
    {
@@ -293,7 +293,13 @@
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'shape', title: t('order.shape'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged},
    {
      field: 'shape',
      title: t('order.shape'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'width', title: t('order.width'), showOverflow: "ellipsis"},
    {field: 'height', title: t('order.height')},
    {field: 'quantity', title: t('order.quantity')},
@@ -357,30 +363,31 @@
  if (/^[1-9]\d*$/.test(checkedNum.value)) {
    checkedList.forEach((item) => {
      //定义key值保持
      //判断可用数量是否大于等于输入的数量,不满足则抛出异常
      if (item.baiscQuantity * 1 < checkedNum.value * 1) throw new Error(t('processCard.schedulingQuantity'));
      item.quantity =  checkedNum.value
      item.quantity = checkedNum.value
      item.processId = processId
      item.landingSequence = index
      item.baiscQuantity=item.baiscQuantity - checkedNum.value
    })
    //删除key
    checkedList.forEach((item) => {
      item.baiscQuantity = item.baiscQuantity - checkedNum.value
      item.computeGrossArea = item.computeGrossArea - item.width * item.height * checkedNum.value / 1000000
      //删除key
      let key = item._X_ROW_KEY
      delete item._X_ROW_KEY
      if (item.baiscQuantity===0){
      if (item.baiscQuantity === 0) {
        $grid.remove(checkedList)
      }
      $gridLeft.insertAt(checkedList)
      $gridLeft.insertAt(item)
      //重新赋值key
      item._X_ROW_KEY = key
    })
//清除两边复选框
    //清除两边复选框
    $gridLeft.clearCheckboxRow()
    $grid.clearCheckboxRow()
  }
  else if (checkedNum.value === '') {//判断数量输入框无输入数字
  } else if (checkedNum.value === '') {//判断数量输入框无输入数字
    checkedList.forEach((item) => {
      item.processId = processId
@@ -397,11 +404,7 @@
    $gridLeft.clearCheckboxRow()
    $grid.clearCheckboxRow()
  }
}
//向右边表格添加数据
@@ -437,18 +440,29 @@
        let filterIndex = rightData.findIndex(item1 => item1.orderNumber === item.orderNumber)
        //如果右边表格数据中存在当前数据则数量相加
        if (filterIndex >= 0) {
          //数量
          rightData[filterIndex].baiscQuantity = rightData[filterIndex].baiscQuantity * 1 + checkedNum.value * 1
          //面积
          rightData[filterIndex].computeGrossArea=rightData[filterIndex].width*rightData[filterIndex].height*rightData[filterIndex].baiscQuantity/1000000
          //如果左边数量为0时删除此条数据
          if (item.quantity === 0) {
            $gridLeft.remove(item)
          //删除key
          let key = item._X_ROW_KEY
          delete item._X_ROW_KEY
          if (item.baiscQuantity === 0) {
            $grid.remove(checkedList)
          }
          item._X_ROW_KEY = key
        } else {
          //右边表格没有此条数据则往右边表格插入数据
          item.baiscQuantity = checkedNum.value
          item.computeGrossArea=item.width*item.height*checkedNum.value/1000000
          if (item.quantity === 0) {
            $gridLeft.remove(item)
          }
          $grid.insert(item)
        }
        if (item.quantity === 0) {
          $gridLeft.remove(item)
        }
      })
    } else if (checkedNum.value === '') {//判断数量输入框无输入数字
@@ -459,6 +473,9 @@
        //无输入并且如果右边表格数据中存在当前数据则数量相加
        if (filterIndex > -1) {
          rightData[filterIndex].baiscQuantity = rightData[filterIndex].baiscQuantity * 1 + item.quantity * 1
          //面积
          rightData[filterIndex].computeGrossArea=rightData[filterIndex].width*rightData[filterIndex].height*rightData[filterIndex].baiscQuantity/1000000
        } else {
          delete item._X_ROW_KEY
          $grid.insert(item)
@@ -507,6 +524,7 @@
        //判断可用数量是否大于等于输入的数量,不满足则抛出异常
        if (item.baiscQuantity * 1 < checkedNum.value * 1) throw new Error("请输入小于等于待分数量的数字");
        item.baiscQuantity = item.baiscQuantity - checkedNum.value
        item.computeGrossArea=item.computeGrossArea-item.width*item.height*checkedNum.value/1000000
        //定义key值保持
        let key = item._X_ROW_KEY
        //左边表格数据
@@ -519,6 +537,7 @@
          //如果右边表格数据中存在当前数据则数量相加
          if (filterIndex >= 0) {
            leftData[filterIndex].quantity = leftData[filterIndex].quantity * 1 + checkedNum.value * 1
            leftData[filterIndex].computeGrossArea=leftData[filterIndex].computeGrossArea-leftData[filterIndex].width*leftData[filterIndex].height*leftData[filterIndex].baiscQuantity/1000000
            if (item.baiscQuantity === 0) {
              $grid.remove(checkedList)
@@ -528,6 +547,7 @@
            item.quantity = checkedNum.value
            item.processId = checkedListLeft[0].processId
            item.landingSequence = checkedListLeft[0].landingSequence
            item.computeGrossArea=item.computeGrossArea-checkedListLeft[0].width*checkedListLeft[0].height*checkedNum.value/1000000
            delete item._X_ROW_KEY
            $gridLeft.insert(item)
            item._X_ROW_KEY = key
@@ -538,6 +558,7 @@
          item.quantity = checkedNum.value
          item.processId = checkedListLeft[0].processId
          item.landingSequence = checkedListLeft[0].landingSequence
          // /item.computeGrossArea=item.computeGrossArea
          if (item.baiscQuantity === 0) {
            $grid.remove(checkedList)
@@ -545,6 +566,8 @@
          for (let i = 0; i < leftData.length; i++) {
            if (leftData[i].orderNumber === item.orderNumber && leftData[i].processId === item.processId) {
              leftData[i].quantity = leftData[i].quantity * 1 + checkedNum.value * 1
              leftData[i].computeGrossArea=leftData[i].computeGrossArea-leftData[i].width*leftData[i].height*leftData[i].baiscQuantity/1000000
              break
            } else if (leftData[i].orderNumber === item.orderNumber && leftData[i].processId !== item.processId) {
@@ -552,8 +575,7 @@
              $gridLeft.insert(item)
              item._X_ROW_KEY = key
              break
            }
            else if (leftData[i].orderNumber !== item.orderNumber && leftData[i].processId !== item.processId) {
            } else if (leftData[i].orderNumber !== item.orderNumber && leftData[i].processId !== item.processId) {
              delete item._X_ROW_KEY
              $gridLeft.insert(item)
@@ -569,6 +591,8 @@
        item.processId = checkedListLeft[0].processId
        item.landingSequence = checkedListLeft[0].landingSequence
        item.quantity = checkedListLeft[0].baiscQuantity
        item.computeGrossArea=item.computeGrossArea-checkedListLeft[0].width*checkedListLeft[0].height*checkedListLeft[0].baiscQuantity/1000000
        delete item._X_ROW_KEY
      })
      $gridLeft.insertAt(checkedList)
@@ -597,7 +621,7 @@
          const $tableRight = xGrid.value
          if ($table) {
            const selectRecords = $table.getCheckboxRecords()
          //  const selectRight = $tableRight.getCheckboxRecords()
            //  const selectRight = $tableRight.getCheckboxRecords()
            let leftData = $tableRight.getTableData().fullData
            if (selectRecords.length === 0) {
              ElMessage.warning("请先选择保存的数据")
@@ -667,10 +691,11 @@
          <vxe-grid
              ref="xGridLeft"
              class="mytable-scrollbar"
              max-height="100%"
              height="650px"
              max-height="100%"
              v-bind="gridLeftOptions"
              v-on="gridEvents"
              checkbox-config="{ reserve: true, strict: true }"
          >
            <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
            <!--      下拉显示所有信息插槽-->
@@ -702,14 +727,16 @@
        <div width="12%">
          <el-main style="">
            <span>{{$t('processCard.selectedQuantity')}}:<el-input v-model="checkedNum" clearable type="number"></el-input></span><br>
            <span>{{ $t('processCard.selectedQuantity') }}:<el-input v-model="checkedNum" clearable
                                                                     type="number"></el-input></span><br>
            <el-button type="primary" @click="addRight"> →</el-button>
            <br>
            <br>
            <el-button type="primary" @click="addLeft"> ←</el-button>
            <br>
            <br>
            <el-button type="primary" @click="createProcessCard">{{$t('processCard.establishProcessCards')}}</el-button>
            <el-button type="primary" @click="createProcessCard">{{ $t('processCard.establishProcessCards') }}
            </el-button>
          </el-main>
        </div>
@@ -722,9 +749,10 @@
                ref="xGrid"
                class="mytable-scrollbar"
                max-height="100%"
                height="650px"
                max-height="100%"
                v-bind="gridOptions"
                checkbox-config="{ reserve: true, strict: true }"
            >
              <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
              <!--      下拉显示所有信息插槽-->