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