From 390c3dd9027f3d112bebc0864b9dc70b15d5457e Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期五, 03 十一月 2023 09:39:40 +0800
Subject: [PATCH] 查询

---
 src/views/system/NewPermissionList.vue   |   15 +++
 src/views/system/modules/SecretModel.vue |   59 ++++++++++++++
 src/views/system/modules/SecretForm.vue  |  153 ++++++++++++++++++++++++++++++++++++++
 src/views/base/Secret.vue                |    0 
 4 files changed, 226 insertions(+), 1 deletions(-)

diff --git a/src/views/base/Secret.vue b/src/views/base/Secret.vue
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/views/base/Secret.vue
diff --git a/src/views/system/NewPermissionList.vue b/src/views/system/NewPermissionList.vue
index e23fa6c..771e49b 100644
--- a/src/views/system/NewPermissionList.vue
+++ b/src/views/system/NewPermissionList.vue
@@ -11,6 +11,7 @@
         type="primary"
         icon="delete">鎵归噺鍒犻櫎
       </a-button>
+      <a-button @click="handleSecret" type="primary" icon="frown" v-if="selectionRows.length===1&&selectionRows[0].title==='鑺濋夯寮�闂�'">鏌ヨ</a-button>
     </div>
 
     <!-- table鍖哄煙-begin -->
@@ -75,6 +76,7 @@
 
     <permission-modal ref="modalForm" @ok="modalFormOk"></permission-modal>
     <permission-data-rule-list ref="PermissionDataRuleList" @ok="modalFormOk"></permission-data-rule-list>
+    <secret-model ref="secret"></secret-model>
 
   </a-card>
 </template>
@@ -85,6 +87,7 @@
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
   import PermissionDataRuleList from './PermissionDataRuleList'
   import JEllipsis from '@/components/jeecg/JEllipsis'
+import SecretModel from './modules/SecretModel.vue'
 
   const columns = [
     {
@@ -147,7 +150,8 @@
     components: {
       PermissionDataRuleList,
       PermissionModal,
-      JEllipsis
+      JEllipsis,
+        SecretModel
     },
     data() {
       return {
@@ -185,6 +189,10 @@
           })
         }
       },
+      onSelectChange(selectedRowKeys, selectionRows) {
+        this.selectedRowKeys = selectedRowKeys;
+        this.selectionRows = selectionRows;
+      },
       // 鏍规嵁宸插睍寮�鐨勮鏌ヨ鏁版嵁锛堢敤浜庝繚瀛樺悗鍒锋柊鏃跺紓姝ュ姞杞藉瓙绾х殑鏁版嵁锛�
       loadDataByExpandedRows(dataList) {
         if (this.expandedRowKeys.length > 0) {
@@ -220,6 +228,11 @@
       handleExpandedRowsChange(expandedRows) {
         this.expandedRowKeys = expandedRows
       },
+      handleSecret(){
+        this.$refs.secret.title='绉樺瘑'
+        this.$refs.secret.add();
+        
+      }
     }
   }
 </script>
diff --git a/src/views/system/modules/SecretForm.vue b/src/views/system/modules/SecretForm.vue
new file mode 100644
index 0000000..0c22480
--- /dev/null
+++ b/src/views/system/modules/SecretForm.vue
@@ -0,0 +1,153 @@
+<template>
+  <a-spin :spinning="confirmLoading">
+    <j-form-container :disabled="formDisabled">
+      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+        <a-row>
+          <a-col :span="24">
+            <a-form-model-item label="绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
+              <a-input v-model="model.type" placeholder="璇疯緭鍏ョ被鍨�"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="鏌ヨ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sql">
+              <a-textarea v-model="model.sql" rows="4" placeholder="璇疯緭鍏ユ煡璇�" />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </j-form-container>
+  </a-spin>
+</template>
+
+<script>
+
+  import { httpAction, getAction } from '@/api/manage'
+  import { validateDuplicateValue } from '@/utils/util'
+
+  export default {
+    name: 'SecretForm',
+    components: {
+    },
+    props: {
+      //琛ㄥ崟绂佺敤
+      disabled: {
+        type: Boolean,
+        default: false,
+        required: false
+      }
+    },
+    data () {
+      return {
+        name:'',
+        code:'',
+        model:{
+         },
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+        confirmLoading: false,
+        validatorRules: {
+           type : [
+              { required: true, message: '璇疯緭鍏ql绫诲瀷!'},
+           ],
+           sql:[{ required: true, message: '璇疯緭鍏ql!'},]
+        },
+        url: {
+          add: "/sys/permission/addSecret",
+          edit: "/base/departmentCategory/edit",
+          queryById: "/base/departmentCategory/queryById",
+          check:"/base/departmentCategory/check"
+        }
+      }
+    },
+    computed: {
+      formDisabled(){
+        return this.disabled
+      },
+    },
+    created () {
+       //澶囦唤model鍘熷鍊�
+      this.modelDefault = JSON.parse(JSON.stringify(this.model));
+    },
+    methods: {
+      add () {
+        this.edit(this.modelDefault);
+      },
+      edit (record) {
+        this.model = Object.assign({}, record);
+        this.name=this.model.name;
+        this.code=this.model.code;
+        this.visible = true;
+
+      },
+      submitForm () {
+        const that = this;
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = true;
+            let httpurl = '';
+            let method = '';
+            if(!this.model.id){
+              httpurl+=this.url.add;
+              method = 'post';
+            }else{
+              httpurl+=this.url.edit;
+               method = 'put';
+            }
+            httpAction(httpurl,this.model,method).then((res)=>{
+              if(res.success){
+                that.$message.success(res.message);
+                that.$emit('ok');
+              }else{
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+            })
+          }
+         
+        })
+      },
+      validateCode(rule, value, callback){
+        var params = {
+        code:value,
+        delFlag:'0',
+      };
+      getAction(this.url.check,params).then(res=>{
+            if(res.result.length==0){
+              callback();
+            }
+            else if(this.model.id&&this.code==value){
+              callback();
+            }
+            else{
+              callback('閮ㄩ棬绫诲瀷缂栫爜閲嶅')
+            }
+        })
+      },
+      validateName(rule, value, callback){
+        var params = {
+        name:value,
+        delFlag:'0',
+      };
+      getAction(this.url.check,params).then(res=>{
+            if(res.result.length==0){
+              callback();
+            }
+            else if(this.model.id&&this.name==value){
+              callback();
+            }
+            else{
+              callback('閮ㄩ棬绫诲瀷鍚嶇О閲嶅')
+            }
+        })
+      },
+    }
+  }
+</script>
\ No newline at end of file
diff --git a/src/views/system/modules/SecretModel.vue b/src/views/system/modules/SecretModel.vue
new file mode 100644
index 0000000..361b014
--- /dev/null
+++ b/src/views/system/modules/SecretModel.vue
@@ -0,0 +1,59 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+    @cancel="handleCancel"
+    cancelText="鍏抽棴">
+    <secret-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></secret-form>
+  </j-modal>
+</template>
+
+<script>
+  import SecretForm from './SecretForm.vue'
+  export default {
+    name: 'SecretModal',
+    components: {
+        SecretForm
+    },
+    data () {
+      return {
+        title:'',
+        width:800,
+        visible: false,
+        disableSubmit: false
+      }
+    },
+    methods: {
+      add () {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.add();
+        })
+      },
+      edit (record) {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.edit(record);
+        })
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleOk () {
+        this.$refs.realForm.submitForm();
+      },
+      submitCallback(){
+        this.$emit('ok');
+        this.visible = false;
+      },
+      handleCancel () {
+        this.close()
+      }
+    }
+  }
+</script>
\ No newline at end of file

--
Gitblit v1.9.3