+
{{ node.label }}
@@ -285,9 +285,9 @@ export default {
function handleId(data){
data.map(n => {
n.originId = n.id
- n.id = String(++that.typeIndex)
+ n.id = String(++that.typeIndex) // 分类id跟表id有可能会重复,所以把分类id都加上个基数,防止冲突,同时用originId保存起来真正的id
n.label = n.categoryName
- n.disabled = true
+ n.disabled = true // 一律禁止勾选
if(n.children.length){
handleId(n.children)
}
@@ -462,46 +462,37 @@ export default {
this.typeList = []
this.tableId = []
this.configChecked = []
+ this.configIds = []
},
// 获取tableId,提交的时候需要
getIds(){
// 获取已经勾选的分类
- let list = this.$refs.type.getCheckedNodes()
- return new Promise((resolve,reject) => {
- let getLen = 0
- list.map(n => {
- // 如果tableLen大于子级的数量,则表示这个分类下的子级是没有全部加载出来的,要在下面去查询出来,这里先记载要查询的分类数量
- if(n.tableLen && n.tableLen > n.children.length) getLen++
- })
- list.map((n,i) => {
- if(n.tableLen && n.tableLen > n.children.length){
- // pageSize传10000是要查询全部表,后续如果数据多了,则按需调整
- this.$post(`${this.api.getIdQueryTable}?categoryId=${n.originId}&showName=&pageNum=1&pageSize=10000&updateTime=`).then(res => {
- let tableList = res.pageList.records
- tableList.map(n => {
- this.tableId.push(String(n.id))
- })
- // 查询完1个,则数量-1
- getLen--
- // 清0后,才执行resolve
- if(!getLen) resolve()
- }).catch(res => {})
- }else if(n.name && !this.tableId.includes(n.id)){ // 如果是表,并且没重复,则添加进去
- this.tableId.push(n.id)
- if(!getLen) resolve()
- }
- })
+ let list = this.checkedIds
+ this.tableId = []
+ const proList = []
+ // 勾选的分类id分别去查询下面的表id,也可以全部id用逗号分隔去查,这里遍历去查是因为这样速度更快
+ list.map(e => {
+ proList.push(new Promise((resolve,reject) => {
+ this.$get(`${this.api.getAllTableIdBycategoryId}?categoryId=${e}`).then(res => {
+ res.tableId && this.tableId.push(...res.tableId.split(','))
+ resolve()
+ }).catch(res => {
+ this.submited = false
+ })
+ }))
})
+ // 全部分类id遍历查询完resolve回去
+ return Promise.all(proList).then(res => {
+ resolve()
+ }).catch(err => {})
},
confirm(){
if(this.submited) return false
if(!this.productName) return this.$message.warning('请输入数据产品名称')
if(!this.market) return this.$message.warning('请输入市场价格')
if(isNaN(this.market)) return this.$message.warning('市场价格请输入数字')
- if(!this.$refs.type.getCheckedNodes().length) return this.$message.warning('请选择数据')
-
- this.submited = true
-
+ if(!this.checkedIds.length) return this.$message.warning('请选择数据')
+ this.submited = true // 提交状态
this.getIds().then(() => {
let tableId = Array.from(new Set(this.tableId))
if(!tableId.length) return this.$message.warning('请选择数据')
@@ -516,7 +507,7 @@ export default {
orderNum: '',
status: '',
tableNum: tableId.length,
- updateTime: '',
+ updateTime: ''
}
if(this.id){
this.$post(this.api.updateProduct,data).then(res => {
@@ -539,17 +530,18 @@ export default {
}
})
},
-
configData(){
this.configVisible = true
this.getConfigType()
-
- let list = this.$refs.type.getCheckedNodes()
- let configIds = []
- list.map(n => {
- if(!n.name) configIds.push(n.originId)
- })
- this.configIds = configIds
+ // 编辑的时候才需要获取外面的弹框的已选数据,传到配置数据里去默认勾选
+ if (this.id) {
+ let list = this.$refs.type.getCheckedNodes()
+ let configIds = []
+ list.map(n => {
+ if(!n.name) configIds.push(n.originId) // 分类没有name。只需要分类id,因为配置数据里是以分类为维度的,所以获取表id无法默认勾选
+ })
+ this.configIds = configIds
+ }
},
typeConfigClick(data,node){
this.categoryId = data.id
@@ -605,6 +597,7 @@ export default {
this.$get(`${this.api.previewData}?tableName=${row.name}&tableId=${row.id}`).then(res => {
let comment = res.comment
let previewHead = []
+ // 不显示id和操作时间
comment.map(n => {
n.field != 'id' && n.field != 'operation_time' && previewHead.push(n)
})
@@ -613,6 +606,7 @@ export default {
let data = res.data
data.map(n => {
for(let i in n){
+ // 把返回的时间格式化
if(typeof n[i] == 'string' && n[i].endsWith('+0000')) n[i] = this.formatDate('yyyy-MM-dd hh:mm:ss',new Date(n[i]))
}
})
@@ -626,7 +620,7 @@ export default {
list.map(n => {
if(n.children && n.children.length){
this.getTableId(n.children)
- if(checked.includes(n.originId) && n.children[0].name){
+ if(checked.includes(n.originId) && n.children[0].name){ // 选中的并且是表(表才有name)
this.configCheckedTableId = [...this.configCheckedTableId,...n.children.map(n => n.id)]
}else{
this.getTableId(n.children)
@@ -635,11 +629,12 @@ export default {
})
},
confirmConfig(){
- this.configChecked = this.$refs.typeConfig.getCheckedKeys().map(n => Number(n))
- this.getTableId(this.typeList)
- this.checkedIds = Array.from(new Set(this.configCheckedTableId))
+ this.configChecked = this.$refs.typeConfig.getCheckedKeys().map(n => n) // 获取选中的id
+ this.checkedIds = this.configChecked
this.configVisible = false
- this.$refs.type.setCheckedNodes(this.checkedIds)
+ this.$nextTick(() => {
+ this.$refs.type.setCheckedNodes(this.checkedIds)
+ })
}
}
};