Selaa lähdekoodia

代码更新,数据过滤

qymljy 2 vuotta sitten
vanhempi
commit
bd3c71005f

+ 104 - 0
src/HManagement/roleManage/modules/dataFiltering.vue

@@ -0,0 +1,104 @@
+<template>
+  <div>
+    <div>
+      <filteringAdd @addSuccess="onSuccess"></filteringAdd>
+    </div>
+    <div style="margin-top: 20px">
+      <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  :height="tableHieght">
+        <template v-slot:customcol="scope">
+          <div >{{scope.column.data[scope.column.columnname]}}</div>
+        </template>
+        <template v-slot:opreation="scope">
+          <filteringEdit class="inline-16" :data="scope.data" @editSuccess="onSuccess"></filteringEdit>
+          <el-popconfirm
+              title="确定删除改内容吗?"
+              @confirm="onDel(scope.data)"
+          >
+            <el-button type="text" size="mini" slot="reference">删除</el-button>
+          </el-popconfirm>
+        </template>
+      </tableLayout>
+      <div  class="container normal-panel" style="text-align:right">
+        <el-pagination
+            background
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[20, 50, 100, 200]"
+            layout="total,sizes, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import filteringAdd from './filteringAdd'
+import filteringEdit from './filteringEdit'
+export default {
+  name: "dataFiltering",
+  components:{filteringAdd,filteringEdit},
+  data(){
+    return {
+      tablecols:[],
+      list:[],
+      tableHieght:600,
+      total:0,
+      currentPage:0,
+      param:{
+        "id": 20230216181301,
+        "content": {
+          "pageSize":20,
+          "pageNumber":1,
+          "roleid": this.$route.query.id
+        }
+      }
+    }
+  },
+ methods:{
+    async listData(){
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+      console.log(this.list,'表格数据')
+    },
+   onSuccess(){
+     this.listData()
+   },
+   handleSizeChange(val) {
+     // console.log(`每页 ${val} 条`);
+     this.param.content.pageSize = val
+     this.listData()
+   },
+   handleCurrentChange(val) {
+     // console.log(`当前页: ${val}`);
+     this.param.content.pageNumber = val
+     this.listData()
+   },
+   async onDel(row){
+      const res = await this.$api.requested({
+       "id": 20230216181401,
+       "content": {
+          "roleid": this.$route.query.id,
+         "sys_role_datalimitids": [row.sys_role_datalimitid]
+        }
+      })
+     this.tool.showMessage(res,()=>{
+       this.listData()
+     })
+   }
+ },
+  mounted() {
+    this.listData()
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name).dataFilteringTable.tablecols
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 125 - 0
src/HManagement/roleManage/modules/filteringAdd.vue

@@ -0,0 +1,125 @@
+<template>
+  <div>
+    <el-button type="primary" size="small" @click="onShow">添加</el-button>
+    <el-drawer
+        title="添加数据过滤"
+        :visible.sync="drawer"
+        size="700px"
+        direction="rtl"
+        append-to-body
+        :show-close="false"
+        @close="drawer = false;$refs.form.resetFields()">
+      <div class="drawer__panel">
+        <el-row>
+          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
+            <el-col :span="24">
+              <el-form-item label="表格名称:" label-width="90px" prop="table_name">
+                <el-select v-model="form.table_name" filterable placeholder="请选择表格名称" style="width: 100%">
+                  <el-option
+                      v-for="item in tableData"
+                      :key="item.table_name"
+                      :label="item.table_name"
+                      :value="item.table_name">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="查询语句:" label-width="90px" prop="sqlstr">
+                <el-input type="textarea" :rows="10" v-model="form.sqlstr" autocomplete="off" placeholder="请输入查询语句"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="备注:" label-width="90px" prop="sqlstr">
+                <p>:userid 登陆的账号ID</p>
+                <p>:sys_enterpriseid 登陆账号的所属企业ID,缺省值为0</p>
+                <p>:departmentid 登陆账号的所属部门ID,缺省值为0</p>
+                <p>:subuserids 登陆账号的下级账号ID,如[1,2,3]</p>
+                <p>:subdepartmentids 登陆账号所在部门的下级部门ID,如[1,2,3]</p>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false;$refs.form.resetFields()" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "filteringAdd",
+  data(){
+    return {
+      param:{
+        "classname": "sysmanage.develop.optiontype.optiontype",
+        "method": "optiontypeselect",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "typename": 'tablenameselect',
+          "parameter": {
+          }
+        }
+      },
+      loading: false,
+      drawer:false,
+      tableShow:false,
+      tableData:[],
+      options:[],
+      total:0,
+      currentPage:0,
+      form:{
+        roleid:'',
+        sys_role_datalimitid:0,
+        table_name:"",
+        sqlstr:""
+      },
+      rules:{
+        table_name: [
+          { required: true, message: '请选择数据表', trigger: 'change' },
+        ],
+      }
+    }
+  },
+  methods:{
+    onShow(){
+      this.drawer = true
+      this.queryTable()
+    },
+    async queryTable(){
+      this.$store.dispatch('optiontypeselect','tablenameselect').then(res=>{
+        this.tableData = res.data
+      })
+    },
+    checkTable(val){
+      this.form.table_name = val.table_name
+    },
+    onSubmit(){
+      this.$refs.form.validate(async(valid) =>{
+        if (!valid) return false
+        this.form.roleid = this.$route.query.id
+        const res = await this.$api.requested({
+            "id": 20230216181501,
+            "content":this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.drawer = false
+          this.$refs.form.resetFields()
+          this.$emit('addSuccess')
+        })
+      })
+    },
+  },
+  mounted() {
+
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 116 - 0
src/HManagement/roleManage/modules/filteringEdit.vue

@@ -0,0 +1,116 @@
+<template>
+  <div>
+    <el-button type="text" size="mini" @click="onShow">编辑</el-button>
+    <el-drawer
+        title="编辑数据过滤"
+        :visible.sync="drawer"
+        size="700px"
+        direction="rtl"
+        append-to-body
+        :show-close="false"
+        @close="drawer = false;$refs.form.resetFields()">
+      <div class="drawer__panel">
+        <el-row>
+          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
+            <el-col :span="24">
+              <el-form-item label="表格名称:" label-width="90px" prop="table_name">
+                <el-select v-model="form.table_name" filterable placeholder="请选择表格名称" style="width: 100%" disabled>
+                  <el-option
+                      v-for="item in tableData"
+                      :key="item.table_name"
+                      :label="item.table_name"
+                      :value="item.table_name">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="查询语句:" label-width="90px" prop="sqlstr">
+                <el-input type="textarea" :rows="10" v-model="form.sqlstr" autocomplete="off" placeholder="请输入查询语句"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="备注:" label-width="90px" prop="sqlstr">
+                <p>:userid 登陆的账号ID</p>
+                <p>:sys_enterpriseid 登陆账号的所属企业ID,缺省值为0</p>
+                <p>:departmentid 登陆账号的所属部门ID,缺省值为0</p>
+                <p>:subuserids 登陆账号的下级账号ID,如[1,2,3]</p>
+                <p>:subdepartmentids 登陆账号所在部门的下级部门ID,如[1,2,3]</p>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false;$refs.form.resetFields()" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "filteringEdit",
+  props:["data"],
+  data(){
+    return {
+      param:{
+        "classname": "sysmanage.develop.optiontype.optiontype",
+        "method": "optiontypeselect",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "typename": 'tablenameselect',
+          "parameter": {
+          }
+        }
+      },
+      loading: false,
+      drawer:false,
+      tableShow:false,
+      tableData:[],
+      options:[],
+      total:0,
+      currentPage:0,
+      form:{
+        roleid:'',
+        sys_role_datalimitid:0,
+        table_name:"",
+        sqlstr:""
+      },
+      rules:{
+        table_name: [
+          { required: true, message: '请选择数据表', trigger: 'change' },
+        ],
+      }
+    }
+  },
+  methods:{
+    onShow(){
+      this.drawer = true
+      this.form = Object.assign({},this.form,this.data)
+      console.log(this.data,"data数据")
+    },
+    onSubmit(){
+      this.$refs.form.validate(async(valid) =>{
+        if (!valid) return false
+        this.form.roleid = this.$route.query.id
+        const res = await this.$api.requested({
+          "id": 20230216181501,
+          "content":this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.drawer = false
+          this.$refs.form.resetFields()
+          this.$emit('editSuccess')
+        })
+      })
+    },
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 9 - 2
src/HManagement/roleManage/modules/role_details.vue

@@ -11,7 +11,7 @@
         idname="roleid"
         ownertable="sys_role"
         tags=""
-        :tabs="['角色授权','报表授权']"
+        :tabs="['角色授权','报表授权','数据过滤']"
         @pageChange="pageChange"
         @onEditSuccess="queryMainData($route.query.id)">
       <div slot="tags">
@@ -31,6 +31,11 @@
           <el-button slot="cancel" size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
         </reportCenter>
       </div>
+      <div class="container normal-panel" slot="slot2" >
+       <dataFiltering :data="{roleid:$route.query.id}">
+
+       </dataFiltering>
+      </div>
     </basicDetails>
   </div>
 </template>
@@ -38,6 +43,7 @@
 <script>
 import roleContentTemp from './roleContent'
 import reportCenter from './reportCenter'
+import dataFiltering from './dataFiltering'
 export default {
   name: "detail",
   data() {
@@ -64,7 +70,8 @@ export default {
   },
   components:{
     roleContentTemp,
-    reportCenter
+    reportCenter,
+    dataFiltering
   },
   methods:{
     async queryMainData(id) {