|
|
|
@ -26,7 +26,7 @@ |
|
|
|
class="cu-item flex-col" |
|
|
|
v-for="(item, index) in data.itemList" |
|
|
|
> |
|
|
|
<view class="border-100 bg-blue-500" v-if="item.showTopBorder"></view> |
|
|
|
<!-- <view class="border-100 bg-blue-500" v-if="item.showTopBorder"></view> --> |
|
|
|
|
|
|
|
<!-- 内容区 --> |
|
|
|
<!-- 父项目 --> |
|
|
|
@ -48,7 +48,7 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="workbench-btn" v-if="index === 0" @click="toWorkbench">工作台</view> |
|
|
|
<!-- <view class="workbench-btn" v-if="index === 0" @click="toWorkbench">工作台</view> --> |
|
|
|
|
|
|
|
<!-- 箭头 --> |
|
|
|
<view v-if="item.sonProjectList && item.sonProjectList.length"> |
|
|
|
@ -164,11 +164,11 @@ const data = reactive({ |
|
|
|
clickProject: {}, |
|
|
|
projectId: 0, |
|
|
|
// menuList: [{ text: '复制' }, { text: '编辑' }, { text: '删除' }, { text: '置顶' }, { text: '排序' }], |
|
|
|
menuList: [{ text: '导出' }, { text: '删除' }], |
|
|
|
menuList: [{ text: '导入' }, { text: '导出' }, { text: '删除' }, { text: '排序' }], |
|
|
|
|
|
|
|
// show: false, |
|
|
|
// border: 'border border-blue-500 shadow rounded-md', |
|
|
|
showBorder: false, // 一级项目底部边框是否显示 |
|
|
|
// showBorder: false, // 一级项目底部边框是否显示 |
|
|
|
showItemIndex: undefined, |
|
|
|
}); |
|
|
|
|
|
|
|
@ -179,9 +179,9 @@ watchEffect(() => { |
|
|
|
if (projects.value) { |
|
|
|
data.itemList = projects.value; |
|
|
|
data.itemList.forEach(item => { |
|
|
|
item.showBorder = false; // 一级项目底部边框是否显示 |
|
|
|
item.showSubBorder = false; // 一级项目底部边框是否显示 |
|
|
|
item.showTopBorder = false; // 一级项目顶部边框是否显示 |
|
|
|
item.showBorder = false; // 一级项目移动位置底部边框是否显示 |
|
|
|
item.showSubBorder = false; // 二级项目移动位置底部边框是否显示 |
|
|
|
item.showTopBorder = false; // 一级项目移动位置顶部边框是否显示 |
|
|
|
item.remindNum = 0; |
|
|
|
|
|
|
|
if (remindData.value) { |
|
|
|
@ -245,7 +245,8 @@ function chooseAction(e) { |
|
|
|
const obj = { |
|
|
|
index: e, |
|
|
|
projectId: data.projectId, |
|
|
|
url: data.clickProject.url, |
|
|
|
url: data.clickProject.url, |
|
|
|
projectName: data.tips.text |
|
|
|
}; |
|
|
|
// emit('chooseAction', data); |
|
|
|
actionFun(obj); |
|
|
|
@ -262,6 +263,12 @@ function actionFun(obj) { |
|
|
|
if (action === '删除') { |
|
|
|
data.changeEvent = false; |
|
|
|
delProject(obj.projectId, obj.url); |
|
|
|
} |
|
|
|
|
|
|
|
if (action === '导入') { |
|
|
|
data.changeEvent = false; |
|
|
|
store.commit('setDomain', obj.url); |
|
|
|
importProject(obj.projectId, obj.projectName); |
|
|
|
} |
|
|
|
|
|
|
|
if (action === '导出') { |
|
|
|
@ -391,10 +398,10 @@ function move(e, length) { |
|
|
|
} |
|
|
|
|
|
|
|
function stops(e, index, length) { |
|
|
|
console.log('结束'); |
|
|
|
console.log('结束', e, index, length); |
|
|
|
const touch = e.changedTouches[0]; |
|
|
|
const lastIndex = findOverIndex(touch.pageY, length); |
|
|
|
|
|
|
|
console.log('11111111111', data.itemList) |
|
|
|
// 交换两个值 |
|
|
|
for (let i = 0; i < data.itemList.length; i++) { |
|
|
|
// 插入顶部 |
|
|
|
@ -408,9 +415,14 @@ function stops(e, index, length) { |
|
|
|
const Value = data.itemList[arr[0] - 0].sonProjectList[arr[1] - 0]; |
|
|
|
data.itemList.unshift(Value); |
|
|
|
data.itemList[arr[0] - 0].sonProjectList.splice([arr[1] - 0], 1); |
|
|
|
const options = { |
|
|
|
id: Value.id, |
|
|
|
parentId: 0, |
|
|
|
// const options = { |
|
|
|
// id: Value.id, |
|
|
|
// parentId: 0, |
|
|
|
// }; |
|
|
|
const options = { |
|
|
|
businessCode: Value.businessCode, |
|
|
|
moveProjectId: Value.id, |
|
|
|
targetProjectId: '', |
|
|
|
}; |
|
|
|
emit('change', options); |
|
|
|
} |
|
|
|
@ -434,9 +446,14 @@ function stops(e, index, length) { |
|
|
|
const Value = data.itemList[arr[0] - 0].sonProjectList[arr[1] - 0]; |
|
|
|
data.itemList.splice(i + 1, 0, Value); |
|
|
|
data.itemList[arr[0] - 0].sonProjectList.splice([arr[1] - 0], 1); |
|
|
|
const options = { |
|
|
|
id: Value.id, |
|
|
|
parentId: 0, |
|
|
|
// const options = { |
|
|
|
// id: Value.id, |
|
|
|
// parentId: 0, |
|
|
|
// }; |
|
|
|
const options = { |
|
|
|
businessCode: Value.businessCode, |
|
|
|
moveProjectId: Value.id, |
|
|
|
targetProjectId: '', |
|
|
|
}; |
|
|
|
emit('change', options); |
|
|
|
} |
|
|
|
@ -457,9 +474,14 @@ function stops(e, index, length) { |
|
|
|
data.itemList.splice(index, 1); |
|
|
|
// 清空 |
|
|
|
clearSet(i); |
|
|
|
const options = { |
|
|
|
id: Value.id, |
|
|
|
parentId: data.itemList[lastIndex - 1].id, |
|
|
|
// const options = { |
|
|
|
// id: Value.id, |
|
|
|
// parentId: data.itemList[lastIndex - 1].id, |
|
|
|
// }; |
|
|
|
const options = { |
|
|
|
businessCode: Value.businessCode, |
|
|
|
moveProjectId: Value.id, |
|
|
|
targetProjectId: data.itemList[lastIndex - 1].id, |
|
|
|
}; |
|
|
|
emit('change', options); |
|
|
|
} else { |
|
|
|
@ -473,15 +495,25 @@ function stops(e, index, length) { |
|
|
|
data.itemList[arr[0] - 0].sonProjectList.splice([arr[1] - 0], 1); |
|
|
|
// 清空 |
|
|
|
clearSet(i); |
|
|
|
const options = { |
|
|
|
id: Value.id, |
|
|
|
parentId: data.itemList[lastIndex].id, |
|
|
|
// const options = { |
|
|
|
// id: Value.id, |
|
|
|
// parentId: data.itemList[lastIndex].id, |
|
|
|
// }; |
|
|
|
const options = { |
|
|
|
businessCode: Value.businessCode, |
|
|
|
moveProjectId: Value.id, |
|
|
|
targetProjectId: data.itemList[lastIndex].id, |
|
|
|
}; |
|
|
|
emit('change', options); |
|
|
|
|
|
|
|
const options1 = { |
|
|
|
id: Value.id, |
|
|
|
parentId: 0, |
|
|
|
// const options1 = { |
|
|
|
// id: Value.id, |
|
|
|
// parentId: 0, |
|
|
|
// }; |
|
|
|
const options1 = { |
|
|
|
businessCode: Value.businessCode, |
|
|
|
moveProjectId: Value.id, |
|
|
|
targetProjectId: '', |
|
|
|
}; |
|
|
|
emit('change', options1); |
|
|
|
} |
|
|
|
@ -546,8 +578,39 @@ function delProject(id, url) { |
|
|
|
} |
|
|
|
}, |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
// 导入 |
|
|
|
function importProject(id, name) { |
|
|
|
uni.showModal({ |
|
|
|
content: '是否导入到' + name, |
|
|
|
showCancel: true, |
|
|
|
success: async ({ confirm }) => { |
|
|
|
if (confirm) { |
|
|
|
try { |
|
|
|
const res = await uni.$u.api.import(id); |
|
|
|
// 导入WBS成功后 |
|
|
|
// 直接打开导入的项目 |
|
|
|
emit('success'); |
|
|
|
// const { apiUrl } = Config; |
|
|
|
// let defaultwbs = `${apiUrl}/defaultwbs`; |
|
|
|
// res.url && (defaultwbs = res.url); |
|
|
|
|
|
|
|
store.commit('project/setIsRefresh', 1); |
|
|
|
|
|
|
|
setTimeout(() => { |
|
|
|
uni.navigateTo({ url: `/pages/project/project?u=${user.value.id}&p=${res.id}&pname=${res.name}&url=${encodeURIComponent(res.url)}` }); |
|
|
|
}, 2000); |
|
|
|
} catch (error) { |
|
|
|
console.error('error: ', error); |
|
|
|
emit('error', error); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 导出 |
|
|
|
function exportProject(id, url) { |
|
|
|
uni.showModal({ |
|
|
|
title: '', |
|
|
|
@ -590,9 +653,9 @@ function exportProject(id, url) { |
|
|
|
} |
|
|
|
|
|
|
|
// 跳转工作台 |
|
|
|
function toWorkbench() { |
|
|
|
uni.navigateTo({ url: '/pages/workbench/workbench' }); |
|
|
|
} |
|
|
|
// function toWorkbench() { |
|
|
|
// uni.navigateTo({ url: '/pages/workbench/workbench' }); |
|
|
|
// } |
|
|
|
</script> |
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|