zhuhao пре 1 година
родитељ
комит
2ceb5389ed

+ 3 - 1
src/views/components/dialog/fields.vue

@@ -26,7 +26,9 @@ export default {
   props: {
     filedList:{
         type:Array,
-        default:[]
+      default: () => {
+          return []
+        }
     }
   },
   data() {

+ 3 - 7
src/views/event/components/index.vue

@@ -172,11 +172,6 @@ export default {
           // 分组字段
           let conditionDTOList= JSON.parse(JSON.stringify(res.data[0].conditionDTOList))
           this.groupingOption = conditionDTOList.filter(item => {
-            var reg = /时间/;
-            if (item.name.indexOf('时间') != -1) {
-              let a = item.name.replace(reg, '月份')
-              item.name=a
-            }
             return item.ifGroup == true
           })
           // 搜索字段
@@ -257,7 +252,7 @@ export default {
     getGrouping() {
       let params = {
         ...this.queryParams,//分页信息
-        ...this.searchOption,//检索信息
+        // ...this.searchOption,//检索信息
         orderDTOList:this.sort,//排序
         groupBy:this.groupingValue,//分组信息
       }
@@ -294,6 +289,7 @@ export default {
 
     //获取排序字段// 子组件table排序
     handleSort({ column, prop, order, str }) {
+      this.sort=[]
       if (order == 'null') {
         return;
       }
@@ -312,13 +308,13 @@ export default {
         params.orderType = orderType[order]
         this.sort.push(params)
       }
+      this.queryParams.current = 1
       //1表示展开行2表示基础表格
       if (str == '1') {
         this.getGrouping()
       } else {//table排序
         this.getList()
       }
-      // this.queryParams.current = 1
     },
     // 区分是否为分组
     isGrouping() {

+ 6 - 0
src/views/event/components/mixins/index2.js

@@ -0,0 +1,6 @@
+// 
+export default {
+  methods: {
+    
+  },
+}

+ 6 - 44
src/views/event/components/view/mergeTable.vue

@@ -3,8 +3,8 @@
     <el-table :data="commonData" header-row-class-name="custom-table-header" @expand-change="expandChange"  @sort-change="sortChange">
       <el-table-column type="expand">
         <template slot-scope="props">
-          <div style="padding: 10px;">
-            <Table :data="showData[props.row.index]" :column="column" @option="handleOption" />
+          <div style="padding: 10px;height: 340px;">
+            <Table  :column="column"  @option="handleOption" :row="{row:props.row,groupBy:groupBy,searchOption:searchOption}"/>
           </div>
         </template>
       </el-table-column>
@@ -101,7 +101,9 @@ export default {
       // columnList: [],
       tableData: [],
       showData: [],
-      expandList:[],
+      expandList: [],
+
+      sort:[],
     }
   },
   watch: {
@@ -110,24 +112,6 @@ export default {
     
   },
   methods: {
-    //查询事件数据
-    getList() {
-      let params = {
-        size:10,
-        current:1,//分页信息
-        ...this.searchOption,//检索条件
-        orderDTOList: this.sort,//排序
-      }
-      this.$api.queryEvent(params).then(res => {
-        if (res.code == 200) {
-          this.tableData = res.data.data
-          this.total=res.data.total
-        }
-      }).catch(err => {
-        this.tableData = []
-        this.total=0
-      })
-    },
     // 排序
     sortChange({ column, prop, order }) {
       let str='1'
@@ -139,29 +123,7 @@ export default {
     },
     //打开展开行获取数据并保存起来
     expandChange(row, expandedRows) {
-      // console.log(row);
-      this.$emit('on-expand',row)
-      // let a=this.expandList.findIndex(item => {
-      //   return item == row.id
-      // })
-      // if (a != -1) {
-      //   if (row.isSave && row.isSave.length>0) {//若有从这里拿出来给到子组件的tableDate
-          
-      //   } else {
-      //     // 请求接口,并将返回的数据保存在row.isSave中
-
-      //   }
-      // } else {
-      //   this.expandList.push(row.id)
-      //   // 请求查询接口,将数据给到tableData以及row中的isSave中
-      //   // this.$api.query(params).then(res => {
-      //   //   if (res.code == 200) {
-      //   //     row.isSave = res.data
-      //   //     this.tableData=res.data
-      //   // 
-      //   //   }
-      //   // })
-      // }
+      
     }
   }
 }

+ 117 - 46
src/views/event/components/view/table.vue

@@ -1,50 +1,53 @@
 <template>
   <div class="eventTable height_100">
     <el-table :data="tableData" header-row-class-name="custom-table-header" @sort-change="sortChange"
-    v-el-table-infinite-scroll="getList"
-    :infinite-scroll-distance="10"
-      :infinite-scroll-disabled="disabled"
-      :height="row?300:auto">
+      v-el-table-infinite-scroll="getList" :infinite-scroll-distance="10" :infinite-scroll-disabled="disabled"
+      :height="row ? '300' : ''">
       <el-table-column label="#" width="60" type="index" align="center">
         <template slot-scope="scope">
           <span>{{ (scope.$index + 1) + ((queryParams.current - 1) * queryParams.size) }}</span>
         </template>
       </el-table-column>
 
-      <el-table-column v-for="item in column" :key="item.value" :prop="item.value" :label="item.name" align="center" sortable="custom">
+      <el-table-column v-for="item in column" :key="item.value" :prop="item.value" :label="item.name" align="center"
+        sortable="custom">
         <template slot-scope="scope">
           <div v-if="['name', 'reportProjectNum', 'patentProjectNum'].includes(item.value)">
             <el-link @click="handleItem(scope.row, item.value)">{{ scope.row[item.value] }}</el-link>
           </div>
-          <div v-else-if="['scenarioId','eventDate'].includes(item.value)" v-html="getColumnData(scope.row, item.value)"></div>
-          <div v-else>{{ scope.row[item.value]?scope.row[item.value]:'--' }}</div>
+          <div v-else-if="['scenarioId', 'eventDate'].includes(item.value)" v-html="getColumnData(scope.row, item.value)">
+          </div>
+          <div v-else>{{ scope.row[item.value] ? scope.row[item.value] : '--' }}</div>
         </template>
       </el-table-column>
 
-        <el-table-column v-if="['首页'].indexOf(isOperate) == -1" label="操作" align="center" width="150px" >
-          <template slot-scope="scope">
-            <el-dropdown split-button type="primary" size="small" @click="handleClick(scope.row)"
-              @command="handleCommand($event,scope.row)">
-              <span>编 辑</span>
-              <el-dropdown-menu slot="dropdown" style="text-align:center">
-                <el-dropdown-item command="0">新增专题库</el-dropdown-item>
-                <el-dropdown-item>
-                  <el-dropdown trigger="hover" placement="right-start">
-                    <span class="el-dropdown-link"> 新增报告 </span>
-                    <el-dropdown-menu  class="children_item" v-if="dictMessage.REPORT_TYPE">
-                        <el-dropdown-item v-for="item in dictMessage.REPORT_TYPE.filter(item=>!['6'].includes(item.dictChildValue))" :key="item.dictChildLabel"  @click.native="handleAnalyse(item.dictChildValue,scope.row)" v-if="$permission('/pcs/report/add/' + item.permission)">{{item.dictChildLabel}}</el-dropdown-item>
-                    </el-dropdown-menu>
-                </el-dropdown> 
-                </el-dropdown-item>
-                <el-dropdown-item command="10" divided style="color:red">删 除</el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-          </template>
-        </el-table-column>
-      </el-table>
+      <el-table-column v-if="['首页'].indexOf(isOperate) == -1" label="操作" align="center" width="150px">
+        <template slot-scope="scope">
+          <el-dropdown split-button type="primary" size="small" @click="handleClick(scope.row)"
+            @command="handleCommand($event, scope.row)">
+            <span>编 辑</span>
+            <el-dropdown-menu slot="dropdown" style="text-align:center">
+              <el-dropdown-item command="0">新增专题库</el-dropdown-item>
+              <el-dropdown-item>
+                <el-dropdown trigger="hover" placement="right-start">
+                  <span class="el-dropdown-link"> 新增报告 </span>
+                  <el-dropdown-menu class="children_item" v-if="dictMessage.REPORT_TYPE">
+                    <el-dropdown-item
+                      v-for="item in dictMessage.REPORT_TYPE.filter(item => !['6'].includes(item.dictChildValue))"
+                      :key="item.dictChildLabel" @click.native="handleAnalyse(item.dictChildValue, scope.row)"
+                      v-if="$permission('/pcs/report/add/' + item.permission)">{{ item.dictChildLabel }}</el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+              </el-dropdown-item>
+              <el-dropdown-item command="10" divided style="color:red">删 除</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </template>
+      </el-table-column>
+    </el-table>
 
-      <el-alert v-if="isflag" title="正在努力加载中..." type="success" center :closable="false" show-icon></el-alert>
-      <el-alert v-if="isMore" title="没有更多啦!" type="warning" center show-icon></el-alert>
+    <el-alert v-if="isFlag" title="正在努力加载中..." type="success" center :closable="false" show-icon></el-alert>
+    <el-alert v-if="isMore" title="没有更多啦!" type="warning" center show-icon></el-alert>
   </div>
 </template>
 
@@ -105,50 +108,118 @@ export default {
           }
         ]
       }
-    }
+    },
+    row: null
   },
   data() {
     return {
       //正在努力加载中
-      isflag:false,
+      isFlag: false,
       //没有更多啦!
-      isMore:false,
+      isMore: false,
       //禁用懒加载
-      disabled:true,
+      disabled: true,
+      params: {
+        size: 10,
+        current: 0
+      },
+      // 排序数组
+      sort: [],
     };
   },
   watch: {
 
   },
   mounted() {
-    if(!this.row){
+    if (!this.row) {
       this.disabled = true
-    }else{
-      this.getList()
+    } else {
+      this.disabled = false
+      // this.getList()
     }
   },
   methods: {
+    getList() {
+      if (!this.row) return;
+      if (this.params.current * this.params.size >= this.params.total) {
+        this.isMore = true
+        if (!this.row.searchOption) {
+          this.disabled = true
+        }
+        setTimeout(() => {
+          this.isMore = false;
+          this.isFlag = false
+        }, 1000)
+      }
+      if (this.disabled) return;
+      if (!this.row.searchOption) {
+        this.params.current += 1
+      } else {
+        this.params.current = 1
+        this.tableData=[]
+      }
+      let params = {
+        ...this.params,
+        ...this.row.searchOption,//检索条件
+        orderDTOList: this.sort,//排序
+        groupField: this.row.groupBy,
+        groupFieldValue: this.row.row.value,
+      }
+      this.isMore = false;
+      this.isFlag = true;
+      this.$api.queryEvent(params).then(res => {
+        if (res.code == 200) {
+          this.tableData = this.tableData.concat(res.data.data)
+          this.params.total = res.data.total
+        }
+      }).catch(err => {
+        this.tableData = []
+      })
+      setTimeout(() => {
+
+        this.isMore = false;
+        this.isFlag = false
+      }, 1000)
+    },
     // 排序
     sortChange({ column, prop, order }) {
-      this.$emit('on-sort',{ column, prop, order })
+      this.handleSort({ column, prop, order })
+      this.$emit('on-sort', { column, prop, order })
+    },
+    // 排序方法
+    handleSort({ column, prop, order }) {
+      if (order == 'null') {
+        return;
+      }
+      var orderType = {
+        ascending: 0,
+        descending: 1
+      }
+      var params = this.sort.find(item => {
+        return item.orderBy == prop
+      })
+      if (params) {
+        params.orderType = orderType[order]
+      } else {
+        params = {}
+        params.orderBy = prop
+        params.orderType = orderType[order]
+        this.sort.push(params)
+      }
+      this.getList()
     },
-   
-    // 
+    // 数据处理
     getColumnData(row, key) {
       if (key == 'scenarioId') {
         if (row.scenarioName) {
-          // var a = ''
-          // row.scenarioName.forEach(item => {
-          //   a += item.name + '</br>'
-          // });
           return row.scenarioName
         } else {
           return '--'
-        } 
+        }
       }
       else if (key == 'eventDate') {
         if (row.eventDate) {
-          return row.eventDate.slice(0,10)
+          return row.eventDate.slice(0, 10)
         } else {
           return '--'
         }

+ 0 - 1
src/views/product/components/view/productTable.vue

@@ -254,7 +254,6 @@ export default {
         this.isMore = true 
         this.disabled = true
       }
-
       this.$nextTick(()=>{
         this.isMore = false;
         this.isflag = false