chenrui
8 天以前 3ee713b4feb3b1dba3b66f59c4bd25ecf69a791f
src/views/salesManagement/salesLedger/index.vue
@@ -9,7 +9,7 @@
            placeholder="请输入"
            @change="handleQuery"
            clearable
            :prefix-icon="Search"
            prefix-icon="Search"
        />
        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
      </div>
@@ -105,7 +105,7 @@
          <el-col :span="12">
            <el-form-item label="录入人:" prop="entryPerson">
              <el-select v-model="form.entryPerson" placeholder="请选择" clearable>
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
                <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"/>
              </el-select>
            </el-form-item>
          </el-col>
@@ -157,16 +157,18 @@
        </el-row>
        <el-row :gutter="30">
          <el-col :span="24">
            <el-form-item label="附件材料·:" prop="remark">
            <el-form-item label="附件材料:" prop="remark">
              <el-upload
                  :file-list="fileList"
                  action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
                  v-model:file-list="fileList"
                  :action="upload.url"
                  multiple
                  ref="fileUpload"
                  :headers="proxy.uploadHeader"
                  auto-upload
                  :headers="upload.headers"
                  :before-upload="handleBeforeUpload"
                  :on-error="handleUploadError"
                  :on-success="handleUploadSuccess"
                  :on-remove="handleRemove"
              >
                <el-button type="primary">上传</el-button>
                <template #tip>
@@ -268,6 +270,7 @@
</template>
<script setup>
import { getToken } from "@/utils/auth"
import pagination from '@/components/PIMTable/Pagination.vue'
import { ref } from 'vue'
import {Search} from "@element-plus/icons-vue";
@@ -278,7 +281,7 @@
  productList,
  customerList,
  addOrUpdateSalesLedger,
  getSalesLedgerWithProducts, delLedger, addOrUpdateSalesLedgerProduct, delProduct
  getSalesLedgerWithProducts, delLedger, addOrUpdateSalesLedgerProduct, delProduct, delLedgerFile
} from "@/api/salesManagement/salesLedger.js";
const { proxy } = getCurrentInstance()
const tableData = ref([])
@@ -294,7 +297,6 @@
})
const total = ref(0)
const fileList = ref([])
const uploadList = ref([])
// 用户信息表单弹框数据
const operationType = ref('')
@@ -353,6 +355,12 @@
  }
})
const { productForm, productRules } = toRefs(productFormData)
const upload = reactive({
  // 上传的地址
  url: import.meta.env.VITE_APP_BASE_API + "/file/upload",
  // 设置上传的请求头部
  headers: { Authorization: "Bearer " + getToken() },
})
// 查询列表
/** 搜索按钮操作 */
@@ -374,6 +382,8 @@
      item.children = []
    })
    total.value = res.total
  }).catch(() => {
    tableLoading.value = false
  })
}
// 表格选择数据
@@ -389,10 +399,10 @@
  if (expandedRows.length > 0) {
    expandedRowKeys.value = []
    try {
      productList({salesLedgerId: row.id}).then(res => {
      productList({salesLedgerId: row.id, type: 1}).then(res => {
      const index = tableData.value.findIndex(item => item.id === row.id);
      if (index > -1) {
        tableData.value[index].children = res.rows;
        tableData.value[index].children = res;
      }
      expandedRowKeys.value.push(row.id)
    })
@@ -462,9 +472,10 @@
  })
  if (type === 'edit') {
    currentId.value = row.id;
    getSalesLedgerWithProducts({id: row.id}).then(res => {
    getSalesLedgerWithProducts({id: row.id, type: 1}).then(res => {
      form.value = {...res}
      productData.value = form.value.productData
      fileList.value = form.value.salesLedgerFiles
    })
  }
  dialogFormVisible.value = true
@@ -472,11 +483,9 @@
// 上传前校检
function handleBeforeUpload(file) {
  // 校检文件大小
  if (props.fileSize) {
    if (file.size > 1024 * 1024) {
      proxy.$modal.msgError('上传文件大小不能超过10MB!')
      return false
    }
  if (file.size > 1024 * 1024 * 10) {
    proxy.$modal.msgError('上传文件大小不能超过10MB!')
    return false
  }
  proxy.$modal.loading("正在上传文件,请稍候...")
  return true
@@ -487,15 +496,24 @@
  proxy.$modal.closeLoading()
}
// 上传成功回调
function handleUploadSuccess(res, file) {
function handleUploadSuccess(res, file, uploadFiles) {
  proxy.$modal.closeLoading()
  if (res.code === 200) {
    uploadList.value.push({ name: res.fileName, url: res.fileName })
    fileList.value = fileList.value.filter(f => f.url !== undefined).concat(uploadList.value)
    uploadList.value = []
    file.tempId = res.data.tempId
    proxy.$modal.msgSuccess("上传成功")
  } else {
    proxy.$modal.closeLoading()
    proxy.$modal.msgError(res.msg)
    proxy.$refs.fileUpload.handleRemove(file)
  }
}
// 移除文件
function handleRemove (file) {
  if (operationType.value === 'edit') {
    let ids = []
    ids.push(file.id)
    delLedgerFile(ids).then(res => {
      proxy.$modal.msgSuccess("删除成功")
    })
  }
}
// 提交表单
@@ -508,6 +526,12 @@
        proxy.$modal.msgWarning('请添加产品信息')
        return
      }
      let tempFileIds = []
      if (fileList.value.length > 0) {
        tempFileIds = fileList.value.map(item => item.tempId)
      }
      form.value.tempFileIds = tempFileIds
      form.value.type = 1
      addOrUpdateSalesLedger(form.value).then(res => {
        proxy.$modal.msgSuccess("提交成功")
        closeDia()
@@ -549,7 +573,7 @@
  addOrUpdateSalesLedgerProduct(productForm.value).then(res => {
    proxy.$modal.msgSuccess("提交成功")
    closeProductDia()
    getSalesLedgerWithProducts({id: currentId.value}).then(res => {
    getSalesLedgerWithProducts({id: currentId.value, type: 1}).then(res => {
      productData.value = res.productData
    })
  })
@@ -583,14 +607,14 @@
      delProduct(ids).then(res => {
        proxy.$modal.msgSuccess("删除成功")
        closeProductDia()
        getSalesLedgerWithProducts({id: currentId.value}).then(res => {
        getSalesLedgerWithProducts({id: currentId.value, type: 1}).then(res => {
          productData.value = res.productData
        })
      })
    }).catch(() => {
      proxy.$modal.msg("已取消")
    })
  }
}
// 关闭产品弹框
@@ -643,4 +667,4 @@
<style scoped lang="scss">
</style>
</style>