From 5042cc0622d36e3df27d0d086219ba17bc40e2f5 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 06 九月 2024 18:29:55 +0800
Subject: [PATCH] 查询模板

---
 Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue |  121 ++++++++++++++++++++++++++++------------
 1 files changed, 84 insertions(+), 37 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
index 8afee4f..e69bd83 100644
--- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
+++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
@@ -1,62 +1,86 @@
 <template>
-    <el-dialog
-      v-dialogDrag
-      :close-on-click-modal="false"
-      :destroy-on-close="true"
-      :title="title"
-      :visible.sync="visible"
-      append-to-body="true"
-      class="avue-dialog"
-      style="text-align: center"
-      width="40%"
-      @close="dialogClose">
-      <el-transfer
-        v-model="rightRoleData"
-        v-loading="loading"
-        :data="data"
-        :filter-method="filterMethod"
-        :render-content="renderFunc"
-        :titles="['鐜版湁瑙掕壊', '鎷ユ湁瑙掕壊']"
-        filter-placeholder="瑙掕壊鍚嶇О鎼滅储"
-        filterable
-        style="text-align: left; display: inline-block;">
-      </el-transfer>
-      <span slot="footer" class="dialog-footer">
-    <el-button @click="visible = false">鍙� 娑�</el-button>
-    <el-button type="primary" @click="sendHandler">纭� 瀹�</el-button>
-  </span>
-    </el-dialog>
+  <el-dialog
+    v-dialogDrag
+    :close-on-click-modal="false"
+    :title="title"
+    :visible.sync="visible"
+    append-to-body="true"
+    class="avue-dialog"
+    style="text-align: center"
+    width="50%"
+    @close="dialogClose">
+    <div style="margin-bottom: 20px;" v-if="topMethodsObj !== {} && topMethodsObj">
+      <div>
+        <span>瀵煎嚭鏂瑰紡锛�</span>
+        <el-radio-group v-model="radio">
+          <el-radio :label="0" v-if="topMethodsObj.select">閫夋嫨</el-radio>
+          <el-radio :label="1" v-if="topMethodsObj.all">鍏ㄩ儴</el-radio>
+          <el-radio :label="2" v-if="topMethodsObj.page">椤电爜</el-radio>
+        </el-radio-group>
+        <span v-if="radio === 2" style="margin-left: 20px;color: #F56C6C; ">
+          <el-input v-model="pageExport" style="width: 150px"></el-input> 锛堣緭鍏ラ〉鐮佹垨鑰呴〉闈㈣寖鍥达紝濡傦細1-10锛�</span>
+      </div>
+    </div>
+    <el-transfer
+      v-model="rightRoleData"
+      v-loading="loading"
+      :data="data"
+      :filter-method="filterMethod"
+      :render-content="renderFunc"
+      :titles="transferTitle"
+      filter-placeholder="鍏抽敭璇嶆悳绱�"
+      filterable
+      style="text-align: left; display: inline-block;">
+    </el-transfer>
+    <div slot="footer" class="dialog-footer">
+      <div v-if="bottomValue" class="valueInfo">宸茶缃殑鍊间负锛歔{{ bottomValue }}]</div>
+      <el-button size="small" @click="visible = false">鍙� 娑�</el-button>
+      <el-button size="small" type="primary" @click="sendHandler">纭� 瀹�</el-button>
+    </div>
+  </el-dialog>
 </template>
 
 <script>
+import func from "@/util/func";
+
 export default {
   name: "transfer",
-  props: ['title', 'leftRoleData', 'rightRoleData'],
+  props: ['title', 'leftRoleData', 'rightRoleData', 'transferTitle', 'bottomValue', 'topMethodsObj', 'selectList'],
+  /**
+   * topMethodsObj:{
+        select:true,
+        all:true,
+        page:false
+      },
+   鎺у埗椤跺眰閫夋嫨椤规槸鍚﹀睍绀猴紝闇�瑕侀厤鍚坰electList浣跨敤
+   * @returns {object}
+   */
   data() {
     return {
+      radio: 0,
+      pageExport: "",
       visible: false, // 閫氳繃 this.$refs.transfer.visible = true; 寮�鍚瓙缁勪欢瀵硅瘽妗�
       data: [],
-      value: [],
       loading: false,
       filterMethod(query, item) {
         return item.label.indexOf(query) > -1;
       },
       renderFunc(h, option) {
-        return <span><i class="el-icon-s-custom"></i> { option.label }</span>;
+        return <span><i class="el-icon-s-custom"></i> {option.label}</span>;
       }
     }
   },
   watch: {
     //娓叉煋绌挎妗�
     leftRoleData: {
-      handler(newval, oldval) {
+      handler(newval) {
         if (newval) {
           // 娓呯┖data鏁扮粍
           this.data = [];
-          newval.forEach((city, index) => {
+          newval.forEach((item) => {
             this.data.push({
-              label: city.name,
-              key: city.oid,
+              label: item.name,
+              key: item.oid,
             });
           });
           this.loading = false;
@@ -74,7 +98,20 @@
       this.leftRoleData = [];
     },
     sendHandler() {
-      this.$emit('transferSend', this.rightRoleData);
+      if (func.isEmptyObject(this.topMethodsObj)) {
+        this.$emit('transferSend', this.rightRoleData);
+      } else {
+        if (this.radio === 0) {
+          if (this.selectList.length <= 0) {
+            this.$message.warning('璇烽�夋嫨瑕佸鍑虹殑妯℃澘')
+            return
+          }
+          this.$emit('transferSend', this.rightRoleData, 0);
+        } else if (this.radio === 1) {
+          this.$emit('transferSend', this.rightRoleData, 1);
+        }
+      }
+
       this.visible = false;
     },
   }
@@ -82,11 +119,21 @@
 </script>
 
 <style lang="scss" scoped>
-/deep/ .el-transfer-panel{ /* 宸﹀彸涓や釜绌挎妗嗙殑楂樺害鍜屽搴� */
-  height: 450px;
+/deep/ .el-transfer-panel {
+  height: 450px; /* 宸﹀彸涓や釜绌挎妗嗙殑楂樺害鍜屽搴� */
+  width: 300px;
 }
+
 /deep/ .el-transfer-panel__list.is-filterable {
   height: 323px; /* 绌挎妗嗗垪琛ㄩ珮搴� */
 }
 
+.valueInfo {
+  float: left;
+  border: 1px solid #E9E7E7;
+  display: inline-block;
+  vertical-align: middle;
+  padding: 6px 12px;
+  line-height: 1;
+}
 </style>

--
Gitblit v1.9.3