vue页面上传文件与页面参数传递过程解析

上传文件的请求要带上用户在页面中的选择参数id。

一,表数据选择mainId

src\views\gj\project\GjProjectInfoList.vue文件

const [registerTable, { reload }, { rowSelection, selectedRowKeys }] = tableContext

const mainId = computed(() => (unref(selectedRowKeys).length > 0 ? unref(selectedRowKeys)[0] : ''));//mainId是用户选择id

//下发 mainId,子组件接收

provide('mainId', mainId);

selectedRowKeys从tableContext中发出,经过mainId接收,通过provide('mainId', mainId);向各个子标签发送

子标签通过jnject()接收

如:src\views\gj\project\GjProjectConstructionbuilderList.vue

//主表格

<!--引用表格-->

<BasicTable @register="registerTable" :rowSelection="rowSelection" :searchInfo="searchInfo">

//绑定查询参数    :searchInfo="searchInfo"

//接收主表'mainId'

const mainId = inject('mainId') || '';

    //定义查询参数

const searchInfo = {};

//监视主表mainId

watch(mainId, () => {

         searchInfo['projectid'] = unref(mainId);//mainId有变化,传入searchInfo['projectid']

         reload();//重新查询

      }

    );

//在src\views\gj\project\GjProjectInfo.api.ts中进行查询

/**

 * 列表接口

 * @param params

 */

export const gjProjectConstructionbuilderList = (params) => {

  if(params['projectid']){  //在这里获取searchInfo['projectid']的参数

    return defHttp.get({url: Api.gjProjectConstructionbuilderList, params});//带上参数projectid

  }

  return Promise.resolve({});

}

二,上传控件

<j-upload-button type="primary" preIcon="ant-design:import-outlined"

          @click="onImportBillTable">导入工程量清单</j-upload-button>

点击事件处理器onImportBillTable()

function onImportBillTable(data: any) {  //dataj-upload-button的文件上传参数,包含上传文件值

  if (isEmpty(unref(mainId))) {        //监控主表选择

    $message.createMessage.warning('请选择一个主表信息');

    return;

  }

  let currentId = unref(mainId);       //获取主表选择id

  let others = { mainId: currentId };  //按照格式构造上传参数,传递主表id

  // let uploadparams = { file: data.file};

  let uploadparams = { file: data.file, data: others };//变量data.file中是上传文件

  handleImportXML(uploadparams, getImportUrl, handleSuccess || reload);

}

三,src\views\gj\ext\gjPageUtil.ts是上传工具文件

服务器端request.getParameter("mainId")取出数据。

四,修改复制文件:entity,数据库实体文件

主键生成改为如下:

type = IdType.INPUT

/**主键*/
@TableId(type = IdType.INPUT)


   @ApiModelProperty(value = "主键")
   private java.lang.String id;

4, 扩展的控制类org.jeecg.modules.gj.bid.billTable.controller. GjprojectbillinfoController

改为protected如下:

@Autowired
protected IGjprojectbillinfoService gjprojectbillinfoService;


@Autowired
protected IGjprojectbillprofileService gjprojectbillprofileService;


@Autowired
protected IGjprojectbillgroupService gjprojectbillgroupService;


@Autowired
protected IGjprojectbilltableService gjprojectbilltableService;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值