廖井涛
2024-04-25 ed6f35069824d71ee6da599a328d865eb0c58550
north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue
@@ -9,10 +9,12 @@
import GlassType from "@/components/sd/product/GlassType.vue"
import {useRouter} from 'vue-router'
import Sortable from 'sortablejs'
import BasicTable from '@/components/basic/BasicTable.vue'
import BasicTable from '@/components/sd/product/BasicTable.vue'
import {VXETable} from "vxe-table";
import useUserInfoStore from "@/stores/userInfo";
import { useI18n } from 'vue-i18n'
//语言获取
const { t } = useI18n()
let router = useRouter()
const userStore = useUserInfoStore()
const username = userStore.user.userName
@@ -82,6 +84,41 @@
  }
})
/*使用筛选,后端获取数据*/
const changeFilterEvent = (event, option, $panel,) => {
  // 手动触发筛选
  $panel.changeOption(event, !!option.data, option)
}
//筛选时查询
function filterChanged(column) {
  gridOptions.loading = true
  //筛选条件发生变化条件发生变化
  let value = column.datas[0] != undefined ? column.datas[0] : ''
  value = value.trim()
  //判断是否存在外键
  if (column.property.indexOf('.') > -1) {
    const columnArr = column.property.split('.')
    filterData.value[columnArr[0]] = {
      [columnArr[1]]: value
    }
  } else {
    filterData.value[column.property] = value
  }
  request.post(`/workOrder/addWork/${id}`, filterData.value).then((res) => {
    if (res.code == 200) {
      pageTotal.value = res.data.total
      produceList = deepClone(res.data.data)
      xGrid.value.loadData(produceList)
      gridOptions.loading = false
    } else {
      ElMessage.warning(res.msg)
    }
  })
}
//表尾求和
const sumNum = (list, field) => {
  let count = 0
@@ -89,6 +126,11 @@
    count += Number(item[field])
  })
  return count.toFixed(2)
}
const hasDecimal = (value) => {
  const regex = /\./; // 定义正则表达式,查找小数点
  return regex.test(value); // 返回true/false
}
//子组件接收参数
@@ -125,30 +167,23 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'checkbox', fixed: "left", title: '选择', width: 80},
    {type: 'seq', fixed: "left", title: '自序', width: 50},
    {field: 'orderId', title: '销售单号', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true,},
    {
      field: 'productId',
      title: '产品编号',
      sortable: true,
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'}
    },
    {field: 'productName', title: '产品名称', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
    {field: 'quantity', title: '总数量', sortable: true},
    {field: 'computeGrossArea', title: '总面积', sortable: true},
    {field: 'perimeter', title: '周长', sortable: true, showOverflow: "ellipsis"},
    {type: 'checkbox', fixed: "left", title: t('basicData.check'), width: 80},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {field: 'orderId', title: t('order.orderId'), filters: [{data: ''}], slots: {filter: 'num1_filter'},},
    {field: 'productId',title: t('order.productId'),showOverflow: "ellipsis",filters: [{data: ''}],slots: {filter: 'num1_filter'}},
    {field: 'productName', title: t('order.product'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, },
    {field: 'quantity', title: t('order.quantity'), },
    {field: 'computeGrossArea', title: t('order.area'), },
    {field: 'perimeter', title: t('workOrder.perimeter'), showOverflow: "ellipsis"}
  ],//表头按钮
  toolbarConfig: {
    buttons: [
      {code: 'saveWorkOrder', name: '保存', status: 'primary', icon: 'vxe-icon-save'},
      {code: 'saveWorkOrder', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save'},
    ],
    import: false,
    export: true,
    print: true,
    // import: false,
    // export: true,
    // print: true,
    zoom: true,
    custom: true
  },
@@ -159,7 +194,7 @@
    return [
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return '合计:'
          return  t('basicData.total')
        }
        if (footList.includes(column.field)) {
          return sumNum(data, column.field)
@@ -186,14 +221,14 @@
              userName:username
            })
            console.log(workOrderData.value)
            request.post("/workOrder/addOrderWork", workOrderData.value).then((res) => {
              if (res.code == 200) {
                ElMessage.success("保存成功")
                location.reload();
                ElMessage.success(t('basicData.msg.saveSuccess'))
                //location.reload();
                router.push({path: '/main/workOrder/addWorkOrder', query: {orderId:id,random:Math.random()}})
              } else {
                ElMessage.warning(res.msg)
                router.push("/login")
               // router.push("/login")
              }
            })
@@ -227,7 +262,9 @@
        <ul class="expand-wrapper">
          <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
            <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
            <span>{{ row[item.field] }}</span>
            <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
            <span v-else>{{ row[item.field] }}</span>
          </li>
        </ul>
      </template>