123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491 |
- <template>
- <div class="pb_content" style="background: #e6eaf0; margin: 0">
- <div class="bread">
- <el-breadcrumb
- separator-class="el-icon-arrow-right"
- style="margin-top: 15px"
- >
- <el-breadcrumb-item
- :to="{ path: '/classRoom?userid=' + userid + '&oid=' + oid }"
- >课堂备课</el-breadcrumb-item
- >
- <el-breadcrumb-item>创建课堂</el-breadcrumb-item>
- </el-breadcrumb>
- </div>
- <div class="pb_content_body" style="height: 100%">
- <div class="pptBody">
- <div class="pptLeft">
- <div>课堂备课</div>
- </div>
- <div class="pptRight">
- <div v-if="steps == 0">
- <div style="background: #fff">
- <div class="pptName">课堂名称</div>
- <div class="pptInput">
- <span style="color: red; margin-right: 10px">*</span>
- <el-input
- type="text"
- placeholder="请输入名称"
- v-model="upPPT[0].pName"
- maxlength="50"
- show-word-limit
- >
- </el-input>
- </div>
- </div>
- <div style="background: #fff; margin-top: 10px">
- <div class="pptName">上传课堂封面</div>
- <div class="pptInput" @click="addImg($event)">
- <span style="color: red; margin-right: 10px">*</span>
- <div class="uploadImg" v-if="upPPT[0].pImg.length == 0">
- <div class="upImg">
- <img src="../../assets/icon/upImg.png" alt="" />
- </div>
- <div style="color: #bfc3c7">支持jpg/png格式</div>
- <input
- type="file"
- accept="image/png,image/jpg"
- style="display: none"
- @change="beforeUpload1($event, 1)"
- />
- </div>
- <div v-else>
- <div class="isUpImg">
- <img :src="upPPT[0].pImg[0].url" alt="" />
- </div>
- <div
- style="
- width: 300px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- margin: 10px 0;
- text-align: center;
- "
- >
- {{ upPPT[0].pImg[0].name }}
- </div>
- </div>
- </div>
- </div>
- <div style="background: #fff; margin-top: 10px">
- <div class="pptName">上传备课PPT</div>
- <div class="pptInput" @click="addImg($event)">
- <span style="color: red; margin-right: 10px">*</span>
- <div
- class="uploadImg"
- style="width: 320px; height: 200px"
- v-if="upPPT[0].pPPt.length == 0"
- >
- <div class="upImg">
- <img src="../../assets/icon/upPpt.png" alt="" />
- </div>
- <div style="color: #bfc3c7">上传文件</div>
- <input
- type="file"
- accept="application/.ppt, .pptx"
- style="display: none"
- @change="beforeUpload1($event, 2)"
- />
- </div>
- <div v-else>
- <div class="isUpImg"><img :src="mr" alt="" /></div>
- <div
- style="
- width: 300px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- margin: 10px 0;
- text-align: center;
- "
- >
- {{ upPPT[0].pPPt[0].name }}
- </div>
- </div>
- </div>
- </div>
- <div class="rightButton" @click="steps = 1">下一步</div>
- </div>
- <div v-if="steps == 1">
- <div style="background: #fff; margin-top: 10px">
- <div class="pptName">上传备课PPT</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div v-if="proVisible" class="mask">
- <div class="progressBox">
- <div class="lbox">
- <img src="../../assets/loading.gif" />上传中,请稍后
- </div>
- <el-progress
- :text-inside="true"
- :stroke-width="20"
- :percentage="progress"
- style="width: 80%"
- ></el-progress>
- </div>
- </div>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- dataVisible: false,
- isLoading: false,
- formLabelWidth: "100px",
- userid: this.$route.query.userid,
- oid: this.$route.query.oid,
- total: 0,
- tableData: [],
- upPPT: [
- {
- pName: "",
- pImg: [],
- pPPt: [],
- },
- ],
- now: "",
- mr: require("../../assets/icon/pptImg.png"),
- noneBtnImg: false,
- proVisible: false,
- progress: 0,
- steps: 0,
- };
- },
- methods: {
- change(val) {
- console.log(val);
- },
- goTo(path) {
- this.$router.push(path);
- },
- tableRowClassName({ row, rowIndex }) {
- if ((rowIndex + 1) % 2 === 0) {
- return "even_row";
- } else {
- return "";
- }
- },
- jump(cid) {
- window.parent.postMessage({ cid: cid, type: "1" }, "*");
- },
- init() {},
- handleClose(done) {
- done();
- },
- handleRemove(file, fileList) {
- console.log(file, fileList);
- },
- onExceed() {
- this.$message.error("课程海报仅支持上传一张,请删除后再进行上传");
- },
- //uuid生成
- guid() {
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
- /[xy]/g,
- function (c) {
- var r = (Math.random() * 16) | 0,
- v = c == "x" ? r : (r & 0x3) | 0x8;
- return v.toString(16);
- }
- );
- },
- time() {
- if (!this.now) {
- this.now = new Date().getTime();
- return true;
- } else {
- let time = new Date().getTime();
- if (time - this.now > 3000) {
- this.now = time;
- return true;
- } else {
- return false;
- }
- }
- },
- addImg(e) {
- var el = e.currentTarget;
- el.getElementsByTagName("input")[0].click();
- },
- imgChange(file, fileList, type) {
- if (type == 1) {
- var _tmp = this.upPPT[0].pImg;
- } else if (type == 2) {
- var _tmp = this.upPPT[0].pPPt;
- }
- this.noneBtnImg = _tmp.length >= 1;
- },
- beforeUpload1(event, type) {
- var file = event.target.files[0];
- var credentials = {
- accessKeyId: "AKIATLPEDU37QV5CHLMH",
- secretAccessKey: "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",
- }; //秘钥形式的登录上传
- window.AWS.config.update(credentials);
- window.AWS.config.region = "cn-northwest-1"; //设置区域
- var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
- var _this = this;
- _this.progress = 0;
- _this.proVisible = true;
- if (file) {
- var params = {
- Key:
- file.name.split(".")[0] +
- new Date().getTime() +
- "." +
- file.name.split(".")[1],
- ContentType: file.type,
- Body: file,
- "Access-Control-Allow-Credentials": "*",
- ACL: "public-read",
- }; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
- var options = {
- partSize: 2048 * 1024 * 1024,
- queueSize: 2,
- leavePartsOnError: true,
- };
- bucket
- .upload(params, options)
- .on("httpUploadProgress", function (evt) {
- //这里可以写进度条
- // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
- _this.progress = parseInt((evt.loaded * 80) / evt.total);
- })
- .send(function (err, data) {
- _this.progress = 100;
- setTimeout(() => {
- _this.proVisible = false;
- }, 1000);
- if (err) {
- var a = _this.$refs.upload1.uploadFiles;
- a.splice(a.length - 1, a.length);
- _this.$message.error("上传失败");
- } else {
- if (type == 1) {
- _this.upPPT[0].pImg.push({
- name: file.name,
- url: data.Location,
- uid: file.uid,
- });
- _this.imgChange(null, null, type);
- } else {
- _this.upPPT[0].pPPt.push({
- name: file.name,
- url: data.Location,
- uid: file.uid,
- });
- _this.imgChange(null, null, type);
- }
- console.log(data.Location);
- }
- });
- }
- },
- checkData() {
- this.dataVisible = true;
- },
- },
- created() {},
- };
- </script>
- <style scoped>
- .upImg > img,
- .isUpImg > img {
- width: 100%;
- height: 100%;
- }
- .xls_button {
- font-size: 14px;
- cursor: pointer;
- text-decoration: underline;
- color: rgb(34, 104, 188);
- }
- .student_search {
- display: flex;
- align-items: center;
- width: calc(100% / 3);
- }
- .student_search span {
- margin: 0 10px 0 0;
- width: 65px;
- }
- .el_cards >>> .el-card__body {
- height: 100%;
- }
- .student_input >>> .el-input__inner {
- height: 40px;
- width: 190px;
- font-size: 13px;
- padding: 0 10px;
- }
- .dialog_diy >>> .el-dialog__header {
- padding: 9px 20px 10px;
- background: #32455b !important;
- }
- .dialog_diy >>> .el-dialog__title {
- color: #fff;
- font-size: 15px;
- }
- .dialog_diy >>> .el-dialog__headerbtn {
- top: 14px;
- }
- .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close {
- color: #fff;
- }
- .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover {
- color: #fff;
- }
- .dialog_diy >>> .el-dialog__body,
- .dialog_diy >>> .el-dialog__footer {
- background: #f3f3f3;
- }
- .bread {
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- justify-content: flex-end;
- align-items: center;
- }
- .pptBody {
- display: flex;
- width: 100%;
- height: 100%;
- flex-direction: row;
- align-items: flex-start;
- flex-wrap: nowrap;
- align-content: flex-start;
- }
- .pptLeft {
- background: #fff;
- width: 20%;
- height: 55px;
- border-radius: 5px;
- line-height: 55px;
- display: flex;
- align-items: center;
- }
- .pptLeft > div {
- border-left: 5px solid #418ae4;
- height: 35px;
- line-height: 35px;
- padding-left: 20px;
- }
- .pptRight {
- width: 80%;
- margin-left: 25px;
- background: #e6e9f0;
- position: relative;
- min-height: 100%;
- }
- .pptName {
- height: 40px;
- padding: 15px 0 0 20px;
- border-bottom: 1px solid #f9f9f9;
- }
- .pptInput {
- display: flex;
- margin-top: 15px;
- padding: 10px 0 20px 25px;
- flex-direction: row;
- align-items: center;
- }
- .pptInput >>> .el-input {
- width: 80%;
- }
- .pptInput >>> .el-input__inner,
- .pptInput >>> .el-input__count-inner {
- background: #f4f4f4 !important;
- }
- .uploadImg {
- background: #f2f2f2;
- width: 300px;
- height: 150px;
- display: flex;
- flex-direction: column;
- flex-wrap: nowrap;
- align-items: center;
- justify-content: center;
- cursor: pointer;
- }
- .upImg {
- width: 60px;
- }
- .mask {
- background-color: rgba(0, 0, 0, 0);
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- z-index: 20000;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .progressBox {
- width: 500px;
- height: 180px;
- background: #fff;
- border-radius: 10px;
- box-shadow: 0 0 6px 1px #bfbfbf;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
- }
- .progressBox .lbox {
- height: 100px;
- font-size: 19px;
- display: flex;
- align-items: center;
- }
- .progressBox .lbox img {
- width: 40px;
- margin-right: 20px;
- }
- .progressBox >>> .el-progress-bar__outer {
- background-color: #d1dfff !important;
- }
- .progressBox .lbox {
- height: 100px;
- font-size: 19px;
- display: flex;
- align-items: center;
- }
- .progressBox .lbox img {
- width: 40px;
- margin-right: 20px;
- }
- .isUpImg {
- width: 300px;
- height: 150px;
- }
- .rightButton {
- background: #30adff;
- width: 160px;
- height: 40px;
- text-align: center;
- line-height: 40px;
- color: #fff;
- border-radius: 5px;
- font-size: 12px;
- position: absolute;
- right: 0;
- bottom: 17%;
- cursor: pointer;
- }
- </style>
|