|
@@ -1,400 +1,43 @@
|
|
|
<template>
|
|
|
- <div class="newService">
|
|
|
- <div class="newService-head flex-wrap">
|
|
|
- <div class="manageTitle">{{ title }}</div>
|
|
|
- <div class="icons flex-wrap">
|
|
|
- <div class="icons-list start">
|
|
|
- <span class="icons-list-box"></span>
|
|
|
- <span class="icons-list-text">启用</span>
|
|
|
- </div>
|
|
|
- <div class="icons-list stop">
|
|
|
- <span class="icons-list-box"></span>
|
|
|
- <span class="icons-list-text">停用</span>
|
|
|
- </div>
|
|
|
- <div class="icons-list error">
|
|
|
- <span class="icons-list-box"></span>
|
|
|
- <span class="icons-list-text">异常</span>
|
|
|
- </div>
|
|
|
+ <div class="dataAccessPage">
|
|
|
+ <PublicPageHeader class="dataAccessPage_header" page-title="服务管理" />
|
|
|
+ <div class="dataAccessPage_content flex-wrap">
|
|
|
+ <div class="dataAccessPage_content_left">
|
|
|
+ <AccessPageTree />
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="newService-content flex-wrap">
|
|
|
- <div class="newService-content-left">
|
|
|
- <div class="newService-content-left-top">
|
|
|
- <div class="flex head">
|
|
|
- <div class="title">服务列表</div>
|
|
|
- <el-button @click="handleAdd" type="primary" size="small">新增</el-button>
|
|
|
- </div>
|
|
|
- <div class="search">
|
|
|
- <el-input size="small" placeholder="请输入内容" clearable prefix-icon="el-icon-search" v-model="search">
|
|
|
- </el-input>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="newService-content-left-bottom">
|
|
|
- <template v-if="dataList.length">
|
|
|
- <el-scrollbar ref="scroll" style="height: 100%">
|
|
|
- <div v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
|
|
|
- <div v-for="(item,index) in dataList" :key="index" @click.stop="handleClick(item,index)" :class="index == activeIndex ? 'active':''" class="contents flex">
|
|
|
- <div class="left">
|
|
|
- <span :class="item.runstate ? 'success' : 'error'" class="box"></span>
|
|
|
- <el-tooltip class="item" effect="dark" :content="item.servicename" placement="top">
|
|
|
- <span class="txt">{{ item.servicename }}</span>
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div v-show="activeIndex == index" class="right">
|
|
|
- <template v-if="!flag && item.serviceid">
|
|
|
- <template v-if="item.servicetype == 4">
|
|
|
- <span @click.stop="handleStart" v-if="!item.runstate" class="start">启用</span>
|
|
|
- <span @click.stop="handleStop" v-else class="stop">停用</span>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <span @click.stop="handleRest(item)" class="rest">重置</span>
|
|
|
- </template>
|
|
|
- </template>
|
|
|
- <span @click.stop="handleError" class="error">删除</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-scrollbar>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <el-empty description="暂无数据"></el-empty>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="newService-content-right">
|
|
|
- <div class="newService-content-right-top">
|
|
|
- <div class="flex">
|
|
|
- <div class="title">服务配置 {{ dataObj.servicename }}</div>
|
|
|
- <el-button type="primary" @click="handleSave" :disabled="flag" size="small">保存</el-button>
|
|
|
- </div>
|
|
|
- <div class="demo-form">
|
|
|
- <PublicPageForm ref="rulesForm" :form-item="jqList" :formData="dataObj" labelWidth="200px" form-type="horizontal" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div style="height: calc(100% - 280px);overflow: hidden;" class="newService-content-right-bottom">
|
|
|
- <PublicPageTable :dataId="dataId" :msgContent="msgContent" dataTitle="算法配置" />
|
|
|
- </div>
|
|
|
+ <div class="dataAccessPage_content_right">
|
|
|
+ <!-- <AccessPageTable data-title="算法配置" :msg-content="{}" /> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import PublicPageTable from '@/views/tablePage'
|
|
|
-import PublicPageDialog from '@/components/PublicPageDialog'
|
|
|
-import PublicPageForm from '@/components/publicPageForm'
|
|
|
-import { Query, newData, modifyData, moveData, start, stop } from "@/api/webApi"
|
|
|
-import * as _ from 'lodash'
|
|
|
-
|
|
|
+import PublicPageHeader from '@/components/PublicPageHeader'
|
|
|
+import AccessPageTree from './components/accessPageTree.vue'
|
|
|
+import AccessPageTable from '@/views/tablePage'
|
|
|
export default {
|
|
|
- name: 'NewService',
|
|
|
- components: { PublicPageForm, PublicPageDialog, PublicPageTable },
|
|
|
- data () {
|
|
|
- return {
|
|
|
- title: '服务设置',
|
|
|
- search: '',
|
|
|
- arrs: [],
|
|
|
- flag: true,
|
|
|
- rmFlag: false,
|
|
|
- formInline: {
|
|
|
- servicename: '',
|
|
|
- servicetype: '',
|
|
|
- containerid: '',
|
|
|
- loopcount: '',
|
|
|
- frequencyCount: '',
|
|
|
- frequencyUnit: '',
|
|
|
- taskValid: '',
|
|
|
- taskInvalid: '',
|
|
|
- tasktype: '',
|
|
|
- cronexpress: ''
|
|
|
- },
|
|
|
- activeIndex: null,
|
|
|
- pageIndex: 0,
|
|
|
- pageSize: 9999,
|
|
|
- dataContent: { filter: { 1: 1 } },
|
|
|
- queryId: '',
|
|
|
- dataObj: {},
|
|
|
- dataType: 'edit',
|
|
|
- noMore: false,
|
|
|
- loading: false,
|
|
|
- dataId: 15,
|
|
|
- msgContent: {
|
|
|
- serviceid: '15',
|
|
|
- pagecode: 'algorithmlibraryManagementTable'
|
|
|
- },
|
|
|
- jqList: []
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- dataList () {
|
|
|
- return this.arrs.filter(data => !this.search || data.servicename.toLowerCase().includes(this.search.toLowerCase()))
|
|
|
- },
|
|
|
- },
|
|
|
- created () {
|
|
|
- const { title, qid } = this.$route.meta
|
|
|
- this.title = title
|
|
|
- this.queryId = qid
|
|
|
- this.getQuery(qid)
|
|
|
- this.getMsgList(14)
|
|
|
- },
|
|
|
- updated () {
|
|
|
- this.scrollDown()
|
|
|
- },
|
|
|
- methods: {
|
|
|
- async getQuery (id) {
|
|
|
- try {
|
|
|
- this.loading = true;
|
|
|
- const { code, returnData } = await Query({
|
|
|
- serviceid: id,
|
|
|
- datacontent: this.dataContent,
|
|
|
- event: '0'
|
|
|
- })
|
|
|
- if (code == 0) {
|
|
|
- if (returnData.length === 0) {
|
|
|
- this.pageIndex--;
|
|
|
- this.noMore = true;
|
|
|
- }
|
|
|
- this.arrs.push(...returnData)
|
|
|
- if (this.dataType == 'add') {
|
|
|
- const item = this.arrs[this.arrs.length - 1]
|
|
|
- if (Object.keys(item).length) {
|
|
|
- this.dataObj = item
|
|
|
- this.flag = false
|
|
|
- this.msgContent = {
|
|
|
- service_id: item.serviceID
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- this.loading = false;
|
|
|
- } else {
|
|
|
- this.pageIndex--;
|
|
|
- this.loading = false;
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- this.pageIndex--;
|
|
|
- this.loading = false;
|
|
|
- }
|
|
|
- },
|
|
|
- async getMsgList (id) {
|
|
|
- try {
|
|
|
- const { code, returnData } = await Query({
|
|
|
- serviceid: '3',
|
|
|
- datacontent: { filter: { pagecode: 'serviceinfoManagementTable', serviceid: id } },
|
|
|
- event: '0'
|
|
|
- })
|
|
|
- if (code == 0) {
|
|
|
- const formItemCopy = _.cloneDeep(returnData).filter((item) => item.isdisplay == 2 || item.isdisplay == 3);
|
|
|
- this.jqList = _.orderBy(formItemCopy, ['displaynumber'], ['asc']);
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- this.jqList = []
|
|
|
- }
|
|
|
- },
|
|
|
- load () {
|
|
|
- if (!this.noMore) {
|
|
|
- this.getQuery(this.queryId);
|
|
|
- }
|
|
|
- },
|
|
|
- scrollDown () {
|
|
|
- if (this.$refs['scroll'] && this.dataType == 'add') {
|
|
|
- this.$refs['scroll'].wrap.scrollTop = this.$refs['scroll'].wrap.scrollHeight
|
|
|
- }
|
|
|
- },
|
|
|
- resetTable () {
|
|
|
- this.pageIndex = 0;
|
|
|
- this.noMore = false;
|
|
|
- this.arrs = [];
|
|
|
- },
|
|
|
- //服务列表-新增
|
|
|
- handleAdd () {
|
|
|
- this.dataType = 'add'
|
|
|
- },
|
|
|
- //服务列表-点击
|
|
|
- handleClick (item, index) {
|
|
|
- this.dataType = 'edit'
|
|
|
- this.dataObj = _.cloneDeep(item)
|
|
|
- this.activeIndex = index
|
|
|
- this.flag = false
|
|
|
- },
|
|
|
- //服务列表-启用
|
|
|
- handleStart () {
|
|
|
- if (this.dataObj.serviceID && this.dataType == 'edit') {
|
|
|
- this.dataObj.runState = 1
|
|
|
- this.controlService(1, this.dataObj)
|
|
|
- } else if (this.dataType == 'add' && this.arrs[this.arrs.length - 1].serviceID) {
|
|
|
- this.arrs[this.arrs.length - 1].runState = 1
|
|
|
- this.controlService(1, this.arrs[this.arrs.length - 1])
|
|
|
- }
|
|
|
- else {
|
|
|
- this.$message.error('请先添加当前服务后再操作')
|
|
|
- }
|
|
|
- },
|
|
|
- //服务列表-停用
|
|
|
- handleStop () {
|
|
|
- if (this.dataObj.serviceID && this.dataType == 'edit') {
|
|
|
- this.dataObj.runState = 0
|
|
|
- this.controlService(0, this.dataObj)
|
|
|
- } else if (this.dataType == 'add' && this.arrs[this.arrs.length - 1].serviceID) {
|
|
|
- this.arrs[this.arrs.length - 1].runState = 0
|
|
|
- this.controlService(0, this.arrs[this.arrs.length - 1])
|
|
|
- }
|
|
|
- else {
|
|
|
- this.$message.error('请先添加当前服务后再操作')
|
|
|
- }
|
|
|
- },
|
|
|
- //服务列表-重置
|
|
|
- handleRest (item) {
|
|
|
- this.controlService(0, item)
|
|
|
- },
|
|
|
- //服务列表-保存
|
|
|
- handleSave () {
|
|
|
- console.log(this.$refs['rulesForm'].tableForm)
|
|
|
- return
|
|
|
- if (this.dataObj.serviceID && this.dataType == 'edit') {
|
|
|
- const obj = {}
|
|
|
- obj.Value = this.formInline
|
|
|
- obj.filter = {
|
|
|
- serviceID: this.dataObj.serviceID
|
|
|
- }
|
|
|
- if (obj.Value.serviceID) {
|
|
|
- delete obj.Value.serviceID
|
|
|
- }
|
|
|
- this.generalDataReception(2, [obj])
|
|
|
- } else if (this.dataType == 'add' && this.arrs[this.arrs.length - 1].serviceID) {
|
|
|
- this.formInline.serviceID = this.arrs[this.arrs.length - 1].serviceID
|
|
|
- const obj = {}
|
|
|
- obj.Value = this.formInline
|
|
|
- obj.filter = [{
|
|
|
- "left": "(",
|
|
|
- "column": `serviceID`,
|
|
|
- "comparator": "=",
|
|
|
- "value": `${this.formInline.serviceID}`,
|
|
|
- "right": ")",
|
|
|
- "connector": "and"
|
|
|
- }]
|
|
|
- if (obj.Value.serviceID) {
|
|
|
- delete obj.Value.serviceID
|
|
|
- }
|
|
|
- this.generalDataReception(2, [obj])
|
|
|
- } else if (this.dataType == 'add') {
|
|
|
- const obj = {}
|
|
|
- obj.Value = this.formInline
|
|
|
- this.generalDataReception(1, [obj])
|
|
|
- }
|
|
|
- else {
|
|
|
- this.$message.error('请先选中服务后再操作')
|
|
|
- }
|
|
|
- },
|
|
|
- tableRemove () {
|
|
|
- if (this.dataObj.serviceID && this.dataType == 'edit') {
|
|
|
- // const obj = {}
|
|
|
- // obj.filter = this.dataObj
|
|
|
- this.generalDataReception(3, [this.dataObj])
|
|
|
- this.msgContent = {
|
|
|
- service_id: ''
|
|
|
- }
|
|
|
- this.activeIndex = null;
|
|
|
- this.dataObj = {};
|
|
|
- for (const key in this.formInline) {
|
|
|
- if (Object.hasOwnProperty.call(this.formInline, key)) {
|
|
|
- this.formInline[key] = null
|
|
|
- }
|
|
|
- }
|
|
|
- this.flag = true
|
|
|
- } else if (this.dataType == 'add' && this.arrs[this.arrs.length - 1].serviceID) {
|
|
|
- // const obj = {}
|
|
|
- // obj.filter = this.arrs[this.arrs.length - 1]
|
|
|
- this.generalDataReception(3, [this.arrs[this.arrs.length - 1]])
|
|
|
- this.msgContent = {
|
|
|
- service_id: ''
|
|
|
- }
|
|
|
- this.activeIndex = null;
|
|
|
- this.dataObj = {};
|
|
|
- for (const key in this.formInline) {
|
|
|
- if (Object.hasOwnProperty.call(this.formInline, key)) {
|
|
|
- this.formInline[key] = null
|
|
|
- }
|
|
|
- }
|
|
|
- this.flag = true
|
|
|
- this.dataType = 'edit'
|
|
|
- }
|
|
|
- else {
|
|
|
- this.arrs.splice(this.activeIndex, 1)
|
|
|
- this.activeIndex = null
|
|
|
- this.flag = true
|
|
|
- this.dataObj = {}
|
|
|
- for (const key in this.formInline) {
|
|
|
- if (Object.hasOwnProperty.call(this.formInline, key)) {
|
|
|
- this.formInline[key] = null
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- this.rmFlag = false
|
|
|
- },
|
|
|
- //服务列表-删除
|
|
|
- handleError () {
|
|
|
- this.rmFlag = true
|
|
|
- },
|
|
|
- //服务列表-增/删/改
|
|
|
- async generalDataReception (event, data) {
|
|
|
- try {
|
|
|
- const params = {
|
|
|
- serviceId: this.queryId,
|
|
|
- dataContent: data,
|
|
|
- event: `${event}`,
|
|
|
- };
|
|
|
- const { code } =
|
|
|
- event == 1
|
|
|
- ? await newData(params)
|
|
|
- : event == 2
|
|
|
- ? await modifyData(params)
|
|
|
- : await moveData(params);
|
|
|
- if (code == 0) {
|
|
|
- this.$message.success("操作成功");
|
|
|
- this.resetTable();
|
|
|
- this.getQuery(this.queryId);
|
|
|
- } else {
|
|
|
- this.$message.error("操作失败");
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- this.$message.error("操作失败");
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- //服务启停
|
|
|
- async controlService (event, data) {
|
|
|
- try {
|
|
|
- const params = {
|
|
|
- serviceId: data.serviceID
|
|
|
- };
|
|
|
- const { code } =
|
|
|
- event == 1
|
|
|
- ? await start(params)
|
|
|
- : await stop(params);
|
|
|
- if (code == 0) {
|
|
|
- this.resetTable()
|
|
|
- this.getQuery(this.queryId)
|
|
|
- this.$message.success("操作成功")
|
|
|
- // const obj = {}
|
|
|
- // obj.Value = data
|
|
|
- // obj.filter = {
|
|
|
- // serviceID: data.serviceID
|
|
|
- // }
|
|
|
- // if (obj.Value.serviceID) {
|
|
|
- // delete obj.Value.serviceID
|
|
|
- // }
|
|
|
- // this.generalDataReception(2, [obj])
|
|
|
- } else {
|
|
|
- this.$message.error("操作失败");
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- this.$message.error("操作失败");
|
|
|
- }
|
|
|
- },
|
|
|
- }
|
|
|
+ name: 'DataAccessPage',
|
|
|
+ components: { PublicPageHeader, AccessPageTree, AccessPageTable }
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-@import "./css/index.scss";
|
|
|
-</style>
|
|
|
+.dataAccessPage {
|
|
|
+ height: calc(100vh - 80px);
|
|
|
+ padding: 20px;
|
|
|
+ &_content {
|
|
|
+ margin-top: 20px;
|
|
|
+ height: calc(100vh - 180px);
|
|
|
+ &_left {
|
|
|
+ width: 350px;
|
|
|
+ margin-right: 20px;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ &_right {
|
|
|
+ width: calc(100% - 370px);
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|