From 5a3dd615ebbc9919330ac375d4798a73f64fe89c Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 26 七月 2023 17:41:06 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue |  710 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 517 insertions(+), 193 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
index cb47ef6..b604ba4 100644
--- a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -1,166 +1,138 @@
 <template>
   <basic-container>
-    <div class="testbox">
-      <div>
-        <el-button plain size="small" type="primary" @click="addvisible = true"
-          >澧炲姞
-        </el-button>
-        <el-button plain size="small" type="primary" @click="editHandler"
-          >缂栬緫
-        </el-button>
-        <el-button plain size="small" type="primary" @click="openBatchImport('batchImportApply')">鎵归噺瀵煎叆鐢宠</el-button>
-        <el-button plain size="small" type="primary" @click="openBatchImport('historyImport')">鍘嗗彶鏁版嵁瀵煎叆</el-button>
-        <el-button plain size="small" type="primary" @click="openBatchImport('batchApplyCode')">鎵归噺鐢宠缂栫爜</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
-        >
-        <el-button plain size="small" type="primary" @click="DataChange"
-          >鏁版嵁鏇存敼</el-button
-        >
-        <el-button plain size="small" type="primary" @click="huishouHandler"
-          >鍥炴敹</el-button
-        >
-        <el-button plain size="small" type="primary" @click="openD"
-          >瀵煎嚭
-        </el-button>
-        <el-button plain size="small" type="primary" @click="findHandler"
-          >鏌ヨ
-        </el-button>
-        <el-button plain size="small" type="primary" @click="similarHandler"
-          >鐩镐技椤规煡璇�</el-button
-        >
-        <el-button plain size="small" type="primary">鍒锋柊</el-button>
-        <el-input
-          placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�"
-          size="small"
-          style="width: 180px; margin-left: 5px; margin-top: 10px"
-        ></el-input>
+    <div class="main">
+      <div class="top">
+        <div class="testbox" style="">
+          <div>
+            <!-- <el-button plain size="small" type="primary" @click="addvisible = true">澧炲姞
+            </el-button>
+            <el-button plain size="small" type="primary" @click="editHandler">缂栬緫
+            </el-button>
+            <el-button plain size="small" type="primary" @click="openBatchImport('batchImportApply')">鎵归噺瀵煎叆鐢宠</el-button>
+            <el-button plain size="small" type="primary" @click="openBatchImport('historyImport')">鍘嗗彶鏁版嵁瀵煎叆</el-button>
+            <el-button plain size="small" type="primary" @click="openBatchImport('batchApplyCode')">鎵归噺鐢宠缂栫爜</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>
+            <el-button plain size="small" type="primary" @click="DataChange">鏁版嵁鏇存敼</el-button>
+            <el-button plain size="small" type="primary" @click="huishouHandler">鍥炴敹</el-button>
+            <el-button plain size="small" type="primary" @click="openD">瀵煎嚭
+            </el-button>
+            <el-button plain size="small" type="primary" @click="findHandler">鏌ヨ
+            </el-button>
+            <el-button plain size="small" type="primary" @click="similarHandler">鐩镐技椤规煡璇�</el-button>
+            <el-button plain size="small" type="primary">鍒锋柊</el-button>
+            <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small"
+              style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input> -->
+
+          </div>
+          <el-row style="width: 100%;margin-bottom: 20px">
+            <div>
+              <el-button v-for="(item, index) in masterVrBtnList"
+                         v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)"
+                         :key="index" plain size="small"
+                         type="primary"
+                         @click="handelBtnClick(item)">{{
+                  item.name
+                }}
+              </el-button>
+              <el-input v-model="WupinFindValue" placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�"
+                        size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
+                        @keyup.enter.native="tableFindInp"  v-if="tableData.length != 0"></el-input>
+            </div>
+            <el-table  ref="dataTable" v-loading="isLoading" :data="tableData"
+                      :height="tableHeight"
+                      @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick"
+                      @select-all="handleSelectionAll" @selection-change="handleSelectionChange"
+                      @sort-change="sortChange">
+              <el-table-column fixed type="selection" width="55" v-if="tableData.length != 0"></el-table-column>
+              <el-table-column fixed label="搴忓彿" type="index" width="55" v-if="tableData.length != 0">
+              </el-table-column>
+              <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :formatter="item.formatter"
+                               :label="item.label"
+                               :prop="item.prop" :show-overflow-tooltip="true"
+                               :sortable="item.sortable"
+                               :width="item.label.length >= 4 ? '150' : item.label.length == 3 ? '120' : '90'"
+                               align="center">
+              </el-table-column>
+            </el-table>
+          </el-row>
+          <!--          鏂板-->
+          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible"
+                              type="add"
+                              @submit="AddSumbit">
+          </FormTemplateDialog>
+          <!--          淇敼-->
+          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'"
+                              :visible.sync="editvisible"
+                              type="edit" @submit="EditSumbit"></FormTemplateDialog>
+          <!--          宸插彂甯冩暟鎹慨鏀�-->
+          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid"
+                              :title="'宸插彂甯冩暟鎹洿鏀�'"
+                              :type="edit"
+                              :visible.sync="DataVisible"></FormTemplateDialog>
+          <!--          鍙戝竷-->
+          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleFlow"></set-personnel>
+          <!--          鍋滅敤-->
+          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleDeactivate"></set-personnel>
+          <!--          鍚敤-->
+          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleEnable"></set-personnel>
+          <!--          鍥炴敹-->
+          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleRecovery"></set-personnel>
+          <!--          楂樼骇鏌ヨ-->
+          <advanced-query :options="this.options" :visible.sync="findvisible"
+                          @echoContion="echoContion"></advanced-query>
+          <!--          瀵煎嚭-->
+          <MasterTransfer :codeClassifyOid="codeClassifyOid" :selectRow="selectRow"
+                          :tableData="tableData" :tableHeadData="tableHeadFindData"
+                          :visible.sync="dialogPush"></MasterTransfer>
+          <!--          鐩镐技椤�-->
+          <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid"
+                               :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog>
+          <div class="block" style="display: flex; justify-content: flex-end">
+            <el-pagination :current-page="page.currentPage" :page-size="page.pageSizes" :page-sizes="page.pageSizes"
+                           :total="page.total" layout="total, sizes, prev, pager, next, jumper"
+                           @size-change="handleSizeChange"
+                           @current-change="handleCurrentChange">
+            </el-pagination>
+          </div>
+        </div>
       </div>
-      <el-row style="height: 700px; width: 100%">
-        <el-table
-          v-loading="isLoading"
-          :data="tableData"
-          max-height="700"
-          style=""
-          @cell-click="handleCellClick"
-          @selection-change="handleSelectionChange"
-          @sort-change="sortChange"
-          v-if="tableData.length != 0"
-        >
-          <el-table-column fixed type="selection" width="55"> </el-table-column>
-          <el-table-column fixed label="搴忓彿" type="index" width="55">
-          </el-table-column>
-          <el-table-column
-            v-for="item in this.tableHeadFindData"
-            :key="item.id"
-            :label="item.label"
-            :prop="item.prop"
-            :sortable="item.sortable"
-            :formatter="item.formatter"
-            :width="item.label.length >=4 ?'150':item.label.length==3 ?'120':'90'"
-            :show-overflow-tooltip="true"
-            align="center"
-          >
-            <!-- 缂栬緫鍜屽睍绀洪�昏緫 -->
-            <!--              <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>
-        </el-table>
-      </el-row>
-      <FormTemplateDialog
-        :codeClassifyOid="this.codeClassifyOid"
-        :codeRuleOid="this.codeRuleOid"
-        :disabledProp="disabledProp"
-        :templateOid="templateOid"
-        type="add"
-        :visible.sync="addvisible"
-        @submit="AddSumbit"
-      >
-      </FormTemplateDialog>
-      <FormTemplateDialog
-        :codeClassifyOid="this.codeClassifyOid"
-        :codeRuleOid="this.codeRuleOid"
-        :disabledProp="disabledProp"
-        :rowOid="rowOid"
-        :templateOid="templateOid"
-        type="edit"
-        :title="'淇敼缂栫爜淇℃伅'"
-        :visible.sync="editvisible"
-        @submit="EditSumbit"
-      ></FormTemplateDialog>
-      <FormTemplateDialog
-        :codeClassifyOid="this.codeClassifyOid"
-        :codeRuleOid="this.codeRuleOid"
-        :disabledProp="disabledProp"
-        :rowOid="rowOid"
-        :templateOid="templateOid"
-        :type="edit"
-        :title="'宸插彂甯冩暟鎹洿鏀�'"
-        :visible.sync="DataVisible"
-      ></FormTemplateDialog>
-      <set-personnel
-        :visible.sync="visibleFlow"
-        :parameter="this.parameter"
-      ></set-personnel>
-      <advanced-query
-        :options="this.options"
-        :visible.sync="findvisible"
-        @echoContion="echoContion"
-      ></advanced-query>
-      <integration-transfer
-        :data="transferData"
-        :props="transferProps"
-        :visible.sync="dialogPush"
-        @save="handelTransferSave"
-      ></integration-transfer>
-      <ResembleQueryDialog
-        :visible.sync="similarVisible"
-        :templateOid="templateOid"
-        :codeClassifyOid="codeClassifyOid"
-        :rowOid="rowOid"
-        :codeRuleOid="this.codeRuleOid"
-      ></ResembleQueryDialog>
+        <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :visible.sync="batchImportData.visible" :resetTable="CrudRend">
+        </BatchImport>
+      </div>
+      <div class="bottom">
+        <el-collapse v-model="visibleNames" @change="handleCollapse">
+          <el-collapse-item name="1" title="闄勪欢鍒楄〃">
+            <fileInHtml :options="fileOptions"></fileInHtml>
+          </el-collapse-item>
+        </el-collapse>
+      </div>
     </div>
-    <div class="block" style="display: flex; justify-content: flex-end">
-      <el-pagination
-        :current-page="page.currentPage"
-        :page-size="page.pageSizes"
-        :page-sizes="page.pageSizes"
-        :total="page.total"
-        layout="total, sizes, prev, pager, next, jumper"
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-      >
-      </el-pagination>
-    </div>
-    <BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData"></BatchImport>
   </basic-container>
 </template>
 <script>
-import { MasterTable, TableData, FindData } from "@/api/GetItem";
-import { listCodeAttributeByClassId } from "@/api/integration/integration.js";
+import {MasterTable, TableData, FindData, addSaveCode, editSaveCode} from "@/api/GetItem";
+import {processTS,changeStatus} from "@/api/template/setPersonnel"
+import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
 import integrationTransfer from "@/views/integration/integrationTransfer";
 import SetPersonnel from "@/components/template/SetPersonnel";
 import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue";
 import BatchImport from '@/components/BatchImport'
-import { validatenull } from "@/util/validate";
+import {validatenull} from "@/util/validate";
+import fileInHtml from "@/components/file/inHtml.vue";
+
 export default {
   components: {
     integrationTransfer,
     SetPersonnel,
     ResembleQueryDialog,
-    BatchImport
+    BatchImport,
+    fileInHtml
   },
   name: "Crud.vue",
   props: {
@@ -199,19 +171,39 @@
     tableHeadFindData: {
       type: Array,
     },
+    tableHeadBtnData: {
+      type: Array,
+    },
   },
   data() {
     return {
+      searchResults: [],
+      //棣栭〉鍙充晶鎼滅储
+      WupinFindValue: "",
       //鐩镐技椤规煡璇�
       similarVisible: false,
       //鍙戝竷
       parameter: {
         ids: [],
         code: "",
-        type: "PUBLIC",
+        type: '',
+        // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC'
         template: "",
+        vars: {
+          codeClassifyOid: "",
+          templateOid: ""
+        }
       },
+      visibleNames: [],
+      //鍙戝竷
       visibleFlow: false,
+      //鍋滅敤
+      visibleDeactivate: false,
+      //鍚敤
+      visibleEnable: false,
+      //鍥炴敹
+      visibleRecovery: false,
+      title: '',
       transferData: [],
       transferProps: {
         key: "oid",
@@ -241,6 +233,7 @@
         datetime: "datetime",
       },
       tableData: [],
+      tableHeight: 'calc(100vh - 330px)',
       DataVisible: false,
       tableHeadData: [],
       items: {},
@@ -251,42 +244,65 @@
         visible: false,
         type: '',
         codeClassifyOid: ''
+      },
+      // 涓绘暟鎹寜閽�
+      masterVrBtnList: [],
+      fileOptions: {
+        ownbizOid: "0",
+        ownbizBtm: "0",
+        fileDocClassify: '!=processAuditSuggest',
+        fileDocClassifyName: '',
+        hasDownload: true,
+        hasUpload: true,
+        height: 100
       }
     };
   },
   computed: {},
-  created() {},
-  mounted() {},
+  created() {
+  },
+  mounted() {
+
+  },
   activated() {
-    this.doLayout();
+    // this.doLayout();
+    this.$nextTick(() => {
+      this.$refs.dataTable.doLayout()
+    })
   },
   watch: {
-     tableHeadDataFateher:{
-      handler(newval,oldval){
-        this.options=newval.tableDefineVO.seniorQueryColumns
+    tableHeadDataFateher: {
+      handler(newval, oldval) {
+        this.options = newval.tableDefineVO.seniorQueryColumns
       }
     },
     codeClassifyOid: {
       handler(newval, oldval) {
         this.codeClassifyOid = newval;
+        this.parameter.vars.codeClassifyOid = newval
       },
       deep: true,
     },
     tableDataArray: {
       handler(newval, oldval) {
         this.tableData = newval;
+        this.searchResults = newval
       },
     },
     tableHeadFindData: {
       handler(newval, oldval) {
-        newval.forEach((record,_index) =>{
-          if(record.field == 'id' && validatenull(record.templet)){
+        newval.forEach((record, _index) => {
+          if (record.field == 'id' && validatenull(record.templet)) {
             //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
             record.formatter = '';
-          }else {
-            if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)")>-1) {
+          } else {
+            if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)") > -1) {
               record.formatter = eval("(" + record.templet + ")");
-              //function(row,column){return row[column.property]=='true'?'鏄�':'鍚�'}
+              //function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'鏄�':'鍚�'}
+            } else if (record.fieldType == "truefalse") {
+              record.formatter = function (row, column) {
+                return row[column.property] == 'true' || row[column.property] == '1' ? '鏄�' : '鍚�'
+              }
             }
           }
         })
@@ -301,35 +317,63 @@
     templateOid: {
       handler(newval, oldval) {
         this.parameter.code = newval;
+        this.fileOptions.ownbizOid = "0";
+        this.parameter.vars.templateOid = newval
       },
       deep: true,
     },
+    tableHeadBtnData: {
+      handler(newval) {
+        if (newval.length !== 0) {
+          this.masterVrBtnList = newval
+        }
+      },
+      deep: true
+    }
   },
   methods: {
-    // 杞崲鏁版嵁true鍜宖alse
-    formatBoolean(row, column) {
-      if (column.fieldType === "truefalse") {
-        return row[column.property] =='true'? "鏄�" : "鍚�";
-      }
-      return row[column.property];
-    },
-    // 鍙戝竷
-    setHandler() {
-      console.log("1111");
-      console.log("鐖�", this.parameter);
-
-      if (this.selectRow.length <= 0) {
-        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+    //灞曞紑闄勪欢
+    handleCollapse(activeNames) {
+      if (activeNames.length > 0) {
+        this.tableHeight = 'calc(100vh - 630px)';
+        this.$refs.dataTable.doLayout()
       } else {
-        this.userName = localStorage.getItem("username");
-        this.parameter.template = this.userName + "-鍙戝竷" + "[鐗╁搧]";
-        this.visibleFlow = true;
+        this.tableHeight = 'calc(100vh - 330px)';
+        this.$refs.dataTable.doLayout()
       }
+    },
+    openVis(visible) {
+      this[visible] = true
+    },
+    handelBtnClick(event) {
+      const {uniqueFlag} = event
+      this.$nextTick(() => {
+        if (uniqueFlag === 'CODEADD') return this.addvisible = true
+        if (uniqueFlag === 'CODEEDIT') return this.editHandler()
+        if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply')
+        if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport')
+        if (uniqueFlag === 'batchApplyCode') return this.openBatchImport('batchApplyCode')
+        // 鎵归噺鐢宠缂栫爜
+        //  if(uniqueFlag === 'CODEEDIT') return this.openBatchImport('batchApplyCode')
+        if (uniqueFlag === 'CODESTARTPROCESS') return this.setHandler()
+        if (uniqueFlag === 'CODEUPREVISION') return this.DataChange()
+        if (uniqueFlag === 'CODEEXPORT') return this.openD()
+        if (uniqueFlag === 'CODEQUERY') return this.findHandler()
+        //鍋滅敤
+        if (uniqueFlag === 'CODEDISABLE') return this.Deactivate()
+        //鍚敤
+        if (uniqueFlag === 'CODEENABLE') return this.Enable()
+        //鍥炴敹
+        if (uniqueFlag === 'CODERECYCLE') return this.Recovery()
+        //  鐩镐技椤规煡璇�
+        //  if(uniqueFlag === 'CODEEDIT') return this.similarHandler()
+      });
     },
     openD() {
       this.getListCodeByClassId();
     },
     async getListCodeByClassId() {
+      this.dialogPush = true;
       this.transferData = [];
       const response = await listCodeAttributeByClassId({
         codeClassifyId: this.codeClassifyOid,
@@ -339,8 +383,227 @@
         this.transferData = data;
       }
     },
+    handelTransferSave(val) {
+      console.log('鍙戝竷', val)
+    },
     rend() {
       this.tableData = this.tableHeadData;
+    },
+    // 鍙戝竷
+    setHandler() {
+      if (this.selectRow.length > 0) {
+        let hasEditing = this.selectRow.some(item => item.lcstatus !== 'Editing');
+        let showMessage = true;
+        this.selectRow.forEach(item => {
+          if (this.selectRow.length === 1 && item.lcstatus !== "Editing" && showMessage) {
+            this.$message.warning('鍙湁鐘舵�佹槸銆愮紪杈戜腑銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�');
+            showMessage = false;
+          } else if (hasEditing && showMessage) {
+            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愮紪杈戜腑銆戞墠鍙互鍙戣捣娴佺▼');
+            showMessage = false;
+          } else if (showMessage) {
+            processTS({templateId: this.templateOid, buttonTypeKey: 'PUBLIC'}).then(res => {
+              if (res.data.records != [] && res.data.code != 200)  {
+                this.userName = localStorage.getItem("username");
+                this.parameter.template = this.userName + "-鍙戝竷" + "[鐗╁搧]";
+                this.parameter.type = 'PUBLIC'
+                this.title = '娴佺▼瀹℃壒'
+                this.visibleFlow = true;
+                this.onLoad()
+              } else {
+                this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
+                  confirmButtonText: '纭畾',
+                  cancelButtonText: '鍙栨秷',
+                  type: 'warning'
+                }).then(() => {
+                  this.userName = localStorage.getItem("username");
+                  this.parameter.template = this.userName + "-鍙戝竷" + "[鐗╁搧]";
+                  this.parameter.type = 'PUBLIC'
+                  this.title = '娴佺▼瀹℃壒'
+                  this.visibleFlow = true;
+                  this.onLoad()
+                }).catch(() => {
+                  this.$message({
+                    type: 'info',
+                    message: '宸插彇娑�'
+                  });
+                })
+              }
+            })
+          }
+        });
+      } else {
+        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
+      }
+    },
+    //鍋滅敤
+    Deactivate() {
+      if (this.selectRow.length <= 0) {
+        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+      } else {
+        let hasEditing = this.selectRow.every(item => item.lcstatus == 'Released');
+        let showMessage = true;
+        this.selectRow.forEach(item => {
+          if (this.selectRow.length === 1 && item.lcstatus === "Disabled" && showMessage) {
+            this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�');
+            showMessage = false;
+          }  else if (this.selectRow.length >=1 && !hasEditing  && showMessage) {
+            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬彂甯冪姸鎬併�戞墠鍙互鍙戣捣娴佺▼');
+            showMessage = false;
+          } else if (this.selectRow.length > 1 && hasEditing && showMessage) {
+            processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => {
+              if (res.data.records != [] && res.data.code != 200) {
+                this.userName = localStorage.getItem("username");
+                this.parameter.template = this.userName + "鍋滅敤" + "[鐗╁搧]";
+                this.parameter.type = 'DISABLE'
+                this.title = '鍋滅敤锛堝喕缁擄級缂栫爜鏁版嵁'
+                this.visibleDeactivate = true;
+              } else {
+                if (showMessage) {
+                  showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔
+                  this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
+                    confirmButtonText: '纭畾',
+                    cancelButtonText: '鍙栨秷',
+                    type: 'warning'
+                  }).then(() => {
+                    const index = this.$route.query.id.indexOf('@');
+                    const result = this.$route.query.id.substring(0, index);
+                    const oid = this.selectRow.map(obj => obj.oid).join(",");
+                      changeStatus({ oid: oid, btmname: result, lcStatus: 'Disabled' }).then(res => {
+                        console.log(res);
+                        if(res.data.code == 200 ){
+                          this.$message.success('鍋滅敤鎴愬姛')
+                          this.onLoad()
+                        }
+                      });
+                  }).catch(() => {
+                    this.$message({
+                      type: 'info',
+                      message: '宸插彇娑�'
+                    });
+                  });
+                }
+              }
+            });
+          }else {
+            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹负銆愬彂甯冪姸鎬併�戞墠鍙互鍙戣捣娴佺▼')
+          }
+        });
+      }
+    },
+    //鍚敤
+    Enable() {
+      if (this.selectRow.length <= 0) {
+        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+      } else {
+        let hasEditing = this.selectRow.every(item => item.lcstatus == 'Disabled');
+        console.log('hasEditing',hasEditing)
+        let showMessage = true;
+        this.selectRow.forEach(item => {
+          if (this.selectRow.length === 1 && item.lcstatus !== "Disabled" && showMessage) {
+            this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�');
+            showMessage = false;
+          } else if (this.selectRow.length >=1 && hasEditing && showMessage) {
+            processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => {
+              if (res.data.records != [] && res.data.code != 200) {
+                this.userName = localStorage.getItem("username");
+                this.parameter.template = this.userName + "鍚敤" + "[鐗╁搧]";
+                this.parameter.type = 'Released'
+                this.title = '鍚敤缂栫爜鏁版嵁'
+                this.visibleDeactivate = true;
+              } else {
+                if (showMessage) {
+                  showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔
+                  this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
+                    confirmButtonText: '纭畾',
+                    cancelButtonText: '鍙栨秷',
+                    type: 'warning'
+                  }).then(() => {
+                    const index = this.$route.query.id.indexOf('@');
+                    const result = this.$route.query.id.substring(0, index);
+                    const oid = this.selectRow.map(obj => obj.oid).join(",");
+                    changeStatus({ oid: oid, btmname: result, lcStatus: 'Released' }).then(res => {
+                      console.log(res);
+                      if(res.data.code == 200 ){
+                        this.$message.success('鍚敤鎴愬姛')
+                        this.onLoad()
+                      }
+                    });
+                  }).catch(() => {
+                    this.$message({
+                      type: 'info',
+                      message: '宸插彇娑�'
+                    });
+                  });
+                }
+              }
+            });
+          } else if (this.selectRow.length >1 && !hasEditing  && showMessage) {
+            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬仠鐢ㄧ姸鎬併�戞墠鍙互鍙戣捣娴佺▼');
+            showMessage = false;
+          }
+        });
+      }
+    },
+    //鍥炴敹
+    Recovery() {
+      if (this.selectRow.length <= 0) {
+        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+      } else {
+        // 缂栬緫涓�-鍙兘鍙戝竷锛屼笉鑳藉洖鏀�
+        // 瀹℃牳涓�-浠�涔堥兘涓嶈兘鍋�
+        // 宸插彂甯�-鍋滅敤銆佸洖鏀�
+        // 鍋滅敤-鍙兘鍚敤銆佸洖鏀�
+        const disabledCount = this.selectRow.filter(item => item.lcstatus === 'Disabled').length;
+        const releasedCount = this.selectRow.filter(item => item.lcstatus === 'Released').length;
+        console.log('hasEditing',disabledCount,releasedCount)
+        let showMessage = true;
+        this.selectRow.forEach(item => {
+          if (this.selectRow.length === 1 && item.lcstatus == "TakeBack" && showMessage) {
+            this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�');
+            showMessage = false;
+          } else if (this.selectRow.length >=1 && (disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0) && showMessage) {
+            //disabledCount 鍜� releasedCount 涓换鎰忎竴涓瓑浜� this.selectRow 鏁扮粍鐨勯暱搴﹀垯琛ㄧず鍏ㄩ儴鏄悓涓�绉嶇姸鎬侊紝杩斿洖 true 濡傛灉disabledCount 鍜� releasedCount 閮藉ぇ浜�0锛屽垯琛ㄧず鏃㈡湁Disabled涔熸湁Released杩斿洖 true
+            processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => {
+              if (res.data.records != [] && res.data.code != 200) {
+                this.userName = localStorage.getItem("username");
+                this.parameter.template = this.userName + "鍥炴敹" + "[鐗╁搧]";
+                this.parameter.type = 'TakeBack'
+                this.title = '鍥炴敹缂栫爜鏁版嵁'
+                this.visibleDeactivate = true;
+              } else {
+                if (showMessage) {
+                  showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔
+                  this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
+                    confirmButtonText: '纭畾',
+                    cancelButtonText: '鍙栨秷',
+                    type: 'warning'
+                  }).then(() => {
+                    const index = this.$route.query.id.indexOf('@');
+                    const result = this.$route.query.id.substring(0, index);
+                    const oid = this.selectRow.map(obj => obj.oid).join(",");
+                    changeStatus({ oid: oid, btmname: result, lcStatus: 'TakeBack' }).then(res => {
+                      console.log(res);
+                      if(res.data.code == 200 ){
+                        this.$message.success('鍥炴敹鎴愬姛')
+                        this.onLoad()
+                      }
+                    });
+                  }).catch(() => {
+                    this.$message({
+                      type: 'info',
+                      message: '宸插彇娑�'
+                    });
+                  });
+                }
+              }
+            });
+          } else if (this.selectRow.length >=1 && !(disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0)  && showMessage) {
+            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬仠鐢ㄧ姸鎬佹垨鍙戝竷鐘舵�併�戞墠鍙互鍙戣捣娴佺▼');
+            showMessage = false;
+          }
+        });
+      }
     },
     handleSizeChange(val) {
       this.isLoading = true;
@@ -364,6 +627,11 @@
       this.editShow = column.property;
       this.rowOid = row.oid;
     },
+    handleRowClick(row, column) {
+      this.fileOptions.ownbizOid = row.oid;
+      this.fileOptions.ownbizBtm = row.btmname;
+      this.$refs.dataTable.toggleRowSelection(row);
+    },
     //鍒犻櫎
     enumDeleteRow(row) {
       this.tableData.splice(row, 1);
@@ -374,6 +642,7 @@
     },
     doLayout() {
       this.$nextTick(() => {
+        console.log(this.$refs)
         this.$refs.crud.doLayout();
       });
     },
@@ -381,8 +650,7 @@
     CrudHeaderRend() {
       if (this.codeClassifyOid != "") {
         MasterTable({
-          codeClassifyOid: this.codeClassifyOid,
-          functionId: 5,
+          codeClassifyOid: this.codeClassifyOid
         }).then((res) => {
           this.options = res.data.tableDefineVO.seniorQueryColumns;
           this.List = res.data.tableDefineVO.cols[0];
@@ -443,24 +711,31 @@
       await TableData({
         templateOid: this.templateOid,
         codeClassifyOid: this.codeClassifyOid,
-        page: val.currentPage,
-        limit: val.pageSize,
+        page: this.page.currentPage,
+        limit: this.page.pageSize,
       }).then((res) => {
-        this.data = res.data.data;
+        this.tableData = res.data.data;
       });
     },
     //澶氶��
-    handleSelectionChange(row) {
-      if (this.row) {
-        this.rowOid = row[0].oid;
-      } else {
-        this.rowOid = "";
-      }
-      this.selectRow = row;
+    handleSelectionChange(list) {
+      this.selectRow = list;
       this.parameter.ids = [];
-      row.forEach((item) => {
+      list.forEach((item) => {
         this.parameter.ids.push(item.oid);
       });
+      console.log(this.selectRow)
+    },
+    //閫夋嫨
+    handleSelection(list, row) {
+      this.fileOptions.ownbizOid = row.oid;
+      this.fileOptions.ownbizBtm = row.btmname;
+
+    },
+    //閫夋嫨鍏ㄩ儴
+    handleSelectionAll() {
+      this.fileOptions.ownbizOid = '0';
+      this.fileOptions.ownbizBtm = '0';
     },
     //缂栬緫
     editHandler() {
@@ -472,6 +747,7 @@
         this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫");
       } else {
         this.editvisible = true;
+        this.rowOid = this.selectRow[0]['oid']
       }
     },
     //楂樼骇鏌ヨ鎸夐挳
@@ -486,8 +762,8 @@
         ...val,
       }).then((res) => {
         console.log(res);
-        this.tableData=res.data.data;
-        this.page.total=res.data.total
+        this.tableData = res.data.data;
+        this.page.total = res.data.total
       });
     },
     //鐩镐技椤规煡璇�
@@ -513,18 +789,47 @@
       }
     },
     //澧炲姞淇濆瓨
-    AddSumbit() {
+    AddSumbit(val) {
       this.addvisible = false;
+      console.log(val)
+      addSaveCode(val).then(res => {
+        console.log(res)
+        this.$nextTick(() => {
+          this.onLoad()
+        })
+      })
     },
     EditSumbit(val) {
       this.editvisible = false;
+      console.log(val)
+      editSaveCode(val).then(res => {
+        console.log(res)
+        this.$nextTick(() => {
+          this.onLoad()
+        })
+      })
     },
     openBatchImport(type) {
       this.batchImportData.visible = true
       this.batchImportData.type = type
       this.batchImportData.codeClassifyOid = this.codeClassifyOid
+    },
+    //杈撳叆鍥炶溅鎼滅储
+    tableFindInp() {
+      if (this.WupinFindValue.trim() === '') {
+        this.$message.warning('杈撳叆鍊间笉鑳戒负绌�')
+        return;
+      }
+      this.tableData = this.searchResults.filter(item => {
+        if (typeof item.name === 'string') {
+          return item.name.includes(this.WupinFindValue);
+        } else {
+          return false; // item.name涓嶆槸瀛楃涓茬被鍨嬶紝杩斿洖false
+        }
+      });
     }
-  },
+
+  }
 };
 </script>
 
@@ -543,5 +848,24 @@
   margin: 0 10px 10px 0;
 }
 
+.main {
+  display: flex;
+  flex-direction: column;
+  height: calc(100vh - 150px);
+  min-height: 400px;
+}
 
+.top {
+  overflow-y: scroll;
+  min-height: 55%;
+}
+
+.bottom {
+  margin-top: 20px;
+  overflow-y: scroll;
+}
+
+.el-collapse-item__content {
+  padding-bottom: 0;
+}
 </style>

--
Gitblit v1.9.3