feat:修改共享文档下载

This commit is contained in:
lixg
2023-03-03 11:54:08 +08:00
parent 41b448abf2
commit 49fa5ae375
3 changed files with 551 additions and 478 deletions

View File

@@ -2790,7 +2790,12 @@ export default {
let urlNew = url.slice(1); let urlNew = url.slice(1);
console.log(urlNew); console.log(urlNew);
if (urlNew) { if (urlNew) {
window.open(process.env.VUE_APP_FILE_PATH + urlNew); window.open(
window.location.protocol +
process.env.VUE_APP_BOE_API_URL +
process.env.VUE_APP_FILE_PATH +
urlNew
);
} }
// if(url){ // if(url){
// const filename = '操作指南' // const filename = '操作指南'

View File

@@ -34,14 +34,12 @@
</div> </div>
</div> </div>
<div class="line"></div> --> <div class="line"></div> -->
<router-link to="/templatelibrary" <router-link to="/templatelibrary">
>
<div style="display: flex"> <div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" /> <img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div> <div class="return">返回</div>
</div> </div>
</router-link </router-link>
>
</div> </div>
</div> </div>
<div class="split"></div> <div class="split"></div>
@@ -60,7 +58,10 @@
<!-- <button class="btn" @click="showFaceIn">批量面授报名</button> --> <!-- <button class="btn" @click="showFaceIn">批量面授报名</button> -->
<router-link <router-link
class="edit" class="edit"
:to="{ path: `/temTask`, query: { projectId: projectTemplateId } }" :to="{
path: `/temTask`,
query: { projectId: projectTemplateId },
}"
> >
<img <img
class="editimg" class="editimg"
@@ -422,84 +423,51 @@
><span>积分</span> ><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>完成作业成绩不低于 </span <span>完成作业成绩不低于 </span>
>
<a-input v-model:value="done2" :bordered="false" /> <a-input v-model:value="done2" :bordered="false" />
<span <span>分获得</span>
>分获得</span
>
<a-input v-model:value="done3" :bordered="false" /> <a-input v-model:value="done3" :bordered="false" />
<span <span>积分</span>
>积分</span
>
</div> </div>
<div class="content"> <div class="content">
<span></span <span></span>
>
<a-input v-model:value="four1" :bordered="false" /> <a-input v-model:value="four1" :bordered="false" />
<span <span>名学完在线课程获得</span>
>名学完在线课程获得</span
>
<a-input v-model:value="four2" :bordered="false" /> <a-input v-model:value="four2" :bordered="false" />
<span <span style="margin-right: 50px">积分</span>
style="margin-right: 50px" <span></span>
>积分</span
>
<span></span
>
<a-input v-model:value="four3" :bordered="false" /> <a-input v-model:value="four3" :bordered="false" />
<span <span>名提交作业且成绩不低于</span>
>名提交作业且成绩不低于</span
>
<a-input v-model:value="four4" :bordered="false" /> <a-input v-model:value="four4" :bordered="false" />
<span <span>分获得</span>
>分获得</span
>
<a-input v-model:value="four5" :bordered="false" /> <a-input v-model:value="four5" :bordered="false" />
<span <span>积分</span>
>积分</span
>
</div> </div>
<div class="content"> <div class="content">
<span>考试成绩高于</span <span>考试成绩高于</span>
>
<a-input v-model:value="five1" :bordered="false" /> <a-input v-model:value="five1" :bordered="false" />
<span <span>分获得</span>
>分获得</span
>
<a-input v-model:value="five2" :bordered="false" /> <a-input v-model:value="five2" :bordered="false" />
<span <span>积分</span>
>积分</span
>
</div> </div>
<div class="content"> <div class="content">
<span>考勤正常学员获得 </span <span>考勤正常学员获得 </span>
>
<a-input v-model:value="six1" :bordered="false" /> <a-input v-model:value="six1" :bordered="false" />
<span <span>积分</span>
>积分</span
>
</div> </div>
<div class="content"> <div class="content">
<span>成为小组长获得</span <span>成为小组长获得</span>
>
<a-input v-model:value="seven1" :bordered="false" /> <a-input v-model:value="seven1" :bordered="false" />
<span <span style="margin-right: 50px">积分</span>
style="margin-right: 50px"
>积分</span
>
<span>优秀学员可获得</span> <span>优秀学员可获得</span>
<a-input v-model:value="seven2" :bordered="false" /> <a-input v-model:value="seven2" :bordered="false" />
<span <span>积分</span>
>积分</span
>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="4" tab="设置"> <a-tab-pane key="4" tab="设置">
<div class="split"></div> <div class="split"></div>
<a-tabs> <a-tabs>
@@ -556,26 +524,35 @@
<div class="setc_name"><span>资源归属</span></div> <div class="setc_name"><span>资源归属</span></div>
<div class="setc_main"> <div class="setc_main">
<span style="color: #999999">{{ <span style="color: #999999">{{
(projectInfo.sourceBelongFullName || '') + projectInfo.sourceBelongName (projectInfo.sourceBelongFullName || "") +
projectInfo.sourceBelongName
}}</span> }}</span>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>项目级别</span></div> <div class="setc_name"><span>项目级别</span></div>
<div class="setc_main"> <div class="setc_main">
<ProjectLevel :value="projectInfo.level" :tag="true"></ProjectLevel> <ProjectLevel
:value="projectInfo.level"
:tag="true"
></ProjectLevel>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>培训体系</span></div> <div class="setc_name"><span>培训体系</span></div>
<div class="setc_main"> <div class="setc_main">
<TrainClass :value="projectInfo.systemId" :tag="true"></TrainClass> <TrainClass
:value="projectInfo.systemId"
:tag="true"
></TrainClass>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>同步学习记录</span></div> <div class="setc_name"><span>同步学习记录</span></div>
<div class="setc_main"> <div class="setc_main">
<a-radio v-model:checked="projectInfo.courseSyncFlag" :disabled="true" <a-radio
v-model:checked="projectInfo.courseSyncFlag"
:disabled="true"
><span style="color: #333333" ><span style="color: #333333"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span >同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio ></a-radio
@@ -585,7 +562,9 @@
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>是否BOEU实施</span></div> <div class="setc_name"><span>是否BOEU实施</span></div>
<div class="setc_main"> <div class="setc_main">
<a-radio v-model:checked="projectInfo.boeFlag" :disabled="true" <a-radio
v-model:checked="projectInfo.boeFlag"
:disabled="true"
><span style="color: #333333">BOEU实施</span></a-radio ><span style="color: #333333">BOEU实施</span></a-radio
> >
</div> </div>
@@ -633,7 +612,13 @@
> >
<img <img
src="@/assets/images/basicinfo/cloud.png" src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 24px; height: 24px; margin-left: 8px;margin-bottom: 3px;" style="
cursor: pointer;
width: 24px;
height: 24px;
margin-left: 8px;
margin-bottom: 3px;
"
alt="" alt=""
/> />
</a-upload> </a-upload>
@@ -649,7 +634,7 @@
<div <div
v-for="item in fileList" v-for="item in fileList"
:key="item.uid" :key="item.uid"
style="margin-bottom: 30px;" style="margin-bottom: 30px"
class="docListStyle" class="docListStyle"
> >
<!-- <img <!-- <img
@@ -662,35 +647,74 @@
" "
alt="" alt=""
/> --> /> -->
<img v-if=" <img
v-if="
item.name.indexOf('jpg') !== -1 || item.name.indexOf('jpg') !== -1 ||
item.name.indexOf('jpeg') !== -1 || item.name.indexOf('jpeg') !== -1 ||
item.name.indexOf('png') !== -1 item.name.indexOf('png') !== -1
" "
style="width: 27px;height: 32px;margin-right: 40px;" style="width: 27px; height: 32px; margin-right: 40px"
src="@/assets/images/coursewareManage/pngpic.png"/> src="@/assets/images/coursewareManage/pngpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('doc') !== -1" <img
style="width: 27px;height: 32px;margin-right: 40px;" v-if="item.name.indexOf('doc') !== -1"
src="@/assets/images/coursewareManage/docpic.png"/> style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/docpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('xls') !== -1" <img
style="width: 27px;height: 32px;margin-right: 40px;" v-if="item.name.indexOf('xls') !== -1"
src="@/assets/images/coursewareManage/xlspic.png"/> style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/xlspic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('ppt') !== -1" <img
style="width: 27px;height: 32px;margin-right: 40px;" v-if="item.name.indexOf('ppt') !== -1"
src="@/assets/images/coursewareManage/pptpic.png"/> style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/pptpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('pdf') !== -1" <img
style="width: 27px;height: 32px;margin-right: 40px;" v-if="item.name.indexOf('pdf') !== -1"
src="@/assets/images/coursewareManage/pdfpic.png"/> style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/pdfpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('zip') !== -1" <img
style="width: 27px;height: 32px;margin-right: 40px;" v-if="item.name.indexOf('zip') !== -1"
src="@/assets/images/coursewareManage/zippic.png"/> style="
<img v-else style="width: 27px;height: 32px;margin-right: 40px;" width: 27px;
src="@/assets/images/coursewareManage/docpic.png"/> height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/zippic.png"
/>
<img
v-else
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/docpic.png"
/>
</div> </div>
</div> </div>
</div> </div>
@@ -698,13 +722,26 @@
</div> </div>
<span <span
style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ style="
item.name font: oblique bold 16px Sans-serif;
}}</span> width: 300px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
"
>{{ item.name }}</span
>
<a <a
href="javascript:void(0);" href="javascript:void(0);"
@click="downloadFile(item.response ? item.response.data : '')" @click="
style="margin-left: 5px">下载</a> downloadFile(
item.response ? item.response.data : ''
)
"
style="margin-left: 5px"
>下载</a
>
<span <span
style="color: #4ea6ff; cursor: pointer" style="color: #4ea6ff; cursor: pointer"
@click="deFile(item.uid)" @click="deFile(item.uid)"
@@ -716,8 +753,6 @@
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
@@ -756,8 +791,7 @@
</div> </div>
</div> </div>
</div> </div>
</a-modal </a-modal>
>
</div> </div>
</div> </div>
</template> </template>
@@ -944,7 +978,9 @@ export default defineComponent({
const value = ref(""); const value = ref("");
const textnum = "150"; const textnum = "150";
const routered = useRouter(); const routered = useRouter();
const {query: {projectTemplateId}} = useRoute(); const {
query: { projectTemplateId },
} = useRoute();
const changeopclo = () => { const changeopclo = () => {
state.projectInfo.noticeFlag = state.checked ? 1 : 0; state.projectInfo.noticeFlag = state.checked ? 1 : 0;
api api
@@ -1017,7 +1053,7 @@ export default defineComponent({
// 获取详情 // 获取详情
const getDetail = () => { const getDetail = () => {
api.templateEditDetail(projectTemplateId).then((res) => { api.templateEditDetail(projectTemplateId).then((res) => {
state.templateInfo = res.data.data state.templateInfo = res.data.data;
state.taskSyllabus = []; state.taskSyllabus = [];
state.projectInfo = res.data.data.projectTemplateInfo; state.projectInfo = res.data.data.projectTemplateInfo;
state.noticeContent = state.projectInfo.notice; state.noticeContent = state.projectInfo.notice;
@@ -1027,13 +1063,12 @@ export default defineComponent({
res.data.data.projectTemplateInfo res.data.data.projectTemplateInfo
); );
try { try {
state.fileList = JSON.parse( state.fileList = JSON.parse(res.data.data.projectTemplateInfo.attach);
res.data.data.projectTemplateInfo.attach
);
} catch { } catch {
state.fileList = []; state.fileList = [];
} }
state.attachSwitch = res.data.data.projectTemplateInfo.attachSwitch == 1; state.attachSwitch =
res.data.data.projectTemplateInfo.attachSwitch == 1;
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) {
@@ -1060,7 +1095,7 @@ export default defineComponent({
}); });
} }
} }
}) });
}; };
// 发布公告 // 发布公告
@@ -1148,7 +1183,7 @@ export default defineComponent({
projectTaskId: 0, projectTaskId: 0,
projectTemplateId: localStorage.getItem("projectTemplateId"), projectTemplateId: localStorage.getItem("projectTemplateId"),
stageId: 0, stageId: 0,
type: 0 type: 0,
}; };
api api
.editTask(obj) .editTask(obj)
@@ -1169,7 +1204,15 @@ export default defineComponent({
let result = res.data.data; let result = res.data.data;
//Write operation failed: computed value is readonly 总积分 //Write operation failed: computed value is readonly 总积分
state.scoresum = Number(result[0].pointsCount) + Number(result[1].pointsCount) + Number(result[2].pointsCount) + Number(result[3].pointsCount) + Number(result[4].pointsCount) + Number(result[5].pointsCount) + Number(result[6].pointsCount) + Number(result[7].pointsCount) state.scoresum =
Number(result[0].pointsCount) +
Number(result[1].pointsCount) +
Number(result[2].pointsCount) +
Number(result[3].pointsCount) +
Number(result[4].pointsCount) +
Number(result[5].pointsCount) +
Number(result[6].pointsCount) +
Number(result[7].pointsCount);
state.score1 = result[0].pointsCount; state.score1 = result[0].pointsCount;
@@ -1179,8 +1222,13 @@ export default defineComponent({
state.four1 = result[2].typeDescConfig; state.four1 = result[2].typeDescConfig;
state.four2 = result[2].pointsCount; state.four2 = result[2].pointsCount;
state.four3 = result[3].typeDescConfig.slice(0,result[3].typeDescConfig.indexOf(';')); state.four3 = result[3].typeDescConfig.slice(
state.four4 = result[3].typeDescConfig.slice(result[3].typeDescConfig.indexOf(';')+1); 0,
result[3].typeDescConfig.indexOf(";")
);
state.four4 = result[3].typeDescConfig.slice(
result[3].typeDescConfig.indexOf(";") + 1
);
state.four5 = result[3].pointsCount; state.four5 = result[3].pointsCount;
state.five1 = result[4].typeDescConfig; state.five1 = result[4].typeDescConfig;
@@ -1191,7 +1239,6 @@ export default defineComponent({
state.seven1 = result[6].pointsCount; state.seven1 = result[6].pointsCount;
state.seven2 = result[7].pointsCount; state.seven2 = result[7].pointsCount;
}) })
.catch((err) => { .catch((err) => {
console.log("获取项目积分规则失败了", err); console.log("获取项目积分规则失败了", err);
@@ -1276,16 +1323,16 @@ export default defineComponent({
attach: str, attach: str,
}) })
.then((res) => { .then((res) => {
console.log(res) console.log(res);
message.destroy(); message.destroy();
message.success("删除成功"); message.success("删除成功");
return return;
}) })
.catch((err) => { .catch((err) => {
console.log(err) console.log(err);
message.destroy(); message.destroy();
message.warning("删除失败"); message.warning("删除失败");
return return;
}); });
}; };
@@ -1293,7 +1340,9 @@ export default defineComponent({
const checkedClose = (data, a) => { const checkedClose = (data, a) => {
console.log(data, a); console.log(data, a);
console.log("模板id" + projectTemplateId); console.log("模板id" + projectTemplateId);
console.log("开关数据:" + JSON.stringify(data) + "====" + JSON.stringify(a)) console.log(
"开关数据:" + JSON.stringify(data) + "====" + JSON.stringify(a)
);
state.attachSwitch = data; state.attachSwitch = data;
// 更新开关状态 // 更新开关状态
@@ -1317,54 +1366,54 @@ export default defineComponent({
projectId: projectTemplateId, projectId: projectTemplateId,
datas: [ datas: [
{ {
"type": 1, type: 1,
"pointsCount": Number(state.score1), pointsCount: Number(state.score1),
"typeDesc": "完成【必修/选修】获得%p积分", typeDesc: "完成【必修/选修】获得%p积分",
"typeDescConfig": "" typeDescConfig: "",
}, },
{ {
"type": 2, type: 2,
"pointsCount": Number(state.done3), pointsCount: Number(state.done3),
"typeDesc": "完成作业成绩不低于%d分获得%p积分", typeDesc: "完成作业成绩不低于%d分获得%p积分",
"typeDescConfig": state.done2 typeDescConfig: state.done2,
}, },
{ {
"type": 3, type: 3,
"pointsCount": Number(state.four2), pointsCount: Number(state.four2),
"typeDesc": "前%d名学完在线课程获得%p积分", typeDesc: "前%d名学完在线课程获得%p积分",
"typeDescConfig": state.four1 typeDescConfig: state.four1,
}, },
{ {
"type": 4, type: 4,
"pointsCount": Number(state.four5), pointsCount: Number(state.four5),
"typeDesc": "前%d名提交作业且成绩不低于%d分获得%p积分", typeDesc: "前%d名提交作业且成绩不低于%d分获得%p积分",
"typeDescConfig": state.four3 + ';' + state.four4 typeDescConfig: state.four3 + ";" + state.four4,
}, },
{ {
"type": 5, type: 5,
"pointsCount": Number(state.five2), pointsCount: Number(state.five2),
"typeDesc": "考试成绩高于%d分获得%p积分", typeDesc: "考试成绩高于%d分获得%p积分",
"typeDescConfig": state.five1 typeDescConfig: state.five1,
}, },
{ {
"type": 6, type: 6,
"pointsCount": Number(state.six1), pointsCount: Number(state.six1),
"typeDesc": "考勤正常学员获得%p积分", typeDesc: "考勤正常学员获得%p积分",
"typeDescConfig": "" typeDescConfig: "",
}, },
{ {
"type": 7, type: 7,
"pointsCount": Number(state.seven1), pointsCount: Number(state.seven1),
"typeDesc": "成为小组长获得%p积分", typeDesc: "成为小组长获得%p积分",
"typeDescConfig": "" typeDescConfig: "",
}, },
{ {
"type": 8, type: 8,
"pointsCount": Number(state.seven2), pointsCount: Number(state.seven2),
"typeDesc": "优秀学员可获得%p积分", typeDesc: "优秀学员可获得%p积分",
"typeDescConfig": "" typeDescConfig: "",
} },
] ],
}; };
console.log(obj); console.log(obj);
setScoreRule(obj) setScoreRule(obj)
@@ -1387,11 +1436,20 @@ export default defineComponent({
// 共享文档文件下载 // 共享文档文件下载
const downloadFile = (url) => { const downloadFile = (url) => {
console.log(url) console.log(url);
if (url) { let urlNew = url.slice(1);
window.open(url) if (urlNew) {
window.open(
window.location.protocol +
process.env.VUE_APP_BOE_API_URL +
process.env.VUE_APP_FILE_PATH +
urlNew
);
} }
// if (url) { // if (url) {
// window.open(url)
// }
// if(url){
// const filename = '操作指南' // const filename = '操作指南'
// const x = new XMLHttpRequest() // const x = new XMLHttpRequest()
// x.open('GET', url, true) // x.open('GET', url, true)
@@ -1406,7 +1464,7 @@ export default defineComponent({
// } // }
// x.send() // x.send()
// } // }
} };
return { return {
...toRefs(state), ...toRefs(state),
@@ -1431,7 +1489,7 @@ export default defineComponent({
checkedClose, checkedClose,
editNotice, editNotice,
deFile, deFile,
downloadFile downloadFile,
}; };
}, },
}); });

View File

@@ -4678,7 +4678,17 @@ export default {
} }
// 共享文档文件下载 // 共享文档文件下载
const downloadFile = (url) => { const downloadFile = (url) => {
url && window.open(url); console.log(url);
let urlNew = url.slice(1);
if (urlNew) {
window.open(
window.location.protocol +
process.env.VUE_APP_BOE_API_URL +
process.env.VUE_APP_FILE_PATH +
urlNew
);
}
// url && window.open(url);
}; };
function stageChange(item, index) { function stageChange(item, index) {
state.choosedStageName = item.name; state.choosedStageName = item.name;