Commit 94265561 authored by tianhongyang's avatar tianhongyang

fix bug

parent fd6d053f
......@@ -309,8 +309,7 @@ export const modifyBidOpeningRecordApi = (data) => request({
*/
export const removeBidOpeningRecordApi = (params) => request({
method: "DELETE",
url: "/business/open/tender",
params
url: `/business/open/tender/${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 @@
.fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
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 @@
</transition>
</template>
</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>
</template>
<!-- 多选 -->
......
......@@ -11,9 +11,9 @@
<script>
import { steerScroll } from '@/assets/js/jskplug';
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 { getUipIdByCid } from '@/api/macro/macro'
import { getUipIdByCid } from '@/api/macro/macro';
export default {
name: 'Enterprise',
components: {
......@@ -42,13 +42,13 @@ export default {
if (window.location.host === 'http://szh.jiansheku.com' || window.location.host === 'szh.jiansheku.com') {
this.domain = 'https://plug.jiansheku.com';
} 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.210:3400';
this.domain = 'http://192.168.60.104:3400';
}
this.gettokens();
this.iframeObserver();
let that = this
let that = this;
window.addEventListener("message", this.pagecapListener, { passive: true });
window.addEventListener('message', this.linkListener, false);
},
......@@ -66,26 +66,26 @@ export default {
this.iframeIns.contentWindow.postMessage("removeHtmlLayoutStyle", { targetOrigin: this.domain, });
},
methods: {
linkListener(event){
let {data} = event
if(data.id){
getUipIdByCid([data.id]).then(res=>{
if (res.code==200) {
if(res.data&&res.data.length>0&&res.data[0].uipId){
this.$router.push({path: '/enterprise/'+this.encodeStr(data.id)})
}else{
this.$tab.openPage(data.title, '/company/'+this.encodeStr(data.id))
linkListener(event) {
let { data } = event;
if (data.id) {
getUipIdByCid([data.id]).then(res => {
if (res.code == 200) {
if (res.data && res.data.length > 0 && res.data[0].uipId) {
this.$router.push({ path: '/enterprise/' + this.encodeStr(data.id) });
} else {
this.$tab.openPage(data.title, '/company/' + this.encodeStr(data.id));
}
}
}).catch(error=>{
}).catch(error => {
});
}else{
if(data.url){
} else {
if (data.url) {
this.$tab.openPage(data.title, data.url).then(() => {
// 执行结束的逻辑
})
// 执行结束的逻辑
});
}
}
},
......@@ -151,9 +151,13 @@ export default {
<style lang="scss" scoped>
.market-container {
width: 100%;
height: 100%;
padding: 16px 24px;
padding-right: 15px;
box-sizing: border-box;
position: absolute;
left: 0;
top: 0;
.market-iframe {
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 @@
<div class="bid-opening-record-inner">
<!-- 查询功能 -->
<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="search-btn add" @click.stop="addBidOpeningRecord">
<img src="@/assets/images/project/project-bid-opening-record-add.svg" alt="">
......@@ -25,7 +25,21 @@
<div class="table-data-list-container" v-else-if="!isLoadingData || !tableDataList.length">
<table-list-com :formColum="formColum" :queryParams="queryParams" :tableData="tableDataList" :tableDataTotal="tableDataTotal"
: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">
<div class="action-field-bar-container">
<span class="action-field-bar-btn modify" @click.stop="modifyBidOpeningRecord(scope.row)">编辑</span>
......@@ -41,17 +55,18 @@
: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>
</template>
<script>
import skeleton from './skeleton';
import TableListCom from "@/components/TableListCom";
import BatchImportReset from "./batchImportReset";
import BatchImportCom from "./BatchImportCom";
import { getBidOpeningRecordListApi, addBidOpeningRecordApi, modifyBidOpeningRecordApi, removeBidOpeningRecordApi } from "@/api/project/project";
import AddBidOpeningRecord from "./AddBidOpeningRecord.vue";
import { getToken } from "@/utils/auth";
export default {
components: { skeleton, TableListCom, AddBidOpeningRecord, BatchImportReset },
components: { skeleton, TableListCom, AddBidOpeningRecord, BatchImportCom },
name: "bidOpeningRecord",
data() {
// 必填字符串长度验证
......@@ -100,12 +115,12 @@ export default {
isLoadingData: false,
// 列表列数据
formColum: [
{ label: '投标人', prop: 'tenderer', width: "468px" },
{ label: '企业性质', prop: 'tendererNature', width: "96px" },
{ label: '项目经理', prop: 'businessManager', width: "115px" },
{ label: '联系方式', prop: 'contact', width: "133px" },
{ label: '投标金额(万元)', prop: 'tenderAmount', width: "168px", sortable: "custom" },
{ label: '操作', prop: 'action-field-bar', minWidth: "151px", fixed: "right" },
{ label: '投标人', prop: 'tenderer', minWidth: "468px" },
{ label: '企业性质', prop: 'tendererNature', minWidth: "96px" },
{ label: '项目经理', prop: 'businessManager', minWidth: "115px" },
{ label: '联系方式', prop: 'contact', width: "133px", },
{ label: '投标金额(万元)', prop: 'tenderAmount', width: "168px", slot: true, slotHeader: true, slotName: "tenderAmountHeader" },
{ label: '操作', prop: 'action-field-bar', width: "151px", fixed: "right" },
],
needSelection: {
flag: true,
......@@ -141,8 +156,25 @@ export default {
selectionArray: [],
// 展示新增弹窗
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属性
......@@ -244,9 +276,7 @@ export default {
try {
if (!this.selectionArray?.length && !id) return;
const array = id ? [{ id }] : this.selectionArray;
const result = await removeBidOpeningRecordApi({
ids: (array.map(item => item.id))
});
const result = await removeBidOpeningRecordApi((array.map(item => item.id)).join(","));
if (result.code == 200) {
this.getTableList();
}
......@@ -263,11 +293,11 @@ export default {
this.getTableList(pageNum, pageSize, orderByColumn, isAsc);
},
// 列排序
sortChange({ column, order, prop }) {
sortChange(prop, order) {
this.queryParams.orderByColumn = prop;
if (order == "ascending") {
if (order == "asc") {
this.queryParams.isAsc = "asc";
} else if (order == "descending") {
} else if (order == "desc") {
this.queryParams.isAsc = "desc";
}
this.hasConditions();
......@@ -279,10 +309,10 @@ export default {
},
// 批量导入
batchImport() {
this.showImport = true;
this.uploadOptions.open = true;
},
cancelimport() {
this.showImport = false;
this.uploadOptions.open = false;
},
getdatas() {
this.getTableList();
......@@ -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 {
},
onSuccess(res, file, fileList) {
if (res.code == 200) {
this.successCount = res.successCount;
let str = '成功导入条数' + res.successCount + ',失败条数' + res.errorCount;
this.successCount = res.data.successCount;
let str = '成功导入条数' + res.data.successCount + ',失败条数' + res.data.errorCount;
this.messages = str;
this.addsuccess = true;
} else {
......
......@@ -345,9 +345,6 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<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>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
</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