gaoluyang
2025-05-12 1afd8c0963f8df0c280f8fc1787d8bc615a1a72f
销售台账-新增的附件上传逻辑
已修改2个文件
46 ■■■■■ 文件已修改
src/api/salesManagement/salesLedger.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/salesManagement/salesLedger.js
@@ -65,6 +65,15 @@
        data: query
    })
}
// 上传附件
export function upload(query) {
    return request({
        url: '/file/upload',
        method: 'post',
        data: query,
        responseType: 'blob'
    })
}
// 销售不分页查询
export function ledgerListNoPage(query) {
src/views/salesManagement/salesLedger/index.vue
@@ -159,11 +159,12 @@
          <el-col :span="24">
            <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"
@@ -268,6 +269,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";
@@ -294,7 +296,6 @@
})
const total = ref(0)
const fileList = ref([])
const uploadList = ref([])
// 用户信息表单弹框数据
const operationType = ref('')
@@ -353,6 +354,12 @@
  }
})
const { productForm, productRules } = toRefs(productFormData)
const upload = reactive({
  // 上传的地址
  url: import.meta.env.VITE_APP_BASE_API + "/file/upload",
  // 设置上传的请求头部
  headers: { Authorization: "Bearer " + getToken() },
})
// 查询列表
/** 搜索按钮操作 */
@@ -472,11 +479,9 @@
// 上传前校检
function handleBeforeUpload(file) {
  // 校检文件大小
  if (props.fileSize) {
    if (file.size > 1024 * 1024) {
      proxy.$modal.msgError('上传文件大小不能超过10MB!')
      return false
    }
  if (file.size > 1024 * 1024) {
    proxy.$modal.msgError('上传文件大小不能超过10MB!')
    return false
  }
  proxy.$modal.loading("正在上传文件,请稍候...")
  return true
@@ -487,13 +492,12 @@
  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)
  }
@@ -508,6 +512,11 @@
        proxy.$modal.msgWarning('请添加产品信息')
        return
      }
      let tempFileIds = []
      if (fileList.value.length > 0) {
        tempFileIds = fileList.value.map(item => item.tempId)
      }
      form.value.tempFileIds = tempFileIds
      addOrUpdateSalesLedger(form.value).then(res => {
        proxy.$modal.msgSuccess("提交成功")
        closeDia()