董国庆
2025-03-21 f57d6f004132c87ff8dfec96523edeb60c65d713
接口调试
4个文件已修改
119 ■■■■■ 已修改文件
src/api/application-batch.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/applicationBatchList/components/UploadDialog.vue 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/applicationBatchList/detail.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/applicationBatchList/list.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/application-batch.js
@@ -68,4 +68,12 @@
    method: 'post',
    data
  })
}
}
//获取数据字典
export function getDictList(data) {
  return request({
    url: '/system/dict/data/type/street',
    method: 'get',
    // data
  })
}
src/views/applicationBatchList/components/UploadDialog.vue
@@ -36,17 +36,23 @@
<script>
import { importBatch } from "@/api/application-batch";
export default {
  name: 'UploadDialog',
  props: {
    info: {
      type: Object,
      default: () => {id:0}
      default: () => {
       return {
        id: 0,
        batchNumber: ''
       }
      }
    },
    visible: {
      type: Boolean,
      default: false
    },
    }
  },
  data() {
    return {
@@ -57,13 +63,19 @@
      },
      rules: {
        batchNumber: [{ required: true, message: '请输入批次号', trigger: 'blur' }],
        file: [ { required: true, message: '请选择上传文件', trigger: 'change' }]
        file: [{ required: true, message: '请选择上传文件', trigger: 'change' }]
      }
    }
  },
  watch: {
    visible(val) {
      this.dialogVisible = val;
    visible: {
      handler(val) {
        this.dialogVisible = val;
        if (!val) {
          this.handleClose();
        }
      },
      immediate: true
    },
    dialogVisible(val) {
      this.$emit('update:visible', val);
@@ -71,9 +83,13 @@
  },
  methods: {
    handleClose() {
      this.form.batchNumber = '';
      this.form.file = null;
      this.$refs.uploadForm && this.$refs.uploadForm.resetFields();
      this.form = {
        batchNumber: '',
        file: null
      };
      if (this.$refs.uploadForm) {
        this.$refs.uploadForm.resetFields();
      }
      this.dialogVisible = false;
    },
    handleFileChange(file) {
@@ -85,33 +101,30 @@
        return;
      }
      this.form.file = file.raw;
      this.$refs.uploadForm.validateField('file');
      if (this.$refs.uploadForm) {
        this.$refs.uploadForm.validateField('file');
      }
    },
    submitUpload() {
      this.$refs.uploadForm.validate(valid => {
        if (!valid) {
          return;
        }
    async submitUpload() {
      try {
        await this.$refs.uploadForm.validate();
        
        const formData = new FormData();
        formData.append('file',this.form.file);
        if(this.info.id){
          formData.append('applyId',this.info.id);
          formData.append('batchNumber',this.info.batchNumber);
        }else{
          formData.append('batchNumber',this.form.batchNumber);
        formData.append('file', this.form.file);
        if (this.info?.id) {
          formData.append('applyId', this.info.id);
          formData.append('batchNumber', this.info.batchNumber);
        } else {
          formData.append('batchNumber', this.form.batchNumber);
        }
        // console.log('22222222222222222',formData)
        importBatch(formData)
          .then(res => {
            this.$message.success('导入成功');
            this.$emit('success');
            this.handleClose();
          })
          .catch(error => {
            this.$message.error(error.message || '导入失败');
          });
      });
        await importBatch(formData);
        this.$message.success('导入成功');
        this.$emit('success');
        this.handleClose();
      } catch (error) {
        this.$message.error(error.message || '导入失败');
      }
    }
  }
}
src/views/applicationBatchList/detail.vue
@@ -10,15 +10,15 @@
      </div>
      <div class="info-cards">
        <el-card class="box-card">
          <div class="card-title">{{ batchInfo.personNum }}</div>
          <div class="card-title">{{ batchInfo.personNum||0 }}</div>
          <div class="card-desc">申请总人数</div>
        </el-card>
        <el-card class="box-card">
          <div class="card-title">{{ batchInfo.totalAmount }} 万元</div>
          <div class="card-title">{{ batchInfo.totalAmount||0 }} 万元</div>
          <div class="card-desc">申请总金额</div>
        </el-card>
        <el-card class="box-card">
          <div class="card-title">{{ batchInfo.waitFamilyArea }}㎡</div>
          <div class="card-title">{{ batchInfo.waitFamilyArea||0 }}㎡</div>
          <div class="card-desc">应安置总面积</div>
        </el-card>
      </div>
@@ -27,7 +27,14 @@
    <!-- 搜索表单 -->
    <el-form :inline="true" :model="queryParams" class="search-form">
      <el-form-item label="镇街">
        <el-input v-model="queryParams.street" placeholder="请输入" clearable size="small" />
        <el-select v-model="queryParams.street" placeholder="请选择镇街" clearable size="small">
          <el-option
            v-for="item in streetOptions"
            :key="item.dictCode"
            :label="item.dictLabel"
            :value="item.dictValue"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="拆迁项目">
        <el-input v-model="queryParams.projectName" placeholder="请输入" clearable size="small" />
@@ -237,7 +244,7 @@
</template>
<script>
import { geDetailTabletList,delDetail } from "@/api/application-batch";
import { geDetailTabletList,delDetail,getDictList } from "@/api/application-batch";
import { downLoad, exportExcell } from "@/utils";
import UploadDialog from "./components/UploadDialog.vue";
import DetailDialog from './components/DetailDialog.vue'
@@ -272,6 +279,8 @@
      total: 0,
      // 表格数据
      tableData: [],
      // 镇街选项
      streetOptions: [],
      // 查询参数
      queryParams: {
        pageNum: 1,
@@ -295,8 +304,15 @@
      id: id || "",
    };
    this.getList();
    this.getStreetOptions();
  },
  methods: {
    /** 获取镇街选项 */
    getStreetOptions() {
      getDictList().then(res => {
        this.streetOptions = res.data;
      });
    },
    /** 查询列表 */
    getList() {
      this.loading = true;
src/views/applicationBatchList/list.vue
@@ -27,8 +27,8 @@
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="default" @click="resetQuery">重置</el-button>
          <el-button type="primary" @click="handleQuery">查询</el-button>
          <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">查询</el-button>
          <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
        </el-form-item>
      </el-form>
    </div>
@@ -157,6 +157,7 @@
      :visible.sync="approvalDialogVisible"
      :type="approvalType"
      :id="currentRow.id"
      @refresh="getList"
    />
    <!-- 上传组件 -->
@@ -245,6 +246,7 @@
        pageSize: 10,
        projectName: undefined,
        status: undefined,
        town: undefined,
      };
      this.handleQuery();
    },
@@ -317,7 +319,7 @@
  .search-area {
    background-color: #fff;
    padding: 15px 0;
    padding: 20px;
    margin-bottom: 20px;
    border-radius: 4px;