SanHQin 10 månader sedan
förälder
incheckning
04182fa3bd

+ 3 - 0
src/assets/icon/classroomObservation/delFile.svg

@@ -0,0 +1,3 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6.97031 6.43595L4.9125 4.30469C4.75 4.13751 4.48437 4.13438 4.31718 4.29688C4.23593 4.37344 4.18906 4.47969 4.1875 4.59219C4.18437 4.70469 4.22812 4.81251 4.30468 4.8922L6.3625 7.02345L4.23125 9.08126C4.06406 9.24376 4.06093 9.50938 4.22343 9.67657C4.29999 9.75782 4.40625 9.8047 4.51875 9.80626C4.63125 9.80938 4.73906 9.76563 4.81875 9.68907L6.95 7.63126L9.00781 9.76251C9.17031 9.9297 9.43593 9.93282 9.60312 9.77032C9.68437 9.69376 9.73125 9.58751 9.73281 9.47501C9.73593 9.36251 9.69218 9.25469 9.61562 9.17501L7.55781 7.04376L9.68906 4.98595C9.85625 4.82345 9.85937 4.55782 9.69687 4.39063C9.62031 4.30938 9.51406 4.26251 9.40156 4.26095C9.28906 4.25782 9.18124 4.30157 9.10156 4.37813L6.97031 6.43595ZM2.44375 11.3938C0.0109327 8.87345 0.0812452 4.85938 2.6 2.42501C5.12031 -0.00780511 9.13437 0.0625074 11.5687 2.58126C14.0016 5.10157 13.9328 9.11563 11.4125 11.55C8.89218 13.9828 4.87812 13.9141 2.44375 11.3938Z" fill="#FFBBBB"/>
+</svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 6 - 0
src/assets/icon/classroomObservation/videoFile.svg


+ 1 - 0
src/components/pages/classroomObservation/components/analysis.vue

@@ -84,6 +84,7 @@ export default {
 	},
 	methods: {
 		addTemplate() {
+			if(!this.tid)return this.$message.error("请选择课程")
 			this.$emit("updateMessage", this.type);
 		},
 		changeShowItem(newValue) {

+ 44 - 18
src/components/pages/classroomObservation/components/baseMessage.vue

@@ -125,7 +125,7 @@
 										fit="cover"
 										style="width: 100%;"
 									></el-image>
-									<span @click.stop="delImage(key)">x</span>
+									<span @click.stop="delImage(key)"></span>
 									<!-- <img class="itemUrl" :src="value[0].url" alt="" /> -->
 								</div>
 								<!-- 图片区域 -->
@@ -171,7 +171,7 @@
 								<div
 									class="m-m-fi-imageItem"
 									style="max-width:33%;"
-									v-if="imageList.videoList.length"
+									v-if="!imageList.videoList.length==0"
 									v-for="(item, index) in imageList.videoList?imageList.videoList:[]"
 									:key="index"
 									@click.stop="previewVideo(item.url)"
@@ -179,10 +179,10 @@
 								<!-- <div>{{ item }}</div> -->
 									<el-image
 										class="itemUrl"
-										:src="require('../../../../assets/icon/classroomObservation/isVideo.png')"
+										:src="require('../../../../assets/icon/classroomObservation/videoFile.svg')"
 										fit="cover"
 									></el-image>
-									<span @click.stop="delVideo('videoList')">x</span>
+									<span @click.stop="delVideo('videoList')"></span>
 								</div>
 							<!-- <el-progress v-if="progressData.uploadVideo && !imageList.videoList.length" class="m_m_fi_progress" :percentage="progressData.value"></el-progress> -->
 							<div
@@ -209,9 +209,14 @@
 
 							<div
 								class="m-m-fi-imageItem"
-								style="max-width:33%;"
+								style="max-width:33%;border-radius: 8px;overflow: hidden;"
 								v-if="progressData.uploadVideo && !imageList.videoList.length""
 							>
+							<el-image
+								class="itemUrl"
+								:src="require('../../../../assets/icon/classroomObservation/videoFile.svg')"
+								fit="cover"
+							></el-image>
 							<div class="m_m_fi_progress">
 									<div>{{ progressData.value }}%</div>
 									<span>上传中...</span>
@@ -243,6 +248,10 @@ export default {
 				return {};
 			},
 		},
+		tid:{
+			type:String,
+			default:"",
+		},
 		imageList: {
 			type: Object,
 			default: () => {
@@ -303,9 +312,15 @@ export default {
 			}
 		};
 	},
+	watch:{
+		imageList(){
+			this.$forceUpdate();
+		}
+	},
 	methods: {
 		// 添加图片
 		addImage() {
+			if(!this.tid)return this.$message.error("请选择课程")
 			// 上传录音
 			let input = document.createElement("input");
 			input.type = "file";
@@ -373,6 +388,7 @@ export default {
 		},
 		// 添加视频
 		addVideo(){
+			if(!this.tid)return this.$message.error("请选择课程")
 			let input = document.createElement("input");
 			input.type = "file";
 			input.accept = "video/*";
@@ -453,6 +469,8 @@ export default {
 				type: "warning",
 			}).then(() => {
 				this.$emit("delImage", key);
+			}).catch(e=>{
+				console.log("取消删除")
 			});
 		},
 		changeShowMain(newValue) {
@@ -466,6 +484,7 @@ export default {
 			// this.$message.info(`预览:${url}`)
 		},
 		changeData() {
+			if(!this.tid)return this.$message.error("请选择课程")
 			this.$emit("saveData");
 		},
 	},
@@ -634,21 +653,26 @@ export default {
 }
 
 .m-m-fi-imageItem > span {
-	width: 30px;
-	height: 30px;
+	width: 20px;
+	height: 20px;
 	position: absolute;
-	right: 0;
-	top: 0;
-	display: flex;
+	right: 4px;
+	top: 4px;
+	background-image: url("../../../../assets/icon/classroomObservation/delFile.svg");
+	background-repeat: no-repeat;
+	background-size: 100% 100%;
+	display: none;
+	/* display: flex;
 	justify-content: flex-end;
 	align-items: flex-start;
 	box-sizing: border-box;
 	padding: 2px 10px;
-	color: white;
-	background-color: #e60012;
+	color: #666666;
+	font-size: 18px;
+	background-color: #FFBBBB;
 	cursor: pointer;
-	border-radius: 0 0 0 100%;
-	display: none;
+	border-radius: 100%;
+	display: none; */
 }
 
 .m-m-fi-imageItem:hover > span {
@@ -700,22 +724,24 @@ export default {
 .m_m_fi_progress{
 	width: 100%;
 	height: 100%;
-	position: relative;
+	position: absolute;
 	display: flex;
 	flex-direction: column;
 	justify-content: center;
 	align-items: center;
-	color:#3B77CC;
 	/* 加载 */
 	cursor:wait !important;
+	background-color: #00000099;
 }
 
 .m_m_fi_progress>div:nth-child(1){
 	font-size: 20px;
+	color: white;
 }
 
-.m_m_fi_progress>span:nth-child(1){
-	font-size: 14px;
+.m_m_fi_progress>span:nth-child(2){
+	font-size: 16px;
+	color: #FFFFFF8C;
 }
 
 .m_m_fi_p_bar{

+ 78 - 5
src/components/pages/classroomObservation/components/chatArea.vue

@@ -364,6 +364,16 @@
 			ref="iiframe"
 			v-show="false"
 		></iframe>
+		<div class="chatAreaLoading" v-if="progressData.uploadLoading">
+			<div class="cal_box">
+				<div>
+					<img :src="require('../../../../assets/loading.gif')" alt="">
+					<span>上传中,请稍等...</span>
+				</div>
+				<el-progress style="width:100%;color: #fff;" :text-inside="true" :stroke-width="24" :percentage="progressData.value"></el-progress>
+			</div>
+			<!-- <el-progress style="width:80%" :text-inside="true" :stroke-width="24" :percentage="progressData.value"></el-progress> -->
+		</div>
 	</div>
 </template>
 
@@ -508,6 +518,10 @@ export default {
 			},
 			roleList: [],
 			publicRoleList: [],
+			progressData:{
+				uploadLoading:false,
+				value:0,
+			},
 			audioUrl: "",
 			editorBarData: {
 				type: "0", //0---文字   1-文件
@@ -582,6 +596,7 @@ export default {
 		},
 		// 上传录音
 		uploadRecording() {
+			if(!this.tid)return this.$message.error("请选择课程")
 			if (this.uploadFileLoading) return this.$message.info("请稍等...");
 			let input = document.createElement("input");
 			input.type = "file";
@@ -646,6 +661,7 @@ export default {
 			}
 		},
 		recordedStart() {
+			if(!this.tid)return this.$message.error("请选择课程")
 			if (this.uploadFileLoading) return this.$message.info("请稍等...");
 			// 开始录音
 			if (this.audioUrl) {
@@ -1234,7 +1250,9 @@ export default {
 			var _this = this;
 
 			if (file) {
-				this.loading = true;
+				// this.loading = true;
+				this.progressData.uploadLoading = true;
+				this.progressData.value = 0;
 				var params = {
 					Key:
 						file.name.split(".")[0] +
@@ -1255,6 +1273,7 @@ export default {
 					.upload(params, options)
 					.on("httpUploadProgress", function (evt) {
 						//这里可以写进度条
+						_this.progressData.value = parseInt((evt.loaded * 100) / evt.total)
 						// console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
 					})
 					.send(function (err, data) {
@@ -1262,6 +1281,7 @@ export default {
 							_this.$message.error("上传失败");
 							_this.uploadFileLoading = false;
 							_this.loading = false;
+							_this.progressData.uploadLoading = false;
 						} else {
 							// 判断是不是音频文件
 							const audioRegex = /\.(mp3|wav|ogg|flac|m4a)$/i;
@@ -1283,6 +1303,7 @@ export default {
 								_this.wavFileGetText(file);
 								_this.$emit("changeAudioUrl", data);
 								_this.loading = false;
+								_this.progressData.uploadLoading = false;
 								return;
 							}
 							_this.ajax
@@ -1374,6 +1395,7 @@ export default {
 											// console.log("pdf、xlsx、doc、docx文件处理");
 										}
 										_this.loading = false;
+										_this.progressData.uploadLoading = false;
 										if (!_this.fileIdId) return;
 										let pram2 = {
 											id: _this.fileIdId,
@@ -1396,6 +1418,7 @@ export default {
 								})
 								.catch((e) => {
 									_this.uploadFileLoading = false;
+									_this.progressData.uploadLoading = false;
 									console.log(e);
 									_this.$message.error("获取fileId失败");
 								});
@@ -1424,7 +1447,8 @@ export default {
 					}
 				})
 				.catch((e) => {
-					this.$message.error("获取角色列表失败");
+					console.log(e)
+					// this.$message.error("获取角色列表失败");
 					this.roleList = [];
 				});
 		},
@@ -1447,7 +1471,8 @@ export default {
 				})
 				.catch((e) => {
 					this.publicRoleList = [];
-					console.log("获取公共角色失败", e);
+					console.log(e)
+					// console.log("获取公共角色失败", e);
 				});
 		},
 		// 选择了@的角色
@@ -1493,6 +1518,7 @@ export default {
 			}
 		},
 		getData() {
+			if(!this.tid)return;
 			this.loading = true;
 			this.getRoleList();
 			this.getPublicRoleList();
@@ -1503,6 +1529,7 @@ export default {
 		},
 		// 保存转录文稿和原文速览
 		saveEditorBar(flag = false) {
+			if(!this.tid)return this.$message.error("请选择课程")
 			if (
 				this.editorBarData.type == "0" &&
 				flag &&
@@ -1518,7 +1545,7 @@ export default {
 				blob.name = `${this.tid}-classroomObservation.txt`;
 				return this.uploadFile(blob,false);
 			} else {
-				this.loading = true;
+				// this.loading = true;
 				// let div = document.createElement("div");
 				// div.innerHTML = this.editorBarData.content;
 				// return this.loading = false;
@@ -1529,6 +1556,7 @@ export default {
 						editorBarData: this.editorBarData,
 					},
 					() => {
+						this.progressData.uploadLoading = false;
 						this.loading = false;
 					}
 				);
@@ -1546,6 +1574,7 @@ export default {
 		// 获取对话记录
 		getChatList() {
 			return new Promise((resolve, reject) => {
+				if(!this.tid)return;
 				if (this.chatLoading) return this.$message.info("请稍等...");
 				this.chatList = [];
 				if (!this.tid) return setTimeout(() => this.getChatList(), 100);
@@ -1639,6 +1668,7 @@ export default {
 	/* justify-content: center; */
 	box-sizing: border-box;
 	padding: 20px;
+	position: relative;
 }
 .audio_class {
 	/* width: 100% !important; */
@@ -1670,7 +1700,7 @@ export default {
 	display: flex;
 	/* align-items: center; */
 	border-bottom: 1px #ccc solid;
-	z-index: 99;
+	/* z-index: 99; */
 }
 .titBar > .titBarLeft {
 	width: 40%;
@@ -2138,4 +2168,47 @@ export default {
 	max-height: calc(100% - 42px);
 	overflow: auto;
 }
+
+.chatAreaLoading{
+	position: absolute;
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	background-color: rgba(255, 255, 255, 0.7);
+	display: flex;
+	justify-content: center;
+	align-items: center;
+}
+
+.cal_box{
+	width: 300px;
+	height: 150px;
+	background-color: white;
+	border-radius: 10px;
+	box-shadow: 0 0 4px 4px #fff;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	align-items: center;
+	box-sizing: border-box;
+	padding: 20px;
+}
+
+.cal_box>div:nth-child(1){
+	margin-bottom: 10px;
+	font-size: 18px;
+	display: flex;
+	align-items: center;
+}
+
+.cal_box>div:nth-child(1)>img{
+	width: 30px;
+	height: 30px;
+	margin-right: 10px;
+}
+
+.cal_box>>>.el-progress-bar__innerText{
+	color: #fff !important;
+}
 </style>

+ 16 - 3
src/components/pages/classroomObservation/components/messageArea.vue

@@ -16,12 +16,13 @@
 				使用分析模板
 			</div>
 			<div class="m-o-btn" @click.stop="saveAsTemplate()">另存为模板</div>
-			<div class="m-o-btn" :disabled="bmData.jsonData?false:true" @click="$refs.bindingFormDialogRef.open(bmData.jsonData)">绑定表单</div>
+			<div class="m-o-btn" :disabled="bmData.jsonData?false:true" @click="openBindForm(bmData)">绑定表单</div>
 		</div>
 		<div class="ma-main">
 			<baseMessage
 				:data="bmData.jsonData"
 				:imageList="imageList.jsonData"
+				:tid="tid"
 				@saveData="saveBaseData"
 				@saveImage="saveBaseImage"
 				@saveVideo="saveBaseVideo"
@@ -338,6 +339,7 @@ export default {
 					title: "科学教育目标分析",
 					brief: "分析四类科学教育目标的情况",
 					value: "d6cd48ab-0125-11ef-aaca-12e77c4cb76b",
+					//a6c0b92b-06de-11ef-aaca-12e77c4cb76b   b13a98de-0125-11ef-aaca-12e77c4cb76b  b204de39-2286-11ef-aaca-12e77c4cb76b   6c344985-2287-11ef-aaca-12e77c4cb76b  efb24c07-2288-11ef-aaca-12e77c4cb76b  1402d19e-228d-11ef-aaca-12e77c4cb76b   183d3fdd-228d-11ef-aaca-12e77c4cb76b
 					subject:"科学",
 					type: 1,
 					sum:513
@@ -361,7 +363,7 @@ export default {
 				{
 					title:"L-PST模型",
 					brief: "使用L-PST框架分析科学课堂",
-					value: "e649112e-0150-11ef-aaca-12e77c4cb76b",
+					value: "e649112e-0150-11ef-aaca-12e77c4cb76b",//e649112e-0150-11ef-aaca-12e77c4cb76b  7daa4c3f-016f-11ef-aaca-12e77c4cb76b
 					subject:"科学",
 					type: 1,
 					sum:421
@@ -375,7 +377,7 @@ export default {
 				{
 					title: "RTOP课堂观察",
 					brief: "使用RTOP框架分析科学课堂",
-					value: "68265b18-0151-11ef-aaca-12e77c4cb76b",
+					value: "68265b18-0151-11ef-aaca-12e77c4cb76b",//a7107221-f7f5-11ee-aaca-12e77c4cb76b   bc254ab9-0142-11ef-aaca-12e77c4cb76b    c912ece9-0148-11ef-aaca-12e77c4cb76b  68265b18-0151-11ef-aaca-12e77c4cb76b  2ace7ff6-0154-11ef-aaca-12e77c4cb76b
 					subject:"科学",
 					type: 1,
 					sum:527
@@ -672,6 +674,9 @@ export default {
 					// 图片
 					let _imageList = _data.find(i=>i.tIndex==1);
 					_imageList.jsonData = JSON.parse(_imageList.jsonData);
+					if(!_imageList.jsonData.videoList){
+						_imageList.jsonData.videoList = [];
+					}
 					//通用分析
 					let currency = [];
 					for (let i = 2; i < _data.length; i++) {
@@ -866,6 +871,7 @@ export default {
 			this.bmData.json_data = JSON.stringify(this.bmData.jsonData);
 			this.saveData(this.bmData).then(res=>{
 				this.$emit("changeOptionData",this.tid,{label:this.bmData.jsonData.courseName})
+				this.$forceUpdate();
 			})
 		},
 		saveBaseImage(newImage){
@@ -881,6 +887,7 @@ export default {
 			}
 			this.imageList.json_data = JSON.stringify(this.imageList.jsonData);
 			this.saveData(this.imageList);
+			this.$forceUpdate();
 		},
 		saveBaseVideo(newVideo){
 			if((this.imageList.jsonData.videoList && this.imageList.jsonData.videoList.length==0) || !this.imageList.jsonData.videoList){
@@ -895,9 +902,11 @@ export default {
 		},
 		delBaseImageList(key){
 			this.imageList.jsonData[key] = [];
+			this.$forceUpdate();
 			this.imageList.json_data = JSON.stringify(this.imageList.jsonData);
 			this.saveData(this.imageList).then(res=>{
 				this.$message.success("删除成功")
+				this.$forceUpdate();
 			});
 		},
 		// 切换录音文件
@@ -986,6 +995,10 @@ export default {
 				fn?fn():'';
 			})
 		},
+		openBindForm(_data){
+			if(!this.tid)return this.$message.error("请选择课程")
+			this.$refs.bindingFormDialogRef.open(_data.jsonData)
+		}
 	},
 };
 </script>

+ 4 - 5
src/components/pages/classroomObservation/index.vue

@@ -21,7 +21,7 @@
 					<el-select
 						class="co_h2_l_t_select"
 						v-model="tid"
-						placeholder="请选择"
+						placeholder="查看历史课程"
 						@change="changeTid"
 					>
 						<el-option
@@ -179,7 +179,6 @@ export default {
 	},
 	data() {
 		return {
-			title: "12月19日会议录音",
 			loading: false,
 			dialogVisibleShare: false,
 			createTime:new Date().toLocaleString().replaceAll('/','-'),
@@ -388,9 +387,9 @@ export default {
 							(i) => i.label != "" && i.tId != ""
 						);
 						this.optionData = _optionData;
-						if (this.optionData.length > 0) {
-							if (!this.tid) this.tid = this.optionData[0].value;
-						}
+						// if (this.optionData.length > 0) {
+						// 	if (!this.tid) this.tid = this.optionData[0].value;
+						// }
 						this.loading = false;
 						resolve();
 					});

+ 17 - 2
src/components/pages/test/check/index.vue

@@ -96,6 +96,7 @@
                 </el-tooltip>
                 <span>{{ item.title }}</span>
 								<el-button v-if="item.type == 5 && item.array.length>0" class="title_downBtn" type="primary" size="small" @click.stop="downloadFileType5(item.array,item.title)">批量下载附件</el-button>
+								<div v-if="item.type==7" style="right:0;position: absolute;">平均分:{{ getAverageScore(index) }}</div>
               </div>
               <div class="detail" v-if="item.detail">{{ item.detail }}</div>
               <div class="content1" v-if="item.type == 1">
@@ -295,7 +296,7 @@
                   </div>
                 </template>
               </el-table-column>
-              <el-table-column label="操作" width="300px" fixed="right">
+              <el-table-column label="操作" width="300px" fixed="right" v-if="isN!=1">
 
                 <template slot-scope="scope">
                   <el-button @click="getTest(scope.row)" type="primary" size="small">查看</el-button>
@@ -463,6 +464,7 @@ export default {
   },
   watch: {},
   computed: {
+
     // vcWords() {
     //   return function (array) {
     //     let _array = [];
@@ -507,7 +509,20 @@ export default {
           return '日期'
         }
       };
-    }
+    },
+		// 获取评分的平均分
+		getAverageScore(){
+			return (_index)=>{
+				let _result = 0;
+				let _sum = 0;
+				this.worksArray.forEach(i1=>{
+					_result+=i1.array[_index].json.answer2
+					_sum+=1;
+				})
+				_result=(_result/_sum).toFixed(2)
+				return _result;
+			}
+		}
   },
   methods: {
     filterName(value, row, index) {

+ 3 - 2
src/components/pages/testStudent/view/component/topic.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="c_box">
     <div class="c_box_title">{{ title }}</div>
-    <div class="c_box_brief" v-if="brief">{{ brief }}</div>
-    <div class="c_box_score">
+    <div class="c_box_brief" :style="isN==1?'text-align:center':''" v-if="brief">{{ brief }}</div>
+    <div class="c_box_score" v-if="isN!=1">
       <span>总分:{{ score }}</span>
       <span v-if="name" style="margin-left: 10px;">答题人:{{ name }}</span>
       <span style="margin-left: 10px;">总得分:{{ score2 }}</span>
@@ -157,6 +157,7 @@ export default {
       checkArray: [],
       type: 1,
       page: 0,
+			isN: this.$route.query.isN,
       options2: {
         1: "选择题",
         // 2: "问答题",

+ 35 - 11
src/components/pages/testStudent/view/preview.vue

@@ -2,8 +2,8 @@
   <div class="pb_content" style="background: #F0F2F5;" v-loading="loading || isloading">
     <div class="pb_content_body" style="position: relative; margin: 0">
       <div class="right">
-        <div class="courseTop">
-          <div class="stepsNav">
+        <div class="courseTop" :style="`justify-content: ${isN==1?'flex-end':'space-between'};`">
+          <div class="stepsNav" v-if="isN !=1">
             <el-breadcrumb separator-class="el-icon-arrow-right">
               <el-breadcrumb-item :to="{
     path:
@@ -39,12 +39,13 @@
           <div class="r_pub_button_retrun" @click="retrunCourse">返回</div>
         </div>
         <div class="step_box">
-          <div class="edit_top">
+          <div class="edit_top" :style="isN==1?'border-bottom:none;justify-content:space-between;padding:20px':''">
+						<div v-if="isN==1" class="edit_title">提交记录</div>
             <div class="op_btn">
-							<el-button type="primary" size="small" @click="autoFill" v-if="showAutoFillBtn">智能填写</el-button>
+							<el-button type="primary" size="small" @click="autoFill" v-if="(showAutoFillBtn && isN!=1)">智能填写</el-button>
               <el-button type="primary" size="small" @click="refresh" v-if="isReset">刷新</el-button>
-              <el-button type="primary" size="small" @click="reset">重置</el-button>
-              <el-button type="primary" size="small" @click="save" v-if="type != 3">保存</el-button>
+              <el-button :type="isN!=1?'primary':'info'" size="small" @click="reset">重置</el-button>
+              <el-button type="primary" size="small" @click="save" v-if="(type != 3 && isN!=1)">保存</el-button>
               <el-button type="primary" size="small" @click="publish">提交</el-button>
             </div>
           </div>
@@ -466,11 +467,16 @@ export default {
           }
           console.log(this.testType);
           this.look = res.data[0][0].look
-          if (this.type == 3) {
-            this.getTestWorks2()
-          } else {
-            this.getTestWorks()
-          }
+         	if(this.isN!=1){
+						if (this.type == 3) {
+         	   this.getTestWorks2()
+         	 } else {
+         	   this.getTestWorks()
+         	 }
+				 	}else{
+						this.loading = false;
+						this.isReset = true;
+					}
           this.$forceUpdate();
 
         })
@@ -721,4 +727,22 @@ export default {
   margin: 0 auto;
   box-sizing: border-box;
 }
+
+.edit_title{
+	font-size: 22px;
+	margin-left: 30px;
+	position: relative;
+}
+
+.edit_title::after{
+	content: "";
+	width: 5px;
+	height: 100%;
+	background-color: #078DFF;
+	border-radius: 2px;
+	position: absolute;
+	left: -10px;
+	top: 0;
+}
+
 </style>

Vissa filer visades inte eftersom för många filer har ändrats