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/core/xmMenu/XmMenuMng.vue b/src/views/xm/core/xmMenu/XmMenuMng.vue
index 4aa77344..80f38f2a 100644
--- a/src/views/xm/core/xmMenu/XmMenuMng.vue
+++ b/src/views/xm/core/xmMenu/XmMenuMng.vue
@@ -5,16 +5,16 @@
-
+
-
+
-
+
-
+
@@ -106,7 +106,7 @@
需求层次:
-
+
@@ -250,7 +250,7 @@
-
+
@@ -281,7 +281,7 @@
import util from '@/common/js/util';//全局公共库
import treeTool from '@/common/js/treeTool';//全局公共库
//import Sticky from '@/components/Sticky' // 粘性header组件
- import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询
+ import { initSimpleDicts } from '@/api/mdp/meta/item';//下拉框数据查询
import { listXmMenu, delXmMenu, batchDelXmMenu,batchAddXmMenu,batchEditXmMenu,listXmMenuWithState,listXmMenuWithPlan,batchChangeParentMenu } from '@/api/xm/core/xmMenu';
import { batchRelTasksWithMenu } from '@/api/xm/core/xmTask';
import { loadTasksToXmMenuState} from '@/api/xm/core/xmMenuState';
@@ -357,7 +357,21 @@
parentMenuList:[],
status:'',
},
- options:{},
+ options:{
+ menuStatus:[
+
+ {id:"0", name:"初始"},
+ {id:"1", name:"待评审"},
+ {id:"2", name:"待设计"},
+ {id:"3", name:"待开发"},
+ {id:"4", name:"待SIT"},
+ {id:"5", name:"待UAT"},
+ {id:"6", name:"待上线"},
+ {id:"7", name:"运行中"},
+ {id:"8", name:"已下线"},
+ {id:"9", name:"已删除"},
+ ]
+ },
xmMenus: [],//查询结果
pageInfo:{//分页数据
total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。
@@ -957,9 +971,8 @@
//在下面添加其它组件
},
mounted() {
-
- listOption([{categoryId:'all',itemCode:'demandSource'},{categoryId:'all',itemCode:'demandLvl'},{categoryId:'all',itemCode:'demandType'},{categoryId:'all',itemCode:'priority'}]).then(res=>{
- this.options=res.data.data;
+ initSimpleDicts("all",['menuStatus','demandSource','demandLvl','demandType','priority']).then(res=>{
+ this.dicts=res.data.data;
})
this.filters.product=this.xmProduct
if(this.xmProduct && this.xmProduct.id){
diff --git a/src/views/xm/core/xmMenu/XmMenuMngBatch.vue b/src/views/xm/core/xmMenu/XmMenuMngBatch.vue
index 7670ae57..1c50ac8d 100644
--- a/src/views/xm/core/xmMenu/XmMenuMngBatch.vue
+++ b/src/views/xm/core/xmMenu/XmMenuMngBatch.vue
@@ -19,12 +19,37 @@
-
+
+
+
+ 批量修改
+
{{scope.row.mmUsername}}
选人
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -36,7 +61,11 @@
-
+
+
+
+
+
@@ -44,7 +73,7 @@