diff --git a/enterprise-manager-ui/admin/src/components/FileUpload.vue b/enterprise-manager-ui/admin/src/components/FileUpload.vue
index 081657f578c8ae2e58f31450ab652b320c3f76eb..e897443b2a44856e8d23a559f4f732a4f7d8f230 100644
--- a/enterprise-manager-ui/admin/src/components/FileUpload.vue
+++ b/enterprise-manager-ui/admin/src/components/FileUpload.vue
@@ -103,7 +103,7 @@ export default {
     return {
       number: 0,
       uploadList: [],
-      uploadFileUrl: "/office/file/commonupload", // 涓婁紶鐨勫湴鍧€
+      uploadFileUrl: "/enterprise/file/commonupload", // 涓婁紶鐨勫湴鍧€
       headers: {},
       fileList: [],
     };
diff --git a/enterprise-manager-ui/admin/src/views/category/drawershow.vue b/enterprise-manager-ui/admin/src/views/category/drawershow.vue
index 9aea743ab792d26eba143e1516d49240742d28d5..db1a1ce0b8fae2637137691f37fa98836bc36c92 100644
--- a/enterprise-manager-ui/admin/src/views/category/drawershow.vue
+++ b/enterprise-manager-ui/admin/src/views/category/drawershow.vue
@@ -8,7 +8,7 @@
             size="50%">
         <el-form ref="form" :model="form" :rules="rules" label-width="120px">
             <el-row>
-                                            <Field label="鍒嗙被鍚嶇О" prop="name" v-model="form.name" placeholder="璇疯緭鍏ュ垎绫诲悕绉�"/>
+                <Field label="鍒嗙被鍚嶇О" prop="name" v-model="form.name" placeholder="璇疯緭鍏ュ垎绫诲悕绉�"/>
 
             </el-row>
 
@@ -44,6 +44,9 @@
                 ],
                 // 琛ㄥ崟鏍¢獙
                 rules: {
+                    name:[
+                        { required: true, message: "璇疯緭鍏ュ垎绫诲悕绉�", trigger: "blur" },
+                    ]
                 }
             };
         },
diff --git a/enterprise-manager-ui/admin/src/views/company/drawershow.vue b/enterprise-manager-ui/admin/src/views/company/drawershow.vue
index 9068614b3a56b277f6c466d44c5445a0c70e7fa9..f9f64999cc1291c09245700deef4995d10d26c10 100644
--- a/enterprise-manager-ui/admin/src/views/company/drawershow.vue
+++ b/enterprise-manager-ui/admin/src/views/company/drawershow.vue
@@ -147,6 +147,18 @@ export default {
   },
   data() {
     let that = this;
+    var checkPhone = (rule,value,callback) =>{
+      let phoneReg = /^(((\d{3,4}-)?[0-9]{7,8})|(1(3|4|5|6|7|8|9)\d{9}))$/
+      if(!value){
+        callback()
+      }else{
+        if(phoneReg.test(value)){
+          callback()
+        }else{
+          callback(new Error("璇疯緭鍏ユ纭殑鑱旂郴鐢佃瘽"))
+        }
+      }
+    }
     return {
       regionCodeList: [],
       areaprops: {
@@ -207,6 +219,7 @@ export default {
         ],
         contactPhone: [
           { required: true, message: "璇疯緭鍏ヨ仈绯荤數璇�", trigger: "blur" },
+          { validator: checkPhone,trigger: "blur" },
           { max: 32, message: "鏈€澶氬彧鑳藉綍鍏�32涓瓧绗�", trigger: "blur" }
         ],
         lon: [
diff --git a/enterprise-manager-ui/admin/src/views/news/drawershow.vue b/enterprise-manager-ui/admin/src/views/news/drawershow.vue
index 2e97257c33339c1ae4a254d05ea350260f4cbd31..95631ff130e4a1776541452cdc770534fed36b17 100644
--- a/enterprise-manager-ui/admin/src/views/news/drawershow.vue
+++ b/enterprise-manager-ui/admin/src/views/news/drawershow.vue
@@ -5,27 +5,35 @@
             :visible.sync="open"
             :direction="direction"
             :destroy-on-close="true"
-            size="50%">
+            size="100%">
         <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-            <el-row>
-                             <Field label="绫诲瀷" :span="20" prop="categoryId" v-model="form.categoryId" type="radio" :enum-data="dict.categoryId" placeholder="璇疯緭鍏ュ垎绫籭d"/>
-              <Field :span="20" label="灏侀潰"><imageUpload v-model="form.titleLogoPath" prePath="/file/preview"/></Field>
-              <Field label="鏍囬" :span="20" prop="title" v-model="form.title"  placeholder="璇疯緭鍏ユ爣棰�"/>
-              <Field :span="20" label="鍐呭"><editor v-model="form.content" :min-height="256"/></Field>
+            <div class="form">
+                <div class="formleft">
+                    <Field label="鏍囬" :span="24" prop="title" v-model="form.title"  placeholder="璇疯緭鍏ユ爣棰�"/>
+                    <Field :span="24" label="鍐呭"><editor v-model="form.content" :min-height="256"/></Field>
+                </div>
+                <div class="formright">
+                    <el-row>
+                    <Field label="绫诲瀷" :span="20" prop="categoryId" v-model="form.categoryId" type="radio" :enum-data="dict.categoryId" placeholder="璇疯緭鍏ュ垎绫籭d"/>
+                    <Field :span="20" label="灏侀潰"><imageUpload v-model="form.titleLogoPath" prePath="/file/preview"/></Field>
 
-              <Field :span="20" label="璐d换缂栬緫" prop="editor" v-model="form.editor" placeholder="璇疯緭鍏ヨ矗浠荤紪杈�"/>
+                    <Field :span="20" label="璐d换缂栬緫" prop="editor" v-model="form.editor" placeholder="璇疯緭鍏ヨ矗浠荤紪杈�"/>
 
-              <Field :span="20" label="鍙戝竷閮ㄩ棬" prop="deptId" v-model="form.deptId" type="select" :enum-data="dict.deptId" placeholder="璇疯緭鍏ュ彂甯冮儴闂�"/>
+                    <Field :span="20" label="鍙戝竷閮ㄩ棬" prop="deptId" v-model="form.deptId" type="select" :enum-data="dict.deptId" placeholder="璇疯緭鍏ュ彂甯冮儴闂�"/>
 
-              <Field :span="20" label="鏂囩珷鏉ユ簮" prop="source" v-model="form.source" placeholder="璇疯緭鍏ユ枃绔犳潵婧�"/>
+                    <Field :span="20" label="鏂囩珷鏉ユ簮" prop="source" v-model="form.source" placeholder="璇疯緭鍏ユ枃绔犳潵婧�"/>
 
-              <Field label="鍙戝竷鏃堕棿" prop="publishTime" v-model="form.publishTime" type="date" />
+                    <Field label="鍙戝竷鏃堕棿" prop="publishTime" v-model="form.publishTime" type="date" />
 
-              <Field :span="20" label="澹版槑" prop="statement" v-model="form.statement" type="textarea" placeholder="璇疯緭鍏ュ0鏄�"/>
+                    <Field :span="20" label="澹版槑" prop="statement" v-model="form.statement" type="textarea" placeholder="璇疯緭鍏ュ0鏄�"/>
 
-            </el-row>
-
-            <form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn />
+                    </el-row>
+                </div>
+            </div>
+            <el-form-item class="footerbtns">
+                <el-button type="primary" @click='submitForm' icon='el-icon-circle-check-outline'>鍙戝竷</el-button>
+                <el-button @click='()=>{open = false}' icon='el-icon-circle-close-outline'>鍙栨秷</el-button>
+            </el-form-item>
         </el-form>
 
     </el-drawer>
@@ -141,3 +149,28 @@
         },
     };
 </script>
+<style lang="less" scoped>
+.footerbtns{
+    margin-top: 20px;
+    padding-top: 20px;
+    border-top: 1px solid gainsboro;
+    display: flex;
+    justify-content: center;
+    align-content: center;
+}
+.form{
+    display: flex;
+    width: 100%;
+    .formleft{
+        flex:1;
+        width: 60%;
+        height: calc(100vh - 200px);
+        overflow: auto;
+    }
+    .formright{
+        width: 40%;
+        flex-shrink: 0;
+        flex-grow: 0;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/enterprise-manager-ui/admin/src/views/news/drawerview.vue b/enterprise-manager-ui/admin/src/views/news/drawerview.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7ac6f2d664a1d3f6d85fac8407e86b1f9e99bc76
--- /dev/null
+++ b/enterprise-manager-ui/admin/src/views/news/drawerview.vue
@@ -0,0 +1,120 @@
+<template>
+    <!-- 鏌ョ湅寮瑰嚭妗� -->
+    <el-drawer
+    :title="title"
+    :visible.sync="open"
+    :direction="direction"
+    :destroy-on-close="true"
+    size="40%">
+        <div class="formcontent">
+            <div class="title">{{form.title}}</div>
+            <div class="timeandistop">
+                <div class="time">鍙戝竷鏃堕棿锛歿{publishTime}}</div>
+                <div class="istop">
+                    <span v-if="form.top==0" @click="$emit('handletop',{id:form.id},1)">缃《</span>
+                    <span v-if="form.top==1" @click="$emit('handletop',{id:form.id},0)">鍙栨秷缃《</span>
+                </div>
+            </div>
+            <div v-html="form.content" class="content"></div>
+            <div class="last">
+                <div>鍙戝竷锛歿{publishTime}}</div>
+                <div>璐d换缂栬緫锛歿{form.editor}}</div>
+                <div>瀹℃壒锛�</div>
+                <div>鏉ユ簮锛歿{form.source}}</div>
+                <div>澹版槑:{{form.statement}}</div>
+
+            </div>
+            
+            <div class="footbtns">
+                <el-button type="danger" @click="onDel">鍒犻櫎</el-button>
+                <el-button @click="()=>{open=false}">鍏抽棴</el-button>
+            </div>
+        </div>
+    </el-drawer>
+</template>
+
+<script>
+import moment from 'moment'
+    export default {
+        name: "NewsInfo",
+        components: {
+        },
+        created() {
+        },
+        watch:{
+            form(newval){
+                if(newval.publishTime){
+                    this.publishTime = moment(newval.publishTime).format('yyyy-MM-DD')
+                }
+            }
+        },
+        data() {
+            return {
+                // 閬僵灞�
+                loading: true,
+                // 寮瑰嚭灞傛爣棰�
+                title: "鏂伴椈鍏憡璇︽儏",
+                // 鏄惁鏄剧ず寮瑰嚭灞�
+                open: false,
+                direction:"rtl",
+                form:{},
+                publishTime:"--"
+            };
+        },
+
+        methods: {
+            onDel(){
+                this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ柊闂�, 鏄惁缁х画?', '鎻愮ず', {
+                    confirmButtonText: '纭畾',
+                    cancelButtonText: '鍙栨秷',
+                    type: 'warning'
+                }).then(() => {
+                    this.open = false
+                    this.$emit('del',this.form.id)
+                }).catch(() => {});
+            }
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+.last{
+    font-size: 14px;
+    color: #72767b;
+}
+.footbtns{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-top: 20px;
+    height: 80px;
+    border-top: 1px solid gainsboro;
+}
+.formcontent{
+    padding: 0 20px;
+    
+    .content{
+        margin-bottom: 20px;
+    }
+    .timeandistop{
+        display: flex;
+        align-items: center;
+        margin-bottom: 30px;
+        font-size: 14px;
+        .time{
+            color: #72767b;
+            margin-right: 20px;
+        }
+        .istop{
+            color:dodgerblue
+        }
+    }
+    .title{
+        font-size: 18px;
+        margin-bottom: 10px;
+    }
+}
+.el-drawer__body{
+    border-top: 1px solid #72767b !important;
+}
+</style>
\ No newline at end of file
diff --git a/enterprise-manager-ui/admin/src/views/news/list.vue b/enterprise-manager-ui/admin/src/views/news/list.vue
index 64ba979d8aa0f2a3e2eb09c9faa96dd40e92e8e7..5402445d9d2be6e837dc7670d2071f793cb65bf7 100644
--- a/enterprise-manager-ui/admin/src/views/news/list.vue
+++ b/enterprise-manager-ui/admin/src/views/news/list.vue
@@ -5,17 +5,20 @@
 
 
         <drawer-show ref="drawerform" @ok="getData" />
+        <drawer-view ref="drawerview" @handletop="handleTop" @del="toDel"/>
     </div>
 </template>
 
 <script>
     /** 琛ㄥ崟寮瑰嚭妗嗘ā寮忛渶寮曞叆 */
     import drawerShow from "./drawershow";
+    import drawerView from "./drawerview";
     import table from "@/assets/mixins/table";
     export default {
         name: "NewsList",
         components: {
-            drawerShow
+            drawerShow,
+            drawerView
 },
         mixins: [table],
         created() {
@@ -30,15 +33,38 @@
                 this.$refs.drawerform.edit(row);
             },
             /** 閲嶅啓鏌ョ湅鏂规硶 */
-            toView(row) {
-                this.$refs.drawerform.view(row);
+            toView(row,isopen) {
+                // this.$refs.drawerform.view(row);
+                // 杩欓噷鏌ョ湅涓嶅啀鍜岀紪杈戝叡鐢ㄧ晫闈紝澶氬啓涓€涓娊灞夛紝浣嗚皟鐢╲iew鏂规硶鎺ュ彛
+                // this.$refs.drawerform.reset()
+                this.$refs.drawerform.query = { id: row.id };
+                this.$refs.drawerform.urls.currUrl ="news/view";
+
+                this.$refs.drawerform.$get('news/view', this.$refs.drawerform.query)
+                .then(({ data }) => {
+                  if(!isopen){
+                    this.$refs.drawerview.open = true
+                  }
+                  this.$refs.drawerview.form = data.entity
+                })
+                .catch(error => {
+                  this.$refs.drawerview.form = {}
+                  this.$message.error(error.message)
+                  throw error
+                })
+
             },
 
           handleTop(row,top) {
 
               this.$post("/news/save",{id:row.id,top:top}).then((res) => {
                 if (res.code == 1) {
-                  this.$message.success("缃《鎴愬姛锛�");
+                  if(top==0){
+                    this.$message.success("鍙栨秷缃《鎴愬姛锛�");
+                  }else{
+                    this.$message.success("缃《鎴愬姛锛�");
+                  }
+                  this.toView({id:row.id},true)
                   this.getData();
                 }
               })
diff --git a/enterprise-manager-ui/admin/src/views/position/drawershow.vue b/enterprise-manager-ui/admin/src/views/position/drawershow.vue
index 1874280581de903d841bfd6ec0cd23507ab59f59..49a5c4bb896683de3fcaff5b66d0ab9d5b8586b3 100644
--- a/enterprise-manager-ui/admin/src/views/position/drawershow.vue
+++ b/enterprise-manager-ui/admin/src/views/position/drawershow.vue
@@ -10,7 +10,7 @@
             <el-row>
               <Field :span="20" label="鑱屼綅鍚嶇О" prop="positionName" v-model="form.positionName" placeholder="璇疯緭鍏ヨ亴浣嶅悕绉�"/>
               <Field :span="20"  label="鑱屼綅缂栫爜" prop="positionCode" v-model="form.positionCode" placeholder="璇疯緭鍏ヨ亴浣嶇紪鐮�"/>
-                            <Field  :span="20"label="澶囨敞" prop="remark" v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�"/>
+                            <Field  :span="20" label="澶囨敞" prop="remark" v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�"/>
 
             </el-row>
 
@@ -47,6 +47,10 @@
                 ],
                 // 琛ㄥ崟鏍¢獙
                 rules: {
+                    positionName :[
+                        { required: true, message: "璇疯緭鍏ヨ亴浣嶅悕绉�", trigger: "blur" },
+                        { max: 30, message: "鏈€澶氬彧鑳藉綍鍏�30涓瓧绗�", trigger: "blur" }
+                    ],
                 }
             };
         },
diff --git a/enterprise-manager-ui/admin/src/views/staff/record/list.vue b/enterprise-manager-ui/admin/src/views/staff/record/list.vue
index 6ed968654725a08066f95983e5db4c5e2f037e45..9b21b57d665b8c734063fd2f0d67d03c0d391039 100644
--- a/enterprise-manager-ui/admin/src/views/staff/record/list.vue
+++ b/enterprise-manager-ui/admin/src/views/staff/record/list.vue
@@ -66,7 +66,7 @@
                             width: 240,
                             formatter: row => {
                                 return (
-                                    <table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
+                                    <table-buttons noAdd noEdit noDel  row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
                             );
                             }
                         }