Commit 1e97c5bb authored by danfuman's avatar danfuman

修改

parent d5d444a9
......@@ -13,7 +13,7 @@ VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 子系统地址
VUE_APP_SUB_SYSTEM_ADDRESS = "https://pre-plug.jiansheku.com"
# VUE_APP_SUB_SYSTEM_ADDRESS = "http://192.168.60.9:3400"
# VUE_APP_SUB_SYSTEM_ADDRESS = "http://192.168.60.23:3400"
# Bi大屏系统地址
VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
......@@ -62,19 +62,19 @@ export const constantRoutes = [
component: () => import('@/views/error/401'),
hidden: true
},
{
path: '',
component: Layout,
redirect: 'index',
children: [
{
path: 'index',
component: () => import('@/views/index'),
name: 'Index',
meta: { title: '首页', icon: 'index', noCache: true }
}
]
},
// {
// path: '',
// component: Layout,
// redirect: 'index',
// children: [
// {
// path: 'index',
// component: () => import('@/views/index'),
// name: 'Index',
// meta: { title: '首页', icon: 'index', noCache: true }
// }
// ]
// },
{
path: '',
component: Layout,
......@@ -307,6 +307,34 @@ export const constantRoutes = [
}
]
},
//宏观政策监控
{
path: '/monitor/myMonitor',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/monitor/myMonitor',
component: () => import('@/views/detail'),
meta: { title: "政策监控" }
}
]
},
//新增政策监控
{
path: '/monitor/AddMonitor',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/monitor/AddMonitor',
component: () => import('@/views/detail'),
meta: { title: "新增政策监控" }
}
]
},
//公招市场详情
{
path: '',
......
<template>
<div v-loading="loading" class="market-container">
<iframe id="companyIframe" class="market-iframe" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" width="100%" :src="src" />
<!--<iframe id="companyIframe" class="market-iframe" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" width="100%" src="https://www.jianchayun.com/company/56546856314e567a69/?index=true" />-->
</div>
</template>
<script>
import { steerScroll } from '@/assets/js/jskplug';
import { dskAccessToken } from '@/api/common';
import { encodeStr } from "@/assets/js/common";
import MaxPageSizeTip from "@/views/components/MaxPageSizeTip.vue";
import { getUipIdByCid } from '@/api/macro/macro';
export default {
name: 'Subscribe',
components: {
MaxPageSizeTip
},
data() {
return {
encodeStr,
loading: false, // 是否加载完成-当前页控制
iframeTimer: '', // 是否加载中定时器-当前页控制
footHeight: 0, //底部高度,若为0(页面内部嵌套或者没有底部板块)
iframeHight: `${window.innerHeight}px`, // iframe高度-当前页控制
navigation: { isFixed: true, fixedHeight: 56, totalHeight: 68 }, // iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src: '', //iframe嵌套页面地址
domain: 'https://plug.jiansheku.com', // 插件地址
// domain: 'https://pre-plug.jiansheku.com', // 插件地址测试
// domain: 'http://192.168.60.104:3400',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912', // 需要携带的sdkId
timelongs: 7200,//刷新token时间
tokentimer: null,
showMaxPageTip: false,
iframeIns: null,
systemCode:'ZTESJ', //每个项目传的对应参数都不一样
};
},
created() {
this.domain = process.env.VUE_APP_SUB_SYSTEM_ADDRESS;
this.gettokens();
this.iframeObserver();
},
mounted() {
this.iframeLoading(); // 判断iframe页面是否加载完成-当前页控制
window.addEventListener('message', this.linkListener, false);
// steerScroll('companyIframe', this.navigation, this.footHeight, true); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
},
beforeDestroy() {
clearInterval(this.iframeTimer); // -当前页控制
steerScroll('companyIframe', this.navigation, this.footHeight); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
clearInterval(this.tokentimer);
// 移除layout样式
this.iframeIns?.contentWindow ? this.iframeIns.contentWindow.postMessage("removeHtmlLayoutStyle", { targetOrigin: this.domain, }) : null;
window.removeEventListener("message", this.linkListener);
},
methods: {
linkListener(event) {
let { data, origin } = event;
if (origin != this.domain) return;
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 => {
});
} else {
if (data.url) {
this.$tab.openPage(data.title, data.url);
}
}
},
async iframeObserver() {
try {
await this.$nextTick();
this.iframeIns = document.querySelector(".market-iframe");
} catch (error) {
console.log(error);
}
},
gettokens() {
dskAccessToken().then(res => {
if (res.code == 200) {
this.timelongs = res.data.expire;
this.ak = res.data.accessToken;
this.src = `${this.domain}/collection?ak=${this.ak}&initTime=${new Date().getTime()}&uid=${this.ak}&origin=${window.location.origin}&type=1&systemCode=${this.systemCode}&userCode=${this.$store.state.user.userId}`;
this.refreshtoken();
} else {
clearTimeout(this.tokentimer);
}
});
},
refreshtoken() {
this.tokentimer = setTimeout(() => {
dskAccessToken().then(res => {
if (res.code == 200) {
this.timelongs = res.data.expire;
this.ak = res.data.accessToken;
let ifam = document.getElementById('companyIframe'); //iframe的id
let akObj = res.data.expire; //accessToken接口的返回值
let initTime = new Date().getTime(); //accessToken接口返回后的当前时间戳
ifam.contentWindow.postMessage({ 'accessToken': akObj.accessToken, 'initTime': initTime }, '*');
} else {
clearTimeout(this.tokentimer);
}
});
}, this.timelongs * 1000);
},
//判断iframe页面是否加载完成-当前页控制
iframeLoading() {
let iframeHeight = document.getElementById("companyIframe").clientHeight, number = 0;
this.iframeTimer = setInterval(() => {
number++;
if (document.getElementById("companyIframe").clientHeight != iframeHeight || number == 5000) {
this.loading = false;
clearInterval(this.iframeTimer);
}
});
}
}
};
</script>
<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%;
height: 100%;
}
}
</style>
......@@ -30,6 +30,7 @@ export default {
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912', // 需要携带的sdkId
timelongs: 7200,//刷新token时间
tokentimer: null,
systemCode:'ZTESJ', //每个项目传的对应参数都不一样
};
},
created() {
......@@ -78,9 +79,9 @@ export default {
this.ak = res.data.accessToken;
let initTime = new Date().getTime()
if(window.location.search){
this.src = `${this.domain+this.$route.fullPath}&ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
this.src = `${this.domain+this.$route.fullPath}&ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}&systemCode=${this.systemCode}&userCode=${this.$store.state.user.userId}`
}else{
this.src = `${this.domain+this.$route.fullPath}?ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
this.src = `${this.domain+this.$route.fullPath}?ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}&systemCode=${this.systemCode}&userCode=${this.$store.state.user.userId}`
}
// if(window.location.search){
// this.src = `${this.domain+this.$route.fullPath}&ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
......
......@@ -27,7 +27,7 @@
<span class="ability-total">共有{{ tableDataTotal }}条</span>
项目中标中金额<span style="color:#E6A23C;padding-left: 4px;">{{sumMoney}}万元</span>
<span class="flex-box ability-excel" @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box ability-excel" @click="clickDialog"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</p>
<div class="chart" v-if="echartsDataState === false && !isSkeleton">
<div class="chart-left">
......
......@@ -8,31 +8,31 @@
<!-- 单选 -->
<template v-if="form.type==1">
<el-select v-model="form.value" clearable class="form-content-width same-select-com" :class="[`select-adaptive-${form.uid}`]"
:style="form.width?'width:'+form.width+'px':'max-width: 110px'" :placeholder="form.placeholder" @change="iptAdaptive(form.uid)">
:style="form.width?'width:'+form.width+'px':'max-width: 110px'" :placeholder="form.placeholder" @change="iptAdaptive(form.uid)">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" :disabled="item.disabled" />
</el-select>
</template>
<!-- 年月日 -->
<template v-if="form.type==2">
<el-date-picker @change="changeSelect" class="fromTime" style="width: 210px" v-model="form.value" type="daterange"
prefix-icon="fromTime-icon" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
prefix-icon="fromTime-icon" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</template>
<!-- 输入框 -->
<template v-if="form.type==3">
<!-- 未点击前的输入框样式 -->
<div class="normal-search-container" :class="{'is-hover-search' : form.hover}" @mouseover="searchHover($event,form)"
@mouseleave="searchUnHover($event,form)">
@mouseleave="searchUnHover($event,form)">
<img src="@/assets/images/enterprise/enterprise-search-icon.svg">
<transition name="fade-position" appear mode="out-in">
<span v-if="!form.hover && !form.value">搜索</span>
<el-input v-model="form.value" :placeholder="form.placeholder ? form.placeholder : '输入关键词查询'"
:style="form.width?'width:'+form.width+'px':'width:238px'" @focus.stop="searchFocus($event,form)" @blur.stop="searchBlur($event,form)"
@input="value => searchInput(value,form)" v-else @keydown.native.enter="changeSelect">
:style="form.width?'width:'+form.width+'px':'width:238px'" @focus.stop="searchFocus($event,form)" @blur.stop="searchBlur($event,form)"
@input="value => searchInput(value,form)" v-else @keydown.native.enter="changeSelect">
<template slot="suffix">
<transition mode="out-in" appear name="fade">
<img src="@/assets/images/enterprise/search-input-clear-icon.svg" @click.stop="form.value = '';changeSelect()"
v-show="form.showClearIcon">
v-show="form.showClearIcon">
</transition>
</template>
</el-input>
......@@ -42,37 +42,37 @@
<!-- 多选 -->
<template v-if="form.type==4">
<el-select class="form-content-width"
:class="form.value.length > 1 ? ['selectTag',`select-adaptive-${form.uid}`] : [`select-adaptive-${form.uid}`]" v-model="form.value"
multiple collapse-tags clearable :style="form.width?'width:'+form.width+'px':'max-width: 170px'" :placeholder="form.placeholder"
@change="iptAdaptive(form.uid,true)">
:class="form.value.length > 1 ? ['selectTag',`select-adaptive-${form.uid}`] : [`select-adaptive-${form.uid}`]" v-model="form.value"
multiple collapse-tags clearable :style="form.width?'width:'+form.width+'px':'max-width: 170px'" :placeholder="form.placeholder"
@change="iptAdaptive(form.uid,true)">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" />
</el-select>
</template>
<!-- 时间、自定义 -->
<template v-else-if="form.type==5">
<custom-time-select :class="[`select-adaptive-${form.uid}`,'custom-select']" :timeList="form.timeList" v-model="form.value"
:placeholder="form.placeholder" :dateFrom="form.dateFrom ? form.dateFrom : ''" :dateTo="form.dateTo ? form.dateTo : ''"
@handle-search="iptAdaptive(form.uid)" />
:placeholder="form.placeholder" :dateFrom="form.dateFrom ? form.dateFrom : ''" :dateTo="form.dateTo ? form.dateTo : ''"
@handle-search="iptAdaptive(form.uid)" />
</template>
<!-- 金额 -->
<template v-else-if="form.type==6">
<custom-money-select :class="[`select-adaptive-${form.uid}`,'custom-select']" :moneyList="form.moneyList" v-model="form.value"
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
</template>
<!-- 地区选择 -->
<template v-else-if="form.type==7">
<el-cascader :class="[`select-adaptive-${form.uid}`]" ref="cascader" :options="form.options" :props="form.props" v-model="form.value"
@change="iptAdaptive(form.uid,true)" :placeholder="form.placeholder" collapse-tags clearable></el-cascader>
@change="iptAdaptive(form.uid,true)" :placeholder="form.placeholder" collapse-tags clearable></el-cascader>
</template>
<!-- 出让面积、自定义 -->
<template v-else-if="form.type==8">
<start-acreage-select :class="[`select-adaptive-${form.uid}`,'custom-select']" :startAcreageList="form.startAcreageList" v-model="form.value"
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
</template>
<!-- 金额 (集团户详情)-->
<template v-else-if="form.type==9">
<group-money-select :class="[`select-adaptive-${form.uid}`,'custom-select']" :moneyList="form.moneyList" v-model="form.value"
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
</template>
<!-- 自定义 -->
<template v-if="form.type==0">
......@@ -89,8 +89,8 @@
<div v-else class="flex-box">
<span class="flex-box ability-total" v-if="isTotal">共有{{ total }}条</span>
<span class="flex-box ability-excel" v-hasPermi="['combine:info:export:win:bid','combine:info:export:bid']" v-if="isExcel && title ==='集团业绩'|| title ==='集团招标' || title ==='土地交易明细'"
@click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box ability-excel" v-else @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
@click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box ability-excel" v-else-if="isExcel" @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
</div>
......@@ -98,496 +98,497 @@
</template>
<script>
import CustomTimeSelect from './CustomTimeSelect';
import CustomMoneySelect from './CustomMoneySelect';
import GroupMoneySelect from './GroupMoneySelect';
import StartAcreageSelect from './StartAcreageSelect';
import gsap from "gsap";
export default {
name: "HeadForm",
props: {
title: {
type: String,
default: ''
},
queryParams: {
type: Object,
default: () => ({})
},
formData: {
type: Array,
default: () => []
},
isTotal: {
type: Boolean,
default: true
},
total: {
type: Number,
default: 0
},
headerFixed: {
type: Boolean,
default: false
},
isExcel: {
type: Boolean,
default: false
},
slots: {
type: Boolean,
default: false
}
},
watch: {
formData: {
handler(newValue) {
this.comFormData = newValue;
import CustomTimeSelect from './CustomTimeSelect';
import CustomMoneySelect from './CustomMoneySelect';
import GroupMoneySelect from './GroupMoneySelect';
import StartAcreageSelect from './StartAcreageSelect';
import gsap from "gsap";
export default {
name: "HeadForm",
props: {
title: {
type: String,
default: ''
},
deep: true
}
},
data() {
return {
showSearchBox: false,
comFormData: this.formData
};
},
created() {
this.getPlaceholder();
},
components: {
CustomTimeSelect,
CustomMoneySelect,
StartAcreageSelect,
GroupMoneySelect
},
methods: {
searchFocus(event, formData) {
const { target } = event;
if (target?.value?.length) {
this.$set(formData, "showClearIcon", true);
queryParams: {
type: Object,
default: () => ({})
},
formData: {
type: Array,
default: () => []
},
isTotal: {
type: Boolean,
default: true
},
total: {
type: Number,
default: 0
},
headerFixed: {
type: Boolean,
default: false
},
isExcel: {
type: Boolean,
default: false
},
slots: {
type: Boolean,
default: false
}
},
searchBlur(event, formData) {
const { target } = event;
// 失去焦点没有文字
if (!target?.value?.length) {
this.$set(formData, "hover", false);
watch: {
formData: {
handler(newValue) {
this.comFormData = newValue;
},
deep: true
}
this.$set(formData, "showClearIcon", false);
this.changeSelect();
},
searchInput(value, formData) {
if (value?.length) {
this.$set(formData, "showClearIcon", true);
} else {
this.$set(formData, "showClearIcon", false);
}
data() {
return {
showSearchBox: false,
comFormData: this.formData
};
},
searchHover(event, formData) {
this.$set(formData, "hover", true);
created() {
console.log(this.isExcel)
this.getPlaceholder();
},
searchUnHover(event, formData) {
if (!formData.value) {
this.$set(formData, "showClearIcon", false);
this.$set(formData, "hover", false);
}
components: {
CustomTimeSelect,
CustomMoneySelect,
StartAcreageSelect,
GroupMoneySelect
},
async getPlaceholder() {
try {
await this.$nextTick();
const doms = document.querySelectorAll("[class*='select-adaptive-']");
if (doms?.length) {
doms.forEach(dom => {
const realStyles = window.getComputedStyle(dom);
const ipt = dom.querySelector("input");
const text = ipt.getAttribute("placeholder");
const textContainer = document.createElement("span");
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
const hasPadding = (parseInt(realStyles.paddingLeft) || parseInt(realStyles.paddingRight)) ? true : false;
hasPadding ? textContainer.style.setProperty("padding", realStyles.paddingRight) : null;
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = text;
document.body.append(textContainer);
// 加上按钮宽度 以及按钮左外边距
let containerWidth = textContainer.offsetWidth + 12 + 8;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
});
methods: {
searchFocus(event, formData) {
const { target } = event;
if (target?.value?.length) {
this.$set(formData, "showClearIcon", true);
}
} catch (error) {
}
},
onEnter(el, done) {
gsap.from(el, {
opacity: 0,
width: 0,
});
gsap.to(el, {
opacity: 1,
width: 242,
onComplete() {
// 完成动画聚焦输入框
el.querySelector("input").focus();
done();
},
searchBlur(event, formData) {
const { target } = event;
// 失去焦点没有文字
if (!target?.value?.length) {
this.$set(formData, "hover", false);
}
});
},
iptAdaptive(uid, multiple = false) {
multiple ? this.multipleAdaptiveHandle(uid) : this.iptAdaptiveHandle(uid);
},
// 多选处理
async multipleAdaptiveHandle(uid) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
const iptChild = dom.querySelector(".el-input__inner");
if (dom) {
const textContainer = document.createElement("span");
const textName = `text-${uid}`;
textContainer.classList.add(textName);
const selectChildren = dom.querySelectorAll(".el-tag");
if (selectChildren.length) {
let width = 0;
selectChildren.forEach(item => {
const text = item.textContent;
const itemInfo = window.getComputedStyle(item);
this.$set(formData, "showClearIcon", false);
this.changeSelect();
},
searchInput(value, formData) {
if (value?.length) {
this.$set(formData, "showClearIcon", true);
} else {
this.$set(formData, "showClearIcon", false);
}
},
searchHover(event, formData) {
this.$set(formData, "hover", true);
},
searchUnHover(event, formData) {
if (!formData.value) {
this.$set(formData, "showClearIcon", false);
this.$set(formData, "hover", false);
}
},
async getPlaceholder() {
try {
await this.$nextTick();
const doms = document.querySelectorAll("[class*='select-adaptive-']");
if (doms?.length) {
doms.forEach(dom => {
const realStyles = window.getComputedStyle(dom);
const ipt = dom.querySelector("input");
const text = ipt.getAttribute("placeholder");
const textContainer = document.createElement("span");
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
textContainer.style.setProperty("padding", itemInfo.padding);
const hasPadding = (parseInt(realStyles.paddingLeft) || parseInt(realStyles.paddingRight)) ? true : false;
hasPadding ? textContainer.style.setProperty("padding", realStyles.paddingRight) : null;
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = text;
document.body.append(textContainer);
width += textContainer.offsetWidth + parseInt(itemInfo.marginLeft) + parseInt(itemInfo.marginRight);
// 加上按钮宽度 以及按钮左外边距
let containerWidth = textContainer.offsetWidth + 12 + 8;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
});
dom.style.setProperty("width", `${width + 60}px`);
}
} catch (error) {
}
},
onEnter(el, done) {
gsap.from(el, {
opacity: 0,
width: 0,
});
gsap.to(el, {
opacity: 1,
width: 242,
onComplete() {
// 完成动画聚焦输入框
el.querySelector("input").focus();
done();
}
});
},
iptAdaptive(uid, multiple = false) {
multiple ? this.multipleAdaptiveHandle(uid) : this.iptAdaptiveHandle(uid);
},
// 多选处理
async multipleAdaptiveHandle(uid) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
const iptChild = dom.querySelector(".el-input__inner");
if (dom) {
const textContainer = document.createElement("span");
const textName = `text-${uid}`;
textContainer.classList.add(textName);
const selectChildren = dom.querySelectorAll(".el-tag");
if (selectChildren.length) {
let width = 0;
selectChildren.forEach(item => {
const text = item.textContent;
const itemInfo = window.getComputedStyle(item);
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
textContainer.style.setProperty("padding", itemInfo.padding);
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = text;
document.body.append(textContainer);
width += textContainer.offsetWidth + parseInt(itemInfo.marginLeft) + parseInt(itemInfo.marginRight);
textContainer.remove();
});
dom.style.setProperty("width", `${width + 60}px`);
this.$emit('handle-search', this.comFormData);
return;
}
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
textContainer.style.setProperty("padding", "0px 16px");
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = iptChild.getAttribute("placeholder");
document.body.append(textContainer);
let containerWidth = textContainer.offsetWidth + 12 + 8;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
this.$emit('handle-search', this.comFormData);
return;
}
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
textContainer.style.setProperty("padding", "0px 16px");
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = iptChild.getAttribute("placeholder");
document.body.append(textContainer);
let containerWidth = textContainer.offsetWidth + 12 + 8;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
this.$emit('handle-search', this.comFormData);
} catch (error) {
console.log(error);
}
},
// 单选处理
async iptAdaptiveHandle(uid) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
const realStyles = window.getComputedStyle(dom);
if (dom) {
const iptChild = dom.querySelector(".el-input__inner");
const textContainer = document.createElement("span");
const textName = `text-${uid}`;
textContainer.classList.add(textName);
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
const hasPadding = (parseInt(realStyles.paddingLeft) || parseInt(realStyles.paddingRight)) ? true : false;
hasPadding ? textContainer.style.setProperty("padding", realStyles.padding) : null;
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = iptChild.value ? iptChild.value : iptChild.getAttribute("placeholder");
document.body.append(textContainer);
let containerWidth = textContainer.offsetWidth + 12 + 8;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
}
this.$emit('handle-search', this.comFormData);
} catch (error) {
} catch (error) {
console.log(error);
}
},
// 单选处理
async iptAdaptiveHandle(uid) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
const realStyles = window.getComputedStyle(dom);
if (dom) {
const iptChild = dom.querySelector(".el-input__inner");
const textContainer = document.createElement("span");
const textName = `text-${uid}`;
textContainer.classList.add(textName);
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
const hasPadding = (parseInt(realStyles.paddingLeft) || parseInt(realStyles.paddingRight)) ? true : false;
hasPadding ? textContainer.style.setProperty("padding", realStyles.padding) : null;
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = iptChild.value ? iptChild.value : iptChild.getAttribute("placeholder");
document.body.append(textContainer);
let containerWidth = textContainer.offsetWidth + 12 + 8;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
}
},
changeSelect(e) {
this.$emit('handle-search', this.comFormData);
} catch (error) {
}
},
changeSelect(e) {
this.$emit('handle-search', this.comFormData);
},
clickEXCEL() {
if (this.title === '集团业绩' || this.title === '集团招标' || this.title === '集团成员'|| this.title === '土地交易明细') {
this.$emit('handle-excel');
} else {
this.$message({
message: '功能正在开发中',
type: 'warning'
});
},
clickEXCEL() {
if (this.title === '集团业绩' || this.title === '集团招标' || this.title === '集团成员'|| this.title === '土地交易明细') {
this.$emit('handle-excel');
} else {
this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
},
clickFocus(e) {
document.getElementById(e).classList.toggle('span-ba');
}
},
clickFocus(e) {
document.getElementById(e).classList.toggle('span-ba');
}
}
}
</script>
<style lang="scss">
.el-popper[x-placement^="bottom"] {
margin-top: 5px !important;
}
.el-popper[x-placement^="bottom"] {
margin-top: 5px !important;
}
</style>
<style lang="scss" scoped>
::v-deep .el-popper[x-placement^="bottom"] {
margin-top: 5px;
}
.headerFixed {
position: sticky;
top: 0;
z-index: 10;
padding-top: 16px;
margin-top: -16px;
background: #fff;
}
.head-form-new {
display: flex;
flex-direction: column;
.common-title {
margin-bottom: 8px;
::v-deep .el-popper[x-placement^="bottom"] {
margin-top: 5px;
}
::v-deep .el-input__inner {
border: 1px solid #d9d9d9;
height: 34px;
line-height: 34px;
padding-right: 27px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-radius: 4px;
.headerFixed {
position: sticky;
top: 0;
z-index: 10;
padding-top: 16px;
margin-top: -16px;
background: #fff;
}
::v-deep .el-form-item {
margin-right: 8px !important;
}
::v-deep .el-input--medium .el-input__icon {
line-height: 34px;
}
::v-deep .el-cascader {
height: 34px;
line-height: 34px;
/*width: 190px;*/
width: auto;
.el-input {
input {
height: 34px !important;
}
.head-form-new {
display: flex;
flex-direction: column;
.common-title {
margin-bottom: 8px;
}
.el-cascader__tags {
flex-wrap: inherit;
margin-top: 1px;
.el-tag {
max-width: 100px;
}
::v-deep .el-input__inner {
border: 1px solid #d9d9d9;
height: 34px;
line-height: 34px;
padding-right: 27px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-radius: 4px;
}
.el-input__suffix {
top: 1px;
::v-deep .el-form-item {
margin-right: 8px !important;
}
}
.headForm-from {
display: flex;
.from-item {
margin-right: 8px;
&:last-child {
margin-right: 0;
::v-deep .el-input--medium .el-input__icon {
line-height: 34px;
}
::v-deep .el-cascader {
height: 34px;
line-height: 34px;
/*width: 190px;*/
width: auto;
.el-input {
input {
height: 34px !important;
}
}
.cooperate-name {
display: flex;
border-radius: 2px;
border: 1px solid #d9d9d9;
line-height: 34px;
height: 34px;
span {
width: 60px;
height: 32px;
line-height: 32px;
font-size: 14px;
background: #f5f5f5;
text-align: center;
color: #0081ff;
border: 1px solid #efefef;
border-left: 0;
cursor: pointer;
.el-cascader__tags {
flex-wrap: inherit;
margin-top: 1px;
.el-tag {
max-width: 100px;
}
}
.el-input__suffix {
top: 1px;
}
}
.headForm-from {
display: flex;
.from-item {
margin-right: 8px;
&:last-child {
margin-right: 0;
}
&.span-ba {
border: 1px solid #0081ff;
.cooperate-name {
display: flex;
border-radius: 2px;
border: 1px solid #d9d9d9;
line-height: 34px;
height: 34px;
span {
color: #ffffff;
background: #0081ff;
width: 60px;
height: 32px;
line-height: 32px;
font-size: 14px;
background: #f5f5f5;
text-align: center;
color: #0081ff;
border: 1px solid #efefef;
border-left: 0;
cursor: pointer;
}
&.span-ba {
border: 1px solid #0081ff;
span {
color: #ffffff;
background: #0081ff;
border: 1px solid #0081ff;
}
}
::v-deep .el-input {
flex: 1;
}
::v-deep .el-input__inner {
border: 0;
line-height: 32px;
height: 32px;
position: absolute;
top: 0;
padding-right: 28px;
font-size: 12px;
padding-left: 8px;
}
}
::v-deep .el-input {
flex: 1;
}
::v-deep .el-input__inner {
border: 0;
line-height: 32px;
height: 32px;
position: absolute;
top: 0;
padding-right: 28px;
font-size: 12px;
padding-left: 8px;
}
}
.fromTime {
::v-deep .el-range-input {
width: 100%;
.fromTime {
::v-deep .el-range-input {
width: 100%;
}
::v-deep .el-range-separator,
::v-deep .el-range__close-icon {
line-height: 24px;
width: 20px;
}
}
::v-deep .el-range-separator,
::v-deep .el-range__close-icon {
line-height: 24px;
width: 20px;
.fromTime-icon {
display: none;
}
}
.fromTime-icon {
display: none;
}
.el-select {
.el-input__suffix {
right: 10px;
.el-select {
.el-input__suffix {
right: 10px;
}
}
}
::v-deep .normal-search-container {
display: flex;
align-items: center;
transition-property: width, background;
transition-duration: 0.3s;
width: 64px;
height: 32px;
padding-left: 12px;
box-sizing: border-box;
position: relative;
::v-deep .normal-search-container {
display: flex;
align-items: center;
transition-property: width, background;
transition-duration: 0.3s;
width: 64px;
height: 32px;
padding-left: 12px;
box-sizing: border-box;
position: relative;
&.is-hover-search {
width: 238px;
background: #f4f6f9;
border-radius: 4px 4px 4px 4px;
&.is-hover-search {
width: 238px;
background: #f4f6f9;
border-radius: 4px 4px 4px 4px;
& > img {
cursor: unset;
& > img {
cursor: unset;
}
}
}
& > img {
width: 16px;
height: 16px;
cursor: pointer;
}
// & > .search-transition-container > span {
& > span {
color: rgba(35, 35, 35, 0.8);
font-weight: 400;
margin-left: 8px;
line-height: 22px;
font-size: 14px;
cursor: pointer;
}
.search-transition-container {
width: 100%;
}
& > img {
width: 16px;
height: 16px;
cursor: pointer;
}
.el-input {
width: 100% !important;
& > .el-input__inner {
border: none;
height: 32px;
line-height: 32px;
caret-color: #0081ff;
// & > .search-transition-container > span {
& > span {
color: rgba(35, 35, 35, 0.8);
font-weight: 400;
margin-left: 8px;
line-height: 22px;
font-size: 14px;
background: transparent;
padding-right: 26px;
padding-left: 8px;
cursor: pointer;
}
&::placeholder {
color: rgba(35, 35, 35, 0.4) !important;
font-size: 14px !important;
line-height: 32px;
}
.search-transition-container {
width: 100%;
}
.el-input__suffix {
right: 12px;
display: flex;
align-items: center;
.el-input__suffix-inner {
height: 14px;
width: 14px;
.el-input {
width: 100% !important;
& > .el-input__inner {
border: none;
height: 32px;
line-height: 32px;
caret-color: #0081ff;
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
background: transparent;
padding-right: 26px;
padding-left: 8px;
&::placeholder {
color: rgba(35, 35, 35, 0.4) !important;
font-size: 14px !important;
line-height: 32px;
}
}
.el-input__suffix {
right: 12px;
display: flex;
align-items: center;
justify-content: center;
}
img {
cursor: pointer;
vertical-align: unset;
.el-input__suffix-inner {
height: 14px;
width: 14px;
display: flex;
align-items: center;
justify-content: center;
}
img {
cursor: pointer;
vertical-align: unset;
}
}
}
}
}
}
::v-deep .form-content-width {
/*width: 170px;*/
/*width: auto;*/
}
::v-deep .selectTag {
.el-select__tags {
::v-deep .form-content-width {
/*width: 170px;*/
/*width: auto;*/
}
::v-deep .selectTag {
.el-select__tags {
.el-tag {
&:first-child {
width: 70px;
}
}
}
}
::v-deep .el-select__tags {
.el-tag {
&:first-child {
width: 70px;
/*width: 100%;*/
}
}
}
}
::v-deep .el-select__tags {
.el-tag {
&:first-child {
/*width: 100%;*/
}
.ability-total {
font-size: 12px;
color: #3d3d3d;
position: relative;
&:before {
content: "";
display: inline-block;
width: 2px;
height: 2px;
background: rgba(35, 35, 35, 0.4);
margin-right: 4px;
}
}
}
.ability-total {
font-size: 12px;
color: #3d3d3d;
position: relative;
&:before {
content: "";
display: inline-block;
width: 2px;
height: 2px;
background: rgba(35, 35, 35, 0.4);
margin-right: 4px;
}
}
.ability-excel {
font-size: 14px;
color: rgba(35, 35, 35, 0.8);
margin-left: 16px;
cursor: pointer;
&:hover {
color: #0081ff;
}
img {
width: 18px;
height: 18px;
margin-right: 4px;
.ability-excel {
font-size: 14px;
color: rgba(35, 35, 35, 0.8);
margin-left: 16px;
cursor: pointer;
&:hover {
color: #0081ff;
}
img {
width: 18px;
height: 18px;
margin-right: 4px;
}
}
}
}
</style>
......@@ -30,6 +30,7 @@
tokentimer: null,
showMaxPageTip: false,
iframeIns: null,
systemCode:'ZTESJ', //每个项目传的对应参数都不一样
};
},
created() {
......@@ -99,7 +100,7 @@
if (res.code == 200) {
this.timelongs = res.data.expire;
this.ak = res.data.accessToken;
this.src = `${this.domain}/search/policyInquiryNew?ak=${this.ak}&initTime=${new Date().getTime()}&uid=${this.ak}&origin=${window.location.origin}`;
this.src = `${this.domain}/search/policyInquiryNew?ak=${this.ak}&initTime=${new Date().getTime()}&uid=${this.ak}&origin=${window.location.origin}&systemCode=${this.systemCode}&userCode=${this.$store.state.user.userId}`;
this.refreshtoken();
} else {
clearTimeout(this.tokentimer);
......
......@@ -32,6 +32,7 @@
tokentimer: null,
showMaxPageTip: false,
iframeIns: null,
systemCode:'ZTESJ', //每个项目传的对应参数都不一样
};
},
created() {
......@@ -101,7 +102,7 @@
if (res.code == 200) {
this.timelongs = res.data.expire;
this.ak = res.data.accessToken;
this.src = `${this.domain}/radar?ak=${this.ak}&initTime=${new Date().getTime()}&uid=${this.ak}&origin=${window.location.origin}`;
this.src = `${this.domain}/radar?ak=${this.ak}&initTime=${new Date().getTime()}&uid=${this.ak}&origin=${window.location.origin}&systemCode=${this.systemCode}&userCode=${this.$store.state.user.userId}`;
this.refreshtoken();
} else {
clearTimeout(this.tokentimer);
......
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