'123'
This commit is contained in:
parent
748302fcde
commit
359e00003f
|
@ -1,5 +1,5 @@
|
|||
#for tests only !
|
||||
#Wed Jun 12 17:04:18 CST 2024
|
||||
#Thu Jun 13 17:04:23 CST 2024
|
||||
jco.destination.pool_capacity=10
|
||||
jco.client.lang=ZH
|
||||
jco.client.ashost=172.19.0.120
|
||||
|
@ -7,5 +7,5 @@ jco.client.saprouter=
|
|||
jco.client.user=RFC
|
||||
jco.client.sysnr=00
|
||||
jco.destination.peak_limit=10
|
||||
jco.client.passwd=gR+@VS{@vcSt}PE/DW_]@6@mm8UiFKt|ELFuvqDg@R+lSEZZ
|
||||
jco.client.passwd=654321
|
||||
jco.client.client=300
|
||||
|
|
|
@ -163,7 +163,9 @@ public class CustomerController extends BaseController
|
|||
public AjaxResult add(@RequestBody Customer customer)
|
||||
{
|
||||
customer.setCusId(UUID.fastUUID().toString());
|
||||
customer.setCusCode(IdUtils.createNo("KH_",0));
|
||||
//customer.setCusCode(IdUtils.createNo("KH_",0));
|
||||
String cusCode = customerService.getCode("KH");
|
||||
customer.setCusCode(cusCode);
|
||||
customer.setCreateBy(getUsername());
|
||||
return toAjax(customerService.insertCustomer(customer));
|
||||
}
|
||||
|
@ -199,7 +201,9 @@ public class CustomerController extends BaseController
|
|||
|
||||
if(StringUtils.isEmpty(cus_id)){
|
||||
customer.setCusId(UUID.fastUUID().toString());
|
||||
customer.setCusCode(IdUtils.createNo("KH_",0));
|
||||
//customer.setCusCode(IdUtils.createNo("KH_",0));
|
||||
String cusCode = customerService.getCode("KH");
|
||||
customer.setCusCode(cusCode);
|
||||
customer.setCreateBy(getUsername());
|
||||
customerService.insertCustomer(customer);
|
||||
sendNotice(customer);//发送消息至数据组
|
||||
|
@ -247,7 +251,9 @@ public class CustomerController extends BaseController
|
|||
customer.setUpdateBy(getUsername());
|
||||
customer.setCusApprovalStatus("2");//客户提交 状态设置为 已审核
|
||||
}else{// 数据组创建的客户数据提交SAP
|
||||
customer.setCusCode(IdUtils.createNo("KH_",0));
|
||||
//customer.setCusCode(IdUtils.createNo("KH_",0));
|
||||
String cusCode = customerService.getCode("KH");
|
||||
customer.setCusCode(cusCode);
|
||||
customer.setCreateBy(getUsername());
|
||||
customer.setCusApprovalStatus("2");//客户提交 状态设置为 已审核
|
||||
}
|
||||
|
|
|
@ -99,6 +99,18 @@ public class QuotController extends BaseController
|
|||
util.exportExcel(response, list, "报价数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出报价明细列表
|
||||
*/
|
||||
@PostMapping("/exportMaterial")
|
||||
public void exportMaterial(HttpServletResponse response, Quot quot)
|
||||
{
|
||||
Quot q = quotService.selectQuotByQuotId(quot.getQuotId());
|
||||
List<QuotMaterial> list = q.getQuotMaterialList();
|
||||
ExcelUtil<QuotMaterial> util = new ExcelUtil<QuotMaterial>(QuotMaterial.class);
|
||||
util.exportExcel(response, list, "报价明细数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 报价单打印状态修改
|
||||
*/
|
||||
|
@ -184,7 +196,7 @@ public class QuotController extends BaseController
|
|||
String quotCode = quotService.getCode("BJD");
|
||||
quot.setQuotCode(quotCode);
|
||||
quot.setCreateBy(getUsername());
|
||||
quot.setQuotSalesmanCode(getUsername());
|
||||
//quot.setQuotSalesmanCode(getUsername());
|
||||
quot.setUpdateBy(getUsername());
|
||||
quotService.insertQuot(quot);
|
||||
return success(quot);
|
||||
|
@ -343,7 +355,7 @@ public class QuotController extends BaseController
|
|||
String quotCode = quotService.getCode("BJD");
|
||||
quot.setQuotCode(quotCode);
|
||||
quot.setCreateBy(getUsername());
|
||||
quot.setQuotSalesmanCode(getUsername());
|
||||
//quot.setQuotSalesmanCode(getUsername());
|
||||
quotService.insertQuot(quot);
|
||||
sendNoticeToBjz(quot);
|
||||
return success();
|
||||
|
|
|
@ -265,29 +265,30 @@ public class excelUtil {
|
|||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(Alignment.LEFT);
|
||||
wff_merge.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
|
||||
wff_merge.setBorder(Border.RIGHT, BorderLineStyle.THIN);
|
||||
|
||||
label = new Label(1, i, "3、分支电缆为多芯分支价格,不包其它附件,不含安装费,数量以供方实际测量为准;",wff_merge);
|
||||
wsheet.addCell(label);
|
||||
/*i++;
|
||||
wsheet.setRowView(i,390);
|
||||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(jxl.format.Alignment.LEFT);
|
||||
wff_merge.setBorder(jxl.format.Border.BOTTOM,jxl.format.BorderLineStyle.THIN);
|
||||
wff_merge.setBorder(jxl.format.Border.RIGHT,jxl.format.BorderLineStyle.THIN);
|
||||
wsheet.mergeCells(1,i,7,i);
|
||||
// label = new Label(1, i, "4、产品交货总数和单根交货长度允许有±1%公差,如有不符对方要求,需重制作报价单。",wff_merge);
|
||||
wsheet.addCell(label);*/
|
||||
|
||||
wsheet.mergeCells(0,i-3,0,i);
|
||||
i++;
|
||||
wsheet.setRowView(i,390);
|
||||
wsheet.mergeCells(1,i,7,i);
|
||||
|
||||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(Alignment.LEFT);
|
||||
wff_merge.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
|
||||
wff_merge.setBorder(Border.RIGHT, BorderLineStyle.THIN);
|
||||
label = new Label(1, i, "4、低厂价,预付30%,款清发货;",wff_merge);
|
||||
wsheet.addCell(label);
|
||||
|
||||
wsheet.mergeCells(0,i-4,0,i);
|
||||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(Alignment.CENTRE);
|
||||
wff_merge.setVerticalAlignment(VerticalAlignment.CENTRE);
|
||||
wff_merge.setBorder(Border.ALL, BorderLineStyle.THIN);
|
||||
label = new Label(0, i-3, "备注",wff_merge);
|
||||
label = new Label(0, i-4, "备注",wff_merge);
|
||||
wsheet.addCell(label);
|
||||
|
||||
InputStream fileInputStream = new ClassPathResource("/jnlogo.png").getInputStream();
|
||||
|
@ -580,29 +581,30 @@ public class excelUtil {
|
|||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(Alignment.LEFT);
|
||||
wff_merge.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
|
||||
wff_merge.setBorder(Border.RIGHT, BorderLineStyle.THIN);
|
||||
|
||||
label = new Label(1, i, "3、分支电缆为多芯分支价格,不包其它附件,不含安装费,数量以供方实际测量为准;",wff_merge);
|
||||
wsheet.addCell(label);
|
||||
/*i++;
|
||||
wsheet.setRowView(i,390);
|
||||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(jxl.format.Alignment.LEFT);
|
||||
wff_merge.setBorder(jxl.format.Border.BOTTOM,jxl.format.BorderLineStyle.THIN);
|
||||
wff_merge.setBorder(jxl.format.Border.RIGHT,jxl.format.BorderLineStyle.THIN);
|
||||
wsheet.mergeCells(1,i,7,i);
|
||||
// label = new Label(1, i, "4、产品交货总数和单根交货长度允许有±1%公差,如有不符对方要求,需重制作报价单。",wff_merge);
|
||||
wsheet.addCell(label);*/
|
||||
|
||||
wsheet.mergeCells(0,i-3,0,i);
|
||||
i++;
|
||||
wsheet.setRowView(i,390);
|
||||
wsheet.mergeCells(1,i,7,i);
|
||||
|
||||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(Alignment.LEFT);
|
||||
wff_merge.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
|
||||
wff_merge.setBorder(Border.RIGHT, BorderLineStyle.THIN);
|
||||
label = new Label(1, i, "4、低厂价,预付30%,款清发货;",wff_merge);
|
||||
wsheet.addCell(label);
|
||||
|
||||
wsheet.mergeCells(0,i-4,0,i);
|
||||
wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.NO_BOLD,false);
|
||||
wff_merge = new WritableCellFormat(wf_merge);
|
||||
wff_merge.setAlignment(Alignment.CENTRE);
|
||||
wff_merge.setVerticalAlignment(VerticalAlignment.CENTRE);
|
||||
wff_merge.setBorder(Border.ALL, BorderLineStyle.THIN);
|
||||
label = new Label(0, i-3, "备注",wff_merge);
|
||||
label = new Label(0, i-4, "备注",wff_merge);
|
||||
wsheet.addCell(label);
|
||||
|
||||
InputStream fileInputStream = new ClassPathResource("/jnlogo.png").getInputStream();
|
||||
|
|
|
@ -84,4 +84,11 @@ public interface CustomerMapper
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteBankByCusId(String cusId);
|
||||
|
||||
/**
|
||||
* 获取单据编号
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
String getCode(String type);
|
||||
}
|
||||
|
|
|
@ -65,4 +65,11 @@ public interface ICustomerService
|
|||
* @return
|
||||
*/
|
||||
int changCusStatus(Customer customer);
|
||||
|
||||
/**
|
||||
* 获取单据编号
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
String getCode(String type);
|
||||
}
|
||||
|
|
|
@ -122,6 +122,16 @@ public class CustomerServiceImpl implements ICustomerService
|
|||
return customerMapper.updateCustomer(customer);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单据编号
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getCode(String type) {
|
||||
return customerMapper.getCode(type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增银行信息
|
||||
*
|
||||
|
|
|
@ -257,4 +257,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
( #{item.bankId}, #{item.bankName}, #{item.bankAccount}, #{item.cusId}, #{item.bankCode}, #{item.bankCountry})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="getCode" resultType="String" statementType="CALLABLE">
|
||||
{call GetSerialNo(#{type,mode=IN,jdbcType=VARCHAR})}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -126,6 +126,28 @@
|
|||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-divider content-position="center">技术附件</el-divider>
|
||||
<el-table class="down" :data="quotJsgfFileList" border stripe style="width: 100%;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称" width="450px"></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
|
||||
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fileTime" label="上传时间"></el-table-column>
|
||||
<el-table-column width="150px" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button :key="Math.random()" size="small" type="text">
|
||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-divider content-position="center">核价附件</el-divider>
|
||||
|
@ -136,6 +158,7 @@
|
|||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
:data="{ relation_id: this.form.quotHjId,file_type: 'quotHjFile' }"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:show-file-list="false"
|
||||
:limit="1"
|
||||
|
@ -147,7 +170,7 @@
|
|||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-table class="down" :data="quotHjFileList" border stripe style="width: 100%;" height="200px">
|
||||
<el-table class="down" v-loading="quotHjFileLoading" :data="quotHjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称"></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="150px">
|
||||
<template slot-scope="scope">
|
||||
|
@ -377,7 +400,10 @@ export default {
|
|||
quotMaterialList: [],
|
||||
// 报价单-询价附件数据
|
||||
quotXjFileList: [],
|
||||
// 报价单-技术附件数据
|
||||
quotJsgfFileList: [],
|
||||
// 报价单-核价单附件数据
|
||||
quotHjFileLoading: false,
|
||||
quotHjFileList: [],
|
||||
//报价单-核价单附件上传地址
|
||||
uploadUrl: process.env.VUE_APP_BASE_API + "/quot/quot/quotFile",
|
||||
|
@ -422,6 +448,7 @@ export default {
|
|||
};
|
||||
this.quotMaterialList = [];
|
||||
this.quotXjFileList = [];
|
||||
this.quotJsgfFileList = [];
|
||||
this.quotHjFileList = [];
|
||||
|
||||
this.showTl = false;
|
||||
|
@ -452,6 +479,7 @@ export default {
|
|||
this.open = true;
|
||||
this.title = "核价单信息";
|
||||
this.getQuotXjFileList();
|
||||
this.getQuotJsgfFileList();
|
||||
this.getQuotHjFileList();
|
||||
|
||||
const quotJsxzGroup = this.form.quotJsxzGroupValues;
|
||||
|
@ -549,6 +577,13 @@ export default {
|
|||
this.quotXjFileList = response.rows;
|
||||
});
|
||||
},
|
||||
//获取报价单-技术附件列表
|
||||
getQuotJsgfFileList(){
|
||||
const param = {relationId:this.form.quotId,fileType:'quotJsgfFile'}
|
||||
quotFileList(param).then(response => {
|
||||
this.quotJsgfFileList = response.rows;
|
||||
});
|
||||
},
|
||||
//获取报价单-核价附件列表
|
||||
getQuotHjFileList(){
|
||||
const param = {relationId:this.form.quotHjId,fileType:'quotHjFile'}
|
||||
|
@ -556,7 +591,10 @@ export default {
|
|||
this.quotHjFileList = response.rows;
|
||||
});
|
||||
},
|
||||
|
||||
//上传前校验
|
||||
beforeAvatarUpload(file){
|
||||
this.quotHjFileLoading = true;
|
||||
},
|
||||
//成功回调
|
||||
handleAvatarSuccess(res) {
|
||||
// 如果上传成功
|
||||
|
@ -566,6 +604,7 @@ export default {
|
|||
} else {
|
||||
this.$modal.msgError(res.msg);
|
||||
}
|
||||
this.quotHjFileLoading = false;
|
||||
this.$refs.upload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
},
|
||||
|
||||
|
@ -577,8 +616,10 @@ export default {
|
|||
//删除附件
|
||||
deleteFile(fileId){
|
||||
let activeName = this.activeName;
|
||||
this.quotHjFileLoading = true;
|
||||
quotFileDelete(fileId).then(response => {
|
||||
this.getQuotHjFileList();
|
||||
this.quotHjFileLoading = false;
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -132,6 +132,26 @@
|
|||
<el-table-column label="业务员" align="center" prop="quotSalesmanName" width="150px"/>
|
||||
<el-table-column label="客户名称" align="center" prop="quotCustomerName" width="250px"/>
|
||||
<el-table-column label="项目名称" align="center" prop="quotProject" width="250px"/>
|
||||
<el-table-column label="金思维提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_jsw_approval_status" :value="scope.row.quotJswApprovalStatus" v-if="scope.row.quotJswApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="OA提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_oa_approval_status" :value="scope.row.quotOAApprovalStatus" v-if="scope.row.quotOAApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="技术协助状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_jsxz_approval_status" :value="scope.row.quotJsxzApprovalStatus" v-if="scope.row.quotJsxzApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="核价协助状态" align="center" prop="quotHjApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_hj_approval_status" :value="scope.row.quotHjApprovalStatus" v-if="scope.row.quotHjApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="金思维报价单号" align="center" prop="quotJswCode" width="280px" v-if="checkRole(['QUOT'])"/>
|
||||
<el-table-column label="是否打印" align="center" prop="quotPrint" v-if="$auth.hasPermi('quot:quot:changQuotPrintStatus')">
|
||||
<template slot-scope="scope">
|
||||
|
@ -157,26 +177,6 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="数量" align="center" prop="quotQuantity" width="100"/>
|
||||
<el-table-column label="反馈说明" align="center" prop="quotFeedbackExplanation" width="150px"/>
|
||||
<el-table-column label="金思维提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_jsw_approval_status" :value="scope.row.quotJswApprovalStatus" v-if="scope.row.quotJswApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="OA提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_oa_approval_status" :value="scope.row.quotOAApprovalStatus" v-if="scope.row.quotOAApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="技术协助状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_jsxz_approval_status" :value="scope.row.quotJsxzApprovalStatus" v-if="scope.row.quotJsxzApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="核价协助状态" align="center" prop="quotHjApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_hj_approval_status" :value="scope.row.quotHjApprovalStatus" v-if="scope.row.quotHjApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建人" align="center" prop="createName" width="150px"/>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="160">
|
||||
<template slot-scope="scope">
|
||||
|
@ -233,15 +233,18 @@
|
|||
|
||||
<el-divider content-position="left" class="customer_divider_text">报价信息</el-divider>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="10">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="报价单号" prop="quotCode">
|
||||
<el-input v-model="form.quotCode" placeholder="系统自动生成" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="业务员" prop="quotSalesmanName">
|
||||
<el-input v-model="form.quotSalesmanName" :disabled="true"/>
|
||||
<el-input v-model="form.quotSalesmanName" :disabled="true" style="width: 60%"/>
|
||||
<el-input v-model="form.quotSalesmanBm" v-if="false"/>
|
||||
<el-input v-model="form.quotSalesmanCode" v-if="false"/>
|
||||
|
||||
<el-button type="primary" icon="el-icon-search" style="margin-left: 10px" @click="openPeopleSelect" size="mini" v-if="checkRole(['QUOT','PRICE_VERIFICATION'])"></el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
|
@ -386,6 +389,7 @@
|
|||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
:data="{ relation_id: this.form.quotId,file_type: 'quotFkFile' }"
|
||||
:before-upload="beforeAvatarUploadQuotFkFile"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:show-file-list="false"
|
||||
:limit="1"
|
||||
|
@ -393,7 +397,7 @@
|
|||
<el-button size="small" type="primary" @click="uploadFile('quotFkFile')">上传文件</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<el-table class="down" :data="quotFkFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table class="down" v-loading="quotFkFileLoading" :data="quotFkFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称"></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="150px">
|
||||
<template slot-scope="scope">
|
||||
|
@ -423,6 +427,9 @@
|
|||
<el-col :span="1.5">
|
||||
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-if="this.form.quotApprovalStatus == '0' || this.form.quotApprovalStatus == null">导入</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="checkRole(['QUOT','PRICE_VERIFICATION'])">
|
||||
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleExportMaterial">导出</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-table :data="quotMaterialList" height="300px" show-summary :summary-method="getSummaries" :row-class-name="rowQuotMaterialIndex" @selection-change="handleQuotMaterialSelectionChange" ref="quotMaterial">
|
||||
<el-table-column type="selection" width="80" align="center" />
|
||||
|
@ -497,7 +504,7 @@
|
|||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
:data="{ relation_id: this.form.quotId,file_type: 'quotXjFile' }"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:before-upload="beforeAvatarUploadQuotXjFile"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:show-file-list="false"
|
||||
:limit="1"
|
||||
|
@ -505,7 +512,7 @@
|
|||
<el-button size="small" type="primary" @click="uploadFile('quotXjFile')">上传文件</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<el-table class="down" :data="quotXjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table class="down" v-loading="quotXjFileLoading" :data="quotXjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="150px">
|
||||
<template slot-scope="scope">
|
||||
|
@ -526,7 +533,7 @@
|
|||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-divider content-position="left" class="customer_divider_text">技术附件(先保存再上传)</el-divider>
|
||||
<el-divider content-position="left" class="customer_divider_text">技术附件(先保存再上传,如包含清单附件则不受理)</el-divider>
|
||||
<div v-hasPermi="['quot:quot:quotJsgfFile']">
|
||||
<el-upload class="upload-demo"
|
||||
ref="quotJsgfFileUpload"
|
||||
|
@ -534,6 +541,7 @@
|
|||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
:data="{ relation_id: this.form.quotId,file_type: 'quotJsgfFile' }"
|
||||
:before-upload="beforeAvatarUploadQuotJsgfFile"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:show-file-list="false"
|
||||
:limit="1"
|
||||
|
@ -541,7 +549,7 @@
|
|||
<el-button size="small" type="primary" @click="uploadFile('quotJsgfFile')">上传文件</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<el-table class="down" :data="quotJsgfFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table class="down" v-loading="quotJsgfFileLoading" :data="quotJsgfFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="150px">
|
||||
<template slot-scope="scope">
|
||||
|
@ -890,6 +898,8 @@
|
|||
</el-table-column>
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
|
||||
<PeopleSelect v-if="checkRole(['QUOT','PRICE_VERIFICATION'])" ref="peopleSelect" :type="'single'" :isCheck="true" :open="peopleOpen" @cancel="peopleOpen=false" @submit="submitPeople"></PeopleSelect>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<div style="height: 25px;">
|
||||
|
@ -998,6 +1008,8 @@ import CustomerSelect from "@/views/components/Tools/CustomerSelect/index.vue";
|
|||
import jsqrDialog from '@/views/technicalConfirm/technicalConfirm/jsxzInfo.vue';
|
||||
/** 导入核价单详情组件*/
|
||||
import hjDialog from '@/views/priceVerification/priceVerification/hjInfo.vue';
|
||||
/** 导入选人组件 */
|
||||
import PeopleSelect from "@/views/components/Tools/PeopleSelect/index.vue";
|
||||
|
||||
/** 弹窗放大、拖拽 */
|
||||
import elDragDialog from "@/directive/dialog/dragDialog";
|
||||
|
@ -1011,7 +1023,8 @@ export default {
|
|||
// 注册组件
|
||||
'CustomerSelect': CustomerSelect,
|
||||
'jsqrDialog': jsqrDialog,
|
||||
'hjDialog': hjDialog
|
||||
'hjDialog': hjDialog,
|
||||
'PeopleSelect': PeopleSelect
|
||||
},
|
||||
dicts: ['quot_print', 'quot_approval_status','quot_jsxz_group','quot_jsxz_chapter','quot_jsxz_approval_status','quot_jsxz_standard','quot_hj_approval_status','quot_jsw_approval_status','quot_oa_approval_status'],
|
||||
data() {
|
||||
|
@ -1052,10 +1065,13 @@ export default {
|
|||
},
|
||||
|
||||
// 报价单-询价附件列表数据
|
||||
quotXjFileLoading: false,
|
||||
quotXjFileList: [],
|
||||
// 报价单-反馈附件列表数据
|
||||
quotFkFileLoading: false,
|
||||
quotFkFileList: [],
|
||||
// 报价单-技术规范附件列表数据
|
||||
quotJsgfFileLoading: false,
|
||||
quotJsgfFileList: [],
|
||||
//报价单-询价附件上传地址
|
||||
uploadUrl: process.env.VUE_APP_BASE_API + "/quot/quot/quotFile",
|
||||
|
@ -1116,7 +1132,11 @@ export default {
|
|||
showTl: false,
|
||||
showDy: false,
|
||||
showZy: false,
|
||||
showQt: false
|
||||
showQt: false,
|
||||
|
||||
//是否打开选人组件,默认不打开
|
||||
peopleOpen:false,
|
||||
selectedPeoples:[]
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -1157,6 +1177,7 @@ export default {
|
|||
quotCode: null,
|
||||
quotSalesmanName: null,
|
||||
quotSalesmanBm: null,
|
||||
quotSalesmanCode: null,
|
||||
quotSalesmanDeptName: null,
|
||||
quotSalesmanDeptId: null,
|
||||
quotCustomerBm: null,
|
||||
|
@ -1250,7 +1271,8 @@ export default {
|
|||
this.activeName = "quotInfo";
|
||||
this.form.quotSalesmanName = this.$store.state.user.nickName;
|
||||
//this.form.quotSalesmanName = this.$store.state.user.sapUserName;
|
||||
//this.form.quotSalesmanBm = this.$store.state.user.sapBm;
|
||||
this.form.quotSalesmanBm = this.$store.state.user.sapBm;
|
||||
this.form.quotSalesmanCode = this.$store.state.user.name;
|
||||
this.form.quotSalesmanDeptId = this.$store.state.user.deptId;
|
||||
this.form.quotSalesmanDeptName = this.$store.state.user.deptName;
|
||||
},
|
||||
|
@ -1314,6 +1336,13 @@ export default {
|
|||
this.productUpload.title = "产品数据导入";
|
||||
this.productUpload.open = true;
|
||||
},
|
||||
/** 产品数据导出按钮操作 */
|
||||
handleExportMaterial() {
|
||||
const quot = {"quotId":this.form.quotId};
|
||||
this.download('quot/quot/exportMaterial', {
|
||||
...quot
|
||||
}, this.form.quotCode +".xlsx")
|
||||
},
|
||||
/** 产品数据下载模板操作 */
|
||||
importTemplate() {
|
||||
this.download('quot/quot/importTemplate', {
|
||||
|
@ -1425,7 +1454,7 @@ export default {
|
|||
|
||||
/** 报价组报价单提交反馈按钮 */
|
||||
feedbackQuotForm() {
|
||||
var quotFkFileNum = this.quotFkFileList.length;
|
||||
const quotFkFileNum = this.quotFkFileList.length;
|
||||
if(quotFkFileNum==0){
|
||||
this.$modal.msgError("反馈附件必须上传");
|
||||
return;
|
||||
|
@ -1639,19 +1668,31 @@ export default {
|
|||
uploadFile(activeName){
|
||||
this.activeName = activeName
|
||||
},
|
||||
//上传前校验
|
||||
beforeAvatarUpload(file) {
|
||||
//上传前校验-反馈附件
|
||||
beforeAvatarUploadQuotFkFile(file) {
|
||||
this.quotFkFileLoading = true;
|
||||
},
|
||||
//上传前校验-清单附件
|
||||
beforeAvatarUploadQuotXjFile(file) {
|
||||
this.quotXjFileLoading = true;
|
||||
let activeName = this.activeName;
|
||||
if(activeName=='quotXjFile'){
|
||||
if(file.name.split('.')[1].toLowerCase() != 'xls' && file.name.split('.')[1].toLowerCase() != 'xlsx'){
|
||||
this.$modal.msgError("清单附件必须是Excel格式");
|
||||
this.quotXjFileLoading = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/*const isLt2M = file.size / 1024 / 1024 < 2; // 小于2M
|
||||
if ( !isLt2M ) {
|
||||
console.log('文件大小超出2M');
|
||||
}*/
|
||||
},
|
||||
//上传前校验-清单附件
|
||||
beforeAvatarUploadQuotJsgfFile(file){
|
||||
this.quotJsgfFileLoading = true;
|
||||
const maxSize = 100 * 1024 * 1024; // 100MB,根据你的需求设置最大文件大小
|
||||
if (file.size > maxSize) {
|
||||
this.$modal.msgError("文件大小超过了"+maxSize / (1024 * 1024)+"MB的限制");
|
||||
this.quotJsgfFileLoading = false;
|
||||
return false;
|
||||
}
|
||||
},
|
||||
//成功回调
|
||||
handleAvatarSuccess(res) {
|
||||
|
@ -1661,18 +1702,27 @@ export default {
|
|||
this.$modal.msgSuccess(res.msg);
|
||||
if(activeName=='quotXjFile'){
|
||||
this.getQuotXjFileList();
|
||||
this.quotXjFileLoading = false;
|
||||
this.$refs.quotXjFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}else if(activeName=='quotJsgfFile'){
|
||||
this.getQuotJsgfFileList();
|
||||
this.quotJsgfFileLoading = false;
|
||||
this.$refs.quotJsgfFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}else if(activeName=='quotFkFile'){
|
||||
this.getQuotFkFileList();
|
||||
this.quotFkFileLoading = false;
|
||||
this.$refs.quotFkFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}
|
||||
} else {
|
||||
this.$modal.msgError(res.msg);
|
||||
if(activeName=='quotXjFile'){
|
||||
this.quotXjFileLoading = false;
|
||||
this.$refs.quotXjFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}else if(activeName=='quotJsgfFile'){
|
||||
this.quotJsgfFileLoading = false;
|
||||
this.$refs.quotJsgfFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}else if(activeName=='quotFkFile'){
|
||||
this.quotFkFileLoading = false;
|
||||
this.$refs.quotFkFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}
|
||||
}
|
||||
|
@ -1685,18 +1735,39 @@ export default {
|
|||
|
||||
//删除附件
|
||||
deleteFile(fileId,activeName){
|
||||
//let activeName = this.activeName;
|
||||
console.log(fileId)
|
||||
console.log(activeName)
|
||||
quotFileDelete(fileId).then(response => {
|
||||
if(activeName=='quotXjFile'){
|
||||
if(activeName=='quotXjFile'){
|
||||
this.quotXjFileLoading = true;
|
||||
quotFileDelete(fileId).then(response => {
|
||||
this.getQuotXjFileList();
|
||||
}else if(activeName=='quotJsgfFile'){
|
||||
this.quotXjFileLoading = false;
|
||||
})
|
||||
}else if(activeName=='quotJsgfFile'){
|
||||
this.quotJsgfFileLoading = true;
|
||||
quotFileDelete(fileId).then(response => {
|
||||
this.getQuotJsgfFileList();
|
||||
}else if(activeName=='quotFkFile'){
|
||||
this.quotJsgfFileLoading = false;
|
||||
})
|
||||
}else if(activeName=='quotFkFile'){
|
||||
this.quotFkFileLoading = true;
|
||||
quotFileDelete(fileId).then(response => {
|
||||
this.getQuotFkFileList();
|
||||
}
|
||||
});
|
||||
this.quotFkFileLoading = false;
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
//打开选人弹窗
|
||||
openPeopleSelect(){
|
||||
this.peopleOpen=true;
|
||||
},
|
||||
//选择人的确定按钮事件 submitPeople(nikeNamelist)方法传参一个默认接收用户昵称数组 submitPeople(peopleList,nikeNamelist)方法传参两个则是接收用户昵称数组和用户账号数组
|
||||
submitPeople(peopleList,nickNameList){
|
||||
this.selectedPeoples = this.selectedPeoples.concat(nickNameList)
|
||||
this.selectedPeoples = this.unique(this.selectedPeoples)
|
||||
this.form.quotSalesmanName = this.selectedPeoples[0].nickName;
|
||||
this.form.quotSalesmanBm = this.selectedPeoples[0].sapUserBm;
|
||||
this.form.quotSalesmanCode = this.selectedPeoples[0].userName;
|
||||
this.peopleOpen=false;
|
||||
},
|
||||
/*********************************附件列表数据展示、上传*****************************************/
|
||||
|
||||
|
@ -1708,7 +1779,12 @@ export default {
|
|||
//核价单 详细信息
|
||||
showHjDialog(){
|
||||
this.$refs.hjDialog.getInfo("报价单-核价单",true,false,this.form.quotHjId);
|
||||
}
|
||||
},
|
||||
//数组去重
|
||||
unique(arr) {
|
||||
const res = new Map();
|
||||
return arr.filter((arr) => !res.has(arr.userName) && res.set(arr.userName, 1));
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -138,6 +138,7 @@
|
|||
:value="item.value"
|
||||
@click.native="selectRbDate(item.value)"/>
|
||||
</el-select>
|
||||
<el-button style="float: right;" size="mini" type="info" plain icon="el-icon-upload2" @click="handleExport">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -814,6 +815,11 @@
|
|||
this.$refs.productUpload.submit();
|
||||
},
|
||||
|
||||
// 导出明细
|
||||
handleExport(){
|
||||
this.$modal.msgWarning("功能还未开放");
|
||||
},
|
||||
|
||||
//获取调价日期
|
||||
getVersionList(){
|
||||
versionList(this.queryParams).then(response => {
|
||||
|
|
|
@ -714,13 +714,14 @@
|
|||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
:data="{ relation_id: this.form.quotJsqrId,file_type: fileType }"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:show-file-list="false"
|
||||
:limit="1"
|
||||
v-if="uploadDis">
|
||||
<el-button size="small" type="primary">上传文件</el-button>
|
||||
</el-upload>
|
||||
<el-table class="down" :data="quotJsqrFileList" border stripe style="width: 100%;margin-top: 20px;" height="200px">
|
||||
<el-table class="down" v-loading="quotJsqrFileLoading" :data="quotJsqrFileList" border stripe style="width: 100%;margin-top: 20px;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="150px">
|
||||
<template slot-scope="scope">
|
||||
|
@ -809,6 +810,7 @@
|
|||
// 反馈附件显示弹窗 上传按钮设置 删除设置
|
||||
uploadDis: false,
|
||||
// 反馈附件表格数据
|
||||
quotJsqrFileLoading: false,
|
||||
quotJsqrFileList: [],
|
||||
quotJsqrTlFileNum: 0,
|
||||
quotJsqrDyFileNum: 0,
|
||||
|
@ -1150,8 +1152,10 @@
|
|||
|
||||
//删除附件
|
||||
deleteFile(fileId){
|
||||
this.quotJsqrFileLoading = true;
|
||||
quotFileDelete(fileId).then(response => {
|
||||
this.getQuotJsqrFileList(this.fileType);
|
||||
this.quotJsqrFileLoading = false;
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -1412,6 +1416,10 @@
|
|||
// 获取反馈附件
|
||||
this.getQuotJsqrFileList(this.fileType);
|
||||
},
|
||||
//上传前校验
|
||||
beforeAvatarUpload(file){
|
||||
this.quotJsqrFileLoading = true;
|
||||
},
|
||||
//成功回调
|
||||
handleAvatarSuccess(res) {
|
||||
// 如果上传成功
|
||||
|
@ -1421,6 +1429,7 @@
|
|||
} else {
|
||||
this.$modal.msgError(res.msg);
|
||||
}
|
||||
this.quotJsqrFileLoading = false;
|
||||
this.$refs.upload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
},
|
||||
//下载附件
|
||||
|
|
Loading…
Reference in New Issue