diff --git a/package.json b/package.json index bb4dbaa6..bec0c726 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,8 @@ "vuedraggable": "2.15.0", "vuex": "3.0.1", "wl-gantt": "^1.0.6", - "xlsx": "^0.14.5" + "xlsx": "^0.14.5", + "element-china-area-data": "^5.0.2" }, "devDependencies": { "@babel/core": "^7.15.8", diff --git a/src/api/login.js b/src/api/login.js index f94d243f..ff633af4 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,4 +1,7 @@ -import axios from '@/utils/request' +import axios from 'axios'//免登录访问 +import axiosAuth from '@/utils/request'//待token访问 + + import { getToken, setToken, removeToken,getCacheUserInfo,setCacheUserInfo,removeCacheUserInfo} from '@/utils/auth' @@ -6,31 +9,52 @@ import config from '@/common/config' let base=config.getOauth2LoginBasePath(); + +var curlDomain=window.location.protocol+"//"+window.location.host; // 返回https://mp.csdn.net +var baseApiUrl=""; +if(process.env.BASE_API ){ + if(process.env.BASE_API.indexOf("http")<0 && process.env.BASE_API.indexOf("wwww.")<0){ + baseApiUrl=curlDomain+"/"+process.env.BASE_API+"/"+process.env.VERSION; + }else{ + baseApiUrl=process.env.BASE_API+"/"+process.env.VERSION; + } + +}else{ + baseApiUrl=curlDomain+"/api/"+process.env.VERSION +} +var indexOfHttp=baseApiUrl.indexOf("://"); +if(indexOfHttp>0){ + baseApiUrl=baseApiUrl.substr(0,indexOfHttp+3)+baseApiUrl.substr(indexOfHttp+3,baseApiUrl.length).replace("//","/"); +}else{ + baseApiUrl=baseApiUrl.replace("//","/") +} + + //let base=''; export function doLoginByUserloginid(userloginid, password,grantType,authType,deptid,userid) { removeToken(); const data = { userloginid: userloginid, - password: password, + password: password, authType:authType, deptid:deptid, userid:userid, } return axios({ - url: base+'/login/token?grantType='+grantType, + url: baseApiUrl+'/'+base+'/login/token?grantType='+grantType, method: 'post', data }) } -export function switchUser(userloginid, password,grantType,authType,deptid,userid) { +export function switchUser(userloginid, password,grantType,authType,deptid,userid) { const data = { userloginid: userloginid, - password: password, + password: password, authType:authType, deptid:deptid, userid:userid, } - return axios({ + return axiosAuth({ url: base+'/login/token?grantType='+grantType, method: 'post', data @@ -42,7 +66,7 @@ export function checkUserid(userid ) { userid: userid } return axios({ - url: base+'/user/check/userid', + url: baseApiUrl+'/'+base+'/user/check/userid', method: 'post', data }) @@ -53,7 +77,7 @@ export function checkDisplayUserid(displayUserid ) { displayUserid: displayUserid } return axios({ - url: base+'/user/check/displayUserid', + url: baseApiUrl+'/'+base+'/user/check/displayUserid', method: 'post', data }) @@ -65,14 +89,14 @@ export function checkPhoneno(phoneno ) { phoneno: phoneno } return axios({ - url: base+'/user/check/phoneno', + url: baseApiUrl+'/'+base+'/user/check/phoneno', method: 'post', data }) } -export function queryByUserloginid( params ) { +export function queryByUserloginid( params ) { return axios({ - url: base+'/user/queryByUserloginid', + url: baseApiUrl+'/'+base+'/user/queryByUserloginid', method: 'get', params:params }) @@ -82,7 +106,6 @@ export function doRegister( userInfo ) { removeToken(); const data = { username:userInfo.username, - userid:userInfo.displayUserid, displayUserid:userInfo.displayUserid, password:userInfo.password, phoneno:userInfo.phoneno, @@ -91,7 +114,7 @@ export function doRegister( userInfo ) { branchId:userInfo.branchId } return axios({ - url: base+'/user/register', + url: baseApiUrl+'/'+base+'/user/register', method: 'post', data }) @@ -99,14 +122,14 @@ export function doRegister( userInfo ) { export function resetPasswordByPhoneno( userInfo ) { removeToken(); - const data = { + const data = { newPassword:userInfo.newPassword, phoneno:userInfo.phoneno, - smsCode:userInfo.smsCode, + smsCode:userInfo.smsCode, userid:userInfo.userid } return axios({ - url: base+'/user/password/reset?type=sms', + url: baseApiUrl+'/'+base+'/user/password/reset?type=sms', method: 'post', data }) @@ -128,7 +151,7 @@ export function getUserInfo(params) { } } const data=params; - return axios({ + return axiosAuth({ url: base+'/user/info', method: 'post', data @@ -139,10 +162,10 @@ export function getUserInfo(params) { * 发送邮件 */ -export function sendEmail(params) { +export function sendEmail(params) { const data=params; return axios({ - url: base+'/user/sendEmail', + url: baseApiUrl+'/'+base+'/user/sendEmail', method: 'post', data }) @@ -151,9 +174,9 @@ export function sendEmail(params) { * 验证邮箱 */ -export function validEmailCode(params) { +export function validEmailCode(params) { return axios({ - url: base+'/user/validEmailCode', + url: baseApiUrl+'/'+base+'/user/validEmailCode', method: 'get', params:params }) @@ -162,22 +185,22 @@ export function validEmailCode(params) { /** * 获取第三方登录需要state参数,防止crfs攻击 - * @param - * @returns + * @param + * @returns */ -export function getTpaState( ) { +export function getTpaState( ) { return axios({ - url: '/tpa/login/wechat/wxpub/state', - method: 'post', + url: baseApiUrl+'/tpa/login/wechat/wxpub/state', + method: 'post', data:{} }) } /** * 获取查询当前登录账户的所有关联账户 - * @returns + * @returns */ - export function queryMyUsers( ) { - return axios({ + export function queryMyUsers( ) { + return axiosAuth({ url: base+'/user/queryMyUsers', method: 'get' }) diff --git a/src/api/mdp/arc/archive.js b/src/api/mdp/arc/archive.js index 4e7c9e45..209299d2 100644 --- a/src/api/mdp/arc/archive.js +++ b/src/api/mdp/arc/archive.js @@ -1,63 +1,85 @@ import axios from '@/utils/request' -import config from '@/common/config' -import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' -let base=config.getArcBasePath(); +let base = config.getArcBasePath(); /** * 档案信息表 - *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, *2 查询、新增、修改的参数格式 params={id:'主键 主键',tagNames:'标签名多个,分割',deptid:'创建部门',userid:'创建人',isShare:'是否共享',url:'访问路径',archiveAbstract:'摘要',archiveContext:'内容',archiveTitle:'标题',archivingUserid:'归档人',isFromArchiving:'是否来自归档',archivingDate:'归档日期',createDate:'创建日期',authorUserid:'作者编号',authorName:'作者名称',canDel:'是否可删除',canEdit:'是否可修改',canRead:'是否可读',bizKey:'业务编号',encryptType:'加密方式0不加密1私钥2公钥',canComment:'开放评论',status:'0草稿1发布2取消发布',isStorageDir:'是否存到硬盘',branchId:'机构编号'} **/ - -//普通查询 条件之间and关系 -export const listArchive = params => { return axios.get(`${base}/mdp/arc/archive/list`, { params: params }); }; -export const getOneArchive = params => { return axios.get(`${base}/mdp/arc/archive/one`, { params: params }); }; +//普通查询 条件之间and关系 +export const listArchive = params => { + return axios.get(`${base}/mdp/arc/archive/list`, { + params: params + }); +}; + +export const getNew = params => { + return axios.get(`${base}/archive/listNews`, { + params: params + }); +}; + +//常见问题 +export const getNorQuestions = params => { + return axios.get(`${base}/mdp/arc/aq/aqFaq/list`, { + params: params + }); +}; + +export const getOneArchive = params => { + return axios.get(`${base}/mdp/arc/archive/one`, { + params: params + }); +}; //模糊查询档案信息表 条件之间or关系 //export const listArchiveKey = params => { return axios.get(`${base}/mdp/arc/archive/listKey`, { params: params }); }; //删除一条档案信息表 params={id:'主键 主键'} -export const delArchive = params => { return axios.post(`${base}/mdp/arc/archive/del`,params); }; +export const delArchive = params => { + return axios.post(`${base}/mdp/arc/archive/del`, params); +}; //批量删除档案信息表 params=[{id:'主键 主键'}] -export const batchDelArchive = params => { return axios.post(`${base}/mdp/arc/archive/batchDel`, params); }; +export const batchDelArchive = params => { + return axios.post(`${base}/mdp/arc/archive/batchDel`, params); +}; //修改一条档案信息表记录 -export const editArchive = params => { return axios.post(`${base}/mdp/arc/archive/edit`, params); }; +export const editArchive = params => { + return axios.post(`${base}/mdp/arc/archive/editSomeFields`, params); +}; //新增一条档案信息表 -export const addArchive = params => { return axios.post(`${base}/mdp/arc/archive/add`, params); }; +export const addArchive = params => { + return axios.post(`${base}/mdp/arc/archive/add`, params); +}; //打开评论 -export const openComment = params => { return axios.post(`${base}/mdp/arc/archive/comment/open`, params); }; +export const openComment = params => { + return axios.post(`${base}/mdp/arc/archive/comment/open`, params); +}; //关闭评论 -export const closeComment = params => { return axios.post(`${base}/mdp/arc/archive/comment/close`, params); }; +export const closeComment = params => { + return axios.post(`${base}/mdp/arc/archive/comment/close`, params); +}; //发布 -export const publish = params => { return axios.post(`${base}/mdp/arc/archive/publish`, params); }; +export const publish = params => { + return axios.post(`${base}/mdp/arc/archive/publish`, params); +}; //取消发布 -export const unPublish = params => { return axios.post(`${base}/mdp/arc/archive/unpublish`, params); }; +export const unPublish = params => { + return axios.post(`${base}/mdp/arc/archive/unpublish`, params); +}; //新增一个 -export const addWorkflowArchive = params => { return axios.post(`${base}/mdp/arc/archive/add/workflow`, params); }; - -//批量修改某些字段 -export const editSomeFieldsArchive = params => { return axios.post(`${base}/mdp/arc/archive/editSomeFields`, params); }; - - - -/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ -//初始化页面上的字典 -export const initDicts = (that) => { - var itemCodes=['categoryType','archiveStatus'];//在此添加要加载的字典 如['sex','grade','lvl'] - if(itemCodes.length>0){ - initSimpleDicts('all',itemCodes).then(res=>{ - Object.assign(that.dicts,res.data.data) - }); - } -}; \ No newline at end of file +export const addWorkflowArchive = params => { + return axios.post(`${base}/mdp/arc/archive/add/workflow`, params); +}; diff --git a/src/api/mdp/arc/category.js b/src/api/mdp/arc/category.js index ebf0f84b..63bd595c 100644 --- a/src/api/mdp/arc/category.js +++ b/src/api/mdp/arc/category.js @@ -25,4 +25,70 @@ export const batchDelCategory = params => { return axios.post(`${base}/mdp/arc/c export const editCategory = params => { return axios.post(`${base}/mdp/arc/category/edit`, params); }; //新增一个 -export const addCategory = params => { return axios.post(`${base}/mdp/arc/category/add`, params); }; \ No newline at end of file +export const addCategory = params => { return axios.post(`${base}/mdp/arc/category/add`, params); }; + +//将列表数据转化为树状结构数据 +export const translateDataToTree = (data2) => { + + var data=JSON.parse(JSON.stringify(data2)); + + let parents = data.filter(value =>{ + //如果我的上级为空,则我是最上级 + if(value.pid == 'undefined' || value.pid == null || value.pid == ''||value.pid=='0'||value.pid=='C0'){ + return true; + + //如果我的上级不在列表中,我作为最上级 + }else if(data.some(i=>value.pid==i.id)){ + return false; + }else { + return true + } + + }) + let children = data.filter(value =>{ + if(data.some(i=>value.pid==i.id)){ + return true; + }else{ + return false; + } + }) + let translator = (parents, children) => { + parents.forEach((parent) => { + children.forEach((current, index) => { + if (current.pid === parent.id) { + let temp = JSON.parse(JSON.stringify(children)) + temp.splice(index, 1) + translator([current], temp) + typeof parent.children !== 'undefined' ? parent.children.push(current) : parent.children = [current] + } + } + ) + } + ) + } + + translator(parents, children) + + return parents +}; + + + +export const initCates = (callback) => { + var ckey='forum-category-list' + var categorysStr=localStorage.getItem(ckey); + if(!categorysStr||categorysStr=='null' || categorysStr=='undefined'){ + listTreeCategory({categoryType:'5'}).then(res=>{ + var tips = res.data.tips; + if(tips.isOk){ + localStorage.setItem(ckey,JSON.stringify(res.data.data)) + callback(res.data.data) + }else{ + this.$message.error(tips.isOk) + } + + }) + }else{ + callback(JSON.parse(categorysStr)) + } + }; \ No newline at end of file diff --git a/src/api/mdp/arc/image.js b/src/api/mdp/arc/image.js index fbed7413..480a0827 100644 --- a/src/api/mdp/arc/image.js +++ b/src/api/mdp/arc/image.js @@ -31,13 +31,4 @@ export const addImage = params => { return axios.post(`${base}/mdp/arc/image/add //获取图片分类名 export const listTags = params => { return axios.get(`${base}/mdp/arc/image/listTags`, params); }; -export const uploadBase64 = params => { return axios.post(`${base}/mdp/arc/image/upload/base64`, params); }; - -export const upload = params=>{ - - return axios.post(`${base}/mdp/arc/image/upload`, params, { - headers: { - 'Content-Type': 'multipart/form-data' - } - }) -} \ No newline at end of file +export const uploadBase64 = params => { return axios.post(`${base}/mdp/arc/image/upload/base64`, params); }; \ No newline at end of file diff --git a/src/api/mdp/arc/tag.js b/src/api/mdp/arc/tag.js index ad27833a..eb7963ae 100644 --- a/src/api/mdp/arc/tag.js +++ b/src/api/mdp/arc/tag.js @@ -33,4 +33,51 @@ export const addTag = params => { return axios.post(`${base}/mdp/arc/tag/add`, p export const getAllTag = params => { return axios.get(`${base}/mdp/arc/tag/getAllTag`, { params: params }); }; //新增一条arc_tag -export const deleteTagCategory= params => { return axios.post(`${base}/mdp/arc/tag/deleteTagCategory`, params); }; \ No newline at end of file +export const deleteTagCategory= params => { return axios.post(`${base}/mdp/arc/tag/deleteTagCategory`, params); }; + +//将tags转换成树状结构 +export const translateTagsToTree = data => { + var tags=JSON.parse(JSON.stringify(data)) + if(!tags||tags.length<=0){ + return [] + } + var cates={}; + tags.forEach(k=>{ + if(k.categoryId && k.categoryName){ + cates[k.categoryId]={id:k.categoryId,name:k.categoryName,children:[],disabled:true} + } + }) + tags.forEach(k=>{ + k.name=k.tagName + k.id=k.tagId + k.disabled=false + var cate=cates[k.categoryId] + if(cate){ + cate.children.push(k) + } + + }) + var datas=[] + for(let key in cates){ + datas.push(cates[key]) + } + return datas; +}; + +export const initTags = callback => { + var tagkey='forum-tags-list' + var tagStr=localStorage.getItem(tagkey); + if(!tagStr||tagStr=='null' || tagStr=='undefined'){ + getAllTag().then(res=>{ + var tips = res.data.tips; + if(tips.isOk){ + localStorage.setItem(tagkey,JSON.stringify(res.data.data)) + callback(res.data.data) + }else{ + this.$message.error(tips.isOk) + } + }) + }else{ + callback(JSON.parse(tagStr)) + } + }; \ No newline at end of file diff --git a/src/api/mdp/sys/user.js b/src/api/mdp/sys/user.js index 6309e90a..815afe76 100644 --- a/src/api/mdp/sys/user.js +++ b/src/api/mdp/sys/user.js @@ -1,6 +1,7 @@ import axios from '@/utils/request' import config from '@/common/config' +import { CodeToText, TextToCode } from 'element-china-area-data'; let base=config.getSysBasePath(); @@ -12,6 +13,12 @@ let base=config.getSysBasePath(); //普通查询 条件之间and关系 export const listUser = params => { return axios.get(`${base}/mdp/sys/user/list`, { params: params }); }; + +//免登录查询用户数据 +export const listCrowdUser = params => { return axios.get(`${base}/mdp/sys/user/crowd/list`, { params: params }); }; + +//查询用户详情 +export const detailNoauthUser = params => { return axios.get(`${base}/mdp/sys/user/noauth/detail`, { params: params }); }; export const listUserNames = params => { return axios.get(`${base}/mdp/sys/user/listUserNames`, { params: params }); }; export const selectlistKey= params => { return axios.get(`${base}/mdp/sys/user/selectlistKey`, { params: params }); }; @@ -29,6 +36,10 @@ export const batchDelUser = params => { return axios.post(`${base}/mdp/sys/user/ //修改一条用户表记录 export const editUser = params => { return axios.post(`${base}/mdp/sys/user/edit`, params); }; + +//修改某个字段 +export const editSomeFieldsUser = params => { return axios.post(`${base}/mdp/sys/user/editSomeFields`, params); }; + //重置管理人员帮别人重置密码 export const resetPasswordByAdmin = params => { return axios.post(`${base}/sys/user/resetPassword`, params); }; @@ -53,4 +64,111 @@ export const setUsersUnBranchAdm = params => { return axios.post(`${base}/sys/us //更新当前登录着的头像 export const editHeadimgurl = params => { return axios.post(`${base}/sys/user/editHeadimgurl`, params); }; +export const formatGradeLogo = item => { + if (item.gradeId == '2') { + item.gradeName = '学士'; + item.gradeLogo = require('../../../../static/images/ability-level2.png'); + } else if (item.gradeId == '3') { + item.gradeName = '进士'; + item.gradeLogo = require('../../../../static/images/ability-level3.png'); + } else if (item.gradeId == '4') { + item.gradeName = '大师'; + item.gradeLogo = require('../../../../static/images/ability-level4.png'); + } else if (item.gradeId == '5') { + item.gradeName = '宗师'; + item.gradeLogo = require('../../../../static/images/ability-level5.png'); + } else if (item.gradeId == '6') { + item.gradeName = '天师'; + item.gradeLogo = require('../../../../static/images/ability-level6.png'); + } else if (item.gradeId == '7') { + item.gradeName = '神师'; + item.gradeLogo = require('../../../../static/images/ability-level7.png'); + }else { + item.gradeName = '学徒'; + item.gradeLogo = require('../../../../static/images/ability-level1.png'); + } + return item +} + +export const formatInterestsLogo = item => { + + if (item.ilvlId == '2') { + item.ilvlName = '青铜会员'; + item.ilvlLogo = require('../../../../static/images/mem-level1.png'); + } else if (item.ilvlId == '3') { + item.ilvlName = '白银会员'; + item.ilvlLogo = require('../../../../static/images/mem-level2.png'); + } else if (item.ilvlId == '4') { + item.ilvlName = '黄金会员'; + item.ilvlLogo = require('../../../../static/images/mem-level3.png'); + } else if (item.ilvlId == '5') { + item.ilvlName = '紫金会员'; + item.ilvlLogo = require('../../../../static/images/mem-level4.png'); + } else if (item.ilvlId == '6') { + item.ilvlName = '皇冠会员'; + item.ilvlLogo = require('../../../../static/images/mem-level5.png'); + } else { + item.ilvlId = '1'; + item.ilvlName = '普通会员'; + item.ilvlLogo = require('../../../../static/images/mem-level6.png'); + } + return item +} + +export const formatGuardLogo = item => { + if (item.guardId == '3') { + item.guardName = '金牌三保用户'; + item.guardLogo = require('../../../../static/images/is-gua.png'); + } else if (item.guardId == '2') { + item.guardName = '银牌三保用户'; + item.guardLogo = require('../../../../static/images/is-gua.png'); + } else if (item.guardId == '1') { + item.guardName = '铜牌三保用户'; + item.guardLogo = require('../../../../static/images/is-gua.png'); + } else { + item.guardName = '非三保用户'; + item.guardLogo = require('../../../../static/images/not-gua.png'); + } + return item +} +export const formatCreditLogo = item => { + if (item.creditId == 'D') { + item.creditName = 'D级信用'; + item.creditLogo = require('../../../../static/images/credit-level7.png'); + } else if (item.creditId == 'C') { + item.creditName = 'C级信用'; + item.creditLogo = require('../../../../static/images/credit-level6.png'); + } else if (item.creditId == 'B') { + item.creditName = 'B级信用'; + item.creditLogo = require('../../../../static/images/credit-level5.png'); + } else if (item.creditId == 'A') { + item.creditName = 'A级信用'; + item.creditLogo = require('../../../../static/images/credit-level4.png'); + } else if (item.creditId == 'S') { + item.creditName = 'S级信用'; + item.creditLogo = require('../../../../static/images/credit-level3.png'); + } else if (item.creditId == 'SS') { + item.creditName = 'SS级信用'; + item.creditLogo = require('../../../../static/images/credit-level2.png'); + } else if (item.creditId == 'SSS') { + item.creditName = 'SSS级信用'; + item.creditLogo = require('../../../../static/images/credit-level1.png'); + } else { + item.creditId = 'D'; + item.creditName = 'D级信用'; + item.creditLogo = require('../../../../static/images/credit-level7.png'); + } + return item; +} +export const formatUser = item => { + item.province = item.province ? CodeToText[item.province] : ''; + item.city = item.city ? CodeToText[item.city] : ''; + formatGuardLogo(item); + formatGradeLogo(item); + formatInterestsLogo(item); + formatCreditLogo(item); + return item + +} + diff --git a/src/api/xm/core/xmTask.js b/src/api/xm/core/xmTask.js index 91abe2e4..58ffce14 100644 --- a/src/api/xm/core/xmTask.js +++ b/src/api/xm/core/xmTask.js @@ -86,7 +86,11 @@ export const initDicts = (that) => { that.dicts['marketState']=[{id:'0',name:'关闭'},{id:'1',name:'待付款'},{id:'2',name:'已开通'},{id:'3',name:'已过期'}] if(itemCodes.length>0){ initSimpleDicts('all',itemCodes).then(res=>{ - Object.assign(that.dicts,res.data.data) + if(that.dicts){ + Object.assign(that.dicts,res.data.data) + }else{ + that.dicts=res.data.data + } }); } }; @@ -99,6 +103,155 @@ export const initDicts = (that) => { return res; }; + export const logBrowseTimes=(taskId)=>{ + /** + * 登记浏览量 + */ + var taskReadNumsStr=localStorage.getItem('task-read-nums') + var date=new Date(); + var taskReadNums={ltime:date.getTime(),data:[]} + if(taskReadNumsStr){ + taskReadNums=JSON.parse(taskReadNumsStr) + } + taskReadNums.data.push({ taskId: taskId,nums:1 }) + localStorage.setItem('task-read-nums',JSON.stringify(taskReadNums)); + var ntime=date.getTime(); + if((ntime-taskReadNums.ltime)>=10*60*1000){ + localStorage.removeItem('task-read-nums'); + upBrowseTimes(taskReadNums.data); + + } + //upBrowseTimes(taskReadNums.data); +} +export const formatTask = taskMsg => { + taskMsg.gradeId=taskMsg.capaLvls; + taskMsg.creditId=taskMsg.creditId; + taskMsg.guardId=taskMsg.supRequires; + taskMsg.ilvlId=taskMsg.interestLvls; + formatCreditLogo(taskMsg) + formatGradeLogo(taskMsg) + formatGuardLogo(taskMsg) + formatInterestsLogo(taskMsg) + taskMsg.skills = taskMsg.taskSkillNames ? taskMsg.taskSkillNames.split(',') : []; +}; + + + +export const formatAtRemark = at => { +if(!at){ + return "请输入预算金额" +} +if(at<10000){ + return "" +} +if(at<10000){ + return "约 " +(at) +" 元" +}else if(at<1000000){ + return "约 " +(at/10000).toFixed(2)+" 万元" +}else if(at<1000000){ + return "约 " +(at/10000).toFixed(2)+" 万元" +}else if(at<1000000){ + return "约 " +(at/10000).toFixed(2)+" 万元" +}else if(at>=1000000){ + return "约 " +(at/1000000).toFixed(2)+" 百万元" +} +}; + + +export const formatWorkloadRemark = workload => { +if(!workload){ + return "请输入估工时" +} + +if(workload<8){ + return "" +} +if(workload<1760){ + return "约 " +(workload/8).toFixed(1)+" 人天 (1人天=8人时)" +}else if(workload<1760*12){ + return "约 " +(workload/(1760)).toFixed(1)+" 人月 (1人月=22人天)" +}else if(workload>=1760*12){ + return "约 " +(workload/1760*12).toFixed(2)+" 人年 (1人年=12人月)" +} + +}; + +//更新任务的某些字段 +export const editSomeFieldsTask = params => { + return axios.post(`${base}/xm/core/xmTask/editSomeFields`, params); +}; + +export const getTaskState= task => { + let obj = { + type: '', + state: '', + desc: '', + }; + if (task.bidStep == '0') { + obj = { + type: 'info', + state: '草稿', + desc: '仅自己可见可编辑', + }; + return obj; + } else if (task.bidStep == '1') { + obj = { + type: 'info', + state: '发布需求', + desc: '服务商可以搜素,但不可以投标。', + }; + return obj; + } else if (task.bidStep == '2') { + obj = { + type: 'warning', + state: '投标进行中', + desc: '投标截止时间:'+((task.bidEtime ? task.bidEtime.slice(0,10) : '')||'未设置'), + }; + return obj; + } else if (task.bidStep == '3') { + obj = { + type: 'warning', + state: '待选标', + desc: '投标截止时间:'+((task.bidEtime ? task.bidEtime.slice(0,10) : '')||'未设置'), + }; + return obj; + } else if (task.bidStep == '4') { + obj = { + type: 'warning', + state: '托管赏金', + desc: '甲方将任务赏金拓管到平台', + }; + return obj; + } else if (task.bidStep == '5') { + obj = { + type: 'danger', + state: '工作中', + desc: '服务商工作中', + }; + return obj; + } else if (task.bidStep == '6') { + obj = { + type: 'success', + state: '确认验收', + desc: '甲方确认验收完毕,付款完毕', + }; + return obj; + } else if (task.bidStep == '7') { + obj = { + type: 'success', + state: '确认验收', + desc: '甲方确认验收完毕,付款完毕', + }; + return obj; + } else { + obj = { + type: 'danger', + state: '未知', + desc: '无法获取任务状态', + }; + return obj; + } +}; diff --git a/src/permission.js b/src/permission.js index 205ac83d..2d15d3bf 100644 --- a/src/permission.js +++ b/src/permission.js @@ -7,24 +7,62 @@ import { getToken,setToken } from '@/utils/auth' // getToken from cookie NProgress.configure({ showSpinner: false })// NProgress Configuration + +function getQueryVariable(variable,url){ + var query =url; + if(url==null || url==undefined || url==''){ + query=window.location.href; + + } + //alert(query); + var query2=query.split("?"); + if(query2.length>1){ + query=query2[1]; + }else{ + query="" + return null; + } + + var vars = query.split("&"); + for (var i=0;i role.roleid==='superAdmin')) return true // admin permission passed directly - return roles.some(role => permissionRoles.indexOf(role) >= 0) + return roles.some(role => permissionRoles.indexOf(role.roleid) >= 0) } -const whiteList = ['/login', '/authredirect','/changeEmailStepOne','/changeEmailStepTwo']// no redirect whitelist +//免登录白名单 +const whiteList = [ +] router.beforeEach((to, from, next) => { - NProgress.start() // start progress bar - var outUrl=""; - if (whiteList.indexOf(to.path) !== -1) { //在免登录白名单,直接进入 - next() - NProgress.done() //如果当前页面为登录页,则在每个afterEach钩子后都不会触发,因此请手动处理它 - return; + NProgress.start() // start progress bar + debugger; + if(to.path==='/' || to.path.indexOf('/404')>=0 || to.path.indexOf('/401')>=0 || to.path.indexOf('/login')>=0 ||to.path.indexOf('/logout')>=0){ + next() + NProgress.done() + return; } - if(to.meta.openTab==true && to.meta.outUrl){ + if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 + next() + NProgress.done() + return; + } + var outUrl=""; + if(to.meta && to.meta.openTab==true && to.meta.outUrl){ outUrl=to.meta.outUrl; if(to.query){ var querys=''; @@ -63,24 +101,30 @@ router.beforeEach((to, from, next) => { NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it return; } - if(to!=null && to.fullPath!=null){ - var accessToken=getQueryVariable("accessToken",to.fullPath); - if(accessToken!=null){ - setToken(accessToken); - } - } + if (!to.meta || !to.meta.roles) { + next()// + NProgress.done() + return; + } if (getToken()) { // determine if there has token /* has token*/ - if (to.path === '/login') { + if (to.path.indexOf('/login')>=0) { next()// NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it + return; } else { if(store.getters.isLoadOk==false ){ store.dispatch('GetUserInfo').then(res=>{ if(!res.data.tips.isOk){ store.dispatch('FedLogOut').then(() => { Message.error('请重新登陆') - next({ path: '/login' }) + if(accessToken && accessToken.length>0){ + //window.open('/#/login',null,null,true) + next({ path: '/login',replace:true }) + }else{ + next({ path: '/login' }) + } + return }) }else{ store.dispatch('GenerateRoutes', {roles:store.getters.roles ,menus:store.getters.myMenus} ).then(() => { // 根据roles权限生成可访问的路由表 @@ -89,7 +133,13 @@ router.beforeEach((to, from, next) => { }).catch(() => { store.dispatch('FedLogOut').then(() => { Message.error('路由处理出错,请重新登陆') - next({ path: '/login' }) + if(accessToken && accessToken.length>0){ + //window.open('/#/login',null,null,true) + next({ path: '/login',replace:true }) + }else{ + next({ path: '/login' }) + } + return }) }) } @@ -99,18 +149,28 @@ router.beforeEach((to, from, next) => { store.dispatch('GenerateRoutes', {roles:store.getters.roles ,menus:store.getters.myMenus} ).then(() => { // 根据roles权限生成可访问的路由表 router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表 next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record - }).catch(() => { + return + }).catch(() => { store.dispatch('FedLogOut').then(() => { Message.error('路由处理出错,请重新登陆') - next({ path: '/login' }) + if(accessToken && accessToken.length>0){ + //window.open('/#/login',null,null,true) + + next({ path: '/login',replace:true }) + }else{ + next({ path: '/login' }) + } + return }) }) } else { // 没有动态改变权限的需求可直接next() 删除下方权限判断 ↓ - if (hasPermission(store.getters.roles, to.meta.roles)) { + if (!to.meta || !to.meta.roles || !store.getters.roles || hasPermission(store.getters.roles, to.meta.roles)) { next()// + return } else { next({ path: '/401', replace: true, query: { noGoBack: true }}) + return } // 可删 ↑ } @@ -119,55 +179,76 @@ router.beforeEach((to, from, next) => { /* has no token*/ if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 next() + return } else { - next('/login') // 否则全部重定向到登录页 + next({path:'/login'}) // 否则全部重定向到登录页 NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it + return } } }) -function getQueryVariable(variable,url){ - var query =url; - if(url==null || url==undefined || url==''){ - query=window.location.href; - - } - //alert(query); - var query2=query.split("?"); - if(query2.length>1){ - query=query2[1]; - }else{ - query="" - return null; - } - - var vars = query.split("&"); - for (var i=0;i 0){ - indexPath=url.substring(indexOf+2) - sessionStorage.setItem("index-path",indexPath); + indexPath=url.substring(indexOf+1) + sessionStorage.setItem(indexName,indexPath); }else{ - sessionStorage.setItem("index-path",null); + sessionStorage.removeItem(indexName); } } } -setIndexPath(); -var accessToken=getQueryVariable('accessToken'); -if(accessToken!=null){ +setIndexPath(); +if(accessToken && accessToken.length>10){ //alert(access_token); - setToken(accessToken); + setToken(accessToken); + store.dispatch('GetUserInfo').then(res=>{ + if(!res.data.tips.isOk){ + store.dispatch('FedLogOut').then(() => { + Message.error('请重新登陆') + newWin('/#/login') + return + }) + }else{ + store.dispatch('GenerateRoutes', {roles:store.getters.roles ,menus:store.getters.myMenus} ).then(() => { // 根据roles权限生成可访问的路由表 + router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表 + + var indexName="index-path-"+process.env.CONTEXT; + var indexPath=sessionStorage.getItem(indexName); + if(indexPath && indexPath.length>0){ + newWin('/#'+indexPath) + }else{ + newWin('/') + } + }).catch(() => { + store.dispatch('FedLogOut').then(() => { + Message.error('路由处理出错,请重新登陆') + newWin('/#/login') + return + }) + }) + } + + }); } router.afterEach(() => { NProgress.done() // finish progress bar diff --git a/src/router/index.js b/src/router/index.js index e7e50e72..1889f6cd 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -52,7 +52,7 @@ export const constantRouterMap = [ path: 'dashboard', component: _import('xm/XmOverview'), name: '首页', - meta: { title: '首页', icon: 'home-page', noCache: true } + meta: { title: '首页', icon: 'home-page', noCache: true ,roles:["user"]} }, // { // path: 'updateUserInfo', diff --git a/src/store/modules/user.js b/src/store/modules/user.js index b576e41b..c815c64f 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,6 +1,10 @@ import { doLoginByUserloginid, logout, getUserInfo } from '@/api/login' import { getToken, setToken, removeToken,getCacheUserInfo,setCacheUserInfo,removeCacheUserInfo} from '@/utils/auth' +import { + formatUser +} from '@/api/mdp/sys/user.js' + const user = { state: { userInfo: { @@ -122,6 +126,7 @@ const user = { } }); } + formatUser(userInfo) commit('SET_USER_INFO', userInfo) commit('SET_ROLES', roles) commit('SET_QXS', data.qxs) @@ -199,6 +204,8 @@ const user = { d.branchName=branch.branchName } }) + + formatUser(userInfo) commit('SET_MYBRANCHS',branchs); commit('SET_MYDEPTS',depts); commit('SET_MYLOCATIONS',locations); diff --git a/src/views/layout/components/AppMain.vue b/src/views/layout/components/AppMain.vue index cbc1c0fe..2bbf357d 100644 --- a/src/views/layout/components/AppMain.vue +++ b/src/views/layout/components/AppMain.vue @@ -1,10 +1,9 @@ diff --git a/src/views/xm/core/xmProject/index.vue b/src/views/xm/core/xmProject/index.vue new file mode 100644 index 00000000..be253742 --- /dev/null +++ b/src/views/xm/core/xmProject/index.vue @@ -0,0 +1,436 @@ + + + + + diff --git a/src/views/xm/core/xmProject/top-nav.vue b/src/views/xm/core/xmProject/top-nav.vue new file mode 100644 index 00000000..7be1364f --- /dev/null +++ b/src/views/xm/core/xmProject/top-nav.vue @@ -0,0 +1,876 @@ + + + + + diff --git a/static/images/ability-level1.png b/static/images/ability-level1.png new file mode 100644 index 00000000..36fd87e5 Binary files /dev/null and b/static/images/ability-level1.png differ diff --git a/static/images/ability-level2.png b/static/images/ability-level2.png new file mode 100644 index 00000000..50392fcc Binary files /dev/null and b/static/images/ability-level2.png differ diff --git a/static/images/ability-level3.png b/static/images/ability-level3.png new file mode 100644 index 00000000..a188a06c Binary files /dev/null and b/static/images/ability-level3.png differ diff --git a/static/images/ability-level4.png b/static/images/ability-level4.png new file mode 100644 index 00000000..986fcbca Binary files /dev/null and b/static/images/ability-level4.png differ diff --git a/static/images/ability-level5.png b/static/images/ability-level5.png new file mode 100644 index 00000000..8ce4b521 Binary files /dev/null and b/static/images/ability-level5.png differ diff --git a/static/images/ability-level6.png b/static/images/ability-level6.png new file mode 100644 index 00000000..1b5f046d Binary files /dev/null and b/static/images/ability-level6.png differ diff --git a/static/images/ability-level7.png b/static/images/ability-level7.png new file mode 100644 index 00000000..8cd8f9b8 Binary files /dev/null and b/static/images/ability-level7.png differ diff --git a/static/images/ability-level8.png b/static/images/ability-level8.png new file mode 100644 index 00000000..7655ce28 Binary files /dev/null and b/static/images/ability-level8.png differ diff --git a/static/images/account-cancel1.png b/static/images/account-cancel1.png new file mode 100644 index 00000000..b0f42d6e Binary files /dev/null and b/static/images/account-cancel1.png differ diff --git a/static/images/account-cancel2.png b/static/images/account-cancel2.png new file mode 100644 index 00000000..f5157e5a Binary files /dev/null and b/static/images/account-cancel2.png differ diff --git a/static/images/agile-development.png b/static/images/agile-development.png new file mode 100644 index 00000000..3320fa61 Binary files /dev/null and b/static/images/agile-development.png differ diff --git a/static/images/alipay.png b/static/images/alipay.png new file mode 100644 index 00000000..c7b5c592 Binary files /dev/null and b/static/images/alipay.png differ diff --git a/static/images/arrow.png b/static/images/arrow.png new file mode 100644 index 00000000..734f3fb2 Binary files /dev/null and b/static/images/arrow.png differ diff --git a/static/images/authentication1.png b/static/images/authentication1.png new file mode 100644 index 00000000..353907df Binary files /dev/null and b/static/images/authentication1.png differ diff --git a/static/images/authentication2.png b/static/images/authentication2.png new file mode 100644 index 00000000..1d5684ff Binary files /dev/null and b/static/images/authentication2.png differ diff --git a/static/images/authentication3.png b/static/images/authentication3.png new file mode 100644 index 00000000..e721444d Binary files /dev/null and b/static/images/authentication3.png differ diff --git a/static/images/authentication4.png b/static/images/authentication4.png new file mode 100644 index 00000000..1df2c67b Binary files /dev/null and b/static/images/authentication4.png differ diff --git a/static/images/bank1.png b/static/images/bank1.png new file mode 100644 index 00000000..9e214221 Binary files /dev/null and b/static/images/bank1.png differ diff --git a/static/images/bank2.png b/static/images/bank2.png new file mode 100644 index 00000000..058f0bae Binary files /dev/null and b/static/images/bank2.png differ diff --git a/static/images/bank3.png b/static/images/bank3.png new file mode 100644 index 00000000..d0de1fa6 Binary files /dev/null and b/static/images/bank3.png differ diff --git a/static/images/bank4.png b/static/images/bank4.png new file mode 100644 index 00000000..ae3ba24a Binary files /dev/null and b/static/images/bank4.png differ diff --git a/static/images/bg.png b/static/images/bg.png new file mode 100644 index 00000000..5968519b Binary files /dev/null and b/static/images/bg.png differ diff --git a/static/images/bid.png b/static/images/bid.png new file mode 100644 index 00000000..db11e2d3 Binary files /dev/null and b/static/images/bid.png differ diff --git a/static/images/bind-email.png b/static/images/bind-email.png new file mode 100644 index 00000000..28a346aa Binary files /dev/null and b/static/images/bind-email.png differ diff --git a/static/images/bind-phone.png b/static/images/bind-phone.png new file mode 100644 index 00000000..bf313a70 Binary files /dev/null and b/static/images/bind-phone.png differ diff --git a/static/images/card-authen.png b/static/images/card-authen.png new file mode 100644 index 00000000..a10351ad Binary files /dev/null and b/static/images/card-authen.png differ diff --git a/static/images/card-logo.png b/static/images/card-logo.png new file mode 100644 index 00000000..96bbefb0 Binary files /dev/null and b/static/images/card-logo.png differ diff --git a/static/images/check-green.png b/static/images/check-green.png new file mode 100644 index 00000000..0cdefb76 Binary files /dev/null and b/static/images/check-green.png differ diff --git a/static/images/checked.png b/static/images/checked.png new file mode 100644 index 00000000..343d3e94 Binary files /dev/null and b/static/images/checked.png differ diff --git a/static/images/checking.png b/static/images/checking.png new file mode 100644 index 00000000..82a04377 Binary files /dev/null and b/static/images/checking.png differ diff --git a/static/images/code1.png b/static/images/code1.png new file mode 100644 index 00000000..551930c7 Binary files /dev/null and b/static/images/code1.png differ diff --git a/static/images/code2.png b/static/images/code2.png new file mode 100644 index 00000000..0549d0b6 Binary files /dev/null and b/static/images/code2.png differ diff --git a/static/images/collaborative-application.png b/static/images/collaborative-application.png new file mode 100644 index 00000000..bb0cf56e Binary files /dev/null and b/static/images/collaborative-application.png differ diff --git a/static/images/collect-star.png b/static/images/collect-star.png new file mode 100644 index 00000000..7ae0a323 Binary files /dev/null and b/static/images/collect-star.png differ diff --git a/static/images/collect.png b/static/images/collect.png new file mode 100644 index 00000000..ceacebbd Binary files /dev/null and b/static/images/collect.png differ diff --git a/static/images/collected-star.png b/static/images/collected-star.png new file mode 100644 index 00000000..6eccf9a1 Binary files /dev/null and b/static/images/collected-star.png differ diff --git a/static/images/com-calculate.png b/static/images/com-calculate.png new file mode 100644 index 00000000..ffb89270 Binary files /dev/null and b/static/images/com-calculate.png differ diff --git a/static/images/community-bg.png b/static/images/community-bg.png new file mode 100644 index 00000000..00301d49 Binary files /dev/null and b/static/images/community-bg.png differ diff --git a/static/images/community-forum-bg.png b/static/images/community-forum-bg.png new file mode 100644 index 00000000..7a186709 Binary files /dev/null and b/static/images/community-forum-bg.png differ diff --git a/static/images/contact-to.png b/static/images/contact-to.png new file mode 100644 index 00000000..3b84f71c Binary files /dev/null and b/static/images/contact-to.png differ diff --git a/static/images/cooperation-bg.png b/static/images/cooperation-bg.png new file mode 100644 index 00000000..e3e8e9ec Binary files /dev/null and b/static/images/cooperation-bg.png differ diff --git a/static/images/cooperation-edit.png b/static/images/cooperation-edit.png new file mode 100644 index 00000000..91bcda83 Binary files /dev/null and b/static/images/cooperation-edit.png differ diff --git a/static/images/cooperation-form-bg.png b/static/images/cooperation-form-bg.png new file mode 100644 index 00000000..5b7adaea Binary files /dev/null and b/static/images/cooperation-form-bg.png differ diff --git a/static/images/cooperation-process1.png b/static/images/cooperation-process1.png new file mode 100644 index 00000000..c651887e Binary files /dev/null and b/static/images/cooperation-process1.png differ diff --git a/static/images/cooperation-process2.png b/static/images/cooperation-process2.png new file mode 100644 index 00000000..53269d2a Binary files /dev/null and b/static/images/cooperation-process2.png differ diff --git a/static/images/cooperation-process3.png b/static/images/cooperation-process3.png new file mode 100644 index 00000000..955e9e33 Binary files /dev/null and b/static/images/cooperation-process3.png differ diff --git a/static/images/cooperation-process4.png b/static/images/cooperation-process4.png new file mode 100644 index 00000000..239aaf1e Binary files /dev/null and b/static/images/cooperation-process4.png differ diff --git a/static/images/cooperation-process5.png b/static/images/cooperation-process5.png new file mode 100644 index 00000000..3cb2f846 Binary files /dev/null and b/static/images/cooperation-process5.png differ diff --git a/static/images/cooperation-process6.png b/static/images/cooperation-process6.png new file mode 100644 index 00000000..369272e4 Binary files /dev/null and b/static/images/cooperation-process6.png differ diff --git a/static/images/cooperation.png b/static/images/cooperation.png new file mode 100644 index 00000000..7db8fb4c Binary files /dev/null and b/static/images/cooperation.png differ diff --git a/static/images/cp1.png b/static/images/cp1.png new file mode 100644 index 00000000..e47dd99b Binary files /dev/null and b/static/images/cp1.png differ diff --git a/static/images/cp2.png b/static/images/cp2.png new file mode 100644 index 00000000..73d89799 Binary files /dev/null and b/static/images/cp2.png differ diff --git a/static/images/cp3.png b/static/images/cp3.png new file mode 100644 index 00000000..8019f7e4 Binary files /dev/null and b/static/images/cp3.png differ diff --git a/static/images/cp4.png b/static/images/cp4.png new file mode 100644 index 00000000..cd9d3b1a Binary files /dev/null and b/static/images/cp4.png differ diff --git a/static/images/cp5.png b/static/images/cp5.png new file mode 100644 index 00000000..e24ec674 Binary files /dev/null and b/static/images/cp5.png differ diff --git a/static/images/cp6.png b/static/images/cp6.png new file mode 100644 index 00000000..2c2adea3 Binary files /dev/null and b/static/images/cp6.png differ diff --git a/static/images/cp7.png b/static/images/cp7.png new file mode 100644 index 00000000..adc54855 Binary files /dev/null and b/static/images/cp7.png differ diff --git a/static/images/credit-amount.png b/static/images/credit-amount.png new file mode 100644 index 00000000..6a7fbf07 Binary files /dev/null and b/static/images/credit-amount.png differ diff --git a/static/images/credit-level1.png b/static/images/credit-level1.png new file mode 100644 index 00000000..9fd0ee26 Binary files /dev/null and b/static/images/credit-level1.png differ diff --git a/static/images/credit-level2.png b/static/images/credit-level2.png new file mode 100644 index 00000000..a32dad15 Binary files /dev/null and b/static/images/credit-level2.png differ diff --git a/static/images/credit-level3.png b/static/images/credit-level3.png new file mode 100644 index 00000000..8614831e Binary files /dev/null and b/static/images/credit-level3.png differ diff --git a/static/images/credit-level4.png b/static/images/credit-level4.png new file mode 100644 index 00000000..acfefba5 Binary files /dev/null and b/static/images/credit-level4.png differ diff --git a/static/images/credit-level5.png b/static/images/credit-level5.png new file mode 100644 index 00000000..0ccb7e94 Binary files /dev/null and b/static/images/credit-level5.png differ diff --git a/static/images/credit-level6.png b/static/images/credit-level6.png new file mode 100644 index 00000000..d710f180 Binary files /dev/null and b/static/images/credit-level6.png differ diff --git a/static/images/credit-level7.png b/static/images/credit-level7.png new file mode 100644 index 00000000..28637b95 Binary files /dev/null and b/static/images/credit-level7.png differ diff --git a/static/images/customer-service.png b/static/images/customer-service.png new file mode 100644 index 00000000..e3ad170d Binary files /dev/null and b/static/images/customer-service.png differ diff --git a/static/images/dashed.png b/static/images/dashed.png new file mode 100644 index 00000000..704eb8b8 Binary files /dev/null and b/static/images/dashed.png differ diff --git a/static/images/developer.png b/static/images/developer.png new file mode 100644 index 00000000..4775e914 Binary files /dev/null and b/static/images/developer.png differ diff --git a/static/images/dots.png b/static/images/dots.png new file mode 100644 index 00000000..a97e11d3 Binary files /dev/null and b/static/images/dots.png differ diff --git a/static/images/e-bg.png b/static/images/e-bg.png new file mode 100644 index 00000000..98edd6d9 Binary files /dev/null and b/static/images/e-bg.png differ diff --git a/static/images/effectiveness-analysis.png b/static/images/effectiveness-analysis.png new file mode 100644 index 00000000..b0710c4d Binary files /dev/null and b/static/images/effectiveness-analysis.png differ diff --git a/static/images/email-authen1.png b/static/images/email-authen1.png new file mode 100644 index 00000000..b0f42d6e Binary files /dev/null and b/static/images/email-authen1.png differ diff --git a/static/images/email-authen2.png b/static/images/email-authen2.png new file mode 100644 index 00000000..dd2b4193 Binary files /dev/null and b/static/images/email-authen2.png differ diff --git a/static/images/employer.png b/static/images/employer.png new file mode 100644 index 00000000..db6f4c07 Binary files /dev/null and b/static/images/employer.png differ diff --git a/static/images/enterprise-authen.png b/static/images/enterprise-authen.png new file mode 100644 index 00000000..9c846ce5 Binary files /dev/null and b/static/images/enterprise-authen.png differ diff --git a/static/images/equity.png b/static/images/equity.png new file mode 100644 index 00000000..e47d0424 Binary files /dev/null and b/static/images/equity.png differ diff --git a/static/images/file-logo.png b/static/images/file-logo.png new file mode 100644 index 00000000..96bbefb0 Binary files /dev/null and b/static/images/file-logo.png differ diff --git a/static/images/file-s-logo.png b/static/images/file-s-logo.png new file mode 100644 index 00000000..b77091d6 Binary files /dev/null and b/static/images/file-s-logo.png differ diff --git a/static/images/forum.png b/static/images/forum.png new file mode 100644 index 00000000..f87fc744 Binary files /dev/null and b/static/images/forum.png differ diff --git a/static/images/good.png b/static/images/good.png new file mode 100644 index 00000000..0683da42 Binary files /dev/null and b/static/images/good.png differ diff --git a/static/images/gou.png b/static/images/gou.png new file mode 100644 index 00000000..82a04377 Binary files /dev/null and b/static/images/gou.png differ diff --git a/static/images/grey-bg-ava.png b/static/images/grey-bg-ava.png new file mode 100644 index 00000000..e813351a Binary files /dev/null and b/static/images/grey-bg-ava.png differ diff --git a/static/images/grey-bg.png b/static/images/grey-bg.png new file mode 100644 index 00000000..2568e69c Binary files /dev/null and b/static/images/grey-bg.png differ diff --git a/static/images/help-bg.png b/static/images/help-bg.png new file mode 100644 index 00000000..05b39957 Binary files /dev/null and b/static/images/help-bg.png differ diff --git a/static/images/help2.png b/static/images/help2.png new file mode 100644 index 00000000..505ffbf3 Binary files /dev/null and b/static/images/help2.png differ diff --git a/static/images/help3.png b/static/images/help3.png new file mode 100644 index 00000000..48fd12d5 Binary files /dev/null and b/static/images/help3.png differ diff --git a/static/images/help4.png b/static/images/help4.png new file mode 100644 index 00000000..b724fd99 Binary files /dev/null and b/static/images/help4.png differ diff --git a/static/images/help5.png b/static/images/help5.png new file mode 100644 index 00000000..05398af8 Binary files /dev/null and b/static/images/help5.png differ diff --git a/static/images/help6.png b/static/images/help6.png new file mode 100644 index 00000000..42f1d7e3 Binary files /dev/null and b/static/images/help6.png differ diff --git a/static/images/help7.png b/static/images/help7.png new file mode 100644 index 00000000..880b82ab Binary files /dev/null and b/static/images/help7.png differ diff --git a/static/images/hot-bg.png b/static/images/hot-bg.png new file mode 100644 index 00000000..4e1a979a Binary files /dev/null and b/static/images/hot-bg.png differ diff --git a/static/images/hot-logo-selected.png b/static/images/hot-logo-selected.png new file mode 100644 index 00000000..3e9cd654 Binary files /dev/null and b/static/images/hot-logo-selected.png differ diff --git a/static/images/hot-logo.png b/static/images/hot-logo.png new file mode 100644 index 00000000..97cf9245 Binary files /dev/null and b/static/images/hot-logo.png differ diff --git a/static/images/hot-task.png b/static/images/hot-task.png new file mode 100644 index 00000000..494c082a Binary files /dev/null and b/static/images/hot-task.png differ diff --git a/static/images/hot.png b/static/images/hot.png new file mode 100644 index 00000000..c0776ddc Binary files /dev/null and b/static/images/hot.png differ diff --git a/static/images/information-center-bg.png b/static/images/information-center-bg.png new file mode 100644 index 00000000..521c02d2 Binary files /dev/null and b/static/images/information-center-bg.png differ diff --git a/static/images/information.png b/static/images/information.png new file mode 100644 index 00000000..d8152266 Binary files /dev/null and b/static/images/information.png differ diff --git a/static/images/invitation-bg.png b/static/images/invitation-bg.png new file mode 100644 index 00000000..6f678058 Binary files /dev/null and b/static/images/invitation-bg.png differ diff --git a/static/images/invitation-open.png b/static/images/invitation-open.png new file mode 100644 index 00000000..6ac753df Binary files /dev/null and b/static/images/invitation-open.png differ diff --git a/static/images/is-gua.png b/static/images/is-gua.png new file mode 100644 index 00000000..67b9a48f Binary files /dev/null and b/static/images/is-gua.png differ diff --git a/static/images/level-detail.png b/static/images/level-detail.png new file mode 100644 index 00000000..2adbb1bb Binary files /dev/null and b/static/images/level-detail.png differ diff --git a/static/images/level-star.png b/static/images/level-star.png new file mode 100644 index 00000000..317212df Binary files /dev/null and b/static/images/level-star.png differ diff --git a/static/images/level-table.png b/static/images/level-table.png new file mode 100644 index 00000000..c5c6c6d4 Binary files /dev/null and b/static/images/level-table.png differ diff --git a/static/images/level.png b/static/images/level.png new file mode 100644 index 00000000..a188a06c Binary files /dev/null and b/static/images/level.png differ diff --git a/static/images/login-bg.png b/static/images/login-bg.png new file mode 100644 index 00000000..f774616c Binary files /dev/null and b/static/images/login-bg.png differ diff --git a/static/images/login1.png b/static/images/login1.png new file mode 100644 index 00000000..6e87e4b6 Binary files /dev/null and b/static/images/login1.png differ diff --git a/static/images/login2.png b/static/images/login2.png new file mode 100644 index 00000000..de42b075 Binary files /dev/null and b/static/images/login2.png differ diff --git a/static/images/logo1.png b/static/images/logo1.png new file mode 100644 index 00000000..0cd1e948 Binary files /dev/null and b/static/images/logo1.png differ diff --git a/static/images/logo2.png b/static/images/logo2.png new file mode 100644 index 00000000..5acd86d5 Binary files /dev/null and b/static/images/logo2.png differ diff --git a/static/images/manage-tools-test.png b/static/images/manage-tools-test.png new file mode 100644 index 00000000..4c22cced Binary files /dev/null and b/static/images/manage-tools-test.png differ diff --git a/static/images/manage-tools-xnfx1.jpg b/static/images/manage-tools-xnfx1.jpg new file mode 100644 index 00000000..ee82c791 Binary files /dev/null and b/static/images/manage-tools-xnfx1.jpg differ diff --git a/static/images/manage-tools-xnfx2.png b/static/images/manage-tools-xnfx2.png new file mode 100644 index 00000000..70e6e162 Binary files /dev/null and b/static/images/manage-tools-xnfx2.png differ diff --git a/static/images/manage-tools-xtbg.png b/static/images/manage-tools-xtbg.png new file mode 100644 index 00000000..64b91fe7 Binary files /dev/null and b/static/images/manage-tools-xtbg.png differ diff --git a/static/images/manage-tools1.png b/static/images/manage-tools1.png new file mode 100644 index 00000000..44d0a51c Binary files /dev/null and b/static/images/manage-tools1.png differ diff --git a/static/images/manage-tools2.png b/static/images/manage-tools2.png new file mode 100644 index 00000000..b04ea966 Binary files /dev/null and b/static/images/manage-tools2.png differ diff --git a/static/images/map.jpg b/static/images/map.jpg new file mode 100644 index 00000000..f8cb9228 Binary files /dev/null and b/static/images/map.jpg differ diff --git a/static/images/max-level.png b/static/images/max-level.png new file mode 100644 index 00000000..8cd8f9b8 Binary files /dev/null and b/static/images/max-level.png differ diff --git a/static/images/max-member-level.png b/static/images/max-member-level.png new file mode 100644 index 00000000..e7d70f15 Binary files /dev/null and b/static/images/max-member-level.png differ diff --git a/static/images/mem-level1.png b/static/images/mem-level1.png new file mode 100644 index 00000000..63de78db Binary files /dev/null and b/static/images/mem-level1.png differ diff --git a/static/images/mem-level2.png b/static/images/mem-level2.png new file mode 100644 index 00000000..10e8b008 Binary files /dev/null and b/static/images/mem-level2.png differ diff --git a/static/images/mem-level3.png b/static/images/mem-level3.png new file mode 100644 index 00000000..1dd2316f Binary files /dev/null and b/static/images/mem-level3.png differ diff --git a/static/images/mem-level4.png b/static/images/mem-level4.png new file mode 100644 index 00000000..e7d70f15 Binary files /dev/null and b/static/images/mem-level4.png differ diff --git a/static/images/mem-level5.png b/static/images/mem-level5.png new file mode 100644 index 00000000..618a3055 Binary files /dev/null and b/static/images/mem-level5.png differ diff --git a/static/images/mem-level6.png b/static/images/mem-level6.png new file mode 100644 index 00000000..4f022a8b Binary files /dev/null and b/static/images/mem-level6.png differ diff --git a/static/images/memberLevel.png b/static/images/memberLevel.png new file mode 100644 index 00000000..10e8b008 Binary files /dev/null and b/static/images/memberLevel.png differ diff --git a/static/images/mobile-authen1.png b/static/images/mobile-authen1.png new file mode 100644 index 00000000..b0f42d6e Binary files /dev/null and b/static/images/mobile-authen1.png differ diff --git a/static/images/mobile-authen2.png b/static/images/mobile-authen2.png new file mode 100644 index 00000000..53675ef8 Binary files /dev/null and b/static/images/mobile-authen2.png differ diff --git a/static/images/more.png b/static/images/more.png new file mode 100644 index 00000000..3f374397 Binary files /dev/null and b/static/images/more.png differ diff --git a/static/images/msg.png b/static/images/msg.png new file mode 100644 index 00000000..4921cc65 Binary files /dev/null and b/static/images/msg.png differ diff --git a/static/images/my-gua.jpg b/static/images/my-gua.jpg new file mode 100644 index 00000000..372d40f2 Binary files /dev/null and b/static/images/my-gua.jpg differ diff --git a/static/images/my-service.png b/static/images/my-service.png new file mode 100644 index 00000000..4ba47896 Binary files /dev/null and b/static/images/my-service.png differ diff --git a/static/images/name-authen1.png b/static/images/name-authen1.png new file mode 100644 index 00000000..b0f42d6e Binary files /dev/null and b/static/images/name-authen1.png differ diff --git a/static/images/name-authen2.png b/static/images/name-authen2.png new file mode 100644 index 00000000..07f33111 Binary files /dev/null and b/static/images/name-authen2.png differ diff --git a/static/images/news.png b/static/images/news.png new file mode 100644 index 00000000..16ac5eb2 Binary files /dev/null and b/static/images/news.png differ diff --git a/static/images/newtest.png b/static/images/newtest.png new file mode 100644 index 00000000..f57aee86 Binary files /dev/null and b/static/images/newtest.png differ diff --git a/static/images/no-col-forum.png b/static/images/no-col-forum.png new file mode 100644 index 00000000..0ca09bc1 Binary files /dev/null and b/static/images/no-col-forum.png differ diff --git a/static/images/normal-question.png b/static/images/normal-question.png new file mode 100644 index 00000000..9d24f419 Binary files /dev/null and b/static/images/normal-question.png differ diff --git a/static/images/normal.png b/static/images/normal.png new file mode 100644 index 00000000..c2aad7dd Binary files /dev/null and b/static/images/normal.png differ diff --git a/static/images/not-gua.png b/static/images/not-gua.png new file mode 100644 index 00000000..ebe60dca Binary files /dev/null and b/static/images/not-gua.png differ diff --git a/static/images/notice.png b/static/images/notice.png new file mode 100644 index 00000000..2e0420b0 Binary files /dev/null and b/static/images/notice.png differ diff --git a/static/images/official-account.png b/static/images/official-account.png new file mode 100644 index 00000000..3e8f431e Binary files /dev/null and b/static/images/official-account.png differ diff --git a/static/images/offline-service.png b/static/images/offline-service.png new file mode 100644 index 00000000..391f3ef4 Binary files /dev/null and b/static/images/offline-service.png differ diff --git a/static/images/online-service.png b/static/images/online-service.png new file mode 100644 index 00000000..e1932d57 Binary files /dev/null and b/static/images/online-service.png differ diff --git a/static/images/p-bg.png b/static/images/p-bg.png new file mode 100644 index 00000000..3d867b84 Binary files /dev/null and b/static/images/p-bg.png differ diff --git a/static/images/partner-bg.png b/static/images/partner-bg.png new file mode 100644 index 00000000..09a758dd Binary files /dev/null and b/static/images/partner-bg.png differ diff --git a/static/images/partner1.png b/static/images/partner1.png new file mode 100644 index 00000000..ee1cbd1e Binary files /dev/null and b/static/images/partner1.png differ diff --git a/static/images/partner10.png b/static/images/partner10.png new file mode 100644 index 00000000..6c9aa3fd Binary files /dev/null and b/static/images/partner10.png differ diff --git a/static/images/partner11.png b/static/images/partner11.png new file mode 100644 index 00000000..9643fc97 Binary files /dev/null and b/static/images/partner11.png differ diff --git a/static/images/partner2.png b/static/images/partner2.png new file mode 100644 index 00000000..81eb5346 Binary files /dev/null and b/static/images/partner2.png differ diff --git a/static/images/partner3.png b/static/images/partner3.png new file mode 100644 index 00000000..7427128b Binary files /dev/null and b/static/images/partner3.png differ diff --git a/static/images/partner4.png b/static/images/partner4.png new file mode 100644 index 00000000..2bf5846d Binary files /dev/null and b/static/images/partner4.png differ diff --git a/static/images/partner5.png b/static/images/partner5.png new file mode 100644 index 00000000..e31e993d Binary files /dev/null and b/static/images/partner5.png differ diff --git a/static/images/partner6.png b/static/images/partner6.png new file mode 100644 index 00000000..fff4962c Binary files /dev/null and b/static/images/partner6.png differ diff --git a/static/images/partner7.png b/static/images/partner7.png new file mode 100644 index 00000000..970acccf Binary files /dev/null and b/static/images/partner7.png differ diff --git a/static/images/partner8.png b/static/images/partner8.png new file mode 100644 index 00000000..0cc6c393 Binary files /dev/null and b/static/images/partner8.png differ diff --git a/static/images/partner9.png b/static/images/partner9.png new file mode 100644 index 00000000..076168c2 Binary files /dev/null and b/static/images/partner9.png differ diff --git a/static/images/person-bg.png b/static/images/person-bg.png new file mode 100644 index 00000000..fa6f7a81 Binary files /dev/null and b/static/images/person-bg.png differ diff --git a/static/images/pic-logo.png b/static/images/pic-logo.png new file mode 100644 index 00000000..1a635399 Binary files /dev/null and b/static/images/pic-logo.png differ diff --git a/static/images/plat-title.png b/static/images/plat-title.png new file mode 100644 index 00000000..44462604 Binary files /dev/null and b/static/images/plat-title.png differ diff --git a/static/images/platform1.png b/static/images/platform1.png new file mode 100644 index 00000000..6401238f Binary files /dev/null and b/static/images/platform1.png differ diff --git a/static/images/platform2.png b/static/images/platform2.png new file mode 100644 index 00000000..1a2b8f6b Binary files /dev/null and b/static/images/platform2.png differ diff --git a/static/images/platform3.png b/static/images/platform3.png new file mode 100644 index 00000000..0ceb8556 Binary files /dev/null and b/static/images/platform3.png differ diff --git a/static/images/platform4.png b/static/images/platform4.png new file mode 100644 index 00000000..3ca54c61 Binary files /dev/null and b/static/images/platform4.png differ diff --git a/static/images/pop-bg.png b/static/images/pop-bg.png new file mode 100644 index 00000000..9fddb983 Binary files /dev/null and b/static/images/pop-bg.png differ diff --git a/static/images/product-planing.png b/static/images/product-planing.png new file mode 100644 index 00000000..66ae7de2 Binary files /dev/null and b/static/images/product-planing.png differ diff --git a/static/images/progress-tag.png b/static/images/progress-tag.png new file mode 100644 index 00000000..f4d10792 Binary files /dev/null and b/static/images/progress-tag.png differ diff --git a/static/images/project-party.png b/static/images/project-party.png new file mode 100644 index 00000000..d89608fb Binary files /dev/null and b/static/images/project-party.png differ diff --git a/static/images/project-test.png b/static/images/project-test.png new file mode 100644 index 00000000..dcaf5b68 Binary files /dev/null and b/static/images/project-test.png differ diff --git a/static/images/publish-bg.png b/static/images/publish-bg.png new file mode 100644 index 00000000..4967699c Binary files /dev/null and b/static/images/publish-bg.png differ diff --git a/static/images/publish.png b/static/images/publish.png new file mode 100644 index 00000000..36c59ed6 Binary files /dev/null and b/static/images/publish.png differ diff --git a/static/images/regist1.png b/static/images/regist1.png new file mode 100644 index 00000000..9fbd94e1 Binary files /dev/null and b/static/images/regist1.png differ diff --git a/static/images/regist2.png b/static/images/regist2.png new file mode 100644 index 00000000..c36f26ce Binary files /dev/null and b/static/images/regist2.png differ diff --git a/static/images/reputation.png b/static/images/reputation.png new file mode 100644 index 00000000..633cc101 Binary files /dev/null and b/static/images/reputation.png differ diff --git a/static/images/rules.jpg b/static/images/rules.jpg new file mode 100644 index 00000000..d87e9e5d Binary files /dev/null and b/static/images/rules.jpg differ diff --git a/static/images/school.png b/static/images/school.png new file mode 100644 index 00000000..c39ff1fb Binary files /dev/null and b/static/images/school.png differ diff --git a/static/images/service-phone.png b/static/images/service-phone.png new file mode 100644 index 00000000..e83a1a65 Binary files /dev/null and b/static/images/service-phone.png differ diff --git a/static/images/share-earn.png b/static/images/share-earn.png new file mode 100644 index 00000000..c05f9888 Binary files /dev/null and b/static/images/share-earn.png differ diff --git a/static/images/share-help-bg.png b/static/images/share-help-bg.png new file mode 100644 index 00000000..fcdd5f8a Binary files /dev/null and b/static/images/share-help-bg.png differ diff --git a/static/images/share-help.png b/static/images/share-help.png new file mode 100644 index 00000000..8c1537a4 Binary files /dev/null and b/static/images/share-help.png differ diff --git a/static/images/share.png b/static/images/share.png new file mode 100644 index 00000000..f8eed84d Binary files /dev/null and b/static/images/share.png differ diff --git a/static/images/site-logo.png b/static/images/site-logo.png new file mode 100644 index 00000000..14bfa549 Binary files /dev/null and b/static/images/site-logo.png differ diff --git a/static/images/star.png b/static/images/star.png new file mode 100644 index 00000000..62f84808 Binary files /dev/null and b/static/images/star.png differ diff --git a/static/images/student.png b/static/images/student.png new file mode 100644 index 00000000..109f1572 Binary files /dev/null and b/static/images/student.png differ diff --git a/static/images/success.png b/static/images/success.png new file mode 100644 index 00000000..74cc8bb7 Binary files /dev/null and b/static/images/success.png differ diff --git a/static/images/t-r-bg.png b/static/images/t-r-bg.png new file mode 100644 index 00000000..65912dee Binary files /dev/null and b/static/images/t-r-bg.png differ diff --git a/static/images/tag.png b/static/images/tag.png new file mode 100644 index 00000000..0e171004 Binary files /dev/null and b/static/images/tag.png differ diff --git a/static/images/task-express.png b/static/images/task-express.png new file mode 100644 index 00000000..d260290f Binary files /dev/null and b/static/images/task-express.png differ diff --git a/static/images/task-speed-bg-last.png b/static/images/task-speed-bg-last.png new file mode 100644 index 00000000..0cc6f12c Binary files /dev/null and b/static/images/task-speed-bg-last.png differ diff --git a/static/images/task-speed-bg1.png b/static/images/task-speed-bg1.png new file mode 100644 index 00000000..0a256998 Binary files /dev/null and b/static/images/task-speed-bg1.png differ diff --git a/static/images/task-speed-bg2.png b/static/images/task-speed-bg2.png new file mode 100644 index 00000000..410dcefe Binary files /dev/null and b/static/images/task-speed-bg2.png differ diff --git a/static/images/task-speed-logo1.png b/static/images/task-speed-logo1.png new file mode 100644 index 00000000..aeb1e0a2 Binary files /dev/null and b/static/images/task-speed-logo1.png differ diff --git a/static/images/task-speed-logo2.png b/static/images/task-speed-logo2.png new file mode 100644 index 00000000..e10b981f Binary files /dev/null and b/static/images/task-speed-logo2.png differ diff --git a/static/images/task-speed-logo3.png b/static/images/task-speed-logo3.png new file mode 100644 index 00000000..9ed09752 Binary files /dev/null and b/static/images/task-speed-logo3.png differ diff --git a/static/images/task-speed-logo4.png b/static/images/task-speed-logo4.png new file mode 100644 index 00000000..b973f2e5 Binary files /dev/null and b/static/images/task-speed-logo4.png differ diff --git a/static/images/task-speed-logo5.png b/static/images/task-speed-logo5.png new file mode 100644 index 00000000..59d8ced1 Binary files /dev/null and b/static/images/task-speed-logo5.png differ diff --git a/static/images/task-speed.png b/static/images/task-speed.png new file mode 100644 index 00000000..d949dc8d Binary files /dev/null and b/static/images/task-speed.png differ diff --git a/static/images/title-l.png b/static/images/title-l.png new file mode 100644 index 00000000..a816245c Binary files /dev/null and b/static/images/title-l.png differ diff --git a/static/images/title-r.png b/static/images/title-r.png new file mode 100644 index 00000000..a816245c Binary files /dev/null and b/static/images/title-r.png differ diff --git a/static/images/urgent-bg.png b/static/images/urgent-bg.png new file mode 100644 index 00000000..bc64d793 Binary files /dev/null and b/static/images/urgent-bg.png differ diff --git a/static/images/urgent-logo-selected.png b/static/images/urgent-logo-selected.png new file mode 100644 index 00000000..93d34ca3 Binary files /dev/null and b/static/images/urgent-logo-selected.png differ diff --git a/static/images/urgent-logo.png b/static/images/urgent-logo.png new file mode 100644 index 00000000..7ffaf5ac Binary files /dev/null and b/static/images/urgent-logo.png differ diff --git a/static/images/v-code.png b/static/images/v-code.png new file mode 100644 index 00000000..2aa43d69 Binary files /dev/null and b/static/images/v-code.png differ diff --git a/static/images/visit.png b/static/images/visit.png new file mode 100644 index 00000000..e94ecd6d Binary files /dev/null and b/static/images/visit.png differ diff --git a/static/images/visit2.png b/static/images/visit2.png new file mode 100644 index 00000000..3cd0b299 Binary files /dev/null and b/static/images/visit2.png differ diff --git a/static/images/wechat-logo.png b/static/images/wechat-logo.png new file mode 100644 index 00000000..5688da75 Binary files /dev/null and b/static/images/wechat-logo.png differ diff --git a/static/images/wechat.png b/static/images/wechat.png new file mode 100644 index 00000000..74a7a080 Binary files /dev/null and b/static/images/wechat.png differ diff --git a/static/images/women.png b/static/images/women.png new file mode 100644 index 00000000..12a2434d Binary files /dev/null and b/static/images/women.png differ diff --git a/static/images/wx-account.png b/static/images/wx-account.png new file mode 100644 index 00000000..eca6f563 Binary files /dev/null and b/static/images/wx-account.png differ diff --git a/static/images/wx-code.jpg b/static/images/wx-code.jpg new file mode 100644 index 00000000..91c2c345 Binary files /dev/null and b/static/images/wx-code.jpg differ diff --git a/static/images/wx-follow.png b/static/images/wx-follow.png new file mode 100644 index 00000000..8269cf27 Binary files /dev/null and b/static/images/wx-follow.png differ diff --git a/static/images/yinlian_pay.jpg b/static/images/yinlian_pay.jpg new file mode 100644 index 00000000..1b56b9cb Binary files /dev/null and b/static/images/yinlian_pay.jpg differ