廖井涛
7 天以前 a660db06773007b1be690e0674829c00a57aeb7b
north-glass-erp/northglass-erp/src/views/sd/customer/SelectCustomer.vue
@@ -16,12 +16,18 @@
const username = userStore.user.userName
const userid = userStore.user.userId
let router=useRouter()
let rowClickIndex = ref(null)
let produceList = ref([])
const getTableRow = (row,type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/customer/CreateCustomer', query: { id: row.id }})
      break
    }
    case 'customerOrder' :{
      //alert('我接收到子组件传送的编辑信息')
      router.push({path: '/main/customer/selectCustomerOrder', query: { id: row.id }})
      break
    }
    case 'delete':{
@@ -37,17 +43,21 @@
      })
      ruleForm.value.id=row.id
      let flowData = ref({
        customer: ruleForm.value
        customer: ruleForm.value,
        userName:userStore.user.userName,
        userId:userStore.user.userId
      })
      request.post("/customer/deleteCustomer", flowData.value).then((res) => {
        if(res.code==200){
          ElMessage.success("删除成功")
          location.reload();
        if(res.code==200 && res.data===true){
          ElMessage.success(t('basicData.msg.deleteSuccess'))
          router.push({path:'/main/customer/selectCustomer',query:{random:Math.random()}})
        }else{
          ElMessage.warning(res.msg)
          router.push("/login")
          ElMessage.warning(t('basicData.msg.deleteFail'))
        }
      }).catch((err)=>{
        ElMessage.error(t('basicData.msg.ServerConnectionError'))
        router.push("/login")
      })
      break
    }
@@ -76,7 +86,7 @@
let total = reactive({
  pageTotal : 0,
  dataTotal : 0,
  pageSize : 10
  pageSize : 100
})
//第一次调用
@@ -154,6 +164,15 @@
  selectOrderList()
}
const handleSortChange=({ sortList, sortOrder })=> {
  // 根据排序参数构建请求数据
  filterData.value.sortList=sortList.map(item => item.property)
  filterData.value.sortOrder=sortList.map(item => item.order)
  console.log(filterData.value)
}
//子组件接收参数
@@ -164,7 +183,7 @@
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮
  id: 'CustomerList',
  id: 'SelectCustomer',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
@@ -178,6 +197,16 @@
  filterConfig: {   //筛选配置项
    remote: true
  },
  menuConfig: {
    body: {
      options: [
        [
          { code: 'sheet1', name: t('orderBasicData.order'), prefixIcon: 'vxe-icon-file-txt', visible: true},
          { code: 'sheet2', name: t('searchOrder.delivery'), prefixIcon: 'vxe-icon-file-txt', visible: true},
        ]
      ]
    }
  },
  customConfig: {
    storage: true
  },
@@ -189,9 +218,10 @@
  columns:[
          {type:'expand',fixed:"left",slots: { content:'content' },width: 60},
          {type: 'seq',fixed:"left", title: t('basicData.Number'), width: 80 },
          {title: t('basicData.operate'), width: 110, slots: { default: 'button_slot' },fixed:"left"},
          {title: t('basicData.operate'), width: 180, slots: { default: 'button_slot' },fixed:"left"},
          {field: 'id', title: t('customer.customerNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
          {field: 'customerName', title: t('customer.customerName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
          {field: 'customerAbbreviation', title: t('customer.customerAbbreviation'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
          {field: 'grade', title: t('customer.customerGrade'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
          {field: 'moneyLimit', title: t('customer.moneyLimit'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
          {field: 'address', title: t('customer.address'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
@@ -222,6 +252,38 @@
})
const gridEvents = {
  menuClick ({ menu, row, column }) {
    const $grid = xGrid.value
    if ($grid) {
      switch (menu.code) {
        case 'sheet1': {
          if(rowClickIndex.value===null){
            ElMessage.warning(t('customer.msgList.notCustomerInfo'))//"未查询到客户信息"
            return
          }
          router.push({path: '/main/customer/selectCustomerOrder', query: { id: row.id,type:1 }})
          break
        }
        case 'sheet2': {
          if(rowClickIndex.value===null){
            ElMessage.warning(t('customer.msgList.notCustomerInfo'))
            return
          }
          router.push({path: '/main/customer/selectCustomerOrder', query: { id: row.id,type:2 }})
          break
        }
      }
    }
  },
  cellClick({ row }){
    rowClickIndex.value = row
  }
}
</script>
@@ -234,6 +296,8 @@
        class="mytable-scrollbar"
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
        @sort-change="handleSortChange"
    >
      <!--      下拉显示所有信息插槽-->
@@ -249,14 +313,25 @@
      <!--左边固定显示的插槽-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{$t('basicData.edit')}}</el-button>
        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">{{$t('basicData.delete')}}</el-button>
        <el-button @click="getTableRow(row,'edit')"
                   v-if="userStore.user.permissions.indexOf('selectCustomer.edit') > -1"
                   link type="primary" size="small">{{$t('basicData.edit')}}</el-button>
<!--        <el-button @click="getTableRow(row,'customerOrder')"
                   link type="primary" size="small">{{$t('customer.customerOrders')}}</el-button>-->
        <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">
          <template #reference>
            <el-button  link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
          </template>
        </el-popconfirm>
      </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)"/>
            <input type="type"
                   v-model="option.data"
                   @keyup.enter.native="$panel.confirmFilter()"
                   @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>