This commit is contained in:
xd 2024-05-23 10:14:52 +08:00
parent 362cd0fdfb
commit 8b30cc54e1
6 changed files with 165 additions and 58 deletions

View File

@ -47,8 +47,21 @@ public class QuotHj extends BaseEntity
private String quotProject;//项目 private String quotProject;//项目
/** 技术协助信息 */ /** 技术协助信息 */
private String quotJsxzConfirmId;//技术协助-技术确认单id
private String quotJsxzGroupValues;//技术协助-分组 private String quotJsxzGroupValues;//技术协助-分组
private String quotJsqrTlApprovalStatus;//技术协助-特缆协助状态
private String quotJsqrTlRemark;//技术协助-特缆协助说明
private String quotJsqrDyApprovalStatus;//技术协助-低压协助状态
private String quotJsqrDyRemark;//技术协助-低压协助说明
private String quotJsqrZyApprovalStatus;//技术协助-中压协助状态
private String quotJsqrZyRemark;//技术协助-中压协助说明
private String quotJsqrQtApprovalStatus;//技术协助-其他协助状态
private String quotJsqrQtRemark;//技术协助-其他协助说明
public void setQuotHjId(String quotHjId) public void setQuotHjId(String quotHjId)
{ {
this.quotHjId = quotHjId; this.quotHjId = quotHjId;
@ -114,6 +127,33 @@ public class QuotHj extends BaseEntity
public String getQuotProject() { return quotProject; } public String getQuotProject() { return quotProject; }
public void setQuotProject(String quotProject) { this.quotProject = quotProject; } public void setQuotProject(String quotProject) { this.quotProject = quotProject; }
public String getQuotJsxzConfirmId() { return quotJsxzConfirmId; }
public void setQuotJsxzConfirmId(String quotJsxzConfirmId) { this.quotJsxzConfirmId = quotJsxzConfirmId; }
public String getQuotJsxzGroupValues() { return quotJsxzGroupValues; } public String getQuotJsxzGroupValues() { return quotJsxzGroupValues; }
public void setQuotJsxzGroupValues(String quotJsxzGroupValues) { this.quotJsxzGroupValues = quotJsxzGroupValues; } public void setQuotJsxzGroupValues(String quotJsxzGroupValues) { this.quotJsxzGroupValues = quotJsxzGroupValues; }
public String getQuotJsqrTlApprovalStatus() { return quotJsqrTlApprovalStatus; }
public void setQuotJsqrTlApprovalStatus(String quotJsqrTlApprovalStatus) { this.quotJsqrTlApprovalStatus = quotJsqrTlApprovalStatus; }
public String getQuotJsqrTlRemark() { return quotJsqrTlRemark; }
public void setQuotJsqrTlRemark(String quotJsqrTlRemark) { this.quotJsqrTlRemark = quotJsqrTlRemark; }
public String getQuotJsqrDyApprovalStatus() { return quotJsqrDyApprovalStatus; }
public void setQuotJsqrDyApprovalStatus(String quotJsqrDyApprovalStatus) { this.quotJsqrDyApprovalStatus = quotJsqrDyApprovalStatus; }
public String getQuotJsqrDyRemark() { return quotJsqrDyRemark; }
public void setQuotJsqrDyRemark(String quotJsqrDyRemark) { this.quotJsqrDyRemark = quotJsqrDyRemark; }
public String getQuotJsqrZyApprovalStatus() { return quotJsqrZyApprovalStatus; }
public void setQuotJsqrZyApprovalStatus(String quotJsqrZyApprovalStatus) { this.quotJsqrZyApprovalStatus = quotJsqrZyApprovalStatus; }
public String getQuotJsqrZyRemark() { return quotJsqrZyRemark; }
public void setQuotJsqrZyRemark(String quotJsqrZyRemark) { this.quotJsqrZyRemark = quotJsqrZyRemark; }
public String getQuotJsqrQtApprovalStatus() { return quotJsqrQtApprovalStatus; }
public void setQuotJsqrQtApprovalStatus(String quotJsqrQtApprovalStatus) { this.quotJsqrQtApprovalStatus = quotJsqrQtApprovalStatus; }
public String getQuotJsqrQtRemark() { return quotJsqrQtRemark; }
public void setQuotJsqrQtRemark(String quotJsqrQtRemark) { this.quotJsqrQtRemark = quotJsqrQtRemark; }
} }

View File

@ -23,23 +23,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="quotCustomerName" column="quot_customer_name" /> <result property="quotCustomerName" column="quot_customer_name" />
<result property="quotProject" column="quot_project" /> <result property="quotProject" column="quot_project" />
<result property="quotJsxzConfirmId" column="quot_jsxz_confirm_id" />
<result property="quotJsxzGroupValues" column="quot_jsxz_group_values" /> <result property="quotJsxzGroupValues" column="quot_jsxz_group_values" />
<result property="quotJsqrTlApprovalStatus" column="quot_jsqr_tl_approval_status" />
<result property="quotJsqrTlRemark" column="quot_jsqr_tl_remark" />
<result property="quotJsqrDyApprovalStatus" column="quot_jsqr_dy_approval_status" />
<result property="quotJsqrDyRemark" column="quot_jsqr_dy_remark" />
<result property="quotJsqrZyApprovalStatus" column="quot_jsqr_zy_approval_status" />
<result property="quotJsqrZyRemark" column="quot_jsqr_zy_remark" />
<result property="quotJsqrQtApprovalStatus" column="quot_jsqr_qt_approval_status" />
<result property="quotJsqrQtRemark" column="quot_jsqr_qt_remark" />
</resultMap> </resultMap>
<sql id="quotHjJoins"> <sql id="quotHjJoins">
left join sys_user u on u.user_name=a.create_by left join sys_user u on u.user_name=a.create_by
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join quot q on q.quot_hj_id = a.quot_hj_id left join quot q on q.quot_hj_id = a.quot_hj_id
left join quot_jsqr j on j.quot_jsqr_id = q.quot_jsxz_confirm_id
</sql> </sql>
<sql id="selectQuotHjVo"> <sql id="selectQuotHjVo">
select a.quot_hj_id, a.quot_hj_code, a.quot_hj_pricing_type, a.quot_hj_pricing_date, a.quot_hj_remark, select a.quot_hj_id, a.quot_hj_code, a.quot_hj_pricing_type, a.quot_hj_pricing_date, a.quot_hj_remark,
a.create_by, a.create_time, a.update_by, a.update_time, a.create_by, a.create_time, a.update_by, a.update_time,
u.nick_name create_name, u.nick_name create_name,
q.quot_hj_approval_status, q.quot_hj_approval_status,q.quot_id,q.quot_code,q.quot_salesman_name,
q.quot_id,q.quot_code,q.quot_salesman_name,
q.quot_customer_name,q.quot_project, q.quot_customer_name,q.quot_project,
q.quot_jsxz_group_values q.quot_jsxz_confirm_id,q.quot_jsxz_group_values,
j.quot_jsqr_tl_approval_status,j.quot_jsqr_tl_remark,
j.quot_jsqr_dy_approval_status,j.quot_jsqr_dy_remark,
j.quot_jsqr_zy_approval_status,j.quot_jsqr_zy_remark,
j.quot_jsqr_qt_approval_status,j.quot_jsqr_qt_remark
from quot_hj a from quot_hj a
<include refid="quotHjJoins"/> <include refid="quotHjJoins"/>
</sql> </sql>

View File

@ -110,10 +110,8 @@ export default {
if (!hasSetBodyHight) { if (!hasSetBodyHight) {
const footerHeight = dragDom.querySelector('.el-dialog__footer') && dragDom.querySelector('.el-dialog__footer').offsetHeight const footerHeight = dragDom.querySelector('.el-dialog__footer') && dragDom.querySelector('.el-dialog__footer').offsetHeight
dragDom.querySelector('.el-dialog__body').style.height = dragDom.querySelector('.el-dialog__body').style.height =
'calc(90% - ' + (dialogHeaderEl.offsetHeight + footerHeight) + 'px)' 'calc(100% - ' + (dialogHeaderEl.offsetHeight + footerHeight) + 'px)'
/* dragDom.querySelector('.el-dialog__body').style.height =
window.innerHeight*0.9
- (dialogHeaderEl.offsetHeight + footerHeight) + 'px'*/
hasSetBodyHight = true hasSetBodyHight = true
} }
} }
@ -124,44 +122,5 @@ export default {
maxMin.onclick = setMaxMin; maxMin.onclick = setMaxMin;
//双击头部效果 //双击头部效果
dialogHeaderEl.ondblclick = setMaxMin; dialogHeaderEl.ondblclick = setMaxMin;
//拉伸
let resizeEl = document.createElement("div");
dragDom.appendChild(resizeEl);
//在弹窗右下角加上一个10-10px的控制块
resizeEl.style.cursor = 'se-resize';
resizeEl.style.position = 'absolute';
resizeEl.style.height = '10px';
resizeEl.style.width = '10px';
resizeEl.style.right = '0px';
resizeEl.style.bottom = '0px';
resizeEl.style.zIndex = '99';
//鼠标拉伸弹窗
resizeEl.onmousedown = (e) => {
// 记录初始x位置
const clientX = e.clientX;
// 鼠标按下,计算当前元素距离可视区的距离
const disX = e.clientX - resizeEl.offsetLeft;
const disY = e.clientY - resizeEl.offsetTop;
document.onmousemove = function (e) {
e.preventDefault(); // 移动时禁用默认事件
// 通过事件委托,计算移动的距离
const x = e.clientX - disX + (e.clientX - clientX);//这里 由于elementUI的dialog控制居中的所以水平拉伸效果是双倍
const y = e.clientY - disY;
//比较是否小于最小宽高
dragDom.style.width = x > minWidth ? `${x}px` : minWidth + 'px';
dragDom.style.height = y > minHeight ? `${y}px` : minHeight + 'px';
if (!hasSetBodyHight) {
const footerHeight = dragDom.querySelector('.el-dialog__footer') && dragDom.querySelector('.el-dialog__footer').offsetHeight
dragDom.querySelector('.el-dialog__body').style.height = 'calc(90% - ' + (dialogHeaderEl.offsetHeight + footerHeight) + 'px)'
hasSetBodyHight = true
}
};
//拉伸结束
document.onmouseup = function (e) {
document.onmousemove = null;
document.onmouseup = null;
el.dispatchEvent(resizeEvent);
};
}
} }
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="1000px" v-el-drag-dialog append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="12"> <el-col :span="12">
@ -133,7 +133,7 @@
<div v-if="showTl"> <div v-if="showTl">
<el-divider content-position="center">特缆协助</el-divider> <el-divider content-position="center">技术协助-特缆协助</el-divider>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="特缆协助状态" prop="quotJsqrTlApprovalStatus"> <el-form-item label="特缆协助状态" prop="quotJsqrTlApprovalStatus">
@ -162,7 +162,7 @@
</el-row> </el-row>
</div> </div>
<div v-if="showDy"> <div v-if="showDy">
<el-divider content-position="center">低压协助</el-divider> <el-divider content-position="center">技术协助-低压协助</el-divider>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="低压协助状态" prop="quotJsqrDyApprovalStatus"> <el-form-item label="低压协助状态" prop="quotJsqrDyApprovalStatus">
@ -191,7 +191,7 @@
</el-row> </el-row>
</div> </div>
<div v-if="showZy"> <div v-if="showZy">
<el-divider content-position="center">中压协助</el-divider> <el-divider content-position="center">技术协助-中压协助</el-divider>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="中压协助状态" prop="quotJsqrZyApprovalStatus"> <el-form-item label="中压协助状态" prop="quotJsqrZyApprovalStatus">
@ -220,7 +220,7 @@
</el-row> </el-row>
</div> </div>
<div v-if="showQt"> <div v-if="showQt">
<el-divider content-position="center">其他协助</el-divider> <el-divider content-position="center">技术协助-其他协助</el-divider>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="其他协助状态" prop="quotJsqrQtApprovalStatus"> <el-form-item label="其他协助状态" prop="quotJsqrQtApprovalStatus">
@ -256,6 +256,27 @@
<span v-hasPermi="['priceVerification:priceVerification:reject']" style="margin-left: 10px"><el-button type="danger" plain @click="rejectHj">驳回</el-button></span> <span v-hasPermi="['priceVerification:priceVerification:reject']" style="margin-left: 10px"><el-button type="danger" plain @click="rejectHj">驳回</el-button></span>
</div> </div>
</div> </div>
<!-- 特缆中压低压其他协助反馈附件对话框 -->
<el-dialog custom-class="fkfjDialog" :title="addFileTitle" :visible.sync="addFileOpen" width="800px" append-to-body>
<el-table class="down" :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">
<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="上传时间" width="200px"></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-dialog>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -265,14 +286,27 @@
width: 100% !important; width: 100% !important;
} }
</style> </style>
<style>
/* 特缆、中压、低压、其他协助反馈附件对话框设置 */
.fkfjDialog .el-dialog__body{
height: 280px;
max-height: 300px; /* 设置最大高度,根据需要调整 */
}
</style>
<script> <script>
import { getPriceVerification, commitHj, rejectHj } from "@/api/priceVerification/priceVerification"; import { getPriceVerification, commitHj, rejectHj } from "@/api/priceVerification/priceVerification";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { quotFileList, quotFileDelete} from "@/api/quot/quot"; import { quotFileList, quotFileDelete} from "@/api/quot/quot";
/** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog";
export default { export default {
name: "hjInfo", name: "hjInfo",
dicts: ['quot_pricing_type','quot_hj_approval_status'], directives: {
elDragDialog,
},
dicts: ['quot_pricing_type','quot_jsxz_approval_status','quot_hj_approval_status'],
data() { data() {
return { return {
// / // /
@ -292,6 +326,19 @@ export default {
form: {}, form: {},
// //
rules: {}, rules: {},
//
addFileOpen: false,
//
addFileTitle: "",
//
uploadDis: false,
//
quotJsqrFileList: [],
quotJsqrTlFileNum: 0,
quotJsqrDyFileNum: 0,
quotJsqrZyFileNum: 0,
quotJsqrQtFileNum: 0,
//- //-
showTl: false, showTl: false,
showDy: false, showDy: false,
@ -340,9 +387,7 @@ export default {
this.getQuotXjFileList(); this.getQuotXjFileList();
this.getQuotHjFileList(); this.getQuotHjFileList();
console.log( response.data)
const quotJsxzGroup = this.form.quotJsxzGroupValues; const quotJsxzGroup = this.form.quotJsxzGroupValues;
alert(quotJsxzGroup)
if(quotJsxzGroup) { if(quotJsxzGroup) {
if (quotJsxzGroup.indexOf("TL") !== -1) { if (quotJsxzGroup.indexOf("TL") !== -1) {
this.showTl = true; this.showTl = true;
@ -363,6 +408,49 @@ export default {
} }
}); });
}, },
//
handleAddFile(group){
this.addFileOpen = true;
this.quotJsqrFileList = [];
if("quotJsqrTl"==group){
this.addFileTitle = '特缆反馈附件'
this.fileType = 'quotJsqrTlFkFile';
this.uploadDis = (this.form.quotJsqrTlOperateState == 0 ? true : false);
}else if('quotJsqrDy'==group){
this.addFileTitle = '低压反馈附件'
this.fileType = 'quotJsqrDyFkFile';
this.uploadDis = (this.form.quotJsqrDyOperateState == 0 ? true : false);
}else if('quotJsqrZy'==group){
this.addFileTitle = '中压反馈附件'
this.fileType = 'quotJsqrZyFkFile';
this.uploadDis = (this.form.quotJsqrZyOperateState == 0 ? true : false);
}else if('quotJsqrQt'==group){
this.addFileTitle = '其他反馈附件'
this.fileType = 'quotJsqrQtFkFile';
this.uploadDis = (this.form.quotJsqrQtOperateState == 0 ? true : false);
}
//
this.getQuotJsqrFileList(this.fileType);
},
//--
getQuotJsqrFileList(fileType){
const param = {relationId:this.form.quotJsxzConfirmId,fileType:fileType}
quotFileList(param).then(response => {
this.quotJsqrFileList = response.rows;
if('quotJsqrTlFkFile' == fileType){
this.quotJsqrTlFileNum = response.rows.length;
}else if('quotJsqrDyFkFile' == fileType){
this.quotJsqrDyFileNum = response.rows.length;
}else if('quotJsqrZyFkFile' == fileType){
this.quotJsqrZyFileNum = response.rows.length;
}else if('quotJsqrQtFkFile' == fileType){
this.quotJsqrQtFileNum = response.rows.length;
}
});
},
/** 提交报价按钮 */ /** 提交报价按钮 */
commitHj() { commitHj() {
var quotHjFileNum = this.quotHjFileList.length; var quotHjFileNum = this.quotHjFileList.length;

View File

@ -850,11 +850,11 @@ export default {
// //
customerOpen:false, customerOpen:false,
// //
addFileOpen: false, addFileOpen: false,
// //
addFileTitle: "", addFileTitle: "",
// //
uploadDis: false, uploadDis: false,
// //
quotJsqrFileList: [], quotJsqrFileList: [],

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="1000px" v-el-drag-dialog append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="12"> <el-col :span="12">
@ -690,8 +690,14 @@
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { quotFileList,quotFileDelete } from "@/api/quot/quot"; import { quotFileList,quotFileDelete } from "@/api/quot/quot";
/** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog";
export default { export default {
name: "jsxzInfo", name: "jsxzInfo",
directives: {
elDragDialog,
},
dicts: ['quot_jsxz_approval_status','quot_jsxz_chapter','quot_jsxz_standard','quot_jsxz_group','quot_jsxz_group_status'], dicts: ['quot_jsxz_approval_status','quot_jsxz_chapter','quot_jsxz_standard','quot_jsxz_group','quot_jsxz_group_status'],
data() { data() {
return { return {