mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-11 11:56:46 +08:00
feat:增加项目授权以及修改新建项目
This commit is contained in:
43
src/App.vue
43
src/App.vue
@@ -44,51 +44,28 @@ export default defineComponent({
|
|||||||
const currentRouteName = computed(() => route.name);
|
const currentRouteName = computed(() => route.name);
|
||||||
|
|
||||||
//获取组织树
|
//获取组织树
|
||||||
const orgTree = () => {
|
const getOrgTree = () => {
|
||||||
let obj = {
|
let obj = {
|
||||||
id: 0,
|
|
||||||
keyWord: "",
|
keyWord: "",
|
||||||
pageNo: 0,
|
id: -1,
|
||||||
|
pageNo: 1,
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.getOrgInfo(obj)
|
.getOrgInfo(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.status === 200) {
|
console.log("组织树获取成功", res);
|
||||||
// console.log("获取组织树成功", res.data.data);
|
if (res.data.code === 200) {
|
||||||
// state.orgtreeList = res.data.data;
|
// state.treeData = res.data.data;
|
||||||
if (res.status === 200) {
|
store.commit("getOrgtreeList", res.data.data);
|
||||||
let arr = res.data.data.rows;
|
|
||||||
for (let i = 0; i < arr.length; i++) {
|
|
||||||
let object = {
|
|
||||||
keyWord: "",
|
|
||||||
id: arr[i].id,
|
|
||||||
pageNo: 1,
|
|
||||||
pageSize: 20,
|
|
||||||
};
|
|
||||||
api
|
|
||||||
.getOrgInfo(object)
|
|
||||||
.then((res) => {
|
|
||||||
// console.log("获取子元素", res);
|
|
||||||
if (res.status === 200) {
|
|
||||||
arr[i].treeChildList = res.data.data.rows;
|
|
||||||
if (i === arr.length - 1) {
|
|
||||||
store.commit("getOrgtreeList", arr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
console.log("获取子元素失败", err);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("获取组织树失败", err);
|
console.log("组织树获取失败", err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
orgTree();
|
|
||||||
|
getOrgTree();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
routes,
|
routes,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-21 14:32:52
|
* @Date: 2022-11-21 14:32:52
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-27 16:55:32
|
* @LastEditTime: 2022-11-28 14:25:01
|
||||||
* @FilePath: /fe-manage/src/api/config.js
|
* @FilePath: /fe-manage/src/api/config.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-04 22:45:31
|
* @Date: 2022-11-04 22:45:31
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-26 14:57:17
|
* @LastEditTime: 2022-11-28 19:59:10
|
||||||
* @FilePath: /fe-manage/src/api/index1.js
|
* @FilePath: /fe-manage/src/api/index1.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
@@ -102,8 +102,11 @@ export const getOrgInfo = (obj) => http.post('/admin/orgStruct/getOrgInfo', obj)
|
|||||||
export const getMemberInfo = (obj) => http.post('/admin/orgStruct/getMemberInfo', obj)
|
export const getMemberInfo = (obj) => http.post('/admin/orgStruct/getMemberInfo', obj)
|
||||||
//获取受众(修改版)
|
//获取受众(修改版)
|
||||||
export const getAudienceInfo = (obj) => http.post('/admin/orgStruct/getAudienceInfo', obj)
|
export const getAudienceInfo = (obj) => http.post('/admin/orgStruct/getAudienceInfo', obj)
|
||||||
//获取授权(修改版)
|
//获取、添加授权(修改版)
|
||||||
export const optionAuthPerm = (obj) => http.post('/admin/AuthPerm/optionAuthPerm', obj)
|
export const optionAuthPerm = (obj) => http.post('/admin/AuthPerm/optionAuthPerm', obj)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//获取用户登录
|
//获取用户登录
|
||||||
export const getUser = () => http.post('/admin/CheckUser/login', { withCredentials: true })
|
export const getUser = () => http.post('/admin/CheckUser/login', { withCredentials: true })
|
||||||
|
|
||||||
|
|||||||
@@ -196,7 +196,21 @@ function getCookie(name) {
|
|||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
//最后通
|
|
||||||
|
|
||||||
|
//滚动加载信息
|
||||||
|
const scrollLoad = (e) => {
|
||||||
|
// console.log("滚动", e, b);
|
||||||
|
const { target } = e;
|
||||||
|
const scrllHeight = target.scrollHeight - target.scrollTop;
|
||||||
|
const clientHeight = target.clientHeight;
|
||||||
|
// console.log("scrllHeight", scrllHeight, clientHeight);
|
||||||
|
if (scrllHeight === 0 && clientHeight === 0) {
|
||||||
|
return 1
|
||||||
|
} else if (scrllHeight - clientHeight == 0) {
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
//新建延迟
|
//新建延迟
|
||||||
@@ -414,6 +428,7 @@ export {
|
|||||||
formatNumber,
|
formatNumber,
|
||||||
setCookie,
|
setCookie,
|
||||||
getCookie,
|
getCookie,
|
||||||
|
scrollLoad,
|
||||||
commonData,
|
commonData,
|
||||||
organizationalTree,
|
organizationalTree,
|
||||||
iframeUrl,
|
iframeUrl,
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
"
|
"
|
||||||
src="../assets/images/avatar.png"
|
:src="avatar"
|
||||||
/>
|
/>
|
||||||
<div>{{ username }}</div>
|
<div>{{ username }}</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,6 +69,7 @@ export default {
|
|||||||
const state = reactive({
|
const state = reactive({
|
||||||
selectRole: "管理员",
|
selectRole: "管理员",
|
||||||
username: "",
|
username: "",
|
||||||
|
avatar: null,
|
||||||
roleList: [
|
roleList: [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
@@ -103,6 +104,9 @@ export default {
|
|||||||
console.log("获取登录信息成功", res);
|
console.log("获取登录信息成功", res);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
state.username = res.data.data.realName;
|
state.username = res.data.data.realName;
|
||||||
|
state.avatar = res.data.data.avatar
|
||||||
|
? res.data.data.avatar
|
||||||
|
: require("../assets/images/avatar.png");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -124,8 +124,8 @@
|
|||||||
|
|
||||||
<div class="botm"></div>
|
<div class="botm"></div>
|
||||||
<div class="btnn">
|
<div class="btnn">
|
||||||
<button class="btn1" @click="closeCancelModal">取消</button>
|
<button class="btn1" @click="closeDrawer">取消</button>
|
||||||
<button class="btn2" @click="closeCancelModal">确定</button>
|
<button class="btn2" @click="closeDrawer">确定</button>
|
||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
</template>
|
</template>
|
||||||
@@ -167,11 +167,12 @@ export default {
|
|||||||
// state: "管理权",
|
// state: "管理权",
|
||||||
// },
|
// },
|
||||||
],
|
],
|
||||||
cancelAuthId: null, //取消授权id
|
cancelAuthInfo: null, //取消授权id
|
||||||
});
|
});
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:ProjPvisible", false);
|
ctx.emit("update:ProjPvisible", false);
|
||||||
|
state.currentPage = 1;
|
||||||
};
|
};
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = (bool) => {
|
||||||
console.log("state", bool, props);
|
console.log("state", bool, props);
|
||||||
@@ -183,9 +184,14 @@ export default {
|
|||||||
console.log("selectedRowKeys changed: ", selectedRowKeys);
|
console.log("selectedRowKeys changed: ", selectedRowKeys);
|
||||||
state.selectedRowKeys = selectedRowKeys;
|
state.selectedRowKeys = selectedRowKeys;
|
||||||
};
|
};
|
||||||
const showCancelModal = (id) => {
|
const showCancelModal = (item) => {
|
||||||
|
console.log("item", item);
|
||||||
state.cancelModal = true;
|
state.cancelModal = true;
|
||||||
state.cancelAuthId = id;
|
let obj = {
|
||||||
|
id: item.number,
|
||||||
|
name: item.name,
|
||||||
|
};
|
||||||
|
state.cancelAuthInfo = obj;
|
||||||
};
|
};
|
||||||
const closeCancelModal = () => {
|
const closeCancelModal = () => {
|
||||||
state.cancelModal = false;
|
state.cancelModal = false;
|
||||||
@@ -259,7 +265,8 @@ export default {
|
|||||||
<div
|
<div
|
||||||
class="opa"
|
class="opa"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showCancelModal(text.record.id);
|
console.log("text.record.id", text.record.id);
|
||||||
|
showCancelModal(text.record);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
取消授权
|
取消授权
|
||||||
@@ -299,9 +306,9 @@ export default {
|
|||||||
name: value.memberName ? value.memberName : "-",
|
name: value.memberName ? value.memberName : "-",
|
||||||
|
|
||||||
com: value.orgName ? value.orgName : "-",
|
com: value.orgName ? value.orgName : "-",
|
||||||
gang: "产品经理",
|
gang: "-",
|
||||||
number: "20201234",
|
number: value.memberNo ? value.memberNo : "-",
|
||||||
state: "管理权",
|
state: "-",
|
||||||
};
|
};
|
||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
@@ -338,18 +345,22 @@ export default {
|
|||||||
type: 2,
|
type: 2,
|
||||||
tag: 1,
|
tag: 1,
|
||||||
opt: 4,
|
opt: 4,
|
||||||
refId: state.cancelAuthId,
|
refId: props.selectProjectId,
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
|
deptList: [],
|
||||||
|
groupList: [],
|
||||||
|
studentList: [state.cancelAuthInfo],
|
||||||
};
|
};
|
||||||
console.log("获取权限名单obj", obj);
|
console.log("取消权限名单obj", obj);
|
||||||
api
|
api
|
||||||
.optionAuthPerm(obj)
|
.optionAuthPerm(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
// console.log("获取权限名单成功", res);
|
console.log("取消权限名单", res);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
console.log("取消授权成功", res.data.data);
|
// console.log("取消授权成功", res.data.data);
|
||||||
optionAuthPerm();
|
optionAuthPerm();
|
||||||
|
closeCancelModal();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|||||||
@@ -607,8 +607,8 @@ export default {
|
|||||||
tag: 1, //归属权
|
tag: 1, //归属权
|
||||||
opt: 1, //查询
|
opt: 1, //查询
|
||||||
type: 2, //项目
|
type: 2, //项目
|
||||||
// refId: props.selectProjectId, //项目id
|
refId: props.selectProjectId, //项目id
|
||||||
refId: 64,
|
// refId: 64,
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
studentList: [],
|
studentList: [],
|
||||||
@@ -630,12 +630,14 @@ export default {
|
|||||||
tag: 2, //归属权
|
tag: 2, //归属权
|
||||||
opt: 3, //修改
|
opt: 3, //修改
|
||||||
type: 2, //项目
|
type: 2, //项目
|
||||||
// refId: props.selectProjectId, //项目id
|
refId: props.selectProjectId, //项目id
|
||||||
refId: 64,
|
// refId: 64,
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
// studentList: state.selectPeopleArr,
|
// studentList: state.selectPeopleArr,
|
||||||
studentList: [{ id: "966733333637632000", name: "何丹" }],
|
deptList: [],
|
||||||
|
groupList: [],
|
||||||
|
studentList: state.selectPeopleArr,
|
||||||
};
|
};
|
||||||
console.log("修改归属权obj", obj);
|
console.log("修改归属权obj", obj);
|
||||||
api
|
api
|
||||||
|
|||||||
@@ -541,6 +541,7 @@ import {
|
|||||||
onMounted,
|
onMounted,
|
||||||
onUnmounted,
|
onUnmounted,
|
||||||
// watch
|
// watch
|
||||||
|
computed,
|
||||||
} from "vue";
|
} from "vue";
|
||||||
import elementResizeDetectorMaker from "element-resize-detector";
|
import elementResizeDetectorMaker from "element-resize-detector";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
@@ -556,7 +557,7 @@ import {
|
|||||||
// deepClone,
|
// deepClone,
|
||||||
batchLoadList,
|
batchLoadList,
|
||||||
} from "../../utils/utils";
|
} from "../../utils/utils";
|
||||||
|
import { useStore } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
name: "StuAdd",
|
name: "StuAdd",
|
||||||
props: {
|
props: {
|
||||||
@@ -566,6 +567,7 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
setup(props, ctx) {
|
setup(props, ctx) {
|
||||||
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
screenHeight: document.body.clientHeight, // 屏幕高度
|
screenHeight: document.body.clientHeight, // 屏幕高度
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@@ -1171,24 +1173,27 @@ export default {
|
|||||||
// state.copyTreeData = deepClone(arr);
|
// state.copyTreeData = deepClone(arr);
|
||||||
// };
|
// };
|
||||||
//获取组织树
|
//获取组织树
|
||||||
const getTree = () => {
|
// const getTree = () => {
|
||||||
let obj = {
|
// let obj = {
|
||||||
keyWord: "",
|
// keyWord: "",
|
||||||
id: -1,
|
// id: -1,
|
||||||
pageNo: 1,
|
// pageNo: 1,
|
||||||
pageSize: 20,
|
// pageSize: 20,
|
||||||
};
|
// };
|
||||||
getOrgInfoApi(obj)
|
// getOrgInfoApi(obj)
|
||||||
.then((res) => {
|
// .then((res) => {
|
||||||
console.log("组织树获取成功", res);
|
// console.log("组织树获取成功", res);
|
||||||
if (res.data.code === 200) {
|
// if (res.data.code === 200) {
|
||||||
state.treeData = res.data.data;
|
// state.treeData = res.data.data;
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
.catch((err) => {
|
// .catch((err) => {
|
||||||
console.log("组织树获取失败", err);
|
// console.log("组织树获取失败", err);
|
||||||
});
|
// });
|
||||||
};
|
// };
|
||||||
|
state.treeData = computed(() => {
|
||||||
|
return store.state.orgtreeList ? store.state.orgtreeList : [];
|
||||||
|
});
|
||||||
//获取学员
|
//获取学员
|
||||||
const getMember = async (org) => {
|
const getMember = async (org) => {
|
||||||
if (!state.nameSearch && !org) {
|
if (!state.nameSearch && !org) {
|
||||||
@@ -1270,7 +1275,7 @@ export default {
|
|||||||
console.log("state", bool);
|
console.log("state", bool);
|
||||||
if (bool) {
|
if (bool) {
|
||||||
// getComOnce();
|
// getComOnce();
|
||||||
getTree();
|
// getTree();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const getClientHeight = () => {
|
const getClientHeight = () => {
|
||||||
|
|||||||
@@ -864,13 +864,13 @@
|
|||||||
|
|
||||||
<div class="footbtn">
|
<div class="footbtn">
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="temporaryStorage">
|
||||||
<div class="btnText">暂存</div>
|
<div class="btnText">暂存</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="submitStorage">
|
||||||
<div class="btnText">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn1">
|
<div class="btn btn1" @click="cancelStorage">
|
||||||
<div class="btnText">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1051,7 +1051,7 @@ import draggable from "vuedraggable";
|
|||||||
import { editTask } from "../../api/indexTaskadd";
|
import { editTask } from "../../api/indexTaskadd";
|
||||||
|
|
||||||
// import { RouterEditTask } from "@/api/indexTask";
|
// import { RouterEditTask } from "@/api/indexTask";
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
import { toDate } from "../../api/method";
|
import { toDate } from "../../api/method";
|
||||||
import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
||||||
export default {
|
export default {
|
||||||
@@ -1076,6 +1076,7 @@ export default {
|
|||||||
AddProject,
|
AddProject,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
const router = useRouter();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
routerId: storage.get("routerId")
|
routerId: storage.get("routerId")
|
||||||
? JSON.parse(storage.get("routerId"))
|
? JSON.parse(storage.get("routerId"))
|
||||||
@@ -1884,6 +1885,23 @@ export default {
|
|||||||
const showModeVisible = () => {
|
const showModeVisible = () => {
|
||||||
state.unlockModeVisible = true;
|
state.unlockModeVisible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//暂存
|
||||||
|
const temporaryStorage = () => {
|
||||||
|
message.success("暂存成功");
|
||||||
|
};
|
||||||
|
//确定
|
||||||
|
const submitStorage = () => {
|
||||||
|
router.push({
|
||||||
|
path: "/leveladd",
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//取消
|
||||||
|
const cancelStorage = () => {
|
||||||
|
router.push({
|
||||||
|
path: "/leveladd",
|
||||||
|
});
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
// tableDataFunc,
|
// tableDataFunc,
|
||||||
@@ -1935,6 +1953,10 @@ export default {
|
|||||||
|
|
||||||
showModeVisible,
|
showModeVisible,
|
||||||
showAddface,
|
showAddface,
|
||||||
|
|
||||||
|
temporaryStorage,
|
||||||
|
submitStorage,
|
||||||
|
cancelStorage,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -62,13 +62,17 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="classifySelect"
|
v-model:value="classifySelect"
|
||||||
placeholder="四个养成"
|
placeholder="请选择分类"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:options="classifyList"
|
:options="classifyList"
|
||||||
@change="classificationChange"
|
@change="classificationChange"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -169,6 +173,7 @@
|
|||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -183,18 +188,26 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-tree-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="classifySelect2"
|
v-model:value="classifySelect2"
|
||||||
|
style="width: 100%"
|
||||||
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||||
placeholder="自动带出 可修改"
|
placeholder="自动带出 可修改"
|
||||||
:options="classifyList2"
|
:options="classifyList2"
|
||||||
@change="classificationChange2"
|
@change="classificationChange2"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
/>
|
:tree-data="classifyList2"
|
||||||
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
></a-tree-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name name2">
|
<div class="name name2">
|
||||||
@@ -252,6 +265,10 @@
|
|||||||
@change="classificationChange3"
|
@change="classificationChange3"
|
||||||
placeholder="集团级/组织级/现地级/部门级"
|
placeholder="集团级/组织级/现地级/部门级"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -275,6 +292,10 @@
|
|||||||
@change="classificationChange4"
|
@change="classificationChange4"
|
||||||
placeholder="集团级/组织级/现地级/部门级"
|
placeholder="集团级/组织级/现地级/部门级"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -355,6 +376,7 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:options="classifyList5"
|
:options="classifyList5"
|
||||||
@change="classificationChange5"
|
@change="classificationChange5"
|
||||||
|
@popupScroll="templateScroll"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -372,16 +394,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs, ref } from "vue";
|
import { reactive, toRefs, ref, computed } from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import * as api from "../../api/index";
|
import * as api from "../../api/index";
|
||||||
import { toDate } from "../../api/method";
|
import * as api1 from "../../api/index1";
|
||||||
|
import { toDate, scrollLoad } from "../../api/method";
|
||||||
|
import { useStore } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
name: "projectAdd",
|
name: "projectAdd",
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
// 编辑页面跳转过来时候,自动填充表格
|
// 编辑页面跳转过来时候,自动填充表格
|
||||||
const routers = useRoute();
|
const routers = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@@ -398,12 +422,20 @@ export default {
|
|||||||
valueE1: null,
|
valueE1: null,
|
||||||
valueE2: null,
|
valueE2: null,
|
||||||
classifySelect1: [],
|
classifySelect1: [],
|
||||||
classifySelect2: [],
|
classifySelect2: null, //选中的资源归属信息
|
||||||
classifySelect3: [],
|
classifySelect3: null, //选中的项目级别信息
|
||||||
classifySelect4: [],
|
classifySelect4: null, //选中的培训分类信息
|
||||||
rangevalue: [],
|
rangevalue: [],
|
||||||
projectAscription: "",
|
projectAscription: "",
|
||||||
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
||||||
|
|
||||||
|
currentPage: 1, //当前页
|
||||||
|
tableDataTotal: -1, //模版列表总数
|
||||||
|
pageSize: 10, //每页10条数据
|
||||||
|
totalPages: 0, //总页数
|
||||||
|
|
||||||
|
currentPage1: 1, //项目经理
|
||||||
|
pageSize1: 10, //项目经理
|
||||||
});
|
});
|
||||||
|
|
||||||
if (routers.query.name == undefined) {
|
if (routers.query.name == undefined) {
|
||||||
@@ -489,9 +521,7 @@ export default {
|
|||||||
const projectName = ref("");
|
const projectName = ref("");
|
||||||
|
|
||||||
const classifyList = ref([
|
const classifyList = ref([
|
||||||
{ value: 1, label: "管理者" },
|
// { value: 1, label: "管理者" },
|
||||||
{ value: 2, label: "领军者" },
|
|
||||||
{ value: 3, label: "产业人" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let projectType = "";
|
let projectType = "";
|
||||||
@@ -615,10 +645,48 @@ export default {
|
|||||||
|
|
||||||
// 项目经理 后续接口调用
|
// 项目经理 后续接口调用
|
||||||
const classifyList1 = ref([
|
const classifyList1 = ref([
|
||||||
{ value: 1, label: "李俊国" },
|
// { value: 1, label: "李俊国" },
|
||||||
{ value: 2, label: "将小米" },
|
|
||||||
{ value: 3, label: "刘孟君" },
|
|
||||||
]);
|
]);
|
||||||
|
//获取学员
|
||||||
|
const getMember = () => {
|
||||||
|
api1
|
||||||
|
.getMemberInfo({
|
||||||
|
pageNo: state.currentPage1,
|
||||||
|
pageSize: state.pageSize1,
|
||||||
|
keyWord: "",
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
let arr = res.data.data.rows;
|
||||||
|
let array = classifyList1.value;
|
||||||
|
arr.map((value) => {
|
||||||
|
let obj = {
|
||||||
|
value: value.id,
|
||||||
|
label: value.realName,
|
||||||
|
};
|
||||||
|
array.push(obj);
|
||||||
|
});
|
||||||
|
classifyList1.value = array;
|
||||||
|
console.log("获取学员", res.data);
|
||||||
|
// classifyList1.value = res.data.data.rows;
|
||||||
|
// state.tableDataTotal = res.data.data.total;
|
||||||
|
// return res.data.data.rows;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getMember();
|
||||||
|
//学员滚动加载信息
|
||||||
|
const memberScroll = (e) => {
|
||||||
|
// console.log("滚动", e, b);
|
||||||
|
let num = scrollLoad(e);
|
||||||
|
if (num === 1) {
|
||||||
|
state.currentPage1 = 1;
|
||||||
|
} else if (num === 2) {
|
||||||
|
// 如果滑到底部,则加载下一页
|
||||||
|
state.currentPage1++;
|
||||||
|
getMember();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
let manager = "";
|
let manager = "";
|
||||||
let managerId = "";
|
let managerId = "";
|
||||||
@@ -649,11 +717,9 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 资源归属 sourceBelongId 后续给接口
|
// 资源归属 sourceBelongId 后续给接口
|
||||||
const classifyList2 = ref([
|
const classifyList2 = computed(() => {
|
||||||
{ value: 1, label: "项目一" },
|
return store.state.orgtreeList ? store.state.orgtreeList : ref([]);
|
||||||
{ value: 2, label: "项目二" },
|
});
|
||||||
{ value: 3, label: "项目三" },
|
|
||||||
]);
|
|
||||||
|
|
||||||
let sourceBelongIdC = "";
|
let sourceBelongIdC = "";
|
||||||
const classificationChange2 = (key) => {
|
const classificationChange2 = (key) => {
|
||||||
@@ -663,10 +729,7 @@ export default {
|
|||||||
|
|
||||||
// 项目级别
|
// 项目级别
|
||||||
const classifyList3 = ref([
|
const classifyList3 = ref([
|
||||||
{ value: 1, label: "集团级" },
|
// { value: 1, label: "集团级" },
|
||||||
{ value: 2, label: "组织级" },
|
|
||||||
{ value: 3, label: "现地级" },
|
|
||||||
{ value: 4, label: "部门级" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let levels = "";
|
let levels = "";
|
||||||
@@ -677,10 +740,7 @@ export default {
|
|||||||
|
|
||||||
// 培训分类
|
// 培训分类
|
||||||
const classifyList4 = ref([
|
const classifyList4 = ref([
|
||||||
{ value: 1, label: "集团级" },
|
// { value: 1, label: "集团级" },
|
||||||
{ value: 2, label: "组织级" },
|
|
||||||
{ value: 3, label: "现地级" },
|
|
||||||
{ value: 4, label: "部门级" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let systemid = "";
|
let systemid = "";
|
||||||
@@ -688,17 +748,94 @@ export default {
|
|||||||
console.log(`selected ${key}`, classifyList4);
|
console.log(`selected ${key}`, classifyList4);
|
||||||
systemid = key;
|
systemid = key;
|
||||||
};
|
};
|
||||||
|
//获取分类、封面图、项目级别、培训分类-----------字典配置-------------------------------
|
||||||
|
const getDictList = (param) => {
|
||||||
|
let obj = {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
setCode: param,
|
||||||
|
};
|
||||||
|
api1
|
||||||
|
.getDict(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("获取字典成功", res);
|
||||||
|
if (res.status === 200) {
|
||||||
|
if (param === "projectClass") {
|
||||||
|
classifyList.value = res.data.data.rows;
|
||||||
|
}
|
||||||
|
if (param === "projectPic") {
|
||||||
|
if (res.data.data.rows.length > 0) {
|
||||||
|
imageUrl.value = res.data.data.rows[0].dictValue;
|
||||||
|
picUrl = res.data.data.rows[0].dictValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (param === "projectLevel") {
|
||||||
|
classifyList3.value = res.data.data.rows;
|
||||||
|
}
|
||||||
|
if (param === "projectSys") {
|
||||||
|
classifyList4.value = res.data.data.rows;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取字典失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getDictList("projectClass");
|
||||||
|
getDictList("projectPic");
|
||||||
|
getDictList("projectLevel");
|
||||||
|
getDictList("projectSys");
|
||||||
|
//获取分类、封面图、项目级别、培训分类---------------字典配置---------------------------
|
||||||
|
|
||||||
// 模版
|
// 模版
|
||||||
const classifyList5 = ref([
|
const classifyList5 = ref([
|
||||||
{ value: 1, label: "模版一" },
|
// { value: 1, label: "模版一" },
|
||||||
{ value: 2, label: "模版二" },
|
|
||||||
{ value: 3, label: "模版三" },
|
|
||||||
{ value: 4, label: "模版四" },
|
|
||||||
]);
|
]);
|
||||||
const classificationChange5 = (key) => {
|
const classificationChange5 = (key) => {
|
||||||
console.log(`selected ${key}`, classifyList5);
|
console.log(`selected ${key}`, classifyList5);
|
||||||
};
|
};
|
||||||
|
//获取模版列表
|
||||||
|
const getTemplate = () => {
|
||||||
|
let obj = {
|
||||||
|
pageNo: state.currentPage,
|
||||||
|
pageSize: state.pageSize,
|
||||||
|
// projectId:id?id:''
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.getTemplate(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("获取模版列表", res);
|
||||||
|
state.totalPages = Number(res.data.data.pages);
|
||||||
|
if (res.status === 200) {
|
||||||
|
let arr = res.data.data.rows;
|
||||||
|
let array = classifyList5.value;
|
||||||
|
arr.map((value) => {
|
||||||
|
let obj = {
|
||||||
|
value: value.projectTemplateId,
|
||||||
|
label: value.name,
|
||||||
|
};
|
||||||
|
array.push(obj);
|
||||||
|
});
|
||||||
|
classifyList5.value = array;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取模版列表失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getTemplate();
|
||||||
|
//模版滚动加载模板信息
|
||||||
|
const templateScroll = (e) => {
|
||||||
|
// console.log("滚动", e, b);
|
||||||
|
let num = scrollLoad(e);
|
||||||
|
if (num === 1) {
|
||||||
|
state.currentPage = 1;
|
||||||
|
} else if (num === 2) {
|
||||||
|
// 如果滑到底部,则加载下一页
|
||||||
|
state.currentPage++;
|
||||||
|
getTemplate();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// 项目说明
|
// 项目说明
|
||||||
const remark = ref("");
|
const remark = ref("");
|
||||||
@@ -906,6 +1043,9 @@ export default {
|
|||||||
isEdit,
|
isEdit,
|
||||||
backPage,
|
backPage,
|
||||||
dateFormatList,
|
dateFormatList,
|
||||||
|
|
||||||
|
templateScroll,
|
||||||
|
memberScroll,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -167,6 +167,7 @@
|
|||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -192,7 +193,6 @@
|
|||||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||||
placeholder="自动带出 可修改"
|
placeholder="自动带出 可修改"
|
||||||
allow-clear
|
allow-clear
|
||||||
tree-default-expand-all
|
|
||||||
:tree-data="classifyList2"
|
:tree-data="classifyList2"
|
||||||
:fieldNames="{
|
:fieldNames="{
|
||||||
children: 'treeChildList',
|
children: 'treeChildList',
|
||||||
@@ -416,7 +416,7 @@ import dayjs from "dayjs";
|
|||||||
import * as api from "../../api/index";
|
import * as api from "../../api/index";
|
||||||
import * as api1 from "../../api/index1";
|
import * as api1 from "../../api/index1";
|
||||||
import { storage } from "../../api/storage";
|
import { storage } from "../../api/storage";
|
||||||
import { toDate } from "../../api/method";
|
import { toDate, scrollLoad } from "../../api/method";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
name: "projectAdd",
|
name: "projectAdd",
|
||||||
@@ -441,6 +441,9 @@ export default {
|
|||||||
pageSize: 10, //每页10条数据
|
pageSize: 10, //每页10条数据
|
||||||
totalPages: 0, //总页数
|
totalPages: 0, //总页数
|
||||||
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
||||||
|
|
||||||
|
currentPage1: 1, //项目经理
|
||||||
|
pageSize1: 10, //项目经理
|
||||||
});
|
});
|
||||||
//分类列表
|
//分类列表
|
||||||
const classifyList = ref([]);
|
const classifyList = ref([]);
|
||||||
@@ -764,12 +767,47 @@ export default {
|
|||||||
endTime = new Date(dateString[1]).getTime() / 1000;
|
endTime = new Date(dateString[1]).getTime() / 1000;
|
||||||
};
|
};
|
||||||
// 项目经理 后续接口调用
|
// 项目经理 后续接口调用
|
||||||
const classifyList1 = ref([
|
const classifyList1 = ref([]);
|
||||||
{ value: 1, label: "李俊国" },
|
//获取学员
|
||||||
{ value: 2, label: "将小米" },
|
const getMember = () => {
|
||||||
{ value: 3, label: "刘孟君" },
|
api1
|
||||||
]);
|
.getMemberInfo({
|
||||||
//获取
|
pageNo: state.currentPage1,
|
||||||
|
pageSize: state.pageSize1,
|
||||||
|
keyWord: "",
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
let arr = res.data.data.rows;
|
||||||
|
let array = classifyList1.value;
|
||||||
|
arr.map((value) => {
|
||||||
|
let obj = {
|
||||||
|
value: value.id,
|
||||||
|
label: value.realName,
|
||||||
|
};
|
||||||
|
array.push(obj);
|
||||||
|
});
|
||||||
|
classifyList1.value = array;
|
||||||
|
console.log("获取学员", res.data);
|
||||||
|
// classifyList1.value = res.data.data.rows;
|
||||||
|
// state.tableDataTotal = res.data.data.total;
|
||||||
|
// return res.data.data.rows;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getMember();
|
||||||
|
//学员滚动加载信息
|
||||||
|
const memberScroll = (e) => {
|
||||||
|
// console.log("滚动", e, b);
|
||||||
|
let num = scrollLoad(e);
|
||||||
|
if (num === 1) {
|
||||||
|
state.currentPage1 = 1;
|
||||||
|
} else if (num === 2) {
|
||||||
|
// 如果滑到底部,则加载下一页
|
||||||
|
state.currentPage1++;
|
||||||
|
getMember();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//选择处理项目经理
|
//选择处理项目经理
|
||||||
let manager = "";
|
let manager = "";
|
||||||
@@ -929,19 +967,13 @@ export default {
|
|||||||
//模版滚动加载模板信息
|
//模版滚动加载模板信息
|
||||||
const templateScroll = (e) => {
|
const templateScroll = (e) => {
|
||||||
// console.log("滚动", e, b);
|
// console.log("滚动", e, b);
|
||||||
const { target } = e;
|
let num = scrollLoad(e);
|
||||||
const scrllHeight = target.scrollHeight - target.scrollTop;
|
if (num === 1) {
|
||||||
const clientHeight = target.clientHeight;
|
|
||||||
// console.log("scrllHeight", scrllHeight, clientHeight);
|
|
||||||
if (scrllHeight === 0 && clientHeight === 0) {
|
|
||||||
state.currentPage = 1;
|
state.currentPage = 1;
|
||||||
} else if (scrllHeight - clientHeight == 0) {
|
} else if (num === 2) {
|
||||||
// 下拉到底部时
|
// 如果滑到底部,则加载下一页
|
||||||
if (state.currentPage < state.totalPages) {
|
state.currentPage++;
|
||||||
// 如果滑到底部,则加载下一页
|
getTemplate();
|
||||||
state.currentPage++;
|
|
||||||
getTemplate();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1159,6 +1191,7 @@ export default {
|
|||||||
dateFormatList,
|
dateFormatList,
|
||||||
|
|
||||||
templateScroll,
|
templateScroll,
|
||||||
|
memberScroll,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -376,10 +376,14 @@
|
|||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="value2"
|
v-model:value="value2"
|
||||||
placeholder="四个养成"
|
placeholder="请选择分类"
|
||||||
:options="classifyList"
|
:options="classifyList"
|
||||||
@change="classificationChange"
|
@change="classificationChange"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -399,6 +403,7 @@
|
|||||||
:options="classifyList1"
|
:options="classifyList1"
|
||||||
@change="classificationChange1"
|
@change="classificationChange1"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -411,13 +416,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inname">资源归属:</div>
|
<div class="inname">资源归属:</div>
|
||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-tree-select
|
||||||
v-model:value="value5"
|
v-model:value="value5"
|
||||||
placeholder="请选择资源归属"
|
placeholder="请选择资源归属"
|
||||||
:options="classifyList5"
|
:options="classifyList5"
|
||||||
|
:tree-data="classifyList5"
|
||||||
@change="classificationChange5"
|
@change="classificationChange5"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
/>
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
</a-tree-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pubtn">
|
<div class="pubtn">
|
||||||
@@ -498,10 +510,14 @@
|
|||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="edvalue2"
|
v-model:value="edvalue2"
|
||||||
placeholder="四个养成"
|
placeholder="请选择分类"
|
||||||
:options="classifyList"
|
:options="classifyList"
|
||||||
@change="edclassificationChange"
|
@change="edclassificationChange"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -521,6 +537,7 @@
|
|||||||
:options="classifyList1"
|
:options="classifyList1"
|
||||||
@change="edclassificationChange1"
|
@change="edclassificationChange1"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -533,13 +550,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inname">资源归属:</div>
|
<div class="inname">资源归属:</div>
|
||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-tree-select
|
||||||
v-model:value="edvalue5"
|
v-model:value="edvalue5"
|
||||||
placeholder="请选择资源归属"
|
placeholder="请选择资源归属"
|
||||||
:options="classifyList5"
|
:options="classifyList5"
|
||||||
|
:tree-data="classifyList5"
|
||||||
@change="edclassificationChange5"
|
@change="edclassificationChange5"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
/>
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
</a-tree-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pubtn">
|
<div class="pubtn">
|
||||||
@@ -620,8 +644,12 @@
|
|||||||
v-model:value="value7"
|
v-model:value="value7"
|
||||||
@change="classificationChange2"
|
@change="classificationChange2"
|
||||||
:options="classifyList2"
|
:options="classifyList2"
|
||||||
placeholder="四个养成"
|
placeholder="请选择分类"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -641,6 +669,7 @@
|
|||||||
:options="classifyList3"
|
:options="classifyList3"
|
||||||
placeholder="自动带出 可编辑"
|
placeholder="自动带出 可编辑"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -653,13 +682,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inname">资源归属:</div>
|
<div class="inname">资源归属:</div>
|
||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-tree-select
|
||||||
v-model:value="value9"
|
v-model:value="value9"
|
||||||
@change="classificationChange4"
|
|
||||||
:options="classifyList4"
|
|
||||||
placeholder="请选择资源归属"
|
placeholder="请选择资源归属"
|
||||||
|
:options="classifyList4"
|
||||||
|
:tree-data="classifyList4"
|
||||||
|
@change="classificationChange4"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
/>
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
</a-tree-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pubtn">
|
<div class="pubtn">
|
||||||
@@ -746,8 +782,12 @@
|
|||||||
v-model:value="edvalue7"
|
v-model:value="edvalue7"
|
||||||
@change="edclassificationChange2"
|
@change="edclassificationChange2"
|
||||||
:options="classifyList2"
|
:options="classifyList2"
|
||||||
placeholder="四个养成"
|
placeholder="请选择分类"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -767,6 +807,7 @@
|
|||||||
:options="classifyList3"
|
:options="classifyList3"
|
||||||
placeholder="自动带出 可编辑"
|
placeholder="自动带出 可编辑"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -779,13 +820,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inname">资源归属:</div>
|
<div class="inname">资源归属:</div>
|
||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-tree-select
|
||||||
v-model:value="edvalue9"
|
v-model:value="edvalue9"
|
||||||
@change="edclassificationChange4"
|
|
||||||
:options="classifyList4"
|
|
||||||
placeholder="请选择资源归属"
|
placeholder="请选择资源归属"
|
||||||
|
:options="classifyList4"
|
||||||
|
:tree-data="classifyList4"
|
||||||
|
@change="edclassificationChange4"
|
||||||
style="border-radius: 8px; height: 40px"
|
style="border-radius: 8px; height: 40px"
|
||||||
/>
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
</a-tree-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pubtn">
|
<div class="pubtn">
|
||||||
@@ -1128,30 +1176,48 @@
|
|||||||
v-model:ProjPvisible="ProjPvisible"
|
v-model:ProjPvisible="ProjPvisible"
|
||||||
:selectProjectId="selectProjectId"
|
:selectProjectId="selectProjectId"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 查看权抽屉 -->
|
<!-- 查看权抽屉 -->
|
||||||
<proj-check-ship
|
<proj-check-ship
|
||||||
v-model:ProjCheckvisible="ProjCheckvisible"
|
v-model:ProjCheckvisible="ProjCheckvisible"
|
||||||
:selectProjectId="selectProjectId"
|
:selectProjectId="selectProjectId"
|
||||||
|
classify="checkship"
|
||||||
|
v-model:addAuthList="addAuthList"
|
||||||
|
:authClassify="authClassify"
|
||||||
/>
|
/>
|
||||||
<!-- 管理权抽屉 -->
|
<!-- 管理权抽屉 -->
|
||||||
<proj-manage-ship v-model:ProjManagevisible="ProjManagevisible" />
|
<proj-check-ship
|
||||||
|
v-model:ProjCheckvisible="ProjCheckvisible"
|
||||||
|
:selectProjectId="selectProjectId"
|
||||||
|
classify="checkship"
|
||||||
|
v-model:addAuthList="addAuthList"
|
||||||
|
:authClassify="authClassify"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs, onMounted, ref } from "vue";
|
import { reactive, toRefs, onMounted, ref, watch, computed } from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import ProjOwnerShip from "../../components/drawers/ProjectOwn";
|
import ProjOwnerShip from "../../components/drawers/ProjectOwn";
|
||||||
import ProjPowerList from "../../components/drawers/ProjPowerList";
|
import ProjPowerList from "../../components/drawers/ProjPowerList";
|
||||||
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
||||||
import ProjManageShip from "../../components/drawers/ProjManagePower";
|
// import ProjManageShip from "../../components/drawers/ProjManagePower";
|
||||||
import * as api from "../../api/index";
|
import * as api from "../../api/index";
|
||||||
import { toDate } from "../../api/method";
|
import * as api1 from "../../api/index1";
|
||||||
|
import { toDate, scrollLoad } from "../../api/method";
|
||||||
import { storage } from "../../api/storage";
|
import { storage } from "../../api/storage";
|
||||||
|
import { useStore } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
name: "projectManage",
|
name: "projectManage",
|
||||||
components: { ProjOwnerShip, ProjPowerList, ProjCheckShip, ProjManageShip },
|
components: {
|
||||||
|
ProjOwnerShip,
|
||||||
|
ProjPowerList,
|
||||||
|
ProjCheckShip,
|
||||||
|
// ProjManageShip
|
||||||
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
projectName: null,
|
projectName: null,
|
||||||
selectTime: null,
|
selectTime: null,
|
||||||
@@ -1205,6 +1271,12 @@ export default {
|
|||||||
copyProjectId: null, //复制项目id
|
copyProjectId: null, //复制项目id
|
||||||
|
|
||||||
selectProjectId: null, //选择的授权id
|
selectProjectId: null, //选择的授权id
|
||||||
|
|
||||||
|
addAuthList: null, //确定授权列表
|
||||||
|
authClassify: null, //显示的是管理权还是查看权
|
||||||
|
|
||||||
|
currentPage1: 1, //项目经理分页
|
||||||
|
pageSize1: 10,
|
||||||
});
|
});
|
||||||
// 数据接入 - start -
|
// 数据接入 - start -
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@@ -1309,9 +1381,7 @@ export default {
|
|||||||
|
|
||||||
// 项目分类
|
// 项目分类
|
||||||
const classifyList = ref([
|
const classifyList = ref([
|
||||||
{ value: 1, label: "管理者" },
|
// { value: 1, label: "管理者" },
|
||||||
{ value: 2, label: "领军者" },
|
|
||||||
{ value: 3, label: "产业人" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const classifyList1 = ref([
|
const classifyList1 = ref([
|
||||||
@@ -1324,7 +1394,7 @@ export default {
|
|||||||
const value2 = ref([]);
|
const value2 = ref([]);
|
||||||
const value3 = ref([]);
|
const value3 = ref([]);
|
||||||
const value4 = ref("");
|
const value4 = ref("");
|
||||||
const value5 = ref([]);
|
const value5 = ref(null);
|
||||||
|
|
||||||
const edvalue1 = ref("");
|
const edvalue1 = ref("");
|
||||||
const edvalue2 = ref([]);
|
const edvalue2 = ref([]);
|
||||||
@@ -1378,12 +1448,13 @@ export default {
|
|||||||
edsource = key;
|
edsource = key;
|
||||||
};
|
};
|
||||||
|
|
||||||
const classifyList5 = ref([
|
// const classifyList5 = ref([
|
||||||
{ value: 1, label: "项目一" },
|
// // { value: 1, label: "项目一" },
|
||||||
{ value: 2, label: "项目二" },
|
// ]);
|
||||||
{ value: 3, label: "项目三" },
|
// 资源归属 sourceBelongId 后续给接口
|
||||||
]);
|
const classifyList5 = computed(() => {
|
||||||
|
return store.state.orgtreeList ? store.state.orgtreeList : ref([]);
|
||||||
|
});
|
||||||
let sourceBelongId = 0;
|
let sourceBelongId = 0;
|
||||||
const classificationChange5 = (key) => {
|
const classificationChange5 = (key) => {
|
||||||
console.log(`selected ${key}`);
|
console.log(`selected ${key}`);
|
||||||
@@ -1393,7 +1464,7 @@ export default {
|
|||||||
let type = "";
|
let type = "";
|
||||||
const classificationChange = (key) => {
|
const classificationChange = (key) => {
|
||||||
console.log(`selected ${key}`);
|
console.log(`selected ${key}`);
|
||||||
console.log(classifyList.value[key - 1].label);
|
// console.log(classifyList.value[key - 1].label);
|
||||||
type = key;
|
type = key;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1500,7 +1571,7 @@ export default {
|
|||||||
value2.value = [];
|
value2.value = [];
|
||||||
value3.value = [];
|
value3.value = [];
|
||||||
value4.value = "";
|
value4.value = "";
|
||||||
value5.value = [];
|
value5.value = "";
|
||||||
state.doublepro = false;
|
state.doublepro = false;
|
||||||
};
|
};
|
||||||
console.log(edmanage, edmanageid);
|
console.log(edmanage, edmanageid);
|
||||||
@@ -1604,9 +1675,7 @@ export default {
|
|||||||
const value9 = ref([]);
|
const value9 = ref([]);
|
||||||
|
|
||||||
const classifyList2 = ref([
|
const classifyList2 = ref([
|
||||||
{ value: 1, label: "管理者" },
|
// { value: 1, label: "管理者" },
|
||||||
{ value: 2, label: "领军者" },
|
|
||||||
{ value: 3, label: "产业人" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let categoryT = "";
|
let categoryT = "";
|
||||||
@@ -1616,9 +1685,7 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const classifyList3 = ref([
|
const classifyList3 = ref([
|
||||||
{ value: 1, label: "李俊国" },
|
// { value: 1, label: "李俊国" },
|
||||||
{ value: 2, label: "将小米" },
|
|
||||||
{ value: 3, label: "刘孟君" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let managerT = "";
|
let managerT = "";
|
||||||
@@ -1641,12 +1708,10 @@ export default {
|
|||||||
managerT = mstr;
|
managerT = mstr;
|
||||||
managerIdT = midstr;
|
managerIdT = midstr;
|
||||||
};
|
};
|
||||||
|
// 资源归属 sourceBelongId 后续给接口
|
||||||
const classifyList4 = ref([
|
const classifyList4 = computed(() => {
|
||||||
{ value: 1, label: "项目一" },
|
return store.state.orgtreeList ? store.state.orgtreeList : ref([]);
|
||||||
{ value: 2, label: "项目二" },
|
});
|
||||||
{ value: 3, label: "项目三" },
|
|
||||||
]);
|
|
||||||
|
|
||||||
let sourceBelongIdT = "";
|
let sourceBelongIdT = "";
|
||||||
const classificationChange4 = (key) => {
|
const classificationChange4 = (key) => {
|
||||||
@@ -1871,6 +1936,75 @@ export default {
|
|||||||
state.eddoublesonpro = false;
|
state.eddoublesonpro = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//获取分类、封面图、项目级别、培训分类-----------字典配置-------------------------------
|
||||||
|
const getDictList = (param) => {
|
||||||
|
let obj = {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
setCode: param,
|
||||||
|
};
|
||||||
|
api1
|
||||||
|
.getDict(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("获取字典成功", res);
|
||||||
|
if (res.status === 200) {
|
||||||
|
if (param === "projectClass") {
|
||||||
|
classifyList.value = res.data.data.rows;
|
||||||
|
classifyList2.value = res.data.data.rows;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取字典失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getDictList("projectClass");
|
||||||
|
// getDictList("projectLevel");
|
||||||
|
// getDictList("projectSys");
|
||||||
|
//获取分类、封面图、项目级别、培训分类---------------字典配置---------------------------
|
||||||
|
|
||||||
|
//获取学员
|
||||||
|
const getMember = () => {
|
||||||
|
api1
|
||||||
|
.getMemberInfo({
|
||||||
|
pageNo: state.currentPage1,
|
||||||
|
pageSize: state.pageSize1,
|
||||||
|
keyWord: "",
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
let arr = res.data.data.rows;
|
||||||
|
let array = classifyList1.value;
|
||||||
|
arr.map((value) => {
|
||||||
|
let obj = {
|
||||||
|
value: value.id,
|
||||||
|
label: value.realName,
|
||||||
|
};
|
||||||
|
array.push(obj);
|
||||||
|
});
|
||||||
|
classifyList1.value = array;
|
||||||
|
classifyList3.value = array;
|
||||||
|
console.log("获取学员", res.data);
|
||||||
|
// classifyList1.value = res.data.data.rows;
|
||||||
|
// state.tableDataTotal = res.data.data.total;
|
||||||
|
// return res.data.data.rows;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getMember();
|
||||||
|
//学员滚动加载信息
|
||||||
|
const memberScroll = (e) => {
|
||||||
|
// console.log("滚动", e, b);
|
||||||
|
let num = scrollLoad(e);
|
||||||
|
if (num === 1) {
|
||||||
|
state.currentPage1 = 1;
|
||||||
|
} else if (num === 2) {
|
||||||
|
// 如果滑到底部,则加载下一页
|
||||||
|
state.currentPage1++;
|
||||||
|
getMember();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//打开发布弹窗
|
//打开发布弹窗
|
||||||
const showProjectPub = (object) => {
|
const showProjectPub = (object) => {
|
||||||
state.projectPub = true;
|
state.projectPub = true;
|
||||||
@@ -2081,7 +2215,10 @@ export default {
|
|||||||
state.reviewModal = true;
|
state.reviewModal = true;
|
||||||
};
|
};
|
||||||
//确认提交审核
|
//确认提交审核
|
||||||
const reviewProject = () => {};
|
const reviewProject = () => {
|
||||||
|
state.reviewModal = false;
|
||||||
|
message.success("提交成功");
|
||||||
|
};
|
||||||
//关闭提交审核弹窗
|
//关闭提交审核弹窗
|
||||||
const closeReviewModal = () => {
|
const closeReviewModal = () => {
|
||||||
state.reviewModal = false;
|
state.reviewModal = false;
|
||||||
@@ -2092,7 +2229,10 @@ export default {
|
|||||||
state.recallReviewModal = true;
|
state.recallReviewModal = true;
|
||||||
};
|
};
|
||||||
//确认提交审核
|
//确认提交审核
|
||||||
const recallReviewProject = () => {};
|
const recallReviewProject = () => {
|
||||||
|
state.recallReviewModal = false;
|
||||||
|
message.success("撤回成功");
|
||||||
|
};
|
||||||
//关闭提交审核弹窗
|
//关闭提交审核弹窗
|
||||||
const closeRecallReviewModal = () => {
|
const closeRecallReviewModal = () => {
|
||||||
state.recallReviewModal = false;
|
state.recallReviewModal = false;
|
||||||
@@ -2285,7 +2425,7 @@ export default {
|
|||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjManage();
|
showProjManage(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
管理权
|
管理权
|
||||||
@@ -2368,7 +2508,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("点击了111");
|
console.log("点击了111");
|
||||||
showProjOwner();
|
showProjOwner(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
归属权
|
归属权
|
||||||
@@ -2387,7 +2527,7 @@ export default {
|
|||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjManage();
|
showProjManage(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
管理权
|
管理权
|
||||||
@@ -2457,7 +2597,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("点击了111");
|
console.log("点击了111");
|
||||||
showProjOwner();
|
showProjOwner(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
归属权
|
归属权
|
||||||
@@ -2476,7 +2616,7 @@ export default {
|
|||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjManage();
|
showProjManage(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
管理权
|
管理权
|
||||||
@@ -2578,7 +2718,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("点击了111");
|
console.log("点击了111");
|
||||||
showProjOwner();
|
showProjOwner(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
归属权
|
归属权
|
||||||
@@ -2597,7 +2737,7 @@ export default {
|
|||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjManage();
|
showProjManage(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
管理权
|
管理权
|
||||||
@@ -2672,7 +2812,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("点击了111");
|
console.log("点击了111");
|
||||||
showProjOwner();
|
showProjOwner(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
归属权
|
归属权
|
||||||
@@ -2691,7 +2831,7 @@ export default {
|
|||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjManage();
|
showProjManage(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
管理权
|
管理权
|
||||||
@@ -2745,7 +2885,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("点击了111");
|
console.log("点击了111");
|
||||||
showProjOwner();
|
showProjOwner(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
归属权
|
归属权
|
||||||
@@ -2764,7 +2904,7 @@ export default {
|
|||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjManage();
|
showProjManage(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
管理权
|
管理权
|
||||||
@@ -2919,7 +3059,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("点击了111");
|
console.log("点击了111");
|
||||||
showProjOwner();
|
showProjOwner(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
归属权
|
归属权
|
||||||
@@ -2938,7 +3078,7 @@ export default {
|
|||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjManage();
|
showProjManage(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
管理权
|
管理权
|
||||||
@@ -3265,11 +3405,15 @@ export default {
|
|||||||
state.ProjPvisible = true;
|
state.ProjPvisible = true;
|
||||||
};
|
};
|
||||||
const showProjCheck = (id) => {
|
const showProjCheck = (id) => {
|
||||||
|
state.authClassify = 1;
|
||||||
state.selectProjectId = id;
|
state.selectProjectId = id;
|
||||||
state.ProjCheckvisible = true;
|
state.ProjCheckvisible = true;
|
||||||
};
|
};
|
||||||
const showProjManage = () => {
|
const showProjManage = (id) => {
|
||||||
state.ProjManagevisible = true;
|
state.authClassify = 2;
|
||||||
|
state.selectProjectId = id;
|
||||||
|
// state.ProjManagevisible = true;
|
||||||
|
state.ProjCheckvisible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
const closeReminderModal = () => {
|
const closeReminderModal = () => {
|
||||||
@@ -3279,6 +3423,36 @@ export default {
|
|||||||
state.reminderModal = false;
|
state.reminderModal = false;
|
||||||
state.estabish = true;
|
state.estabish = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//添加权限
|
||||||
|
watch(
|
||||||
|
() => state.addAuthList,
|
||||||
|
(res) => {
|
||||||
|
console.log("res", res, state.addAuthList);
|
||||||
|
let obj = {
|
||||||
|
type: 2,
|
||||||
|
tag:
|
||||||
|
state.authClassify === 1 ? 3 : state.authClassify === 2 ? 4 : null,
|
||||||
|
opt: 3,
|
||||||
|
deptList: res[1],
|
||||||
|
groupList: res[2],
|
||||||
|
refId: state.selectProjectId,
|
||||||
|
pageNo: 20,
|
||||||
|
pageSize: 1,
|
||||||
|
studentList: res[0],
|
||||||
|
};
|
||||||
|
console.log("obj", obj);
|
||||||
|
api1
|
||||||
|
.optionAuthPerm(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("添加授权成功", res);
|
||||||
|
message.success("添加授权成功");
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("添加授权失败", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
selectProjectName,
|
selectProjectName,
|
||||||
@@ -3388,6 +3562,7 @@ export default {
|
|||||||
copyProject,
|
copyProject,
|
||||||
closeReminderModal,
|
closeReminderModal,
|
||||||
okReminderModal,
|
okReminderModal,
|
||||||
|
memberScroll,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -62,13 +62,17 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="classifySelect"
|
v-model:value="classifySelect"
|
||||||
placeholder="四个养成"
|
placeholder="请选择分类"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:options="classifyList"
|
:options="classifyList"
|
||||||
@change="classificationChange"
|
@change="classificationChange"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -169,6 +173,7 @@
|
|||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -183,18 +188,26 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="in select">
|
<div class="in select">
|
||||||
<a-select
|
<a-tree-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="classifySelect2"
|
v-model:value="classifySelect2"
|
||||||
|
style="width: 100%"
|
||||||
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||||
placeholder="自动带出 可修改"
|
placeholder="自动带出 可修改"
|
||||||
:options="classifyList2"
|
:options="classifyList2"
|
||||||
@change="classificationChange2"
|
@change="classificationChange2"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
/>
|
:tree-data="classifyList2"
|
||||||
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
></a-tree-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name name2">
|
<div class="name name2">
|
||||||
@@ -252,6 +265,10 @@
|
|||||||
@change="classificationChange3"
|
@change="classificationChange3"
|
||||||
placeholder="集团级/组织级/现地级/部门级"
|
placeholder="集团级/组织级/现地级/部门级"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -275,6 +292,10 @@
|
|||||||
@change="classificationChange4"
|
@change="classificationChange4"
|
||||||
placeholder="集团级/组织级/现地级/部门级"
|
placeholder="集团级/组织级/现地级/部门级"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -355,6 +376,7 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:options="classifyList5"
|
:options="classifyList5"
|
||||||
@change="classificationChange5"
|
@change="classificationChange5"
|
||||||
|
@popupScroll="templateScroll"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -372,16 +394,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs, ref } from "vue";
|
import { reactive, toRefs, ref, computed } from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import * as api from "../../api/index";
|
import * as api from "../../api/index";
|
||||||
import { toDate } from "../../api/method";
|
import * as api1 from "../../api/index1";
|
||||||
|
import { toDate, scrollLoad } from "../../api/method";
|
||||||
|
import { useStore } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
name: "projectAdd",
|
name: "projectAdd",
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
// 编辑页面跳转过来时候,自动填充表格
|
// 编辑页面跳转过来时候,自动填充表格
|
||||||
const routers = useRoute();
|
const routers = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@@ -398,12 +422,20 @@ export default {
|
|||||||
valueE1: null,
|
valueE1: null,
|
||||||
valueE2: null,
|
valueE2: null,
|
||||||
classifySelect1: [],
|
classifySelect1: [],
|
||||||
classifySelect2: [],
|
classifySelect2: null, //选中的资源归属信息
|
||||||
classifySelect3: [],
|
classifySelect3: null, //选中的项目级别信息
|
||||||
classifySelect4: [],
|
classifySelect4: null, //选中的培训分类信息
|
||||||
rangevalue: [],
|
rangevalue: [],
|
||||||
projectAscription: "",
|
projectAscription: "",
|
||||||
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
||||||
|
|
||||||
|
currentPage: 1, //当前页
|
||||||
|
tableDataTotal: -1, //模版列表总数
|
||||||
|
pageSize: 10, //每页10条数据
|
||||||
|
totalPages: 0, //总页数
|
||||||
|
|
||||||
|
currentPage1: 1, //项目经理
|
||||||
|
pageSize1: 10, //项目经理
|
||||||
});
|
});
|
||||||
|
|
||||||
if (routers.query.name == undefined) {
|
if (routers.query.name == undefined) {
|
||||||
@@ -489,9 +521,7 @@ export default {
|
|||||||
const projectName = ref("");
|
const projectName = ref("");
|
||||||
|
|
||||||
const classifyList = ref([
|
const classifyList = ref([
|
||||||
{ value: 1, label: "管理者" },
|
// { value: 1, label: "管理者" },
|
||||||
{ value: 2, label: "领军者" },
|
|
||||||
{ value: 3, label: "产业人" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let projectType = "";
|
let projectType = "";
|
||||||
@@ -615,11 +645,49 @@ export default {
|
|||||||
|
|
||||||
// 项目经理 后续接口调用
|
// 项目经理 后续接口调用
|
||||||
const classifyList1 = ref([
|
const classifyList1 = ref([
|
||||||
{ value: 1, label: "李俊国" },
|
// { value: 1, label: "李俊国" },
|
||||||
{ value: 2, label: "将小米" },
|
|
||||||
{ value: 3, label: "刘孟君" },
|
|
||||||
]);
|
]);
|
||||||
|
//获取学员
|
||||||
|
const getMember = () => {
|
||||||
|
api1
|
||||||
|
.getMemberInfo({
|
||||||
|
pageNo: state.currentPage1,
|
||||||
|
pageSize: state.pageSize1,
|
||||||
|
keyWord: "",
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
let arr = res.data.data.rows;
|
||||||
|
let array = classifyList1.value;
|
||||||
|
arr.map((value) => {
|
||||||
|
let obj = {
|
||||||
|
value: value.id,
|
||||||
|
label: value.realName,
|
||||||
|
};
|
||||||
|
array.push(obj);
|
||||||
|
});
|
||||||
|
classifyList1.value = array;
|
||||||
|
console.log("获取学员", res.data);
|
||||||
|
// classifyList1.value = res.data.data.rows;
|
||||||
|
// state.tableDataTotal = res.data.data.total;
|
||||||
|
// return res.data.data.rows;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getMember();
|
||||||
|
//学员滚动加载信息
|
||||||
|
const memberScroll = (e) => {
|
||||||
|
// console.log("滚动", e, b);
|
||||||
|
let num = scrollLoad(e);
|
||||||
|
if (num === 1) {
|
||||||
|
state.currentPage1 = 1;
|
||||||
|
} else if (num === 2) {
|
||||||
|
// 如果滑到底部,则加载下一页
|
||||||
|
state.currentPage1++;
|
||||||
|
getMember();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//选择处理项目经理
|
||||||
let manager = "";
|
let manager = "";
|
||||||
let managerId = "";
|
let managerId = "";
|
||||||
const classificationChange1 = (key, options) => {
|
const classificationChange1 = (key, options) => {
|
||||||
@@ -649,11 +717,9 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 资源归属 sourceBelongId 后续给接口
|
// 资源归属 sourceBelongId 后续给接口
|
||||||
const classifyList2 = ref([
|
const classifyList2 = computed(() => {
|
||||||
{ value: 1, label: "项目一" },
|
return store.state.orgtreeList ? store.state.orgtreeList : ref([]);
|
||||||
{ value: 2, label: "项目二" },
|
});
|
||||||
{ value: 3, label: "项目三" },
|
|
||||||
]);
|
|
||||||
|
|
||||||
let sourceBelongIdC = "";
|
let sourceBelongIdC = "";
|
||||||
const classificationChange2 = (key) => {
|
const classificationChange2 = (key) => {
|
||||||
@@ -663,10 +729,7 @@ export default {
|
|||||||
|
|
||||||
// 项目级别
|
// 项目级别
|
||||||
const classifyList3 = ref([
|
const classifyList3 = ref([
|
||||||
{ value: 1, label: "集团级" },
|
// { value: 1, label: "集团级" },
|
||||||
{ value: 2, label: "组织级" },
|
|
||||||
{ value: 3, label: "现地级" },
|
|
||||||
{ value: 4, label: "部门级" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let levels = "";
|
let levels = "";
|
||||||
@@ -677,10 +740,7 @@ export default {
|
|||||||
|
|
||||||
// 培训分类
|
// 培训分类
|
||||||
const classifyList4 = ref([
|
const classifyList4 = ref([
|
||||||
{ value: 1, label: "集团级" },
|
// { value: 1, label: "集团级" },
|
||||||
{ value: 2, label: "组织级" },
|
|
||||||
{ value: 3, label: "现地级" },
|
|
||||||
{ value: 4, label: "部门级" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let systemid = "";
|
let systemid = "";
|
||||||
@@ -688,17 +748,94 @@ export default {
|
|||||||
console.log(`selected ${key}`, classifyList4);
|
console.log(`selected ${key}`, classifyList4);
|
||||||
systemid = key;
|
systemid = key;
|
||||||
};
|
};
|
||||||
|
//获取分类、封面图、项目级别、培训分类-----------字典配置-------------------------------
|
||||||
|
const getDictList = (param) => {
|
||||||
|
let obj = {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
setCode: param,
|
||||||
|
};
|
||||||
|
api1
|
||||||
|
.getDict(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("获取字典成功", res);
|
||||||
|
if (res.status === 200) {
|
||||||
|
if (param === "projectClass") {
|
||||||
|
classifyList.value = res.data.data.rows;
|
||||||
|
}
|
||||||
|
if (param === "projectPic") {
|
||||||
|
if (res.data.data.rows.length > 0) {
|
||||||
|
imageUrl.value = res.data.data.rows[0].dictValue;
|
||||||
|
picUrl = res.data.data.rows[0].dictValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (param === "projectLevel") {
|
||||||
|
classifyList3.value = res.data.data.rows;
|
||||||
|
}
|
||||||
|
if (param === "projectSys") {
|
||||||
|
classifyList4.value = res.data.data.rows;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取字典失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getDictList("projectClass");
|
||||||
|
getDictList("projectPic");
|
||||||
|
getDictList("projectLevel");
|
||||||
|
getDictList("projectSys");
|
||||||
|
//获取分类、封面图、项目级别、培训分类---------------字典配置---------------------------
|
||||||
|
|
||||||
// 模版
|
// 模版
|
||||||
const classifyList5 = ref([
|
const classifyList5 = ref([
|
||||||
{ value: 1, label: "模版一" },
|
// { value: 1, label: "模版一" },
|
||||||
{ value: 2, label: "模版二" },
|
|
||||||
{ value: 3, label: "模版三" },
|
|
||||||
{ value: 4, label: "模版四" },
|
|
||||||
]);
|
]);
|
||||||
const classificationChange5 = (key) => {
|
const classificationChange5 = (key) => {
|
||||||
console.log(`selected ${key}`, classifyList5);
|
console.log(`selected ${key}`, classifyList5);
|
||||||
};
|
};
|
||||||
|
//获取模版列表
|
||||||
|
const getTemplate = () => {
|
||||||
|
let obj = {
|
||||||
|
pageNo: state.currentPage,
|
||||||
|
pageSize: state.pageSize,
|
||||||
|
// projectId:id?id:''
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.getTemplate(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("获取模版列表", res);
|
||||||
|
state.totalPages = Number(res.data.data.pages);
|
||||||
|
if (res.status === 200) {
|
||||||
|
let arr = res.data.data.rows;
|
||||||
|
let array = classifyList5.value;
|
||||||
|
arr.map((value) => {
|
||||||
|
let obj = {
|
||||||
|
value: value.projectTemplateId,
|
||||||
|
label: value.name,
|
||||||
|
};
|
||||||
|
array.push(obj);
|
||||||
|
});
|
||||||
|
classifyList5.value = array;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取模版列表失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
getTemplate();
|
||||||
|
//模版滚动加载模板信息
|
||||||
|
const templateScroll = (e) => {
|
||||||
|
// console.log("滚动", e, b);
|
||||||
|
let num = scrollLoad(e);
|
||||||
|
if (num === 1) {
|
||||||
|
state.currentPage = 1;
|
||||||
|
} else if (num === 2) {
|
||||||
|
// 如果滑到底部,则加载下一页
|
||||||
|
state.currentPage++;
|
||||||
|
getTemplate();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// 项目说明
|
// 项目说明
|
||||||
const remark = ref("");
|
const remark = ref("");
|
||||||
@@ -906,6 +1043,9 @@ export default {
|
|||||||
isEdit,
|
isEdit,
|
||||||
backPage,
|
backPage,
|
||||||
dateFormatList,
|
dateFormatList,
|
||||||
|
|
||||||
|
templateScroll,
|
||||||
|
memberScroll,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
<div class="btnText">添加阶段</div>
|
<div class="btnText">添加阶段</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="maincon" style="background-color: #fff">
|
<div class="maincon" style="background-color: #fff">
|
||||||
|
|
||||||
<draggable
|
<draggable
|
||||||
v-model="level"
|
v-model="level"
|
||||||
chosenClass="chosen"
|
chosenClass="chosen"
|
||||||
@@ -690,13 +689,13 @@
|
|||||||
|
|
||||||
<div class="footbtn">
|
<div class="footbtn">
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="temporaryStorage">
|
||||||
<div class="btnText">暂存</div>
|
<div class="btnText">暂存</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="submitStorage">
|
||||||
<div class="btnText">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn1">
|
<div class="btn btn1" @click="cancelStorage">
|
||||||
<div class="btnText">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1039,7 +1038,7 @@ import draggable from "vuedraggable";
|
|||||||
import { storage } from "../../api/storage";
|
import { storage } from "../../api/storage";
|
||||||
import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
||||||
// import * as api1 from "../../api/index1";
|
// import * as api1 from "../../api/index1";
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
export default {
|
export default {
|
||||||
name: "TaskAdd",
|
name: "TaskAdd",
|
||||||
components: {
|
components: {
|
||||||
@@ -1059,6 +1058,7 @@ export default {
|
|||||||
UnlockMode,
|
UnlockMode,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
const router = useRouter();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
projectId: storage.get("projectId")
|
projectId: storage.get("projectId")
|
||||||
? JSON.parse(storage.get("projectId"))
|
? JSON.parse(storage.get("projectId"))
|
||||||
@@ -1683,7 +1683,6 @@ export default {
|
|||||||
state.addactivevisible = true;
|
state.addactivevisible = true;
|
||||||
state.EditActiveId = id;
|
state.EditActiveId = id;
|
||||||
state.projectTaskId = eleId;
|
state.projectTaskId = eleId;
|
||||||
|
|
||||||
};
|
};
|
||||||
const showDrawerAddEval = (id, eleId) => {
|
const showDrawerAddEval = (id, eleId) => {
|
||||||
state.addevalvisible = true;
|
state.addevalvisible = true;
|
||||||
@@ -1861,6 +1860,23 @@ export default {
|
|||||||
const showModeVisible = () => {
|
const showModeVisible = () => {
|
||||||
state.unlockModeVisible = true;
|
state.unlockModeVisible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//暂存
|
||||||
|
const temporaryStorage = () => {
|
||||||
|
message.success("暂存成功");
|
||||||
|
};
|
||||||
|
//确定
|
||||||
|
const submitStorage = () => {
|
||||||
|
router.push({
|
||||||
|
path: "/leveladd",
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//取消
|
||||||
|
const cancelStorage = () => {
|
||||||
|
router.push({
|
||||||
|
path: "/leveladd",
|
||||||
|
});
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
selectProjectName,
|
selectProjectName,
|
||||||
@@ -1914,6 +1930,10 @@ export default {
|
|||||||
deleteStage,
|
deleteStage,
|
||||||
|
|
||||||
showModeVisible,
|
showModeVisible,
|
||||||
|
|
||||||
|
temporaryStorage,
|
||||||
|
submitStorage,
|
||||||
|
cancelStorage,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -698,13 +698,13 @@
|
|||||||
|
|
||||||
<div class="footbtn">
|
<div class="footbtn">
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="temporaryStorage">
|
||||||
<div class="btnText">暂存</div>
|
<div class="btnText">暂存</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="submitStorage">
|
||||||
<div class="btnText">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn1">
|
<div class="btn btn1" @click="cancelStorage">
|
||||||
<div class="btnText">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1046,7 +1046,7 @@ import draggable from "vuedraggable";
|
|||||||
import { storage } from "../../api/storage";
|
import { storage } from "../../api/storage";
|
||||||
import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
||||||
// import * as api1 from "../../api/index1";
|
// import * as api1 from "../../api/index1";
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
const drawercolumns = [
|
const drawercolumns = [
|
||||||
{
|
{
|
||||||
title: "项目名称",
|
title: "项目名称",
|
||||||
@@ -1105,6 +1105,7 @@ export default {
|
|||||||
UnlockMode,
|
UnlockMode,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
const router = useRouter();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
projectTemplateId: storage.get("projectTemplateId")
|
projectTemplateId: storage.get("projectTemplateId")
|
||||||
? JSON.parse(storage.get("projectTemplateId"))
|
? JSON.parse(storage.get("projectTemplateId"))
|
||||||
@@ -1993,6 +1994,24 @@ export default {
|
|||||||
const showModeVisible = () => {
|
const showModeVisible = () => {
|
||||||
state.unlockModeVisible = true;
|
state.unlockModeVisible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//暂存
|
||||||
|
const temporaryStorage = () => {
|
||||||
|
message.success("暂存成功");
|
||||||
|
};
|
||||||
|
//确定
|
||||||
|
const submitStorage = () => {
|
||||||
|
router.push({
|
||||||
|
path: "/leveladd",
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//取消
|
||||||
|
const cancelStorage = () => {
|
||||||
|
router.push({
|
||||||
|
path: "/leveladd",
|
||||||
|
});
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
selectProjectName,
|
selectProjectName,
|
||||||
@@ -2049,6 +2068,11 @@ export default {
|
|||||||
deleteStage,
|
deleteStage,
|
||||||
|
|
||||||
showModeVisible,
|
showModeVisible,
|
||||||
|
|
||||||
|
|
||||||
|
temporaryStorage,
|
||||||
|
submitStorage,
|
||||||
|
cancelStorage,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user