| 
					
				 | 
			
			
				@@ -0,0 +1,213 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <basic-container> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <avue-crud 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :option="option" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :data="dataList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ref="crud" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v-model="form" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :page.sync="page" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :search.sync="search" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @search-change="searchChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @current-change="currentChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @size-change="sizeChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @refresh-change="refreshChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @on-load="onLoad" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @saveColumn="saveColumn" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @resetColumn="resetColumn" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :table-loading="loading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template slot="moudleNameSearch"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="search.moudleName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-for="(item, index) in moudleOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :label="item.label" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :value="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :key="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template slot-scope="scope" slot="moudleName"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <span>{{ scope.row.moudleName | moudleNameFormat(moudleOption) }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template slot="menu" slot-scope="{ row, index }"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type="text" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            icon="el-icon-unlock" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @click="rowUnlock(row, index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          >解锁</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </avue-crud> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </basic-container> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import option from "./config/mainList.json"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {lockList, lockRemove} from "@/api/lock/lock"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: "index", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      option: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      dataList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      page: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pageSize: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pagerCount: 5, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      search: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      loading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      moudleOption: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '销售', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'xs' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '采购', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'cg' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '发货', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'fh' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '收货', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'sh' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '收费', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'sf' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '付费', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'ff' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '进项', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'jx' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '销项', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          value: 'xx' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  async created() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.option = await this.getColumnData(this.getColumnName(73), option); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.option.column.forEach(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (item.search) i++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (i % 3 !== 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const num = 3 - Number(i % 3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.option.searchMenuSpan = num * 8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.option.searchMenuPosition = "right"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  filters: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    moudleNameFormat(row, moudleOption) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      moudleOption.map((e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (row == e.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          name = e.label 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    searchChange(params, done) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.onLoad(this.page, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      done(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    currentChange(val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.page.currentPage = val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sizeChange(val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.page.currentPage = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.page.pageSize = val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refreshChange() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.dataList.forEach(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs.crud.toggleRowExpansion(item, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.page.currentPage = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.onLoad(this.page, this.search); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onLoad(page, params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.dataList.forEach(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs.crud.toggleRowExpansion(item, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      lockList(page.currentPage, page.pageSize, params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.dataList = res.data.data.records ? res.data.data.records : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.page.total = res.data.data.total; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (this.page.total) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.option.height = window.innerHeight - 260; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.dataList.forEach(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$set(item,'insideList',[]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$set(item,'loading', true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .finally(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.loading = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 解锁 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rowUnlock(row, index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$confirm('是否确认解锁?', '提示', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        confirmButtonText: "确定", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cancelButtonText: "取消", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: "warning" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }).then(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return lockRemove({ids: row.id}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }).then(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: "success", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          message: "操作成功!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.page.currentPage = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.onLoad(this.page, {parentId: 0}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async saveColumn() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const inSave = await this.saveColumnData( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getColumnName(73), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (inSave) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.success("保存成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //关闭窗口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs.crud.$refs.dialogColumn.columnBox = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async resetColumn() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.option = option; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const inSave = await this.delColumnData( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getColumnName(73), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (inSave) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.success("重置成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //关闭窗口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs.crud.$refs.dialogColumn.columnBox = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |