gov_propagandize/pages/domain/domain.js
2025-02-07 16:29:25 +08:00

261 lines
7.3 KiB
JavaScript

// pages/domain/domain.js
const app = getApp();
import DomainService from '../../utils/api/domainApi';
Page({
/**
* 页面的初始数据
*/
data: {
indicatorWidth: 0,
scrollWidth: 0, //滚动视图的总宽度
screenWidth: 0, //屏幕宽度
sliderWidth: 10, //指示器宽度
lastScrollLeft: 0,
lastScrollTop: 0,
defaultSliderWidth: 10, //默认指示器宽度
domainCategoryList: [], //特色产业
keyEnterpriseList: [], //重点企业
showPageLoading: true,
imgBasePath: app.globalData.imgPath,
domainInfo: {}, //产业基础
isAreaExpand: false,
industryAreaList: [], //产业园区
platesList: [], //产业图谱,
domainCategoryLoading: 'loading', //特色产业
platesLoading: 'loading', //产业图谱
keyEnterpriseLoading: 'loading', //重点企业
industryLoading: 'loading', //开发园区
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
var window = wx.getWindowInfo()
var screenWidth = window.screenWidth
this.setData({
screenWidth: screenWidth - 34
})
var _self = this
//产业基础
_self.getDomainInfo()
//特色产业
_self.getDomainCategory()
//产业图谱
_self.getPlates()
//重点企业
_self.getKeyEnterprise()
//产业园区
_self.getIndustryArea()
setTimeout(() => {
_self.setData({
showPageLoading: false
})
}, 500);
},
countWidth() {
var _self = this
setTimeout(_ => {
const query = wx.createSelectorQuery().in(this)
query.selectAll('.plates-item').boundingClientRect()
query.exec(res => {
let width = 0
if (res) {
res[0].forEach(x => {
width += x.width
})
}
_self.setData({
scrollWidth: width - _self.data.screenWidth
})
})
}, 5)
},
//产业基础
getDomainInfo() {
var _self = this
DomainService.doGetDomainInfo()
.then(res => {
if (res) {
_self.setData({
domainInfo: res.rows[0]
})
}
}, err => {
wx.showToast({
icon: "none",
title: '网络错误(domainInfo)',
})
})
},
//特色产业
getDomainCategory() {
var _self = this
_self.setData({
domainCategoryLoading: 'loading'
})
DomainService.doGetDomainCategory()
.then(res => {
_self.setData({
domainCategoryLoading: 'success'
})
if (res) {
_self.setData({
domainCategoryList: res
})
}
}, err => {
_self.setData({
domainCategoryLoading: 'error'
})
wx.showToast({
icon: "none",
title: '网络错误(domainCategory)',
})
})
},
//特色产业详情
goUniqueDetail(e) {
wx.navigateTo({
url: '/pages/unique-detail/unique-detail?id=' + e.currentTarget.dataset.id,
})
},
//产业图谱
getPlates() {
var _self = this
_self.setData({
platesLoading: 'loading'
})
DomainService.doGetPlates()
.then(res => {
_self.setData({
platesLoading: 'success'
})
if (res) {
_self.setData({
platesList: res.rows
})
}
_self.countWidth()
}, err => {
_self.setData({
platesLoading: 'error'
})
wx.showToast({
icon: "none",
title: '网络错误(plates)',
})
})
},
//产业图谱详情
goPlates(e) {
wx.navigateTo({
url: '/pages/plates/plates?id=' + e.currentTarget.dataset.id,
})
},
//重点企业
getKeyEnterprise() {
var _self = this
_self.setData({
keyEnterpriseLoading: 'loading'
})
DomainService.doGetKeyEnterprise()
.then(res => {
_self.setData({
keyEnterpriseLoading: 'success'
})
if (res) {
_self.setData({
keyEnterpriseList: res
})
}
}, err => {
_self.setData({
keyEnterpriseLoading: 'error'
})
wx.showToast({
icon: "none",
title: '网络错误(domainEnterprise)',
})
})
},
//产业园区
getIndustryArea() {
var _self = this
_self.setData({
industryLoading: 'loading'
})
DomainService.doGetIndustryArea()
.then(res => {
_self.setData({
industryLoading: 'success'
})
if (res && res.rows) {
_self.setData({
industryAreaList: res.rows
})
}
}, err => {
_self.setData({
industryLoading: 'error'
})
wx.showToast({
icon: "none",
title: '网络错误(IndustryArea)',
})
})
},
//监听scroll-view滚动
scrollPlates(e) {
var _self = this
let scrollLeft = e.detail.scrollLeft;
var offsetLeft = e.detail.scrollLeft
var scale = _self.data.scrollWidth / 30
var offsetX = offsetLeft / scale
_self.setData({
sliderWidth: _self.data.defaultSliderWidth + offsetX,
lastScrollLeft: scrollLeft
})
},
areaShowAll() {
var _self = this
_self.setData({
isAreaExpand: !_self.data.isAreaExpand
})
},
//公司详情
showCompany(e) {
wx.navigateTo({
url: '/pages/company/company?id=' + e.currentTarget.dataset.id,
})
},
onPullDownRefresh() {
var _self = this
_self.setData({
showPageLoading: true
})
//产业基础
_self.getDomainInfo()
//特色产业
_self.getDomainCategory()
//重点企业
_self.getKeyEnterprise()
//产业园区
_self.getIndustryArea()
_self.getPlates()
setTimeout(() => {
wx.stopPullDownRefresh()
_self.setData({
showPageLoading: false
})
}, 500);
},
//园区详情
showGarden(e) {
wx.navigateTo({
url: '/pages/industry-area/industry-area?id=' + e.currentTarget.dataset.id,
})
}
})