From fdaad68c0715d6f7858b956071e3b01cd543a5cd Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 19 六月 2023 20:32:18 +0800
Subject: [PATCH] 高级查询组件增加refer类型条件框

---
 Source/UBCS-WEB/src/components/Crud/Crud.vue |  421 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 293 insertions(+), 128 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/Crud/Crud.vue b/Source/UBCS-WEB/src/components/Crud/Crud.vue
index 6d66a84..f76a5d2 100644
--- a/Source/UBCS-WEB/src/components/Crud/Crud.vue
+++ b/Source/UBCS-WEB/src/components/Crud/Crud.vue
@@ -2,131 +2,185 @@
   <basic-container>
     <div class="testbox">
       <div style="margin-top: 10px;display: flex;flex-wrap: wrap;width: 100%;">
-        <el-button size="small" type="primary" plain @click="addvisible=true">澧炲姞
-          <FormTemplateDialog
-            :visible.sync="addvisible"
-            :type="add"
-            :templateOid="this.templateOids"
-            :codeClassifyOid="this.codeClassifyOids"
-            :codeRuleOid="this.codeRuleOid"
-            :disabledProp="disabledProp"
-            :rowOid="rowOid"
-          >
-          </FormTemplateDialog></el-button>
-        <el-button size="small" type="primary" plain @click="editvisible=true">缂栬緫
-          <FormTemplateDialog
-            :visible.sync="editvisible"
-            :type="edit"
-            :templateOid="this.templateOids"
-            :codeClassifyOid="this.codeClassifyOids"
-            :codeRuleOid="this.codeRuleOid"
-            :disabledProp="disabledProp"
-            :rowOid="rowOid"
-          ></FormTemplateDialog></el-button>
-        <el-button size="small" type="primary" plain>鎵归噺瀵煎叆鐢宠</el-button>
-        <el-button size="small" type="primary" plain>鍘嗗彶鏁版嵁瀵煎叆</el-button>
-        <el-button size="small" type="primary" plain>鎵归噺鐢宠缂栫爜</el-button>
-        <el-button size="small" type="primary" plain>鎵归噺鍙戝竷</el-button>
-        <el-button size="small" type="primary" plain>鏌ョ湅娴佺▼鍘嗗彶</el-button>
-        <el-button size="small" type="primary" plain>鍒犻櫎</el-button>
-        <el-button size="small" type="primary" plain>鍙戝竷</el-button>
-        <el-button size="small" type="primary" plain>鏁版嵁鏇存敼</el-button>
-        <el-button size="small" type="primary" plain>鍥炴敹</el-button>
-        <el-button size="small" type="primary" plain>瀵煎嚭
-          <transfer filter-placeholder="璇疯緭鍏ユ嫾闊冲叏鎷兼垨鑰呮嫾闊崇缉鍐�" ></transfer>
+        <el-button plain size="small" type="primary" @click="addvisible=true">澧炲姞
         </el-button>
-        <el-button size="small" type="primary" plain @click="findvisible=true">鏌ヨ
-        <advancedQuery  :visible.sync="findvisible" :options="this.options"></advancedQuery>
+        <FormTemplateDialog
+          :codeClassifyOid="this.codeClassifyOid"
+          :codeRuleOid="this.codeRuleOid"
+          :disabledProp="disabledProp"
+          :templateOid="templateOid"
+          :type="add"
+          :visible.sync="addvisible"
+        >
+        </FormTemplateDialog>
+        <el-button plain size="small" type="primary" @click="editHandler">缂栬緫
         </el-button>
-        <el-button size="small" type="primary" plain>鐩镐技椤规煡璇�</el-button>
-        <el-button size="small" type="primary" plain style="margin-left: 1px;margin-top:10px">鍒锋柊</el-button>
-        <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" style="width: 180px;margin-left: 5px;margin-top:10px" size="small"></el-input>
+        <FormTemplateDialog
+          :codeClassifyOid="this.codeClassifyOid"
+          :codeRuleOid="this.codeRuleOid"
+          :disabledProp="disabledProp"
+          :rowOid="rowOid"
+          :templateOid="templateOid"
+          :type="edit"
+          :title="'淇敼缂栫爜淇℃伅'"
+          :visible.sync="editvisible"
+        ></FormTemplateDialog>
+        <el-button plain size="small" type="primary">鎵归噺瀵煎叆鐢宠</el-button>
+        <el-button plain size="small" type="primary">鍘嗗彶鏁版嵁瀵煎叆</el-button>
+        <el-button plain size="small" type="primary">鎵归噺鐢宠缂栫爜</el-button>
+        <el-button plain size="small" type="primary">鎵归噺鍙戝竷</el-button>
+        <el-button plain size="small" type="primary">鏌ョ湅娴佺▼鍘嗗彶</el-button>
+        <el-button plain size="small" type="primary">鍒犻櫎</el-button>
+        <el-button plain size="small" type="primary" @click="setHandler">鍙戝竷</el-button>
+        <set-personnel :visible.sync="visibleFlow"  :parameter="parameter"
+                       type="PUBLIC"></set-personnel>
+        <el-button plain size="small" type="primary" @click="DataChange">鏁版嵁鏇存敼</el-button>
+        <FormTemplateDialog
+          :codeClassifyOid="this.codeClassifyOid"
+          :codeRuleOid="this.codeRuleOid"
+          :disabledProp="disabledProp"
+          :rowOid="rowOid"
+          :templateOid="templateOid"
+          :type="edit"
+          :title="'宸插彂甯冩暟鎹洿鏀�'"
+          :visible.sync="DataVisible"
+        ></FormTemplateDialog>
+        <el-button plain size="small" type="primary" @click="huishouHandler">鍥炴敹</el-button>
+        <el-button plain size="small" type="primary" @click="openD">瀵煎嚭
+          <integration-transfer :data="transferData" :props="transferProps"
+                                :visible.sync="dialogPush" @save="handelTransferSave"></integration-transfer>
+        </el-button>
+        <el-button plain size="small" type="primary" @click="findHandler">鏌ヨ
+          <advanced-query :options="this.options" :visible.sync="findvisible"
+                          @echoContion="echoContion"></advanced-query>
+        </el-button>
+        <el-button plain size="small" type="primary">鐩镐技椤规煡璇�</el-button>
+        <el-button plain size="small" style="margin-left: 1px;margin-top:10px" type="primary">鍒锋柊</el-button>
+        <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small"
+                  style="width: 180px;margin-left: 5px;margin-top:10px"></el-input>
       </div>
       <el-row style="height: 700px;width: 100%">
-        <el-table :data="tableData" style="" @cell-click="handleCellClick" max-height="700"  @selection-change="handleSelectionChange"  @sort-change="sortChange">
+        <el-table v-loading="isLoading" :data="tableData" max-height="700" style="" @cell-click="handleCellClick"
+                  @selection-change="handleSelectionChange" @sort-change="sortChange">
           <el-table-column
-            type="selection"
             fixed
+            type="selection"
             width="55">
           </el-table-column>
           <el-table-column
-            type="index"
             fixed
             label="搴忓彿"
+            type="index"
             width="55">
           </el-table-column>
-          <div v-for="(item,index) in this.tableHeadData" :key="index">
-            <el-table-column :label="item.label" :prop="item.prop" :sortable="item.sortable" :width="item.width">
+<!--          <div>-->
+            <el-table-column  v-for="(item,index) in this.tableHeadFindData" :key="item.id" :label="item.label" :prop="item.prop" :sortable="item.sortable" >
               <!-- 缂栬緫鍜屽睍绀洪�昏緫 -->
-              <template slot-scope="{ row }">
-                <el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input>
-                <span v-else>{{row[item.prop]}}</span>
-                <el-switch
-                  v-if="editShow === 'true'"
-                  v-model="row[item.prop]"
-                  active-color="#13ce66"
-                  inactive-color="#ff4949">
-                </el-switch>
-              </template>
+              <!--              <template slot-scope="{ row }">-->
+              <!--                <el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input>-->
+              <!--                <span v-else>{{row[item.prop]}}</span>-->
+              <!--                <el-switch-->
+              <!--                  v-if="editShow === 'true'"-->
+              <!--                  v-model="row[item.prop]"-->
+              <!--                  active-color="#13ce66"-->
+              <!--                  inactive-color="#ff4949">-->
+              <!--                </el-switch>-->
+              <!--              </template>-->
             </el-table-column>
-          </div>
+<!--          </div>-->
         </el-table>
       </el-row>
     </div>
     <div class="block" style="display: flex;justify-content: flex-end">
       <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
         :current-page="page.currentPage"
-        :page-sizes="page.pageSizes"
         :page-size="page.pageSizes"
+        :page-sizes="page.pageSizes"
+        :total="page.total"
         layout="total, sizes, prev, pager, next, jumper"
-        :total="page.total">
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange">
       </el-pagination>
     </div>
   </basic-container>
 </template>
 <script>
-import {MasterTable, TableData} from "@/api/GetItem";
+import {MasterTable, TableData,FindData} from "@/api/GetItem";
+import {listCodeAttributeByClassId} from '@/api/integration/integration.js'
+import integrationTransfer from '@/views/integration/integrationTransfer'
+import SetPersonnel from '@/components/template/SetPersonnel'
+
 export default {
+  components: {
+    integrationTransfer,
+    SetPersonnel
+  },
   name: "Crud.vue",
-  props:{
-    page:{
+  props: {
+    page: {
       type: Object,
-      default: ()=>{
+      default: () => {
         return {}
       }
     },
-    codeClassifyOid:{
-      type:String,
-      default:""
+    codeClassifyOid: {
+      type: String,
+      default: ""
     },
-    coderuleoid:{
-      type:String,
-      default:""
+    coderuleoid: {
+      type: String,
+      default: ""
     },
-    tableDataArray:{
+    tableDataArray: {
+      type: Array,
+    },
+    total: {
+      type: String,
+      default: ""
+    },
+    templateOid: {
+      type: String,
+    },
+    tableHeadDataFateher: {
+      type: Array,
+    },
+    isLoading: {
+      type: Boolean,
+      default: false
+    },
+    tableHeadFindData:{
       type:Array,
-      default:[]
     }
   },
   data() {
     return {
-      templateOid:"",
-      addvisible:false,
-      editvisible:false,
-      findvisible:false,
-      templateOids: "78B8C7C5-A042-0B96-FE6D-65421451782A",
-      codeClassifyOids: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96",
-      codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96",
-      rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9',
+      //鍙戝竷
+      parameter:{
+        ids:['0000','22222222'],
+        code:'8b5e2017-990f-454a-9c39-4c4eeeb57553',
+        type:'PUBLIC',
+        name:'妯℃澘name',
+        template:'妯℃澘template'
+      },
+      visibleFlow: false,
+      transferData: [],
+      transferProps: {
+        key: 'oid',
+        label: 'name'
+      },
+      tableHeadFindDatas:[],
+      templateOid: "",
+      addvisible: false,
+      editvisible: false,
+      findvisible: false,
+      dialogPush: false,
+      rowOid: '',
       disabledProp: ["id"],
-      editingRow:null,
+      editingRow: null,
       editShow: "",
-      editAttr:"",
-      loading: false,
+      editAttr: "",
       data: [],
-      options:{},
+      options: {},
       option: {
         column: []
       },
@@ -138,17 +192,18 @@
         number: "number",
         datetime: "datetime",
       },
-      tableData:[],
-      tableHeadData:[],
-      items:{},
-      aaa:""
+      tableData: [],
+      DataVisible:false,
+      tableHeadData: [],
+      items: {},
+      seniorQueryColumns: [],
+      selectRow: []
     }
   },
-  computed:{
-  },
+  computed: {},
   created() {
-    this.CrudHeaderRend();
-    this.$emit('tableData',this.tableData)
+    // this.CrudHeaderRend();
+    // this.tableHeadHandle()
   },
   mounted() {
 
@@ -156,43 +211,96 @@
   activated() {
     this.doLayout()
   },
-  watch:{
-    codeClassifyOid:{
-      handler(newval,oldval){
-        this.codeClassifyOid=newval;
+  watch: {
+    codeClassifyOid: {
+      handler(newval, oldval) {
+        this.codeClassifyOid = newval;
         this.CrudHeaderRend()
       },
-      deep:true
+      deep: true
     },
-    tableDataArray:{
-      handler(newval,oldval){
-        this.tableData=newval;
-        this.CrudRend()
+    tableDataArray: {
+      handler(newval, oldval) {
+        this.tableData = newval;
       }
-    }
+    },
+    tableHeadFindData:{
+      handler(newval, oldval) {
+        this.tableHeadFindDatas = newval;
+      }
+    },
+    total: {
+      handler(newval, oldval) {
+        this.page.total = newval;
+      }
+    },
+    // tableHeadDataFateher: {
+    //   handler(newval, oldval) {
+    //     let List = newval.tableDefineVO.cols[0];
+    //     List.forEach(item => {
+    //       let columnItem = {
+    //         label: item.title,
+    //         prop: item.field,
+    //         type: this.columnType[item.type],
+    //         sortable: item.sort,
+    //         width: item.minWidth
+    //       };
+    //       this.tableHeadData.push(columnItem);
+    //       console.log('table',this.tableHeadData)
+    //     })
+    //   }
+    // }
   },
   methods: {
-    rend(){
-      this.tableData=this.tableHeadData
+    setHandler() {
+      this.visibleFlow = true
     },
-    handleSizeChange(val){
-      this.page.pageSize=val
-      this.$emit('pageSize',val)
-      this.CrudRend()
+    huishouHandler() {
+      console.log('tem', this.templateOid)
+      console.log('table', this.tableData)
+      console.log('tabheadle', this.tableHeadData)
+      console.log('tableFather', this.tableHeadDataFateher)
     },
-    handleCurrentChange(val){
-      this.page.currentPage=val
-      this.$emit('currentPage',val)
-      this.CrudRend()
+    openD() {
+      this.dialogPush = true;
+      this.getListCodeByClassId()
+    },
+    async getListCodeByClassId() {
+      this.transferData = []
+      const response = await listCodeAttributeByClassId({codeClassifyId: this.codeClassifyOid})
+      if (response.status === 200) {
+        const data = response.data.data
+        this.transferData = data
+      }
+    },
+    rend() {
+      this.tableData = this.tableHeadData
+    },
+    handleSizeChange(val) {
+      this.isLoading = true;
+      setTimeout(() => {
+        this.page.pageSize = val
+        this.$emit('pageSize', val)
+        this.CrudRend()
+      }, 3000);
+
+    },
+    handleCurrentChange(val) {
+      this.isLoading = true;
+      setTimeout(() => {
+        this.page.currentPage = val
+        this.$emit('currentPage', val)
+        this.CrudRend()
+      }, 3000);
     },
     // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮
     handleCellClick(row, column) {
       this.editingRow = row;
       this.editShow = column.property;
+      this.rowOid = row.oid
     },
     //鍒犻櫎
     enumDeleteRow(row) {
-      console.log(row)
       this.tableData.splice(row, 1)
     },
     // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬�
@@ -204,14 +312,29 @@
         this.$refs.crud.doLayout();
       });
     },
+    tableHeadHandle() {
+      this.options = this.tableHeadDataFateher.tableDefineVO.seniorQueryColumns
+      this.List = this.tableHeadDataFateher.tableDefineVO.cols[0];
+      this.List.forEach(item => {
+        let columnItem = {
+          label: item.title,
+          prop: item.field,
+          type: this.columnType[item.type],
+          sortable: item.sort,
+          width: item.minWidth
+        };
+        this.option.column.push(columnItem);
+        this.option.column = this.tableHeadData;
+      })
+    },
     //琛ㄦ牸澶存覆鏌�
     CrudHeaderRend() {
-      if(this.codeClassifyOid != ""){
+      if (this.codeClassifyOid != "") {
         MasterTable({
-          codeClassifyOid:this.codeClassifyOid,
+          codeClassifyOid: this.codeClassifyOid,
           functionId: 5,
         }).then(res => {
-          this.options=res.data.tableDefineVO.seniorQueryColumns
+          this.options = res.data.tableDefineVO.seniorQueryColumns
           this.List = res.data.tableDefineVO.cols[0];
           this.List.forEach(item => {
             let columnItem = {
@@ -222,29 +345,29 @@
               width: item.minWidth
             };
             this.option.column.push(columnItem);
-            this.option.column=this.tableHeadData;
-            this.templateOid=res.data.tableDefineVO.oid
-            this.$emit('templateOid',this.templateOid)
+            this.option.column = this.tableHeadData;
+            this.templateOid = res.data.tableDefineVO.oid
+            this.$emit('templateOid', this.templateOid)
           })
         })
       }
     },
     //琛ㄦ牸鏁版嵁
     CrudRend() {
-       TableData({
-         templateOid: this.templateOid,
-         codeClassifyOid: this.codeClassifyOid,
-         page: this.page.currentPage,
-         limit:this.page.pageSize,
-       }).then(res => {
-         this.page.total = res.data.total;
-         this.data = res.data.data;
-         this.tableData=res.data.data;
-       })
+      TableData({
+        templateOid: this.templateOid,
+        codeClassifyOid: this.codeClassifyOid,
+        page: this.page.currentPage,
+        limit: this.page.pageSize,
+      }).then(res => {
+        this.page.total = res.data.total;
+        this.data = res.data.data;
+        this.tableData = res.data.data;
+      })
     },
     // 鎺掑簭
     sortChange(val) {
-      this.loading = true;
+      this.isLoading = true;
       let order = ""
       if (val.order == "ascending") {
         order = "asc";
@@ -261,12 +384,13 @@
       }).then(res => {
         setTimeout(() => {
           this.data = res.data.data;
-          this.loading = false;
+          this.isLoading = false;
         }, 100);
       })
     },
     //鍒嗛〉鍒锋柊
     async onLoad(val) {
+      console.log('鍒嗛〉', this.templateOid)
       await TableData({
         templateOid: this.templateOid,
         codeClassifyOid: this.codeClassifyOid,
@@ -279,6 +403,47 @@
     //澶氶��
     handleSelectionChange(row) {
       console.log(row)
+      this.rowOid = row.oid
+      this.selectRow = row
+    },
+    //缂栬緫
+    editHandler() {
+      if (this.selectRow.length <= 0) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
+      } else if (this.selectRow.length > 1) {
+        this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�')
+      } else if (this.selectRow[0].lcstatus != 'Editing') {
+        this.$message.warning('缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫')
+      } else {
+        this.editvisible = true
+      }
+    },
+    //楂樼骇鏌ヨ鎸夐挳
+    findHandler(){
+      this.findvisible=true;
+      console.log(this.options)
+    },
+    // 楂樼骇鏌ヨ
+    echoContion(val) {
+      console.log(val)
+      FindData({templateOid:this.templateOid,
+        codeClassifyOid: this.codeClassifyOid,
+        ...val
+      }).then(res=>{
+        console.log(res)
+      })
+    },
+    //鏁版嵁鏇存敼
+    DataChange(){
+      if (this.selectRow.length <= 0) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
+      } else if (this.selectRow.length > 1) {
+        this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�')
+      } else if (this.selectRow[0].lcstatus != 'Released') {
+        this.$message.warning('鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼')
+      } else {
+        this.DataVisible = true
+      }
     }
   }
 }

--
Gitblit v1.9.3