Browse Source

报表设置功能

qymljy 1 năm trước cách đây
mục cha
commit
10989d958c

+ 14 - 14
src/HDrpManagement/reportcenter/index.vue

@@ -1,13 +1,13 @@
 
 <template>
   <div>
-    <basicLayout 
-      ref="basicLayout" 
+    <basicLayout
+      ref="basicLayout"
       :oldFormPath="{
-        add:'HManagement/accountManage/modules'
+        add:'HDrpManagement/reportcenter/modules'
       }"
-      tableName="reportcenterTable" 
-      idName="userid" 
+      tableName="reportcenterTable"
+      idName="userid"
       :apiId="{query:20221213094401,del:20221031141202}"
       :options="options"
       :hideSearch="true"
@@ -31,21 +31,21 @@ export default {
   data () {
     return {
       options:[]
-      
+
     }
   },
   methods:{
     listCreate (params) {
       params.content.systemappid = JSON.parse(sessionStorage.getItem('activeApp')).systemappid
       console.log(params);
-      
+
     },
     listData (data) {
       console.log(data);
-      
+
     },
     async goDetail (data) {
-      
+
       let res = await this.$api.requested({
         "id":20221213094501,
         "content": {
@@ -56,19 +56,19 @@ export default {
       console.log(res);
       this.tool.showMessage(res,() => {
         console.log(this.tool.getBaseUrl(),res.data);
-        
-        window.open(this.tool.getBaseUrl() + res.data)  
+
+        window.open(this.tool.getBaseUrl() + res.data)
       })
-      
+
     }
   },
   // created () {
   //   setTimeout(() => {
-      
+
   //   },2000)
   // }
 }
 
 </script>
 <style scoped>
-</style>
+</style>

+ 65 - 0
src/HDrpManagement/reportcenterSet/index.vue

@@ -0,0 +1,65 @@
+<template>
+  <div>
+    <basicLayout
+      ref="basicLayout"
+      :oldFormPath="{add:'HDrpManagement/reportcenterSet/modules'}"
+      tableName="reportcenterSet"
+      idName="sys_reportid"
+      :apiId="{query:20230828112204,del:''}"
+      :hideSearch="true"
+    >
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname === 'isused'">
+          <i v-if="scope.data.column.data.isused == 1" class="el-icon-circle-check" style="color: green"></i>
+          <i v-else class="el-icon-circle-close" style="color: red"></i>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'reporttype'">
+          <el-tag size="mini">{{scope.data.column.data[[scope.data.column.columnname]]}}</el-tag>
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <edit v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="scope.data.data" @onSuccess="$refs.basicLayout.listData()"></edit>
+        <el-button v-if="tool.checkAuth($route.name,'delete')" type="text" size="mini" @click="onDel(scope.data.data)" :disabled="scope.data.data.isused == 1">删 除</el-button>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import edit from './modules/edit'
+export default {
+  name: "index",
+  components:{edit},
+  methods:{
+    onDel(row) {
+      this.$confirm('此操作将永久删除该报表设置, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async() => {
+        const res = await this.$api.requested({
+          "id": 20230828111404,
+          "content": {
+            "sys_reportid":row.sys_reportid
+          }
+        })
+        this.tool.showMessage(res,()=>{
+          this.$refs.basicLayout.listData()
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 115 - 0
src/HDrpManagement/reportcenterSet/modules/add.vue

@@ -0,0 +1,115 @@
+<template>
+  <div>
+    <el-button size="small" type="primary" @click="onShow">新 增</el-button>
+    <el-drawer
+        title="新增报表"
+        :visible.sync="visibleForm"
+        size="700px"
+        direction="rtl"
+        append-to-body
+        :show-close="false"
+        @close="onClose">
+      <div class="drawer__panel">
+        <el-row :gutter="10">
+          <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
+            <el-col :span="24">
+              <el-form-item label="应用:" prop="systemappid" :rules="{ required: true, message: '请选择应用', trigger: 'change'}">
+                <el-select v-model="form.systemappid" filterable placeholder="请选择应用" style="width: 100%">
+                  <el-option
+                      v-for="item in appOption"
+                      :key="item.rowindex"
+                      :label="item.systemclientname + '-' + item.systemmodulename + '-' + item.systemappname"
+                      :value="item.systemappid">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="报表名称:" prop="name" :rules="{ required: true, message: '请输入报表名称', trigger: 'blur'}">
+                <el-input v-model="form.name" placeholder="请输入报表名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="报表链接:" prop="path" :rules="{ required: true,message: '请输入报表链接', trigger: 'blur'}">
+                <el-input v-model="form.path" placeholder="请输入报表链接"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="是否启用:" prop="isused">
+                <el-switch
+                    v-model="form.isused"
+                    active-color="#13ce66"
+                    inactive-color="#ff4949"
+                    active-value="1"
+                    inactive-value="0">
+                </el-switch>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button  size="small" @click="onClose" class="normal-btn-width inline-16">取 消</el-button>
+        <el-button size="small" type="primary" :loading="loading" @click="onSave" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  data(){
+    return {
+      visibleForm:false,
+      appOption:[],
+      form:{
+        "path":"",
+        "name":"",
+        "sys_reportid":'0',
+        "systemappid":'',
+        "isused":'1'
+      },
+      rules:{
+
+      }
+    }
+  },
+  methods:{
+    onShow(){
+      this.visibleForm = true
+      this.queryApp()
+    },
+    async queryApp(){
+      const res = await this.$api.requested({
+        "classname":"sysmanage.develop.optiontype.optiontype",
+        "method":"optiontypeselect",
+        "content":{
+          "pageNumber":1,
+          "pageSize":10000,
+          "typename":"appselectwithoutcondition"
+        }
+      })
+      this.appOption = res.data
+    },
+    onSave(){
+      this.$refs.form.validate(async (validate)=>{
+        if (!validate) return false
+        const res = await this.$api.requested({
+          "id": 20230828110904,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.visibleForm = false
+          this.$emit('onSuccess')
+        })
+      })
+    },
+    onClose(){}
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 124 - 0
src/HDrpManagement/reportcenterSet/modules/edit.vue

@@ -0,0 +1,124 @@
+<template>
+  <div>
+    <el-button size="small" type="text" @click="onShow">编 辑</el-button>
+    <el-drawer
+        title="新增报表"
+        :visible.sync="visibleForm"
+        size="700px"
+        direction="rtl"
+        append-to-body
+        :show-close="false"
+        @close="onClose">
+      <div class="drawer__panel">
+        <el-row :gutter="10">
+          <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
+            <el-col :span="24">
+              <el-form-item label="应用:" prop="systemappid" :rules="{ required: true, message: '请选择应用', trigger: 'change'}">
+                <el-select v-model="form.systemappid" filterable placeholder="请选择应用" style="width: 100%">
+                  <el-option
+                      v-for="item in appOption"
+                      :key="item.rowindex"
+                      :label="item.systemclientname + '-' + item.systemmodulename + '-' + item.systemappname"
+                      :value="item.systemappid">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="报表名称:" prop="name" :rules="{ required: true,message: '请输入报表名称', trigger: 'blur'}">
+                <el-input v-model="form.name" placeholder="请输入报表名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="报表链接:" prop="path" :rules="{ required: true,message: '请输入报表链接', trigger: 'blur'}">
+                <el-input v-model="form.path" placeholder="请输入报表链接" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="是否启用:" prop="isused">
+                <el-switch
+                    v-model="form.isused"
+                    active-color="#13ce66"
+                    inactive-color="#ff4949"
+                    active-value="1"
+                    inactive-value="0">
+                </el-switch>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button  size="small" @click="onClose" class="normal-btn-width inline-16">取 消</el-button>
+        <el-button size="small" type="primary" :loading="loading" @click="onSave" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "edit",
+  props:["data"],
+  data(){
+    return {
+      visibleForm:false,
+      appOption:[],
+      form:{
+        "path":"",
+        "name":"",
+        "sys_reportid":'0',
+        "systemappid":'',
+        "isused":'1'
+      },
+      rules:{
+
+      }
+    }
+  },
+  methods:{
+    onShow(){
+      this.visibleForm = true
+      console.log(this.data,'data')
+      this.form = {
+        "path":this.data.path,
+        "name":this.data.name,
+        "sys_reportid":this.data.sys_reportid,
+        "systemappid":this.data.systemappid,
+        "isused":String(this.data.isused)
+      }
+      this.queryApp()
+    },
+    async queryApp(){
+      const res = await this.$api.requested({
+        "classname":"sysmanage.develop.optiontype.optiontype",
+        "method":"optiontypeselect",
+        "content":{
+          "pageNumber":1,
+          "pageSize":10000,
+          "typename":"appselectwithoutcondition"
+        }
+      })
+      this.appOption = res.data
+    },
+    onSave(){
+      this.$refs.form.validate(async (validate)=>{
+        if (!validate) return false
+        const res = await this.$api.requested({
+          "id": 20230828110904,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.visibleForm = false
+          this.$emit('onSuccess')
+        })
+      })
+    },
+    onClose(){}
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 10 - 0
src/router/HDrpManagement.js

@@ -535,6 +535,16 @@ const HDrpManagement = [
       },
     ]
   },{
+    path: '/reportcenterSet',
+    name: 'reportcenterSet',
+    meta: {
+      title: '报表设置',
+      ast_nav: true,
+      keeproute: true
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/reportcenterSet/index')
+  },
+  {
     path: '/writeoffbill',
     name:'writeoffbill',
     meta: {