|
@@ -68,7 +68,15 @@
|
|
style="margin-top: 15px"
|
|
style="margin-top: 15px"
|
|
>
|
|
>
|
|
<el-breadcrumb-item
|
|
<el-breadcrumb-item
|
|
- :to="{ path: '/course?userid=' + userid + '&oid=' + oid + '&org=' + org}"
|
|
|
|
|
|
+ :to="{
|
|
|
|
+ path:
|
|
|
|
+ '/course?userid=' +
|
|
|
|
+ userid +
|
|
|
|
+ '&oid=' +
|
|
|
|
+ oid +
|
|
|
|
+ '&org=' +
|
|
|
|
+ org,
|
|
|
|
+ }"
|
|
>项目管理</el-breadcrumb-item
|
|
>项目管理</el-breadcrumb-item
|
|
>
|
|
>
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
@@ -1330,6 +1338,87 @@
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="tool">
|
|
|
|
+ <div
|
|
|
|
+ class="whiteBIcon"
|
|
|
|
+ @click="openTools(itemTaskIndex, 40, toolIndex)"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/thirdToolList/eval.png"
|
|
|
|
+ alt
|
|
|
|
+ />
|
|
|
|
+ <div style="margin: 5px 0">学生互评</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="check"
|
|
|
|
+ @click="addTools(40, itemTaskIndex, toolIndex)"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/checkNo.png"
|
|
|
|
+ alt
|
|
|
|
+ v-if="itemTool.tool.indexOf(40) == -1"
|
|
|
|
+ />
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/checkedIs.png"
|
|
|
|
+ alt
|
|
|
|
+ v-else
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- <div class="tool">
|
|
|
|
+ <div
|
|
|
|
+ class="whiteBIcon"
|
|
|
|
+ @click="openTools(itemTaskIndex, 41, toolIndex)"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/thirdToolList/select.png"
|
|
|
|
+ alt
|
|
|
|
+ />
|
|
|
|
+ <div style="margin: 5px 0">选择填空</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="check"
|
|
|
|
+ @click="addTools(41, itemTaskIndex, toolIndex)"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/checkNo.png"
|
|
|
|
+ alt
|
|
|
|
+ v-if="itemTool.tool.indexOf(41) == -1"
|
|
|
|
+ />
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/checkedIs.png"
|
|
|
|
+ alt
|
|
|
|
+ v-else
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tool">
|
|
|
|
+ <div
|
|
|
|
+ class="whiteBIcon"
|
|
|
|
+ @click="openTools(itemTaskIndex, 42, toolIndex)"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/thirdToolList/mp3.png"
|
|
|
|
+ alt
|
|
|
|
+ />
|
|
|
|
+ <div style="margin: 5px 0">上传音频</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="check"
|
|
|
|
+ @click="addTools(42, itemTaskIndex, toolIndex)"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/checkNo.png"
|
|
|
|
+ alt
|
|
|
|
+ v-if="itemTool.tool.indexOf(42) == -1"
|
|
|
|
+ />
|
|
|
|
+ <img
|
|
|
|
+ src="../../assets/icon/checkedIs.png"
|
|
|
|
+ alt
|
|
|
|
+ v-else
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </div> -->
|
|
</div>
|
|
</div>
|
|
<div class="toolSort" v-if="itemTool.toolType == 3">
|
|
<div class="toolSort" v-if="itemTool.toolType == 3">
|
|
<div class="tool">
|
|
<div class="tool">
|
|
@@ -1898,7 +1987,9 @@
|
|
<button
|
|
<button
|
|
class="info_btn"
|
|
class="info_btn"
|
|
v-if="steps == 1"
|
|
v-if="steps == 1"
|
|
- @click="goTo('/course?userid=' + userid + '&oid=' + oid + '&org=' + org)"
|
|
|
|
|
|
+ @click="
|
|
|
|
+ goTo('/course?userid=' + userid + '&oid=' + oid + '&org=' + org)
|
|
|
|
+ "
|
|
>
|
|
>
|
|
返回项目
|
|
返回项目
|
|
</button>
|
|
</button>
|
|
@@ -2492,6 +2583,36 @@
|
|
<el-button type="primary" @click="addAnswer">确 定</el-button>
|
|
<el-button type="primary" @click="addAnswer">确 定</el-button>
|
|
</span>
|
|
</span>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <el-dialog
|
|
|
|
+ title="添加问题"
|
|
|
|
+ :visible.sync="dialogVisibleMp3"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ width="500px"
|
|
|
|
+ :before-close="handleClose"
|
|
|
|
+ class="dialog_diy"
|
|
|
|
+ >
|
|
|
|
+ <div>
|
|
|
|
+ <div
|
|
|
|
+ class="a_add_title"
|
|
|
|
+ style="
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ align-items: flex-start;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <div style="margin-bottom: 20px; font-size: 20px">问题:</div>
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="answerQ"
|
|
|
|
+ placeholder="请输入您想要回答的问题"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogVisibleMp3 = false">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="addMp3Answer">确 定</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
<el-dialog
|
|
<el-dialog
|
|
title="上传图片"
|
|
title="上传图片"
|
|
:visible.sync="choosePicVisible"
|
|
:visible.sync="choosePicVisible"
|
|
@@ -2587,6 +2708,182 @@
|
|
<el-button type="primary">确 定</el-button>
|
|
<el-button type="primary">确 定</el-button>
|
|
</span>
|
|
</span>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <el-dialog
|
|
|
|
+ title="选择填空"
|
|
|
|
+ :visible.sync="dialogVisibleSelect"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ width="800px"
|
|
|
|
+ :before-close="handleClose"
|
|
|
|
+ class="dialog_diy dialog_diy3"
|
|
|
|
+ >
|
|
|
|
+ <div v-if="selectJson">
|
|
|
|
+ <div class="select_box1" v-if="selectSteps == 1">
|
|
|
|
+ <div class="select_box1_img">
|
|
|
|
+ <div class="select_box1_title">
|
|
|
|
+ <span>上传题目图片</span
|
|
|
|
+ ><span>提示:请将题目以图片的方式上传</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="select_box1_add_img">
|
|
|
|
+ <div
|
|
|
|
+ class="uploadFm"
|
|
|
|
+ @click="addImg($event)"
|
|
|
|
+ v-if="!selectJson.url"
|
|
|
|
+ >
|
|
|
|
+ <input
|
|
|
|
+ type="file"
|
|
|
|
+ accept="image/*"
|
|
|
|
+ style="display: none"
|
|
|
|
+ @change="beforeUploadSelect"
|
|
|
|
+ />
|
|
|
|
+ <img src="../../assets/icon/addPoster.png" alt="" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="isSysPic" v-else>
|
|
|
|
+ <img :src="selectJson.url" alt="" />
|
|
|
|
+ <div class="deletePic" @click="deleteSelectPic">
|
|
|
|
+ <img src="../../assets/icon/delete.png" alt="" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="select_box1_select">
|
|
|
|
+ <div class="select_box1_title">
|
|
|
|
+ <span>添加选项</span><span>提示:请输入题目选项</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="select_box1_select_box">
|
|
|
|
+ <el-input
|
|
|
|
+ v-for="(item2, checkIndex) in selectJson.select"
|
|
|
|
+ :key="checkIndex"
|
|
|
|
+ v-model="selectJson.select[checkIndex]"
|
|
|
|
+ placeholder="请输入选项..."
|
|
|
|
+ style="width: 150px; margin: 10px 10px 0 0"
|
|
|
|
+ ></el-input>
|
|
|
|
+ <div class="select_box1_select_box_add">
|
|
|
|
+ <el-button
|
|
|
|
+ style="margin: 10px 0px 0 0"
|
|
|
|
+ type="primary"
|
|
|
|
+ size="small"
|
|
|
|
+ @click="addSelectList(selectJson)"
|
|
|
|
+ >添加</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ size="small"
|
|
|
|
+ style="margin: 10px 0 0 0"
|
|
|
|
+ @click="deleteSelectList(selectJson)"
|
|
|
|
+ v-if="selectJson.select && selectJson.select.length > 0"
|
|
|
|
+ >删除</el-button
|
|
|
|
+ >
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="selectSteps == 2">
|
|
|
|
+ <div class="select_box2">
|
|
|
|
+ <div class="select_box2_title">设置答案</div>
|
|
|
|
+ <div class="select_box2_box">
|
|
|
|
+ <div class="select_box2_img">
|
|
|
|
+ <img :src="selectJson.url" alt="" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="select_box2_answer">
|
|
|
|
+ <div
|
|
|
|
+ class="select_box2_answer_box"
|
|
|
|
+ v-for="(item2, checkIndex) in selectJson.select"
|
|
|
|
+ :key="checkIndex"
|
|
|
|
+ >
|
|
|
|
+ <span>{{ checkIndex + 1 }}、</span>
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="selectJson.answer[checkIndex]"
|
|
|
|
+ placeholder="请选择正确答案"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="(e, eIndex) in selectJson.select"
|
|
|
|
+ :key="eIndex"
|
|
|
|
+ :label="e"
|
|
|
|
+ :value="eIndex"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ @click="nextSelectSteps()"
|
|
|
|
+ v-if="selectSteps == 1"
|
|
|
|
+ >下一步</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button @click="selectSteps--" v-if="selectSteps == 2"
|
|
|
|
+ >上一步</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ @click="addSelectAnswer"
|
|
|
|
+ v-if="selectSteps == 2"
|
|
|
|
+ >确 定</el-button
|
|
|
|
+ >
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <el-dialog
|
|
|
|
+ title="添加评价"
|
|
|
|
+ :visible.sync="dialogVisibleRate"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ width="650px"
|
|
|
|
+ :before-close="handleClose"
|
|
|
|
+ class="dialog_diy"
|
|
|
|
+ >
|
|
|
|
+ <div style="background: #fff;padding: 15px;box-sizing: border-box;">
|
|
|
|
+ <div style="font-size: 18px; color: #a9a9a9">请输入学生评价指标:</div>
|
|
|
|
+ <div class="pjCss" style="width: 100%">
|
|
|
|
+ <div
|
|
|
|
+ v-if="rateJson.length"
|
|
|
|
+ class="elist_input"
|
|
|
|
+ style="height: 360px; overflow: auto"
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ v-for="(eItem, eIndex) in rateJson"
|
|
|
|
+ :key="eIndex"
|
|
|
|
+ class="elist_input_box"
|
|
|
|
+ >
|
|
|
|
+ <span style="min-width: 100px; text-align: right"
|
|
|
|
+ >学生评价指标:</span
|
|
|
|
+ >
|
|
|
|
+ <input
|
|
|
|
+ type="input"
|
|
|
|
+ v-model="eItem.value"
|
|
|
|
+ placeholder="填写评价名称"
|
|
|
|
+ />
|
|
|
|
+ <div class="remove" @click="deletRateList(eIndex)"></div>
|
|
|
|
+ <div style="width: 100%;display: flex;">
|
|
|
|
+ <span style="min-width: 100px; text-align: right">评星等级:</span>
|
|
|
|
+ <el-rate v-model="eItem.score" disabled></el-rate>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="elist_inptu_text" style="align-items: flex-start">
|
|
|
|
+ <span style="min-width: 100px; text-align: right">描述:</span>
|
|
|
|
+ <textarea
|
|
|
|
+ class="rate_textarea"
|
|
|
|
+ :rows="3"
|
|
|
|
+ v-model="eItem.detail"
|
|
|
|
+ placeholder="填写评价描述"
|
|
|
|
+ ></textarea>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="addToolFun" @click="addRateList()">
|
|
|
|
+ <div class="addToolImg">
|
|
|
|
+ <img src="../../assets/icon/add.png" alt />
|
|
|
|
+ </div>
|
|
|
|
+ <div>添加</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogVisibleRate = false">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="addRateAnswer">确 定</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -2644,6 +2941,9 @@ export default {
|
|
dialogVisible9: false,
|
|
dialogVisible9: false,
|
|
dialogVisibleClass: false,
|
|
dialogVisibleClass: false,
|
|
dialogVisibleMember: false,
|
|
dialogVisibleMember: false,
|
|
|
|
+ dialogVisibleMp3: false,
|
|
|
|
+ dialogVisibleSelect: false,
|
|
|
|
+ dialogVisibleRate: false,
|
|
publicTool: 0,
|
|
publicTool: 0,
|
|
searchPeople: "",
|
|
searchPeople: "",
|
|
searchTN: "",
|
|
searchTN: "",
|
|
@@ -2676,6 +2976,8 @@ export default {
|
|
askTitle: "",
|
|
askTitle: "",
|
|
askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
},
|
|
},
|
|
|
|
+ selectJson: {},
|
|
|
|
+ rateJson: [],
|
|
unitJson2: [],
|
|
unitJson2: [],
|
|
unitJson: [
|
|
unitJson: [
|
|
{
|
|
{
|
|
@@ -2751,6 +3053,7 @@ export default {
|
|
checkId: "",
|
|
checkId: "",
|
|
isDelete: 1,
|
|
isDelete: 1,
|
|
addindex: 0,
|
|
addindex: 0,
|
|
|
|
+ selectSteps: 1,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -2913,7 +3216,14 @@ export default {
|
|
},
|
|
},
|
|
lastSteps() {
|
|
lastSteps() {
|
|
if (this.steps == 4) {
|
|
if (this.steps == 4) {
|
|
- this.goTo("/course?userid=" + this.userid + "&oid=" + this.oid + '&org=' + this.org);
|
|
|
|
|
|
+ this.goTo(
|
|
|
|
+ "/course?userid=" +
|
|
|
|
+ this.userid +
|
|
|
|
+ "&oid=" +
|
|
|
|
+ this.oid +
|
|
|
|
+ "&org=" +
|
|
|
|
+ this.org
|
|
|
|
+ );
|
|
} else {
|
|
} else {
|
|
if (this.cidType == 0) {
|
|
if (this.cidType == 0) {
|
|
this.steps--;
|
|
this.steps--;
|
|
@@ -3304,6 +3614,53 @@ export default {
|
|
});
|
|
});
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ beforeUploadSelect(event, type) {
|
|
|
|
+ const loading = this.openLoading();
|
|
|
|
+ var file = event.target.files[0];
|
|
|
|
+ var credentials = {
|
|
|
|
+ accessKeyId: "AKIATLPEDU37QV5CHLMH",
|
|
|
|
+ secretAccessKey: "Q2SQw37HfolS7yeaR1Ndpy9Jl4E2YZKUuuy2muZR",
|
|
|
|
+ }; //秘钥形式的登录上传
|
|
|
|
+ window.AWS.config.update(credentials);
|
|
|
|
+ window.AWS.config.region = "cn-northwest-1"; //设置区域
|
|
|
|
+
|
|
|
|
+ var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
|
|
|
|
+ var _this = this;
|
|
|
|
+
|
|
|
|
+ if (file) {
|
|
|
|
+ var params = {
|
|
|
|
+ Key:
|
|
|
|
+ file.name.split(".")[0] +
|
|
|
|
+ new Date().getTime() +
|
|
|
|
+ "." +
|
|
|
|
+ file.name.split(".")[file.name.split(".").length - 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) + '%');
|
|
|
|
+ })
|
|
|
|
+ .send(function (err, data) {
|
|
|
|
+ loading.close();
|
|
|
|
+ if (err) {
|
|
|
|
+ _this.$message.error("上传失败");
|
|
|
|
+ } else {
|
|
|
|
+ _this.selectJson.url = data.Location;
|
|
|
|
+ console.log(data.Location);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
chooseSysPic(p) {
|
|
chooseSysPic(p) {
|
|
this.cover.push({
|
|
this.cover.push({
|
|
name: "系统图片.png",
|
|
name: "系统图片.png",
|
|
@@ -4260,6 +4617,47 @@ export default {
|
|
)
|
|
)
|
|
: "";
|
|
: "";
|
|
this.dialogVisible8 = true;
|
|
this.dialogVisible8 = true;
|
|
|
|
+ } else if (i == 40) {
|
|
|
|
+ this.rateJson = this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ itemTaskIndex
|
|
|
|
+ ].toolChoose[toolIndex].rateJson
|
|
|
|
+ ? JSON.parse(
|
|
|
|
+ JSON.stringify(
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ itemTaskIndex
|
|
|
|
+ ].toolChoose[toolIndex].rateJson
|
|
|
|
+ )
|
|
|
|
+ )
|
|
|
|
+ : [{ detail: "", score: 5, value: "" }]; //{detail:"",score:5,value:""}
|
|
|
|
+ this.selectSteps = 1;
|
|
|
|
+ this.dialogVisibleRate = true;
|
|
|
|
+ } else if (i == 42) {
|
|
|
|
+ this.answerQ = this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ itemTaskIndex
|
|
|
|
+ ].toolChoose[toolIndex].answerQ
|
|
|
|
+ ? JSON.parse(
|
|
|
|
+ JSON.stringify(
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ itemTaskIndex
|
|
|
|
+ ].toolChoose[toolIndex].answerQ
|
|
|
|
+ )
|
|
|
|
+ )
|
|
|
|
+ : "";
|
|
|
|
+ this.dialogVisibleMp3 = true;
|
|
|
|
+ } else if (i == 41) {
|
|
|
|
+ this.selectJson = this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ itemTaskIndex
|
|
|
|
+ ].toolChoose[toolIndex].selectJson
|
|
|
|
+ ? JSON.parse(
|
|
|
|
+ JSON.stringify(
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ itemTaskIndex
|
|
|
|
+ ].toolChoose[toolIndex].selectJson
|
|
|
|
+ )
|
|
|
|
+ )
|
|
|
|
+ : { url: "", select: [], answer: [] };
|
|
|
|
+ this.selectSteps = 1;
|
|
|
|
+ this.dialogVisibleSelect = true;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
chapAddTools(i) {
|
|
chapAddTools(i) {
|
|
@@ -4360,6 +4758,43 @@ export default {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (i == 40) {
|
|
|
|
+ if (
|
|
|
|
+ !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].rateJson ||
|
|
|
|
+ !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].rateJson.length
|
|
|
|
+ ) {
|
|
|
|
+ this.openTools(itemTaskIndex, 40, toolIndex);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (i == 41) {
|
|
|
|
+ if (
|
|
|
|
+ !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].selectJson ||
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].selectJson.url == "" ||
|
|
|
|
+ !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].selectJson.select.length ||
|
|
|
|
+ !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].selectJson.answer.length
|
|
|
|
+ ) {
|
|
|
|
+ this.openTools(itemTaskIndex, 41, toolIndex);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (i == 42) {
|
|
|
|
+ if (
|
|
|
|
+ !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].answerQ ||
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
|
+ .toolChoose[toolIndex].answerQ == ""
|
|
|
|
+ ) {
|
|
|
|
+ this.openTools(itemTaskIndex, 42, toolIndex);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (
|
|
if (
|
|
this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
.toolChoose[toolIndex].tool.length > 0
|
|
.toolChoose[toolIndex].tool.length > 0
|
|
@@ -4417,6 +4852,14 @@ export default {
|
|
json.checkList.length--;
|
|
json.checkList.length--;
|
|
json.askItem--;
|
|
json.askItem--;
|
|
},
|
|
},
|
|
|
|
+ addSelectList(json) {
|
|
|
|
+ json.select.length++;
|
|
|
|
+ json.answer.length++;
|
|
|
|
+ },
|
|
|
|
+ deleteSelectList(json) {
|
|
|
|
+ json.select.length--;
|
|
|
|
+ json.answer.length--;
|
|
|
|
+ },
|
|
addAsk() {
|
|
addAsk() {
|
|
if (this.askJson.askTitle === "") {
|
|
if (this.askJson.askTitle === "") {
|
|
this.$message.error("问卷调查标题不能为空!");
|
|
this.$message.error("问卷调查标题不能为空!");
|
|
@@ -4492,6 +4935,82 @@ export default {
|
|
].toolChoose[this.toolIndex].answerQ = this.answerQ;
|
|
].toolChoose[this.toolIndex].answerQ = this.answerQ;
|
|
this.dialogVisible8 = false;
|
|
this.dialogVisible8 = false;
|
|
},
|
|
},
|
|
|
|
+ addMp3Answer() {
|
|
|
|
+ if (this.answerQ == "") {
|
|
|
|
+ this.$message.error("请输入您想要回答的问题");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ this.taskCount
|
|
|
|
+ ].toolChoose[this.toolIndex].answerQ = this.answerQ;
|
|
|
|
+ this.dialogVisibleMp3 = false;
|
|
|
|
+ },
|
|
|
|
+ addRateAnswer() {
|
|
|
|
+ var a = 1;
|
|
|
|
+ for (var i = 0; i < this.rateJson.length; i++) {
|
|
|
|
+ if (this.rateJson[i].value == "") {
|
|
|
|
+ a = 2;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (a == 2) {
|
|
|
|
+ this.$message.error("请把评价信息填写完整");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ this.taskCount
|
|
|
|
+ ].toolChoose[this.toolIndex].rateJson = this.rateJson;
|
|
|
|
+ this.dialogVisibleRate = false;
|
|
|
|
+ },
|
|
|
|
+ addSelectAnswer() {
|
|
|
|
+ if (this.selectJson.url == "") {
|
|
|
|
+ this.$message.error("请上传题目");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (!this.selectJson.select.length) {
|
|
|
|
+ this.$message.error("请添加选项");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (!this.selectJson.answer.length) {
|
|
|
|
+ this.$message.error("请设置答案");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ var a = 1;
|
|
|
|
+ for (var i = 0; i < this.selectJson.answer.length; i++) {
|
|
|
|
+ if (!this.selectJson.answer[i] && this.selectJson.answer[i] != 0) {
|
|
|
|
+ a = 2;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (a == 2) {
|
|
|
|
+ this.$message.error("请设置答案");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
|
+ this.taskCount
|
|
|
|
+ ].toolChoose[this.toolIndex].selectJson = this.selectJson;
|
|
|
|
+ this.dialogVisibleSelect = false;
|
|
|
|
+ },
|
|
|
|
+ nextSelectSteps() {
|
|
|
|
+ if (this.selectJson.url == "") {
|
|
|
|
+ this.$message.error("请上传题目");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (!this.selectJson.select.length) {
|
|
|
|
+ this.$message.error("请添加选项");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ var a = 1;
|
|
|
|
+ for (var i = 0; i < this.selectJson.select.length; i++) {
|
|
|
|
+ if (!this.selectJson.select[i]) {
|
|
|
|
+ a = 2;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (a == 2) {
|
|
|
|
+ this.$message.error("添加的选项不能为空");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.selectSteps++;
|
|
|
|
+ },
|
|
selectCourseDetail() {
|
|
selectCourseDetail() {
|
|
if (this.cid == "" || this.cid == undefined) {
|
|
if (this.cid == "" || this.cid == undefined) {
|
|
console.log("这是新增项目");
|
|
console.log("这是新增项目");
|
|
@@ -4958,9 +5477,18 @@ export default {
|
|
this.cover = [];
|
|
this.cover = [];
|
|
this.isSysPic = false;
|
|
this.isSysPic = false;
|
|
},
|
|
},
|
|
|
|
+ deleteSelectPic() {
|
|
|
|
+ this.selectJson.url = "";
|
|
|
|
+ },
|
|
setEListStar() {
|
|
setEListStar() {
|
|
this.$forceUpdate();
|
|
this.$forceUpdate();
|
|
},
|
|
},
|
|
|
|
+ deletRateList(i) {
|
|
|
|
+ this.rateJson.splice(i, 1);
|
|
|
|
+ },
|
|
|
|
+ addRateList() {
|
|
|
|
+ this.rateJson.push({ detail: "", score: 5, value: "" });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
beforeDestroy() {
|
|
beforeDestroy() {
|
|
clearTimeout(this.timer);
|
|
clearTimeout(this.timer);
|
|
@@ -5019,6 +5547,15 @@ export default {
|
|
.dialog_diy >>> .el-dialog__footer {
|
|
.dialog_diy >>> .el-dialog__footer {
|
|
background: #fafafa;
|
|
background: #fafafa;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+.dialog_diy3 >>> .el-dialog__body,
|
|
|
|
+.dialog_diy3 >>> .el-dialog__footer {
|
|
|
|
+ background: #eee !important;
|
|
|
|
+}
|
|
|
|
+.dialog_diy3 >>> .el-dialog__body {
|
|
|
|
+ padding: 20px 20px;
|
|
|
|
+}
|
|
|
|
+
|
|
.left {
|
|
.left {
|
|
border-right: 1px solid rgb(60, 94, 143);
|
|
border-right: 1px solid rgb(60, 94, 143);
|
|
display: flex;
|
|
display: flex;
|
|
@@ -6803,4 +7340,90 @@ ol {
|
|
right: 0;
|
|
right: 0;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
+.select_box1 {
|
|
|
|
+}
|
|
|
|
+.select_box1_img {
|
|
|
|
+ background: #fff;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ padding: 15px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+}
|
|
|
|
+.select_box1_title {
|
|
|
|
+ padding: 0 0 15px 0;
|
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
+}
|
|
|
|
+.select_box1_title span:nth-child(1) {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ margin-right: 20px;
|
|
|
|
+ color: #000;
|
|
|
|
+}
|
|
|
|
+.select_box1_title span:nth-child(2) {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: rgb(112, 112, 112);
|
|
|
|
+}
|
|
|
|
+.select_box1_add_img {
|
|
|
|
+}
|
|
|
|
+.select_box1_select {
|
|
|
|
+ background: #fff;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ padding: 15px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+}
|
|
|
|
+.select_box2 {
|
|
|
|
+}
|
|
|
|
+.select_box2_title {
|
|
|
|
+ background: #fff;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ padding: 5px 10px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+}
|
|
|
|
+.select_box2_box {
|
|
|
|
+ display: flex;
|
|
|
|
+ height: 500px;
|
|
|
|
+}
|
|
|
|
+.select_box2_img {
|
|
|
|
+ width: calc(100% - 310px);
|
|
|
|
+ height: 100%;
|
|
|
|
+ overflow: auto;
|
|
|
|
+ background: #fff;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+}
|
|
|
|
+.select_box2_img img {
|
|
|
|
+ width: 100%;
|
|
|
|
+}
|
|
|
|
+.select_box2_answer {
|
|
|
|
+ background: #fff;
|
|
|
|
+ margin-left: 10px;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ width: 300px;
|
|
|
|
+ overflow: auto;
|
|
|
|
+ height: 100%;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ align-items: center;
|
|
|
|
+ padding-top: 20px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+}
|
|
|
|
+.select_box2_answer_box {
|
|
|
|
+ margin: 0 0 10px 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.rate_textarea {
|
|
|
|
+ font: inherit;
|
|
|
|
+ color: currentColor;
|
|
|
|
+ width: 100%;
|
|
|
|
+ padding: 8px 14px;
|
|
|
|
+ display: block;
|
|
|
|
+ min-width: 0;
|
|
|
|
+ outline: none;
|
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.23);
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ background: #fff;
|
|
|
|
+ margin: 0 20px 0 0;
|
|
|
|
+ resize: none;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|