Commit 94265561 authored by tianhongyang's avatar tianhongyang

fix bug

parent fd6d053f
...@@ -309,8 +309,7 @@ export const modifyBidOpeningRecordApi = (data) => request({ ...@@ -309,8 +309,7 @@ export const modifyBidOpeningRecordApi = (data) => request({
*/ */
export const removeBidOpeningRecordApi = (params) => request({ export const removeBidOpeningRecordApi = (params) => request({
method: "DELETE", method: "DELETE",
url: "/business/open/tender", url: `/business/open/tender/${params}`,
params
}); });
<svg width="24" height="24" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path d="M23.063 13.171a1.2 1.2 0 011.874 0l13.503 16.88c.629.785.07 1.949-.937 1.949H10.497c-1.006 0-1.566-1.164-.937-1.95l13.503-16.879z"/></svg>
\ No newline at end of file
<svg width="24" height="24" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path d="M24.937 34.829a1.2 1.2 0 01-1.874 0L9.56 17.949C8.93 17.165 9.49 16 10.497 16h27.006c1.007 0 1.566 1.164.937 1.95L24.937 34.829z"/></svg>
\ No newline at end of file
...@@ -16,3 +16,7 @@ ...@@ -16,3 +16,7 @@
.fade-leave-to /* .fade-leave-active below version 2.1.8 */ { .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0; opacity: 0;
} }
.el-message {
z-index: 3000 !important;
}
/*
* @Author: thy
* @Date: 2023-10-26 14:56:41
* @LastEditors: thy
* @LastEditTime: 2023-10-26 16:00:22
* @Description: file content
* @FilePath: \dsk-operate-ui\src\utils\postMessageBridge\bridge\index.js
*/
class PostMessageBridge {
constructor() {
}
}
\ No newline at end of file
...@@ -35,11 +35,6 @@ ...@@ -35,11 +35,6 @@
</transition> </transition>
</template> </template>
</el-input> </el-input>
<!-- <div class="cooperate-name enterprise-search-container" :id="'focus'+i">
<el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value"
:placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input>
<span @click="changeSelect">搜索</span>
</div> -->
</div> </div>
</template> </template>
<!-- 多选 --> <!-- 多选 -->
......
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
<script> <script>
import { steerScroll } from '@/assets/js/jskplug'; import { steerScroll } from '@/assets/js/jskplug';
import { dskAccessToken } from '@/api/common'; import { dskAccessToken } from '@/api/common';
import {encodeStr} from "@/assets/js/common" import { encodeStr } from "@/assets/js/common";
import MaxPageSizeTip from "@/views/components/MaxPageSizeTip.vue"; import MaxPageSizeTip from "@/views/components/MaxPageSizeTip.vue";
import { getUipIdByCid } from '@/api/macro/macro' import { getUipIdByCid } from '@/api/macro/macro';
export default { export default {
name: 'Enterprise', name: 'Enterprise',
components: { components: {
...@@ -42,13 +42,13 @@ export default { ...@@ -42,13 +42,13 @@ export default {
if (window.location.host === 'http://szh.jiansheku.com' || window.location.host === 'szh.jiansheku.com') { if (window.location.host === 'http://szh.jiansheku.com' || window.location.host === 'szh.jiansheku.com') {
this.domain = 'https://plug.jiansheku.com'; this.domain = 'https://plug.jiansheku.com';
} else { } else {
this.domain='https://pre-plug.jiansheku.com' this.domain = 'https://pre-plug.jiansheku.com';
// this.domain = 'http://192.168.60.8:3400'; // this.domain = 'http://192.168.60.8:3400';
this.domain = 'http://192.168.60.210:3400'; this.domain = 'http://192.168.60.104:3400';
} }
this.gettokens(); this.gettokens();
this.iframeObserver(); this.iframeObserver();
let that = this let that = this;
window.addEventListener("message", this.pagecapListener, { passive: true }); window.addEventListener("message", this.pagecapListener, { passive: true });
window.addEventListener('message', this.linkListener, false); window.addEventListener('message', this.linkListener, false);
}, },
...@@ -66,26 +66,26 @@ export default { ...@@ -66,26 +66,26 @@ export default {
this.iframeIns.contentWindow.postMessage("removeHtmlLayoutStyle", { targetOrigin: this.domain, }); this.iframeIns.contentWindow.postMessage("removeHtmlLayoutStyle", { targetOrigin: this.domain, });
}, },
methods: { methods: {
linkListener(event){ linkListener(event) {
let {data} = event let { data } = event;
if(data.id){ if (data.id) {
getUipIdByCid([data.id]).then(res=>{ getUipIdByCid([data.id]).then(res => {
if (res.code==200) { if (res.code == 200) {
if(res.data&&res.data.length>0&&res.data[0].uipId){ if (res.data && res.data.length > 0 && res.data[0].uipId) {
this.$router.push({path: '/enterprise/'+this.encodeStr(data.id)}) this.$router.push({ path: '/enterprise/' + this.encodeStr(data.id) });
}else{ } else {
this.$tab.openPage(data.title, '/company/'+this.encodeStr(data.id)) this.$tab.openPage(data.title, '/company/' + this.encodeStr(data.id));
} }
} }
}).catch(error=>{ }).catch(error => {
}); });
}else{ } else {
if(data.url){ if (data.url) {
this.$tab.openPage(data.title, data.url).then(() => { this.$tab.openPage(data.title, data.url).then(() => {
// 执行结束的逻辑 // 执行结束的逻辑
}) });
} }
} }
}, },
...@@ -151,9 +151,13 @@ export default { ...@@ -151,9 +151,13 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.market-container { .market-container {
width: 100%; width: 100%;
height: 100%;
padding: 16px 24px; padding: 16px 24px;
padding-right: 15px; padding-right: 15px;
box-sizing: border-box; box-sizing: border-box;
position: absolute;
left: 0;
top: 0;
.market-iframe { .market-iframe {
width: 100%; width: 100%;
......
<template>
<div class="batch-import-com">
<!-- 导入弹窗 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<!--导入结果-->
<el-dialog title="导入结果" :visible.sync="upload.showResult" width="500px" class="batch-import-upload-dialog-container"
custom-class="batch-import-upload-dialog" @close="importResultClose">
<div class="batch-import-upload-inner">
<div class="result-count">
<span class="success">导入成功:</span>
<span>{{uploadResult.successCount}}</span>
</div>
<div class="result-count">
<span class="error">导入失败:</span>
<span>{{uploadResult.errorCount}}</span>
</div>
<el-table :data="uploadResult.errorMsg" border stripe v-if="uploadResult.errorMsg.length" class="error-msg-list-table">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="导入失败原因">
<template slot-scope="scope">
<span>{{scope.row}}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: "batchImportCom",
props: {
uploadOptions: {
type: Object,
default: () => ({})
}
},
watch: {
"uploadOptions": {
handler(newValue, oldValue) {
this.upload = newValue;
},
deep: true
}
},
data() {
return {
// 导入参数
upload: this.uploadOptions,
// 导入结果
uploadResult: {
successCount: 0,
errorCount: 0,
errorMsg: []
}
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
if (response.code == 200) {
this.$message.success('上传成功!');
if (response.data) {
this.uploadResult.successCount = response.data.sucessCount;
this.uploadResult.errorCount = response.data.errorCount;
response.data.errorMsg ? this.uploadResult.errorMsg = response.data.errorMsg : null;
this.upload.showResult = true;
}
} else {
this.$message.success(`上传失败,${response.msg ? response.msg : "请根据模板正确填写表格内容!"}`);
}
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
/** 下载模板操作 */
importTemplate() {
let a = document.createElement("a");
a.setAttribute("href", this.upload.fileTemplateUrl);
a.setAttribute("download", `${this.upload.fileName}_${new Date().getTime()}.xlsx`);
document.body.appendChild(a);
a.click();
a.remove();
},
importResultClose() {
this.upload.showResult = false;
this.uploadResult = this.$options.data.call(this).uploadResult;
},
},
}
</script>
<style lang="scss" scoped>
.batch-import-com {
::v-deep.batch-import-upload-dialog-container {
.batch-import-upload-dialog {
width: 100%;
max-height: 85%;
overflow: auto;
.el-dialog__header {
position: sticky;
top: 0px;
background: #fff;
z-index: 99;
}
.batch-import-upload-inner {
width: 100%;
display: flex;
flex-direction: column;
.result-count {
line-height: 32px;
.success {
color: #67c23a;
}
.error {
color: #f56c6c;
}
}
.error-msg-list-table {
margin-top: 8px;
}
}
}
}
}
</style>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="bid-opening-record-inner"> <div class="bid-opening-record-inner">
<!-- 查询功能 --> <!-- 查询功能 -->
<div class="search-form-container"> <div class="search-form-container">
<div class="left-form-title">基本信息</div> <div class="left-form-title">开标记录</div>
<div class="right-form-btn-box"> <div class="right-form-btn-box">
<div class="search-btn add" @click.stop="addBidOpeningRecord"> <div class="search-btn add" @click.stop="addBidOpeningRecord">
<img src="@/assets/images/project/project-bid-opening-record-add.svg" alt=""> <img src="@/assets/images/project/project-bid-opening-record-add.svg" alt="">
...@@ -25,7 +25,21 @@ ...@@ -25,7 +25,21 @@
<div class="table-data-list-container" v-else-if="!isLoadingData || !tableDataList.length"> <div class="table-data-list-container" v-else-if="!isLoadingData || !tableDataList.length">
<table-list-com :formColum="formColum" :queryParams="queryParams" :tableData="tableDataList" :tableDataTotal="tableDataTotal" <table-list-com :formColum="formColum" :queryParams="queryParams" :tableData="tableDataList" :tableDataTotal="tableDataTotal"
:needSelection="needSelection" :stickyHeader="{offsetTop:'48px',offsetBottom : '10px'}" @selectionChange="selectionChange" :needSelection="needSelection" :stickyHeader="{offsetTop:'48px',offsetBottom : '10px'}" @selectionChange="selectionChange"
@sort-change="sortChange" @handle-current-change="pageCurrentChange" ref="tableListComParent"> @handle-current-change="pageCurrentChange" ref="tableListComParent">
<template slot="tenderAmountHeader">
<div class="tender-amount-header">
<span>投标金额(万元)</span>
<div class="tender-amount-sort">
<svg-icon icon-class="asc" :class="{'sort-active' : queryParams.isAsc == 'asc'}"
@click.stop="sortChange('tenderAmount','asc')"></svg-icon>
<svg-icon icon-class="desc" :class="{'sort-active' : queryParams.isAsc == 'desc'}"
@click.stop="sortChange('tenderAmount','desc')"></svg-icon>
</div>
</div>
</template>
<template slot="tenderAmount" slot-scope="scope">
<span>{{parseFloat(scope.row.tenderAmount) ? scope.row.tenderAmount : "--"}}</span>
</template>
<template slot="action-field-bar" slot-scope="scope"> <template slot="action-field-bar" slot-scope="scope">
<div class="action-field-bar-container"> <div class="action-field-bar-container">
<span class="action-field-bar-btn modify" @click.stop="modifyBidOpeningRecord(scope.row)">编辑</span> <span class="action-field-bar-btn modify" @click.stop="modifyBidOpeningRecord(scope.row)">编辑</span>
...@@ -41,17 +55,18 @@ ...@@ -41,17 +55,18 @@
:formRules="formRules" :formData="formData"></add-bid-opening-record> :formRules="formRules" :formData="formData"></add-bid-opening-record>
<!-- 导入弹窗 --> <!-- 导入弹窗 -->
<batch-import-reset v-if="showImport" :importtype="types" @cancels="cancelimport" @getdatas="getdatas"></batch-import-reset> <batch-import-com :uploadOptions="uploadOptions"></batch-import-com>
</div> </div>
</template> </template>
<script> <script>
import skeleton from './skeleton'; import skeleton from './skeleton';
import TableListCom from "@/components/TableListCom"; import TableListCom from "@/components/TableListCom";
import BatchImportReset from "./batchImportReset"; import BatchImportCom from "./BatchImportCom";
import { getBidOpeningRecordListApi, addBidOpeningRecordApi, modifyBidOpeningRecordApi, removeBidOpeningRecordApi } from "@/api/project/project"; import { getBidOpeningRecordListApi, addBidOpeningRecordApi, modifyBidOpeningRecordApi, removeBidOpeningRecordApi } from "@/api/project/project";
import AddBidOpeningRecord from "./AddBidOpeningRecord.vue"; import AddBidOpeningRecord from "./AddBidOpeningRecord.vue";
import { getToken } from "@/utils/auth";
export default { export default {
components: { skeleton, TableListCom, AddBidOpeningRecord, BatchImportReset }, components: { skeleton, TableListCom, AddBidOpeningRecord, BatchImportCom },
name: "bidOpeningRecord", name: "bidOpeningRecord",
data() { data() {
// 必填字符串长度验证 // 必填字符串长度验证
...@@ -100,12 +115,12 @@ export default { ...@@ -100,12 +115,12 @@ export default {
isLoadingData: false, isLoadingData: false,
// 列表列数据 // 列表列数据
formColum: [ formColum: [
{ label: '投标人', prop: 'tenderer', width: "468px" }, { label: '投标人', prop: 'tenderer', minWidth: "468px" },
{ label: '企业性质', prop: 'tendererNature', width: "96px" }, { label: '企业性质', prop: 'tendererNature', minWidth: "96px" },
{ label: '项目经理', prop: 'businessManager', width: "115px" }, { label: '项目经理', prop: 'businessManager', minWidth: "115px" },
{ label: '联系方式', prop: 'contact', width: "133px" }, { label: '联系方式', prop: 'contact', width: "133px", },
{ label: '投标金额(万元)', prop: 'tenderAmount', width: "168px", sortable: "custom" }, { label: '投标金额(万元)', prop: 'tenderAmount', width: "168px", slot: true, slotHeader: true, slotName: "tenderAmountHeader" },
{ label: '操作', prop: 'action-field-bar', minWidth: "151px", fixed: "right" }, { label: '操作', prop: 'action-field-bar', width: "151px", fixed: "right" },
], ],
needSelection: { needSelection: {
flag: true, flag: true,
...@@ -141,8 +156,25 @@ export default { ...@@ -141,8 +156,25 @@ export default {
selectionArray: [], selectionArray: [],
// 展示新增弹窗 // 展示新增弹窗
showAddDialog: false, showAddDialog: false,
// 导入弹窗 // 导入开标记录配置
showImport: false uploadOptions: {
// 是否显示弹出层
open: false,
// 弹出层标题
title: "导入开标信息",
// 是否禁用上传
isUploading: false,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + `/business/open/tender/importData/${this.$route.query.id}`,
// 展示上传结果
showResult: false,
// 模板下载地址
fileTemplateUrl: "/file/bidOpeningRecordTemplate.xlsx",
// 模板名称
fileName: "bidOpeningRecordTemplate"
},
}; };
}, },
//可访问data属性 //可访问data属性
...@@ -244,9 +276,7 @@ export default { ...@@ -244,9 +276,7 @@ export default {
try { try {
if (!this.selectionArray?.length && !id) return; if (!this.selectionArray?.length && !id) return;
const array = id ? [{ id }] : this.selectionArray; const array = id ? [{ id }] : this.selectionArray;
const result = await removeBidOpeningRecordApi({ const result = await removeBidOpeningRecordApi((array.map(item => item.id)).join(","));
ids: (array.map(item => item.id))
});
if (result.code == 200) { if (result.code == 200) {
this.getTableList(); this.getTableList();
} }
...@@ -263,11 +293,11 @@ export default { ...@@ -263,11 +293,11 @@ export default {
this.getTableList(pageNum, pageSize, orderByColumn, isAsc); this.getTableList(pageNum, pageSize, orderByColumn, isAsc);
}, },
// 列排序 // 列排序
sortChange({ column, order, prop }) { sortChange(prop, order) {
this.queryParams.orderByColumn = prop; this.queryParams.orderByColumn = prop;
if (order == "ascending") { if (order == "asc") {
this.queryParams.isAsc = "asc"; this.queryParams.isAsc = "asc";
} else if (order == "descending") { } else if (order == "desc") {
this.queryParams.isAsc = "desc"; this.queryParams.isAsc = "desc";
} }
this.hasConditions(); this.hasConditions();
...@@ -279,10 +309,10 @@ export default { ...@@ -279,10 +309,10 @@ export default {
}, },
// 批量导入 // 批量导入
batchImport() { batchImport() {
this.showImport = true; this.uploadOptions.open = true;
}, },
cancelimport() { cancelimport() {
this.showImport = false; this.uploadOptions.open = false;
}, },
getdatas() { getdatas() {
this.getTableList(); this.getTableList();
...@@ -399,6 +429,30 @@ export default { ...@@ -399,6 +429,30 @@ export default {
} }
} }
} }
.tender-amount-header {
display: flex;
align-items: center;
.tender-amount-sort {
margin-left: 5px;
display: flex;
flex-direction: column;
.svg-icon {
width: 10px;
height: 10px;
fill: #8bd1ff;
cursor: pointer;
&:hover {
fill: #0081ff;
}
&.sort-active {
fill: #0081ff;
}
}
}
}
} }
} }
} }
......
...@@ -106,8 +106,8 @@ export default { ...@@ -106,8 +106,8 @@ export default {
}, },
onSuccess(res, file, fileList) { onSuccess(res, file, fileList) {
if (res.code == 200) { if (res.code == 200) {
this.successCount = res.successCount; this.successCount = res.data.successCount;
let str = '成功导入条数' + res.successCount + ',失败条数' + res.errorCount; let str = '成功导入条数' + res.data.successCount + ',失败条数' + res.data.errorCount;
this.messages = str; this.messages = str;
this.addsuccess = true; this.addsuccess = true;
} else { } else {
......
...@@ -345,9 +345,6 @@ ...@@ -345,9 +345,6 @@
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip"> <div class="el-upload__tip text-center" slot="tip">
<!--<div class="el-upload__tip" slot="tip">-->
<!--<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据-->
<!--</div>-->
<span>仅允许导入xls、xlsx格式文件。</span> <span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link> <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment