662 lines
20 KiB
JavaScript
662 lines
20 KiB
JavaScript
|
|
import {observable, action, toJS} from 'mobx';
|
|||
|
|
import {WeaForm, WeaTableNew} from 'comsMobx';
|
|||
|
|
import * as API from '../apis/weeso';
|
|||
|
|
import {Modal, message} from 'antd';
|
|||
|
|
import isEmpty from 'lodash/isEmpty';
|
|||
|
|
import {WeaLocaleProvider} from 'ecCom';
|
|||
|
|
import weesoSeachSetStore from './weesoSeachSetStore';
|
|||
|
|
const {TableStore} = WeaTableNew;
|
|||
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
|||
|
|
|
|||
|
|
class WeesoStore {
|
|||
|
|
//getBaseData获取是否成功
|
|||
|
|
@observable spinning = false;
|
|||
|
|
//数据加载
|
|||
|
|
@observable loading = false;
|
|||
|
|
//getBaseData返回数据
|
|||
|
|
@observable baseDadas = {};
|
|||
|
|
@observable contentType = [];
|
|||
|
|
@observable searchType = [];
|
|||
|
|
|
|||
|
|
//保存微搜个人搜索设置
|
|||
|
|
@observable numberValue = '';
|
|||
|
|
@observable searchValue = '';
|
|||
|
|
@observable sortValue = '';
|
|||
|
|
|
|||
|
|
//顶部热点、设置相关
|
|||
|
|
@observable sysadminVisible = false;
|
|||
|
|
@observable sysVisible = false;
|
|||
|
|
@observable setVisible = false;
|
|||
|
|
@observable perVisible = false;
|
|||
|
|
|
|||
|
|
//input输入框相关
|
|||
|
|
@observable iconClick = false;
|
|||
|
|
|
|||
|
|
//tab默认显示
|
|||
|
|
@observable defaultKey = 'CONTENT'; //查询类型 内容:CONTENT、图片:PICTURE
|
|||
|
|
@observable defalutMoreKey = 'ALL'; //查询模块 WF、DOC、WKP等
|
|||
|
|
|
|||
|
|
//微搜查询数据
|
|||
|
|
@observable inputValue = ''; //搜索内容
|
|||
|
|
@observable previousInputValue = '';
|
|||
|
|
// @observable otherString = {}; //查询工具内容
|
|||
|
|
@observable sourceType = 'PC';
|
|||
|
|
@observable page = '1'; //当前页
|
|||
|
|
@observable pages = '1'; //总共页数
|
|||
|
|
|
|||
|
|
//doSearch返回数据
|
|||
|
|
@observable searchDatas = {};
|
|||
|
|
@observable searchResult = [];
|
|||
|
|
@observable emptyResult = '';
|
|||
|
|
@observable imageResult = [];
|
|||
|
|
|
|||
|
|
//创建时间、日期等选择
|
|||
|
|
@observable startDate = '';
|
|||
|
|
@observable endDate = '';
|
|||
|
|
|
|||
|
|
//浏览按钮相关
|
|||
|
|
@observable browsertype = '';
|
|||
|
|
|
|||
|
|
//判断是否调用doSearch
|
|||
|
|
@observable isSearch = false;
|
|||
|
|
//管理员权限
|
|||
|
|
@observable showAdmin = false;
|
|||
|
|
|
|||
|
|
// 获取常用词关联
|
|||
|
|
@observable hotkeys = [];
|
|||
|
|
@observable showHotKeys = false;
|
|||
|
|
|
|||
|
|
//input上一排tab计算
|
|||
|
|
@observable widthMap = {};
|
|||
|
|
@observable copiedcontentType1 = []; //深拷贝后的contentType ,
|
|||
|
|
@observable copiedcontentType2 = []; //dropdowm 剩余参数
|
|||
|
|
|
|||
|
|
//热词上下键切换效果
|
|||
|
|
@observable myKey = -1;
|
|||
|
|
@observable currentInputValue = '';
|
|||
|
|
|
|||
|
|
@observable isSearchSucess = false;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//工具展示改造
|
|||
|
|
@observable showToolPopover = false;
|
|||
|
|
@observable maskClosable = true;
|
|||
|
|
|
|||
|
|
// 高级搜索数据
|
|||
|
|
@observable searchInfo = {};
|
|||
|
|
@observable searchForm = new WeaForm();
|
|||
|
|
@observable searchConditions = [];
|
|||
|
|
@observable isShowSearchIcon = false; //是否显示高级搜索图标--选择搜搜条件,并搜索之后
|
|||
|
|
@observable getTypeDatas = []; //保存高级搜索取到的值
|
|||
|
|
@observable searchKey = '';
|
|||
|
|
|
|||
|
|
|
|||
|
|
//记录用户使用习惯
|
|||
|
|
@observable userDatas = [];
|
|||
|
|
@observable userData1 = {
|
|||
|
|
type: 'pageTrack',
|
|||
|
|
userAgent: navigator.userAgent,
|
|||
|
|
timeStamp: '',
|
|||
|
|
timeStayTime: '',
|
|||
|
|
}
|
|||
|
|
@observable timeStamp1 = '';
|
|||
|
|
@observable timeStamp2 = '';
|
|||
|
|
|
|||
|
|
//路由跳转记录
|
|||
|
|
@observable isRouting = false;
|
|||
|
|
@observable inputNode = null;
|
|||
|
|
@observable selectionStart = 0;
|
|||
|
|
@observable selectionEnd = 0;
|
|||
|
|
|
|||
|
|
//
|
|||
|
|
@observable isHotkeySearch = false; //记录是否热词搜索
|
|||
|
|
@observable isCustomer = false; //记录是否外部切入微搜
|
|||
|
|
|
|||
|
|
@observable workPlanVisible = false; //日程引入
|
|||
|
|
|
|||
|
|
@observable showSubmitIcon = false; //是否显示微搜结果提交按钮
|
|||
|
|
|
|||
|
|
@observable isLocked = false; //是否锁定搜索
|
|||
|
|
|
|||
|
|
@observable wpLoaded = false;
|
|||
|
|
|
|||
|
|
@observable smLoaded = false;
|
|||
|
|
|
|||
|
|
@observable supportSkipSearch = false;
|
|||
|
|
|
|||
|
|
@observable skipSearchParams = {
|
|||
|
|
currentPage: 0,
|
|||
|
|
lastRealNumber: 0,
|
|||
|
|
};
|
|||
|
|
//支持无侵入开发的参数-勿删
|
|||
|
|
@observable searchPageParams = {};
|
|||
|
|
|
|||
|
|
@observable ecodeTitleParams = {
|
|||
|
|
};
|
|||
|
|
//支持无侵入开发的参数-勿删
|
|||
|
|
|
|||
|
|
@observable tagsDatas = {
|
|||
|
|
commonConditions: [
|
|||
|
|
{name: '1111', key: 1},
|
|||
|
|
{name: '2222', key: 2, canDel: true},
|
|||
|
|
],
|
|||
|
|
conditionSpining: false,
|
|||
|
|
conditionSetTableStore: new TableStore(),
|
|||
|
|
logoVisible: true,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
@observable cuspage_status = undefined;
|
|||
|
|
@observable historySearchList = undefined;
|
|||
|
|
@observable page_icon = undefined;
|
|||
|
|
@observable page_resultLogo = undefined;
|
|||
|
|
@observable page_resultShowLogo = undefined;
|
|||
|
|
@observable page_showCommonConditions = undefined;
|
|||
|
|
@observable page_showHistory = undefined;
|
|||
|
|
@observable page_showIcon = undefined;
|
|||
|
|
@observable page_title = undefined;
|
|||
|
|
@observable tagList = [];
|
|||
|
|
@observable urlParams = {};
|
|||
|
|
@observable isSetServer = true;
|
|||
|
|
@observable isSetServerMsg = '';
|
|||
|
|
|
|||
|
|
@action
|
|||
|
|
|
|||
|
|
//初始化微搜初始化页面
|
|||
|
|
initWeeso = (page_uuid) => {
|
|||
|
|
this.getBaseData(undefined, undefined, undefined, page_uuid);
|
|||
|
|
this.isSearch = false;
|
|||
|
|
this.inputValue = '';
|
|||
|
|
this.showHotKeys = false;
|
|||
|
|
this.iconClick = false;
|
|||
|
|
this.defaultKey = 'CONTENT';
|
|||
|
|
this.defalutMoreKey = 'ALL';
|
|||
|
|
this.showHotKeys = false;
|
|||
|
|
this.commonInit();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//初始化微搜查询页面
|
|||
|
|
initWeesoResult = () => {
|
|||
|
|
this.isSearch = true;
|
|||
|
|
this.commonInit();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
setWPLoaded = (bool) => this.wpLoaded = bool;
|
|||
|
|
|
|||
|
|
setSMLoaded = (bool) => this.smLoaded = bool;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//其他公共初始化
|
|||
|
|
commonInit = () => {
|
|||
|
|
this.showTool = false;
|
|||
|
|
this.otherString = {};
|
|||
|
|
this.pages = '1';
|
|||
|
|
this.page = '1';
|
|||
|
|
this.myKey = -1;
|
|||
|
|
this.searchDatas = {};
|
|||
|
|
this.imageResult = [];
|
|||
|
|
this.emptyResult = '';
|
|||
|
|
this.searchResult = [];
|
|||
|
|
this.toolChangeInit();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//工具切换初始化
|
|||
|
|
toolChangeInit = () => {
|
|||
|
|
this.pages = '1';
|
|||
|
|
this.page = '1';
|
|||
|
|
this.myKey = -1;
|
|||
|
|
this.searchDatas = {};
|
|||
|
|
this.imageResult = [];
|
|||
|
|
this.emptyResult = '';
|
|||
|
|
this.searchResult = [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
setState = (params = {}, callback) => {
|
|||
|
|
Object.keys(params).forEach(key => {
|
|||
|
|
this[key] = params[key];
|
|||
|
|
});
|
|||
|
|
typeof callback == 'function' && callback();
|
|||
|
|
return this;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
setUrlParams = (params, callback) => {
|
|||
|
|
this.urlParams = params;
|
|||
|
|
typeof callback == 'function' && callback();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//获取初始数据
|
|||
|
|
getBaseData = (showError = true, callRouting, callSearch, page_uuid, callback) => {
|
|||
|
|
this.spinning = true;
|
|||
|
|
let params = {
|
|||
|
|
page_uuid: page_uuid
|
|||
|
|
};
|
|||
|
|
API.getBaseData(params).then(data => {
|
|||
|
|
this.spinning = false;
|
|||
|
|
if (data.FLAG == -1) {
|
|||
|
|
this.isSetServer = false;
|
|||
|
|
this.isSetServerMsg = data.MSG;
|
|||
|
|
if(callRouting)callRouting();
|
|||
|
|
if(showError){
|
|||
|
|
Modal.error({
|
|||
|
|
title: getLabel(15172, "系统提示"),
|
|||
|
|
content: <span className="content-img" dangerouslySetInnerHTML={{__html: data.MSG}}/>,
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}else {
|
|||
|
|
this.isSetServer = true;
|
|||
|
|
this.isSetServerMsg = '';
|
|||
|
|
if(params.page_uuid && !(params.page_uuid === '' || params.page_uuid === 'FULLSEARCH')) {
|
|||
|
|
this.defalutMoreKey = data.search_type;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(callSearch)callSearch();
|
|||
|
|
}
|
|||
|
|
this.baseDadas = data;
|
|||
|
|
this.contentType = data.contentType && data.contentType;
|
|||
|
|
this.searchType = data.searchType && data.searchType;
|
|||
|
|
this.searchInfo = data.searchInfo && data.searchInfo;
|
|||
|
|
|
|||
|
|
this.supportSkipSearch = data && data.supportSkipSearch ? data.supportSkipSearch : false;
|
|||
|
|
|
|||
|
|
this.changeKey(this.defalutMoreKey);
|
|||
|
|
|
|||
|
|
//topTabs初始
|
|||
|
|
debugger
|
|||
|
|
if(Object.keys(this.widthMap).length == 0){
|
|||
|
|
this.copiedcontentType1 = this.contentType;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
data.searchSet && data.searchSet.numperpage && data.searchSet.numperpage.length!==0 &&
|
|||
|
|
data.searchSet.numperpage.map((item, index) => {
|
|||
|
|
if (item.selected == true) {
|
|||
|
|
this.numberValue = data.searchSet.numperpage[index].key
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
data.searchSet && data.searchSet.sortField && data.searchSet.sortField.length!==0 &&
|
|||
|
|
data.searchSet.sortField.map((item, index) => {
|
|||
|
|
if (item.selected == true) {
|
|||
|
|
this.sortValue = data.searchSet.sortField[index].key
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
data.searchSet && data.searchSet.searchField && data.searchSet.searchField.length!==0 &&
|
|||
|
|
data.searchSet.searchField.map((item, index) => {
|
|||
|
|
if (item.selected == true) {
|
|||
|
|
this.searchValue = data.searchSet.searchField[index].key
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
if(data.api_status) {
|
|||
|
|
this.cuspage_status = data.cuspage_status;
|
|||
|
|
this.historySearchList = data.historySearchList;
|
|||
|
|
this.page_icon = data.page_icon;
|
|||
|
|
this.page_resultLogo = data.page_resultLogo;
|
|||
|
|
this.page_resultShowLogo = data.page_resultShowLogo;
|
|||
|
|
this.page_showCommonConditions = data.page_showCommonConditions;
|
|||
|
|
this.page_showHistory = data.page_showHistory;
|
|||
|
|
this.page_showIcon = data.page_showIcon;
|
|||
|
|
this.page_title = data.page_title;
|
|||
|
|
this.tagList = data.tagList;
|
|||
|
|
let urlP = {};
|
|||
|
|
if(this.urlParams.type) {
|
|||
|
|
urlP = {
|
|||
|
|
...urlP,
|
|||
|
|
search_type: this.urlParams.type
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
if(this.urlParams.hideTitle === 'true' || this.urlParams.hideTitle === '1') {
|
|||
|
|
urlP = {
|
|||
|
|
...urlP,
|
|||
|
|
topTabsVisible: false
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
if(weesoSeachSetStore) {
|
|||
|
|
weesoSeachSetStore.setState({
|
|||
|
|
search_type: data.search_type,
|
|||
|
|
page_descStr: data.page_descStr,
|
|||
|
|
page_uuid: data.page_uuid,
|
|||
|
|
topTabsVisible: data.search_type === 'ALL',
|
|||
|
|
...urlP
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if(callback)callback();
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//tabs重排
|
|||
|
|
resortTopTaps = () => {
|
|||
|
|
debugger;
|
|||
|
|
let
|
|||
|
|
top = [], right = [], contentType = toJS(this.contentType), allWidth = 489;
|
|||
|
|
//如果没有或者widthMap,不进行计算
|
|||
|
|
if (!this.widthMap) return;
|
|||
|
|
|
|||
|
|
let currentWidth;
|
|||
|
|
for (let key in this.widthMap) {
|
|||
|
|
if (key == this.defalutMoreKey) {
|
|||
|
|
currentWidth = this.widthMap[key];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
let restWidth = allWidth - currentWidth - 10;
|
|||
|
|
let sumWidth = 0, isTop = true;
|
|||
|
|
contentType && contentType.length > 0 && contentType.forEach((item) => {
|
|||
|
|
if (item.key == this.defalutMoreKey) {
|
|||
|
|
if (isTop) {
|
|||
|
|
restWidth += currentWidth;
|
|||
|
|
sumWidth += currentWidth;
|
|||
|
|
}
|
|||
|
|
top.push(item)
|
|||
|
|
} else {
|
|||
|
|
sumWidth += this.widthMap[item.key];
|
|||
|
|
// 二开 && sumWidth < restWidth
|
|||
|
|
if (isTop ) {
|
|||
|
|
top.push(item);
|
|||
|
|
} else {
|
|||
|
|
//isTop -- 保证不会出现上一个元素长了放不下,把下一个元素放到top里面
|
|||
|
|
isTop = false;
|
|||
|
|
right.push(item)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.copiedcontentType1 = top;
|
|||
|
|
this.copiedcontentType2 = right;
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//获取常用词关联
|
|||
|
|
getAssociate = (params = {key: ''}) => {
|
|||
|
|
API.getAssociate(params).then(result => {
|
|||
|
|
this.hotkeys = result.result
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//切换tab回调 -- 工具表单的处理(路由跳转也需要此处理)
|
|||
|
|
changeKey = (key, isFirst = false) => {
|
|||
|
|
this.searchForm = new WeaForm();
|
|||
|
|
const source = toJS(this.searchInfo);
|
|||
|
|
if (isEmpty(source) && isFirst) {
|
|||
|
|
let interval = setInterval(() => {
|
|||
|
|
if (!isEmpty(source)) {
|
|||
|
|
this.searchConditions = source[key];
|
|||
|
|
this.searchForm.initFormFieldObj(toJS(this.searchConditions));
|
|||
|
|
clearInterval(interval);
|
|||
|
|
}
|
|||
|
|
}, 10)
|
|||
|
|
} else {
|
|||
|
|
if (!isEmpty(source)) {
|
|||
|
|
this.searchConditions = source[key];
|
|||
|
|
this.searchForm.initFormFieldObj(toJS(this.searchConditions));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
resetForm = () => {
|
|||
|
|
this.searchForm.reset();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//处理搜索工具表单数据
|
|||
|
|
dealSearchParams = () => {
|
|||
|
|
let searchDatas = {};
|
|||
|
|
if (Object.keys(this.baseDadas).length == 0) {
|
|||
|
|
return searchDatas = '';
|
|||
|
|
} else {
|
|||
|
|
let datas = toJS(this.searchConditions);
|
|||
|
|
const searchParams = this.searchForm.getFormParams();
|
|||
|
|
let
|
|||
|
|
resultDay = toJS(this.baseDadas.timeSag.day) || [],
|
|||
|
|
resultWeek = toJS(this.baseDadas.timeSag.week) || [],
|
|||
|
|
resultMonth = toJS(this.baseDadas.timeSag.month) || [],
|
|||
|
|
resultYear = toJS(this.baseDadas.timeSag.year) || [];
|
|||
|
|
datas && datas.length>0 && datas.map(item => {
|
|||
|
|
for (let key in searchParams) {
|
|||
|
|
if (searchParams[key].toString() != '' && key == item.domkey[0]) {
|
|||
|
|
const type = item.conditionType.toUpperCase();
|
|||
|
|
if (type == 'BROWSER') {
|
|||
|
|
if (item.domkey[0] == 'seccategory') {
|
|||
|
|
searchDatas['firstDirectory'] = searchParams[key].split(',');
|
|||
|
|
} else {
|
|||
|
|
searchDatas[item.domkey] = searchParams[key].split(',');
|
|||
|
|
}
|
|||
|
|
} else if (type == 'RANGEPICKER') {
|
|||
|
|
if (searchParams.CREATEDATE_date_select == '5') {
|
|||
|
|
searchDatas.CREATEDATE = searchParams[key];
|
|||
|
|
}
|
|||
|
|
if(searchParams.BEGINDATE_date_select == '5'){
|
|||
|
|
searchDatas.BEGINDATE = searchParams[key];
|
|||
|
|
}
|
|||
|
|
} else if (type == 'SELECT') {
|
|||
|
|
if (key == 'CREATEDATE_date_select') {
|
|||
|
|
if (searchParams[key] == '1') {
|
|||
|
|
searchDatas.CREATEDATE = resultDay;
|
|||
|
|
} else if (searchParams[key] == '2') {
|
|||
|
|
searchDatas.CREATEDATE = resultWeek;
|
|||
|
|
} else if (searchParams[key] == '3') {
|
|||
|
|
searchDatas.CREATEDATE = resultMonth;
|
|||
|
|
} else if (searchParams[key] == '4') {
|
|||
|
|
searchDatas.CREATEDATE = resultYear;
|
|||
|
|
}
|
|||
|
|
} else if (key == 'BEGINDATE_date_select') {
|
|||
|
|
if (searchParams[key] == '1') {
|
|||
|
|
searchDatas.BEGINDATE = resultDay;
|
|||
|
|
} else if (searchParams[key] == '2') {
|
|||
|
|
searchDatas.BEGINDATE = resultWeek;
|
|||
|
|
} else if (searchParams[key] == '3') {
|
|||
|
|
searchDatas.BEGINDATE = resultMonth;
|
|||
|
|
} else if (searchParams[key] == '4') {
|
|||
|
|
searchDatas.BEGINDATE = resultYear;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
searchDatas[key] = searchParams[key];
|
|||
|
|
}
|
|||
|
|
} else if (type == 'INPUT') {
|
|||
|
|
searchDatas[key] = searchParams[key];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
if(JSON.stringify(searchDatas) == '{}'){
|
|||
|
|
return searchDatas = ''
|
|||
|
|
}else {
|
|||
|
|
return JSON.stringify(searchDatas);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
preSearch = (params) => {
|
|||
|
|
if(this.showToolPopover){this.showToolPopover = false;}
|
|||
|
|
this.showHotKeys = false;
|
|||
|
|
|
|||
|
|
this.inputValue && this.inputValue !=='' && this.doSearch(undefined, params);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//微搜查询
|
|||
|
|
doSearch = (params = {
|
|||
|
|
key: this.inputValue,
|
|||
|
|
contentType: this.defalutMoreKey,
|
|||
|
|
// otherString: this.isCustomer ? '' : this.dealSearchParams(),
|
|||
|
|
otherString: this.urlParams.otherString,
|
|||
|
|
sourceType: this.sourceType,
|
|||
|
|
searchType: this.defaultKey,
|
|||
|
|
page: this.page
|
|||
|
|
}, otherString) => {
|
|||
|
|
// 如果是第三方页面走ecode xlz
|
|||
|
|
if(params.contentType === 'customOdoc'){
|
|||
|
|
typeof window.customSearch === 'function' && window.customSearch(params,otherString);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if(this.isSetServer === false) return; // 未配置微搜
|
|||
|
|
this.isLocked = true;
|
|||
|
|
// this.showHotKeys = false;
|
|||
|
|
|
|||
|
|
// if(this.loading) return;
|
|||
|
|
this.setState({
|
|||
|
|
loading: true,
|
|||
|
|
emptyResult: '',
|
|||
|
|
showHotKeys: false,
|
|||
|
|
searchResult: []
|
|||
|
|
})
|
|||
|
|
params = {
|
|||
|
|
...params,
|
|||
|
|
...otherString,
|
|||
|
|
page_uuid: weesoSeachSetStore.page_uuid,
|
|||
|
|
searchTagId: weesoSeachSetStore.searchTagParams.key || '',
|
|||
|
|
...this.skipSearchParams
|
|||
|
|
}
|
|||
|
|
this.skipSearchParams.currentPage = params.page;
|
|||
|
|
if(weesoSeachSetStore) {
|
|||
|
|
weesoSeachSetStore.doSaveHistorySearch({
|
|||
|
|
searchkey: params.key
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
API.doSearch(params).then(result => {
|
|||
|
|
this.isLocked = false;
|
|||
|
|
this.loading = false;
|
|||
|
|
//this.hotkeys = [];
|
|||
|
|
|
|||
|
|
const normal = result.normalkey;
|
|||
|
|
if ("-1" == result.FLAG || (normal == this.inputValue)) {
|
|||
|
|
this.isSearchSucess = true;
|
|||
|
|
this.searchDatas = result;
|
|||
|
|
this.pages = result.pages;
|
|||
|
|
|
|||
|
|
this.skipSearchParams.lastRealNumber = result.lastRealNumber || -1;
|
|||
|
|
|
|||
|
|
// 这部分是对快速搜索时,判断上次请求是否完成,取最新的搜索结果-start
|
|||
|
|
if (result.FLAG == -1) {
|
|||
|
|
Modal.error({
|
|||
|
|
title: getLabel(15172, "系统提示"),
|
|||
|
|
content: <span className="content-img" dangerouslySetInnerHTML={{__html: result.MSG}}/>,
|
|||
|
|
});
|
|||
|
|
} else if (result.FLAG == -99 ) {
|
|||
|
|
this.emptyResult = result.MSG
|
|||
|
|
} else {
|
|||
|
|
this.searchResult = result.result;
|
|||
|
|
}
|
|||
|
|
// 这部分是对快速搜索时,判断上次请求是否完成,取最新的搜索结果-end
|
|||
|
|
|
|||
|
|
if (result.FLAG != -1 && this.defaultKey == 'PICTURE') {
|
|||
|
|
this.imageResult = this.imageResult.concat(result.result)
|
|||
|
|
}
|
|||
|
|
if(result.contentType) {
|
|||
|
|
this.defalutMoreKey = result.contentType;
|
|||
|
|
this.resortTopTaps();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//记录用户使用习惯
|
|||
|
|
if (this.timeStamp1 == '') {//表示第一次进入
|
|||
|
|
this.timeStamp2 = new Date().getTime();
|
|||
|
|
this.timeStamp1 = this.timeStamp2;
|
|||
|
|
} else {//此后进入,计算时间差,调接口记录数据
|
|||
|
|
this.timeStamp1 = this.timeStamp2;
|
|||
|
|
this.timeStamp2 = new Date().getTime();
|
|||
|
|
this.userData1 = {
|
|||
|
|
...this.userData1,
|
|||
|
|
timeStamp: String(this.timeStamp1),
|
|||
|
|
timeStayTime: String(this.timeStamp2 - this.timeStamp1)
|
|||
|
|
}
|
|||
|
|
this.userDatas.push(this.userData1);
|
|||
|
|
|
|||
|
|
this.collectUserData({userDatas: JSON.stringify(this.userDatas)});
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//保存微搜个人搜索设置
|
|||
|
|
saveSearchSet = (params = {
|
|||
|
|
numperpage: this.numberValue,
|
|||
|
|
searchField: this.searchValue,
|
|||
|
|
sortField: this.sortValue
|
|||
|
|
}) => {
|
|||
|
|
API.saveSearchSet(params).then(result => {
|
|||
|
|
if (result.flag == true) {
|
|||
|
|
this.doSearch()
|
|||
|
|
} else {
|
|||
|
|
Modal.error({
|
|||
|
|
title: getLabel(15172, "系统提示"),
|
|||
|
|
content: getLabel(22620, "保存失败"),
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//记录用户使用习惯
|
|||
|
|
collectUserData = (userDatas) => {
|
|||
|
|
API.collectUserData(userDatas).then(() => {
|
|||
|
|
this.userDatas = []
|
|||
|
|
}
|
|||
|
|
)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//是否显示微搜结果提交按钮
|
|||
|
|
showSubmit = () => {
|
|||
|
|
API.showSubmit().then(result => {
|
|||
|
|
this.showSubmitIcon = result.ret;
|
|||
|
|
}
|
|||
|
|
)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
doSubmit = () => {
|
|||
|
|
const params = {
|
|||
|
|
key: this.inputValue,//搜索关键字
|
|||
|
|
page: this.page, //当前页数
|
|||
|
|
pageSize: this.numberValue, //每页显示条数
|
|||
|
|
searchType: this.searchValue, //搜索类型(CONTENT,TITLE)
|
|||
|
|
sort: this.sortValue, //排序方式
|
|||
|
|
contentType: this.defalutMoreKey, //搜索tab
|
|||
|
|
sourceType: this.sourceType, //来源(PC,mobile)
|
|||
|
|
searchField: this.defaultKey, //搜索范围(内容,图片)
|
|||
|
|
condition: this.isCustomer ? '' : this.dealSearchParams(), //高级搜索条件{json串}
|
|||
|
|
}
|
|||
|
|
Modal.confirm({
|
|||
|
|
title: getLabel(15172,'系统提示'),
|
|||
|
|
content: getLabel(384971,'不是我想要的搜索结果,确认提交?'),
|
|||
|
|
okText: getLabel(826,'确定'),
|
|||
|
|
cancelText: getLabel(31129,'取消'),
|
|||
|
|
onOk: () => {this.submitResult({...params})}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//微搜结果提交
|
|||
|
|
submitResult = (params) => {
|
|||
|
|
API.submitResult(params).then(result => {
|
|||
|
|
if(result.ret){
|
|||
|
|
message.success(getLabel(83923,'提交成功!'));
|
|||
|
|
}else {
|
|||
|
|
message.error(getLabel(384535,'提交失败!'));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 常用条件设置
|
|||
|
|
getConditionSetTable = (params, callback) => {
|
|||
|
|
API.getConditionSetTable(params).then(result => {
|
|||
|
|
if(result.ret == 'noright'){
|
|||
|
|
}else {
|
|||
|
|
this.tagsDatas.conditionSetTableStore.getDatas(result.sessionkey, 1);
|
|||
|
|
typeof callback === 'function' && callback();
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 获取加了二级域名的链接
|
|||
|
|
addSubdomainUrl = (url = '') => {
|
|||
|
|
let subdomain = window.ecologyContentPath || '';
|
|||
|
|
//外部链接和已经加过的不用加
|
|||
|
|
if( url === '' || subdomain === ''
|
|||
|
|
|| url.indexOf('/') != 0
|
|||
|
|
|| url.indexOf(subdomain+'/') == 0 ) return url;
|
|||
|
|
|
|||
|
|
return subdomain+url;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const weesoStore = new WeesoStore();
|
|||
|
|
export default weesoStore;
|