|
@@ -7,33 +7,19 @@ export default {
|
|
|
namespaced: true,
|
|
|
state: {
|
|
|
funcs: [ // 預計以後會開放的功能 以下以最大數量為主)
|
|
|
- { func: 'works', para: '1', get: null, exp: null }, // 作品收集任務數 (掃碼改為 6)
|
|
|
- { func: 'clients', para: '10', get: null, exp: null }, // 連線人數 (掃碼改為 50)
|
|
|
- { func: 'pageqty', para: '50', get: null, exp: null } // 頁面數
|
|
|
+ { func: 'works', para: '1', get: null, exp: null, active: true, isDeadline: false}, // 作品收集任務數 (掃碼改為 6)
|
|
|
+ { func: 'clients', para: '10', get: null, exp: null, active: true, isDeadline: false }, // 連線人數 (掃碼改為 50)
|
|
|
+ { func: 'pageqty', para: '50', get: null, exp: null, active: true, isDeadline: false }, // 頁面數
|
|
|
+ { func: 'aigpt', para: null, get: null, exp: null, active: false, isDeadline: false }, // AIGPT
|
|
|
]
|
|
|
},
|
|
|
getters: {
|
|
|
// 取得指定的功能設定
|
|
|
getFunc: (state) => (func) => {
|
|
|
let data = state.funcs.find(item => item.func === func)
|
|
|
- let isDeadline = false
|
|
|
-
|
|
|
- if(data.exp !== null){
|
|
|
- let nY = new Date().getFullYear()
|
|
|
- let expYear
|
|
|
- if(data.exp.toString().length < 13) {
|
|
|
- expYear = new Date(data.exp * 1000).getFullYear()
|
|
|
- } else {
|
|
|
- expYear = new Date(data.exp).getFullYear()
|
|
|
- }
|
|
|
- if((expYear - nY) < 50) {
|
|
|
- isDeadline = true
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- data.isDeadline = isDeadline
|
|
|
return data
|
|
|
- }
|
|
|
+ },
|
|
|
+ getFuncAll: (state) => state.funcs
|
|
|
},
|
|
|
mutations: {
|
|
|
[KEEPSTORAGE](state, data) {
|
|
@@ -43,8 +29,13 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
[SETUPFUNCS](state, data) {
|
|
|
- state.funcs = data
|
|
|
- }
|
|
|
+ data.forEach(d => {
|
|
|
+ var i = state.funcs.findIndex((e) => e.func == d.func)
|
|
|
+ if(i != -1){
|
|
|
+ state.funcs[i] = d
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
},
|
|
|
actions: {
|
|
|
/**
|
|
@@ -56,49 +47,48 @@ export default {
|
|
|
let funcData = []
|
|
|
let nT = parseInt(Date.parse(new Date())/1000) // 用十碼計算
|
|
|
|
|
|
- context.state.funcs.forEach( sItem => {
|
|
|
- let stemp = sItem
|
|
|
+ data.forEach( (d) => {
|
|
|
let exp
|
|
|
- // 提取對應 data 內容
|
|
|
- let dataTmp = data.find( d => d.func === sItem.func)
|
|
|
+ let stateTmp = context.state.funcs.find( e => e.func === d.func)
|
|
|
+ let index = funcData.findIndex( (e) => e.func == d.func)
|
|
|
+ let tmpExp = nT
|
|
|
+ if(index != -1 && funcData[index].exp > nT) {
|
|
|
+ tmpExp = funcData[index].exp
|
|
|
+ }
|
|
|
|
|
|
- // 根據不同類型作比較 留下較大的值
|
|
|
- switch (dataTmp?.func) {
|
|
|
- case 'works':
|
|
|
- exp = dataTmp.exp
|
|
|
- // 如果超過10碼調整為10碼
|
|
|
- if(exp.toString().length > 10 ) exp = parseInt(exp/1000)
|
|
|
-
|
|
|
- if((exp - nT) > 0 && parseInt(stemp.para) < parseInt(dataTmp.para)) { // 檢查功能是否過期,沒過期比較大小值
|
|
|
- stemp.para = dataTmp.para
|
|
|
- stemp.exp = dataTmp.exp
|
|
|
- stemp.get = dataTmp.get
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'clients':
|
|
|
- exp = dataTmp.exp
|
|
|
+ if(stateTmp.exp != null && stateTmp.exp > tmpExp) {
|
|
|
+ tmpExp = stateTmp.exp
|
|
|
+ }
|
|
|
+
|
|
|
+ switch (stateTmp?.func) {
|
|
|
+ case 'aigpt':
|
|
|
+ exp = d.exp
|
|
|
// 如果超過10碼調整為10碼
|
|
|
if(exp.toString().length > 10 ) exp = parseInt(exp/1000)
|
|
|
|
|
|
- if((exp - nT) > 0 && parseInt(stemp.para) < parseInt(dataTmp.para)) { // 檢查功能是否過期,沒過期比較大小值
|
|
|
- stemp.para = dataTmp.para
|
|
|
- stemp.exp = dataTmp.exp
|
|
|
- stemp.get = dataTmp.get
|
|
|
+ if((exp - tmpExp) > 0) {
|
|
|
+ stateTmp.para = d.para
|
|
|
+ stateTmp.exp = d.exp
|
|
|
+ stateTmp.get = d.get
|
|
|
+ stateTmp.isDeadline = true
|
|
|
+ stateTmp.active = true
|
|
|
}
|
|
|
+
|
|
|
break;
|
|
|
- case 'pageqty':
|
|
|
- exp = dataTmp.exp
|
|
|
+ default:
|
|
|
+ exp = d.exp
|
|
|
// 如果超過10碼調整為10碼
|
|
|
if(exp.toString().length > 10 ) exp = parseInt(exp/1000)
|
|
|
|
|
|
- if((exp - nT) > 0 && parseInt(stemp.para) < parseInt(dataTmp.para)) { // 檢查功能是否過期,沒過期比較大小值
|
|
|
- stemp.para = dataTmp.para
|
|
|
- stemp.exp = dataTmp.exp
|
|
|
- stemp.get = dataTmp.get
|
|
|
+ if((exp - tmpExp) > 0 && parseInt(stateTmp.para) < parseInt(d.para)) { // 檢查功能是否過期,沒過期比較大小值
|
|
|
+ stateTmp.para = d.para
|
|
|
+ stateTmp.exp = d.exp
|
|
|
+ stateTmp.get = d.get
|
|
|
+ stateTmp.isDeadline = true
|
|
|
}
|
|
|
- break;
|
|
|
}
|
|
|
- funcData.push(stemp)
|
|
|
+
|
|
|
+ funcData.push(stateTmp)
|
|
|
})
|
|
|
context.commit(SETUPFUNCS, funcData)
|
|
|
context.dispatch('saveState') // 存到sessionStorage
|