|
@@ -2,41 +2,50 @@ var vNode = {
|
|
|
delimiters: ['${', '}'],
|
|
|
el: '#myCollection',
|
|
|
components: {
|
|
|
+ tagsComponent: tagsComponent,
|
|
|
dateComponent: dateComponent,
|
|
|
- cateComponent: cateComponent
|
|
|
+ cateComponent: cateComponent,
|
|
|
+ phoneComponent: phoneComponent
|
|
|
},
|
|
|
data: {
|
|
|
listState: {
|
|
|
value: '',
|
|
|
loading: false,
|
|
|
- finished: true,
|
|
|
- pageNum: 1,
|
|
|
+ finished: false,
|
|
|
pageSize: 10,
|
|
|
offset: 80,
|
|
|
scrollTop: 0,
|
|
|
total: 0,
|
|
|
list: []
|
|
|
},
|
|
|
- dateOption:[
|
|
|
- '不限',
|
|
|
- '最近7天',
|
|
|
- '最近30天',
|
|
|
- '去年'
|
|
|
- ],
|
|
|
- list: ['a', 'b'],
|
|
|
- result: [],
|
|
|
+ // 筛选参数
|
|
|
+ limitlist: {
|
|
|
+ pageNum: 1,
|
|
|
+ label: '',
|
|
|
+ selectTime: '',
|
|
|
+ buyerclass: '',
|
|
|
+ buyerPhone: 0,
|
|
|
+ winnerPhone: 0
|
|
|
+ },
|
|
|
+ // 个人标签列表
|
|
|
+ tagList: [],
|
|
|
// 下拉菜单参数
|
|
|
params: {
|
|
|
- value1: '',
|
|
|
value2: '',
|
|
|
- option4: [
|
|
|
- { text: '有联系方式', value: 'a' },
|
|
|
- { text: '无联系方式', value: 'b' },
|
|
|
- ],
|
|
|
- option5: [
|
|
|
- { text: '有联系方式', value: 'a' },
|
|
|
- { text: '无联系方式', value: 'b' },
|
|
|
- ]
|
|
|
+ buyerData: {
|
|
|
+ dataType: '1',
|
|
|
+ option: [
|
|
|
+ { text: '有联系方式', value: 1, type: false },
|
|
|
+ { text: '无联系方式', value: -1, type: false },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ winnerData: {
|
|
|
+ dataType: '2',
|
|
|
+ option: [
|
|
|
+ { text: '有联系方式', value: 1, type: false },
|
|
|
+ { text: '无联系方式', value: -1, type: false },
|
|
|
+ ]
|
|
|
+ }
|
|
|
},
|
|
|
// 收藏日期选择时间参数
|
|
|
selectDate: {
|
|
@@ -46,31 +55,51 @@ var vNode = {
|
|
|
limitshow: false, // 筛选框显示
|
|
|
condition: true, // 列表星星显示
|
|
|
personTagactive:0, //个人标签选择按钮下标
|
|
|
- colDate:0 // 收藏日期选择按钮下标
|
|
|
+ screenShow: false // 筛选按钮是否显示
|
|
|
},
|
|
|
computed: {},
|
|
|
created () {
|
|
|
+ this.getUserRoot()
|
|
|
this.getList()
|
|
|
this.getTagsList()
|
|
|
},
|
|
|
mounted() {
|
|
|
},
|
|
|
methods: {
|
|
|
- toggle(index) {
|
|
|
- this.$refs.checkboxes[index].toggle();
|
|
|
+ // 判断是否是有筛选条件
|
|
|
+ getUserRoot: function() {
|
|
|
+ $.ajax({
|
|
|
+ url: '/publicapply/bidcoll/power',
|
|
|
+ type: 'POST',
|
|
|
+ success: function(res) {
|
|
|
+ console.log(res)
|
|
|
+ if(res.data) {
|
|
|
+ this.screenShow = true
|
|
|
+ } else {
|
|
|
+ this.screenShow = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
- onClick: function(){},
|
|
|
- screenBtn(val) {
|
|
|
+ // 列表跳转
|
|
|
+ linkRouter: function(id) {
|
|
|
+ location.href = '/jyapp/article/content/' + id + '.html'
|
|
|
+ },
|
|
|
+ // 筛选按钮
|
|
|
+ screenBtn() {
|
|
|
this.limitshow = true
|
|
|
+ setTimeout(()=>{
|
|
|
+ this.$refs.tagItem.toggle()
|
|
|
+ })
|
|
|
},
|
|
|
getContainer: function() {
|
|
|
return this.$refs.searchContainer
|
|
|
},
|
|
|
+ // 获取列表数据
|
|
|
getList: function() {
|
|
|
let _this = this
|
|
|
- let params = {
|
|
|
- pagenum: _this.listState.pageNum
|
|
|
- }
|
|
|
+ _this.listState.loading = true
|
|
|
+ let params = _this.limitlist
|
|
|
$.ajax({
|
|
|
url: '/publicapply/bidcoll/list',
|
|
|
type: "POST",
|
|
@@ -78,58 +107,50 @@ var vNode = {
|
|
|
data: JSON.stringify(params),
|
|
|
success: function(res){
|
|
|
console.log(res)
|
|
|
+ if (res.error_code == 0) {
|
|
|
+ if (res.data && res.data.res && $.isArray(res.data.res)) {
|
|
|
+ // 当数组为空时,且不为第一页,底部显示没有更多数据
|
|
|
+ if(res.data.res.length == 0 && _this.limitlist.pageNum != 1){
|
|
|
+ _this.listState.list = _this.listState.list.concat(res.data.res)
|
|
|
+ _this.listState.loading = false
|
|
|
+ if(!res.data.haveNextPage){
|
|
|
+ _this.listState.loading = true
|
|
|
+ _this.listState.finished = true;
|
|
|
+ }else{
|
|
|
+ _this.listState.loading = false
|
|
|
+ _this.limitlist.pageNum++
|
|
|
+ }
|
|
|
+ } else if(res.data.res.length == 0 && _this.limitlist.pageNum == 1){
|
|
|
+ // 当数组为空时,且为第一页,页面为暂无数据页面
|
|
|
+ _this.listState.loading = true
|
|
|
+ _this.listState.finished = true;
|
|
|
+ } else {
|
|
|
+ // 数据正常加载更多
|
|
|
+ for (let i = 0; i < res.data.res.length; i++) {
|
|
|
+ res.data.res[i].bidamount = utils.moneyUnit(res.data.res[i].bidamount)
|
|
|
+ res.data.res[i].publishtime = utils.dateFromNow(res.data.res[i].publishtime * 1000)
|
|
|
+ }
|
|
|
+ _this.listState.list = _this.listState.list.concat(res.data.res)
|
|
|
+ _this.listState.loading = false
|
|
|
+ if(!res.data.haveNextPage){
|
|
|
+ _this.listState.loading = true
|
|
|
+ _this.listState.finished = true;
|
|
|
+ }else{
|
|
|
+ _this.listState.loading = false
|
|
|
+ _this.limitlist.pageNum++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ _this.listState.loading = true
|
|
|
+ _this.listState.finished = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ _this.$toast(res.error_msg)
|
|
|
+ }
|
|
|
},
|
|
|
error: function(err){
|
|
|
- console.log(err)
|
|
|
- }
|
|
|
- })
|
|
|
- this.listState.list = [
|
|
|
- {
|
|
|
- "_id": "ABCY1wIfjwOOyw7I39zcE8sMDI%2FQTBgcUJ1Px4sODogZ31wAFpUCeg%3D",
|
|
|
- "title": "吉林市鑫业建筑安装有限公司舒兰市人民医院异地新建项目户外门采购项目中标公告",
|
|
|
- "area": "吉林",
|
|
|
- "buyerclass": "建筑业",
|
|
|
- "type": "成交",
|
|
|
- "s_subscopeclass": "建筑工程",
|
|
|
- "publishtime": 1619573067,
|
|
|
- "budget": null,
|
|
|
- "bidamount": 2270472.4
|
|
|
- },
|
|
|
- {
|
|
|
- "_id": "ABCY2EEcjxYNyAsI2t2c2UoDScoGj10XFJ%2BPy8FJiEgWX1zYy9UCbE%3D",
|
|
|
- "title": "广东实验中学货物采购合同采购合同",
|
|
|
- "area": "广东",
|
|
|
- "buyerclass": "学校",
|
|
|
- "type": "合同",
|
|
|
- "s_subscopeclass": "",
|
|
|
- "publishtime": 1514735849,
|
|
|
- "budget": 1799691.27,
|
|
|
- "bidamount": 1728000
|
|
|
- },
|
|
|
- {
|
|
|
- "_id": "ABCY1wIfjwOAj07NFlzcE8sMDI%2FQTBgcUJ1Px4vIDogUXxwBFpUCYM%3D",
|
|
|
- "title": "大埔县农业农村局2021年食用农产品抽检服务项目成交公告",
|
|
|
- "area": "广东",
|
|
|
- "buyerclass": "农业",
|
|
|
- "type": "成交",
|
|
|
- "s_subscopeclass": "服务采购",
|
|
|
- "publishtime": 1619573075,
|
|
|
- "budget": null,
|
|
|
- "bidamount": 223500
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- // 获取个人标签列表
|
|
|
- getTagsList: function() {
|
|
|
- let _this = this
|
|
|
- $.ajax({
|
|
|
- url: '/publicapply/bidcoll/getLabel',
|
|
|
- type: "POST",
|
|
|
- success: function(res){
|
|
|
- console.log(res)
|
|
|
- },
|
|
|
- error: function(err){
|
|
|
- console.log(err)
|
|
|
+ _this.listState.loading = true
|
|
|
+ _this.listState.finished = true;
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -151,35 +172,108 @@ var vNode = {
|
|
|
data:JSON.stringify(params),
|
|
|
success: function(res){
|
|
|
console.log(res)
|
|
|
+ if(res.error_code == 0) {
|
|
|
+ if(res.data) {
|
|
|
+ _this.$toast('取消收藏成功')
|
|
|
+ _this.reLoadList()
|
|
|
+ } else {
|
|
|
+ _this.$toast('取消收藏失败')
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
error: function(err){
|
|
|
- console.log(err)
|
|
|
+ _this.$toast('取消收藏失败')
|
|
|
}
|
|
|
})
|
|
|
- this.listState.list.map((item,index) => {
|
|
|
- console.log(item)
|
|
|
- if(id === item._id) {
|
|
|
- this.getList()
|
|
|
+ },
|
|
|
+ // 确定按钮事件
|
|
|
+ confirm: function(data) {
|
|
|
+ if(data.name == 'dateItem'){
|
|
|
+ if ((data.data.start / 1000).toFixed(0) == 0 && (data.data.end / 1000).toFixed(0) == 0) {
|
|
|
+ this.limitlist.selectTime = ''
|
|
|
+ } else if((data.data.start / 1000).toFixed(0) == 0 && (data.data.end / 1000).toFixed(0) != 0) {
|
|
|
+ this.limitlist.selectTime = '_' + (data.data.end / 1000).toFixed(0)
|
|
|
+ } else if((data.data.start / 1000).toFixed(0) != 0 && (data.data.end / 1000).toFixed(0) == 0) {
|
|
|
+ this.limitlist.selectTime = (data.data.start / 1000).toFixed(0) + '_'
|
|
|
+ } else {
|
|
|
+ this.limitlist.selectTime = (data.data.start / 1000).toFixed(0) + '_' + (data.data.end / 1000).toFixed(0)
|
|
|
}
|
|
|
- })
|
|
|
+ this.$refs.dateItem.toggle()
|
|
|
+ } else if (data.name == 'cateItem') {
|
|
|
+ this.limitlist.buyerclass = data.data.join(',')
|
|
|
+ this.$refs.cateItem.toggle()
|
|
|
+ } else if (data.name == 'tagsItem') {
|
|
|
+ this.limitlist.label = data.data
|
|
|
+ this.$refs.tagItem.toggle()
|
|
|
+ } else if (data.name == 'buyerItem') {
|
|
|
+ this.limitlist.buyerPhone = parseInt(data.data)
|
|
|
+ this.$refs.buyerItem.toggle(false)
|
|
|
+ } else if (data.name == 'winnerItem') {
|
|
|
+ this.limitlist.winnerPhone = parseInt(data.data)
|
|
|
+ this.$refs.winnerItem.toggle(false)
|
|
|
+ }
|
|
|
+ this.reLoadList()
|
|
|
},
|
|
|
- // 个人标签重置
|
|
|
- resetAll: function() {},
|
|
|
- // 个人标签确定
|
|
|
- onConfirm: function(){},
|
|
|
- // 个人标签点击
|
|
|
- selectTags: function(i) {
|
|
|
- console.log(i)
|
|
|
- this.personTagactive = i
|
|
|
+ // 取消按钮事件
|
|
|
+ cancel: function(data) {
|
|
|
+ console.log(data)
|
|
|
},
|
|
|
- // 收藏日期标签选择
|
|
|
- selectFixedDate: function(i) {
|
|
|
- this.colDate = i
|
|
|
+ // 刷新列表
|
|
|
+ reLoadList: function() {
|
|
|
+ this.listState.list = []
|
|
|
+ this.getList()
|
|
|
},
|
|
|
- // 采购单位类型全选
|
|
|
- checkAll:function() {
|
|
|
- this.$refs.checkboxGroup.toggleAll();
|
|
|
+
|
|
|
+ // 中标企业联系方式
|
|
|
+ getWinnerPhone: function(value) {
|
|
|
+ this.params.option5.forEach(function(data){
|
|
|
+ data.type = false
|
|
|
+ })
|
|
|
+ value.type = true
|
|
|
+ this.limitlist.winnerPhone = value.value
|
|
|
+ this.$refs.winnerItem.toggle(false)
|
|
|
+ this.reLoadList()
|
|
|
+ },
|
|
|
+ // 获取个人标签列表
|
|
|
+ getTagsList: function() {
|
|
|
+ let _this = this
|
|
|
+ $.ajax({
|
|
|
+ url: '/publicapply/bidcoll/getLabel',
|
|
|
+ type: "POST",
|
|
|
+ success: function(res){
|
|
|
+ console.log(res)
|
|
|
+ if(res.error_code == 0) {
|
|
|
+ res.data.forEach(function(item, index){
|
|
|
+ item.type = false
|
|
|
+ })
|
|
|
+ _this.tagList = res.data
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function(err){
|
|
|
+ console.log(err)
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
+ // 数据导出
|
|
|
+ dataReport: function() {
|
|
|
+ let idArr = []
|
|
|
+ this.listState.list.forEach(function(item) {
|
|
|
+ idArr.push(item._id)
|
|
|
+ })
|
|
|
+ $.ajax({
|
|
|
+ url: '/publicapply/dataexpoet/bycollection',
|
|
|
+ type: 'POST',
|
|
|
+ data: {
|
|
|
+ selectIds: idArr.join(',')
|
|
|
+ },
|
|
|
+ success: function(res) {
|
|
|
+ console.log(res)
|
|
|
+ if(res.error_code == 0 && res.data) {
|
|
|
+ location.href = '/jyapp/front/dataExport/toCreateOrderPage?id=' + res.data._id + '&source=d&payway=&dataspec='
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
var myCollection = new Vue(vNode)
|