zhangqiOMG 2 gadi atpakaļ
vecāks
revīzija
9b61eaccb7

+ 5 - 15
src/HManagement/siteManage/custom_option/index.vue

@@ -1,8 +1,7 @@
 <template>
-  <div >
-    <div class="container normal-panel el-row" >
+  <normalLayout>
+    <div slot="content" class=" normal-panel el-row" >
       <div class="borderRight el-col el-col-12">
-        <p style="font-size:26px;font-weight:300">{{acitveApp.meta.title}}&nbsp;<i @click="addToAsideBar" style="color:orange" :class="acitveApp.name === $route.name?'el-icon-star-on collection':'el-icon-star-off'"></i></p>
         <list ref="list" @rowShow="rowShow">
         </list>
       </div>
@@ -23,12 +22,13 @@
         </div>
       </div>
     </div>
-  </div>
+  </normalLayout>
 </template>
 
 <script>
 import {mapGetters} from 'vuex'
 
+import normalLayout from '@/components/normal-basic-layout/normal.vue'
 import list from './modules/list.vue'
 import edit from './modules/edit'
 import del_option from './modules/delete'
@@ -44,6 +44,7 @@ export default {
     }
   },
   components:{
+    normalLayout,
     list,
     edit,
     del_option,
@@ -67,17 +68,6 @@ export default {
       this.disabled = false
       this.list = row
       this.classname = row.remarks
-    },
-    // 创建快捷应用
-    async addToAsideBar () {
-      const res = await this.$api.requested({
-        "classname": "sysmanage.develop.userauthforweb.userauth",
-        "method": "create_usershortcuts",
-        "content": {
-          "systemappid":this.acitveApp.systemappid
-        }
-      })
-      this.$store.dispatch('setAppMenu')
     }
   }
 }

+ 1 - 1
src/HManagement/siteManage/securityConfig/modules/watermark.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <el-button size="small" style="width:120px" type="primary" @click="queryFileLink">设 置</el-button>
-    <el-dialog title="设置" append-to-body :visible.sync="dialogEditVisible">
+    <el-dialog title="设置"  append-to-body :visible.sync="dialogEditVisible">
       <el-row :gutter="16">
         <el-col :span="12">
           <p>企业水印图片:</p>

+ 4 - 4
src/SDrpManagement/salerPrivatecustomer/detail/modules/detailedData.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="normal-panel">
-    <div class="container normal-panel">
-      <el-descriptions title="基本信息" size="mini">
+    <div class=" normal-panel normal-margin">
+      <el-descriptions title="基本信息" border :column="2">
         <el-descriptions-item label-class-name="my-label" label="客户名称">{{ basic.enterprisename?basic.enterprisename:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="客户编号">{{ basic.sa_customersid?basic.sa_customersid:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="企业简称">{{ basic.abbreviation?basic.abbreviation:"--"}}</el-descriptions-item>
@@ -17,8 +17,8 @@
       </el-descriptions>
     </div>
 
-    <div class="container normal-panel">
-      <el-descriptions title="系统信息" size="mini">
+    <div class="normal-panel">
+      <el-descriptions title="系统信息" border :column="2">
         <el-descriptions-item label-class-name="my-label" label="创建人">{{ system.createby?system.createby:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="创建时间">{{ system.createdate?system.createdate:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="最近跟进人">{{ system.followby?system.followby:"--" }}</el-descriptions-item>

+ 3 - 1
src/SManagement/submitedit_one/index.vue

@@ -1,11 +1,13 @@
 <template>
-  <div class="normal-card">
+<normalLayout @onRefresh="getSubmitEditAction">
+  <div class="container" slot="content">
     <time-select @timeChange="timeChange" @clearSelect="clearSelect" v-if="tool.checkAuth($route.name,'read')"></time-select>
     <list :list="oneData" v-if="tool.checkAuth($route.name,'read')"></list>
     <!--分页-->
     <pagination :total="total" :pageSize="param.content.pageSize" :currentPage="param.content.pageNumber" @pageChange="pageChange">
     </pagination>
   </div>
+</normalLayout>
 </template>
 
 <script>

+ 1 - 0
src/assets/icons/incoll.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1668578036525" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6265" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M990.975269 367.396571l-307.2-44.617142L546.705554 44.544a38.692571 38.692571 0 0 0-69.412571 0L340.076983 322.925714l-307.2 44.617143a38.692571 38.692571 0 0 0-21.430857 65.828572L234.092983 649.947429l-52.443429 305.737142a38.619429 38.619429 0 0 0 56.100572 40.740572L512.03584 852.114286l274.578286 144.384a38.692571 38.692571 0 0 0 56.100571-40.740572L789.978697 649.947429l222.354286-216.576a38.765714 38.765714 0 0 0-21.430857-65.828572z" fill="#FADB14" p-id="6266"></path></svg>

+ 1 - 0
src/assets/icons/uncoll.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1668578033927" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6130" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512.048274 139.556571L388.729417 389.632l-275.968 40.082286 199.68 194.706285-47.177143 274.797715L512.048274 769.462857l246.784 129.755429-47.177143-274.797715 199.68-194.706285-275.968-40.082286L512.048274 139.556571M512.19456 23.04a38.4 38.4 0 0 1 34.523429 21.504l137.289142 278.235429 306.980572 44.617142a38.546286 38.546286 0 0 1 21.357714 65.974858l-222.061714 216.502857 52.443428 305.810285a38.619429 38.619429 0 0 1-56.100571 40.740572L512.048274 852.114286l-274.578285 144.310857a38.619429 38.619429 0 0 1-56.100572-40.740572l52.516572-305.737142L11.751131 433.444571a38.765714 38.765714 0 0 1 21.430858-66.048l306.907428-44.617142L477.37856 44.544a38.912 38.912 0 0 1 34.816-21.504z" fill="#CCCCCC" p-id="6131"></path></svg>

+ 61 - 43
src/components/newLayout/modules/aside.vue

@@ -13,26 +13,31 @@
       text-color="#fff"
       active-text-color="#fff"
       class="el-menu-vertical-demo">
-      <el-menu-item :index="String(item.systemid)" v-for="item in systemList" :key="item.index" @click="handelMenuClick(item,'system')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
-        <p style="text-align:center" v-if="collapse">{{item.systemname.substr(0, 1)}}</p>
-        <span slot="title">{{item.systemname}}</span>
-      </el-menu-item>
-      <el-divider class="divider"></el-divider>
-      <!-- <p v-if="!collapse" style="padding:0 20px;font-size:12px;color:#eeeeee">应用</p> -->
-      <!-- <el-divider content-position="left">应用</el-divider> -->
-      <el-menu-item :index="String(index + 10)" v-for="(item,index) in menuApp" :key="index" @click="handelMenuAppClick(item,'app')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
-        <p class="" style="text-align:center" v-if="collapse">{{item.systemappname.substr(0, 1)}}</p>
-        <span slot="title">{{item.systemappname}}</span>
-        <i v-if="!collapse" style="float:right;line-height: 40px;" class="el-icon-error menuIconClose" @click.stop="deleteMenuApp(item)"></i>
-      </el-menu-item>
-      <el-menu-item index="99" style="font-size:12px;margin-top:20px"  @click="handelMenuClick(item,'system')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
-        <i v-if="collapse" class="el-icon-aim"  style="font-size:12px;color:#fff"></i>
-        <span slot="title"><b>网站地图</b></span>
-      </el-menu-item>
-      <el-menu-item index="100"  style="font-size:12px"  @click="handelMenuClick(item,'system')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
-        <i v-if="collapse" class="el-icon-menu"  style="font-size:12px;color:#fff"></i>
-        <span slot="title"><b>配置菜单</b></span>
-      </el-menu-item>
+      <div class="menu_scroll__panel">
+        <el-menu-item :index="String(item.systemid)" v-for="item in systemList" :key="item.index" @click="handelMenuClick(item,'system')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
+          <p style="text-align:center" v-if="collapse">{{item.systemname.substr(0, 1)}}</p>
+          <span slot="title">{{item.systemname}}</span>
+        </el-menu-item>
+        <el-divider class="divider"></el-divider>
+        <!-- <p v-if="!collapse" style="padding:0 20px;font-size:12px;color:#eeeeee">应用</p> -->
+        <!-- <el-divider content-position="left">应用</el-divider> -->
+        <el-menu-item :index="String(index + 10)" v-for="(item,index) in menuApp" :key="index" @click="handelMenuAppClick(item,'app')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
+          <p class="" style="text-align:center" v-if="collapse">{{item.systemappname.substr(0, 1)}}</p>
+          <span slot="title">{{item.systemappname}}</span>
+          <i v-if="!collapse" style="float:right;line-height: 40px;" class="el-icon-error menuIconClose" @click.stop="deleteMenuApp(item)"></i>
+        </el-menu-item>
+      </div>
+      <div>
+        <el-divider class="divider"></el-divider>
+        <el-menu-item index="99" style="font-size:12px;margin-top:20px"  @click="handelMenuClick(item,'system')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
+          <i v-if="collapse" class="el-icon-aim"  style="font-size:12px;color:#fff"></i>
+          <span slot="title"><b>网站地图</b></span>
+        </el-menu-item>
+        <el-menu-item index="100"  style="font-size:12px"  @click="handelMenuClick(item,'system')" @mouseenter.native="debounce(selectStyle,100)()" @mouseleave.native="outStyle">
+          <i v-if="collapse" class="el-icon-menu"  style="font-size:12px;color:#fff"></i>
+          <span slot="title"><b>配置菜单</b></span>
+        </el-menu-item>
+      </div>
     </el-menu>
   </div>
   <div v-if="collapse" :class="fixedMenu" class="aside__panel" @mouseenter="selectStyle" @mouseleave="outStyle()">
@@ -44,21 +49,26 @@
       text-color="#fff"
       active-text-color="#fff"
       class="el-menu-vertical-demo">
-      <el-menu-item :index="String(item.systemid)" v-for="item in systemList" :key="item.index" @click="handelMenuClick(item,'system')">
-        <div slot="title"><span class="name__icon inline-16" style="text-align:center">{{item.systemname.substr(0, 1)}}</span>{{item.systemname}}</div>
-      </el-menu-item>
-      <el-divider class="divider"></el-divider>
-      <!-- <p v-if="!collapse" style="padding:0 20px;font-size:12px;color:#eeeeee">应用</p> -->
-      <!-- <el-divider content-position="left">应用</el-divider> -->
-      <el-menu-item :index="String(index + 10)" v-for="(item,index) in menuApp" :key="index" @click="handelMenuAppClick(item,'app')">
-        <div slot="title"><span class="name__icon inline-16" style="text-align:center">{{item.systemappname.substr(0, 1)}}</span>{{item.systemappname}}</div>
-      </el-menu-item>
-      <el-menu-item index="99" style="margin-top:20px">
-        <span slot="title" style="font-size:12px">网站地图</span>
-      </el-menu-item>
-      <el-menu-item index="100">
-        <span slot="title" style="font-size:12px">配置菜单</span>
-      </el-menu-item>
+      <div class="menu_scroll__panel">
+        <el-menu-item :index="String(item.systemid)" v-for="item in systemList" :key="item.index" @click="handelMenuClick(item,'system')">
+          <div slot="title"><span class="name__icon inline-16" style="text-align:center">{{item.systemname.substr(0, 1)}}</span>{{item.systemname}}</div>
+        </el-menu-item>
+        <el-divider class="divider"></el-divider>
+        <!-- <p v-if="!collapse" style="padding:0 20px;font-size:12px;color:#eeeeee">应用</p> -->
+        <!-- <el-divider content-position="left">应用</el-divider> -->
+        <el-menu-item :index="String(index + 10)" v-for="(item,index) in menuApp" :key="index" @click="handelMenuAppClick(item,'app')">
+          <div slot="title"><span class="name__icon inline-16" style="text-align:center">{{item.systemappname.substr(0, 1)}}</span>{{item.systemappname}}</div>
+        </el-menu-item>
+      </div>
+      <div>
+         <el-divider class="divider"></el-divider>
+        <el-menu-item index="99" style="margin-top:20px">
+          <span slot="title" style="font-size:12px">网站地图</span>
+        </el-menu-item>
+        <el-menu-item index="100">
+          <span slot="title" style="font-size:12px">配置菜单</span>
+        </el-menu-item>
+      </div>
     </el-menu>
   </div>
 </div>
@@ -142,13 +152,17 @@ export default {
     }
   },
   mounted () {
-    this.systemList = JSON.parse(sessionStorage.getItem('module_info'))
 
-    this.$store.dispatch('setAppMenu')
-    
     let active_model = JSON.parse(sessionStorage.getItem('active_modules'))
+    if (sessionStorage.getItem('acitveApp')) {
+      let active_app = JSON.parse(sessionStorage.getItem('acitveApp'))
+      this.$store.dispatch('setActiveApp',{app:active_app,val:''})
+    } else {
+      this.$store.dispatch('setActiveApp',{app:active_model.apps[0],val:''})
+    }
+    this.systemList = JSON.parse(sessionStorage.getItem('module_info'))
 
-    this.$store.dispatch('setActiveApp',{app:active_model.apps[0],val:''})
+    this.$store.dispatch('setAppMenu')
     
   }
 }
@@ -176,7 +190,7 @@ export default {
 .aside__panel .el-menu-item{
   height: 40px;
   line-height: 40px;
-  padding-left:20px !important;
+  padding-left:10px !important;
 }
 .aside__panel .el-menu-item:hover{
   background-color: rgba(255 ,255,255,.2) !important;
@@ -187,9 +201,6 @@ export default {
 .is-active .menuIconClose{
   display: block !important;
 }
-.bg .el-menu-item{
-  /* margin-bottom: 16px; */
-}
 </style>
 <style scoped>
 .is-active{
@@ -262,4 +273,11 @@ export default {
   transition: .1s ease-in-out;
   
 }
+.menu_scroll__panel{
+  height:calc(100vh - 200px);
+  overflow-y:scroll
+}
+.menu_scroll__panel::-webkit-scrollbar{
+  display:none !important;
+}
 </style>

+ 14 - 18
src/components/newLayout/modules/header.vue

@@ -7,8 +7,8 @@
       <p class="appLink" v-for="app in menuApp" :key="app.index" @click="handelMenuAppClick(app,'app')">{{app.systemappname}}</p>
     </div>
     <div slot="reference" class="search_panel">
-      <input placeholder="输入搜索内容" v-model="searchValue"/>
-      <i class="el-icon-search"></i>
+      <input @focus="colorWhite = false" @blur="colorWhite = true" placeholder="输入搜索内容" v-model="searchValue"/>
+      <i class="el-icon-search" :style="colorWhite?'color:#fff':'color:#000'"></i>
     </div>
   </el-popover>
   <div class="right-operation flex-align-center">
@@ -48,7 +48,8 @@ export default {
       url:"http://weather.cma.cn/api/weather/view?stationid=",
       weather:{},
       searchValue:'',
-      accountList:[]
+      accountList:[],
+      colorWhite:true
     }
   },
   computed:{
@@ -64,8 +65,17 @@ export default {
   methods:{
     // 选择登录账号
     selectAccount (item) {
+      let arr = ['module_info','acitveApp','active_modules','folderid']
+      arr.forEach(key=>{
+        sessionStorage.removeItem(key)
+      })
+
       sessionStorage.setItem('active_account',JSON.stringify(item))
-      this.$router.go(0)
+
+      this.basicData.query_userauth().then(()=>{
+        this.basicData.querySite_Parameter()
+        this.$router.go(0)
+      })
     },
     async getWeather () {
       const res = await axios.get(this.url)
@@ -189,11 +199,6 @@ export default {
   transition: .2s linear;
   border-radius: 4px;
   padding: 5px 40px;
-  -webkit-animation-timing-function: ease-in-out;
-  -webkit-animation-name: breathe;
-  -webkit-animation-duration: 1500ms;
-  -webkit-animation-iteration-count: infinite;
-  -webkit-animation-direction: alternate;
 }
 .weather:hover{
   background-color: rgba(255 ,255,255,.2) !important;
@@ -213,15 +218,6 @@ export default {
   align-items: center;
   flex-wrap: wrap;
 }
-@-webkit-keyframes breathe {
-    0% {
-        background-color: rgba(255 ,255,255,0);
-    }
-
-    100% {
-        background-color: rgba(255 ,255,255,.2);
-    }
-}
 .avatar-mini{
   display: inline-block;
   position: relative;

+ 1 - 1
src/components/newLayout/modules/menu.vue

@@ -60,7 +60,7 @@ export default {
   },
   watch:{
     acitveApp (val) {
-      console.log(val)
+      console.log(val,'-------')
       this.show = false
       setTimeout(() => {
         this.show = true

+ 2 - 4
src/components/normal-basic-layout/details/index.vue

@@ -26,7 +26,7 @@
     </div>
     <div style="box-sizing: border-box;padding:10px">
       <el-row :gutter="10">
-        <el-col :span="acitveApp.isdatateam?19:acitveApp.isdatafollowup?19:24">
+        <el-col :span="acitveApp.isdatateam?18:acitveApp.isdatafollowup?18:24">
           <tabTemp :tabs="tabs" :editData="editData" :idname="idname" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)">
             <div :slot="'slot' + index" v-for="(tab,index) in tabs" :key="tab.index">
               <slot :name="'slot' + index"></slot>
@@ -34,7 +34,7 @@
           </tabTemp>
           <slot name="custom"></slot>
         </el-col>
-        <el-col :span="5">
+        <el-col :span="6">
           <group v-if="acitveApp.isdatateam" ref="group" style="margin-bottom:10px" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)" @onSuccess="onSuccess"></group>
           <follow-up v-if="acitveApp.isdatafollowup" ref="follow" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)"></follow-up>
         </el-col>
@@ -141,8 +141,6 @@ export default {
         });          
       });
     },
-
-    // 验证删除按钮状态
     checkDisabled () {
       if (this.status) {
         let let_isSame = this.status.some(item=>item === this.editData.status)

+ 34 - 0
src/components/normal-basic-layout/details/modules/datalog/index.vue

@@ -0,0 +1,34 @@
+<template>
+  <div>
+    
+  </div>
+</template>
+
+<script>
+export default {
+  props:['ownertable'],
+  data () {
+    return {}
+  },
+  methods:{
+    async queryLogData () {
+      const res = await this.$api.requested({
+        "id": 20221114125401,
+        "content": { 
+          "pageNumber": 1,
+          "pageSize": 100,
+          "ownertable":this.ownertable,
+          "ownerid":this.$route.query.id
+        }
+      })
+      console.log(res,'log')
+    }
+  },
+  mounted () {
+    this.queryLogData()
+  }
+}
+
+</script>
+<style>
+</style>

+ 7 - 3
src/components/normal-basic-layout/details/modules/tabs/tab.vue

@@ -9,9 +9,8 @@
     </div>
 
     <div v-show="'tab'+index === activeName" v-for="(item,index) in tabs" :key="index">
-      <slot :name="'slot' + index"></slot>
+      <slot v-if="'tab'+index === activeName"  :name="'slot' + index"></slot>
     </div>
-
     <div v-show="activeName === 'file'">
       <attachmentList :attinfos="attinfo_attachment" @onSuccess="queryAttments">
         <upload slot="upload" :folderid="folderid"
@@ -19,18 +18,23 @@
           @onSuccess="queryAttments"></upload>
       </attachmentList>
     </div>
+    <div v-show="activeName === 'log'">
+      <datalog :ownertable="ownertable"></datalog>
+    </div>
   </div>
 </template>
 
 <script>
 import attachmentList from '@/components/attachment_list/index.vue'
 import upload from '@/components/upload/hw_obs_upload.vue'
+import datalog from '../datalog/index.vue'
 
 export default {
   props:['tabs','editData','ownertable','idname'],
   components:{
     attachmentList,
-    upload
+    upload,
+    datalog
   },
   data () {
     return {

+ 8 - 3
src/components/normal-basic-layout/index.vue

@@ -4,8 +4,14 @@
       <div class="layout-header-panel container normal-panel">
         <div class="flex-align-center flex-between">
           <div class="normal-margin flex-align-center">
-            <p v-if="acitveApp" style="font-size:26px;font-weight:300">{{customTitle ? customTitle : acitveApp.meta.title}}&nbsp;<i v-if="!customTitle" @click="addToAsideBar" style="color:#999" :class="showAppCollection()?'el-icon-star-on collection':'el-icon-star-off'"></i></p>
-            <div style="margin:0 8px"><el-divider direction="vertical"></el-divider></div>
+            <div v-if="acitveApp" style="font-size:26px;font-weight:300">{{customTitle ? customTitle : acitveApp.meta.title}}&nbsp;
+              <!-- <i v-if="!customTitle" @click="addToAsideBar" style="color:#999" :class="showAppCollection()?'el-icon-star-on collection':'el-icon-star-off'"></i> -->
+              <div v-if="!customTitle" style="display:inline">
+                <img width="20" v-if="showAppCollection()" src="@/assets/icons/incoll.svg" alt="">
+                <img width="20" v-else src="@/assets/icons/uncoll.svg" @click="addToAsideBar" alt="">
+              </div>
+            </div>
+            <div style="margin:0 8px"></div>
             <div class="flex-align-center">
               <cpAdd v-if="tool.checkAuth($route.name,'insert')" :formPath="formPath" :oldFormPath="oldFormPath" @onAddSuccess="listData(param.content.pageNumber = 1)"></cpAdd>
               <el-button-group v-if="tool.checkAuth($route.name,'delete')" class="inline-16">
@@ -218,7 +224,6 @@ export default {
       this.$store.dispatch('setAppMenu')
     },
     showAppCollection () {
-      
 			let _isSame = this.menuApp.some(m=>this.acitveApp.name === m.systemapp)
 			return _isSame
 		},

+ 8 - 2
src/components/normal-basic-layout/modules/table.vue

@@ -11,7 +11,13 @@
         align="center"
         @handleSelectionChange="handleSelectionChange">
       </el-table-column>
-      <el-table-column  v-for="(col) in layout" :key="col.tablecolid">
+      <el-table-column v-for="(col) in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width ? col.width : 0" :min-width="col.width === 0 ? 150 : col.width" :fixed="checkFixed(col.columnname)">
+        <template slot-scope="scope">
+          <slot v-if="col.columnname !== 'operation'" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>
+          <slot v-if="col.columnname === 'operation'" name="opreation" :data="scope.row"></slot>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column  v-for="(col) in layout" :key="col.tablecolid">
         <template #header>
           
           <el-input v-if="col.filter === 1" size="mini" v-model="col.value" @change="inputChange" @keyup.native.enter="headerSearch(col.columnname)" @clear="headerSearch(col.columnname)" clearable/>
@@ -28,7 +34,7 @@
         </el-table-column>
         
         
-      </el-table-column>
+      </el-table-column> -->
     </el-table>
   </div>
 </template>

+ 115 - 0
src/components/normal-basic-layout/normal.vue

@@ -0,0 +1,115 @@
+<template>
+  <div class="basic__layout__panel">
+    <div style="padding:16px 16px 0 16px" class="flex-align-center flex-between">
+      <div v-if="acitveApp" style="font-size:26px;font-weight:300">{{customTitle ? customTitle : acitveApp.meta.title}}&nbsp;
+        <!-- <i v-if="!customTitle" @click="addToAsideBar" style="color:#999" :class="showAppCollection()?'el-icon-star-on collection':'el-icon-star-off'"></i> -->
+        <div v-if="!customTitle" style="display:inline">
+          <img width="20" v-if="showAppCollection()" src="@/assets/icons/incoll.svg" alt="">
+          <img width="20" v-else src="@/assets/icons/uncoll.svg" @click="addToAsideBar" alt="">
+        </div>
+      </div>
+      <div>
+        <i class="el-icon-refresh" @click="refresh"></i>
+      </div>
+    </div>
+    <slot name="content"></slot>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+export default {
+  props:['tableName','idName','tableData','apiId','formPath','oldFormPath','options','autoQuery','detailPath','customTitle','hidePagination'],
+  components:{
+    tableTemp: () => import('./modules/table.vue'),
+    setColumn: () => import('./modules/setColumn.vue'),
+    cpAdd: () => import('./modules/cpAdd'),
+    cpEdit: () => import('./modules/cpEdit'),
+    setFixed: () => import('./modules/setFixed'),
+    drawerTemp:() =>  import('./drawerDetail/index'),
+    excel:() =>  import('@/components/export_excel/index.vue'),
+    cardTemp:() => import('./modules/cardList.vue')
+  },
+  computed:{
+    ...mapGetters({
+      acitveApp:'acitveApp',
+      searchValue:'searchValue',
+      menuApp:'menuApp',
+    })
+  },
+  data () {
+    return {
+      listType:'table',
+      routerName:'',
+      select:'',
+      param:{
+        content:{
+          "isExport":0,
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": "",
+            "tablefilter":{}
+          }
+        }
+      },
+      layout:[],
+      fixRightData:['operation'],
+      fixLeftData:[],
+      tableLayout:[],
+      selection:[],
+      list:[],
+      total:0,
+      currentPage:0,
+      refreshTable:true,
+      title:'',
+      name:''
+    }
+  },
+  methods:{
+    // 创建快捷应用
+    async addToAsideBar () {
+      const res = await this.$api.requested({
+        "classname": "sysmanage.develop.userauthforweb.userauth",
+        "method": "create_usershortcuts",
+        "content": {
+          "systemappid":this.acitveApp.systemappid
+        }
+      })
+      this.$store.dispatch('setAppMenu')
+    },
+    showAppCollection () {
+			let _isSame = this.menuApp.some(m=>this.acitveApp.name === m.systemapp)
+			return _isSame
+		},
+    refresh () {
+      this.$emit('onRefresh')
+    }
+  },
+  mounted () {
+  },
+  created () {
+  }
+}
+
+</script>
+<style>
+.layout-header-panel .el-input-group__append, .el-input-group__prepend{
+  background-color: #fff !important;
+  color: #999 !important;
+  border: 1px solid #dcdfe6 !important;
+  cursor: pointer;
+}
+</style>
+<style scoped>
+
+/* .basic__layout__panel{
+  padding: 16px 0;
+} */
+.card__list{
+  display: flex;
+}
+.collection{
+  color: orange !important;
+}
+</style>

+ 2 - 1
src/main.js

@@ -18,6 +18,7 @@ import './style/style.css'
 import './style/theme/index.css'
 import tableLayout from './components/dynamic-table'
 import basicLayout from './components/normal-basic-layout'
+import normalLayout from './components/normal-basic-layout/normal.vue'
 import basicDetails from './components/normal-basic-layout/details'
 import deleteBtn from './components/delete_btn/index'
 import tagPanl from '@/components/tagPanl/tagPanl'
@@ -47,7 +48,7 @@ Vue.component('tableLayout', tableLayout)
 Vue.component('basicLayout', basicLayout)
 
 Vue.component('basicDetails', basicDetails)
-
+Vue.component('normalLayout', normalLayout)
 Vue.component('deleteBtn',deleteBtn)
 
 Vue.component('sort', sort)

+ 1 - 2
src/store/index.js

@@ -76,8 +76,7 @@ export default new Vuex.Store({
     },
     
     setActiveApp (state,data) {
-      console.log('执行setActiveApp')
-      sessionStorage.setItem('acitveApp',JSON.stringify(data.app))
+      data.app?sessionStorage.setItem('acitveApp',JSON.stringify(data.app)):''
       state.appname = data.name
       state.acitveApp = JSON.parse(sessionStorage.getItem('acitveApp'))
         //头部区域搜索所传入的数值

+ 1 - 1
vue.config.js

@@ -14,7 +14,7 @@ module.exports = {
       port: 8080,
       proxy: {
         '/apis': {
-          target: 'http://121.37.152.76:8080',  // target host
+          target: 'http://61.164.207.46:8080',  // target host
           // target: 'localhost:8080',  // target host
           ws: true,  // proxy websockets 
           changeOrigin: true,  // needed for virtual hosted sites