jwyu 1 rok temu
rodzic
commit
2674cae510

+ 16 - 0
src/api/modules/dataSource.js

@@ -23,6 +23,22 @@ const apiDataSource={
         return http.get('/data_stat/edb_update_log',params)
     },
 
+    // 新增/编辑终端账号
+    accountSave:params=>{
+        return http.post('/data_stat/terminal/save',params)
+    },
+
+    //终端账号列表
+    accountList:params=>{
+        return http.get('/data_stat/terminal/list',params)
+    },
+
+    //启用/禁用终端账号
+    accountSet:params=>{
+        return http.post('/data_stat/terminal/status/set',params)
+    },
+    
+
 }
 
 export {

+ 1 - 6
src/routes/modules/dataRoutes.js

@@ -191,12 +191,7 @@ export default [
         path: "futuresbase",
         name: "期货数据库",
         component: () => import("@/views/futures_manage/futuresBase.vue"),
-      },
-      {
-        path: "dataSource",
-        name: "数据源管理",
-        component: () => import("@/views/dataSource_manage/dataSourceList.vue"),
-      },
+      }
     ],
   },
 ];

+ 19 - 0
src/routes/modules/dataSource.js

@@ -0,0 +1,19 @@
+const home = r => require.ensure([], () => r(require('@/views/Home.vue')), 'Home'); //主页
+
+export default [
+    //
+    {
+        path: "/",
+        component: home,
+        name: "数据报表管理",
+        hidden: false,
+        icon_path: require("@/assets/img/home/data_ic.png"),
+        children: [
+            {
+                path: "dataSourceGL",
+                name: "数据源管理",
+                component: () => import("@/views/dataSource_manage/dataSourceListGL.vue"),
+            },
+        ]
+    }
+]

+ 1 - 16
src/utils/buttonConfig.js

@@ -234,23 +234,8 @@ export const dataSourcePermission = {
     /*--------国家统计局---- */
     gjtjjData_export:'gjtjjData:export',
 
-    /*--------数据源管理---- */
-    //数据源明细表
-    dataSource_detailTable_see:'dataSource:detailTable:see',//查看
-    dataSource_detailTable_checkAll:'dataSource:detailTable:checkAll',//列表全选
-    dataSource_detailTable_refresh:'dataSource:detailTable:refresh',//一键刷新
-    dataSource_detailTable_setRefreshTime:'dataSource:detailTable:setRefreshTime',//设置刷新时间
-    dataSource_detailTable_filterDate:'dataSource:detailTable:filterDate',//日期筛选
-    // 数据源统计表
-    dataSource_statisticTable_see:'dataSource:statisticTable:see',//查看
-    dataSource_statisticTable_filterDate:'dataSource:statisticTable:filterDate',//日期筛选
-    // 删除指标表
-    dataSource_delTable_see:'dataSource:delTable:see',//查看
-    // 指标信息变更表
-    dataSource_edbInfoTable_see:'dataSource:edbInfoTable:see',//查看
-    dataSource_edbInfoTable_filterDate:'dataSource:edbInfoTable:filterDate',//日期筛选
+    /*--------数据报表管理---- */
     /*--------数据源终端管理---- */
-    dataSource_account_see:'dataSourceAccount:see',//查看
     dataSource_account_add:'dataSourceAccount:add',//新增终端账号
     dataSource_account_edit:'dataSourceAccount:edit',//编辑
     dataSource_account_enable:'dataSourceAccount:enable',//禁用/启用

+ 80 - 14
src/views/dataSource_manage/accountList.vue

@@ -1,6 +1,11 @@
 <template>
     <div class="account-list-page">
-        <el-button type="primary" @click="showEditAccount=true">新增终端账号</el-button>
+
+        <el-button 
+            type="primary" 
+            @click="showEditAccount=true;activeTermId=0;initData={}"
+            v-permission="permissionBtn.dataSourcePermission.dataSource_account_add"
+        >新增终端账号</el-button>
         <el-table
             style="margin-top:30px"
             :data="tableData"
@@ -13,11 +18,33 @@
                 :prop="col.key"
                 :sortable="col.sortable"
                 align="center"
-            />
+            >
+                <template slot-scope="scope">
+                    <span 
+                        v-if="col.key==='Status'"
+                        :style="scope.row.Status===1?'':'#FF0000'"
+                    >{{scope.row.Status===1?'启用':'禁用'}}</span>
+                </template>
+            </el-table-column>
             <el-table-column label="操作" align="center">
                 <template slot-scope="scope">
-                    <span>编辑</span>
-                    <span>禁用</span>
+                    <span 
+                        style="color:#409EFF;cursor: pointer;" 
+                        @click="handleEditAccount(scope.row)"
+                        v-permission="permissionBtn.dataSourcePermission.dataSource_account_edit"
+                    >编辑</span>
+                    <span 
+                        style="color:#409EFF;cursor: pointer;" 
+                        @click="handleSetAccountStatus(scope.row,2)" 
+                        v-if="scope.row.Status===1"
+                        v-permission="permissionBtn.dataSourcePermission.dataSource_account_enable"
+                    >禁用</span>
+                    <span 
+                        style="color:#409EFF;cursor: pointer;" 
+                        @click="handleSetAccountStatus(scope.row,1)" 
+                        v-if="scope.row.Status===2"
+                        v-permission="permissionBtn.dataSourcePermission.dataSource_account_enable"
+                    >启用</span>
                 </template>
             </el-table-column>
             <div slot="empty">
@@ -26,12 +53,13 @@
         </el-table>
 
         <!-- 新增/编辑终端账号 -->
-        <EditAccount v-model="showEditAccount"/>
+        <EditAccount v-model="showEditAccount" :TerminalId="activeTermId" :initData="initData"/>
     </div>
 </template>
 
 <script>
 import EditAccount from './components/EditAccount.vue'
+import {apiDataSource} from '@/api/modules/dataSource.js'
 export default {
     components:{EditAccount},
     data() {
@@ -39,37 +67,75 @@ export default {
             tableData:[],
             tableColOpts:[
                 {
-                    name:'终端编',
-                    key:'',
+                    name:'终端编',
+                    key:'TerminalCode',
                 },
                 {
                     name:'终端名称',
-                    key:'',
+                    key:'Name',
+                },
+                {
+                    name:'文件夹路径',
+                    key:'DirPath',
                 },
                 {
                     name:'终端地址/token',
-                    key:'',
+                    key:'ServerUrl',
                 },
                 {
                     name:'数据源类型',
-                    key:'',
+                    key:'Source',
                 },
                 {
                     name:'状态',
-                    key:'',
+                    key:'Status',
                 },
                 {
                     name:'指标数据量',
-                    key:'',
+                    key:'Num',
                 },
                 {
                     name:'更新时间',
-                    key:'',
+                    key:'ModifyTime',
                     sortable:'custom'
                 },
             ],
 
-            showEditAccount:false
+            showEditAccount:false,
+            activeTermId:0,
+            initData:{},
+        }
+    },
+    created() {
+        this.getAccountList()
+    },
+    methods: {
+        async getAccountList(){
+            const res=await apiDataSource.accountList({})
+            if(res.Ret===200){
+                const arr=res.Data.List||[]
+                this.tableData=arr
+            }
+        },
+
+        // 点击编辑账号
+        handleEditAccount(e){
+            this.activeTermId=e.TerminalId
+            this.initData=e
+            this.showEditAccount=true
+        },
+
+        // 启用/禁用账号
+        handleSetAccountStatus(e,status){
+            apiDataSource.accountSet({
+                TerminalId:e.TerminalId,
+                Status:status
+            }).then(res=>{
+                if(res.Ret===200){
+                    this.$message.success('操作成功')
+                    this.getAccountList()
+                }
+            })
         }
     },
 }

+ 60 - 8
src/views/dataSource_manage/components/EditAccount.vue

@@ -1,6 +1,6 @@
 <template>
     <el-dialog
-      title="终端账号"
+      :title="TerminalId?'编辑终端账号':'新增终端账号'"
       :visible.sync="show"
       :modal-append-to-body="false"
       :close-on-click-modal="false"
@@ -20,6 +20,9 @@
             <el-form-item label="终端名称" prop="name">
                 <el-input placeholder="请输入终端名称" v-model="formState.name" style="width:300px"></el-input>
             </el-form-item>
+            <el-form-item label="文件夹路径" prop="dirUrl">
+                <el-input placeholder="请输入文件夹路径" v-model="formState.dirUrl"  style="width:300px" :disabled="TerminalId"></el-input>
+            </el-form-item>
             <el-form-item label="终端地址/token" prop="url">
                 <el-input placeholder="请输入终端地址/token" v-model="formState.url"  style="width:300px"></el-input>
             </el-form-item>
@@ -27,13 +30,14 @@
                 <el-select 
                     v-model="formState.type" 
                     placeholder="请选择数据源类型"
-                     style="width:300px"
+                    style="width:300px"
+                    :disabled="TerminalId"
                 >
                     <el-option 
-                        v-for="item in dataSourceTypeOpt"
-                        :key="item"
-                        :label="item"
-                        :value="item"
+                        v-for="item in dataSourceOpt"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
                     />
                 </el-select>
             </el-form-item>
@@ -43,13 +47,24 @@
         </el-form>
         <div style="text-align:center;margin:30px 0">
             <el-button type="primary" plain @click="handleClose">取消</el-button>
-            <el-button type="primary">确定</el-button>
+            <el-button type="primary" @click="handleSave">确定</el-button>
         </div>
     </el-dialog>
 </template>
 
 <script>
 import {dataSourceTypeOpt} from '../utils/config'
+import {fromCode} from '@/views/dataEntry_manage/databaseComponents/util.js'
+import {apiDataSource} from '@/api/modules/dataSource.js'
+function initSourceTypeData(){
+    const arr=dataSourceTypeOpt.map(item=>{
+        return {
+            label:item,
+            value:fromCode.get(item)
+        }
+    })
+    return arr
+}
 export default {
     model:{
         prop:"show",
@@ -59,14 +74,34 @@ export default {
         show:{
             type:Boolean,
             default:false
+        },
+        TerminalId:{
+            type:Number,
+            default:0
+        },
+        initData:{
+            type:Object,
+            default:{}
+        }
+    },
+    watch: {
+        show(n,o){
+            if(n&&this.TerminalId){
+                this.formState.name=this.initData.Name
+                this.formState.url=this.initData.ServerUrl
+                this.formState.dirUrl=this.initData.DirPath
+                this.type=this.initData.Source.toString()
+                this.num=this.initData.Num
+            }
         }
     },
     data() {
         return {
-            dataSourceTypeOpt,
+            dataSourceOpt:initSourceTypeData(),
             formState:{
                 name:'',
                 url:'',
+                dirUrl:'',
                 type:'',
                 num:''
             }
@@ -75,6 +110,23 @@ export default {
     methods: {
         handleClose(){
             this.$emit('close', false)
+        },
+
+        async handleSave(){
+            const params={
+                TerminalId:this.TerminalId||0,
+                Source:Number(fromCode.get(this.formState.type)),//终端类型
+                Name:this.formState.name,
+                ServerUrl:this.formState.url,
+                DirPath:this.formState.dirUrl,
+                Num:Number(this.formState.num),
+            }
+            console.log(params);
+            const res=await apiDataSource.accountSave(params)
+            if(res.Ret===200){
+                this.$message.success('保存成功')
+                this.handleClose()
+            }
         }
     },
 }

+ 0 - 0
src/views/dataSource_manage/dataSourceList.vue → src/views/dataSource_manage/dataSourceListGL.vue