zhaoke 1 год назад
Родитель
Сommit
baa83e13b7

+ 99 - 0
src/components/AuthInstall/index.vue

@@ -0,0 +1,99 @@
+<template>
+  <div class="authInstall">
+    <div class="manageTitle">请选择数据源</div>
+    <el-radio-group style="width: 100%;margin-top: 20px;" @change="groupChange" v-model="datasourceid" size="small">
+      <el-row :gutter="20">
+        <el-col style="margin-bottom: 20px;" v-for="(item,index) in selectAlgorithm" :key="index" :span="8">
+          <el-radio :label="item.datasourceid" border>
+            <el-tooltip class="item" effect="dark" :content="item.datasourcedescribe" placement="right">
+              <span>{{ item.datasourcedescribe }}</span>
+            </el-tooltip>
+          </el-radio>
+        </el-col>
+      </el-row>
+    </el-radio-group>
+    <div style="margin-top: 20px;" class="manageTitle">请选择数据表</div>
+    <el-radio-group style="width: 100%;margin-top: 20px;" @change="tableChange" v-model="tableinfo" size="small">
+      <el-row :gutter="20">
+        <el-col style="margin-bottom: 20px;" v-for="(item,index) in selectTable" :key="index" :span="8">
+          <el-radio :label="item" border>
+            <el-tooltip class="item" effect="dark" :content="item" placement="right">
+              <span>{{ item }}</span>
+            </el-tooltip>
+          </el-radio>
+        </el-col>
+      </el-row>
+    </el-radio-group>
+  </div>
+</template>
+
+<script>
+import { getQueryData } from '@/views/dataAccessPage/utils'
+import { Query } from '@/api/webApi'
+export default {
+  name: 'AuthInstall',
+  data () {
+    return {
+      datasourceServiceId: 12,
+      datatableId: 132,
+      datasourceid: '',
+      tableinfo: '',
+      selectAlgorithm: [],
+      selectTable: []
+    }
+  },
+  mounted () {
+    this.getSourceData('datasource', this.datasourceServiceId, { 1: 1 })
+  },
+  methods: {
+    async getSourceData (pagename, serviceid, datacontent) {
+      const { code, returnData } = await getQueryData(serviceid, datacontent)
+      if (code == 0 && returnData?.length) {
+        this.setFormSelectData(pagename, returnData)
+      }
+    },
+    setFormSelectData (name, returnData) {
+      switch (name) {
+        case 'datasource':
+          const datas = [...returnData].filter(item => item.datasourcetype == 'DB' || item.datasourcetype == 'db')
+          this.selectAlgorithm = [...datas]
+          break;
+        case 'datatable':
+          this.selectTable = [...returnData]
+          break;
+        default:
+          break;
+      }
+    },
+    async getTableData (id) {
+      const { code, returnData } = await Query({
+        datacontent: { datasourceid: id },
+        page: 1,
+        serviceid: this.datatableId,
+        event: '0',
+        size: 9999
+      })
+      if (code == 0 && returnData?.length) {
+        this.selectTable = [...returnData]
+      }
+    },
+    groupChange (val) {
+      this.getTableData(val)
+    },
+    tableChange (val) {
+      console.log(val)
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.authInstall {
+  .el-radio.is-bordered {
+    width: 100%;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+  }
+}
+</style>

+ 20 - 7
src/views/dataAccessPage/components/accessPageNode.vue

@@ -1,16 +1,18 @@
 <template>
-  <div class="accessPageNode">
+  <div v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" class="accessPageNode">
     <div style="height: 100%;" class="accessPageNode-items">
       <node-btn v-for="(item,index) in nodeItems" :nodeIndex="index" :nodeItem="item" :nodeTxt="item.algorithmname" :isLine="item.isLine" :isDel="item.isDel" :key="index" @handleAdd="handleAdd" @handleDel="handleDel" @handleEdit="handleEdit" />
     </div>
-    <PublicPageDialog class="advancedNode" :dialog-title="dialogTitle" dialogSize="600px" :dialog-drawer="advancedDrawer" @handleClose="advancedClose" @handleSubmit="advancedTable">
+    <PublicPageDialog class="advancedNode" :dialog-title="dialogTitle" :dialogLoading="tabLoadFlag" dialogSize="600px" :dialog-drawer="advancedDrawer" @handleClose="advancedClose" @handleSubmit="advancedTable">
       <template v-if="!tabFlag">
         <!-- <node-class ref="nodeClass" @changeSelect="changeSelect" @groupChange="groupChange" /> -->
         <nodeTree ref="nodeTree" @treeNodeClick="treeNodeClick" />
       </template>
       <template v-else>
-        <node-form ref="nodeForm" :nodeForm="nodeForm" :algorithmtype="this.selectCode" />
-        <node-table ref="nodeTable" :query-id="tableId" :type="type" @tableChange="tableChange" />
+        <div style="height: calc(100vh - 180px);" v-loading="tabLoadFlag" element-loading-text="数据提交中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
+          <node-form ref="nodeForm" :nodeForm="nodeForm" :algorithmtype="this.selectCode" />
+          <node-table ref="nodeTable" :query-id="tableId" :type="type" @tableChange="tableChange" />
+        </div>
       </template>
     </PublicPageDialog>
   </div>
@@ -39,6 +41,7 @@ export default {
     return {
       loading: false,
       tabFlag: false,
+      tabLoadFlag: false,
       nodeItems: [
         {
           algorithmname: '开始',
@@ -56,7 +59,8 @@ export default {
       selectCode: '',
       nodeForm: {},
       tasData: [],
-      type: 'add'
+      type: 'add',
+      nodeIndex: ''
     }
   },
   watch: {
@@ -127,8 +131,12 @@ export default {
           break
         case 'nodedata':
           //executionorder
-          const newItems = _.orderBy([...returnData], ['executionorder'], ['desc'])
-          this.nodeItems = [...this.nodeItems, ...newItems]
+          const newItems = _.orderBy([...returnData], ['executionorder'], ['asc'])
+          this.nodeItems = [...this.nodeItems, ...newItems, {
+            algorithmname: '结束',
+            isLine: false,
+            isDel: false
+          }]
           break
         default:
           break;
@@ -156,6 +164,7 @@ export default {
     //步骤新增
     handleAdd (obj) {
       if (Object.keys(this.msgContent).length) {
+        this.nodeIndex = obj.index + 1
         this.type = 'add'
         this.advancedDrawer = true
         this.nodeForm = {}
@@ -210,6 +219,7 @@ export default {
         data.algorithmname = sessionStorage.getItem('nodeTreeTxt') || ''
         data.algorithmtype = this.selectCode
         data.algorithmsourcelibraryid = this.groupId
+        data.executionorder = this.nodeIndex
       }
       this.generalDataReception(event, this.formatDataNull(data), 'algorithmlibraryid')
     },
@@ -242,6 +252,7 @@ export default {
       this.advancedDrawer = false
       this.tabFlag = false
       this.loading = false
+      this.tabLoadFlag = false
     },
     formatDataNull (params) {
       const obj = _.cloneDeep(params)
@@ -258,6 +269,7 @@ export default {
     async tableColumnData (event = 2, key = 'algorithmparametersid') {
       const res = this.$refs['nodeTable'].tableData
       if (!res.length) return
+      // this.tabLoadFlag = true
       const items = _.cloneDeep(res)
       const datas = []
       items.map(item => {
@@ -291,6 +303,7 @@ export default {
     },
     //表格-增/删/改
     async generalDataReception (event, data, key) {
+      this.tabLoadFlag = true
       try {
         const params = {
           serviceid: this.pageServiceId,

+ 68 - 3
src/views/tablePage/index.vue

@@ -4,6 +4,9 @@
       <template slot="d_foot">
         <SimpleQuery v-if="simpleQueryFlag" :selectOptions="advancedQueryValue" :simple-query-item="simpleQueryItem" @queryValue="queryValue" />
       </template>
+      <template v-if="pageAuthBtnInstall">
+        <el-button size="small" type="primary" @click="onInstall">初始化</el-button>
+      </template>
       <AuthButton :auth="pageAuthBtnAdd" />
       <AuthButton :auth="pageAuthBtnQuery" />
       <AuthButton :auth="pageAuthBtnExport" />
@@ -11,7 +14,7 @@
     <div :style="pageTableContentHeight" class="TablePage_content flex-wrap">
       <template v-if="!dataFlag">
         <div v-if="treeData.length" class="TablePage_content_left">
-          <PublicPageTree :tree-data="treeData" :dep-math="depMath" :tree-map="treeNodeMap" @treeNodeClick="treeNodeClick" />
+          <PublicPageTree ref="pageTree" :tree-data="treeData" :dep-math="depMath" :tree-map="treeNodeMap" @treeNodeClick="treeNodeClick" />
         </div>
       </template>
       <div :class="dataFlag ? 'tableAuto' : treeData.length ? 'tableSacle' : 'tableAuto'" class="TablePage_content_right">
@@ -31,6 +34,10 @@
           <el-button size="small" @click="queryCollect('advancedDialogForm')" type="primary">收藏</el-button>
         </template>
       </PublicPageDialog>
+      <!--高级查询-->
+      <PublicPageDialog dialog-title="初始化" dialogSize="600px" :dialog-drawer="installFlag" @handleClose="installClose" @handleSubmit="installTable('installForm')">
+        <AuthInstall ref="installForm" />
+      </PublicPageDialog>
     </div>
   </div>
 </template>
@@ -43,6 +50,7 @@ import PublicPageDialog from '@/components/PublicPageDialog'
 import PublicPageForm from '@/components/publicPageForm'
 import AdvancedQuery from '@/components/AdvancedQuery'
 import AuthButton from '@/components/AuthButton'
+import AuthInstall from '@/components/AuthInstall'
 import SimpleQuery from '@/components/SimpleQuery'
 import { mapGetters } from 'vuex'
 import { Query, newData, modifyData, moveData, start, stop, startAll, stopAll } from "@/api/webApi"
@@ -51,7 +59,7 @@ import { exportToExcel } from '@/utils/table'
 
 export default {
   name: 'TablePage',
-  components: { PublicPageHeader, PublicPageTable, PublicPageDialog, PublicPageTree, PublicPageForm, AdvancedQuery, AuthButton, SimpleQuery },
+  components: { PublicPageHeader, PublicPageTable, PublicPageDialog, PublicPageTree, PublicPageForm, AdvancedQuery, AuthButton, SimpleQuery, AuthInstall },
   props: {
     dataTitle: {
       type: String,
@@ -83,6 +91,7 @@ export default {
       advancedDrawer: false, //高级查询弹框开关
       defaultfilter: { 1: 1 }, //默认查询参数
       pageQuery: {},
+      installFlag: false,
       dialogFlag: false,
       dialogName: '', //弹框名称
       pageTitle: '', //页面名称
@@ -121,7 +130,8 @@ export default {
       simpleQueryItem: [], //简易查询表单数据项
       simpleQueryValue: [], //简易查询缓存值
       advancedQueryValue: [], //高级查询缓存值
-      pageSizeDatas: ['outairportpage', 'landairportpage', 'transairportpage']
+      pageSizeDatas: ['outairportpage', 'landairportpage', 'transairportpage'],
+      pageInstall: 'permissionsManagementPage'
     }
   },
   computed: {
@@ -156,6 +166,9 @@ export default {
     },
     pageAuthBtnExport () {
       return this.tableBtns.filter(item => item.servicetype == 6)[0]
+    },
+    pageAuthBtnInstall () {
+      return this.pageInstall == this.$route.path.replace('/', '')
     }
   },
   watch: {
@@ -679,6 +692,58 @@ export default {
       // this.defaultfilter = { 1: 1 }
       // this.queryTableData(true)
     },
+    //初始化
+    onInstall () {
+      if (!Object.keys(this.selectedDataCheck).length) {
+        this.$message.error('请选中权限后再操作')
+        return
+      }
+      const { pagetype } = this.selectedDataCheck
+      if (pagetype != 'table') {
+        this.$message.error('请选择表格后再操作')
+        return
+      }
+      this.installFlag = true
+    },
+    //初始化-关闭
+    installClose () {
+      this.installFlag = false
+    },
+    //初始化-确定
+    installTable () {
+      this.installSubmit()
+      this.installFlag = false
+    },
+    async installSubmit () {
+      const { pageconfigurationid } = this.selectedDataCheck
+      const { code, returnData } = await Query({
+        serviceid: 134,
+        datacontent: {
+          tableName: this.$refs['installForm'].tableinfo,
+          datasourceid: this.$refs['installForm'].datasourceid,
+          pageconfigurationid
+        },
+        deletedatacontent: {
+          datacontent: [
+            {
+              filter: {
+                superiorid: pageconfigurationid
+              },
+              value: {}
+            }
+          ],
+          event: '3'
+        },
+        event: '0'
+      })
+      if (code == 0 && returnData?.length) {
+        this.$message.success('数据初始化成功')
+        this.$refs['pageTree'].pageInit()
+        this.queryTableData(true)
+        this.$refs['installForm'].tableinfo = ''
+        this.$refs['installForm'].datasourceid = ''
+      }
+    },
     //高级查询-确定-数据
     getAdvancedQueryData (dataRules) {
       const arr = [...dataRules]