|
@@ -0,0 +1,243 @@
|
|
|
|
+if (typeof Date.prototype.pattern !== 'function') {
|
|
|
|
+ Date.prototype.pattern = function (fmt) {
|
|
|
|
+ var o = {
|
|
|
|
+ 'y+': this.getFullYear(),
|
|
|
|
+ 'M+': this.getMonth() + 1, //月份
|
|
|
|
+ 'd+': this.getDate(), //日
|
|
|
|
+ 'h+': this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
|
|
|
|
+ 'H+': this.getHours(), //小时
|
|
|
|
+ 'm+': this.getMinutes(), //分
|
|
|
|
+ 's+': this.getSeconds(), //秒
|
|
|
|
+ 'q+': Math.floor((this.getMonth() + 3) / 3), //季度
|
|
|
|
+ 'S': this.getMilliseconds(), //毫秒
|
|
|
|
+ 'E+': this.getDay(), // 周
|
|
|
|
+ };
|
|
|
|
+ var week = {
|
|
|
|
+ '0': '日',
|
|
|
|
+ '1': '一',
|
|
|
|
+ '2': '二',
|
|
|
|
+ '3': '三',
|
|
|
|
+ '4': '四',
|
|
|
|
+ '5': '五',
|
|
|
|
+ '6': '六'
|
|
|
|
+ };
|
|
|
|
+ if (/(y+)/.test(fmt)) {
|
|
|
|
+ fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
|
|
|
|
+ }
|
|
|
|
+ if (/(E+)/.test(fmt)) {
|
|
|
|
+ fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? '星期' : '周') : '') + week[
|
|
|
|
+ this.getDay() + '']);
|
|
|
|
+ }
|
|
|
|
+ for (var k in o) {
|
|
|
|
+ if (new RegExp('(' + k + ')').test(fmt)) {
|
|
|
|
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k])
|
|
|
|
+ .length)));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return fmt;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+var reportListTemplate = `
|
|
|
|
+ <div id="reportList" class="info-card-group" v-cloak>
|
|
|
|
+ <van-list
|
|
|
|
+ v-model="listState.loading"
|
|
|
|
+ :finished="listState.finished"
|
|
|
|
+ finished-text="没有更多了"
|
|
|
|
+ @load="getList"
|
|
|
|
+ >
|
|
|
|
+ <div class="info-card-item" v-for="(item, i) in reportList" :key="item.id">
|
|
|
|
+ <div class="info-flex-r-box">
|
|
|
|
+ <div class="text-title">报告 @@(item.createTime * 1000)|FormatTime('yyyy-MM-dd HH:mm:ss')@@</div>
|
|
|
|
+ <div class="info-flex-r-box toggle-row-box" @click="item.open = !item.open">
|
|
|
|
+ <span>@@item.open ? '收起' : '展开'@@条件</span>
|
|
|
|
+ <transition name="van-fade">
|
|
|
|
+ <i class="van-icon" :class="{'van-icon-arrow-down': !item.open, 'van-icon-arrow-up': item.open}"></i>
|
|
|
|
+ </transition>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info-content-group">
|
|
|
|
+ <div class="info-flex-r-box">
|
|
|
|
+ <span class="info-content-label">分析内容:</span>
|
|
|
|
+ <div class="info-content-box" :class="{'van-ellipsis': !item.open}">
|
|
|
|
+ @@item.keysItems|FormatKeys@@
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info-flex-r-box">
|
|
|
|
+ <span class="info-content-label">时间:</span>
|
|
|
|
+ <div class="info-content-box" :class="{'van-ellipsis': !item.open}">
|
|
|
|
+ @@(item.startTime * 1000)|FormatTime('yyyy-MM-dd')@@-@@(item.endTime * 1000)|FormatTime('yyyy-MM-dd')@@
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info-flex-r-box">
|
|
|
|
+ <span class="info-content-label">地区:</span>
|
|
|
|
+ <div class="info-content-box" :class="{'van-ellipsis': !item.open}">
|
|
|
|
+ @@item.area|FormatComma@@
|
|
|
|
+ @@item.city|FormatComma@@
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info-flex-r-box">
|
|
|
|
+ <span class="info-content-label">行业:</span>
|
|
|
|
+ <div class="info-content-box" :class="{'van-ellipsis': !item.open}">
|
|
|
|
+ @@item.industry|FormatComma@@
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info-flex-r-box">
|
|
|
|
+ <span class="info-content-label">采购单位类型:</span>
|
|
|
|
+ <div class="info-content-box" :class="{'van-ellipsis': !item.open}">
|
|
|
|
+ @@item.buyerclass|FormatComma@@
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <button @click="goReport(item.id)">查看报告</button>
|
|
|
|
+ </div>
|
|
|
|
+ </van-list>
|
|
|
|
+ </div>
|
|
|
|
+</div>
|
|
|
|
+`
|
|
|
|
+var reportListMobileComponent = {
|
|
|
|
+ name: 'report-list',
|
|
|
|
+ template: reportListTemplate,
|
|
|
|
+ delimiters: ['@@', '@@'],
|
|
|
|
+ data: function () {
|
|
|
|
+ return {
|
|
|
|
+ queryId: 'xxx',
|
|
|
|
+ listState: {
|
|
|
|
+ loading: true,
|
|
|
|
+ finished: false,
|
|
|
|
+ pageNum: 0,
|
|
|
|
+ pageSize: 5
|
|
|
|
+ },
|
|
|
|
+ reportList: []
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ filters: {
|
|
|
|
+ FormatTime: function (value, fmt) {
|
|
|
|
+ return new Date(value).pattern(fmt)
|
|
|
|
+ },
|
|
|
|
+ FormatComma: function (value) {
|
|
|
|
+ return value.replace(/,/g, ',')
|
|
|
|
+ },
|
|
|
|
+ FormatKeys: function (keys) {
|
|
|
|
+ var tempStr = ''
|
|
|
|
+ try {
|
|
|
|
+ var tempResult= []
|
|
|
|
+ var tempList = JSON.parse(keys)
|
|
|
|
+ tempList.forEach(function (v) {
|
|
|
|
+ v.a_key.forEach(function (k) {
|
|
|
|
+ tempResult.push({
|
|
|
|
+ key: [].concat(k.key, k.appendkey),
|
|
|
|
+ type: k.matchway === 1 ? '精准' : '模糊'
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ tempStr = tempResult.map(function (v) {
|
|
|
|
+ return '[' + v.key.join(' ') + ']' + '-' + v.type
|
|
|
|
+ }).join('、')
|
|
|
|
+ } catch (e) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return tempStr
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ mounted: function () {
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ goReport: function (id) {
|
|
|
|
+ console.log(id)
|
|
|
|
+ this.$emit('go-report', id)
|
|
|
|
+ },
|
|
|
|
+ getList: function () {
|
|
|
|
+ var tempRes = {
|
|
|
|
+ "error_code": 0,
|
|
|
|
+ "error_msg": "",
|
|
|
|
+ "data": {
|
|
|
|
+ "list": [
|
|
|
|
+ {
|
|
|
|
+ "area": "北京",
|
|
|
|
+ "buyerclass": "传媒,检察院,民政,农业",
|
|
|
|
+ "city": "郑州,开封,商丘",
|
|
|
|
+ "industry": "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
|
|
|
|
+ "keysItems": "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
|
|
|
|
+ "rangeTime": "-3year"
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "area": "北京",
|
|
|
|
+ "buyerclass": "传媒,检察院,民政,农业",
|
|
|
|
+ "city": "郑州,开封,商丘",
|
|
|
|
+ "industry": "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
|
|
|
|
+ "keysItems": "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
|
|
|
|
+ "rangeTime": "-3year"
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "area": "北京",
|
|
|
|
+ "buyerclass": "传媒,检察院,民政,农业",
|
|
|
|
+ "city": "郑州,开封,商丘",
|
|
|
|
+ "industry": "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
|
|
|
|
+ "keysItems": "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
|
|
|
|
+ "rangeTime": "-3year"
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "area": "北京",
|
|
|
|
+ "buyerclass": "传媒,检察院,民政,农业",
|
|
|
|
+ "city": "郑州,开封,商丘",
|
|
|
|
+ "industry": "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
|
|
|
|
+ "keysItems": "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
|
|
|
|
+ "rangeTime": "-3year"
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "area": "北京",
|
|
|
|
+ "buyerclass": "传媒,检察院,民政,农业",
|
|
|
|
+ "city": "郑州,开封,商丘",
|
|
|
|
+ "industry": "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
|
|
|
|
+ "keysItems": "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
|
|
|
|
+ "rangeTime": "-3year"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "total": 5
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $.ajax({
|
|
|
|
+ // url: '/bigmember/marketAnalysis/analysisHistory',
|
|
|
|
+ url: '/test',
|
|
|
|
+ type: 'GET',
|
|
|
|
+ data: {
|
|
|
|
+ id: this.queryId,
|
|
|
|
+ pageNum: this.listState.pageNum,
|
|
|
|
+ pageSize: this.listState.pageSize
|
|
|
|
+ },
|
|
|
|
+ success: function (res) {
|
|
|
|
+ res = tempRes
|
|
|
|
+ if (res && res.data && res.error_msg === '') {
|
|
|
|
+ var tempList = res.data.list.map(function (v) {
|
|
|
|
+ v.open = false
|
|
|
|
+ // TODO 下列接口数据待处理
|
|
|
|
+ v.id = new Date().getTime() + Math.random()
|
|
|
|
+ v.createTime = new Date().getTime() / 1000
|
|
|
|
+ v.startTime = new Date().getTime() / 1000
|
|
|
|
+ v.endTime = new Date().getTime() / 1000
|
|
|
|
+ return v
|
|
|
|
+ })
|
|
|
|
+ this.listState.pageNum++
|
|
|
|
+ // 本地测试
|
|
|
|
+ if (this.listState.pageNum > 2) {
|
|
|
|
+ tempList.pop()
|
|
|
|
+ }
|
|
|
|
+ this.reportList = this.reportList.concat(tempList)
|
|
|
|
+ if (tempList.length < this.listState.pageSize) {
|
|
|
|
+ this.listState.finished = true
|
|
|
|
+ }
|
|
|
|
+ this.listState.loading = false
|
|
|
|
+ } else {
|
|
|
|
+ this.listState.finished = true
|
|
|
|
+ this.listState.loading = false
|
|
|
|
+ }
|
|
|
|
+ }.bind(this),
|
|
|
|
+ error: function (err) {
|
|
|
|
+ this.listState.finished = true
|
|
|
|
+ this.listState.loading = false
|
|
|
|
+ }.bind(this)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|