Browse Source

新增模板custom插槽

zhangqiOMG 2 years ago
parent
commit
e4d167be10

+ 2 - 2
src/Form/EnterpriseArchives/edit.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="mini" type="text" @click="onShow">编 辑</el-button>
+    <el-button size="mini" :type="btnType?btnType:'text'" @click="onShow">编 辑</el-button>
     <el-dialog title="编 辑" :visible.sync="dialogFormVisible">
       <el-row :gutter="20">
         <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="left" size="mini">
@@ -52,7 +52,7 @@
 <script>
 import {mapGetters} from 'vuex'
 export default {
-  props:['data'],
+  props:['data','btnType'],
   data () {
     return {
       dialogFormVisible:false,

+ 2 - 1
src/HManagement/EnterpriseArchives/index.vue

@@ -3,11 +3,12 @@
   <div>
     <basicLayout 
       ref="basicLayout" 
-      formPath="EnterpriseArchives" 
+      formPath="EnterpriseArchives"
       tableName="EnterpriseArchivesTable" 
       idName="sys_enterpriseid" 
       :apiId="{query:20220920083901,del:20220920084201}"
       :options="options">
+      <div slot="custom"></div>
       <template v-slot:tbList="scope">
         <div>
           {{scope.data.column.data[[scope.data.column.columnname]]}}

+ 7 - 2
src/HManagement/EnterpriseArchives/modules/details.vue

@@ -1,10 +1,15 @@
 <template>
   <basicDetails 
-    :titleText="mainData.enterprisename" 
+    :titleText="mainData.enterprisename"
+    formPath="EnterpriseArchives"
+    :editData="mainData"
     :mainAreaData="mainAreaData" 
     turnPageId="20220920083901" 
     idname="sys_enterpriseid" 
-    @pageChange="pageChange">
+    @pageChange="pageChange"
+    @onEditSuccess="queryMainData($route.query.id)">
+    <div slot="custom">
+    </div>
   </basicDetails>
 </template>
 

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

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div class="container normal-panel normal-margin">
+    <div class="container normal-panel normal-margin flex-align-center flex-between">
       <div class="flex-align-center">
         <p class="appname inline-16">{{routerName}}</p>
         <div class="flex-align-center">
@@ -11,9 +11,12 @@
           </div>
         </div>
       </div>
+      <div>
+        <cpAdd :formPath="formPath" :data="editData" btnType="default" @onSuccess="onSuccess"></cpAdd>
+      </div>
     </div>
     <div class="container normal-panel normal-margin">
-      <el-descriptions :column="4">
+      <el-descriptions title="基本信息" :column="4">
           <el-descriptions-item v-for="item in mainAreaData" :key="item.index" :label="item.label">{{item.value?item.value:'--'}}</el-descriptions-item>
       </el-descriptions>
     </div>
@@ -22,8 +25,9 @@
 </template>
 
 <script>
+import cpAdd from '../modules/cpEdit.vue'
 export default {
-  props:['titleText','mainAreaData','turnPageId','idname'],
+  props:['titleText','mainAreaData','turnPageId','idname','formPath','editData'],
   data () {
     return {
       routerName:'',
@@ -31,6 +35,9 @@ export default {
       total:0
     }
   },
+  components:{
+    cpAdd
+  },
   methods:{
     async queryData (pageNumber) {
       const res = await this.$api.requested({
@@ -53,6 +60,9 @@ export default {
     previous () {
       this.rowindex -= 1
       this.queryData(this.rowindex)
+    },
+    onSuccess () {
+      this.$emit('onEditSuccess')
     }
   },
   created () {

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

@@ -23,25 +23,23 @@
         </div>
       </div>
       <div class="flex-align-center flex-between">
-        <div>
+        <div class="flex-align-center">
           <setColumn :layout="layout" @changeColumn="changeColumn"></setColumn>&nbsp;
           <el-input placeholder="请输入内容" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" style="width:350px" size="mini" class="input-with-select" clearable>
             <el-select v-if="options.length > 0" v-model="select" slot="prepend" style="width:100px" placeholder="请选择" @change="selectChange">
               <el-option v-for="item in options" :key="item.index" :label="item.label" :value="item.value"></el-option>
             </el-select>
             <el-button slot="append" icon="el-icon-search" @click="listData(param.content.pageNumber = 1)">查 询</el-button>
-          </el-input>
-         
+          </el-input>&nbsp;
+          <slot name="custom"></slot>
         </div>
         <div>
           <el-button-group class="inline-16">
             <el-button type="default" :disabled="selection.length === 0" size="mini" icon="el-icon-delete" @click="deleteData">删 除</el-button>
           </el-button-group>
-          <!-- <i class="el-icon-setting inline-16"></i> -->
           <setFixed :data="tableLayout" @onFixedClick="onFixedClick"></setFixed>
           <i class="el-icon-refresh" @click="listData(param.content.pageNumber = 1,param.content.where.condition = '')"></i>
         </div>
-        <!-- <p><small class="inline-16">已选择&nbsp;{{selection.length}}&nbsp;条</small></p> -->
       </div>
     </div>
     <tableComponent ref="table" v-if="refreshTable" :layout="tableLayout" :tableName="tableName" :custom="true" :data="list" :fixRightData="fixRightData" :fixLeftData="fixLeftData" @checkboxCallBack="checkboxCallBack">

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

@@ -1,12 +1,12 @@
 <template>
   <div class="inline-16">
-    <component :is="formComponent" :data="data" @onSuccess="onSuccess"></component>
+    <component :is="formComponent" :data="data" :btnType="btnType" @onSuccess="onSuccess"></component>
   </div>
 </template>
 
 <script>
 export default {
-  props:['formPath','data'],
+  props:['formPath','data','btnType'],
   data () {
     return {
     }

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

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-table ref="tables" :row-class-name="tableClassName" v-loading="loading" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" @row-click="rowClick" style="width:100%;height:calc(100vh - 296px)" @selection-change="handleSelectionChange"  border>
+    <el-table stripe ref="tables" :row-class-name="tableClassName" v-loading="loading" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" @row-click="rowClick" style="width:100%;height:calc(100vh - 296px)" @selection-change="handleSelectionChange"  border>
       <el-table-column
         type="selection"
         width="45" 

+ 1 - 0
src/demo.vue

@@ -2,6 +2,7 @@
 <template>
   <div>
     <basicLayout ref="basicLayout" formPath="EnterpriseArchives" tableName="EnterpriseArchivesTable" idName="sys_enterpriseid" :apiId="{query:20220920083901,del:20220920084201}" :options="options">
+      <div slot="custom"></div>
       <template v-slot:tbList="scope">
         <div>
           {{scope.data.column.data[[scope.data.column.columnname]]}}