纸通宝SAAS仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

182 lines
6.5 KiB

// pages/administ/index.js
import Scene from './scene'
import { sconfig, getMessageList } from "../../api/saas"
import { headerFactoryId } from "../../api/user"
const event = require('../../utils/event')
const storage = require('../../utils/storage')
const app = getApp()
Scene({
/**
* 页面的初始数据
*/
data: {
safeBottom: app.globalData.safeBottom,
fragment: app.globalData.safeFragmentHeight,
userInfo: null,
tabList: [
{ index: 0, value: 'process', badge: 0, name: '采购', blue: '/assets/tabbar/process-blue.png', gray: '/assets/tabbar/process-gray.png' },
{ index: 1, value: 'storage', badge: 0, name: '库存', blue: '/assets/tabbar/storage-blue.png', gray: '/assets/tabbar/storage-gray.png' },
{ index: 2, value: 'agent', badge: 0, name: '代卖', blue: '/assets/tabbar/mall-blue.png', gray: '/assets/tabbar/mall-gray.png' },
{ index: 3, value: 'home', badge: 0, name: '我的', blue: '/assets/tabbar/home-blue.png', gray: '/assets/tabbar/home-gray.png' }
],
tabIndex: 0,
zIndex: 9,
setInter: null,
factoryName: '',
items: [],
mActiveIndex: 0,
popIndex: 0,
factoryId: '',
arrow: false,
visible: false
},
/************************************** 初始化流程 ********************************************/
onLoad: function (options) {
if (options.url) {
var path = options.url
if (options.key && options.value) {
path += '?' + options.key + '=' + options.value
}
wx.navigateTo({ url: path })
}
this.data.items = []
for (let mIndex = 0; mIndex < app.userInfo.enterpriseInfos.length; mIndex++) {
const element = app.userInfo.enterpriseInfos[mIndex]
// var enterprise = { text: util.substring(element.enterpriseName, 8) }
var enterprise = { text: element.enterpriseName }
var children = []
if(mIndex >= 1){
this.data.arrow = true
}
for (let nIndex = 0; nIndex < element.factoryInfos.length; nIndex++) {
const item = element.factoryInfos[nIndex]
if(item.factoryId == app.userInfo.factoryId){
this.data.mActiveIndex = mIndex
app.userInfo.factoryName = item.factoryName
if(element.isEnterprisePrimary){
app.userInfo.type = 'ADMIN'
} else {
app.userInfo.type = item.type || ''
}
}
if(nIndex >= 1){
this.data.arrow = true
}
var factory = { id: item.factoryId }
if(!item.type && !element.isEnterprisePrimary){
factory.text = item.factoryName + '(申请中)'
factory.disabled = true
} else {
factory.text = item.factoryName
}
factory.index = nIndex
children.push(factory)
}
enterprise.children = children
this.data.items.push(enterprise)
}
this.data.popIndex = this.data.mActiveIndex
this.setData({
userInfo: app.userInfo,
items: this.data.items,
mActiveIndex: this.data.mActiveIndex,
factoryId: app.userInfo.factoryId,
factoryName: app.userInfo.factoryName,
arrow: this.data.arrow,
customBar: app.globalData.CustomBar || (app.globalData.isIos ? 64 : 60),
fragment: (app.globalData.safeFragmentHeight + app.globalData.statusBarHeight),
safeBottom: app.globalData.safeBottom
})
event.on('EventMessage', this, this.onEvent)
// this.worker = wx.createWorker('/workers/process.js')
this.data.setInter = setInterval(this.fetchMessage, 10000)
},
/************************************** 生命周期函数--监听页面初次渲染完成 ********************************************/
onShow: function () {
var pageView = this.selectComponent('#' + this.data.tabList[this.data.tabIndex].value)
if (pageView) {
pageView.onRestart()
}
},
onChange: function ({detail}) {
this.setData({ tabIndex: detail })
this.onShow()
},
stopTouchMove: function(e){
return false
},
onEvent: function (message) {
if (message.what == 888) {
this.onUnload()
}
},
fetchMessage: function(){
// var params = { url: sconfig.baseUrl + '/message-center/message/get/message-list', xAppId: app.xAppId}
// params.xFactoryId = app.userInfo.factoryId
// params.authorization = app.globalData.authorization
// this.worker.postMessage({ type: 1, params })
// this.worker.onMessage(function(res){
// console.log(res)
// })
getMessageList({ productType: 'ZTB_FACTORY', status: 0 }).then(result => {
if(result.data && result.data.records && result.data.records.length){
let pages = getCurrentPages() //当前页面栈
let nowPage = pages[pages.length - 1] //当前页面
if(nowPage.onNotice){
nowPage.onNotice(result.data.records[0])
}
}
})
},
/************************************** changeFactory ********************************************/
onPopupChange: function({detail}){
this.setData({zIndex: detail})
},
showFactoryList: function(){
if(!this.data.arrow){
return
}
this.setData({ visible: !this.data.visible, mActiveIndex: this.data.popIndex })
if (this.data.tabIndex == 0) {
var pageView = this.selectComponent('#' + this.data.tabList[this.data.tabIndex].value)
pageView.onClose()
}
},
onHide: function(){
this.setData({ visible: false })
},
onClickNav({ detail }) {
this.setData({ mActiveIndex: detail.index || 0 })
},
changeFactory({ detail }) {
if(app.userInfo.factoryId == detail.id){
this.setData({ visible: false })
return
}
wx.showLoading({ title: '正在切换', mask: true })
app.userInfo.factoryId = detail.id
storage.put('X-FACTORY-ID' + app.userInfo.userId, detail.id)
this.data.popIndex = this.data.mActiveIndex
const element = app.userInfo.enterpriseInfos[this.data.mActiveIndex]
if(element.isEnterprisePrimary){
app.userInfo.type = 'ADMIN'
} else {
app.userInfo.type = element.factoryInfos[detail.index].type || ''
}
headerFactoryId(detail.id)
var pageView = this.selectComponent('#' + this.data.tabList[this.data.tabIndex].value)
if (pageView && this.data.tabIndex != 3) {
pageView.fetchStatisticsInfo(true)
}
event.emit('EventMessage', { what: 999, desc: 'changeFactory' })
this.setData({ visible: false, factoryId: detail.id, factoryName: detail.text })
},
onUnload: function(){
event.remove('EventMessage', this)
if(this.data.setInter) {
clearInterval(this.data.setInter)
this.data.setInter = null
}
}
})