diff --git a/package-lock.json b/package-lock.json index 2ecc43c..c80e43c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3026,8 +3026,7 @@ "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, "deep-is": { "version": "0.1.3", @@ -3835,6 +3834,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, + "fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -9553,8 +9557,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -9838,6 +9841,11 @@ "no-case": "^2.2.0" } }, + "parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10666,6 +10674,41 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "requires": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" + } + } + }, + "quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "requires": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + } + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -12821,6 +12864,15 @@ } } }, + "vue-quill-editor": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz", + "integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==", + "requires": { + "object-assign": "^4.1.1", + "quill": "^1.3.4" + } + }, "vue-router": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-2.8.1.tgz", diff --git a/package.json b/package.json index 0dc81f0..2a1f116 100755 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "vue": "^2.2.2", "vue-count-to": "^1.0.13", "vue-i18n": "^8.14.0", + "vue-quill-editor": "^3.0.6", "vue-router": "^2.3.0", "vuex": "^2.0.0-rc.6", "xlsx": "^0.15.6" diff --git a/src/api/socket.js b/src/api/socket.js index 216e274..fd60ef2 100644 --- a/src/api/socket.js +++ b/src/api/socket.js @@ -1,7 +1,7 @@ var websock = null; var global_callback = null; -var serverPort = '10003'; //webSocket连接端口 +var serverPort = '10002'; //webSocket连接端口 function getWebIP(){ @@ -11,7 +11,7 @@ function getWebIP(){ function initWebSocket(){ //初始化weosocket //ws地址 - var wsuri = "ws://" +getWebIP()+ ":" + serverPort+"/log"; + var wsuri = "ws://" +getWebIP()+ ":" + serverPort+"/websocket"; websock = new WebSocket(wsuri); websock.onmessage = function(e){ websocketonmessage(e); @@ -50,6 +50,8 @@ function sendSock(agentData,callback){ //数据接收 function websocketonmessage(e){ + + console.log("------>"+e.data); global_callback(JSON.parse(e.data)); } @@ -67,7 +69,7 @@ function websocketOpen(e){ console.log("连接成功"); } -// initWebSocket(); +initWebSocket(); export{sendSock} diff --git a/src/assets/css/font.css b/src/assets/css/font.css new file mode 100644 index 0000000..6ef1094 --- /dev/null +++ b/src/assets/css/font.css @@ -0,0 +1,79 @@ +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimSun]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimSun]::before { + content: "宋体"; + font-family: "SimSun"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimHei]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimHei]::before { + content: "黑体"; + font-family: "SimHei"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Microsoft-YaHei]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Microsoft-YaHei]::before { + content: "微软雅黑"; + font-family: "Microsoft YaHei"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=KaiTi]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=KaiTi]::before { + content: "楷体"; + font-family: "KaiTi"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=FangSong]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=FangSong]::before { + content: "仿宋"; + font-family: "FangSong"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Arial]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Arial]::before { + content: "Arial"; + font-family: "Arial"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Times-New-Roman]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Times-New-Roman]::before { + content: "Times New Roman"; + font-family: "Times New Roman"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=sans-serif]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=sans-serif]::before { + content: "sans-serif"; + font-family: "sans-serif"; +} + +.ql-font-SimSun { + font-family: "SimSun"; +} + +.ql-font-SimHei { + font-family: "SimHei"; +} + +.ql-font-Microsoft-YaHei { + font-family: "Microsoft YaHei"; +} + +.ql-font-KaiTi { + font-family: "KaiTi"; +} + +.ql-font-FangSong { + font-family: "FangSong"; +} + +.ql-font-Arial { + font-family: "Arial"; +} + +.ql-font-Times-New-Roman { + font-family: "Times New Roman"; +} + +.ql-font-sans-serif { + font-family: "sans-serif"; +} diff --git a/src/components/ue.vue b/src/components/ue.vue new file mode 100644 index 0000000..6f4315c --- /dev/null +++ b/src/components/ue.vue @@ -0,0 +1,40 @@ +<!-- 组件代码如下 --> +<template> + <div> + <script id="editor" type="text/plain"></script> + </div> +</template> +<script> + export default { + name: 'UE', + data() { + return { + editor: null + } + }, + props: { + defaultMsg: { + type: String + }, + config: { + type: Object + } + }, + mounted() { + const _this = this; + this.editor = UE.getEditor('editor', this.config); // 初始化UE + this.editor.addListener("ready", function () { + _this.editor.setContent(_this.defaultMsg) // 确保UE加载完成后,放入内容。 + }); + }, + methods: { + getUEContent() { // 获取内容方法 + return this.editor.getContent() + } + }, + destroyed() { + this.editor.destroy() + } + } + +</script> diff --git a/src/views/hqpt/Process.vue b/src/views/hqpt/Process.vue index c7a81f1..b29459a 100644 --- a/src/views/hqpt/Process.vue +++ b/src/views/hqpt/Process.vue @@ -67,7 +67,7 @@ <!--工具条--> <el-col :span="24" class="toolbar"> <el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> - <el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="5" :total="total" style="float:right;"> + <el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="pageSize" :total="total" style="float:right;"> </el-pagination> </el-col> @@ -101,7 +101,7 @@ </el-dialog> <!--新增界面--> - <el-dialog title="新增" :visible.sync="addFormVisible" width="60%"> + <el-dialog title="新增" :visible.sync="addFormVisible" width="70%"> <el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm"> <el-form-item label="工单名称" prop="processname"> <el-input v-model="addForm.processname" auto-complete="off" placeholder="请输入工单标题:"></el-input> @@ -119,7 +119,14 @@ @change="cascaderhandleChange"></el-cascader-panel> </el-form-item> <el-form-item label="工单内容" prop="reason"> - <el-input type="textarea" v-model="addForm.reason"></el-input> + <div> + <el-card style="height: 310px;"> + <quill-editor v-model="addForm.reason" ref="myQuillEditor" style="height: 310px;" :options="editorOption"> + + </quill-editor> + </el-card> + </div> + <!--<el-input type="textarea" v-model="addForm.reason"></el-input>--> </el-form-item> <el-form-item label="指定部门"> <el-tree @@ -138,19 +145,28 @@ <el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button> </div> </el-dialog> + </section> </template> <script> + import { + quillEditor + } from 'vue-quill-editor' + import 'quill/dist/quill.core.css' + import 'quill/dist/quill.snow.css' + import 'quill/dist/quill.bubble.css' import util from '../../common/js/util' import NProgress from 'nprogress' import { getList,add,vacationTypeOptions} from '@/api/process_api'; + import SOC from '@/api/socket'; import moment from 'moment' import {parseTime, pickerOptions} from '@/utils' import loginUserInfo from '@/api/base' import ElFormItem from "../../../node_modules/element-ui/packages/form/src/form-item.vue"; export default { - components: {ElFormItem}, + name: 'FuncFormsEdit', + components: {ElFormItem,quillEditor}, data() { return { filters: { @@ -239,7 +255,11 @@ label: 'label' }, pickerOptions: pickerOptions, - vacationTypeOptions: vacationTypeOptions + vacationTypeOptions: vacationTypeOptions, + drawer: true, + direction:'rtl', + content: null, + editorOption: {} } }, methods: { @@ -267,7 +287,15 @@ }, handleCurrentChange(val) { this.pageNum = val; + this.getProcessList(); }, + /*handleClose(done) { + this.$confirm('确认关闭?') + .then(_ => { + done(); + }) + .catch(_ => {}); + },*/ //获取工单列表 getProcessList() { let para = {