Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	src/views/projectcenter/ProjectAdd.vue
This commit is contained in:
yuping
2022-12-07 12:39:41 +08:00
18 changed files with 569 additions and 311 deletions

21
package-lock.json generated
View File

@@ -3579,8 +3579,6 @@
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"dev": true, "dev": true,
"optional": true,
"peer": true,
"dependencies": { "dependencies": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0", "json-schema-traverse": "^1.0.0",
@@ -3592,9 +3590,7 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true, "dev": true
"optional": true,
"peer": true
}, },
"node_modules/ajv-keywords": { "node_modules/ajv-keywords": {
"version": "3.5.2", "version": "3.5.2",
@@ -13727,6 +13723,7 @@
"integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==", "integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/core": "^7.12.16",
"@babel/helper-compilation-targets": "^7.12.16", "@babel/helper-compilation-targets": "^7.12.16",
"@babel/helper-module-imports": "^7.12.13", "@babel/helper-module-imports": "^7.12.13",
"@babel/plugin-proposal-class-properties": "^7.12.13", "@babel/plugin-proposal-class-properties": "^7.12.13",
@@ -13739,6 +13736,7 @@
"@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-plugin-jsx": "^1.0.3",
"@vue/babel-preset-jsx": "^1.1.2", "@vue/babel-preset-jsx": "^1.1.2",
"babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-dynamic-import-node": "^2.3.3",
"core-js": "^3.8.3",
"core-js-compat": "^3.8.3", "core-js-compat": "^3.8.3",
"semver": "^7.3.4" "semver": "^7.3.4"
}, },
@@ -14577,14 +14575,15 @@
"resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dev": true, "dev": true,
"requires": {}, "requires": {
"ajv": "^8.0.0"
},
"dependencies": { "dependencies": {
"ajv": { "ajv": {
"version": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", "version": "8.11.0",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"dev": true, "dev": true,
"optional": true,
"peer": true,
"requires": { "requires": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0", "json-schema-traverse": "^1.0.0",
@@ -14596,9 +14595,7 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true, "dev": true
"optional": true,
"peer": true
} }
} }
}, },

View File

@@ -43,7 +43,7 @@ export default defineComponent({
const store = useStore(); const store = useStore();
const isLogin = ref(false); const isLogin = ref(false);
// console.log("router", router.getRoutes(), route); // console.log("router", router.getRoutes(), route);
console.log("版本0.9.2------------"); console.log("版本0.9.3------------");
const routes = computed(() => { const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink); return router.getRoutes().filter((e) => e.meta?.isLink);
}); });

View File

@@ -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-12-06 18:00:21 * @LastEditTime: 2022-12-07 08:54:55
* @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
*/ */
@@ -55,10 +55,10 @@ http.interceptors.response.use(
if (code === 0 || code === 200) { if (code === 0 || code === 200) {
return response; return response;
} else { } else {
// if (code === 1000) { if (code === 1000) {
// window.open("https://u-pre.boe.com/web/", '_self'); // window.open("https://u-pre.boe.com/web/", '_self');
// // window.open("http://111.231.196.214:12013/manage/login", '_self'); // window.open("http://111.231.196.214:12013/manage/login", '_self');
// } }
console.log("api %o", msg); console.log("api %o", msg);
} }
return response; return response;

View File

@@ -43,7 +43,6 @@ import http from "./config";
//根据ID获取评估信息详情 //根据ID获取评估信息详情
export const queryAppraiseDetailById = (obj) => http.post('/assessment/queryAssessmentDetailById', obj,{ export const queryAppraiseDetailById = (obj) => http.post('/assessment/queryAssessmentDetailById', obj,{
headers: { headers: {
'token': '123',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
} }
}) })

View File

@@ -104,7 +104,9 @@ export default {
watch( watch(
props, props,
(newVal) => { (newVal) => {
state.selectedRowKeys = [newVal.assessmentId]; state.selectedRowKeys = newVal.assessmentId
? [newVal.assessmentId]
: [];
}, },
{ deep: true } { deep: true }
); );
@@ -218,7 +220,8 @@ export default {
}; };
array.push(obj); array.push(obj);
}); });
(state.selectedRowKeys = []), (state.tableData = array); // (state.selectedRowKeys = []), (state.tableData = array);
state.tableData = array;
}; };
//获取全部评估信息接口 //获取全部评估信息接口
const getAllInvistText = () => { const getAllInvistText = () => {
@@ -231,7 +234,9 @@ export default {
.then((res) => { .then((res) => {
let arr = res.data.data.rows; let arr = res.data.data.rows;
if (res.status === 200) { if (res.status === 200) {
// console.log("获取全部评估信息", res.data.data); console.log("获取全部评估信息", res.data.data);
state.selectedRowKeys = [props.assessmentId]
console.log(props.assessmentId,props)
getTableDate(arr); getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total); state.tableDataTotal = Number(res.data.data.total);
} }

View File

@@ -303,13 +303,13 @@ export default {
}) })
.then(() => { .then(() => {
message.destroy(); message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
}); });
} }
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
@@ -327,13 +327,13 @@ export default {
}) })
.then(() => { .then(() => {
message.destroy(); message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
}); });
} }
} }

View File

@@ -203,11 +203,11 @@ export default {
type: 10, type: 10,
}) })
.then(() => { .then(() => {
message.destroy() //message.destroy()
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); // message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
}) })
.catch(() => { .catch(() => {
message.destroy() // message.destroy()
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); //message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {

View File

@@ -711,7 +711,7 @@ export default {
await ProjectEditTask(editObj) await ProjectEditTask(editObj)
.then(() => { .then(() => {
console.log("props.EditFaceId", props.EditFaceId); console.log("props.EditFaceId", props.EditFaceId);
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); // message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
}) })
.catch(() => { .catch(() => {
//message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`); //message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);

View File

@@ -212,6 +212,7 @@ export default {
console.log(res); console.log(res);
//更新讨论信息 //更新讨论信息
state.assessment1 = res.data.data; state.assessment1 = res.data.data;
state.assessmentId = res.data.data.assessmentId;
}) })
.catch(() => {}); .catch(() => {});
} }
@@ -251,12 +252,12 @@ export default {
type: 11, type: 11,
}) })
.then(() => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
addTempTask({ addTempTask({
@@ -269,13 +270,13 @@ export default {
}) })
.then(() => { .then(() => {
message.destroy(); message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
}); });
} }
}; };

View File

@@ -540,7 +540,7 @@ export default {
.then(() => { .then(() => {
message.destroy(); message.destroy();
message.success( message.success(
`${props.edit ? "编辑" : "新增"}阶段任务成功` `${props.edit ? "编辑" : "新增"}任务成功`
); );
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
@@ -548,7 +548,7 @@ export default {
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error( message.error(
`${props.edit ? "编辑" : "新增"}阶段任务失败` `${props.edit ? "编辑" : "新增"}任务失败`
); );
}); });
}); });

View File

@@ -547,18 +547,21 @@
placeholder="请输入按回车键创建成功" placeholder="请输入按回车键创建成功"
:options="tagsOptions" :options="tagsOptions"
></a-select> --> ></a-select> -->
<a-select <a-input
:getPopupContainer=" v-model:value="tags_val_single"
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="tags_val"
mode="tags"
style="width: 440px; height: 40px"
placeholder="请输入按回车键创建成功" placeholder="请输入按回车键创建成功"
@change="handleTagChange" @pressEnter="handleTagChange"
></a-select> />
<div class="tag-content">
<a-tag
v-for="(item, index) in tags_val"
:key="index"
closable
@close="handleTagClose(index)"
>
{{ item }}
</a-tag>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -709,12 +712,10 @@
<div class="btn btn5" @click="ft_exit_1"> <div class="btn btn5" @click="ft_exit_1">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="btn btn6" v-if="isEdit == 0" @click="handlePush"> <div class="btn btn6" @click="handlePush">
<div class="btnText">保存</div> <div class="btnText">保存</div>
</div> </div>
<div class="btn btn6" v-if="isEdit == 1">
<div class="btnText">未提交</div>
</div>
<div <div
class="btn btn6" class="btn btn6"
v-if="statusTingQi == 1" v-if="statusTingQi == 1"
@@ -2302,6 +2303,25 @@
</a-checkbox> </a-checkbox>
</div> </div>
</div> </div>
<div v-if="checked4" class="cstm_items main_item">
<div class="signbox"></div>
<div class="btnbox">
<button class="xkbtn" @click="showAssessment">选择评估</button>
<div v-if="assessmentId > 0">
<a-tag closable @close="removePG" color="processing">
<span style="font-size: 14px; line-height: 33px">
{{ assessmentName }}
</span>
</a-tag>
</div>
<AssessmentList
v-model:assessmentVisible="assessmentVisible"
v-model:assessmentName="assessmentName"
:assessmentId="assessmentId"
@checkedAss="getCheckedAss"
/>
</div>
</div>
<div class="cstm_items"> <div class="cstm_items">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px">完成规则</span> <span style="margin-right: 3px">完成规则</span>
@@ -2467,13 +2487,13 @@
<div class="stmm_i1"> <div class="stmm_i1">
<span style="margin-right: 52px"> <span style="margin-right: 52px">
{{ currentPlanItem.name }}课程-第1期- {{ currentPlanItem.name }}课程-第1期-
{{ getdateToDateFn(currentPlanItem.createTime) }} {{ currentPlanItem.createTime }}
</span> </span>
<span style="color: #ffb751">已开课 4.5</span> <span style="color: #ffb751">已开课 4.5</span>
</div> </div>
<div class="stmm_i2"> <div class="stmm_i2">
<span style="color: #999ba3">时间:</span> <span style="color: #999ba3">时间:</span>
<span>{{ getdateToTimeFn(currentPlanItem.endTime) }}</span> <span>{{ currentPlanItem.endTime }}</span>
</div> </div>
<div class="stmm_i3"> <div class="stmm_i3">
<span style="color: #999ba3">地点:</span> <span style="color: #999ba3">地点:</span>
@@ -3072,6 +3092,7 @@ import {
onBeforeUnmount, onBeforeUnmount,
watch, watch,
} from "vue"; } from "vue";
import * as api from "../../api/indexInvist.js";
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 StuAdd from "../../components/drawers/StuAdd"; // import StuAdd from "../../components/drawers/StuAdd";
@@ -3082,6 +3103,7 @@ import addOnlineCourse from "../../components/Modals/addOnlineCourse.vue";
import ProjOwnerShip from "../../components/drawers/ProjectOwn"; import ProjOwnerShip from "../../components/drawers/ProjectOwn";
import ProjPowerList from "../../components/drawers/ProjPowerList"; import ProjPowerList from "../../components/drawers/ProjPowerList";
import ProjCheckShip from "../../components/drawers/ProjCheckPower"; import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import AssessmentList from "../../components/drawers/ AssessmentList.vue";
import { import {
list, list,
edit, edit,
@@ -3126,8 +3148,10 @@ const columns1 = [
dataIndex: "num", dataIndex: "num",
key: "num", key: "num",
align: "center", align: "center",
customRender: ({ index }) => { customRender: ({ index, record }) => {
return index + 1; const pageNum =
Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
return index + 1 + pageNum;
}, },
}, },
{ {
@@ -3374,11 +3398,7 @@ const columns6 = [
key: "num", key: "num",
width: "6%", width: "6%",
align: "center", align: "center",
ellipsis: true, ellipsis: true
customRender: ({ index }) => {
//{ text, record, index, column }
return index + 1;
},
}, },
{ {
title: "创建人", title: "创建人",
@@ -3432,7 +3452,8 @@ const columns6 = [
ellipsis: true, ellipsis: true,
align: "center", align: "center",
customRender: ({ text }) => { customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-"; // return text ? getdateToTime(text * 1000) : "-";
return text ? text : "-";
}, },
}, },
{ {
@@ -3443,7 +3464,8 @@ const columns6 = [
ellipsis: true, ellipsis: true,
align: "center", align: "center",
customRender: ({ text }) => { customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-"; // return text ? getdateToTime(text * 1000) : "-";
return text ? text : "-";
}, },
}, },
{ {
@@ -3462,10 +3484,6 @@ const columns7 = [
dataIndex: "num", dataIndex: "num",
key: "num", key: "num",
align: "center", align: "center",
customRender: ({ index }) => {
//{ text, record, index, column }
return index + 1;
},
}, },
{ {
title: "姓名", title: "姓名",
@@ -3621,6 +3639,7 @@ export default defineComponent({
ProjOwnerShip, ProjOwnerShip,
ProjPowerList, ProjPowerList,
ProjCheckShip, ProjCheckShip,
AssessmentList,
// VNodes: (_, {attrs}) => { // VNodes: (_, {attrs}) => {
// return attrs.vnodes; // return attrs.vnodes;
// }, // },
@@ -3819,6 +3838,7 @@ export default defineComponent({
feng_mian_1: null, feng_mian_1: null,
feng_mian_2: null, feng_mian_2: null,
chang_jin: null, chang_jin: null,
tags_val_single: "",
tags_val: [], tags_val: [],
qdms_inputV6: "", qdms_inputV6: "",
//在线面授管理 //在线面授管理
@@ -3861,7 +3881,7 @@ export default defineComponent({
selectTime: "", selectTime: "",
pageSize3: 10, pageSize3: 10,
currentPage3: 0, currentPage3: 1,
tableDataTotal3: 0, tableDataTotal3: 0,
checked1: false, checked1: false,
@@ -3884,6 +3904,11 @@ export default defineComponent({
addStudentList: null, //选中列表 addStudentList: null, //选中列表
newCourseName: null, //新建开课名称 newCourseName: null, //新建开课名称
assessment: {},
assessmentId: null,
assessmentName: "",
assessmentVisible: false,
}); });
const showStuAdd = (record) => { const showStuAdd = (record) => {
@@ -4078,14 +4103,17 @@ export default defineComponent({
endTime: endTime, endTime: endTime,
beginTime: startTime, beginTime: startTime,
}); });
const { rows, total } = res.data.data; const { rows, total, pageNo } = res.data.data;
console.log(res.data.data); console.log(res.data.data);
state.tableDataTotal1 = total; state.tableDataTotal1 = total;
for(let i=0;i<rows.length;i++){
rows[i].num = i+1+ (state.currentPage1-1)*10
}
const datas = traverseArr( const datas = traverseArr(
rows, rows,
{ {
key: "offcourseId", key: "offcourseId",
num: "offcourseId", num: "num",
name: "name", name: "name",
content: "categoryId", content: "categoryId",
courseform: "type", courseform: "type",
@@ -4103,6 +4131,7 @@ export default defineComponent({
true true
); );
datas.forEach((itm) => { datas.forEach((itm) => {
itm.pageNo = pageNo;
for (let item of options2.value) { for (let item of options2.value) {
if (String(item.value) === String(itm.content)) { if (String(item.value) === String(itm.content)) {
itm.contentTxt = item.label; itm.contentTxt = item.label;
@@ -4264,6 +4293,24 @@ export default defineComponent({
}); });
}; };
const showAssessment = () => {
state.assessmentVisible = true;
};
const removePG = () => {
console.log("11111");
state.assessmentId = null;
state.assessmentName = "";
// state.isEvaluate = "0";
};
const getCheckedAss = (ass) => {
console.log("ass");
console.log(ass);
state.assessmentId = ass.assessmentId;
state.assessmentName = ass.name;
state.assessment = ass;
// state.assessment1 = null;
};
const rest = () => { const rest = () => {
options4CurName.value = ""; options4CurName.value = "";
options4CurId.value = ""; options4CurId.value = "";
@@ -4371,6 +4418,11 @@ export default defineComponent({
// console.log("获取学员列表", res); // console.log("获取学员列表", res);
const { rows, total } = res.data.data; const { rows, total } = res.data.data;
state.tableDataTotal3 = total; state.tableDataTotal3 = total;
for(let i=0;i<rows.length;i++){
rows[i].num = i+1+ (state.currentPage3-1)*10
}
rows.forEach((item, index) => { rows.forEach((item, index) => {
rows[index] = { rows[index] = {
...item, ...item,
@@ -4381,7 +4433,7 @@ export default defineComponent({
rows, rows,
{ {
key: "studentId", key: "studentId",
num: "studentId", num: "num",
name: "name", name: "name",
number: "studentId", number: "studentId",
department: "deptName", department: "deptName",
@@ -4473,11 +4525,16 @@ export default defineComponent({
console.log("开课res", res); console.log("开课res", res);
const { rows, total } = res.data.data; const { rows, total } = res.data.data;
state.tableDataTotal222 = total; state.tableDataTotal222 = total;
for(let i=0;i<rows.length;i++){
rows[i].num = i+1+ (state.currentPage222-1)*10
}
const datas = traverseArr( const datas = traverseArr(
rows, rows,
{ {
key: "offcoursePlanId", key: "offcoursePlanId",
num: "offcoursePlanId", num: "num",
organization: "name", organization: "name",
address: "address", address: "address",
starttime: "beginTime", starttime: "beginTime",
@@ -4672,7 +4729,7 @@ export default defineComponent({
// ft_exit_1(); // ft_exit_1();
rest(); rest();
state.addLoading = false; state.addLoading = false;
state.isEdit = 1;
state.statusTingQi = 1; state.statusTingQi = 1;
// console.log("res.data", res.data); // console.log("res.data", res.data);
if (param === "review") { if (param === "review") {
@@ -4714,6 +4771,7 @@ export default defineComponent({
state.xjkkinputV4 = null; state.xjkkinputV4 = null;
state.checked1 = false; state.checked1 = false;
state.checked4 = false; state.checked4 = false;
removePG();
}; };
//保存开课 //保存开课
const handleSureStu = () => { const handleSureStu = () => {
@@ -4737,6 +4795,7 @@ export default defineComponent({
completeType: type, completeType: type,
endTime: endTime, endTime: endTime,
evalFlag: state.checked4 ? 1 : 0, evalFlag: state.checked4 ? 1 : 0,
evaluateId: Number(state.assessmentId),
name: state.xjkkinputV1, name: state.xjkkinputV1,
signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否 signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否
// signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否 // signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
@@ -4770,6 +4829,7 @@ export default defineComponent({
//编辑开课 //编辑开课
const handelEditStu = async (itm) => { const handelEditStu = async (itm) => {
console.log(itm); console.log(itm);
state.offcourseId = itm.offcourseId; state.offcourseId = itm.offcourseId;
state.offcoursePlanId = itm.offcoursePlanId; state.offcoursePlanId = itm.offcoursePlanId;
@@ -4778,6 +4838,17 @@ export default defineComponent({
}).then((res) => { }).then((res) => {
if (res.data.code === 200) return res.data.data; if (res.data.code === 200) return res.data.data;
}); });
let obj = {
assessmentId: item.evaluateId,
};
api
.queryAppraiseDetailById(obj)
.then((res) => {
state.assessmentName = res.data.data.assessmentName;
})
.catch();
console.log("res"); console.log("res");
console.log(item); console.log(item);
@@ -4794,6 +4865,7 @@ export default defineComponent({
(state.comLeave = (state.comLeave =
item.completeType.split(",")[1] == "1" ? true : false), item.completeType.split(",")[1] == "1" ? true : false),
(state.checked4 = item.evalFlag === 1 ? true : false); (state.checked4 = item.evalFlag === 1 ? true : false);
state.assessmentId = String(item.evaluateId);
state.xjkkinputV1 = item.name; state.xjkkinputV1 = item.name;
if (item.signFlag === 1) { if (item.signFlag === 1) {
//是否允许未报名的签到:1是0否 //是否允许未报名的签到:1是0否
@@ -5189,7 +5261,6 @@ export default defineComponent({
}; };
//编辑面授课 //编辑面授课
const handleEdit = async (itm, type) => { const handleEdit = async (itm, type) => {
state.isEdit = 0;
console.log(45555); console.log(45555);
console.log(itm); console.log(itm);
if (type === "1") { if (type === "1") {
@@ -5247,8 +5318,13 @@ export default defineComponent({
// handleTagChange // handleTagChange
const handleTagChange = () => { const handleTagChange = () => {
console.log(7877878); if (state.tags_val_single) {
console.log(state.tagsOptions); state.tags_val.push(state.tags_val_single);
}
state.tags_val_single = "";
};
const handleTagClose = (index) => {
state.tags_val.splice(index, 1);
}; };
// 预览弹框 开启和关闭 // 预览弹框 开启和关闭
@@ -5256,7 +5332,6 @@ export default defineComponent({
state.lookCourseModal = false; state.lookCourseModal = false;
}; };
const handleLook = async (itm, type) => { const handleLook = async (itm, type) => {
// state.isEdit = 0;
if (type === "1") { if (type === "1") {
return; return;
} }
@@ -5650,6 +5725,7 @@ export default defineComponent({
stm_exit, stm_exit,
ft_exit_see, ft_exit_see,
handleTagChange, handleTagChange,
handleTagClose,
createkk, createkk,
handleCancelStu, handleCancelStu,
handleSureStu, handleSureStu,
@@ -5683,6 +5759,9 @@ export default defineComponent({
handelChangePage1, handelChangePage1,
handleSearch1, handleSearch1,
handleRest1, handleRest1,
showAssessment,
removePG,
getCheckedAss,
beforeUpload, beforeUpload,
beforeUpload2, beforeUpload2,
handleDel, handleDel,
@@ -6089,6 +6168,8 @@ export default defineComponent({
.cst_main { .cst_main {
width: 100%; width: 100%;
max-height: 600px;
overflow-y: auto;
position: relative; position: relative;
.cstm_header { .cstm_header {
@@ -7970,6 +8051,12 @@ export default defineComponent({
} }
} }
.tag-content {
.ant-tag {
margin-top: 10px;
}
}
.coursewareDetail { .coursewareDetail {
.ant-modal { .ant-modal {
height: 320px; height: 320px;
@@ -8039,6 +8126,42 @@ export default defineComponent({
} }
} }
// 选择评估
.main_item {
display: flex;
align-items: center;
margin-top: 32px;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.btnbox {
display: flex;
flex: 1;
align-items: center;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
}
}
}
.DelModal { .DelModal {
.ant-modal { .ant-modal {
.ant-modal-content { .ant-modal-content {

View File

@@ -81,7 +81,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="mbl_items"> <div v-if="detail.meaning" class="mbl_items">
<div class="item_nam"> <div class="item_nam">
<span style="margin-right: 14px">课程价值</span> <span style="margin-right: 14px">课程价值</span>
</div> </div>
@@ -107,7 +107,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="mbl_items"> <div class="mbl_items" v-if="detail.sceneId">
<div class="item_nam"> <div class="item_nam">
<span style="margin-right: 14px">场景</span> <span style="margin-right: 14px">场景</span>
</div> </div>
@@ -117,7 +117,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="mbl_items"> <div class="mbl_items" v-if="detail.tips">
<div class="item_nam"> <div class="item_nam">
<span style="margin-right: 14px">内容标签</span> <span style="margin-right: 14px">内容标签</span>
</div> </div>
@@ -143,7 +143,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="mbl_items2"> <div class="mbl_items2" v-if="detail.intro">
<div class="item_nam"> <div class="item_nam">
<span style="margin-right: 14px">课程简介</span> <span style="margin-right: 14px">课程简介</span>
</div> </div>
@@ -181,7 +181,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="m_footer"> <div class="m_footer" v-if="detail.outline !== '<p><br></p>'">
<div class="fotnam"> <div class="fotnam">
<span>课程大纲</span> <span>课程大纲</span>
</div> </div>

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com * @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 20:59:06 * @Date: 2022-11-16 20:59:06
* @LastEditors: lixg lixg@dongwu-inc.com * @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:08:27 * @LastEditTime: 2022-12-07 08:53:23
* @FilePath: /fe-manage/src/views/examine/CourseReviewed.vue * @FilePath: /fe-manage/src/views/examine/CourseReviewed.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
--> -->
@@ -14,24 +14,38 @@
<div class="tmplh_inp"> <div class="tmplh_inp">
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<a-select v-model:value="valueproj" value-key="value" <a-select
:options="[{ label: '请选择内容分类', value: '' }, ...calssifyList]" /> v-model:value="valueproj"
value-key="value"
:options="[
{ label: '请选择内容分类', value: '' },
...calssifyList,
]"
/>
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input v-model:value="valuecreater" style=" <a-input
v-model:value="valuecreater"
style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" placeholder="请输入创建人" /> "
placeholder="请输入创建人"
/>
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input v-model:value="valuename" style=" <a-input
v-model:value="valuename"
style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" placeholder="请输入名称" /> "
placeholder="请输入名称"
/>
</div> </div>
</div> </div>
</div> </div>
@@ -48,56 +62,71 @@
</div> </div>
<div class="tmpl_body"> <div class="tmpl_body">
<div class="tmpl_tabbox"> <div class="tmpl_tabbox">
<a-table :columns="columns1" :data-source="tableData1" :loading="tableDataTotal === -1 ? true : false" <a-table
expandRowByClick="true" @expand="expandTable" :scroll="{ x: 1300 }" :pagination="false" /> :columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
/>
</div> </div>
<div class="tableBox"> <div class="tableBox">
<div class="pa"> <div class="pa">
<a-pagination v-if="total > 10" showSizeChanger="true" show-quick-jumper :pageSize="pageSize" <a-pagination
v-model:current="currentPage" :total="total" class="pagination" @change="changePagination" /> v-if="total > 10"
showSizeChanger="true"
show-quick-jumper
:pageSize="pageSize"
v-model:current="currentPage"
:total="total"
class="pagination"
@change="changePagination"
/>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 审核日志弹窗 --> <!-- 审核日志弹窗 -->
<a-modal <a-modal
v-model:visible="projAuditModal" v-model:visible="projAuditModal"
:footer="null" :footer="null"
:closable="closeBack" :closable="closeBack"
wrapClassName="projAuditModal" wrapClassName="projAuditModal"
centered="true" centered="true"
> >
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
<div class="header"> <div class="header">
<div class="icon"></div> <div class="icon"></div>
<span>审核记录</span> <span>审核记录</span>
<!-- <div class="close_exit" @click="closeProjAuditModal"></div> --> <!-- <div class="close_exit" @click="closeProjAuditModal"></div> -->
</div>
<div class="body">
<a-table
style="width: 90%"
:columns="columnsAudit"
:data-source="tableDataAudit"
:loading="tableDataTotalAudit === -1 ? true : false"
expandRowByClick="true"
:scroll="{ y: 150 }"
@expand="expandTable"
:pagination="false"
/>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeProjAuditModal">
<div class="btnText">取消</div>
</div> </div>
<div class="body"> <div class="del_btn btn2" @click="closeProjAuditModal">
<a-table <div class="btnText">确定</div>
style="width: 90%"
:columns="columnsAudit"
:data-source="tableDataAudit"
:loading="tableDataTotalAudit === -1 ? true : false"
expandRowByClick="true"
:scroll="{ y: 150 }"
@expand="expandTable"
:pagination="false"
/>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeProjAuditModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="closeProjAuditModal">
<div class="btnText">确定</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</a-modal> </div>
</a-modal>
</div> </div>
</template> </template>
<script> <script>
@@ -131,7 +160,9 @@ export default {
dataIndex: "status", dataIndex: "status",
key: "status", key: "status",
align: "center", align: "center",
customRender: ({record: {status}}) => <div>{{'2': '审核通过', '-2': '审核拒绝'}[(status + '')]}</div>, customRender: ({ record: { status } }) => (
<div>{{ 2: "审核通过", "-2": "审核拒绝" }[status + ""]}</div>
),
}, },
{ {
@@ -139,7 +170,7 @@ export default {
dataIndex: "createTime", dataIndex: "createTime",
key: "createTime", key: "createTime",
align: "center", align: "center",
width: 220 width: 220,
}, },
{ {
@@ -173,7 +204,8 @@ export default {
dataIndex: "content", dataIndex: "content",
key: "content", key: "content",
align: "center", align: "center",
customRender: ({ text }) => state.calssifyList.find(e => e.value == text)?.label, customRender: ({ text }) =>
state.calssifyList.find((e) => e.value == text)?.label,
}, },
{ {
title: "审核状态", title: "审核状态",
@@ -195,7 +227,6 @@ export default {
customRender: (time) => { customRender: (time) => {
return <div style="color:#387DF7">{time.record.time}</div>; return <div style="color:#387DF7">{time.record.time}</div>;
}, },
}, },
{ {
title: "审核说明", title: "审核说明",
@@ -209,12 +240,17 @@ export default {
key: "opt", key: "opt",
align: "center", align: "center",
customRender: (value) => { customRender: (value) => {
return <div return (
style="color:#387DF7;cursor:pointer;" <div
onClick={() => { style="color:#387DF7;cursor:pointer;"
console.log(value) onClick={() => {
showProjAuditModal(value.record.auditLogDtoList); console.log(value);
}}>审核日志</div>; showProjAuditModal(value.record.auditLogDtoList);
}}
>
审核日志
</div>
);
}, },
}, },
], ],
@@ -243,7 +279,7 @@ export default {
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: 10, pageSize: 10,
}; };
console.log(objn) console.log(objn);
courseListView(objn) courseListView(objn)
.then((res) => { .then((res) => {
console.log("获取已审核课程成功", res.data.data); console.log("获取已审核课程成功", res.data.data);
@@ -256,14 +292,14 @@ export default {
}; };
const setTableData = (table) => { const setTableData = (table) => {
if (!table || !table.length) { if (!table || !table.length) {
state.tableData1 = [] state.tableData1 = [];
return return;
} }
let data = table; let data = table;
let array = []; let array = [];
data.map((item, n) => { data.map((item, n) => {
let obj = { let obj = {
number: n+1 + (state.currentPage-1) *10, number: n + 1 + (state.currentPage - 1) * 10,
name: item.name || "- ", name: item.name || "- ",
type: item.type == 1 ? "线上" : "线下", type: item.type == 1 ? "线上" : "线下",
content: item.categoryId, content: item.categoryId,
@@ -271,24 +307,24 @@ export default {
item.auditStatus == 0 item.auditStatus == 0
? "未提交" ? "未提交"
: item.auditStatus == 1 : item.auditStatus == 1
? "提交待审核" ? "提交待审核"
: item.auditStatus == 2 : item.auditStatus == 2
? "通过" ? "通过"
: item.auditStatus == -1 : item.auditStatus == -1
? "拒绝" ? "拒绝"
: "-", : "-",
creater: item.createName, creater: item.createName,
time: item.createTime, time: item.createTime,
msg: item.description || "-", msg: item.description || "-",
auditLogDtoList: item.auditLogDtoList auditLogDtoList: item.auditLogDtoList,
}; };
array.push(obj); array.push(obj);
}); });
state.tableData1 = array; state.tableData1 = array;
console.log(data) console.log(data);
}; };
const reset = () => { const reset = () => {
(state.valueproj = ''), (state.valueproj = ""),
(state.valuecreater = null), (state.valuecreater = null),
(state.valuename = null), (state.valuename = null),
getList(); getList();
@@ -297,21 +333,27 @@ export default {
state.currentPage = pagina; state.currentPage = pagina;
getList(); getList();
}; };
const getDictList = (param) => api1.getDict({ const getDictList = (param) =>
pageNo: 1, api1
pageSize: 20, .getDict({
setCode: param pageNo: 1,
}).then((res) => res.data.data.rows) pageSize: 20,
setCode: param,
})
.then((res) => res.data.data.rows);
onMounted(async () => { onMounted(async () => {
getList(); getList();
//获取分类列表 //获取分类列表
state.calssifyList = (await getDictList("faceclassClass")).map(e => ({ label: e.dictName, value: e.dictCode })) state.calssifyList = (await getDictList("faceclassClass")).map((e) => ({
label: e.dictName,
value: e.dictCode,
}));
}); });
// 显示审核 // 显示审核
const showProjAuditModal = (data) => { const showProjAuditModal = (data) => {
state.tableDataAudit = data state.tableDataAudit = data;
state.projAuditModal = true; state.projAuditModal = true;
}; };
@@ -326,7 +368,7 @@ export default {
reset, reset,
changePagination, changePagination,
showProjAuditModal, showProjAuditModal,
closeProjAuditModal closeProjAuditModal,
}; };
}, },
}; };
@@ -522,8 +564,8 @@ export default {
width: calc(100%); width: calc(100%);
height: 68px; height: 68px;
background: linear-gradient( background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%, rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100% rgba(78, 166, 255, 0) 100%
); );
} }

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com * @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 20:59:33 * @Date: 2022-11-16 20:59:33
* @LastEditors: lixg lixg@dongwu-inc.com * @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-29 22:30:01 * @LastEditTime: 2022-12-07 08:49:02
* @FilePath: /fe-manage/src/views/examine/CourseReviewedN.vue * @FilePath: /fe-manage/src/views/examine/CourseReviewedN.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
--> -->
@@ -426,7 +426,7 @@ export default {
let array = []; let array = [];
data.map((item, i) => { data.map((item, i) => {
let obj = { let obj = {
number: i+1 + (state.currentPage-1) *10, number: i + 1 + (state.currentPage - 1) * 10,
name: item.name, name: item.name,
type: item.type == 1 ? "线上" : "线下", type: item.type == 1 ? "线上" : "线下",
content: item.categoryId, content: item.categoryId,
@@ -442,7 +442,7 @@ export default {
: "-", : "-",
change: "-", change: "-",
creater: item.createName, creater: item.createName,
time: item.createTime, time: item.processTime,
createrId: item.createId, createrId: item.createId,
offId: item.offcourseId, offId: item.offcourseId,
}; };

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com * @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 21:00:40 * @Date: 2022-11-16 21:00:40
* @LastEditors: lixg lixg@dongwu-inc.com * @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:09:49 * @LastEditTime: 2022-12-07 08:53:15
* @FilePath: /fe-manage/src/views/examine/ProjectReviewed.vue * @FilePath: /fe-manage/src/views/examine/ProjectReviewed.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
--> -->
@@ -15,49 +15,52 @@
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<a-input <a-input
v-model:value="valueproj" v-model:value="valueproj"
style=" style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" "
placeholder="请输入项目名称/所属项目" placeholder="请输入项目名称/所属项目"
/> />
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input <a-input
v-model:value="valuename" v-model:value="valuename"
style=" style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" "
placeholder="请输入项目经理" placeholder="请输入项目经理"
/> />
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input <a-input
v-model:value="valuecreater" v-model:value="valuecreater"
style=" style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" "
placeholder="请输入创建人" placeholder="请输入创建人"
/> />
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-range-picker <a-range-picker
v-model:value="valueDate" v-model:value="valueDate"
:show-time="{ :show-time="{
defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], defaultValue: [
}" moment('00:00:00', 'HH:mm:ss'),
style="border-radius: 8px; height: 40px; margin-left: 5px" moment('23:59:59', 'HH:mm:ss'),
:placeholder="[' 开始时间', ' 结束时间']" ],
valueFormat="X" }"
style="border-radius: 8px; height: 40px; margin-left: 5px"
:placeholder="[' 开始时间', ' 结束时间']"
valueFormat="X"
/> />
</div> </div>
</div> </div>
@@ -76,26 +79,26 @@
<div class="tmpl_body"> <div class="tmpl_body">
<div class="tmpl_tabbox"> <div class="tmpl_tabbox">
<a-table <a-table
:columns="columns1" :columns="columns1"
:data-source="tableData1" :data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true" expandRowByClick="true"
@expand="expandTable" @expand="expandTable"
:scroll="{ x: 1300 }" :scroll="{ x: 1300 }"
:pagination="false" :pagination="false"
/> />
</div> </div>
<div class="tableBox"> <div class="tableBox">
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
v-if="total > 10" v-if="total > 10"
showSizeChanger="true" showSizeChanger="true"
show-quick-jumper show-quick-jumper
:pageSize="pageSize" :pageSize="pageSize"
v-model:current="currentPage" v-model:current="currentPage"
:total="total" :total="total"
class="pagination" class="pagination"
@change="changePagination" @change="changePagination"
/> />
</div> </div>
</div> </div>
@@ -103,11 +106,11 @@
</div> </div>
<!-- 审核日志弹窗 --> <!-- 审核日志弹窗 -->
<a-modal <a-modal
v-model:visible="projAuditModal" v-model:visible="projAuditModal"
:footer="null" :footer="null"
:closable="closeBack" :closable="closeBack"
wrapClassName="projAuditModal" wrapClassName="projAuditModal"
centered="true" centered="true"
> >
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
@@ -119,14 +122,14 @@
</div> </div>
<div class="body"> <div class="body">
<a-table <a-table
style="width: 90%" style="width: 90%"
:columns="columnsAudit" :columns="columnsAudit"
:data-source="tableDataAudit" :data-source="tableDataAudit"
:loading="tableDataTotalAudit === -1 ? true : false" :loading="tableDataTotalAudit === -1 ? true : false"
expandRowByClick="true" expandRowByClick="true"
:scroll="{ y: 150 }" :scroll="{ y: 150 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
/> />
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
@@ -143,9 +146,9 @@
</div> </div>
</template> </template>
<script> <script>
import {onMounted, reactive, toRefs} from "vue"; import { onMounted, reactive, toRefs } from "vue";
import {auditedlist} from "../../api/indexAudit"; import { auditedlist } from "../../api/indexAudit";
import * as moment from 'moment' import * as moment from "moment";
export default { export default {
name: "ProjectViewed", name: "ProjectViewed",
@@ -192,7 +195,15 @@ export default {
key: "topName", key: "topName",
align: "center", align: "center",
width: "10%", width: "10%",
customRender: ({record: {gaName,faName,name}}) => <div>{ faName ?gaName!==null?gaName+'/'+faName:faName:name}</div>, customRender: ({ record: { gaName, faName, name } }) => (
<div>
{faName
? gaName !== null
? gaName + "/" + faName
: faName
: name}
</div>
),
}, },
{ {
title: "项目经理", title: "项目经理",
@@ -205,7 +216,9 @@ export default {
dataIndex: "status", dataIndex: "status",
key: "status", key: "status",
align: "center", align: "center",
customRender: ({record: {status}}) => <div>{status==-2?'未通过':'已通过'}</div>, customRender: ({ record: { status } }) => (
<div>{status == -2 ? "未通过" : "已通过"}</div>
),
}, },
{ {
title: "创建人", title: "创建人",
@@ -224,7 +237,17 @@ export default {
dataIndex: "description", dataIndex: "description",
key: "description", key: "description",
align: "center", align: "center",
customRender: ({record: {auditList,description}}) => <div>{auditList.length!==0?auditList[auditList.length-1].description?auditList[auditList.length-1].description:'-':description?description:'-'}</div>, customRender: ({ record: { auditList, description } }) => (
<div>
{auditList.length !== 0
? auditList[auditList.length - 1].description
? auditList[auditList.length - 1].description
: "-"
: description
? description
: "-"}
</div>
),
}, },
{ {
@@ -234,16 +257,16 @@ export default {
align: "center", align: "center",
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
<span <span
onClick={() => { onClick={() => {
showProjAuditModal(value.record.auditList); showProjAuditModal(value.record.auditList);
}} }}
style="cursor:pointer;color:#387DF7" style="cursor:pointer;color:#387DF7"
> >
审核日志 审核日志
</span> </span>
</div> </div>
); );
}, },
}, },
@@ -262,7 +285,9 @@ export default {
dataIndex: "status", dataIndex: "status",
key: "status", key: "status",
align: "center", align: "center",
customRender: ({record: {status}}) => <div>{{'2': '审核通过', '-2': '审核拒绝'}[(status + '')]}</div>, customRender: ({ record: { status } }) => (
<div>{{ 2: "审核通过", "-2": "审核拒绝" }[status + ""]}</div>
),
}, },
{ {
@@ -270,7 +295,7 @@ export default {
dataIndex: "createTime", dataIndex: "createTime",
key: "createTime", key: "createTime",
align: "center", align: "center",
width: 220 width: 220,
}, },
{ {
@@ -286,8 +311,8 @@ export default {
}); });
const getProjList = () => { const getProjList = () => {
let objn = { let objn = {
beginTime: state.valueDate ? state.valueDate[0] : '', beginTime: state.valueDate ? state.valueDate[0] : "",
endTime: state.valueDate ? state.valueDate[1] : '', endTime: state.valueDate ? state.valueDate[1] : "",
createName: state.valuecreater, createName: state.valuecreater,
manager: state.valuename, manager: state.valuename,
name: state.valueproj, name: state.valueproj,
@@ -296,18 +321,18 @@ export default {
status: 1, status: 1,
}; };
auditedlist(objn).then((res) => { auditedlist(objn).then((res) => {
console.log('获取已审核项目列表数据',res) console.log("获取已审核项目列表数据", res);
let result = res.data.data; let result = res.data.data;
state.total = res.data.data.total; state.total = res.data.data.total;
let numdata = [] let numdata = [];
result.rows.map((value, index) => { result.rows.map((value, index) => {
let obj = value let obj = value;
obj.number = index+1 + (state.currentPage-1) *10 obj.number = index + 1 + (state.currentPage - 1) * 10;
numdata.push(obj); numdata.push(obj);
}); });
state.tableData1 = numdata state.tableData1 = numdata;
}) });
}; };
const changePagination = (pagina) => { const changePagination = (pagina) => {
state.currentPage = pagina; state.currentPage = pagina;
@@ -325,7 +350,7 @@ export default {
state.projAuditModal = false; state.projAuditModal = false;
}; };
const showProjAuditModal = (data) => { const showProjAuditModal = (data) => {
state.tableDataAudit = data state.tableDataAudit = data;
state.projAuditModal = true; state.projAuditModal = true;
}; };
const setAudit = (table) => { const setAudit = (table) => {
@@ -335,13 +360,13 @@ export default {
let obj = { let obj = {
name: item.create_name, name: item.create_name,
belong: belong:
item.status == 1 item.status == 1
? "提交待审核" ? "提交待审核"
: item.status == 2 : item.status == 2
? "通过" ? "通过"
: item.status == 3 : item.status == 3
? "拒绝" ? "拒绝"
: "-", : "-",
time: item.createTime, time: item.createTime,
description: item.description, description: item.description,
}; };
@@ -362,7 +387,7 @@ export default {
reset, reset,
closeProjAuditModal, closeProjAuditModal,
showProjAuditModal, showProjAuditModal,
setAudit setAudit,
}; };
}, },
}; };
@@ -398,8 +423,8 @@ export default {
width: calc(100%); width: calc(100%);
height: 68px; height: 68px;
background: linear-gradient( background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%, rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100% rgba(78, 166, 255, 0) 100%
); );
} }

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com * @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 21:01:51 * @Date: 2022-11-16 21:01:51
* @LastEditors: lixg lixg@dongwu-inc.com * @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:10:02 * @LastEditTime: 2022-12-07 08:42:20
* @FilePath: /fe-manage/src/views/examine/ProjectReviewedN.vue * @FilePath: /fe-manage/src/views/examine/ProjectReviewedN.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,33 +14,45 @@
<div class="tmplh_inp"> <div class="tmplh_inp">
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<a-input v-model:value="valueproj" style=" <a-input
v-model:value="valueproj"
style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" placeholder="请输入项目名称/所属项目" /> "
placeholder="请输入项目名称/所属项目"
/>
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input v-model:value="valuename" style=" <a-input
v-model:value="valuename"
style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" placeholder="请输入项目经理" /> "
placeholder="请输入项目经理"
/>
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input v-model:value="valuecreater" style=" <a-input
v-model:value="valuecreater"
style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" placeholder="请输入创建人" /> "
placeholder="请输入创建人"
/>
</div> </div>
<!-- <div class="inpbox1">--> <!-- <div class="inpbox1">-->
<!-- <a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"--> <!-- <a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"-->
<!-- :placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />--> <!-- :placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />-->
<!-- </div>--> <!-- </div>-->
</div> </div>
</div> </div>
<div class="tmplh_btn"> <div class="tmplh_btn">
@@ -56,26 +68,46 @@
</div> </div>
<div class="tmpl_body"> <div class="tmpl_body">
<div class="tmpl_tabbox"> <div class="tmpl_tabbox">
<a-table :columns="columns1" :data-source="tableData1" :loading="tableDataTotal === -1 ? true : false" <a-table
expandRowByClick="true" @expand="expandTable" :pagination="false" :scroll="{ x: 1300 }" /> :columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:scroll="{ x: 1300 }"
/>
</div> </div>
<div class="tableBox"> <div class="tableBox">
<div class="pa"> <div class="pa">
<a-pagination v-if="total > 10" showSizeChanger="true" show-quick-jumper :pageSize="pageSize" <a-pagination
v-model:current="currentPage" :total="total" class="pagination" @change="changePagination" /> v-if="total > 10"
showSizeChanger="true"
show-quick-jumper
:pageSize="pageSize"
v-model:current="currentPage"
:total="total"
class="pagination"
@change="changePagination"
/>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 审核项目页面 --> <!-- 审核项目页面 -->
<project-audit v-model:ProjAuditvisible="ProjAuditvisible" v-model:chooseProject="chooseProject" <project-audit
v-model:chooseCreateId="chooseCreateId" v-model:chooseCreater="chooseCreater" v-model:finishdFun="getProjList" /> v-model:ProjAuditvisible="ProjAuditvisible"
v-model:chooseProject="chooseProject"
v-model:chooseCreateId="chooseCreateId"
v-model:chooseCreater="chooseCreater"
v-model:finishdFun="getProjList"
/>
</div> </div>
</template> </template>
<script> <script>
import {onMounted, reactive, toRefs} from "vue"; import { onMounted, reactive, toRefs } from "vue";
import ProjectAudit from "../../components/drawers/ProjectAudit"; import ProjectAudit from "../../components/drawers/ProjectAudit";
import {auditlist} from "../../api/indexAudit"; import { auditlist } from "../../api/indexAudit";
export default { export default {
name: "ProjectViewedN", name: "ProjectViewedN",
@@ -116,7 +148,7 @@ export default {
key: "name", key: "name",
align: "center", align: "center",
}, },
// todo 根项目保存 // todo 根项目保存
// { // {
// title: "所属项目", // title: "所属项目",
// dataIndex: "sourceBelongName", // dataIndex: "sourceBelongName",
@@ -135,7 +167,7 @@ export default {
dataIndex: "status", dataIndex: "status",
key: "status", key: "status",
align: "center", align: "center",
customRender: ()=><div>待审核</div>, customRender: () => <div>待审核</div>,
}, },
{ {
title: "创建人", title: "创建人",
@@ -145,8 +177,8 @@ export default {
}, },
{ {
title: "创建时间", title: "创建时间",
dataIndex: "createTime", dataIndex: "processTime",
key: "createTime", key: "processTime",
align: "center", align: "center",
}, },
@@ -175,8 +207,7 @@ export default {
}, },
}, },
], ],
tableData1: [ tableData1: [],
],
}); });
const showProjAudit = (id, createId, creater) => { const showProjAudit = (id, createId, creater) => {
state.ProjAuditvisible = true; state.ProjAuditvisible = true;
@@ -186,9 +217,11 @@ export default {
}; };
const getProjList = () => { const getProjList = () => {
let objn = { let objn = {
beginTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[0]), beginTime:
state.valueDate == undefined ? "" : Date.parse(state.valueDate[0]),
createName: state.valuecreater, createName: state.valuecreater,
endTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[1]), endTime:
state.valueDate == undefined ? "" : Date.parse(state.valueDate[1]),
manager: state.valuename, manager: state.valuename,
name: state.valueproj, name: state.valueproj,
pageNo: state.currentPage, pageNo: state.currentPage,
@@ -202,14 +235,14 @@ export default {
state.total = result.total; state.total = result.total;
// state.tableData1 = result.rows // state.tableData1 = result.rows
let numdata = [] let numdata = [];
result.rows.map((value, index) => { result.rows.map((value, index) => {
let obj = value let obj = value;
obj.number = index+1 + (state.currentPage-1) *10 obj.number = index + 1 + (state.currentPage - 1) * 10;
numdata.push(obj); numdata.push(obj);
}); });
state.tableData1 = numdata state.tableData1 = numdata;
// setProjList(result.rows); // setProjList(result.rows);
}) })
@@ -222,10 +255,10 @@ export default {
getProjList(); getProjList();
}; };
const reset = () => { const reset = () => {
state.valueproj = "", (state.valueproj = ""),
state.valuecreater = "", (state.valuecreater = ""),
state.valuename = "", (state.valuename = ""),
state.valueDate = undefined; (state.valueDate = undefined);
getProjList(); getProjList();
}; };
onMounted(() => { onMounted(() => {

View File

@@ -959,6 +959,7 @@ export default defineComponent({
state.projectInfo.status = res.data.data.projectTemplateInfo.status; state.projectInfo.status = res.data.data.projectTemplateInfo.status;
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl; state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl;
state.projectInfo.attach = res.data.data.projectTemplateInfo.attach; state.projectInfo.attach = res.data.data.projectTemplateInfo.attach;
state.projectInfo.category = res.data.data.projectTemplateInfo.category;
let data = res.data.data.stageList; let data = res.data.data.stageList;
console.log("data=====", data); console.log("data=====", data);
for (let i in data) { for (let i in data) {
@@ -1131,8 +1132,28 @@ export default defineComponent({
console.log(file); console.log(file);
list = state.fileList; list = state.fileList;
console.log("list", list); console.log("list", list);
let str = JSON.stringify(list); let str = JSON.stringify(fileList);
console.log("str", str); console.log("str", str);
console.table({
name: state.projectInfo.name,
category: state.projectInfo.category,
picUrl: state.projectInfo.picUrl,
beginTime: new Date(state.projectInfo.beginTime).getTime()/1000,
endTime: new Date(state.projectInfo.endTime).getTime()/1000,
manager: state.projectInfo.manager,
managerId: state.projectInfo.managerId || 0,
sourceBelongId: state.projectInfo.sourceBelongId,
level: state.projectInfo.level,
systemId: state.projectInfo.systemId,
boeFlag: state.projectInfo.boeFlag ? 1 : 0,
courseSyncFlag: state.projectInfo.courseSyncFlag ? 1 : 0,
notice: state.projectInfo.notice,
noticeFlag: state.projectInfo.noticeFlag,
projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
remark: state.projectInfo.remark,
status: state.projectInfo.status,
attach: str,
})
//要编辑项目 //要编辑项目
api api
.templateEdit({ .templateEdit({

View File

@@ -68,33 +68,32 @@
/> />
<div class="inname">封面图</div> <div class="inname">封面图</div>
</div> </div>
<div <div class="in select" style="flex:1">
:class="`box ${projectInfo.picUrl === src?'active':''}`" <a-select
style=" :getPopupContainer="
width: 100px; (triggerNode) => {
height: 100px; return triggerNode.parentNode || document.body;
border: 1px solid rgba(78, 166, 255, 1); }
border-radius: 5px; "
cursor: pointer; v-model:value="picUrlName"
position: relative; dropdownClassName="dropdown-style"
overflow: hidden; style="width: 440px"
" placeholder="请选择"
v-for="(src,index) in projectPic" :options="projectPic"
:key="index" @change="handleChangeSelect"
@click="()=>{ allowClear
projectInfo.picUrl = src ></a-select>
}"
>
<img <img
style=" style="width:100px;height:100px;margin-top:20px;border-radius: 8px"
width: 100px; v-if="projectInfo.picUrl"
height: 100px; :src="projectInfo.picUrl"
margin-bottom: 4px;
margin-right: 4px;
"
:src="src"
alt="avatar" alt="avatar"
/> />
<div class="i_bottom">
<span style="color: #999ba3">
高宽比为16:9 (:800*450) png或jpg图片
</span>
</div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
@@ -130,7 +129,7 @@
<ProjectManager <ProjectManager
v-model:value="projectInfo.managerId" v-model:value="projectInfo.managerId"
v-model:name="projectInfo.manager" v-model:name="projectInfo.manager"
@onChange="managerChange" @change="managerChange"
mode="multiple" mode="multiple"
></ProjectManager> ></ProjectManager>
</div> </div>
@@ -294,13 +293,13 @@ import {onMounted, reactive, toRefs, watch} from "vue";
import {message} from "ant-design-vue"; import {message} from "ant-design-vue";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import * as api from "../../api/index"; import * as api from "../../api/index";
import {useStore} from "vuex";
import ProjectClass from "@/components/project/ProjectClass"; import ProjectClass from "@/components/project/ProjectClass";
import TrainClass from "@/components/project/TrainClass"; import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import ProjectLevel from "@/components/project/ProjectLevel"; import ProjectLevel from "@/components/project/ProjectLevel";
import {changeOwnership, scrollLoad} from "@/api/method"; import {changeOwnership, scrollLoad} from "@/api/method";
import * as api1 from "@/api/index1";
export default { export default {
name: "projectAdd", name: "projectAdd",
@@ -312,6 +311,7 @@ export default {
OrgClass, OrgClass,
}, },
setup() { setup() {
const store = useStore();
const routers = useRoute(); const routers = useRoute();
const router = useRouter(); const router = useRouter();
const state = reactive({ const state = reactive({
@@ -329,10 +329,16 @@ export default {
}, },
classifyList5: [], classifyList5: [],
courseSyncFlag: false, courseSyncFlag: false,
picUrlName:'请选择封面图'
}); });
onMounted(async () => { // 封面图选择
state.projectPic = await getDictList('pathmapPic').then(e => e.map(e => e.dictValue)); const handleChangeSelect = (value) => {
console.log(value)
state.projectInfo.picUrl= value
}
onMounted(() => {
state.projectPic = store.state.projectPic.map((e) => ({value: e.dictValue, label: e.dictName}));
state.viewDetail = routers.query.viewDetail; state.viewDetail = routers.query.viewDetail;
getProjectInfo(); getProjectInfo();
getTemplate(); getTemplate();
@@ -344,12 +350,6 @@ export default {
state.projectInfo.parentId = routers.query.parentId; state.projectInfo.parentId = routers.query.parentId;
}); });
const getDictList = (param) => api1.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
}).then((res) => res.data.data.rows);
function getProjectInfo() { function getProjectInfo() {
if (!routers.query.projectId) { if (!routers.query.projectId) {
state.projectInfo = { state.projectInfo = {
@@ -362,6 +362,17 @@ export default {
.getProjectDetail({projectId: routers.query.projectId}) .getProjectDetail({projectId: routers.query.projectId})
.then((res) => { .then((res) => {
state.projectInfo = res.data.data.projectInfo; state.projectInfo = res.data.data.projectInfo;
console.log(res)
let picurl = res.data.data.projectInfo.picUrl
let dates = store.state.projectPic.map((e) => ({value: e.dictValue, label: e.dictName}));
console.log(dates,picurl)
for(let i=0;i<dates.length;i++){
if(dates[i].value==picurl){
state.picUrlName = dates[i].label
}
}
state.projectInfo.rangeTime = [ state.projectInfo.rangeTime = [
state.projectInfo.beginTime, state.projectInfo.beginTime,
state.projectInfo.endTime, state.projectInfo.endTime,
@@ -479,6 +490,7 @@ export default {
createProject, createProject,
backPage, backPage,
templateScroll, templateScroll,
handleChangeSelect
}; };
}, },
}; };