mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-19 07:46:46 +08:00
Merge branch 'master' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage
This commit is contained in:
6
package-lock.json
generated
6
package-lock.json
generated
@@ -9578,7 +9578,7 @@
|
|||||||
},
|
},
|
||||||
"node_modules/sortablejs": {
|
"node_modules/sortablejs": {
|
||||||
"version": "1.15.0",
|
"version": "1.15.0",
|
||||||
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz",
|
"resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz",
|
||||||
"integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w=="
|
"integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w=="
|
||||||
},
|
},
|
||||||
"node_modules/source-map": {
|
"node_modules/source-map": {
|
||||||
@@ -10524,7 +10524,7 @@
|
|||||||
},
|
},
|
||||||
"node_modules/vuedraggable": {
|
"node_modules/vuedraggable": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz",
|
||||||
"integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==",
|
"integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"sortablejs": "1.14.0"
|
"sortablejs": "1.14.0"
|
||||||
@@ -10535,7 +10535,7 @@
|
|||||||
},
|
},
|
||||||
"node_modules/vuedraggable/node_modules/sortablejs": {
|
"node_modules/vuedraggable/node_modules/sortablejs": {
|
||||||
"version": "1.14.0",
|
"version": "1.14.0",
|
||||||
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz",
|
"resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz",
|
||||||
"integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w=="
|
"integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w=="
|
||||||
},
|
},
|
||||||
"node_modules/vuex": {
|
"node_modules/vuex": {
|
||||||
|
|||||||
@@ -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-21 15:13:50
|
* @LastEditTime: 2022-11-23 09:59:26
|
||||||
* @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
|
||||||
*/
|
*/
|
||||||
@@ -26,9 +26,10 @@ http.interceptors.request.use(
|
|||||||
const token = localStorage.getItem("token");
|
const token = localStorage.getItem("token");
|
||||||
if (token) {
|
if (token) {
|
||||||
// config.headers.token = token;
|
// config.headers.token = token;
|
||||||
config.headers.token = 123456; //测试1111
|
config.headers.token = token; //测试1111
|
||||||
} else {
|
} else {
|
||||||
console.log("当前请求页面无token,请执行操作!!!");
|
console.log("当前请求页面无token,请执行操作!!!");
|
||||||
|
|
||||||
// 此处测试默认配置token
|
// 此处测试默认配置token
|
||||||
config.headers.token = "123456";
|
config.headers.token = "123456";
|
||||||
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njg4NjI2MTAsImV4cCI6MTY2ODg2OTgxMCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.defa91ecb2b61d9b20d858db0c2c8d7d80dea4613cb2559a22569b7df36b3f6b";
|
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njg4NjI2MTAsImV4cCI6MTY2ODg2OTgxMCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.defa91ecb2b61d9b20d858db0c2c8d7d80dea4613cb2559a22569b7df36b3f6b";
|
||||||
|
|||||||
@@ -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-21 16:39:08
|
* @LastEditTime: 2022-11-22 18:04:47
|
||||||
* @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
|
||||||
*/
|
*/
|
||||||
@@ -87,6 +87,10 @@ export const billboard = (obj) => http.post('/admin/project/billboard', obj);
|
|||||||
|
|
||||||
//获取字典信息
|
//获取字典信息
|
||||||
export const getDict = (obj) => http.post('/dict/getList', obj)
|
export const getDict = (obj) => http.post('/dict/getList', obj)
|
||||||
|
//获取组织树
|
||||||
|
export const getOrgTree = (obj) => http.post('/admin/router/orgList', obj)
|
||||||
|
|
||||||
|
|
||||||
// 获取组织结构树
|
// 获取组织结构树
|
||||||
export const orgtree = () => http.get('/org/tree');
|
export const orgtree = () => http.get('/org/tree');
|
||||||
|
|
||||||
|
|||||||
@@ -3,19 +3,52 @@ import http from "./config";
|
|||||||
/**
|
/**
|
||||||
* 1
|
* 1
|
||||||
*/
|
*/
|
||||||
|
//添加课程学员
|
||||||
|
export const addStudent = (obj) =>
|
||||||
|
http.post("/admin/offcourse/addStudent", obj);
|
||||||
//删除开课
|
//删除开课
|
||||||
export const deletePlan = (obj) =>
|
export const deletePlan = (obj) =>
|
||||||
http.delete("/admin/offcourse/deletePlan", obj);
|
http.delete(
|
||||||
|
"/admin/offcourse/deletePlan",
|
||||||
|
{ params: obj },
|
||||||
|
{
|
||||||
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||||
|
}
|
||||||
|
);
|
||||||
|
//获取面授课详情
|
||||||
|
export const detail = (obj) =>
|
||||||
|
http.post("/admin/offcourse/detail", obj, {
|
||||||
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||||
|
});
|
||||||
|
//获取面授课开课详情
|
||||||
|
export const detailPlan = (obj) =>
|
||||||
|
http.post("/admin/offcourse/detailPlan", obj, {
|
||||||
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||||
|
});
|
||||||
//新建或编辑面授课
|
//新建或编辑面授课
|
||||||
export const edit = (obj) => http.post("/admin/offcourse/edit", obj);
|
export const edit = (obj) => http.post("/admin/offcourse/edit", obj);
|
||||||
//新建或编辑面授课开课
|
//新建或编辑面授课开课
|
||||||
export const editPlan = (obj) => http.post("/admin/offcourse/editPlan", obj);
|
export const editPlan = (obj) => http.post("/admin/offcourse/editPlan", obj);
|
||||||
//操作面授课(发布,撤回,删除)
|
//课程导出
|
||||||
|
export const exportP = (obj) => http.post("/admin/offcourse/export", obj);
|
||||||
|
//操作面授课(发布,撤回,删除,审核,停用)
|
||||||
export const handle = (obj) => http.post("/admin/offcourse/handle", obj);
|
export const handle = (obj) => http.post("/admin/offcourse/handle", obj);
|
||||||
|
//学员操作-支持批量
|
||||||
|
export const handleStudent = (obj) =>
|
||||||
|
http.post("/admin/offcourse/handleStudent", obj);
|
||||||
//获取面授课列表
|
//获取面授课列表
|
||||||
export const list = (obj) => http.post("/admin/offcourse/list", obj);
|
export const list = (obj) => http.post("/admin/offcourse/list", obj);
|
||||||
|
//获取面授课已审核列表
|
||||||
|
export const listReview = (obj) =>
|
||||||
|
http.post("/admin/offcourse/listReview", obj);
|
||||||
//面授课开课列表
|
//面授课开课列表
|
||||||
export const planList = (obj) => http.post("/admin/offcourse/planList", obj);
|
export const planList = (obj) => http.post("/admin/offcourse/planList", obj);
|
||||||
|
//学员导出
|
||||||
|
export const studentExport = (obj) =>
|
||||||
|
http.post("/admin/offcourse/studentExport", obj);
|
||||||
//获取学员列表
|
//获取学员列表
|
||||||
export const studentList = (obj) =>
|
export const studentList = (obj) =>
|
||||||
http.post("/admin/offcourse/studentList", obj);
|
http.post("/admin/offcourse/studentList", obj);
|
||||||
|
//学习记录列表
|
||||||
|
export const studyRecordList = (obj) =>
|
||||||
|
http.post("/admin/offcourse/studyRecordList", obj);
|
||||||
|
|||||||
@@ -192,8 +192,8 @@
|
|||||||
src="../assets/images/navleft/certificate.png"
|
src="../assets/images/navleft/certificate.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<span>证书中心</span>
|
||||||
<router-link to="/certificatecenter">证书中心</router-link>
|
<!-- <router-link to="/certificatecenter">证书中心</router-link> -->
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub9" @titleClick="titleClick">
|
<a-menu-item key="sub9" @titleClick="titleClick">
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
@@ -202,7 +202,8 @@
|
|||||||
src="../assets/images/navleft/system.png"
|
src="../assets/images/navleft/system.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/systemmanage">系统管理</router-link>
|
<span>系统管理</span>
|
||||||
|
<!-- <router-link to="/systemmanage">系统管理</router-link> -->
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</div>
|
</div>
|
||||||
@@ -219,6 +220,9 @@
|
|||||||
mode="inline"
|
mode="inline"
|
||||||
@click="handleClick"
|
@click="handleClick"
|
||||||
>
|
>
|
||||||
|
<a-menu-item key="sub10" @titleClick="titleClick">
|
||||||
|
<router-link to="/coursereviewedn">审核</router-link>
|
||||||
|
</a-menu-item>
|
||||||
<a-menu-item key="sub1" @titleClick="titleClick">
|
<a-menu-item key="sub1" @titleClick="titleClick">
|
||||||
<router-link to="/learningpath">学习</router-link>
|
<router-link to="/learningpath">学习</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|||||||
@@ -150,8 +150,10 @@ export default {
|
|||||||
localStorage.setItem("stageId", props.chooseStageId);
|
localStorage.setItem("stageId", props.chooseStageId);
|
||||||
localStorage.setItem("chapterId", props.isactive);
|
localStorage.setItem("chapterId", props.isactive);
|
||||||
};
|
};
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bol) => {
|
||||||
|
if ( bol == true ) {
|
||||||
getAllCaseText()
|
getAllCaseText()
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const tableDataFunc = () => {
|
const tableDataFunc = () => {
|
||||||
const columns = [
|
const columns = [
|
||||||
@@ -182,6 +184,9 @@ export default {
|
|||||||
return columns;
|
return columns;
|
||||||
};
|
};
|
||||||
const onSelectChange = (selectedRowKeys,selectedRows)=> {
|
const onSelectChange = (selectedRowKeys,selectedRows)=> {
|
||||||
|
if(selectedRowKeys.length>2){
|
||||||
|
return
|
||||||
|
}
|
||||||
state.selectedRowKeys = selectedRowKeys;
|
state.selectedRowKeys = selectedRowKeys;
|
||||||
state.apiTaskList = selectedRows;
|
state.apiTaskList = selectedRows;
|
||||||
};
|
};
|
||||||
@@ -251,18 +256,6 @@ export default {
|
|||||||
});
|
});
|
||||||
} else if (props.isLevel == 2) {
|
} else if (props.isLevel == 2) {
|
||||||
if(state.apiTaskList.length > 1){
|
if(state.apiTaskList.length > 1){
|
||||||
// for((item,index) in state.apiTaskList){
|
|
||||||
// apiTask
|
|
||||||
// .addTask({
|
|
||||||
// "courseId": item.caseId,
|
|
||||||
// "duration": 0,
|
|
||||||
// "flag": true,
|
|
||||||
// "name": item.caseName,
|
|
||||||
// "projectId": props.projectId,
|
|
||||||
// "projectTaskId": props.projectTaskId,
|
|
||||||
// "stageId": props.chooseStageId,
|
|
||||||
// "type": 3,
|
|
||||||
// })
|
|
||||||
for(let i = 0;i <= state.apiTaskList.length;i++){
|
for(let i = 0;i <= state.apiTaskList.length;i++){
|
||||||
apiTask
|
apiTask
|
||||||
.addTask({
|
.addTask({
|
||||||
@@ -455,6 +448,9 @@ export default {
|
|||||||
.ant-table-selection-column {
|
.ant-table-selection-column {
|
||||||
padding: 0px !important;
|
padding: 0px !important;
|
||||||
padding-left: 15px !important;
|
padding-left: 15px !important;
|
||||||
|
.ant-table-selection{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.ant-table-thead > tr > th {
|
.ant-table-thead > tr > th {
|
||||||
background-color: rgba(239, 244, 252, 1);
|
background-color: rgba(239, 244, 252, 1);
|
||||||
|
|||||||
@@ -215,6 +215,8 @@ export default {
|
|||||||
projectId: props.projectId,
|
projectId: props.projectId,
|
||||||
projectTaskId: props.projectTaskId || 0,
|
projectTaskId: props.projectTaskId || 0,
|
||||||
stageId: props.chooseStageId,
|
stageId: props.chooseStageId,
|
||||||
|
evaluationTypeId: state.evaluationTypeId,
|
||||||
|
evaluationTypeName: state.evaluationTypeName,
|
||||||
type: 10,
|
type: 10,
|
||||||
})
|
})
|
||||||
.then(( ) => {
|
.then(( ) => {
|
||||||
@@ -230,6 +232,8 @@ export default {
|
|||||||
name: res.data.data.evaluationName,
|
name: res.data.data.evaluationName,
|
||||||
routerId: props.routerId,
|
routerId: props.routerId,
|
||||||
routerTaskId: props.routerTaskId || 0,
|
routerTaskId: props.routerTaskId || 0,
|
||||||
|
evaluationTypeId: state.evaluationTypeId,
|
||||||
|
evaluationTypeName: state.evaluationTypeName,
|
||||||
type: 10,
|
type: 10,
|
||||||
})
|
})
|
||||||
.then(( ) => {
|
.then(( ) => {
|
||||||
|
|||||||
@@ -78,15 +78,16 @@
|
|||||||
<div class="main_item">
|
<div class="main_item">
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-form-item has-feedback label="选择试卷" name="choosedTest">
|
<a-form-item has-feedback label="选择试卷" name="choosedTest">
|
||||||
<!-- <a-select
|
<a-button
|
||||||
dropdownClassName="dropdown-style"
|
type="primary"
|
||||||
placeholder="请输入考试名称"
|
style="width: 100px; margin-left: 35px"
|
||||||
:options="options1"
|
class="outer"
|
||||||
v-model:value="formState.choosedTest"
|
@click.prevent
|
||||||
allowClear
|
@click="selectTest()"
|
||||||
showSearch
|
>
|
||||||
/> -->
|
选择试卷
|
||||||
<a-dropdown>
|
</a-button>
|
||||||
|
<!-- <a-dropdown>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
style="width: 100px; margin-left: 35px"
|
style="width: 100px; margin-left: 35px"
|
||||||
@@ -109,16 +110,22 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown> -->
|
||||||
<span style="margin-left: 10px">
|
<span style="margin-left: 10px">
|
||||||
<a-tag
|
<a-tag
|
||||||
|
class="tag-style"
|
||||||
|
v-if="paperName != ''"
|
||||||
|
:closable="true"
|
||||||
|
>{{ paperName }}</a-tag
|
||||||
|
>
|
||||||
|
<!-- <a-tag
|
||||||
class="tag-style"
|
class="tag-style"
|
||||||
v-for="item in choosedTestList"
|
v-for="item in choosedTestList"
|
||||||
:closable="true"
|
:closable="true"
|
||||||
@close="closeTag(item.key)"
|
@close="closeTag(item.key)"
|
||||||
:key="item.key"
|
:key="item.key"
|
||||||
>{{ item.value }}</a-tag
|
>{{ item.value }}</a-tag
|
||||||
>
|
> -->
|
||||||
</span>
|
</span>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">搜索</div>
|
<div class="btnText">搜索</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="resetData">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">重置</div>
|
<div class="btnText">重置</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
:data-source="tableData"
|
:data-source="tableData"
|
||||||
:loading="tableDataTotal === -1 ? true : false"
|
:loading="tableDataTotal === -1 ? true : false"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
:row-selection="{ selectedRowKeys:selectedRowKeys,onSelect:onSelect,onChange:onSelectChange}"
|
:row-selection="{ selectedRowKeys:selectedRowKeys,onChange:onSelectChange}"
|
||||||
/>
|
/>
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
<a-pagination
|
<a-pagination
|
||||||
@@ -148,18 +148,25 @@
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
const onSelect = (record)=> {
|
// const onSelect = (record)=> {
|
||||||
state.evaluationTypeName = record.title
|
// state.evaluationTypeName = record.title
|
||||||
state.evaluationTypeId = record.quiz_code
|
// state.evaluationTypeId = record.quiz_code
|
||||||
};
|
// };
|
||||||
const onSelectChange = (selectedRowKeys)=> {
|
const onSelectChange = (selectedRowKeys,selectedRows)=> {
|
||||||
|
if(state.selectedRowKeys.length>1){
|
||||||
|
return
|
||||||
|
}
|
||||||
state.selectedRowKeys = selectedRowKeys
|
state.selectedRowKeys = selectedRowKeys
|
||||||
|
state.evaluationTypeName = selectedRows[0].record.title
|
||||||
|
state.evaluationTypeId = selectedRows[0].quiz_code
|
||||||
}
|
}
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:EvalListVisible", false);
|
ctx.emit("update:EvalListVisible", false);
|
||||||
};
|
};
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bol) => {
|
||||||
|
if ( bol == true ) {
|
||||||
getAllEvalText();
|
getAllEvalText();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const checkFinish =() =>{
|
const checkFinish =() =>{
|
||||||
let EvListDate = {
|
let EvListDate = {
|
||||||
@@ -204,15 +211,24 @@
|
|||||||
.catch(()=>{
|
.catch(()=>{
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//重置测评列表
|
||||||
|
const resetData = ()=> {
|
||||||
|
state.currentPage = 1;
|
||||||
|
state.tableData = [];
|
||||||
|
state.selectedRowKeys = [];
|
||||||
|
state.evaluationTypeId = null;
|
||||||
|
state.evaluationTypeName = "";
|
||||||
|
getAllEvalText();
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
afterVisibleChange,
|
afterVisibleChange,
|
||||||
closeDrawer,
|
closeDrawer,
|
||||||
onSelectChange,
|
onSelectChange,
|
||||||
onSelect,
|
|
||||||
getTableDataList,
|
getTableDataList,
|
||||||
checkFinish,
|
checkFinish,
|
||||||
changePagination,
|
changePagination,
|
||||||
|
resetData,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -98,7 +98,6 @@
|
|||||||
:row-selection="{
|
:row-selection="{
|
||||||
selectedRowKeys: selectedRowKeys,
|
selectedRowKeys: selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
onSelect: onSelect,
|
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
@@ -194,12 +193,20 @@ export default {
|
|||||||
selectedRowKeys: [],
|
selectedRowKeys: [],
|
||||||
tabledata: [
|
tabledata: [
|
||||||
{
|
{
|
||||||
|
key:1,
|
||||||
workNum:1,
|
workNum:1,
|
||||||
status:"已完成",
|
status:"已完成",
|
||||||
operation:"",
|
operation:"",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
workNum:1,
|
key:2,
|
||||||
|
workNum:2,
|
||||||
|
status:"未完成",
|
||||||
|
operation:"",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:3,
|
||||||
|
workNum:2,
|
||||||
status:"未完成",
|
status:"未完成",
|
||||||
operation:"",
|
operation:"",
|
||||||
}
|
}
|
||||||
@@ -341,18 +348,21 @@ export default {
|
|||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:Fvisible", false);
|
ctx.emit("update:Fvisible", false);
|
||||||
};
|
};
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bol) => {
|
||||||
|
if ( bol == true ) {
|
||||||
getManageList()
|
getManageList()
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
const selectProjectName = (value) => {
|
const selectProjectName = (value) => {
|
||||||
state.projectName = value;
|
state.projectName = value;
|
||||||
};
|
};
|
||||||
const onSelectChange = (selectedRowKeys) => {
|
const onSelectChange = (selectedRowKeys) => {
|
||||||
|
if(selectedRowKeys.length > 2){
|
||||||
|
return
|
||||||
|
}
|
||||||
state.selectedRowKeys = selectedRowKeys;
|
state.selectedRowKeys = selectedRowKeys;
|
||||||
};
|
};
|
||||||
const onSelect = (record) => {
|
|
||||||
console.log(record);
|
|
||||||
}
|
|
||||||
|
|
||||||
const allStuOver = ()=> {
|
const allStuOver = ()=> {
|
||||||
state.ASOvervisible = true
|
state.ASOvervisible = true
|
||||||
@@ -457,7 +467,6 @@ export default {
|
|||||||
closeDrawer,
|
closeDrawer,
|
||||||
afterVisibleChange,
|
afterVisibleChange,
|
||||||
onSelectChange,
|
onSelectChange,
|
||||||
onSelect,
|
|
||||||
allStuOver,
|
allStuOver,
|
||||||
showEntryScore,
|
showEntryScore,
|
||||||
godie,
|
godie,
|
||||||
@@ -672,7 +681,6 @@ export default {
|
|||||||
.tableBox {
|
.tableBox {
|
||||||
.ant-table-selection-column {
|
.ant-table-selection-column {
|
||||||
padding: 0px !important;
|
padding: 0px !important;
|
||||||
// padding-left: 45px !important;
|
|
||||||
}
|
}
|
||||||
.ant-pagination-item,
|
.ant-pagination-item,
|
||||||
.ant-pagination-prev,
|
.ant-pagination-prev,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
width="85%"
|
width="85%"
|
||||||
@after-visible-change="afterVisibleChange"
|
@after-visible-change="afterVisibleChange"
|
||||||
>
|
>
|
||||||
<div class="drawerMain" id="ownpower">
|
<div class="drawerMain" id="ProjOwnership">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headerTitle">归属权</div>
|
<div class="headerTitle">归属权</div>
|
||||||
<img
|
<img
|
||||||
@@ -101,6 +101,7 @@
|
|||||||
columnWidth: 20,
|
columnWidth: 20,
|
||||||
selectedRowKeys: selectedRowKeys,
|
selectedRowKeys: selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
|
type: 'radio',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
@@ -121,80 +122,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="onleft">
|
<div class="onleft">
|
||||||
<div class="already">已选</div>
|
<div
|
||||||
<!-- <div class="count">6</div>
|
style="
|
||||||
<div class="peo">人</div> -->
|
display: flex;
|
||||||
</div>
|
align-items: center;
|
||||||
<div class="clbox" @click="deleteAll">
|
margin-bottom: 20px;
|
||||||
<div class="colose"></div>
|
flex-wrap: wrap;
|
||||||
<span class="allclear">全部清除</span>
|
"
|
||||||
</div>
|
>
|
||||||
</div>
|
<div class="already">当前归属:</div>
|
||||||
<div class="line"></div>
|
|
||||||
<div class="tit">快速选人</div>
|
|
||||||
<div style="position: relative; min-height: 180px">
|
|
||||||
<div style="height: 160px" class="selectedsBox" id="selectedsBox">
|
|
||||||
<div class="selecteds" id="selecteds">
|
|
||||||
<!-- 遍历生成 -->
|
|
||||||
<div class="chose" v-for="item in choosepeople" :key="item.key">
|
<div class="chose" v-for="item in choosepeople" :key="item.key">
|
||||||
<div>{{ item.name }}</div>
|
<div>{{ item.name }}</div>
|
||||||
<div class="ch" @click="deleteChoosePeople(item)"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="clbox">
|
||||||
class="chose"
|
<span class="allclear">转移归属权</span>
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
margin-right: 20px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #409eff;
|
|
||||||
line-height: 22px;
|
|
||||||
"
|
|
||||||
v-if="showMore"
|
|
||||||
@click="morePeopleShow"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
查看更多
|
|
||||||
<img
|
|
||||||
style="width: 10px; height: 12px; margin-top: -2px"
|
|
||||||
src="../../assets/images/projectadd/go.png"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
class="chose"
|
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
margin-right: 20px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #409eff;
|
|
||||||
line-height: 22px;
|
|
||||||
"
|
|
||||||
v-if="showHidden"
|
|
||||||
@click="morePeopleHidden"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
收起
|
|
||||||
<img
|
|
||||||
style="width: 10px; height: 12px; margin-top: -2px"
|
|
||||||
src="../../assets/images/projectadd/pickUp.png"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn">
|
<div class="btnn">
|
||||||
@@ -202,8 +153,6 @@
|
|||||||
<button class="btn2">确定</button>
|
<button class="btn2">确定</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -567,7 +516,6 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
//快速选人-------------------------------------
|
//快速选人-------------------------------------
|
||||||
valueSelectboe: null, //快速选人的选择组织
|
valueSelectboe: null, //快速选人的选择组织
|
||||||
choosepeople: [], //总的数组
|
choosepeople: [], //总的数组
|
||||||
@@ -576,14 +524,12 @@ export default {
|
|||||||
showHidden: false, //是否显示收回
|
showHidden: false, //是否显示收回
|
||||||
selectedRowKeys: [], //表格选中的key
|
selectedRowKeys: [], //表格选中的key
|
||||||
//快速选人-------------------------------------
|
//快速选人-------------------------------------
|
||||||
|
|
||||||
});
|
});
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
state.activeKey = "1";
|
state.activeKey = "1";
|
||||||
ctx.emit("update:ownpowervisible", false);
|
ctx.emit("update:ownpowervisible", false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = (bool) => {
|
||||||
console.log("state", bool);
|
console.log("state", bool);
|
||||||
};
|
};
|
||||||
@@ -690,8 +636,6 @@ export default {
|
|||||||
|
|
||||||
// 结束 快速选人------------------------------------------------------------------
|
// 结束 快速选人------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//全部清除
|
//全部清除
|
||||||
const deleteAll = () => {
|
const deleteAll = () => {
|
||||||
//快速选人-------------------------------------
|
//快速选人-------------------------------------
|
||||||
@@ -701,7 +645,6 @@ export default {
|
|||||||
state.showHidden = false; //是否显示收回
|
state.showHidden = false; //是否显示收回
|
||||||
state.selectedRowKeys = []; //表格选中的key
|
state.selectedRowKeys = []; //表格选中的key
|
||||||
//快速选人-------------------------------------
|
//快速选人-------------------------------------
|
||||||
|
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
@@ -715,10 +658,7 @@ export default {
|
|||||||
morePeopleShow,
|
morePeopleShow,
|
||||||
morePeopleHidden,
|
morePeopleHidden,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
deleteAll,
|
deleteAll,
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -1166,7 +1106,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right {
|
.right {
|
||||||
width: 320px;
|
width: 340px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
.onerow {
|
.onerow {
|
||||||
@@ -1178,11 +1118,15 @@ export default {
|
|||||||
.onleft {
|
.onleft {
|
||||||
display: flex;
|
display: flex;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-left: 32px;
|
||||||
.already {
|
.already {
|
||||||
color: rgba(51, 51, 51, 1);
|
color: rgba(51, 51, 51, 1);
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin-left: 32px;
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
// margin-bottom: 20px;
|
// margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
@@ -1196,9 +1140,35 @@ export default {
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
.chose {
|
||||||
|
// width: 64px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
height: 24px;
|
||||||
|
// margin-top: 25px;
|
||||||
|
// margin-right: 25px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 1px solid rgba(56, 139, 225, 1);
|
||||||
|
color: rgba(56, 139, 225, 1);
|
||||||
|
font-size: 12px;
|
||||||
|
position: relative;
|
||||||
|
flex-shrink: 0;
|
||||||
|
.ch {
|
||||||
|
position: absolute;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
background-image: url(../../assets/images/basicinfo/ch.png);
|
||||||
|
right: -8px;
|
||||||
|
top: -8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.clbox {
|
.clbox {
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
|
margin-bottom: 20px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -1250,30 +1220,6 @@ export default {
|
|||||||
margin-left: 32px;
|
margin-left: 32px;
|
||||||
min-height: 100px;
|
min-height: 100px;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
.chose {
|
|
||||||
// width: 64px;
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-right: 10px;
|
|
||||||
height: 24px;
|
|
||||||
margin-top: 25px;
|
|
||||||
margin-right: 25px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border-radius: 2px;
|
|
||||||
border: 1px solid rgba(56, 139, 225, 1);
|
|
||||||
color: rgba(56, 139, 225, 1);
|
|
||||||
font-size: 12px;
|
|
||||||
position: relative;
|
|
||||||
.ch {
|
|
||||||
position: absolute;
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
background-image: url(../../assets/images/basicinfo/ch.png);
|
|
||||||
right: -8px;
|
|
||||||
top: -8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
width="85%"
|
width="85%"
|
||||||
@after-visible-change="afterVisibleChange"
|
@after-visible-change="afterVisibleChange"
|
||||||
>
|
>
|
||||||
<div class="drawerMain" id="Ownership">
|
<div class="drawerMain" id="ProjOwnership">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headerTitle">归属权</div>
|
<div class="headerTitle">归属权</div>
|
||||||
<img
|
<img
|
||||||
@@ -102,6 +102,7 @@
|
|||||||
columnWidth: 20,
|
columnWidth: 20,
|
||||||
selectedRowKeys: selectedRowKeys,
|
selectedRowKeys: selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
|
type: 'radio',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
@@ -128,70 +129,22 @@
|
|||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="onleft">
|
<div class="onleft">
|
||||||
<div class="already">已选</div>
|
<div
|
||||||
<!-- <div class="count">6</div>
|
style="
|
||||||
<div class="peo">人</div> -->
|
display: flex;
|
||||||
</div>
|
align-items: center;
|
||||||
<div class="clbox" @click="deleteAll">
|
margin-bottom: 20px;
|
||||||
<div class="colose"></div>
|
flex-wrap: wrap;
|
||||||
<span class="allclear">全部清除</span>
|
"
|
||||||
</div>
|
>
|
||||||
</div>
|
<div class="already">当前归属:</div>
|
||||||
<div class="line"></div>
|
|
||||||
<div class="tit">快速选人</div>
|
|
||||||
<div style="position: relative; min-height: 180px">
|
|
||||||
<div style="height: 160px" class="selectedsBox" id="selectedsBox">
|
|
||||||
<div class="selecteds" id="selecteds">
|
|
||||||
<!-- 遍历生成 -->
|
|
||||||
<div class="chose" v-for="item in choosepeople" :key="item.key">
|
<div class="chose" v-for="item in choosepeople" :key="item.key">
|
||||||
<div>{{ item.name }}</div>
|
<div>{{ item.name }}</div>
|
||||||
<div class="ch" @click="deleteChoosePeople(item)"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="clbox">
|
||||||
class="chose"
|
<span class="allclear">转移归属权</span>
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
margin-right: 20px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #409eff;
|
|
||||||
line-height: 22px;
|
|
||||||
"
|
|
||||||
v-if="showMore"
|
|
||||||
@click="morePeopleShow"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
查看更多
|
|
||||||
<img
|
|
||||||
style="width: 10px; height: 12px; margin-top: -2px"
|
|
||||||
src="../../assets/images/projectadd/go.png"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="chose"
|
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
margin-right: 20px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #409eff;
|
|
||||||
line-height: 22px;
|
|
||||||
"
|
|
||||||
v-if="showHidden"
|
|
||||||
@click="morePeopleHidden"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
收起
|
|
||||||
<img
|
|
||||||
style="width: 10px; height: 12px; margin-top: -2px"
|
|
||||||
src="../../assets/images/projectadd/pickUp.png"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -201,7 +154,6 @@
|
|||||||
<button class="btn2">确定</button>
|
<button class="btn2">确定</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 确认添加部门弹窗 -->
|
<!-- 确认添加部门弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="showOrgModal"
|
v-model:visible="showOrgModal"
|
||||||
@@ -665,31 +617,50 @@ export default {
|
|||||||
//根据右侧快速选人高度,判断是否显示更多
|
//根据右侧快速选人高度,判断是否显示更多
|
||||||
const selectedsHeight = () => {
|
const selectedsHeight = () => {
|
||||||
let resize = elementResizeDetectorMaker();
|
let resize = elementResizeDetectorMaker();
|
||||||
resize.listenTo(document.getElementById('Ownership').querySelector("#selecteds"), function (ele) {
|
resize.listenTo(
|
||||||
|
document.getElementById("Ownership").querySelector("#selecteds"),
|
||||||
|
function (ele) {
|
||||||
console.log("ele", ele.offsetHeight);
|
console.log("ele", ele.offsetHeight);
|
||||||
if (ele.offsetHeight > 160 && !state.showHidden) {
|
if (ele.offsetHeight > 160 && !state.showHidden) {
|
||||||
state.showMore = true;
|
state.showMore = true;
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden";
|
document
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px";
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "hidden";
|
||||||
|
document
|
||||||
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "160px";
|
||||||
} else if (ele.offsetHeight < 160) {
|
} else if (ele.offsetHeight < 160) {
|
||||||
state.showMore = false;
|
state.showMore = false;
|
||||||
state.showHidden = false;
|
state.showHidden = false;
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden";
|
document
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px";
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "hidden";
|
||||||
|
document
|
||||||
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "160px";
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
const morePeopleShow = () => {
|
const morePeopleShow = () => {
|
||||||
state.showMore = false;
|
state.showMore = false;
|
||||||
state.showHidden = true;
|
state.showHidden = true;
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "";
|
document
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "";
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "";
|
||||||
|
document
|
||||||
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "";
|
||||||
};
|
};
|
||||||
const morePeopleHidden = () => {
|
const morePeopleHidden = () => {
|
||||||
state.showMore = true;
|
state.showMore = true;
|
||||||
state.showHidden = false;
|
state.showHidden = false;
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden";
|
document
|
||||||
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px";
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "hidden";
|
||||||
|
document
|
||||||
|
.getElementById("Ownership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "160px";
|
||||||
};
|
};
|
||||||
|
|
||||||
// 结束 快速选人------------------------------------------------------------------
|
// 结束 快速选人------------------------------------------------------------------
|
||||||
@@ -1166,7 +1137,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right {
|
.right {
|
||||||
width: 320px;
|
width: 340px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
.onerow {
|
.onerow {
|
||||||
@@ -1178,11 +1149,15 @@ export default {
|
|||||||
.onleft {
|
.onleft {
|
||||||
display: flex;
|
display: flex;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-left: 32px;
|
||||||
.already {
|
.already {
|
||||||
color: rgba(51, 51, 51, 1);
|
color: rgba(51, 51, 51, 1);
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin-left: 32px;
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
// margin-bottom: 20px;
|
// margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
@@ -1196,9 +1171,35 @@ export default {
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
.chose {
|
||||||
|
// width: 64px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
height: 24px;
|
||||||
|
// margin-top: 25px;
|
||||||
|
// margin-right: 25px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 1px solid rgba(56, 139, 225, 1);
|
||||||
|
color: rgba(56, 139, 225, 1);
|
||||||
|
font-size: 12px;
|
||||||
|
position: relative;
|
||||||
|
flex-shrink: 0;
|
||||||
|
.ch {
|
||||||
|
position: absolute;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
background-image: url(../../assets/images/basicinfo/ch.png);
|
||||||
|
right: -8px;
|
||||||
|
top: -8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.clbox {
|
.clbox {
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
|
margin-bottom: 20px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -1250,30 +1251,6 @@ export default {
|
|||||||
margin-left: 32px;
|
margin-left: 32px;
|
||||||
min-height: 100px;
|
min-height: 100px;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
.chose {
|
|
||||||
// width: 64px;
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-right: 10px;
|
|
||||||
height: 24px;
|
|
||||||
margin-top: 25px;
|
|
||||||
margin-right: 25px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border-radius: 2px;
|
|
||||||
border: 1px solid rgba(56, 139, 225, 1);
|
|
||||||
color: rgba(56, 139, 225, 1);
|
|
||||||
font-size: 12px;
|
|
||||||
position: relative;
|
|
||||||
.ch {
|
|
||||||
position: absolute;
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
background-image: url(../../assets/images/basicinfo/ch.png);
|
|
||||||
right: -8px;
|
|
||||||
top: -8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,16 +74,16 @@
|
|||||||
class="treeMain"
|
class="treeMain"
|
||||||
:style="{ height: screenHeight - 400 + 'px' }"
|
:style="{ height: screenHeight - 400 + 'px' }"
|
||||||
dropdownClassName="changetreedropdownboe"
|
dropdownClassName="changetreedropdownboe"
|
||||||
defaultExpandAll
|
default-expand-all
|
||||||
:dropdown-style="{
|
:dropdown-style="{
|
||||||
maxHeight: '600px',
|
maxHeight: '600px',
|
||||||
}"
|
}"
|
||||||
placeholder="BOE组织树"
|
placeholder="BOE组织树"
|
||||||
allow-clear
|
allow-clear
|
||||||
tree-default-expand-all
|
|
||||||
:tree-data="treeData"
|
:tree-data="treeData"
|
||||||
@select="departmentSelect"
|
@select="departmentSelect"
|
||||||
v-model:selectedKeys="selectedKeys"
|
v-model:selectedKeys="selectedKeys"
|
||||||
|
v-model:expandedKeys="openKeys"
|
||||||
>
|
>
|
||||||
<template #suffixIcon></template>
|
<template #suffixIcon></template>
|
||||||
</a-tree>
|
</a-tree>
|
||||||
@@ -101,6 +101,7 @@
|
|||||||
columnWidth: 20,
|
columnWidth: 20,
|
||||||
selectedRowKeys: selectedRowKeys,
|
selectedRowKeys: selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
|
type: 'radio',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
@@ -127,70 +128,22 @@
|
|||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="onleft">
|
<div class="onleft">
|
||||||
<div class="already">已选</div>
|
<div
|
||||||
<!-- <div class="count">6</div>
|
style="
|
||||||
<div class="peo">人</div> -->
|
display: flex;
|
||||||
</div>
|
align-items: center;
|
||||||
<div class="clbox" @click="deleteAll">
|
margin-bottom: 20px;
|
||||||
<div class="colose"></div>
|
flex-wrap: wrap;
|
||||||
<span class="allclear">全部清除</span>
|
"
|
||||||
</div>
|
>
|
||||||
</div>
|
<div class="already">当前归属:</div>
|
||||||
<div class="line"></div>
|
|
||||||
<div class="tit">快速选人</div>
|
|
||||||
<div style="position: relative; min-height: 180px">
|
|
||||||
<div style="height: 160px" class="selectedsBox" id="selectedsBox">
|
|
||||||
<div class="selecteds" id="selecteds">
|
|
||||||
<!-- 遍历生成 -->
|
|
||||||
<div class="chose" v-for="item in choosepeople" :key="item.key">
|
<div class="chose" v-for="item in choosepeople" :key="item.key">
|
||||||
<div>{{ item.name }}</div>
|
<div>{{ item.name }}</div>
|
||||||
<div class="ch" @click="deleteChoosePeople(item)"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="clbox">
|
||||||
class="chose"
|
<span class="allclear">转移归属权</span>
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
margin-right: 20px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #409eff;
|
|
||||||
line-height: 22px;
|
|
||||||
"
|
|
||||||
v-if="showMore"
|
|
||||||
@click="morePeopleShow"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
查看更多
|
|
||||||
<img
|
|
||||||
style="width: 10px; height: 12px; margin-top: -2px"
|
|
||||||
src="../../assets/images/projectadd/go.png"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="chose"
|
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
margin-right: 20px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #409eff;
|
|
||||||
line-height: 22px;
|
|
||||||
"
|
|
||||||
v-if="showHidden"
|
|
||||||
@click="morePeopleHidden"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
收起
|
|
||||||
<img
|
|
||||||
style="width: 10px; height: 12px; margin-top: -2px"
|
|
||||||
src="../../assets/images/projectadd/pickUp.png"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -238,6 +191,7 @@
|
|||||||
import { reactive, toRefs, onMounted, onUnmounted } from "vue";
|
import { reactive, toRefs, onMounted, onUnmounted } 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";
|
||||||
|
import * as api from "../../api/index1";
|
||||||
export default {
|
export default {
|
||||||
name: "ProjOwnerShip",
|
name: "ProjOwnerShip",
|
||||||
props: {
|
props: {
|
||||||
@@ -271,120 +225,148 @@ export default {
|
|||||||
nameadd: "",
|
nameadd: "",
|
||||||
nameaddd: "",
|
nameaddd: "",
|
||||||
com: "",
|
com: "",
|
||||||
|
openKeys: [2, 13, 32],
|
||||||
//组织树
|
//组织树
|
||||||
treeData: [
|
treeData: [
|
||||||
{
|
{
|
||||||
|
key: 1,
|
||||||
title: "京东方",
|
title: "京东方",
|
||||||
value: "京东方",
|
value: "京东方",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 2,
|
||||||
title: "产研部",
|
title: "产研部",
|
||||||
value: "产研部",
|
value: "产研部",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 3,
|
||||||
title: "产品部",
|
title: "产品部",
|
||||||
value: "产品部",
|
value: "产品部",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 4,
|
||||||
title: "研究部",
|
title: "研究部",
|
||||||
value: "研究部",
|
value: "研究部",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 5,
|
||||||
title: "研究部2",
|
title: "研究部2",
|
||||||
value: "研究部2",
|
value: "研究部2",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 6,
|
||||||
title: "研究3",
|
title: "研究3",
|
||||||
value: "研究3",
|
value: "研究3",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 7,
|
||||||
title: "研究4",
|
title: "研究4",
|
||||||
value: "研究4",
|
value: "研究4",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 8,
|
||||||
title: "研究部5",
|
title: "研究部5",
|
||||||
value: "研究部5",
|
value: "研究部5",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 9,
|
||||||
title: "研究部6",
|
title: "研究部6",
|
||||||
value: "研究部6",
|
value: "研究部6",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 10,
|
||||||
title: "研究部7",
|
title: "研究部7",
|
||||||
value: "研究部7",
|
value: "研究部7",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 11,
|
||||||
title: "研究部8",
|
title: "研究部8",
|
||||||
value: "研究部8",
|
value: "研究部8",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 12,
|
||||||
title: "研究部9",
|
title: "研究部9",
|
||||||
value: "研究部9",
|
value: "研究部9",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 13,
|
||||||
title: "二级标题",
|
title: "二级标题",
|
||||||
value: "二级标题",
|
value: "二级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 14,
|
||||||
title: "三级标题",
|
title: "三级标题",
|
||||||
value: "三级标题",
|
value: "三级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 15,
|
||||||
title: "四级标题",
|
title: "四级标题",
|
||||||
value: "四级标题",
|
value: "四级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 16,
|
||||||
title: "五级标题",
|
title: "五级标题",
|
||||||
value: "五级标题",
|
value: "五级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 17,
|
||||||
title: "六级标题",
|
title: "六级标题",
|
||||||
value: "六级标题",
|
value: "六级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 18,
|
||||||
title: "七级标题",
|
title: "七级标题",
|
||||||
value: "七级标题",
|
value: "七级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 19,
|
||||||
title: "八级标题",
|
title: "八级标题",
|
||||||
value: "八级标题",
|
value: "八级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 20,
|
||||||
title: "九级标题",
|
title: "九级标题",
|
||||||
value: "九级标题",
|
value: "九级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 21,
|
||||||
title: "十级标题",
|
title: "十级标题",
|
||||||
value: "十级标题",
|
value: "十级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 22,
|
||||||
title: "十一级标题",
|
title: "十一级标题",
|
||||||
value: "十一级标题",
|
value: "十一级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 23,
|
||||||
title: "十二级标题",
|
title: "十二级标题",
|
||||||
value: "十二级标题",
|
value: "十二级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 24,
|
||||||
title:
|
title:
|
||||||
"十三级标题十三级标题十三级标题十三级标题",
|
"十三级标题十三级标题十三级标题十三级标题",
|
||||||
value: "十三级标题",
|
value: "十三级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 25,
|
||||||
title:
|
title:
|
||||||
"十四级标题",
|
"十四级标题",
|
||||||
value:
|
value:
|
||||||
"十四级标题",
|
"十四级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 26,
|
||||||
title:
|
title:
|
||||||
"十五级标题",
|
"十五级标题",
|
||||||
value:
|
value:
|
||||||
"十五级标题",
|
"十五级标题",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 27,
|
||||||
title:
|
title:
|
||||||
"十六级标题",
|
"十六级标题",
|
||||||
value:
|
value:
|
||||||
@@ -392,6 +374,7 @@ export default {
|
|||||||
children:
|
children:
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
key: 28,
|
||||||
title:
|
title:
|
||||||
"十七级标题",
|
"十七级标题",
|
||||||
value:
|
value:
|
||||||
@@ -399,6 +382,7 @@ export default {
|
|||||||
children:
|
children:
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
key: 29,
|
||||||
title:
|
title:
|
||||||
"十八级标题",
|
"十八级标题",
|
||||||
value:
|
value:
|
||||||
@@ -406,6 +390,7 @@ export default {
|
|||||||
children:
|
children:
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
key: 30,
|
||||||
title:
|
title:
|
||||||
"十九级标题",
|
"十九级标题",
|
||||||
value:
|
value:
|
||||||
@@ -413,6 +398,7 @@ export default {
|
|||||||
children:
|
children:
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
key: 31,
|
||||||
title:
|
title:
|
||||||
"二十级标题二十级标题",
|
"二十级标题二十级标题",
|
||||||
value:
|
value:
|
||||||
@@ -455,14 +441,17 @@ export default {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 32,
|
||||||
title: "人力资源部",
|
title: "人力资源部",
|
||||||
value: "人力资源部",
|
value: "人力资源部",
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
key: 33,
|
||||||
title: "人事部",
|
title: "人事部",
|
||||||
value: "人事部",
|
value: "人事部",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
key: 34,
|
||||||
title: "行政部",
|
title: "行政部",
|
||||||
value: "行政部",
|
value: "行政部",
|
||||||
},
|
},
|
||||||
@@ -602,6 +591,26 @@ export default {
|
|||||||
selectedRowKeys: [], //表格选中的key
|
selectedRowKeys: [], //表格选中的key
|
||||||
//快速选人-------------------------------------
|
//快速选人-------------------------------------
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//获取组织树
|
||||||
|
const getOrgTree = () => {
|
||||||
|
let obj = {
|
||||||
|
keyword: "",
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.getOrgTree(obj)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.status === 200) {
|
||||||
|
console.log("获取组织树成功", res);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取组织树失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
state.activeKey = "1";
|
state.activeKey = "1";
|
||||||
ctx.emit("update:ProjOwnervisible", false);
|
ctx.emit("update:ProjOwnervisible", false);
|
||||||
@@ -625,6 +634,8 @@ export default {
|
|||||||
window.addEventListener("resize", getClientHeight, false);
|
window.addEventListener("resize", getClientHeight, false);
|
||||||
// window.addEventListener("resize", getClientHeightSelecteds, false);
|
// window.addEventListener("resize", getClientHeightSelecteds, false);
|
||||||
// judgeUrl();
|
// judgeUrl();
|
||||||
|
|
||||||
|
getOrgTree();
|
||||||
});
|
});
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
window.removeEventListener("resize", getClientHeight, false);
|
window.removeEventListener("resize", getClientHeight, false);
|
||||||
@@ -665,31 +676,50 @@ export default {
|
|||||||
//根据右侧快速选人高度,判断是否显示更多
|
//根据右侧快速选人高度,判断是否显示更多
|
||||||
const selectedsHeight = () => {
|
const selectedsHeight = () => {
|
||||||
let resize = elementResizeDetectorMaker();
|
let resize = elementResizeDetectorMaker();
|
||||||
resize.listenTo(document.getElementById('ProjOwnership').querySelector("#selecteds"), function (ele) {
|
resize.listenTo(
|
||||||
|
document.getElementById("ProjOwnership").querySelector("#selecteds"),
|
||||||
|
function (ele) {
|
||||||
console.log("ele", ele.offsetHeight);
|
console.log("ele", ele.offsetHeight);
|
||||||
if (ele.offsetHeight > 160 && !state.showHidden) {
|
if (ele.offsetHeight > 160 && !state.showHidden) {
|
||||||
state.showMore = true;
|
state.showMore = true;
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
|
document
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "hidden";
|
||||||
|
document
|
||||||
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "160px";
|
||||||
} else if (ele.offsetHeight < 160) {
|
} else if (ele.offsetHeight < 160) {
|
||||||
state.showMore = false;
|
state.showMore = false;
|
||||||
state.showHidden = false;
|
state.showHidden = false;
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
|
document
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "hidden";
|
||||||
|
document
|
||||||
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "160px";
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
const morePeopleShow = () => {
|
const morePeopleShow = () => {
|
||||||
state.showMore = false;
|
state.showMore = false;
|
||||||
state.showHidden = true;
|
state.showHidden = true;
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "";
|
document
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "";
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "";
|
||||||
|
document
|
||||||
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "";
|
||||||
};
|
};
|
||||||
const morePeopleHidden = () => {
|
const morePeopleHidden = () => {
|
||||||
state.showMore = true;
|
state.showMore = true;
|
||||||
state.showHidden = false;
|
state.showHidden = false;
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
|
document
|
||||||
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.overflow = "hidden";
|
||||||
|
document
|
||||||
|
.getElementById("ProjOwnership")
|
||||||
|
.querySelector("#selectedsBox").style.height = "160px";
|
||||||
};
|
};
|
||||||
|
|
||||||
// 结束 快速选人------------------------------------------------------------------
|
// 结束 快速选人------------------------------------------------------------------
|
||||||
@@ -704,6 +734,10 @@ export default {
|
|||||||
state.selectedRowKeys = []; //表格选中的key
|
state.selectedRowKeys = []; //表格选中的key
|
||||||
//快速选人-------------------------------------
|
//快速选人-------------------------------------
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const expandTree = (e) => {
|
||||||
|
console.log("展开", e);
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
afterVisibleChange,
|
afterVisibleChange,
|
||||||
@@ -717,6 +751,7 @@ export default {
|
|||||||
morePeopleHidden,
|
morePeopleHidden,
|
||||||
|
|
||||||
deleteAll,
|
deleteAll,
|
||||||
|
expandTree,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -1164,7 +1199,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right {
|
.right {
|
||||||
width: 320px;
|
width: 340px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
.onerow {
|
.onerow {
|
||||||
@@ -1176,11 +1211,15 @@ export default {
|
|||||||
.onleft {
|
.onleft {
|
||||||
display: flex;
|
display: flex;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-left: 32px;
|
||||||
.already {
|
.already {
|
||||||
color: rgba(51, 51, 51, 1);
|
color: rgba(51, 51, 51, 1);
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin-left: 32px;
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
// margin-bottom: 20px;
|
// margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
@@ -1194,9 +1233,35 @@ export default {
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
.chose {
|
||||||
|
// width: 64px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
height: 24px;
|
||||||
|
// margin-top: 25px;
|
||||||
|
// margin-right: 25px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 1px solid rgba(56, 139, 225, 1);
|
||||||
|
color: rgba(56, 139, 225, 1);
|
||||||
|
font-size: 12px;
|
||||||
|
position: relative;
|
||||||
|
flex-shrink: 0;
|
||||||
|
.ch {
|
||||||
|
position: absolute;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
background-image: url(../../assets/images/basicinfo/ch.png);
|
||||||
|
right: -8px;
|
||||||
|
top: -8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.clbox {
|
.clbox {
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
|
margin-bottom: 20px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -1248,30 +1313,6 @@ export default {
|
|||||||
margin-left: 32px;
|
margin-left: 32px;
|
||||||
min-height: 100px;
|
min-height: 100px;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
.chose {
|
|
||||||
// width: 64px;
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-right: 10px;
|
|
||||||
height: 24px;
|
|
||||||
margin-top: 25px;
|
|
||||||
margin-right: 25px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border-radius: 2px;
|
|
||||||
border: 1px solid rgba(56, 139, 225, 1);
|
|
||||||
color: rgba(56, 139, 225, 1);
|
|
||||||
font-size: 12px;
|
|
||||||
position: relative;
|
|
||||||
.ch {
|
|
||||||
position: absolute;
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
background-image: url(../../assets/images/basicinfo/ch.png);
|
|
||||||
right: -8px;
|
|
||||||
top: -8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,8 +126,10 @@
|
|||||||
ctx.emit("update:STvisible", false);
|
ctx.emit("update:STvisible", false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bol) => {
|
||||||
|
if (bol == true) {
|
||||||
getManageList()
|
getManageList()
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const tableDataFunc = ()=> {
|
const tableDataFunc = ()=> {
|
||||||
@@ -186,6 +188,9 @@
|
|||||||
state.SelectTestData = record
|
state.SelectTestData = record
|
||||||
};
|
};
|
||||||
const onSelectChange = (selectedRowKeys) => {
|
const onSelectChange = (selectedRowKeys) => {
|
||||||
|
if(selectedRowKeys.length>1){
|
||||||
|
return
|
||||||
|
}
|
||||||
state.selectedRowKeys = selectedRowKeys;
|
state.selectedRowKeys = selectedRowKeys;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,7 +237,7 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
//搜索任务列表
|
//搜索任务列表 没接口
|
||||||
const searchTaskList = () => {
|
const searchTaskList = () => {
|
||||||
let objser = {
|
let objser = {
|
||||||
name: "",
|
name: "",
|
||||||
@@ -264,9 +269,12 @@
|
|||||||
|
|
||||||
//重置任务列表
|
//重置任务列表
|
||||||
const resetTaskList = () => {
|
const resetTaskList = () => {
|
||||||
state.name = "";
|
state.inputPname = "";
|
||||||
state.projectName = "";
|
state.inputCname = "";
|
||||||
state.tabledata = [];
|
state.tableData = [];
|
||||||
|
state.selectedRowKeys = [];
|
||||||
|
state.SelectTestData = [];
|
||||||
|
state.currentPage = 1;
|
||||||
getManageList();
|
getManageList();
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
@@ -398,6 +406,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.tab {
|
.tab {
|
||||||
|
|
||||||
|
.ant-table-selection-column {
|
||||||
|
.ant-table-selection{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
th.h {
|
th.h {
|
||||||
background-color: #eff4fc !important;
|
background-color: #eff4fc !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -394,8 +394,11 @@ export default {
|
|||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:TMvisible", false);
|
ctx.emit("update:TMvisible", false);
|
||||||
};
|
};
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bol) => {
|
||||||
|
if ( bol == true ) {
|
||||||
getManageList();
|
getManageList();
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
const selectProjectName = (value, index) => {
|
const selectProjectName = (value, index) => {
|
||||||
console.log("value", value, index);
|
console.log("value", value, index);
|
||||||
|
|||||||
@@ -345,8 +345,10 @@ export default {
|
|||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:Tvisible", false);
|
ctx.emit("update:Tvisible", false);
|
||||||
};
|
};
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bol) => {
|
||||||
|
if ( bol == true ) {
|
||||||
getManageList();
|
getManageList();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const selectProjectName = (value) => {
|
const selectProjectName = (value) => {
|
||||||
state.projectName = value;
|
state.projectName = value;
|
||||||
|
|||||||
@@ -299,8 +299,10 @@ export default {
|
|||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:Wvisible", false);
|
ctx.emit("update:Wvisible", false);
|
||||||
};
|
};
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bol) => {
|
||||||
|
if ( bol == true ) {
|
||||||
getManageList();
|
getManageList();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const selectProjectName = (value) => {
|
const selectProjectName = (value) => {
|
||||||
state.projectName = value;
|
state.projectName = value;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default createStore({
|
|||||||
|
|
||||||
assessmentName: "",
|
assessmentName: "",
|
||||||
routerId: null,
|
routerId: null,
|
||||||
|
projectTemplateId:null,
|
||||||
orgtreeList: [],
|
orgtreeList: [],
|
||||||
},
|
},
|
||||||
getters: {},
|
getters: {},
|
||||||
@@ -43,6 +43,9 @@ export default createStore({
|
|||||||
},
|
},
|
||||||
getOrgtreeList(state, orgtreeList) {
|
getOrgtreeList(state, orgtreeList) {
|
||||||
state.orgtreeList = orgtreeList;
|
state.orgtreeList = orgtreeList;
|
||||||
|
},
|
||||||
|
SET_projectTemplateId (state,projectTemplateId) {
|
||||||
|
state.projectTemplateId = projectTemplateId;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {},
|
actions: {},
|
||||||
|
|||||||
@@ -84,3 +84,36 @@ export function filterCommon(arr, key) {
|
|||||||
});
|
});
|
||||||
return newData;
|
return newData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getdateToTime(date) {
|
||||||
|
let now = new Date(parseInt(date)),
|
||||||
|
y = now.getFullYear(),
|
||||||
|
m = now.getMonth() + 1,
|
||||||
|
d = now.getDate(),
|
||||||
|
hh = now.getHours(),
|
||||||
|
mm = now.getMinutes();
|
||||||
|
return `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${hh}:${mm}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
//计算两个时间之间的时间差 多少天时分秒
|
||||||
|
export function intervalTime(startTime) {
|
||||||
|
const curTime = new Date().getTime(); //计算当前时间戳
|
||||||
|
const date3 = curTime - startTime; //时间差的毫秒数
|
||||||
|
//计算出相差天数
|
||||||
|
const days = Math.floor(date3 / (24 * 3600 * 1000));
|
||||||
|
//计算出小时数
|
||||||
|
const leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
|
||||||
|
const hours = Math.floor(leave1 / (3600 * 1000));
|
||||||
|
//计算相差分钟数
|
||||||
|
const leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
|
||||||
|
const minutes = Math.floor(leave2 / (60 * 1000));
|
||||||
|
//计算相差秒数
|
||||||
|
const leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
|
||||||
|
const seconds = Math.round(leave3 / 1000);
|
||||||
|
return {
|
||||||
|
days,
|
||||||
|
hours,
|
||||||
|
minutes,
|
||||||
|
seconds,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-09 09:26:26
|
* @Date: 2022-11-09 09:26:26
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-17 16:27:22
|
* @LastEditTime: 2022-11-22 20:13:01
|
||||||
* @FilePath: /fe-manage/src/views/courselibrary/CourseManage.vue
|
* @FilePath: /fe-manage/src/views/courselibrary/CourseManage.vue
|
||||||
* @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
|
||||||
-->
|
-->
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
style="width: 100%l; height: 100%"
|
style="width: 100%l; height: 100%"
|
||||||
src="https://u-pre.boe.com/pc/iframe/course/coursewares"
|
src="https://u-pre.boe.com/pc/iframe/course/coursewares"
|
||||||
name="myframe"
|
name="myframe"
|
||||||
|
sandbox="allow-forms allow-scripts allow-same-origin allow-popups"
|
||||||
></iframe>
|
></iframe>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -24,9 +25,7 @@ export default {
|
|||||||
name: "CourseManage",
|
name: "CourseManage",
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
const state = reactive({
|
const state = reactive({});
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// console.log("执行");
|
// console.log("执行");
|
||||||
@@ -34,7 +33,6 @@ export default {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -45,6 +43,5 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -716,7 +716,7 @@
|
|||||||
title="关联项目"
|
title="关联项目"
|
||||||
placement="right"
|
placement="right"
|
||||||
width="80%"
|
width="80%"
|
||||||
@after-visible-change="afterVisibleChange"
|
@after-visible-change="afterProjVisibleChange"
|
||||||
>
|
>
|
||||||
<div class="drawerMain">
|
<div class="drawerMain">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
@@ -1065,7 +1065,7 @@ import draggable from "vuedraggable";
|
|||||||
import { editTask } from "../../api/indexTaskadd";
|
import { editTask } from "../../api/indexTaskadd";
|
||||||
import * as apiProj from "../../api/index.js";
|
import * as apiProj from "../../api/index.js";
|
||||||
import { RouterEditTask } from "@/api/indexTask";
|
import { RouterEditTask } from "@/api/indexTask";
|
||||||
import dayjs from "dayjs";
|
// import dayjs from "dayjs";
|
||||||
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 {
|
||||||
@@ -1188,7 +1188,6 @@ export default {
|
|||||||
time: "2022-07-15 14:00",
|
time: "2022-07-15 14:00",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
drawertableData: [],
|
|
||||||
// drawertableData: [
|
// drawertableData: [
|
||||||
// {
|
// {
|
||||||
// key: 1,
|
// key: 1,
|
||||||
@@ -1276,6 +1275,7 @@ export default {
|
|||||||
// time: "2022-07-20 14:00:03",
|
// time: "2022-07-20 14:00:03",
|
||||||
// },
|
// },
|
||||||
// ],
|
// ],
|
||||||
|
drawertableData: [],
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
tableDataTotal: 0,
|
tableDataTotal: 0,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@@ -1343,8 +1343,8 @@ export default {
|
|||||||
picUrl: null,
|
picUrl: null,
|
||||||
//项目抽屉参数
|
//项目抽屉参数
|
||||||
time: undefined,
|
time: undefined,
|
||||||
assessmentId: null,
|
projId: null, //选项选到的id
|
||||||
assessmentName: "",
|
projName: "", //选项选到的name
|
||||||
projectId: null,
|
projectId: null,
|
||||||
projectTaskId: null,
|
projectTaskId: null,
|
||||||
chooseStageId: null,
|
chooseStageId: null,
|
||||||
@@ -1477,52 +1477,59 @@ export default {
|
|||||||
state.EditWorkId = id;
|
state.EditWorkId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
// 作业和考试的抽屉
|
// 作业抽屉
|
||||||
const showDrawerAddHomework = (id, eleId) => {
|
const showDrawerAddHomework = (id, eleId) => {
|
||||||
console.log("homework==============", id, state.isactive);
|
console.log("homework==============", id, state.isactive);
|
||||||
state.addhomeworkvisible = true;
|
state.addhomeworkvisible = true;
|
||||||
state.EditWorkId = id;
|
state.EditWorkId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
|
//考试抽屉
|
||||||
const showDrawerAddTest = (id, eleId) => {
|
const showDrawerAddTest = (id, eleId) => {
|
||||||
state.addtestvisible = true;
|
state.addtestvisible = true;
|
||||||
state.EditTestId = id;
|
state.EditTestId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
//测试评估投票抽屉
|
//测试抽屉
|
||||||
const showDrawerAddEval = (id, eleId) => {
|
const showDrawerAddEval = (id, eleId) => {
|
||||||
// state.addevalVisible = true;
|
// state.addevalVisible = true;
|
||||||
state.addevalvisible = true;
|
state.addevalvisible = true;
|
||||||
state.EditEvalId = id;
|
state.EditEvalId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
|
//评估抽屉
|
||||||
const showDrawerAddInvist = (id, eleId) => {
|
const showDrawerAddInvist = (id, eleId) => {
|
||||||
// state.addinvistVisible = true;
|
// state.addinvistVisible = true;
|
||||||
state.addinvistvisible = true;
|
state.addinvistvisible = true;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
state.EditInvistId = id;
|
state.EditInvistId = id;
|
||||||
};
|
};
|
||||||
|
//投票抽屉
|
||||||
const showDrawerAddVote = (id, eleId) => {
|
const showDrawerAddVote = (id, eleId) => {
|
||||||
// state.addhomeworkvisible = true;
|
// state.addhomeworkvisible = true;
|
||||||
state.addvotevisible = true;
|
state.addvotevisible = true;
|
||||||
state.EditVoteId = id;
|
state.EditVoteId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
|
//直播抽屉
|
||||||
const showDrawerAddLive = (id, eleId) => {
|
const showDrawerAddLive = (id, eleId) => {
|
||||||
state.addlivevisible = true;
|
state.addlivevisible = true;
|
||||||
state.EditLiveId = id;
|
state.EditLiveId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
|
//外链抽屉
|
||||||
const showDrawerAddRef = (id, eleId) => {
|
const showDrawerAddRef = (id, eleId) => {
|
||||||
state.addrefvisible = true;
|
state.addrefvisible = true;
|
||||||
state.EditRefId = id;
|
state.EditRefId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
|
//讨论抽屉
|
||||||
const showDrawerAddDiscuss = (id, eleId) => {
|
const showDrawerAddDiscuss = (id, eleId) => {
|
||||||
state.adddiscussvisible = true;
|
state.adddiscussvisible = true;
|
||||||
state.EditDiscussId = id;
|
state.EditDiscussId = id;
|
||||||
state.routerTaskId = eleId;
|
state.routerTaskId = eleId;
|
||||||
};
|
};
|
||||||
|
//活动抽屉
|
||||||
const showDrawerAddActive = (id, eleId) => {
|
const showDrawerAddActive = (id, eleId) => {
|
||||||
state.addactivevisible = true;
|
state.addactivevisible = true;
|
||||||
state.EditActiveId = id;
|
state.EditActiveId = id;
|
||||||
@@ -1602,9 +1609,10 @@ export default {
|
|||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
state.visible = false;
|
state.visible = false;
|
||||||
};
|
};
|
||||||
|
const afterProjVisibleChange = (bol) => {
|
||||||
const afterVisibleChange = (bool) => {
|
if(bol == true){
|
||||||
console.log("visible", bool);
|
getAllProjText()
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const showAddStu = () => {
|
const showAddStu = () => {
|
||||||
state.AddSvisible = true;
|
state.AddSvisible = true;
|
||||||
@@ -1721,38 +1729,9 @@ export default {
|
|||||||
{
|
{
|
||||||
title: "项目名称",
|
title: "项目名称",
|
||||||
dataIndex: "name",
|
dataIndex: "name",
|
||||||
// dataIndex: "projectName",
|
|
||||||
key: "projectName",
|
key: "projectName",
|
||||||
width: 200,
|
width: 200,
|
||||||
// align: "center",
|
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
// scopedSlots: { customRender: "action" }, //引入的插槽
|
|
||||||
customRender: (text) => {
|
|
||||||
// console.log(text.record.key);
|
|
||||||
if (!text.record.children) {
|
|
||||||
return (
|
|
||||||
<div style={{ display: "flex" }}>
|
|
||||||
<a-checkbox
|
|
||||||
checked={
|
|
||||||
state.projectChecked === text.record.key ? true : false
|
|
||||||
}
|
|
||||||
value={text.record.key}
|
|
||||||
onChange={() => {
|
|
||||||
// console.log("改变了", text.record.key);
|
|
||||||
if (state.projectChecked === text.record.key) {
|
|
||||||
state.projectChecked = null;
|
|
||||||
} else {
|
|
||||||
state.projectChecked = text.record.key;
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
></a-checkbox>
|
|
||||||
<span style="margin-left: 5px">{text.text}</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return <span>{text.text}</span>;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "项目经理",
|
title: "项目经理",
|
||||||
@@ -1764,7 +1743,6 @@ export default {
|
|||||||
{
|
{
|
||||||
title: "创建人",
|
title: "创建人",
|
||||||
dataIndex: "creator",
|
dataIndex: "creator",
|
||||||
// width: "30%",
|
|
||||||
key: "creater",
|
key: "creater",
|
||||||
width: 100,
|
width: 100,
|
||||||
align: "center",
|
align: "center",
|
||||||
@@ -2033,45 +2011,100 @@ export default {
|
|||||||
"selected",
|
"selected",
|
||||||
selected
|
selected
|
||||||
);
|
);
|
||||||
console.log(selectedRows.assessmentId);
|
state.projId = selectedRows.parentId;
|
||||||
state.assessmentId = selectedRows.assessmentId;
|
state.projName = selectedRows.name;
|
||||||
state.assessmentName = selectedRows.name;
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const getTableDate = (drawertableData) => {
|
const getTableDate = (drawertableData) => {
|
||||||
let data = drawertableData;
|
console.log(drawertableData,'drawertableDatadrawertableDatadrawertableDatadrawertableData')
|
||||||
let array = [];
|
let data = drawertableData
|
||||||
data.map((value, index) => {
|
let array = []
|
||||||
|
data.map((value)=>{
|
||||||
|
if(value.type ==3){
|
||||||
let obj = {
|
let obj = {
|
||||||
key: index,
|
key: value.projectId,
|
||||||
assessmentId: value.assessmentId,
|
parentId:value.parentId,
|
||||||
num: value.essayQuestionVoList.length,
|
name: value.name,
|
||||||
name: value.assessmentName ? value.assessmentName : "-",
|
manager:value.manager,
|
||||||
creator: value.createUser ? value.createUser : "-",
|
creator: value.createName,
|
||||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||||
};
|
};
|
||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
}
|
||||||
|
else if(value.type == 2){
|
||||||
|
value.subList.map((item)=>{
|
||||||
|
let obj = {
|
||||||
|
key: value.projectId,
|
||||||
|
parentId:value.parentId,
|
||||||
|
name: value.name,
|
||||||
|
manager:value.manager,
|
||||||
|
creator: value.createName,
|
||||||
|
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||||
|
children:[{
|
||||||
|
key: item.projectId,
|
||||||
|
parentId:item.parentId,
|
||||||
|
name: item.name,
|
||||||
|
manager:item.manager,
|
||||||
|
creator: item.createName,
|
||||||
|
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
array.push(obj);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
value.subList.map((item)=>{
|
||||||
|
item.subList.map((items)=>{
|
||||||
|
let obj = {
|
||||||
|
key: value.projectId,
|
||||||
|
parentId:value.parentId,
|
||||||
|
name: value.name,
|
||||||
|
manager:value.manager,
|
||||||
|
creator: value.createName,
|
||||||
|
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||||
|
children:[{
|
||||||
|
key: item.projectId,
|
||||||
|
parentId:item.parentId,
|
||||||
|
name: item.name,
|
||||||
|
manager:item.manager,
|
||||||
|
creator: item.createName,
|
||||||
|
children:[{
|
||||||
|
key: items.projectId,
|
||||||
|
parentId:items.parentId,
|
||||||
|
name: items.name,
|
||||||
|
manager:items.manager,
|
||||||
|
creator: items.createName,
|
||||||
|
}]
|
||||||
|
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
array.push(obj);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
state.drawertableData = array;
|
state.drawertableData = array;
|
||||||
|
console.log(state.drawertableData,"------------state.drawertableData---------------");
|
||||||
};
|
};
|
||||||
//获取全部项目信息接口
|
//获取全部项目信息接口
|
||||||
const getAllProjText = () => {
|
const getAllProjText = () => {
|
||||||
apiProj
|
apiProj
|
||||||
.getProjectList({
|
.getProjectList({
|
||||||
beginTime: 0,
|
"beginTime": 0,
|
||||||
createName: "",
|
"createName": "",
|
||||||
endTime: 0,
|
"endTime": "",
|
||||||
manager: "",
|
"manager": "",
|
||||||
name: "",
|
"name": "",
|
||||||
pageNo: 0,
|
"pageNo": 1,
|
||||||
pageSize: 0,
|
"pageSize": 10,
|
||||||
status: 0,
|
"status": 0
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
let arr = res.data.data.rows;
|
let arr = res.data.data.rows;
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
getTableDate(arr);
|
getTableDate(arr);
|
||||||
console.log("---------------项目信息---------------------------");
|
console.log("---------------项目信息---------------------------",res.data.data);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
@@ -2080,6 +2113,7 @@ export default {
|
|||||||
// state.createLoading = false;
|
// state.createLoading = false;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//不需要下面这个添加应该 没选数据
|
||||||
const updateTask = () => {
|
const updateTask = () => {
|
||||||
RouterEditTask({
|
RouterEditTask({
|
||||||
chapterId: state.isactive,
|
chapterId: state.isactive,
|
||||||
@@ -2117,7 +2151,7 @@ export default {
|
|||||||
closeDrawer,
|
closeDrawer,
|
||||||
showModal,
|
showModal,
|
||||||
closeModal,
|
closeModal,
|
||||||
afterVisibleChange,
|
afterProjVisibleChange,
|
||||||
showAddStu,
|
showAddStu,
|
||||||
showImpStu,
|
showImpStu,
|
||||||
// drawercolumns,
|
// drawercolumns,
|
||||||
|
|||||||
@@ -565,9 +565,11 @@ import { ref, reactive, defineComponent, toRefs, onMounted} from "vue";
|
|||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import * as api from "@/api/indexTemplate"
|
import * as api from "@/api/indexTemplate"
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
import { useStore } from "vuex";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "LibraryAdd",
|
name: "LibraryAdd",
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
//任务大纲列表
|
//任务大纲列表
|
||||||
taskSyllabus: [
|
taskSyllabus: [
|
||||||
@@ -761,11 +763,12 @@ export default defineComponent({
|
|||||||
onMounted(() => {getDetail()});
|
onMounted(() => {getDetail()});
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const getDetail = () => {
|
const getDetail = () => {
|
||||||
api.templateDetail(1).then(res => {
|
api.templateDetail(store.state.projectTemplateId).then(res => {
|
||||||
state.taskSyllabus = []
|
state.taskSyllabus = []
|
||||||
console.log(res);
|
console.log(res);
|
||||||
state.projectInfo.name = res.data.data.projectTemplateInfo.name
|
state.projectInfo.name = res.data.data.projectTemplateInfo.name
|
||||||
state.projectInfo.beginTime = res.data.data.projectTemplateInfo.createTime
|
let time = new Date(Number(res.data.data.projectTemplateInfo.createTime))
|
||||||
|
state.projectInfo.beginTime = time.toLocaleDateString()
|
||||||
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
|
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
|
||||||
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
|
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
|
||||||
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId
|
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId
|
||||||
@@ -811,7 +814,7 @@ export default defineComponent({
|
|||||||
"notice": state.projectInfo.notice,
|
"notice": state.projectInfo.notice,
|
||||||
"noticeFlag": 0,
|
"noticeFlag": 0,
|
||||||
"picUrl": "",
|
"picUrl": "",
|
||||||
"projectTemplateId": 0,
|
"projectTemplateId": store.state.projectTemplateId,
|
||||||
"remark": "",
|
"remark": "",
|
||||||
"sourceBelongId": 0,
|
"sourceBelongId": 0,
|
||||||
"status": 0,
|
"status": 0,
|
||||||
@@ -860,7 +863,7 @@ export default defineComponent({
|
|||||||
const stateEdit = () => {
|
const stateEdit = () => {
|
||||||
let obj={
|
let obj={
|
||||||
"name": "",
|
"name": "",
|
||||||
"projectTemplateId": 0,
|
"projectTemplateId": store.state.projectTemplateId,
|
||||||
"remark": "",
|
"remark": "",
|
||||||
"stageId": 0
|
"stageId": 0
|
||||||
}
|
}
|
||||||
@@ -880,7 +883,7 @@ export default defineComponent({
|
|||||||
"flag": true,
|
"flag": true,
|
||||||
"name": "",
|
"name": "",
|
||||||
"projectTaskId": 0,
|
"projectTaskId": 0,
|
||||||
"projectTemplateId": 0,
|
"projectTemplateId": store.state.projectTemplateId,
|
||||||
"stageId": 0,
|
"stageId": 0,
|
||||||
"type": 0
|
"type": 0
|
||||||
}
|
}
|
||||||
@@ -920,7 +923,6 @@ export default defineComponent({
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.content7 {
|
.content7 {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|
||||||
.set_tit {
|
.set_tit {
|
||||||
margin-left: 34px;
|
margin-left: 34px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
|||||||
@@ -307,6 +307,10 @@
|
|||||||
@change="classificationChange4"
|
@change="classificationChange4"
|
||||||
placeholder="请选择培训分类"
|
placeholder="请选择培训分类"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
|
:fieldNames="{
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -420,9 +424,81 @@ export default {
|
|||||||
const store = useStore();
|
const store = useStore();
|
||||||
// 编辑页面跳转过来时候,自动填充表格
|
// 编辑页面跳转过来时候,自动填充表格
|
||||||
const routers = useRoute();
|
const routers = useRoute();
|
||||||
|
const router = useRouter();
|
||||||
|
const state = reactive({
|
||||||
|
classifySelect: null, //分类选择信息
|
||||||
|
projectType: null, //分类选择的id
|
||||||
|
checked: false, //同步学习记录
|
||||||
|
checked1: false, //BOEU实施
|
||||||
|
classifySelect1: [], //选中项目经理名称数组
|
||||||
|
classifySelect2: null, //选中的资源归属信息
|
||||||
|
classifySelect3: null, //选中的项目级别信息
|
||||||
|
classifySelect4: null, //选中的培训分类信息
|
||||||
|
rangevalue: [], //项目时间
|
||||||
|
|
||||||
|
currentPage: 1, //当前页
|
||||||
|
tableDataTotal: -1, //模版列表总数
|
||||||
|
pageSize: 10, //每页10条数据
|
||||||
|
totalPages: 0, //总页数
|
||||||
|
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
||||||
|
});
|
||||||
|
//分类列表
|
||||||
|
const classifyList = ref([]);
|
||||||
|
|
||||||
|
//项目封面
|
||||||
|
const imageUrl = ref("");
|
||||||
|
// 项目级别
|
||||||
|
const classifyList3 = ref([
|
||||||
|
// { value: 1, label: "集团级" },
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 培训分类
|
||||||
|
const classifyList4 = ref([
|
||||||
|
// { value: 1, label: "集团级" },
|
||||||
|
]);
|
||||||
|
//获取分类、封面图、项目级别、培训分类-----------字典配置-------------------------------
|
||||||
|
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 isEdit = ref(false);
|
const isEdit = ref(false);
|
||||||
let peojectID = "";
|
let peojectID = ""; //项目id
|
||||||
console.log("store.state.orgtreeList", store.state.orgtreeList);
|
console.log("store.state.orgtreeList", store.state.orgtreeList);
|
||||||
|
const editProject = () => {
|
||||||
if (routers.query.projectId) {
|
if (routers.query.projectId) {
|
||||||
storage.set("projectAddId", routers.query.projectId);
|
storage.set("projectAddId", routers.query.projectId);
|
||||||
isEdit.value = true;
|
isEdit.value = true;
|
||||||
@@ -433,21 +509,35 @@ export default {
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.status == 200 && res.data.code == 200) {
|
if (res.status == 200 && res.data.code == 200) {
|
||||||
let info = res.data.data.projectInfo;
|
let info = res.data.data.projectInfo;
|
||||||
|
console.log(
|
||||||
|
"classifyList.value.find(item=>item.dictCode===info.category)",
|
||||||
|
classifyList.value.find((item) => {
|
||||||
|
if (item.dictCode == 11) {
|
||||||
|
return item.dictName;
|
||||||
|
}
|
||||||
|
// return item.dictName;
|
||||||
|
}),
|
||||||
|
classifyList.value,
|
||||||
|
info.category
|
||||||
|
);
|
||||||
|
|
||||||
console.log(info);
|
console.log(info);
|
||||||
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
|
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
|
||||||
projectName.value = info.name;
|
projectName.value = info.name; //项目名称
|
||||||
state.classifySelect = classifyList.value[1]; // info.category
|
// state.classifySelect =classifyList.value.find(item=>item.dictCode===info.category) ; // info.category 项目分类
|
||||||
imageUrl.value = info.picUrl;
|
state.projectType = 1; //分类选择的id
|
||||||
|
|
||||||
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
|
imageUrl.value = info.picUrl; //封面图
|
||||||
let end = toDate(info.endTime / 1000, "YYYY/MM/DD");
|
|
||||||
|
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD"); //开始时间
|
||||||
|
let end = toDate(info.endTime / 1000, "YYYY/MM/DD"); //结束时间
|
||||||
state.rangevalue = [
|
state.rangevalue = [
|
||||||
dayjs(start, "YYYY/MM/DD"),
|
dayjs(start, "YYYY/MM/DD"),
|
||||||
dayjs(end, "YYYY/MM/DD"),
|
dayjs(end, "YYYY/MM/DD"),
|
||||||
];
|
];
|
||||||
|
|
||||||
let manageName = info.manager.split(",");
|
let manageName = info.manager.split(","); //项目经理
|
||||||
let manageValue = info.managerId.split(",");
|
let manageValue = info.managerId.split(","); //项目经理id数组
|
||||||
let optionsManage = [];
|
let optionsManage = [];
|
||||||
for (let i = 0; i < manageName.length; i++) {
|
for (let i = 0; i < manageName.length; i++) {
|
||||||
let obj = {
|
let obj = {
|
||||||
@@ -467,7 +557,6 @@ export default {
|
|||||||
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
||||||
// fileList1.value = info.attach.split(",");
|
// fileList1.value = info.attach.split(",");
|
||||||
|
|
||||||
projectType = 1;
|
|
||||||
picUrl = info.picUrl;
|
picUrl = info.picUrl;
|
||||||
beginTime = Number(info.beginTime / 1000);
|
beginTime = Number(info.beginTime / 1000);
|
||||||
endTime = Number(info.endTime / 1000);
|
endTime = Number(info.endTime / 1000);
|
||||||
@@ -495,7 +584,8 @@ export default {
|
|||||||
let info = res.data.data.projectInfo;
|
let info = res.data.data.projectInfo;
|
||||||
console.log("我是从本地存储获取的id", info);
|
console.log("我是从本地存储获取的id", info);
|
||||||
projectName.value = info.name;
|
projectName.value = info.name;
|
||||||
state.classifySelect = classifyList.value[1]; // info.category
|
state.classifySelect = classifyList.value[1]; // info.category 分类选择的信息
|
||||||
|
state.projectType = 1; //分类选择的id
|
||||||
imageUrl.value = info.picUrl;
|
imageUrl.value = info.picUrl;
|
||||||
|
|
||||||
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
|
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
|
||||||
@@ -525,7 +615,6 @@ export default {
|
|||||||
state.classifySelect4 = classifyList4.value[info.systemId - 1];
|
state.classifySelect4 = classifyList4.value[info.systemId - 1];
|
||||||
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
||||||
|
|
||||||
projectType = 1;
|
|
||||||
picUrl = info.picUrl;
|
picUrl = info.picUrl;
|
||||||
beginTime = Number(info.beginTime / 1000);
|
beginTime = Number(info.beginTime / 1000);
|
||||||
endTime = Number(info.endTime / 1000);
|
endTime = Number(info.endTime / 1000);
|
||||||
@@ -543,6 +632,8 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
editProject();
|
||||||
|
|
||||||
const backPage = () => {
|
const backPage = () => {
|
||||||
storage.remove("projectAddId");
|
storage.remove("projectAddId");
|
||||||
@@ -553,67 +644,12 @@ export default {
|
|||||||
}, 400);
|
}, 400);
|
||||||
};
|
};
|
||||||
|
|
||||||
const router = useRouter();
|
const projectName = ref(""); //项目名称
|
||||||
const state = reactive({
|
|
||||||
classifySelect: null,
|
|
||||||
classifySelectId: null,
|
|
||||||
checked: false,
|
|
||||||
checked1: false,
|
|
||||||
valueE: null,
|
|
||||||
valueE1: null,
|
|
||||||
valueE2: null,
|
|
||||||
classifySelect1: [],
|
|
||||||
classifySelect2: null,
|
|
||||||
classifySelect3: [],
|
|
||||||
classifySelect4: [],
|
|
||||||
rangevalue: [],
|
|
||||||
|
|
||||||
currentPage: 1, //当前页
|
//选择分类
|
||||||
tableDataTotal: -1, //模版列表总数
|
|
||||||
pageSize: 10, //每页10条数据
|
|
||||||
totalPages: 0, //总页数
|
|
||||||
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
|
||||||
});
|
|
||||||
|
|
||||||
const projectName = ref("");
|
|
||||||
//分类
|
|
||||||
const classifyList = ref([]);
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (param === "projectLevel") {
|
|
||||||
classifyList3.value = res.data.data.rows;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
console.log("获取字典失败", err);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
getDictList("projectClass");
|
|
||||||
getDictList("projectPic");
|
|
||||||
getDictList("projectLevel");
|
|
||||||
|
|
||||||
let projectType = "";
|
|
||||||
const classificationChange = (value) => {
|
const classificationChange = (value) => {
|
||||||
console.log(`selected ${value}`);
|
console.log(`selected ${value}`);
|
||||||
projectType = value;
|
state.projectType = value; //分类选择的id
|
||||||
};
|
};
|
||||||
|
|
||||||
function getBase64(img, callback) {
|
function getBase64(img, callback) {
|
||||||
@@ -625,8 +661,8 @@ export default {
|
|||||||
const fileList = ref([]);
|
const fileList = ref([]);
|
||||||
const fileList1 = ref([]);
|
const fileList1 = ref([]);
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const imageUrl = ref("");
|
|
||||||
let picUrl = "";
|
let picUrl = ""; //项目封面
|
||||||
|
|
||||||
const handleChange = (info) => {
|
const handleChange = (info) => {
|
||||||
if (info.file.status === "uploading") {
|
if (info.file.status === "uploading") {
|
||||||
@@ -727,7 +763,6 @@ export default {
|
|||||||
beginTime = new Date(dateString[0]).getTime() / 1000;
|
beginTime = new Date(dateString[0]).getTime() / 1000;
|
||||||
endTime = new Date(dateString[1]).getTime() / 1000;
|
endTime = new Date(dateString[1]).getTime() / 1000;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 项目经理 后续接口调用
|
// 项目经理 后续接口调用
|
||||||
const classifyList1 = ref([
|
const classifyList1 = ref([
|
||||||
{ value: 1, label: "李俊国" },
|
{ value: 1, label: "李俊国" },
|
||||||
@@ -735,6 +770,7 @@ export default {
|
|||||||
{ value: 3, label: "刘孟君" },
|
{ value: 3, label: "刘孟君" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
//选择处理项目经理
|
||||||
let manager = "";
|
let manager = "";
|
||||||
let managerId = "";
|
let managerId = "";
|
||||||
const classificationChange1 = (key, options) => {
|
const classificationChange1 = (key, options) => {
|
||||||
@@ -774,28 +810,14 @@ export default {
|
|||||||
sourceBelongIdC = key;
|
sourceBelongIdC = key;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 项目级别
|
//选择项目级别
|
||||||
const classifyList3 = ref([
|
|
||||||
// { value: 1, label: "集团级" },
|
|
||||||
// { value: 2, label: "组织级" },
|
|
||||||
// { value: 3, label: "现地级" },
|
|
||||||
// { value: 4, label: "部门级" },
|
|
||||||
]);
|
|
||||||
|
|
||||||
let levels = "";
|
let levels = "";
|
||||||
const classificationChange3 = (key) => {
|
const classificationChange3 = (key) => {
|
||||||
console.log(`selected ${key}`, classifyList3);
|
console.log(`selected ${key}`, classifyList3);
|
||||||
levels = key;
|
levels = key;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 培训分类
|
//选择培训分类
|
||||||
const classifyList4 = ref([
|
|
||||||
{ value: 1, label: "集团级" },
|
|
||||||
{ value: 2, label: "组织级" },
|
|
||||||
{ value: 3, label: "现地级" },
|
|
||||||
{ value: 4, label: "部门级" },
|
|
||||||
]);
|
|
||||||
|
|
||||||
let systemid = "";
|
let systemid = "";
|
||||||
const classificationChange4 = (key) => {
|
const classificationChange4 = (key) => {
|
||||||
console.log(`selected ${key}`, classifyList4);
|
console.log(`selected ${key}`, classifyList4);
|
||||||
@@ -824,7 +846,9 @@ export default {
|
|||||||
console.log(info);
|
console.log(info);
|
||||||
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
|
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
|
||||||
projectName.value = info.name;
|
projectName.value = info.name;
|
||||||
state.classifySelect = classifyList.value[1]; // info.category
|
state.classifySelect = classifyList.value[1]; // info.category 分类选择的信息
|
||||||
|
state.projectType = 1; //分类选择的id
|
||||||
|
|
||||||
imageUrl.value = info.picUrl;
|
imageUrl.value = info.picUrl;
|
||||||
|
|
||||||
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
|
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
|
||||||
@@ -855,7 +879,6 @@ export default {
|
|||||||
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
||||||
// fileList1.value = info.attach.split(",");
|
// fileList1.value = info.attach.split(",");
|
||||||
|
|
||||||
projectType = 1;
|
|
||||||
picUrl = info.picUrl;
|
picUrl = info.picUrl;
|
||||||
beginTime = Number(info.beginTime / 1000);
|
beginTime = Number(info.beginTime / 1000);
|
||||||
endTime = Number(info.endTime / 1000);
|
endTime = Number(info.endTime / 1000);
|
||||||
@@ -924,19 +947,22 @@ export default {
|
|||||||
// 项目说明
|
// 项目说明
|
||||||
const remark = ref("");
|
const remark = ref("");
|
||||||
|
|
||||||
|
//同步学习记录------------------------------------
|
||||||
let courseSyncFlag = 0;
|
let courseSyncFlag = 0;
|
||||||
const changeChecked = () => {
|
const changeChecked = () => {
|
||||||
console.log(state.checked);
|
console.log(state.checked);
|
||||||
state.checked ? (state.checked = false) : (state.checked = true);
|
state.checked ? (state.checked = false) : (state.checked = true);
|
||||||
courseSyncFlag = state.checked ? 1 : 0;
|
courseSyncFlag = state.checked ? 1 : 0;
|
||||||
};
|
};
|
||||||
|
//同步学习记录------------------------------------
|
||||||
|
//BOEU实施--------------------------------------
|
||||||
let boeFlag = 0;
|
let boeFlag = 0;
|
||||||
const changeChecked1 = () => {
|
const changeChecked1 = () => {
|
||||||
console.log(state.checked1);
|
console.log(state.checked1);
|
||||||
state.checked1 ? (state.checked1 = false) : (state.checked1 = true);
|
state.checked1 ? (state.checked1 = false) : (state.checked1 = true);
|
||||||
boeFlag = state.checked1 ? 1 : 0;
|
boeFlag = state.checked1 ? 1 : 0;
|
||||||
};
|
};
|
||||||
|
//BOEU实施--------------------------------------
|
||||||
|
|
||||||
const removeFile = (file) => {
|
const removeFile = (file) => {
|
||||||
const index = fileList1.value.indexOf(file);
|
const index = fileList1.value.indexOf(file);
|
||||||
@@ -980,7 +1006,7 @@ export default {
|
|||||||
let obj = {
|
let obj = {
|
||||||
projectId: Number(peojectID),
|
projectId: Number(peojectID),
|
||||||
name: projectName["value"],
|
name: projectName["value"],
|
||||||
category: projectType,
|
category: state.projectType, //分类选择的id
|
||||||
picUrl: picUrl,
|
picUrl: picUrl,
|
||||||
beginTime: beginTime,
|
beginTime: beginTime,
|
||||||
endTime: endTime,
|
endTime: endTime,
|
||||||
@@ -1037,7 +1063,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
let obj = {
|
let obj = {
|
||||||
name: projectName["value"],
|
name: projectName["value"],
|
||||||
category: projectType,
|
category: state.projectType, //分类选择的id
|
||||||
picUrl: picUrl,
|
picUrl: picUrl,
|
||||||
beginTime: beginTime,
|
beginTime: beginTime,
|
||||||
endTime: endTime,
|
endTime: endTime,
|
||||||
|
|||||||
@@ -1055,6 +1055,68 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<!-- 项目提交审核弹窗 -->
|
||||||
|
<a-modal
|
||||||
|
v-model:visible="reviewModal"
|
||||||
|
:footer="null"
|
||||||
|
:closable="false"
|
||||||
|
wrapClassName="CopyModal"
|
||||||
|
centered="true"
|
||||||
|
>
|
||||||
|
<div class="delete">
|
||||||
|
<div class="del_header"></div>
|
||||||
|
<div class="del_main">
|
||||||
|
<div class="header">
|
||||||
|
<div class="icon"></div>
|
||||||
|
<span>提示</span>
|
||||||
|
<div class="close_exit" @click="closeReviewModal"></div>
|
||||||
|
</div>
|
||||||
|
<div class="body">
|
||||||
|
<span>您确定要提交审核吗</span>
|
||||||
|
<div class="back"></div>
|
||||||
|
</div>
|
||||||
|
<div class="del_btnbox">
|
||||||
|
<div class="del_btn btn1" @click="closeReviewModal">
|
||||||
|
<div class="btnText">取消</div>
|
||||||
|
</div>
|
||||||
|
<div class="del_btn btn2" @click="reviewProject">
|
||||||
|
<div class="btnText">确定</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
<!-- 项目撤回审核弹窗 -->
|
||||||
|
<a-modal
|
||||||
|
v-model:visible="recallReviewModal"
|
||||||
|
:footer="null"
|
||||||
|
:closable="false"
|
||||||
|
wrapClassName="CopyModal"
|
||||||
|
centered="true"
|
||||||
|
>
|
||||||
|
<div class="delete">
|
||||||
|
<div class="del_header"></div>
|
||||||
|
<div class="del_main">
|
||||||
|
<div class="header">
|
||||||
|
<div class="icon"></div>
|
||||||
|
<span>提示</span>
|
||||||
|
<div class="close_exit" @click="closeRecallReviewModal"></div>
|
||||||
|
</div>
|
||||||
|
<div class="body">
|
||||||
|
<span>您确定要撤回审核吗</span>
|
||||||
|
<div class="back"></div>
|
||||||
|
</div>
|
||||||
|
<div class="del_btnbox">
|
||||||
|
<div class="del_btn btn1" @click="closeRecallReviewModal">
|
||||||
|
<div class="btnText">取消</div>
|
||||||
|
</div>
|
||||||
|
<div class="del_btn btn2" @click="recallReviewProject">
|
||||||
|
<div class="btnText">确定</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
|
||||||
<!-- 归属权抽屉 -->
|
<!-- 归属权抽屉 -->
|
||||||
<proj-owner-ship v-model:ProjOwnervisible="ProjOwnervisible" />
|
<proj-owner-ship v-model:ProjOwnervisible="ProjOwnervisible" />
|
||||||
@@ -1102,6 +1164,9 @@ export default {
|
|||||||
backModal: false, //撤回弹窗
|
backModal: false, //撤回弹窗
|
||||||
closeBack: false, //撤回弹窗关闭图标
|
closeBack: false, //撤回弹窗关闭图标
|
||||||
reminderModal: false, //温馨提示弹窗
|
reminderModal: false, //温馨提示弹窗
|
||||||
|
reviewModal: false, //提交审核
|
||||||
|
recallReviewModal: false, //撤回审核
|
||||||
|
|
||||||
ProjOwnervisible: false,
|
ProjOwnervisible: false,
|
||||||
ProjPvisible: false,
|
ProjPvisible: false,
|
||||||
ProjCheckvisible: false,
|
ProjCheckvisible: false,
|
||||||
@@ -2000,6 +2065,28 @@ export default {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//打开提交审核弹窗
|
||||||
|
const showReviewModal = () => {
|
||||||
|
state.reviewModal = true;
|
||||||
|
};
|
||||||
|
//确认提交审核
|
||||||
|
const reviewProject = () => {};
|
||||||
|
//关闭提交审核弹窗
|
||||||
|
const closeReviewModal = () => {
|
||||||
|
state.reviewModal = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
//打开撤回审核弹窗
|
||||||
|
const showRecallReviewModal = () => {
|
||||||
|
state.recallReviewModal = true;
|
||||||
|
};
|
||||||
|
//确认提交审核
|
||||||
|
const recallReviewProject = () => {};
|
||||||
|
//关闭提交审核弹窗
|
||||||
|
const closeRecallReviewModal = () => {
|
||||||
|
state.recallReviewModal = false;
|
||||||
|
};
|
||||||
|
|
||||||
// 数据接入 - end -
|
// 数据接入 - end -
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@@ -2047,13 +2134,16 @@ export default {
|
|||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{value.record.status == 0
|
{value.record.status == 0 ||
|
||||||
|
value.record.status == 1 ||
|
||||||
|
value.record.status == 2 ||
|
||||||
|
value.record.status == -2
|
||||||
? "草稿"
|
? "草稿"
|
||||||
: value.record.status == 1 &&
|
: value.record.status == 3 &&
|
||||||
Number(value.record.beginTime) <
|
Number(value.record.beginTime) <
|
||||||
Math.ceil(new Date().getTime() / 1000)
|
Math.ceil(new Date().getTime() / 1000)
|
||||||
? "进行中"
|
? "进行中"
|
||||||
: value.record.status == 1 &&
|
: value.record.status == 3 &&
|
||||||
Number(value.record.beginTime) >
|
Number(value.record.beginTime) >
|
||||||
Math.ceil(new Date().getTime() / 1000) &&
|
Math.ceil(new Date().getTime() / 1000) &&
|
||||||
value.record.type !== 1 &&
|
value.record.type !== 1 &&
|
||||||
@@ -2074,6 +2164,36 @@ export default {
|
|||||||
width: 100,
|
width: 100,
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "是否审核",
|
||||||
|
dataIndex: "status",
|
||||||
|
// width: "30%",
|
||||||
|
key: "status",
|
||||||
|
width: 100,
|
||||||
|
align: "center",
|
||||||
|
customRender: (value) => {
|
||||||
|
{
|
||||||
|
console.log("获取项目", value);
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.type !== 3
|
||||||
|
? "-"
|
||||||
|
: value.record.status == 0
|
||||||
|
? "未审核"
|
||||||
|
: value.record.status == 1
|
||||||
|
? "审核中"
|
||||||
|
: value.record.status == 2 ||
|
||||||
|
value.record.status == 3 ||
|
||||||
|
value.record.status == -1
|
||||||
|
? "已审核"
|
||||||
|
: value.record.status == -2
|
||||||
|
? "未通过"
|
||||||
|
: "-"}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "创建时间",
|
title: "创建时间",
|
||||||
dataIndex: "createTime",
|
dataIndex: "createTime",
|
||||||
@@ -2094,7 +2214,10 @@ export default {
|
|||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
// console.log("value", value.record.type, value.record.status);
|
// console.log("value", value.record.type, value.record.status);
|
||||||
return value.record.type === 1 ? (
|
return value.record.type === 1 ? (
|
||||||
value.record.status === 0 ? (
|
value.record.status === 0 ||
|
||||||
|
value.record.status === 1 ||
|
||||||
|
value.record.status === 2 ||
|
||||||
|
value.record.status === -2 ? (
|
||||||
<div class="operation">
|
<div class="operation">
|
||||||
<span
|
<span
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@@ -2214,7 +2337,7 @@ export default {
|
|||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
) : value.record.status === 1 ? (
|
) : value.record.status === 3 ? (
|
||||||
<div class="operation">
|
<div class="operation">
|
||||||
<span class="operation1">查看</span>
|
<span class="operation1">查看</span>
|
||||||
<div class="tableSelect">
|
<div class="tableSelect">
|
||||||
@@ -2404,7 +2527,10 @@ export default {
|
|||||||
<div></div>
|
<div></div>
|
||||||
)
|
)
|
||||||
) : value.record.type === 2 ? (
|
) : value.record.type === 2 ? (
|
||||||
value.record.status === 0 ? (
|
value.record.status === 0 ||
|
||||||
|
value.record.status === 1 ||
|
||||||
|
value.record.status === 2 ||
|
||||||
|
value.record.status === -2 ? (
|
||||||
<div class="operation">
|
<div class="operation">
|
||||||
<span
|
<span
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@@ -2515,7 +2641,7 @@ export default {
|
|||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
) : value.record.status === 1 ? (
|
) : value.record.status === 3 ? (
|
||||||
<div class="operation">
|
<div class="operation">
|
||||||
<span class="operation1">查看</span>
|
<span class="operation1">查看</span>
|
||||||
<div class="tableSelect">
|
<div class="tableSelect">
|
||||||
@@ -2812,7 +2938,27 @@ export default {
|
|||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
{value.record.status === 0 ? (
|
{value.record.status === 0 || value.record.status === -2 ? (
|
||||||
|
<span
|
||||||
|
onClick={() => {
|
||||||
|
showReviewModal();
|
||||||
|
}}
|
||||||
|
style="cursor:pointer"
|
||||||
|
class="operation3"
|
||||||
|
>
|
||||||
|
提交审核
|
||||||
|
</span>
|
||||||
|
) : value.record.status === 1 ? (
|
||||||
|
<span
|
||||||
|
onClick={() => {
|
||||||
|
showRecallReviewModal();
|
||||||
|
}}
|
||||||
|
style="cursor:pointer"
|
||||||
|
class="operation3"
|
||||||
|
>
|
||||||
|
撤回审核
|
||||||
|
</span>
|
||||||
|
) : value.record.status === 2 ? (
|
||||||
<span
|
<span
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("value.record", value.record);
|
console.log("value.record", value.record);
|
||||||
@@ -3150,6 +3296,12 @@ export default {
|
|||||||
showProjCheck,
|
showProjCheck,
|
||||||
showProjManage,
|
showProjManage,
|
||||||
closeProjectPub,
|
closeProjectPub,
|
||||||
|
showReviewModal,
|
||||||
|
reviewProject,
|
||||||
|
closeReviewModal,
|
||||||
|
showRecallReviewModal,
|
||||||
|
recallReviewProject,
|
||||||
|
closeRecallReviewModal,
|
||||||
|
|
||||||
tableData,
|
tableData,
|
||||||
columns,
|
columns,
|
||||||
|
|||||||
@@ -794,7 +794,7 @@
|
|||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="name">
|
<!-- <div class="name">
|
||||||
<div class="text">姓名:</div>
|
<div class="text">姓名:</div>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:value="valueName"
|
v-model:value="valueName"
|
||||||
@@ -806,7 +806,7 @@
|
|||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="time">
|
<div class="time">
|
||||||
<div class="text">选择时间:</div>
|
<div class="text">选择时间:</div>
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
@@ -864,7 +864,7 @@
|
|||||||
<div class="rank">
|
<div class="rank">
|
||||||
<div class="rankhead">
|
<div class="rankhead">
|
||||||
<div class="inhead">
|
<div class="inhead">
|
||||||
<div class="left">学分排行 Top10</div>
|
<div class="left">积分排行 Top10</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="valuestu3"
|
v-model:value="valuestu3"
|
||||||
@@ -889,7 +889,7 @@
|
|||||||
<div class="rank">
|
<div class="rank">
|
||||||
<div class="rankhead">
|
<div class="rankhead">
|
||||||
<div class="inhead">
|
<div class="inhead">
|
||||||
<div class="left">学识排行 Top10</div>
|
<div class="left">学时排行 Top10</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="valuestu4"
|
v-model:value="valuestu4"
|
||||||
@@ -1766,16 +1766,25 @@ export default {
|
|||||||
// projectId:"", //项目任务id
|
// projectId:"", //项目任务id
|
||||||
projectTaskId: "", //项目任务任务id
|
projectTaskId: "", //项目任务任务id
|
||||||
//进度排行学员
|
//进度排行学员
|
||||||
rankjindu: [{ value: "学员", label: "学员" }],
|
rankjindu: [
|
||||||
|
{ value: "学员", label: "学员" },
|
||||||
|
{ value: "小组", label: "小组" },
|
||||||
|
],
|
||||||
valuestu1: "学员",
|
valuestu1: "学员",
|
||||||
//进度排行阶段
|
//进度排行阶段
|
||||||
rankjieduan: [{ value: "第一阶段", label: "第一阶段" }],
|
rankjieduan: [{ value: "第一阶段", label: "第一阶段" }],
|
||||||
valuestu2: "第一阶段",
|
valuestu2: "第一阶段",
|
||||||
//学分排行
|
//积分排行
|
||||||
rankxuefen: [{ value: "学员", label: "学员" }],
|
rankxuefen: [
|
||||||
|
{ value: "学员", label: "学员" },
|
||||||
|
{ value: "小组", label: "小组" },
|
||||||
|
],
|
||||||
valuestu3: "学员",
|
valuestu3: "学员",
|
||||||
//学识排行
|
//学时排行
|
||||||
rankxueshi: [{ value: "学员", label: "学员" }],
|
rankxueshi: [
|
||||||
|
{ value: "学员", label: "学员" },
|
||||||
|
{ value: "小组", label: "小组" },
|
||||||
|
],
|
||||||
valuestu4: "学员",
|
valuestu4: "学员",
|
||||||
visible: false, //时间管理
|
visible: false, //时间管理
|
||||||
FaceVisivle: false, //面授管理
|
FaceVisivle: false, //面授管理
|
||||||
@@ -1962,53 +1971,53 @@ export default {
|
|||||||
{
|
{
|
||||||
rank: "1",
|
rank: "1",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "80%",
|
jd: "80",
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
rank: "2",
|
rank: "2",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "3",
|
rank: "3",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "4",
|
rank: "4",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "5",
|
rank: "5",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "6",
|
rank: "6",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "7",
|
rank: "7",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "8",
|
rank: "8",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "9",
|
rank: "9",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "10",
|
rank: "10",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "7",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
xuefentablecolumns: [
|
xuefentablecolumns: [
|
||||||
@@ -2056,7 +2065,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "进度",
|
title: "积分",
|
||||||
dataIndex: "jd",
|
dataIndex: "jd",
|
||||||
key: "jd",
|
key: "jd",
|
||||||
width: 50,
|
width: 50,
|
||||||
@@ -2064,58 +2073,58 @@ export default {
|
|||||||
className: "h",
|
className: "h",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
//学识排行表
|
//学时排行表
|
||||||
xueshitabledata: [
|
xueshitabledata: [
|
||||||
{
|
{
|
||||||
rank: "1",
|
rank: "1",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "80%",
|
jd: "8",
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
rank: "2",
|
rank: "2",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "3",
|
rank: "3",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "4",
|
rank: "4",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "5",
|
rank: "5",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "6",
|
rank: "6",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "7",
|
rank: "7",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "8",
|
rank: "8",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "9",
|
rank: "9",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rank: "10",
|
rank: "10",
|
||||||
name: "哈哈",
|
name: "哈哈",
|
||||||
jd: "70%",
|
jd: "70",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
xueshitablecolumns: [
|
xueshitablecolumns: [
|
||||||
@@ -2163,7 +2172,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "进度",
|
title: "时长",
|
||||||
dataIndex: "jd",
|
dataIndex: "jd",
|
||||||
key: "jd",
|
key: "jd",
|
||||||
width: 50,
|
width: 50,
|
||||||
|
|||||||
@@ -47,6 +47,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import { reactive, defineComponent, toRefs, onMounted } from "vue";
|
import { reactive, defineComponent, toRefs, onMounted } from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
|
import { useStore } from "vuex";
|
||||||
import * as api from "@/api/indexTemplate"
|
import * as api from "@/api/indexTemplate"
|
||||||
const columns1 = [
|
const columns1 = [
|
||||||
{
|
{
|
||||||
@@ -90,6 +92,9 @@ const columns1 = [
|
|||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "TemplateLibrary",
|
name: "TemplateLibrary",
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
|
// 编辑页面跳转过来时候,自动填充表格
|
||||||
|
const router = useRouter();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
value1: null,
|
value1: null,
|
||||||
tableData1: [
|
tableData1: [
|
||||||
@@ -101,15 +106,6 @@ export default defineComponent({
|
|||||||
stutime: "2022-10-31 23:12:00",
|
stutime: "2022-10-31 23:12:00",
|
||||||
operation: "operation",
|
operation: "operation",
|
||||||
projectTemplateId: 1,
|
projectTemplateId: 1,
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "2",
|
|
||||||
name: "测试模板2",
|
|
||||||
status: "未发布",
|
|
||||||
creator: "李部长",
|
|
||||||
stutime: "2022-10-31 23:12:00",
|
|
||||||
operation: "operation",
|
|
||||||
projectTemplateId: 2,
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
@@ -124,12 +120,10 @@ export default defineComponent({
|
|||||||
{value.status === "已发布" ? (
|
{value.status === "已发布" ? (
|
||||||
<div class="nselect">
|
<div class="nselect">
|
||||||
<div class="ops2">
|
<div class="ops2">
|
||||||
<router-link to="/libraryadd">
|
<div class="jc" onClick={() => {toLibraryAdd(value.projectTemplateId)}}>
|
||||||
<div class="jc">
|
|
||||||
查看{" "}
|
查看{" "}
|
||||||
<span style="color:#E9E9E9;margin-left:15px;">|</span>
|
<span style="color:#E9E9E9;margin-left:15px;">|</span>
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="ops3">
|
<div class="ops3">
|
||||||
<div class="jc"
|
<div class="jc"
|
||||||
@@ -150,12 +144,10 @@ export default defineComponent({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ops2">
|
<div class="ops2">
|
||||||
<router-link to="/libraryadd">
|
<div class="jc" onClick={() => {toLibraryAdd(value.projectTemplateId)}}>
|
||||||
<div class="jc">
|
|
||||||
查看
|
查看
|
||||||
<span style="color:#E9E9E9;margin-left:15px;">|</span>
|
<span style="color:#E9E9E9;margin-left:15px;">|</span>
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="ops3">
|
<div class="ops3">
|
||||||
<div class="jc"
|
<div class="jc"
|
||||||
@@ -189,26 +181,28 @@ export default defineComponent({
|
|||||||
const getLibraryList = () => {
|
const getLibraryList = () => {
|
||||||
let obj = {
|
let obj = {
|
||||||
"beginTime": 0,
|
"beginTime": 0,
|
||||||
"endTime": 0,
|
|
||||||
"name": "",
|
"name": "",
|
||||||
"pageNo": pagination.current,
|
"pageNo": pagination.current,
|
||||||
"pageSize": 10,
|
"pageSize": 10,
|
||||||
"status": 0 || 1
|
"status": 0
|
||||||
}
|
}
|
||||||
api.templateList(obj).then((res) => {
|
api.templateList(obj).then((res) => {
|
||||||
|
state.tableData1 = []
|
||||||
console.log(res);
|
console.log(res);
|
||||||
let resData = res.data.data.rows
|
let resData = res.data.data.rows
|
||||||
if (resData.length) {
|
if (resData.length) {
|
||||||
for (let i in resData) {
|
for (let i in resData) {
|
||||||
state.tableData1[i].id = i + 1;
|
state.tableData1.push({
|
||||||
state.tableData1[i].projectTemplateId = resData[i].projectTemplateId;
|
id : i + 1,
|
||||||
state.tableData1[i].status = resData[i].status ? "已发布" : "未发布";
|
projectTemplateId:resData[i].projectTemplateId,
|
||||||
state.tableData1[i].name = resData[i].name;
|
status:resData[i].status ? "已发布" : "未发布",
|
||||||
state.tableData1[i].creator = resData[i].createName;
|
name:resData[i].name,
|
||||||
state.tableData1[i].stutime = resData[i].publishTime;
|
creator:resData[i].createName,
|
||||||
state.tableData1[i].operation = "operation";
|
stutime:resData[i].publishTime,
|
||||||
|
operation:"operation"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
getTableDate1()
|
||||||
} else {
|
} else {
|
||||||
message.warning("获取的列表数据为空值")
|
message.warning("获取的列表数据为空值")
|
||||||
}
|
}
|
||||||
@@ -227,55 +221,21 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const searchLevel = () => {
|
const searchLevel = () => {
|
||||||
state.tableData1 = [
|
getLibraryList();
|
||||||
{
|
setTimeout(() => {
|
||||||
key: "1",
|
|
||||||
name: "测试模板1",
|
|
||||||
status: "已发布",
|
|
||||||
creator: "李部长",
|
|
||||||
stutime: "2022-10-31 23:12:00",
|
|
||||||
operation: "operation",
|
|
||||||
projectTemplateId: 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "2",
|
|
||||||
name: "测试模板2",
|
|
||||||
status: "未发布",
|
|
||||||
creator: "李部长",
|
|
||||||
stutime: "2022-10-31 23:12:00",
|
|
||||||
operation: "operation",
|
|
||||||
projectTemplateId: 2,
|
|
||||||
}
|
|
||||||
];
|
|
||||||
const result = state.tableData1.filter(item => item.name.includes(state.value1))
|
const result = state.tableData1.filter(item => item.name.includes(state.value1))
|
||||||
state.tableData1 = result;
|
state.tableData1 = result;
|
||||||
getTableDate1()
|
},100)
|
||||||
};
|
};
|
||||||
const resetLevel = () => {
|
const resetLevel = () => {
|
||||||
state.value1 = '';
|
state.value1 = '';
|
||||||
// getLibraryList();
|
getLibraryList();
|
||||||
state.tableData1 = [
|
|
||||||
{
|
|
||||||
key: "1",
|
|
||||||
name: "测试模板1",
|
|
||||||
status: "已发布",
|
|
||||||
creator: "李部长",
|
|
||||||
stutime: "2022-10-31 23:12:00",
|
|
||||||
operation: "operation",
|
|
||||||
projectTemplateId: 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "2",
|
|
||||||
name: "测试模板2",
|
|
||||||
status: "未发布",
|
|
||||||
creator: "李部长",
|
|
||||||
stutime: "2022-10-31 23:12:00",
|
|
||||||
operation: "operation",
|
|
||||||
projectTemplateId: 2,
|
|
||||||
}
|
|
||||||
]
|
|
||||||
getTableDate1()
|
getTableDate1()
|
||||||
};
|
};
|
||||||
|
const toLibraryAdd = (id) => {
|
||||||
|
router.push("/libraryAdd");
|
||||||
|
store.state.projectTemplateId = id
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
@@ -284,6 +244,7 @@ export default defineComponent({
|
|||||||
searchLevel,
|
searchLevel,
|
||||||
resetLevel,
|
resetLevel,
|
||||||
pagination,
|
pagination,
|
||||||
|
toLibraryAdd,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1045,6 +1045,7 @@
|
|||||||
import draggable from "vuedraggable";
|
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 {useStore} from "vuex";
|
||||||
// import * as api1 from "../../api/index1";
|
// import * as api1 from "../../api/index1";
|
||||||
|
|
||||||
const drawercolumns = [
|
const drawercolumns = [
|
||||||
@@ -1105,6 +1106,7 @@
|
|||||||
UnlockMode,
|
UnlockMode,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
projectId: storage.get("projectId")
|
projectId: storage.get("projectId")
|
||||||
? JSON.parse(storage.get("projectId"))
|
? JSON.parse(storage.get("projectId"))
|
||||||
@@ -1507,8 +1509,7 @@
|
|||||||
const getTask = () => {
|
const getTask = () => {
|
||||||
state.tableData = []
|
state.tableData = []
|
||||||
api
|
api
|
||||||
// .templateDetail(state.projectId || 1)
|
.templateDetail(store.state.projectTemplateId)
|
||||||
.templateDetail(1)
|
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.status == 200) {
|
if (res.status == 200) {
|
||||||
console.log("22222", res.data.data.stageList);
|
console.log("22222", res.data.data.stageList);
|
||||||
@@ -1706,7 +1707,7 @@
|
|||||||
if (state.updateStageID) {
|
if (state.updateStageID) {
|
||||||
let obj = {
|
let obj = {
|
||||||
name: state.valuesname,
|
name: state.valuesname,
|
||||||
projectTemplateId: 1,
|
projectTemplateId: store.state.projectTemplateId,
|
||||||
remark: state.valuesnotice,
|
remark: state.valuesnotice,
|
||||||
stageId:state.updateStageID,
|
stageId:state.updateStageID,
|
||||||
};
|
};
|
||||||
@@ -1728,7 +1729,7 @@
|
|||||||
} else {
|
} else {
|
||||||
let obj = {
|
let obj = {
|
||||||
name: state.valuesname,
|
name: state.valuesname,
|
||||||
projectTemplateId: 1,
|
projectTemplateId: store.state.projectTemplateId,
|
||||||
remark: state.valuesnotice,
|
remark: state.valuesnotice,
|
||||||
stageId:0,
|
stageId:0,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -311,17 +311,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs, ref } from "vue";
|
import { reactive, toRefs, ref,onMounted } 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/indexTemplate";
|
import * as api from "../../api/indexTemplate";
|
||||||
import { storage } from "../../api/storage";
|
import { storage } from "../../api/storage";
|
||||||
|
import {useStore} from "vuex";
|
||||||
// import { toDate } from "../../api/method";
|
// import { toDate } from "../../api/method";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "projectAdd",
|
name: "projectAdd",
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
// 编辑页面跳转过来时候,自动填充表格
|
// 编辑页面跳转过来时候,自动填充表格
|
||||||
const routers = useRoute();
|
const routers = useRoute();
|
||||||
const isEdit = ref(false);
|
const isEdit = ref(false);
|
||||||
@@ -580,23 +582,7 @@ export default {
|
|||||||
console.log(`selected ${key}`, classifyList4);
|
console.log(`selected ${key}`, classifyList4);
|
||||||
// systemid = key;
|
// systemid = key;
|
||||||
};
|
};
|
||||||
//模版滚动加载信息
|
|
||||||
const templateScroll = (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) {
|
|
||||||
state.currentPage = 1;
|
|
||||||
} else if (scrllHeight - clientHeight == 0) {
|
|
||||||
// 下拉到底部时
|
|
||||||
if (state.currentPage < state.totalPages) {
|
|
||||||
// 如果滑到底部,则加载下一页
|
|
||||||
state.currentPage++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// const removeFile = (file) => {
|
// const removeFile = (file) => {
|
||||||
// const index = fileList1.value.indexOf(file);
|
// const index = fileList1.value.indexOf(file);
|
||||||
@@ -619,6 +605,9 @@ export default {
|
|||||||
// attach = attachStr;
|
// attach = attachStr;
|
||||||
// };
|
// };
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
})
|
||||||
|
|
||||||
const errorMsgs = {
|
const errorMsgs = {
|
||||||
name: "请输入模板名称",
|
name: "请输入模板名称",
|
||||||
category: "请选择模板分类",
|
category: "请选择模板分类",
|
||||||
@@ -646,11 +635,11 @@ export default {
|
|||||||
"sourceBelongId": state.projectInfo.sourceBelongId,
|
"sourceBelongId": state.projectInfo.sourceBelongId,
|
||||||
"level": state.projectInfo.level,
|
"level": state.projectInfo.level,
|
||||||
"systemId": state.projectInfo.systemId,
|
"systemId": state.projectInfo.systemId,
|
||||||
"boeFlag": state.projectInfo.boeFlag,
|
"boeFlag": state.projectInfo.boeFlag ? 1:0,
|
||||||
"courseSyncFlag": state.projectInfo.courseSyncFlag,
|
"courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0,
|
||||||
"notice": "",
|
"notice": "",
|
||||||
"noticeFlag": 0,
|
"noticeFlag": 0,
|
||||||
"projectTemplateId": 0,
|
"projectTemplateId": store.state.projectTemplateId,
|
||||||
"remark": "",
|
"remark": "",
|
||||||
"status": 0,
|
"status": 0,
|
||||||
|
|
||||||
@@ -667,25 +656,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
api
|
api
|
||||||
.templateEdit({
|
.templateEdit(obj)
|
||||||
"beginTime": 0,
|
|
||||||
"boeFlag": 0,
|
|
||||||
"category": 0,
|
|
||||||
"courseSyncFlag": 0,
|
|
||||||
"endTime": 0,
|
|
||||||
"level": 0,
|
|
||||||
"manager": "",
|
|
||||||
"managerId": "",
|
|
||||||
"name": "",
|
|
||||||
"notice": "",
|
|
||||||
"noticeFlag": 0,
|
|
||||||
"picUrl": "",
|
|
||||||
"projectTemplateId": 0,
|
|
||||||
"remark": "",
|
|
||||||
"sourceBelongId": 0,
|
|
||||||
"status": 0,
|
|
||||||
"systemId": 0
|
|
||||||
})
|
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
if (res.status == 200 && res.data.code == 200) {
|
if (res.status == 200 && res.data.code == 200) {
|
||||||
@@ -708,35 +679,6 @@ export default {
|
|||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
// 编辑项目模板
|
|
||||||
const editTemplate = () => {
|
|
||||||
let obj = {
|
|
||||||
"beginTime": state.projectInfo.time,
|
|
||||||
"boeFlag": state.projectInfo.boeFlag,
|
|
||||||
"category": 0,
|
|
||||||
"courseSyncFlag": state.projectInfo.courseSyncFlag,
|
|
||||||
"endTime": state.projectInfo.time,
|
|
||||||
"level": state.projectInfo.level,
|
|
||||||
"manager": state.projectInfo.manager,
|
|
||||||
"managerId": "",
|
|
||||||
"name": state.projectInfo.name,
|
|
||||||
"notice": "",
|
|
||||||
"noticeFlag": 0,
|
|
||||||
"picUrl": "",
|
|
||||||
"projectTemplateId": 0,
|
|
||||||
"remark": state.projectInfo.remark,
|
|
||||||
"sourceBelongId": state.projectInfo.sourceBelongId,
|
|
||||||
"status": 0,
|
|
||||||
"systemId": state.projectInfo.systemId
|
|
||||||
};
|
|
||||||
api.templateEdit(obj).methods(obj).then(res => {
|
|
||||||
message.success("编辑成功")
|
|
||||||
console.log(res)
|
|
||||||
}).catch(err => {
|
|
||||||
message.error("编辑失败"+err)
|
|
||||||
console.log(err)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
@@ -766,8 +708,6 @@ export default {
|
|||||||
isEdit,
|
isEdit,
|
||||||
backPage,
|
backPage,
|
||||||
dateFormatList,
|
dateFormatList,
|
||||||
editTemplate,
|
|
||||||
templateScroll,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,762 +0,0 @@
|
|||||||
<!-- 评估管理-创建评估页面 -->
|
|
||||||
<template>
|
|
||||||
<div class="researchadd">
|
|
||||||
<div class="header">
|
|
||||||
<span class="title">创建评估</span>
|
|
||||||
<router-link to="/researchmanage" class="goback">
|
|
||||||
<span class="return"></span>
|
|
||||||
<router-link class="returntext" to="/researchmanage">
|
|
||||||
返回
|
|
||||||
</router-link>
|
|
||||||
</router-link>
|
|
||||||
</div>
|
|
||||||
<div class="addtype">
|
|
||||||
<div class="addtypen">创建评估类型</div>
|
|
||||||
<div class="types" @click="handleTypes(1)">单选题</div>
|
|
||||||
<div class="types" @click="handleTypes(2)">多选题</div>
|
|
||||||
<div class="types" @click="handleTypes(3)">问答题</div>
|
|
||||||
<div class="types" @click="handleTypes(4)">评分题</div>
|
|
||||||
</div>
|
|
||||||
<div v-for="(item, index) in allFormsData" :key="index">
|
|
||||||
<ResearchAddSingle v-if="item.type === 1" :item="item" @del="handleDel" />
|
|
||||||
<ResearchAddMulti v-if="item.type === 2" :item="item" @del="handleDel" />
|
|
||||||
<ResearchAddAsk v-if="item.type === 3" :item="item" @del="handleDel" />
|
|
||||||
<ResearchAddPin v-if="item.type === 4" :item="item" @del="handleDel" />
|
|
||||||
</div>
|
|
||||||
<div class="opinion name2">
|
|
||||||
<div class="namebox">
|
|
||||||
<div class="inname" style="margin-top: 13px">您的其他意见</div>
|
|
||||||
</div>
|
|
||||||
<div class="in">
|
|
||||||
<a-textarea
|
|
||||||
v-model:value="valueMore"
|
|
||||||
style="height: 110px"
|
|
||||||
show-count
|
|
||||||
:maxlength="200"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer">
|
|
||||||
<div class="btn">
|
|
||||||
<a-button
|
|
||||||
type="primary"
|
|
||||||
style="
|
|
||||||
width: 100px;
|
|
||||||
height: 40px;
|
|
||||||
border-radius: 8px;
|
|
||||||
background-color: #409eff;
|
|
||||||
"
|
|
||||||
@click="handleSave"
|
|
||||||
>
|
|
||||||
保存
|
|
||||||
</a-button>
|
|
||||||
<a-button
|
|
||||||
type="primary"
|
|
||||||
ghost
|
|
||||||
style="
|
|
||||||
width: 100px;
|
|
||||||
height: 40px;
|
|
||||||
margin-left: 14px;
|
|
||||||
border-radius: 8px;
|
|
||||||
"
|
|
||||||
@click="handleAllCancel"
|
|
||||||
>
|
|
||||||
取消
|
|
||||||
</a-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
import { reactive, toRefs, computed } from "vue";
|
|
||||||
// import { message } from "ant-design-vue";
|
|
||||||
// import { createResearch } from "../../api/indexResearch";
|
|
||||||
import ResearchAddSingle from "./components/ResearchAddSingle.vue";
|
|
||||||
import ResearchAddMulti from "./components/ResearchAddMulti.vue";
|
|
||||||
import ResearchAddAsk from "./components/ResearchAddAsk.vue";
|
|
||||||
import ResearchAddPin from "./components/ResearchAddPin.vue";
|
|
||||||
import { sortBy, traverseArr, filterCommon } from "../../utils/utils";
|
|
||||||
import {
|
|
||||||
queryResearchDetailById,
|
|
||||||
editResearchMessage,
|
|
||||||
createResearch,
|
|
||||||
} from "@/api/indexResearch";
|
|
||||||
import { useRouter } from "vue-router";
|
|
||||||
import store from "@/store";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "ResearchAdd",
|
|
||||||
components: {
|
|
||||||
ResearchAddSingle,
|
|
||||||
ResearchAddMulti,
|
|
||||||
ResearchAddAsk,
|
|
||||||
ResearchAddPin,
|
|
||||||
},
|
|
||||||
setup() {
|
|
||||||
const router = useRouter();
|
|
||||||
const state = reactive({
|
|
||||||
assessmentId: "", //编辑时候传
|
|
||||||
assessmentName: "",
|
|
||||||
assessmentNameNew: computed(() => store.state.assessmentName),
|
|
||||||
|
|
||||||
allFormsData: [],
|
|
||||||
valueMore: "",
|
|
||||||
});
|
|
||||||
|
|
||||||
const getInfoDate = async () => {
|
|
||||||
let id = router.currentRoute.value.params.id;
|
|
||||||
if (id) {
|
|
||||||
state.assessmentId = id;
|
|
||||||
let renderArr = [];
|
|
||||||
let res = await queryResearchDetailById({
|
|
||||||
assessmentId: state.assessmentId,
|
|
||||||
});
|
|
||||||
console.log("res1111111111");
|
|
||||||
console.log(res);
|
|
||||||
state.assessmentName = res.assessmentName;
|
|
||||||
state.valueMore = res.assessmentMark;
|
|
||||||
renderArr.concat(
|
|
||||||
res.singleStemVoList,
|
|
||||||
res.multipleStemVoList,
|
|
||||||
res.essayQuestionVoList,
|
|
||||||
res.scoringQuestionVoList
|
|
||||||
);
|
|
||||||
sortBy(renderArr, "orderNumber"); //序号
|
|
||||||
console.log("renderArr");
|
|
||||||
console.log(renderArr);
|
|
||||||
this.allFormsData = parseData(renderArr, "questionType"); //类型
|
|
||||||
console.log("this.allFormsData");
|
|
||||||
console.log(this.allFormsData);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
getInfoDate();
|
|
||||||
|
|
||||||
// 转换成前端格式
|
|
||||||
const parseData = (arr, typeKey) => {
|
|
||||||
console.log(arr);
|
|
||||||
console.log(typeKey);
|
|
||||||
const resultArr = [];
|
|
||||||
arr.forEach((item) => {
|
|
||||||
let obj = {};
|
|
||||||
if (item[typeKey] === 1) {
|
|
||||||
let restList = traverseArr(item.assessmentSingleChoiceVoList, {
|
|
||||||
inputVal: "singleOptionName",
|
|
||||||
imgVal: "singleOptionPictureAddress",
|
|
||||||
}).map((itm, idx) => {
|
|
||||||
itm.id = idx + 1;
|
|
||||||
return itm;
|
|
||||||
});
|
|
||||||
|
|
||||||
obj = {
|
|
||||||
type: item[typeKey],
|
|
||||||
valueSingle: item.singleStemName,
|
|
||||||
singleList: restList,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
if (item[typeKey] === 2) {
|
|
||||||
let restList = traverseArr(item.multipleChoiceVoList, {
|
|
||||||
inputVal: "multipleOptionName",
|
|
||||||
imgVal: "multipleOptionPictureAddress",
|
|
||||||
}).map((itm, idx) => {
|
|
||||||
itm.id = idx + 1;
|
|
||||||
return itm;
|
|
||||||
});
|
|
||||||
|
|
||||||
obj = {
|
|
||||||
type: item[typeKey],
|
|
||||||
valueMutil: item.multipleStemName,
|
|
||||||
mutilList: restList,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
if (item[typeKey] === 3) {
|
|
||||||
obj = {
|
|
||||||
type: item[typeKey],
|
|
||||||
valueAsk: item.assessmentQaTitle,
|
|
||||||
valueAskDesc: item.assessmentQaDescribe,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
if (item[typeKey] === 4) {
|
|
||||||
obj = {
|
|
||||||
type: item[typeKey],
|
|
||||||
valuePin: item.assessmentScTitle,
|
|
||||||
minScore: item.assessmentScore, //?
|
|
||||||
maxScore: item.assessmentScore, //?
|
|
||||||
pinQuan: item.weightScale,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
resultArr.map((itm, idx) => {
|
|
||||||
itm.id = idx + 1;
|
|
||||||
return itm;
|
|
||||||
});
|
|
||||||
console.log(resultArr);
|
|
||||||
return resultArr;
|
|
||||||
};
|
|
||||||
// 转换成后端格式
|
|
||||||
const restData = (arr, typeKey) => {
|
|
||||||
console.log("转换成后端格式");
|
|
||||||
console.log(arr);
|
|
||||||
console.log(typeKey);
|
|
||||||
const resultArr = [];
|
|
||||||
arr.forEach((item) => {
|
|
||||||
let obj = {};
|
|
||||||
if (item[typeKey] === 1) {
|
|
||||||
console.log(11111111111);
|
|
||||||
let restList = traverseArr(item.singleList, {
|
|
||||||
singleOptionName: "inputVal",
|
|
||||||
singleOptionPictureAddress: "imgVal",
|
|
||||||
}).map((itm, idx) => {
|
|
||||||
itm.optionOrderNum = idx + 1;
|
|
||||||
return itm;
|
|
||||||
});
|
|
||||||
console.log(restList);
|
|
||||||
|
|
||||||
obj = {
|
|
||||||
questionType: item[typeKey],
|
|
||||||
singleStemName: item.valueSingle,
|
|
||||||
singleList: restList,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
if (item[typeKey] === 2) {
|
|
||||||
let restList = traverseArr(item.mutilList, {
|
|
||||||
multipleOptionName: "inputVal",
|
|
||||||
multipleOptionPictureAddress: "imgVal",
|
|
||||||
}).map((itm, idx) => {
|
|
||||||
itm.optionOrderNum = idx + 1;
|
|
||||||
return itm;
|
|
||||||
});
|
|
||||||
|
|
||||||
obj = {
|
|
||||||
questionType: item[typeKey],
|
|
||||||
multipleStemName: item.valueMutil,
|
|
||||||
mutilList: restList,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
if (item[typeKey] === 3) {
|
|
||||||
obj = {
|
|
||||||
questionType: item[typeKey],
|
|
||||||
assessmentQaTitle: item.valueAsk,
|
|
||||||
assessmentQaDescribe: item.valueAskDesc,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
if (item[typeKey] === 4) {
|
|
||||||
obj = {
|
|
||||||
questionType: item[typeKey],
|
|
||||||
assessmentScTitle: item.valuePin,
|
|
||||||
assessmentScore: item.minScore, //?
|
|
||||||
assessmentScore1: item.maxScore, //?
|
|
||||||
weightScale: item.pinQuan,
|
|
||||||
};
|
|
||||||
resultArr.push(obj);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
resultArr.map((itm, idx) => {
|
|
||||||
itm.orderNumber = idx + 1;
|
|
||||||
return itm;
|
|
||||||
});
|
|
||||||
console.log(resultArr);
|
|
||||||
return resultArr;
|
|
||||||
};
|
|
||||||
// 解散传值
|
|
||||||
const parseItem = (arr) => {
|
|
||||||
console.log(676767);
|
|
||||||
console.log(arr);
|
|
||||||
const filterComObj = filterCommon(arr, "questionType");
|
|
||||||
console.log("filterComObj");
|
|
||||||
console.log(filterComObj);
|
|
||||||
let resultObj = {};
|
|
||||||
for (let key in filterComObj) {
|
|
||||||
console.log("key");
|
|
||||||
console.log(key);
|
|
||||||
if (key === "1") {
|
|
||||||
let arrSingle = filterComObj[key];
|
|
||||||
console.log(arrSingle);
|
|
||||||
let arr = [];
|
|
||||||
arrSingle.forEach((item) => {
|
|
||||||
if (item.singleList.length) {
|
|
||||||
item.singleList.forEach((itm) => {
|
|
||||||
arr.push({
|
|
||||||
...itm,
|
|
||||||
singleStemName: item.singleStemName,
|
|
||||||
orderNumber: item.orderNumber,
|
|
||||||
questionType: item.questionType,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
resultObj.assessmentSingleChoiceDtoList = arr;
|
|
||||||
}
|
|
||||||
if (key === "2") {
|
|
||||||
let arrMulti = filterComObj[key];
|
|
||||||
let arr = [];
|
|
||||||
arrMulti.forEach((item) => {
|
|
||||||
if (item.mutilList.length) {
|
|
||||||
item.mutilList.forEach((itm) => {
|
|
||||||
arr.push({
|
|
||||||
...itm,
|
|
||||||
multipleStemName: item.multipleStemName,
|
|
||||||
orderNumber: item.orderNumber,
|
|
||||||
questionType: item.questionType,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
resultObj.assessmentMultipleChoiceDtoList = arr;
|
|
||||||
}
|
|
||||||
if (key === "3") {
|
|
||||||
resultObj.assessmentEssayQuestionDtoList = filterComObj[key];
|
|
||||||
}
|
|
||||||
if (key === "4") {
|
|
||||||
resultObj.assessmentScoringQuestionDtoList = filterComObj[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log("resultObj");
|
|
||||||
console.log(resultObj);
|
|
||||||
return resultObj;
|
|
||||||
};
|
|
||||||
const creatFromData = (type) => {
|
|
||||||
let obj = {};
|
|
||||||
switch (type) {
|
|
||||||
case 1:
|
|
||||||
obj = {
|
|
||||||
type,
|
|
||||||
id: state.allFormsData.length,
|
|
||||||
valueSingle: "",
|
|
||||||
singleList: [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
inputVal: "",
|
|
||||||
imgVal: "",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
obj = {
|
|
||||||
type,
|
|
||||||
id: state.allFormsData.length,
|
|
||||||
valueMutil: "",
|
|
||||||
mutilList: [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
inputVal: "",
|
|
||||||
imgVal: "",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
obj = {
|
|
||||||
type,
|
|
||||||
id: state.allFormsData.length,
|
|
||||||
valueAsk: "",
|
|
||||||
valueAskDesc: "",
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
obj = {
|
|
||||||
type,
|
|
||||||
id: state.allFormsData.length,
|
|
||||||
valuePin: "",
|
|
||||||
minScore: 1,
|
|
||||||
maxScore: 10,
|
|
||||||
pinQuan: 100,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleTypes = (type) => {
|
|
||||||
state.allFormsData.push(creatFromData(type));
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleDel = ({ id }) => {
|
|
||||||
state.allFormsData.forEach((item, index) => {
|
|
||||||
if (item.id === id) {
|
|
||||||
state.allFormsData.splice(index, 1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
state.allFormsData.map((item, index) => {
|
|
||||||
item.id = index + 1;
|
|
||||||
return item;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleSave = () => {
|
|
||||||
let resultPost = {};
|
|
||||||
let filterData = parseItem(restData(state.allFormsData, "type"));
|
|
||||||
console.log(777);
|
|
||||||
console.log(filterData);
|
|
||||||
console.log(state.allFormsData);
|
|
||||||
console.log("当前权重设置是百分制 请重新配置");
|
|
||||||
|
|
||||||
if (state.assessmentId) {
|
|
||||||
resultPost = {
|
|
||||||
assessmentId: state.assessmentId,
|
|
||||||
assessmentName: state.assessmentName
|
|
||||||
? state.assessmentName
|
|
||||||
: "编辑测试",
|
|
||||||
assessmentMark: state.assessmentMark,
|
|
||||||
...filterData,
|
|
||||||
};
|
|
||||||
console.log("resultPost2222222222");
|
|
||||||
console.log(resultPost);
|
|
||||||
editResearchMessage(resultPost).then((res) => {
|
|
||||||
console.log(res);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
resultPost = {
|
|
||||||
assessmentName: state.assessmentNameNew,
|
|
||||||
assessmentMark: state.assessmentMark,
|
|
||||||
...filterData,
|
|
||||||
};
|
|
||||||
console.log("resultPost111111");
|
|
||||||
console.log(resultPost);
|
|
||||||
createResearch(resultPost).then((res) => {
|
|
||||||
console.log(res);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const handleAllCancel = () => {
|
|
||||||
state.allFormsData = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
return {
|
|
||||||
...toRefs(state),
|
|
||||||
handleTypes,
|
|
||||||
handleSave,
|
|
||||||
handleAllCancel,
|
|
||||||
handleDel,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<style lang="scss">
|
|
||||||
.researchadd {
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
.header {
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
.title {
|
|
||||||
color: #000000;
|
|
||||||
font-size: 18px;
|
|
||||||
//line-height: 36px;
|
|
||||||
padding-top: 30px;
|
|
||||||
padding-left: 37px;
|
|
||||||
//font-weight: 500;
|
|
||||||
}
|
|
||||||
.goback {
|
|
||||||
padding-right: 70px;
|
|
||||||
//padding-top: 37px;
|
|
||||||
position: relative;
|
|
||||||
.return {
|
|
||||||
display: inline-block;
|
|
||||||
width: 42px;
|
|
||||||
height: 42px;
|
|
||||||
margin-top: 17px;
|
|
||||||
margin-right: 10px;
|
|
||||||
background-image: url("../../assets/images/projectadd/return.png");
|
|
||||||
}
|
|
||||||
.returntext {
|
|
||||||
display: inline-block;
|
|
||||||
position: absolute;
|
|
||||||
top: 27px;
|
|
||||||
color: #4ea6ff;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.addtype {
|
|
||||||
display: flex;
|
|
||||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
||||||
margin-right: 20px;
|
|
||||||
align-items: center;
|
|
||||||
margin-left: 41px;
|
|
||||||
.addtypen {
|
|
||||||
color: #6f6f6f;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
.types {
|
|
||||||
cursor: pointer;
|
|
||||||
width: 80px;
|
|
||||||
height: 40px;
|
|
||||||
color: #409eff;
|
|
||||||
border: 1px solid #409eff;
|
|
||||||
border-radius: 4px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
margin: 20px 10px;
|
|
||||||
}
|
|
||||||
.typesCur {
|
|
||||||
color: #fff;
|
|
||||||
background: #409eff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.content {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
||||||
width: 70%;
|
|
||||||
min-width: 690px;
|
|
||||||
margin-left: 38px;
|
|
||||||
margin-top: 20px;
|
|
||||||
.tagbox {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
.tagname {
|
|
||||||
width: 90px;
|
|
||||||
height: 32px;
|
|
||||||
margin-top: 24px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
margin-left: 134px;
|
|
||||||
background: rgba(78, 166, 255, 0.1);
|
|
||||||
border-radius: 4px;
|
|
||||||
color: rgba(64, 158, 255, 1);
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
.deleteop {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
width: 100px;
|
|
||||||
height: 40px;
|
|
||||||
margin-top: 20px;
|
|
||||||
margin-right: 30px;
|
|
||||||
border: 1px solid #409eff;
|
|
||||||
border-radius: 8px;
|
|
||||||
cursor: pointer;
|
|
||||||
.del_text {
|
|
||||||
color: #409eff;
|
|
||||||
font-size: 14px;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.scorebox {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 20px;
|
|
||||||
margin-left: 70px;
|
|
||||||
.scoretext {
|
|
||||||
font-size: 14px;
|
|
||||||
color: #56a3f9;
|
|
||||||
}
|
|
||||||
.number {
|
|
||||||
display: flex;
|
|
||||||
border: 1px solid #d7e5fd;
|
|
||||||
border-radius: 5px;
|
|
||||||
margin: 0 10px;
|
|
||||||
padding: 5px;
|
|
||||||
.btn {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
border: 1px solid #56a3f9;
|
|
||||||
border-radius: 8px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
margin: 5px;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #56a3f9;
|
|
||||||
line-height: 24px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.curBtn {
|
|
||||||
background: #56a3f9;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.picture {
|
|
||||||
width: 100px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
margin-top: 20px;
|
|
||||||
margin-left: 133px;
|
|
||||||
.pictureimg {
|
|
||||||
width: 100px;
|
|
||||||
height: 100px;
|
|
||||||
}
|
|
||||||
.picturename {
|
|
||||||
color: #6f6f6f;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.options {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
.delete {
|
|
||||||
cursor: pointer;
|
|
||||||
margin-top: 32px;
|
|
||||||
margin-left: 20px;
|
|
||||||
// float: right;
|
|
||||||
color: #4ea6ff;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
.name2 {
|
|
||||||
display: flex;
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
.name {
|
|
||||||
width: 60%;
|
|
||||||
// background-color: lightcoral;
|
|
||||||
display: flex;
|
|
||||||
margin-top: 20px;
|
|
||||||
//align-items: center;
|
|
||||||
//height: 40px;
|
|
||||||
// border: 1px solid black;
|
|
||||||
.namebox {
|
|
||||||
width: 120px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-shrink: 0;
|
|
||||||
.nameimg {
|
|
||||||
width: 10px;
|
|
||||||
height: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.inname {
|
|
||||||
color: #6f6f6f;
|
|
||||||
font-size: 14px;
|
|
||||||
margin-left: 7px;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
.in {
|
|
||||||
margin-left: 14px;
|
|
||||||
flex: 1;
|
|
||||||
.assess {
|
|
||||||
display: flex;
|
|
||||||
width: 226px;
|
|
||||||
height: 40px;
|
|
||||||
border: 1px solid #56a3f9;
|
|
||||||
//margin-bottom: 20px;
|
|
||||||
.assesstype {
|
|
||||||
width: 50%;
|
|
||||||
background: #56a3f9;
|
|
||||||
color: #ffffff;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
.assesswhole {
|
|
||||||
width: 50%;
|
|
||||||
background: rgba(86, 163, 249, 0.1);
|
|
||||||
font-size: 14px;
|
|
||||||
color: #6f6f6f;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
.ratio {
|
|
||||||
position: absolute;
|
|
||||||
right: 10px;
|
|
||||||
top: 8px;
|
|
||||||
color: #6f6f6f;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.addimg {
|
|
||||||
cursor: pointer;
|
|
||||||
color: rgba(78, 166, 255, 1);
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
.text {
|
|
||||||
color: rgba(109, 117, 132, 1);
|
|
||||||
font-size: 14px;
|
|
||||||
//line-height: 24px;
|
|
||||||
}
|
|
||||||
.ant-radio-wrapper {
|
|
||||||
}
|
|
||||||
.ant-input {
|
|
||||||
border-radius: 5px;
|
|
||||||
// height: 120%;
|
|
||||||
width: 100%;
|
|
||||||
height: 35px;
|
|
||||||
}
|
|
||||||
.ant-select-selector {
|
|
||||||
border-radius: 5px;
|
|
||||||
// height: 120%;
|
|
||||||
width: 100%;
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.numberInp {
|
|
||||||
width: 200px;
|
|
||||||
.ant-input-number {
|
|
||||||
width: 200px;
|
|
||||||
height: 40px;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
// .ant-input-number-input-wrap {
|
|
||||||
// width: 200px;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.name2 {
|
|
||||||
display: flex;
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
.opinion {
|
|
||||||
display: flex;
|
|
||||||
margin-top: 30px;
|
|
||||||
.namebox {
|
|
||||||
width: 120px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
.in {
|
|
||||||
margin-left: 14px;
|
|
||||||
width: 500px;
|
|
||||||
.ant-input-textarea-show-count {
|
|
||||||
position: relative;
|
|
||||||
height: 110px;
|
|
||||||
}
|
|
||||||
.ant-input-textarea-show-count::after {
|
|
||||||
position: absolute;
|
|
||||||
right: 10px;
|
|
||||||
bottom: 0px;
|
|
||||||
}
|
|
||||||
.ant-input {
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.footer {
|
|
||||||
width: 100%;
|
|
||||||
margin-top: 31px;
|
|
||||||
margin-bottom: 14px;
|
|
||||||
.btn {
|
|
||||||
display: flex;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
justify-content: center;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.uploadContent {
|
|
||||||
display: block !important;
|
|
||||||
.uploadBtn {
|
|
||||||
margin-left: 120px !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
Reference in New Issue
Block a user