From c3f6f5906443df62ad462a5d098801afdab91cac Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期二, 06 九月 2022 16:27:57 +0800
Subject: [PATCH] 对接

---
 src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue         |    2 
 src/views/accidentManagementSystem/accidentCasesCop/component/wangEditor/index.vue |  174 ++++++++++++++++++++++++++++++++++
 src/views/accidentManagementSystem/accidentCasesCop/index.vue                      |   82 ++++++++++++++++
 src/views/accidentManagementSystem/accidentCases/index.vue                         |   23 +++-
 4 files changed, 275 insertions(+), 6 deletions(-)

diff --git a/src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue b/src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue
index 3f1ffb1..3bcf4a6 100644
--- a/src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue
+++ b/src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue
@@ -21,7 +21,7 @@
 					</el-form-item>
 				</el-col>
 				<el-col :xs="24" :sm="23" :md="23" :lg="23" :xl="23" class="mb20">
-					<el-form-item label="内容" size="default" prop="caseContent">
+					<el-form-item  label="内容" size="default" prop="caseContent">
 						<Wangeditor v-if="dialogVisible" style="width: 100%" :value="form.caseContent"
 									@change="changeCaseContent" showTop=""></Wangeditor>
 					</el-form-item>
diff --git a/src/views/accidentManagementSystem/accidentCases/index.vue b/src/views/accidentManagementSystem/accidentCases/index.vue
index 8f7d01e..38728a1 100644
--- a/src/views/accidentManagementSystem/accidentCases/index.vue
+++ b/src/views/accidentManagementSystem/accidentCases/index.vue
@@ -37,7 +37,7 @@
 				<el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> -->
 				<el-table-column label="操作" align="center" sortable show-overflow-tooltip>
 					<template #default="scope">
-						<!-- <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> -->
+						<el-button link type="primary" size="small" :icon="View" @click="jump(scope.row.id)">查看</el-button>
 						<el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">编辑</el-button>
 						<el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button>
 					</template>
@@ -64,15 +64,16 @@
 import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus';
 import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue';
 import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem';
+import { useRouter } from 'vue-router';
 export default defineComponent({
-	components: { ElButton, ElInput,DailogCases },
+	components: { ElButton, ElInput, DailogCases },
 	setup() {
 		// 搜索条件
 		const ruleForm = reactive({
 			pageSize: 10,
 			pageIndex: 1,
 			searchParams: {
-				caseTitle: '', 
+				caseTitle: '',
 			},
 		});
 		// 下方导航与表格
@@ -116,7 +117,7 @@
 		// 打开弹窗
 		const Show = ref();
 		const openD = (title: String, id: number) => {
-			Show.value.openDailog(title,id);
+			Show.value.openDailog(title, id);
 		};
 		// 删除
 		const onDelete = (id: number) => {
@@ -128,7 +129,7 @@
 				type: 'warning',
 			})
 				.then(() => {
-                    console.log(arr)
+					console.log(arr);
 					accidentManagementSystemApi()
 						.getaccidentCaseDelete(arr)
 						.then((res) => {
@@ -203,7 +204,19 @@
 		const add = () => {
 			listApi();
 		};
+		let router = useRouter();
+		let jump = (id:any) => {
+			router.push({ 
+				path: '/accidentCasesCop' ,
+				query:{
+					id:id,
+				}
+			});
+		};
+
 		return {
+			jump,
+			router,
 			listApi,
 			add,
 			resetForm,
diff --git a/src/views/accidentManagementSystem/accidentCasesCop/component/wangEditor/index.vue b/src/views/accidentManagementSystem/accidentCasesCop/component/wangEditor/index.vue
new file mode 100644
index 0000000..3953efc
--- /dev/null
+++ b/src/views/accidentManagementSystem/accidentCasesCop/component/wangEditor/index.vue
@@ -0,0 +1,174 @@
+<template>
+  <div class="editor">
+    <div ref="toolbar" class="toolbar"  :class="showTop">
+    </div>
+    <div ref="editor" class="text">
+    </div>
+  </div>
+</template>
+
+<script>
+  import E from 'wangeditor'
+  // import {uploadNew,downloadNew} from '@/api/upload';
+  // import defaultUrl from "@/api/defaultUrl";
+  export default {
+    name: 'editoritem',
+    data() {
+      return {
+        // uploadPath,
+        editor: null,
+        info_: null,
+        // defaultUrl:defaultUrl,
+        defaultUrl:'',
+      }
+    },
+    model: {
+      prop: 'value',
+      event: 'change'
+    },
+    props: {
+      value: {
+        type: String,
+        default: ''
+      },
+      isClear: {
+        type: Boolean,
+        default: false
+      },
+      showTop: {
+        type: String,
+        default: ''
+      },
+    },
+    watch: {
+      isClear(val) {
+        // 触发清除文本域内容
+        if (val) {
+          this.editor.txt.clear()
+          this.info_ = null
+        }
+      },
+      value: function(value) {
+        if (value !== this.editor.txt.html()) {
+          this.editor.txt.html(this.value)
+        }
+      }
+      //value为编辑框输入的内容,这里我监听了一下值,当父组件调用得时候,如果给value赋值了,子组件将会显示父组件赋给的值
+    },
+    mounted() {
+      var that =this
+      that.setEditor()
+      that.editor.txt.html(that.value)
+    },
+    methods: {
+      setEditor() {
+        var that =this
+        this.editor = new E(this.$refs.toolbar, this.$refs.editor)
+        // 配置菜单
+        this.editor.config.menus = [
+          'head',  // 标题
+          'bold',  // 粗体
+          'fontSize',  // 字号
+          'fontName',  // 字体
+          'italic',  // 斜体
+          'underline',  // 下划线
+          'strikeThrough',  // 删除线
+          'foreColor',  // 文字颜色
+          'backColor',  // 背景颜色
+          'link',  // 插入链接
+          'list',  // 列表
+          'justify',  // 对齐方式
+          'quote',  // 引用
+          'emoticon',  // 表情
+          // 'image',  // 插入图片
+          'table',  // 表格
+          // 'video',  // 插入视频
+          'code',  // 插入代码
+          'undo',  // 撤销
+          'redo'  // 重复
+        ]
+
+        //配置上传图片
+        this.editor.config.uploadImgShowBase64 = false // base 64 存储图片
+        this.editor.config.uploadImgServer = 'http://otp.cdinfotech.top/file/upload_images'// 配置服务器端地址
+        this.editor.config.uploadImgHeaders = { }// 自定义 header
+        this.editor.config.uploadFileName = 'file' // 后端接受上传文件的参数名
+        this.editor.config.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M
+        this.editor.config.uploadImgMaxLength = 1 // 限制一次最多上传 3 张图片
+        this.editor.config.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间
+        this.editor.config.uploadImgHooks = {
+          fail: (xhr, editor, result) => {
+            // 插入图片失败回调
+          },
+          success: (xhr, editor, result) => {
+            // 图片上传成功回调
+          },
+          timeout: (xhr, editor) => {
+            // 网络超时的回调
+          },
+          error: (xhr, editor) => {
+            // 图片上传错误的回调
+          },
+          customInsert: (insertImg, result, editor) => {
+            // 图片上传成功,插入图片的回调
+            //result为上传图片成功的时候返回的数据,这里我打印了一下发现后台返回的是data:[{url:"路径的形式"},...]
+            // console.log(result.data[0].url)
+            //insertImg()为插入图片的函数
+            //循环插入图片
+            // for (let i = 0; i < 1; i++) {
+            // console.log(result)
+            let url = "http://otp.cdinfotech.top"+result.url
+            insertImg(url)
+            // }
+          }
+        }
+        this.editor.config.customUploadImg  = function (files, insert) {
+          let form = new FormData();
+          form.append('file', files[0]);
+          form.append('dir', 'temp1')
+          // uploadNew(form).then(res=>{
+          //   if(res.result){
+          //     let url = that.defaultUrl+`/upload/downloadNew?path=`+encodeURI(res.data.fileUrl)
+          //     insert(url)
+          //     that.$message("上传成功", 'success');
+          //   }else {
+          //     that.$message.error("上传失败");
+          //   }
+          //
+          // })
+        }
+
+        this.editor.config.onchange = (html) => {
+          this.info_ = html // 绑定当前逐渐地值
+          this.$emit('change', this.info_) // 将内容同步到父组件中
+        }
+        // 创建富文本编辑器
+        this.editor.create()
+        //是否可编辑
+        if (this.showTop=='hiddenClass'){
+          this.editor.disable()
+        }
+      }
+    }
+  }
+</script>
+
+<style scoped>
+  .editor {
+    /*margin: 0 auto;*/
+    position: relative;
+    z-index: 100;
+  }
+  .toolbar {
+    width: 100%;
+    border: 1px solid #ccc;
+  }
+  .text {
+    border: 1px solid #ccc;
+    min-height: 250px;
+  }
+  .hiddenClass{
+    display: none;
+
+  }
+</style>
diff --git a/src/views/accidentManagementSystem/accidentCasesCop/index.vue b/src/views/accidentManagementSystem/accidentCasesCop/index.vue
new file mode 100644
index 0000000..52831de
--- /dev/null
+++ b/src/views/accidentManagementSystem/accidentCasesCop/index.vue
@@ -0,0 +1,82 @@
+<template>
+    <div style="background-color:#fff;height: 800px;">
+		<el-form :model="form" label-width="120px">
+			<el-row>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+					<el-form-item label="标题" size="default" prop="caseTitle">
+						<el-input v-model="form.caseTitle" />
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="11" :md="11" :lg="11" :xl="11" class="mb20">
+					<el-form-item label="发布时间" size="default" prop="caseTime">
+						<el-date-picker
+							v-model="form.caseTime"
+							format="YYYY-MM-DD HH:mm:ss"
+							value-format="YYYY-MM-DD HH:mm:ss"
+							type="datetime"
+							placeholder="请选择"
+							style="width: 100%"
+						/>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="23" :md="23" :lg="23" :xl="23" class="mb20">
+					<el-form-item  label="内容" size="default" prop="caseContent">
+						<Wangeditor style="width: 100%" :value="form.caseContent"
+									 showTop=""></Wangeditor>
+					</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+    </div>
+</template>
+<script lang="ts">
+import { defineComponent, ref, reactive, onMounted } from 'vue';
+import { timeDate } from '/@/assets/index.ts';
+import type { FormInstance, FormRules } from 'element-plus';
+import { Search, FullScreen } from '@element-plus/icons-vue';
+import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
+import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem';
+import Wangeditor from './component/wangEditor/index.vue';
+import {useRoute} from 'vue-router'
+export default defineComponent({
+	components: {Wangeditor},
+	setup(props, { emit }) {
+        const route = useRoute();
+        const num = route.query.id;
+		const dialogVisible = ref<boolean>(false);
+		const form = ref({
+			caseTitle: '',///案例标题
+			caseContent: '',///案例内容
+			caseTime: '',
+		});
+    onMounted(()=>{
+        listApi(num)
+    })
+	const listApi=(id:any)=>{
+        accidentManagementSystemApi()
+					.getaccidentCaseDetail(id)
+					.then((res) => {
+						if (res.data.code == 200) {
+							form.value = res.data.data;
+						} else {
+							ElMessage.error(res.data.msg);
+						}
+					});
+    }
+				
+		return {
+			timeDate,
+			form,
+			dialogVisible,
+			Search,
+            route,
+            num
+		};
+	},
+});
+</script>
+<style scoped>
+.el-col {
+	padding: 20px 0 0 0;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.2