diff --git a/src/api/mdp/meta/item.js b/src/api/mdp/meta/item.js index c4d64730..eea08e0b 100644 --- a/src/api/mdp/meta/item.js +++ b/src/api/mdp/meta/item.js @@ -2,17 +2,118 @@ import axios from '@/utils/request' import config from '@/common/config' -let base=config.getSysBasePath(); +let base = config.getSysBasePath(); + /** * 数据项定义 *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, - *2 查询、新增、修改的参数格式 params={id:'主键 主键',itemCode:'代码',itemName:'名称',remark:'备注',categoryId:'分类编号',itemSize:'长度',itemType:'类型',branchId:'机构编号',deptid:'部门编号'} + *2 查询、新增、修改的参数格式 params={id:'主键 主键',itemCode:'代码,小写,下横线分割,请不要用驼峰命名',itemName:'名称',remark:'备注',categoryId:'分类编号',itemSize:'长度',itemType:'类型',branchId:'机构编号',deptid:'部门编号',cmenu:'是否创建菜单',values:'默认值,如果是列表,则存储列表编号,多个逗号分割',names:'默认名称,如果是列表,则存储列表名称,多个则逗号分割',options:'item_type=4,5时的选项列表[{value:值,name:显示名称}]',inputFormat:'输入提示',required:'是否必须0否1是',seq:'排序顺序',table:'表名',show:'是否显示0否1是',qx:'权限,是否可以0-新增,1-删除,2-编辑,3-查询,多个以逗号分割'} **/ //普通查询 条件之间and关系 export const listItem = params => { return axios.get(`${base}/mdp/meta/item/list`, { params: params }); }; +export const getDicts = params => { return axios.get(`${base}/mdp/meta/item/dicts`, { params: params }); }; + +/**下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex','grade']} 返回结果 +{ + sex: [{id:'1',name:'男'},{id:'2',name:'女'}], + grade:[{id:'1',name:'等级1'},{id:'2',name:'等级2'}] +} +**/ +export const initSimpleDicts=function(categoryId,itemCodes){ + + if(!categoryId){ + categoryId="all" + } + return new Promise((resolve, reject) => { + var keys=itemCodes + var localDicts={} + var nolocalDictsKeys=[]; + var datetime=new Date().getTime(); + var millSec=24*60*60*1000;//一天的毫秒数 + keys.forEach(i=>{ + var key=categoryId+"_@"+i; + var value= localStorage.getItem(key) + if(value!=null &&value.length>0){ + var data=JSON.parse(value) + var time=data.time; + if((datetime-time)>millSec){ + nolocalDictsKeys.push(i) + localStorage.removeItem(key); + }else{ + localDicts[i]=data.options + } + + }else{ + nolocalDictsKeys.push(i) + } + }) + if(nolocalDictsKeys.length==0){ + var res={data:{tips:{isOk:true,msg:"成功"},data:localDicts}} + resolve(res) + }else{ + getDicts({categoryId:categoryId,itemCodes:nolocalDictsKeys}).then(res=>{ + if(!res.data.tips){ + reject(res) + }else if(res.data.tips.isOk){ + var data=res.data.data + var dicts=localDicts; + data.forEach(dict=>{ + if(dict.optionList){ + dict.options=JSON.parse(dict.optionList) + }else{ + dict.options=[] + } + dicts[dict.itemCode]=dict.options + localStorage.setItem(categoryId+'_@'+dict.itemCode,JSON.stringify({options:dict.options,time:datetime})) + }) + res.data.data=dicts; + resolve(res); + }else{ + resolve(res); + } + }).catch(e=>reject(e)); + } + }); +}; +/**下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex','grade']} 返回结果 + { + sex:{id:'',itemCode:'',itemName:'',itemType:'',values:'',names:'','options':[{id:'1',name:'男'},{id:'2',name:'女'}]} + grade:{id:'',itemCode:'',itemName:'',itemType:'',values:'',names:'','options':[{id:'1',name:'等级1'},{id:'2',name:'等级2'}]} + } + + ***/ +export const initComplexDicts=function(categoryId,itemCodes){ + + if(!categoryId){ + categoryId="all" + } + return new Promise((resolve, reject) => { + getDicts({categoryId:categoryId,itemCodes:itemCodes}).then(res=>{ + if(!res.data.tips){ + reject(res) + }else if(res.data.tips.isOk){ + var data=res.data.data + var dicts={}; + data.forEach(dict=>{ + if(dict.optionList){ + dict.options=JSON.parse(dict.optionList) + }else{ + dict.options=[] + } + dicts[dict.itemCode]=dict + }) + res.data.data=dicts; + resolve(res); + }else{ + resolve(res); + } + }).catch(e=>reject(e)); + }); +}; + //模糊查询数据项定义 条件之间or关系 //export const listItemKey = params => { return axios.get(`${base}/mdp/meta/item/listKey`, { params: params }); }; @@ -26,4 +127,12 @@ export const batchDelItem = params => { return axios.post(`${base}/mdp/meta/item export const editItem = params => { return axios.post(`${base}/mdp/meta/item/edit`, params); }; //新增一条数据项定义 -export const addItem = params => { return axios.post(`${base}/mdp/meta/item/add`, params); }; \ No newline at end of file +export const addItem = params => { return axios.post(`${base}/mdp/meta/item/add`, params); }; + +//新增一条数据项定义 +export const copyToNewCategory = params => { return axios.post(`${base}/mdp/meta/item/copyToNewCategory`, params); }; + +//新增或者修改 +export const insertOrUpdateItem = params => { return axios.post(`${base}/mdp/meta/item/insertOrUpdate`, params); }; + + diff --git a/src/views/xm/XmOverview.vue b/src/views/xm/XmOverview.vue index 8a6e81f8..816ff9ad 100644 --- a/src/views/xm/XmOverview.vue +++ b/src/views/xm/XmOverview.vue @@ -335,7 +335,7 @@ diff --git a/src/views/xm/core/xmTask/XmTaskEdit.vue b/src/views/xm/core/xmTask/XmTaskEdit.vue index 9de25a0d..a4580e27 100644 --- a/src/views/xm/core/xmTask/XmTaskEdit.vue +++ b/src/views/xm/core/xmTask/XmTaskEdit.vue @@ -2,194 +2,194 @@
- - - - 计划项 - 任务 - -
- 任务:任务一般不再包含子任务;建议细分到一个人一天或者几天内能完成这种粒度,任务的预算不能大于上一级预算。 - 计划:计划负责分解上级预算,汇总统计下级实际数据,计划下包含子计划或者子任务 -
- - {{editForm.projectName?editForm.projectName:editForm.projectId}} - - - - {{editForm.productName?editForm.productName:editForm.productId}} - - - - {{editForm.parentTaskname?editForm.parentTaskname:editForm.parentTaskid}} - 无上级(视为顶级) - - - - - - - 如1.0或者1.2.3等 -
标记为里程碑 -
- - {{editForm.preTaskname}} - 选前置 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{editForm.menuName}}     {{editForm.menuName?'更改':'设置'}}    - 查看需求 - - - - - 增加 - {{item.taskSkillName}} - - - - - {{editForm.tagNames?editForm.tagNames:''}} - 标签 - - - - - - - -
- - - {{editForm.createUsername}} - 设置负责人 - - - {{editForm.executorUsername}} - 设置执行人 - - - - - - - - - - - - - - - - + + + + + 计划项 + 任务 - +
+ 任务:任务一般不再包含子任务;建议细分到一个人一天或者几天内能完成这种粒度,任务的预算不能大于上一级预算。 + 计划:计划负责分解上级预算,汇总统计下级实际数据,计划下包含子计划或者子任务 + + + {{editForm.projectName?editForm.projectName:editForm.projectId}} + + + + {{editForm.productName?editForm.productName:editForm.productId}} + + + + {{editForm.parentTaskname?editForm.parentTaskname:editForm.parentTaskid}} + 无上级(视为顶级) - - - 人时,{{this.toFixed(editForm.budgetWorkload/8/20)}}人月 -
- 是否为众包任务 -
- - - 工时单价  元/人时 - - - 工时单价  元/人时 + + + + + + 如1.0或者1.2.3等 +
标记为里程碑 +
+ + {{editForm.preTaskname}} + 选前置 + + + + + + + + + + + + + + + + + + + + + + + + + + - 预估金额  元 -
- - 由后台自动计算,无需填写 - - - 由后台自动计算,无需填写 - - - - - 是否需要结算 - - - - - - - - - - - 发布到互联网任务大厅 - - - - - - - - - - - - - + + {{editForm.menuName}}     {{editForm.menuName?'更改':'设置'}}    + 查看需求 + + + + + 增加 + {{item.taskSkillName}} + + + + + {{editForm.tagNames?editForm.tagNames:''}} + 标签 + + + + + + {{editForm.createUsername}} + 设置负责人 + + + {{editForm.executorUsername}} + 设置执行人 + + + + + + + + + + + + + + + + 人时,{{this.toFixed(editForm.budgetWorkload/8/20)}}人月 +
+ 是否为众包任务 +
+ + + 工时单价  元/人时 + + + 工时单价  元/人时 + + + 预估金额  元 + +
+ + + + + + + + + + + 由后台自动计算,无需填写 + + + 由后台自动计算,无需填写 + + + + + 是否需要结算 + + + + + + + + + + 发布到互联网任务大厅 + + + + + + + + + + + + + +
@@ -201,10 +201,10 @@ --> - + - + @@ -215,7 +215,7 @@ - + @@ -235,7 +235,7 @@