This commit is contained in:
xd 2024-04-21 09:29:09 +08:00
parent 47c7500dc0
commit 17caa7bdd4
5 changed files with 171 additions and 203 deletions

View File

@ -1,118 +1,124 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-row :gutter="8"> <el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-col :span="12"> <el-row :gutter="8">
<el-form-item label="核价单号" prop="quotHjCode"> <el-col :span="12">
<el-input v-model="form.quotHjCode" :disabled="true"/> <el-form-item label="核价单号" prop="quotHjCode">
</el-form-item> <el-input v-model="form.quotHjCode" :disabled="true"/>
</el-col> </el-form-item>
<el-col :span="12"> </el-col>
<el-form-item label="报价单号" prop="quotCode"> <el-col :span="12">
<el-input v-model="form.quotCode" :disabled="true"/> <el-form-item label="报价单号" prop="quotCode">
</el-form-item> <el-input v-model="form.quotCode" :disabled="true"/>
</el-col> </el-form-item>
</el-row> </el-col>
<el-row :gutter="8"> </el-row>
<el-col :span="8"> <el-row :gutter="8">
<el-form-item label="核价日期" prop="quotHjPricingDate"> <el-col :span="8">
<div class="el-p" style="width:100%"> <el-form-item label="核价日期" prop="quotHjPricingDate">
<el-date-picker <div class="el-p" style="width:100%">
style="width:100%" <el-date-picker
v-model="form.quotHjPricingDate" style="width:100%"
type="datetime" v-model="form.quotHjPricingDate"
placeholder="系统自动生成" type="datetime"
:disabled="true"> placeholder="系统自动生成"
</el-date-picker> :disabled="true">
</div> </el-date-picker>
</el-form-item> </div>
</el-col> </el-form-item>
<el-col :span="8"> </el-col>
<el-form-item label="核价类型" prop="quotHjPricingType"> <el-col :span="8">
<el-select v-model="form.quotHjPricingType" style="width: 100%;" :disabled="true"> <el-form-item label="核价类型" prop="quotHjPricingType">
<el-option <el-select v-model="form.quotHjPricingType" style="width: 100%;" :disabled="true">
v-for="dict in dict.type.quot_pricing_type" <el-option
:key="dict.value" v-for="dict in dict.type.quot_pricing_type"
:label="dict.label" :key="dict.value"
:value="dict.value" :label="dict.label"
></el-option> :value="dict.value"
</el-select> ></el-option>
</el-form-item> </el-select>
</el-col> </el-form-item>
<el-col :span="8"> </el-col>
<el-form-item label="业务员" prop="quotSalesmanName"> <el-col :span="8">
<el-input v-model="form.quotSalesmanName" :disabled="true"/> <el-form-item label="业务员" prop="quotSalesmanName">
</el-form-item> <el-input v-model="form.quotSalesmanName" :disabled="true"/>
</el-col> </el-form-item>
</el-row> </el-col>
<el-row :gutter="8"> </el-row>
<el-col :span="16"> <el-row :gutter="8">
<el-form-item label="客户" prop="quotCustomerName"> <el-col :span="16">
<el-input v-model="form.quotCustomerName" :disabled="true"/> <el-form-item label="客户" prop="quotCustomerName">
</el-form-item> <el-input v-model="form.quotCustomerName" :disabled="true"/>
</el-col> </el-form-item>
<el-col :span="16"> </el-col>
<el-form-item label="项目名称" prop="quotProject"> <el-col :span="16">
<el-input type="textarea" autosize v-model="form.quotProject" :disabled="true"/> <el-form-item label="项目名称" prop="quotProject">
</el-form-item> <el-input type="textarea" autosize v-model="form.quotProject" :disabled="true"/>
</el-col> </el-form-item>
</el-row> </el-col>
<el-row :gutter="8"> </el-row>
<el-col :span="24"> <el-row :gutter="8">
<el-form-item label="备注" prop="quotHjRemark"> <el-col :span="24">
<el-input type="textarea" autosize v-model="form.quotHjRemark" placeholder="请输入备注" /> <el-form-item label="备注" prop="quotHjRemark">
</el-form-item> <el-input type="textarea" autosize v-model="form.quotHjRemark" placeholder="请输入备注" />
</el-col> </el-form-item>
</el-row> </el-col>
<el-row :gutter="8"> </el-row>
<el-col :span="24"> <el-row :gutter="8">
<el-form-item label="核价附件"> <el-col :span="24">
<el-upload class="upload-demo" <el-form-item label="核价附件">
ref="upload" <div v-hasPermi="['priceVerification:priceVerification:uploadFile']">
name="quotFile" <el-upload class="upload-demo"
:action="uploadUrl" ref="upload"
:headers="headers" name="quotFile"
:data="{ relation_id: this.form.quotHjId,file_type: 'quotHjFile' }" :action="uploadUrl"
:on-success="handleAvatarSuccess" :headers="headers"
:show-file-list="false" :data="{ relation_id: this.form.quotHjId,file_type: 'quotHjFile' }"
:limit="1" :on-success="handleAvatarSuccess"
v-if="this.form.quotHjApprovalStatus == '1'"> :show-file-list="false"
<el-button size="small" type="primary">上传文件</el-button> :limit="1"
</el-upload> v-if="this.form.quotHjApprovalStatus == '1'">
</el-form-item> <el-button size="small" type="primary">上传文件</el-button>
</el-col> </el-upload>
</el-row> </div>
<el-row :gutter="8"> </el-form-item>
<el-col :span="24"> </el-col>
<el-table class="down" :data="quotHjFileList" border stripe style="width: 100%;" height="150px"> </el-row>
<el-table-column prop="fileName" label="文件名称" width="450px"></el-table-column> <el-row :gutter="8">
<el-table-column prop="fileSize" label="文件大小" width="100px"> <el-col :span="24">
<template slot-scope="scope"> <el-table class="down" :data="quotHjFileList" border stripe style="width: 100%;" height="150px">
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span> <el-table-column prop="fileName" label="文件名称" width="450px"></el-table-column>
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span> <el-table-column prop="fileSize" label="文件大小" width="100px">
</template> <template slot-scope="scope">
</el-table-column> <span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
<el-table-column prop="fileTime" label="上传时间"></el-table-column> <span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
<el-table-column width="150px" label="操作"> </template>
<template slot-scope="scope"> </el-table-column>
<el-button :key="Math.random()" size="small" type="text"> <el-table-column prop="fileTime" label="上传时间"></el-table-column>
<a @click="downloadFile(scope.row.fileUrl)">下载</a> <el-table-column width="150px" label="操作">
</el-button> <template slot-scope="scope">
<el-button :key="Math.random()" size="small" type="text" v-if="form.quotHjApprovalStatus == '1'"> <el-button :key="Math.random()" size="small" type="text">
<a @click="deleteFile(scope.row.fileId)">删除</a> <a @click="downloadFile(scope.row.fileUrl)">下载</a>
</el-button> </el-button>
</template> <div v-if="this.isSelfProp">
</el-table-column> <el-button :key="Math.random()" size="small" type="text" v-if="form.quotHjApprovalStatus == '1'">
</el-table> <a @click="deleteFile(scope.row.fileId)">删除</a>
</el-col> </el-button>
</el-row> </div>
</el-form> </template>
<div v-if="this._props.isSelfProp"> </el-table-column>
</el-table>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" v-if="this.form.quotHjApprovalStatus==1"> <div slot="footer" class="dialog-footer" v-if="this.form.quotHjApprovalStatus==1">
<span v-hasPermi="['priceVerification:priceVerification:commit']"><el-button type="primary" @click="commitHj">提交报价</el-button></span> <div v-if="this.isSelfProp">
<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:commit']"><el-button type="primary" @click="commitHj">提交报价</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>
</div> </div>
</template> </template>
<style> <style>
@ -136,12 +142,13 @@ import { quotFileList, quotFileDelete} from "@/api/quot/quot";
export default { export default {
name: "hjInfo", name: "hjInfo",
dicts: ['quot_pricing_type','quot_hj_approval_status'], dicts: ['quot_pricing_type','quot_hj_approval_status'],
props: {
quotHjIdProp: String,
isSelfProp: Boolean
},
data() { data() {
return { return {
// /
title: "",
open: false,
//
isSelfProp: true,
// - // -
quotHjFileList: [], quotHjFileList: [],
//- //-
@ -154,14 +161,6 @@ export default {
rules: {} rules: {}
}; };
}, },
watch: {
quotHjIdProp(value,oldvalue){
this.getInfo();
}
},
created() {
this.getInfo();
},
methods: { methods: {
/** 清空表单 */ /** 清空表单 */
reset(){ reset(){
@ -179,11 +178,17 @@ export default {
this.resetForm("form"); this.resetForm("form");
}, },
//
cancel() {
this.open = false;
this.$emit('refreshList');
},
/** 修改按钮操作 */ /** 修改按钮操作 */
getInfo() { getInfo(title,open,isSelfProp,quotHjId) {
this.open = true;
this.title = "报价单-技术确认单";
this.isSelfProp = isSelfProp;
this.reset(); this.reset();
const quotHjId = this._props.quotHjIdProp;
getPriceVerification(quotHjId).then(response => { getPriceVerification(quotHjId).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;

View File

@ -70,9 +70,7 @@
/> />
<!-- 添加或修改报价单-核价单对话框 --> <!-- 添加或修改报价单-核价单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <hjDialog ref="hjDialog" @refreshList="getList"></hjDialog>
<hjDialog :quotHjIdProp="quotHjIdProp" :isSelfProp="true"></hjDialog>
</el-dialog>
</div> </div>
</template> </template>
<style> <style>
@ -127,9 +125,7 @@ export default {
pageSize: 10, pageSize: 10,
quotHjCode: null, quotHjCode: null,
quotHjPricingDate: null, quotHjPricingDate: null,
}, }
//
quotHjIdProp: ""
}; };
}, },
created() { created() {
@ -171,9 +167,7 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
const quotHjId = row.quotHjId || this.ids const quotHjId = row.quotHjId || this.ids
this.open = true; this.$refs.hjDialog.getInfo("报价单-核价单",true,true,quotHjId);
this.title = "报价单-核价单";
this.quotHjIdProp = quotHjId;//
} }
} }
}; };

View File

@ -625,7 +625,7 @@
</el-tabs> </el-tabs>
<!-- 特缆中压低压其他协助反馈附件对话框 --> <!-- 特缆中压低压其他协助反馈附件对话框 -->
<el-dialog class="fkfjDialog" :title="addFileTitle" :visible.sync="addFileOpen" width="800px" append-to-body> <el-dialog class="fkfjDialog" :title="addFileTitle" :visible.sync="addFileOpen" width="800px" append-to-body>
<el-upload class="upload-demo" <!--<el-upload class="upload-demo"
ref="upload" ref="upload"
name="quotFile" name="quotFile"
:action="uploadUrl" :action="uploadUrl"
@ -636,7 +636,7 @@
:limit="1" :limit="1"
v-if="uploadDis"> v-if="uploadDis">
<el-button size="small" type="primary">上传文件</el-button> <el-button size="small" type="primary">上传文件</el-button>
</el-upload> </el-upload>-->
<el-table class="down" :data="quotJsqrFileList" border stripe style="width: 100%;margin-top: 20px;" height="200px"> <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="fileName" label="文件名称" ></el-table-column>
<el-table-column prop="fileSize" label="文件大小" width="150px"> <el-table-column prop="fileSize" label="文件大小" width="150px">
@ -651,9 +651,9 @@
<el-button :key="Math.random()" size="small" type="text"> <el-button :key="Math.random()" size="small" type="text">
<a @click="downloadFile(scope.row.fileUrl)">下载</a> <a @click="downloadFile(scope.row.fileUrl)">下载</a>
</el-button> </el-button>
<el-button :key="Math.random()" size="small" type="text" v-if="uploadDis"> <!--<el-button :key="Math.random()" size="small" type="text" v-if="uploadDis">
<a @click="deleteFile(scope.row.fileId)">删除</a> <a @click="deleteFile(scope.row.fileId)">删除</a>
</el-button> </el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -672,14 +672,10 @@
</el-dialog> </el-dialog>
<!-- 技术确认单详情对话框 --> <!-- 技术确认单详情对话框 -->
<el-dialog :title="jsqrTitle" :visible.sync="jsqrDialogOpen" width="1000px" append-to-body> <jsqrDialog ref="jsqrDialog"></jsqrDialog>
<jsqrDialog :quotJsqrIdProp="quotJsqrIdProp" :isSelfProp="false"></jsqrDialog>
</el-dialog>
<!-- 核价单详情对话框 --> <!-- 核价单详情对话框 -->
<el-dialog :title="hjTitle" :visible.sync="hjDialogOpen" width="1000px" append-to-body> <hjDialog ref="hjDialog"></hjDialog>
<hjDialog :quotHjIdProp="quotHjIdProp" :isSelfProp="false"></hjDialog>
</el-dialog>
</div> </div>
</template> </template>
<style> <style>
@ -815,17 +811,7 @@ export default {
showTl: false, showTl: false,
showDy: false, showDy: false,
showZy: false, showZy: false,
showQt: false, showQt: false
//
jsqrTitle: "",
jsqrDialogOpen: false,
quotJsqrIdProp: "",
//
hjTitle: "",
hjDialogOpen: false,
quotHjIdProp: ""
}; };
}, },
created() { created() {
@ -1202,16 +1188,12 @@ export default {
// //
showJsqrDialog(){ showJsqrDialog(){
this.jsqrTitle = "技术确认单信息"; this.$refs.jsqrDialog.getInfo("报价单-技术确认单",true,false,this.form.quotJsxzConfirmId);
this.jsqrDialogOpen = true;
this.quotJsqrIdProp = this.form.quotJsxzConfirmId;//
}, },
// //
showHjDialog(){ showHjDialog(){
this.hjTitle = "核价单信息"; this.$refs.hjDialog.getInfo("报价单-核价单",true,false,this.form.quotHjId);
this.hjDialogOpen = true;
this.quotHjIdProp = this.form.quotHjId;//
} }
} }
}; };

View File

@ -92,9 +92,7 @@
/> />
<!-- 添加或修改报价单-技术确认单对话框 --> <!-- 添加或修改报价单-技术确认单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <jsqrDialog ref="jsqrDialog" @refreshList="getList"></jsqrDialog>
<jsqrDialog :quotJsqrIdProp="quotJsqrIdProp" :isSelfProp="true" @fMethod="cancel"></jsqrDialog>
</el-dialog>
</div> </div>
</template> </template>
<style> <style>
@ -156,20 +154,13 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
quotJsqrCode: null quotJsqrCode: null
}, }
//
quotJsqrIdProp: ""
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { methods: {
//
cancel() {
this.open = false;
this.getList();
},
/** 查询报价单-技术确认单列表 */ /** 查询报价单-技术确认单列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -198,10 +189,8 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
const quotJsqrId = row.quotJsqrId || this.ids const quotJsqrId = row.quotJsqrId || this.ids;
this.open = true; this.$refs.jsqrDialog.getInfo("报价单-技术确认单",true,true,quotJsqrId);
this.title = "报价单-技术确认单";
this.quotJsqrIdProp = quotJsqrId;//
} }
} }
}; };

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<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">
<el-form-item label="技术确认单编号" prop="quotJsqrCode"> <el-form-item label="技术确认单编号" prop="quotJsqrCode">
@ -648,20 +649,23 @@
<el-button :key="Math.random()" size="small" type="text"> <el-button :key="Math.random()" size="small" type="text">
<a @click="downloadFile(scope.row.fileUrl)">下载</a> <a @click="downloadFile(scope.row.fileUrl)">下载</a>
</el-button> </el-button>
<el-button :key="Math.random()" size="small" type="text" v-if="uploadDis"> <div v-if="this.isSelfProp">
<a @click="deleteFile(scope.row.fileId)">删除</a> <el-button :key="Math.random()" size="small" type="text" v-if="uploadDis">
</el-button> <a @click="deleteFile(scope.row.fileId)">删除</a>
</el-button>
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
</el-form> </el-form>
<div v-if="this._props.isSelfProp"> <div slot="footer" class="dialog-footer" v-if="this.form.quotJsxzApprovalStatus==1">
<div slot="footer" class="dialog-footer" v-if="this.form.quotJsxzApprovalStatus==1"> <div v-if="isSelfProp">
<span v-hasPermi="['jsqr:jsqr:commit']"><el-button type="primary" @click="commitQuot">提交报价</el-button></span> <span v-hasPermi="['jsqr:jsqr:commit']"><el-button type="primary" @click="commitQuot">提交报价</el-button></span>
<span style="margin-left: 10px"><el-button @click="cancel"> </el-button></span> <span style="margin-left: 10px"><el-button @click="cancel"> </el-button></span>
</div>
</div> </div>
</div> </el-dialog>
</div> </div>
</template> </template>
<style> <style>
@ -681,12 +685,13 @@
export default { export default {
name: "jsxzInfo", name: "jsxzInfo",
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'],
props: {
quotJsqrIdProp: String,
isSelfProp: Boolean
},
data() { data() {
return { return {
// /
title: "",
open: false,
//
isSelfProp: true,
// -- // --
quotJsgfFileList: [], quotJsgfFileList: [],
//-- //--
@ -746,14 +751,6 @@
quotJsqrQtLeaderRemarkDis: false, quotJsqrQtLeaderRemarkDis: false,
} }
}, },
watch: {
quotJsqrIdProp(value,oldvalue){
this.getInfo();
}
},
created() {
this.getInfo();
},
methods: { methods: {
/** 清空表单 */ /** 清空表单 */
reset(){ reset(){
@ -836,12 +833,15 @@
}, },
// //
cancel() { cancel() {
this.$emit('fMethod'); this.open = false;
this.$emit('refreshList');
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
getInfo() { getInfo(title,open,isSelfProp,quotJsqrId) {
this.open = true;
this.title = "报价单-技术确认单";
this.isSelfProp = isSelfProp;
this.reset(); this.reset();
const quotJsqrId = this._props.quotJsqrIdProp;
getJsqr(quotJsqrId).then(response => { getJsqr(quotJsqrId).then(response => {
this.form = response.data; this.form = response.data;
this.$set(this.form, "quotJsxzGroup", (this.form.quotJsxzGroupValues==''||this.form.quotJsxzGroupValues==null)?[]:this.form.quotJsxzGroupValues.split(',')); this.$set(this.form, "quotJsxzGroup", (this.form.quotJsxzGroupValues==''||this.form.quotJsxzGroupValues==null)?[]:this.form.quotJsxzGroupValues.split(','));
@ -863,8 +863,6 @@
this.getQuotJsqrFileList('quotJsqrQtFkFile'); this.getQuotJsqrFileList('quotJsqrQtFkFile');
} }
this.open = true;
this.title = "报价单-技术确认单";
this.getQuotJsgfFileList(); this.getQuotJsgfFileList();
this.quotJsqrTlRemarkDisSet();//-/ this.quotJsqrTlRemarkDisSet();//-/
this.quotJsqrDyRemarkDisSet();//-/ this.quotJsqrDyRemarkDisSet();//-/