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 = {