|
@@ -1,51 +1,266 @@
|
|
|
<!--
|
|
|
- * @Author: Badguy
|
|
|
- * @Date: 2022-04-12 17:49:47
|
|
|
- * @LastEditTime: 2022-04-13 16:17:37
|
|
|
- * @LastEditors: your name
|
|
|
- * @Description: 源数据管理-首页
|
|
|
- * have a nice day!
|
|
|
+ * @Date: 2021-11-19 11:34:20
|
|
|
+ * @LastEditTime: 2022-03-02 09:41:02
|
|
|
+ * @LastEditors: Please set LastEditors
|
|
|
+ * @Description: 目标数据-基本信息
|
|
|
-->
|
|
|
-
|
|
|
<template>
|
|
|
- <div class="sourceDataItem-edit">
|
|
|
- <div class="wrap">
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="18">
|
|
|
- <div class="protocol-header flex" style="padding-top:30px">
|
|
|
- <div class="manageTitle">源数据信息</div>
|
|
|
- <div class="addBtn">
|
|
|
- <el-button class="button-white" size="small" @click="showAddDialog()">测试</el-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="orgTreeCont">
|
|
|
- <org-tree :dataList="dataList" :renderContent="renderContent" />
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <div class="part">
|
|
|
- <div class="protocol-header flex">
|
|
|
- <div class="manageTitle">编辑源数据信息</div>
|
|
|
- <div class="addBtn">
|
|
|
- <el-button class="button-blue" size="small" @click="showAddDialog()">保存</el-button>
|
|
|
- </div>
|
|
|
+ <div class="dataStoreInfo">
|
|
|
+ <!--基本信息-->
|
|
|
+ <div class="airportInfoDetails-head">
|
|
|
+ <Search title="编辑目标数据信息" :isSearch="false">
|
|
|
+ <button class="childBtnAn" @click="storagemod">保存</button>
|
|
|
+ </Search>
|
|
|
+ <div class="airportInfoDetails-head-content dialog-public-background">
|
|
|
+ <el-form
|
|
|
+ :inline="true"
|
|
|
+ :rules="rules"
|
|
|
+ :model="ruleForm"
|
|
|
+ ref="ruleForm"
|
|
|
+ class="demo-ruleForm"
|
|
|
+ label-width="140px"
|
|
|
+ >
|
|
|
+ <el-form-item label="目标数据名" prop="name">
|
|
|
+ <el-input
|
|
|
+ size="small"
|
|
|
+ maxlength="128"
|
|
|
+ placeholder="请输入目标数据名"
|
|
|
+ v-model="ruleForm.name"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="数据类型" prop="tag">
|
|
|
+ <el-select
|
|
|
+ size="small"
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="ruleForm.tag"
|
|
|
+ placeholder="请选择数据类型"
|
|
|
+ >
|
|
|
+ <el-option label="Mysql_local" value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="目标数据事件标识" prop="fullName">
|
|
|
+ <el-input
|
|
|
+ size="small"
|
|
|
+ maxlength="128"
|
|
|
+ placeholder="请输入目标数据事件标识"
|
|
|
+ v-model="ruleForm.fullName"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-row>
|
|
|
+ <el-form-item label="目标数据描述" prop="code">
|
|
|
+ <el-input
|
|
|
+ maxlength="128"
|
|
|
+ placeholder="请输入描述"
|
|
|
+ type="textarea"
|
|
|
+ :rows="1"
|
|
|
+ v-model="ruleForm.code"
|
|
|
+ style="width: 575px"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!--数据项信息-->
|
|
|
+ <div class="airportInfoDetails-content">
|
|
|
+ <Search
|
|
|
+ style="padding-left: 24px"
|
|
|
+ :isChild="true"
|
|
|
+ title="数据项信息"
|
|
|
+ @clearSearchData="clearSearchData"
|
|
|
+ @getSearchData="getSearchData"
|
|
|
+ >
|
|
|
+ <button @click="addStore" class="childBtnAdd">新增</button>
|
|
|
+ </Search>
|
|
|
+ <div class="table-info">
|
|
|
+ <el-table
|
|
|
+ :data="posArr"
|
|
|
+ row-key="id"
|
|
|
+ :row-class-name="tabRowClassName"
|
|
|
+ height="56vh"
|
|
|
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
|
|
+ class="table"
|
|
|
+ style="width: 100%"
|
|
|
+ :header-cell-style="{ 'text-align': 'center' }"
|
|
|
+ :cell-style="{ 'text-align': 'center' }"
|
|
|
+ >
|
|
|
+ <el-table-column prop="itemName" label="数据项名称"></el-table-column>
|
|
|
+ <el-table-column prop="itemCode" label="数据项标识"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="dataTypeName"
|
|
|
+ label="数据类型"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="canNullName"
|
|
|
+ label="数据项描述"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="isOnlyMarkName"
|
|
|
+ label="数据来源表达式"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="analysisDataItemName"
|
|
|
+ label="是否必填"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="analysisDataItemName"
|
|
|
+ label="是否唯一"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <div
|
|
|
+ slot-scope="scope"
|
|
|
+ style="
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ class="fut"
|
|
|
+ size="small"
|
|
|
+ @click="handleEdit(scope.$index, scope.row)"
|
|
|
+ >新增</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ class="fut"
|
|
|
+ size="small"
|
|
|
+ @click="handleEdit(scope.$index, scope.row)"
|
|
|
+ >编辑</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ class="futdel"
|
|
|
+ size="small"
|
|
|
+ type="danger"
|
|
|
+ @click="handleDelete(scope.$index, scope.row)"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!--删除弹框-->
|
|
|
- <Dialog :flag="removeDialogVisible">
|
|
|
+ <Dialog :flag="flag">
|
|
|
<div class="airportInfoDialog">
|
|
|
- <div class="del-title">删除源数据</div>
|
|
|
+ <div class="del-title">删除存储数据项</div>
|
|
|
<div class="content er">
|
|
|
- <div class="log">
|
|
|
- 是否确认删除{{ rmObj.AuthName }}?
|
|
|
- </div>
|
|
|
+ <div class="log"></div>
|
|
|
+ 是否确认删除{{ rmObj.name }}?
|
|
|
</div>
|
|
|
- <div class="DelFoot right t30">
|
|
|
- <el-button size="medium" class="r25 r26" type="danger" @click="removeSubmit()">删除</el-button>
|
|
|
- <el-button size="medium" class="r26" @click="removeDialogVisible = false">取消</el-button>
|
|
|
+ <div class="foot right t30" style="background: #ffffff">
|
|
|
+ <el-button size="small" @click="remove" class="r25 r26" type="danger"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ <el-button size="medium" class="r26" @click="flag = false"
|
|
|
+ >取消</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Dialog>
|
|
|
+ <!--新增/编辑存储数据项弹框-->
|
|
|
+ <Dialog width="450px" customClass="dataStoreInfoDialog" :flag="addFlag">
|
|
|
+ <div class="dialog-public-background">
|
|
|
+ <div class="flx">
|
|
|
+ {{ msgType === 1 ? "新增" : "编辑" }}新增数据项信息
|
|
|
+ </div>
|
|
|
+ <div class="contenter">
|
|
|
+ <el-form
|
|
|
+ :model="dataForm"
|
|
|
+ :rules="dataRules"
|
|
|
+ ref="dataForm"
|
|
|
+ label-width="130px"
|
|
|
+ class="demo-dataForm"
|
|
|
+ >
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item class="flex1" label="数据项名称" prop="name">
|
|
|
+ <el-input
|
|
|
+ maxlength="128"
|
|
|
+ size="small"
|
|
|
+ placeholder="请输入数据项名称"
|
|
|
+ v-model="dataForm.name"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item class="flex1" label="数据类型" prop="tag">
|
|
|
+ <el-select
|
|
|
+ size="small"
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="dataForm.tag"
|
|
|
+ placeholder="请选择数据类型"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in optiondata"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item
|
|
|
+ class="flex1"
|
|
|
+ label="数据来源表达式"
|
|
|
+ prop="priority"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ maxlength="128"
|
|
|
+ size="small"
|
|
|
+ placeholder="请输入数据来源表达式"
|
|
|
+ v-model="dataForm.priority"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item class="flexer" label="允许空值">
|
|
|
+ <el-radio v-model="dataForm.isnull" label="1">是</el-radio>
|
|
|
+ <el-radio v-model="dataForm.isnull" label="0">否</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item class="flexer" label="唯一项标志">
|
|
|
+ <el-radio v-model="dataForm.uninq" label="1">是</el-radio>
|
|
|
+ <el-radio v-model="dataForm.uninq" label="0">否</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="数据项描述">
|
|
|
+ <el-input
|
|
|
+ v-model="dataForm.uninq"
|
|
|
+ size="medium"
|
|
|
+ type="textarea"
|
|
|
+ :rows="2"
|
|
|
+ placeholder="请输入描述"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div class="foot center" style="padding-right: 35px">
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ @click="addSubmit('dataForm')"
|
|
|
+ class="r25 r26"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
+ <el-button size="small" class="r26" @click="resetForm('dataForm')"
|
|
|
+ >取消</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</div>
|
|
|
</Dialog>
|
|
@@ -53,186 +268,489 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { GeneralDataReception } from "@/api/dataIntegration";
|
|
|
-import orgTree from '@/layout/components/OrgTree';
|
|
|
-import Dialog from '@/layout/components/Dialog/index.vue';
|
|
|
+import Search from "@/layout/components/Search/index.vue";
|
|
|
+import Dialog from "@/layout/components/Dialog/index.vue";
|
|
|
+import {
|
|
|
+ Datastorage,
|
|
|
+ Datastoragemod,
|
|
|
+ storageList,
|
|
|
+ analysisList,
|
|
|
+ anaListmod,
|
|
|
+ storageListadd,
|
|
|
+ storageListdel,
|
|
|
+} from "@/api/acquisition";
|
|
|
+import { translateDataToTreeAll, findarrays } from "@/utils/validate";
|
|
|
export default {
|
|
|
- name: "ProtocolHome",
|
|
|
- components: { orgTree, Dialog },
|
|
|
- data () {
|
|
|
+ name: "dataStoreInfo",
|
|
|
+ components: { Search, Dialog },
|
|
|
+ data() {
|
|
|
return {
|
|
|
- dataList: {
|
|
|
- id: 0,
|
|
|
- AuthName: 'BSM',
|
|
|
- Type: 0,
|
|
|
- Desc: '行李源报文',
|
|
|
- children: [
|
|
|
- {
|
|
|
- AuthName: 'BSM',
|
|
|
- Type: 1,
|
|
|
- id: 1,
|
|
|
- Desc: '行李源报文',
|
|
|
- children: [
|
|
|
- {
|
|
|
- AuthName: 'BSM',
|
|
|
- Type: 2,
|
|
|
- id: 3,
|
|
|
- Desc: '行李源报文',
|
|
|
- },
|
|
|
- {
|
|
|
- AuthName: 'BSM',
|
|
|
- Type: 2,
|
|
|
- id: 4,
|
|
|
- Desc: '行李源报文',
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- AuthName: 'BSM',
|
|
|
- Type: 1,
|
|
|
- id: 2,
|
|
|
- Desc: '行李源报文',
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
ruleForm: {
|
|
|
- // 节点信息表单
|
|
|
- deployNodeID: null,
|
|
|
- deployNodeName: "",
|
|
|
- serviceURL: "",
|
|
|
- deployNodeDescribe: "",
|
|
|
+ //基本信息表单
|
|
|
+ name: "",
|
|
|
+ fullName: "",
|
|
|
+ code: "",
|
|
|
+ tag: "",
|
|
|
},
|
|
|
rules: {
|
|
|
- // 节点信息表单验证
|
|
|
- deployNodeName: [
|
|
|
- { required: true, message: "请输入节点名称", trigger: "blur" },
|
|
|
+ //基本信息验证
|
|
|
+ name: [{ required: true, message: "请输入存储名称", trigger: "blur" }],
|
|
|
+ fullName: [
|
|
|
+ { required: true, message: "请输入存储标识", trigger: "blur" },
|
|
|
],
|
|
|
- serviceURL: [
|
|
|
- { required: true, message: "请输入服务地址信息", trigger: "blur" },
|
|
|
+ tag: [{ required: true, message: "请选择存储方式", trigger: "change" }],
|
|
|
+ },
|
|
|
+ posArr: [], //存储数据项数据
|
|
|
+ posArrCopy: [], //临时存放数据
|
|
|
+ rmObj: {}, //选中的表格信息
|
|
|
+ rmIndex: null, //选中的表格序号
|
|
|
+ flag: false, //删除弹框
|
|
|
+ msgType: 1, //新增or编辑
|
|
|
+ dataForm: {
|
|
|
+ //数据项表单
|
|
|
+ id: "",
|
|
|
+ name: "",
|
|
|
+ demo: "",
|
|
|
+ code: "",
|
|
|
+ tag: "",
|
|
|
+ uninq: "1",
|
|
|
+ isnull: "1",
|
|
|
+ form: "",
|
|
|
+ datas: "",
|
|
|
+ priority: "",
|
|
|
+ analysisDataItemSourceId: "",
|
|
|
+ },
|
|
|
+ dataRules: {
|
|
|
+ //数据项表单验证
|
|
|
+ name: [{ required: true, message: "请输入存储名称", trigger: "blur" }],
|
|
|
+ code: [{ required: true, message: "请输入存储标识", trigger: "blur" }],
|
|
|
+ tag: [{ required: true, message: "请选择存储方式", trigger: "change" }],
|
|
|
+ priority: [
|
|
|
+ { required: true, message: "请选取值优先级", trigger: "change" },
|
|
|
],
|
|
|
},
|
|
|
- removeDialogVisible: false,
|
|
|
- rmObj: {
|
|
|
- protocolName: ''
|
|
|
- }
|
|
|
+ addFlag: false, //数据项弹框,
|
|
|
+ dataStoreid: "", //修改id,
|
|
|
+ analyList: [], //遍历后的确定数据
|
|
|
+ dataitem: [], //所属数据项
|
|
|
+ optiondata: [
|
|
|
+ //数据类型
|
|
|
+ {
|
|
|
+ name: "字符",
|
|
|
+ id: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "数字",
|
|
|
+ id: 2,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "日期",
|
|
|
+ id: 3,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "时间",
|
|
|
+ id: 4,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ sourceList: [], //取值来源
|
|
|
+ sourceider: "", //取值来源id
|
|
|
+ tableData: [],
|
|
|
+ deleID: "", //删除id
|
|
|
};
|
|
|
},
|
|
|
- created () { },
|
|
|
+ created() {
|
|
|
+ const { id } = this.$route.query;
|
|
|
+ this.dataStoreid = id;
|
|
|
+ this.AcquisitionList();
|
|
|
+ this.DatastorageList();
|
|
|
+ this.storagedetails();
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ sourceider() {
|
|
|
+ this.Dataitem();
|
|
|
+ },
|
|
|
+ },
|
|
|
methods: {
|
|
|
- //渲染节点
|
|
|
- renderContent (h, data) {
|
|
|
- return (
|
|
|
- <div onClick={() => this.renderSub(data)} class="account-left-content-teams">
|
|
|
- <div class="team">
|
|
|
- <div class="list">
|
|
|
- <div class="flex info">
|
|
|
- <div class="name">{data.AuthName}</div>
|
|
|
- <div class="icon">
|
|
|
- <span
|
|
|
- v-show={data.Type === 0 || data.Type === 1}
|
|
|
- onClick={(e) => this.onNodeSub(data, e)}
|
|
|
- class="cap cap-sub"
|
|
|
- ></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="details">
|
|
|
- <div class="details-msg">
|
|
|
- {data.Desc}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-show={data.Type == 1 || data.Type >= 2}
|
|
|
- onClick={(e) => this.onNodeClick(data, e)}
|
|
|
- class="info-close"
|
|
|
- >
|
|
|
- <i
|
|
|
- class={[
|
|
|
- data.Type === 1 ? "close1" : data.Type > 2 ? "close2" : "",
|
|
|
- "icon",
|
|
|
- "el-icon-close",
|
|
|
- ]}
|
|
|
- ></i>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- );
|
|
|
+ tabRowClassName({ row, rowIndex }) {
|
|
|
+ if (row.index) {
|
|
|
+ let index = row.index + 1;
|
|
|
+ if (index % 2 == 0) {
|
|
|
+ return "warning-row";
|
|
|
+ } else {
|
|
|
+ return "warning-rows";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //数据采集列表-取值来源
|
|
|
+ async AcquisitionList() {
|
|
|
+ const result = await analysisList();
|
|
|
+ if (result.code == 0) {
|
|
|
+ this.sourceList = result.returnData;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //数据项信息
|
|
|
+ async Dataitem() {
|
|
|
+ let params = {
|
|
|
+ sourceId: this.sourceider,
|
|
|
+ };
|
|
|
+ const result = await anaListmod(params);
|
|
|
+ if (result.code == 0) {
|
|
|
+ this.tableData = result.returnData;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //详情查询
|
|
|
+ async storagedetails() {
|
|
|
+ let params = {
|
|
|
+ targetId: this.dataStoreid,
|
|
|
+ };
|
|
|
+ const result = await storageList(params);
|
|
|
+ if (result.code == 0) {
|
|
|
+ result.returnData.forEach((element) => {
|
|
|
+ if (element.dataType == "1") {
|
|
|
+ element.dataTypeName = "字符";
|
|
|
+ } else if (element.dataType == "2") {
|
|
|
+ element.dataTypeName = "数字";
|
|
|
+ } else if (element.dataType == "3") {
|
|
|
+ element.dataTypeName = "日期";
|
|
|
+ } else {
|
|
|
+ element.dataTypeName = "时间";
|
|
|
+ }
|
|
|
+ if (element.canNull == true) {
|
|
|
+ element.canNullName = "是";
|
|
|
+ } else {
|
|
|
+ element.canNullName = "否";
|
|
|
+ }
|
|
|
+ if (element.isOnlyMark == true) {
|
|
|
+ element.isOnlyMarkName = "是";
|
|
|
+ } else {
|
|
|
+ element.isOnlyMarkName = "否";
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.posArr = translateDataToTreeAll(
|
|
|
+ result.returnData,
|
|
|
+ "parentItemID",
|
|
|
+ "id"
|
|
|
+ );
|
|
|
+ this.posArr.forEach((res, index) => {
|
|
|
+ res.index = index + 1;
|
|
|
+ });
|
|
|
+ this.dataitem = result.returnData;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //保存
|
|
|
+ async storagemod() {
|
|
|
+ let params = {
|
|
|
+ id: this.dataStoreid,
|
|
|
+ targetName: this.ruleForm.name, //储存名称
|
|
|
+ targetCode: this.ruleForm.fullName, //储存标识
|
|
|
+ saveType: this.ruleForm.tag, //储存类型
|
|
|
+ saveInfo: this.ruleForm.code, //储存目标
|
|
|
+ status: this.analyList[0].status,
|
|
|
+ };
|
|
|
+ const result = await Datastoragemod(params);
|
|
|
+ if (result.code == 0) {
|
|
|
+ this.$message.success("成功");
|
|
|
+ this.$router.push("/dataStore");
|
|
|
+ } else {
|
|
|
+ this.$message.error(result.message);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //数据存储列
|
|
|
+ async DatastorageList() {
|
|
|
+ const result = await Datastorage();
|
|
|
+ if (result.code == 0) {
|
|
|
+ this.analyList = result.returnData.filter(
|
|
|
+ (i) => i.id == this.dataStoreid
|
|
|
+ );
|
|
|
+ this.ruleForm.name = this.analyList[0].targetName; //储存名称
|
|
|
+ this.ruleForm.fullName = this.analyList[0].targetCode; //储存标识
|
|
|
+ this.ruleForm.tag = this.analyList[0].saveType; //储存类型
|
|
|
+ this.ruleForm.code = this.analyList[0].saveInfo; //储存目标
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //搜索
|
|
|
+ getSearchData(val) {
|
|
|
+ let that = this;
|
|
|
+ that.storagedetails().then(function (data) {
|
|
|
+ if (val) {
|
|
|
+ that.posArr = findarrays(that.posArr, "itemName", val);
|
|
|
+ } else {
|
|
|
+ that.storagedetails();
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
- onNodeClick (data, e) {
|
|
|
- e.stopPropagation();
|
|
|
- this.rmObj = data;
|
|
|
- this.removeDialogVisible = true;
|
|
|
+ //清空搜索
|
|
|
+ clearSearchData() {
|
|
|
+ this.posArr = this.posArrCopy;
|
|
|
},
|
|
|
- renderSub (data) {
|
|
|
- console.log(data, 'click');
|
|
|
+ //编辑信息
|
|
|
+ handleEdit(index, row) {
|
|
|
+ this.rmObj = row;
|
|
|
+ this.rmIndex = index;
|
|
|
+ this.msgType = 2;
|
|
|
+ this.addFlag = true;
|
|
|
+ const {
|
|
|
+ id,
|
|
|
+ itemName,
|
|
|
+ itemCode,
|
|
|
+ dataType,
|
|
|
+ isOnlyMark,
|
|
|
+ canNull,
|
|
|
+ sourceDataAnalysisId,
|
|
|
+ dataLevel,
|
|
|
+ parentItemID,
|
|
|
+ analysisDataItemSourceId,
|
|
|
+ } = row;
|
|
|
+ this.dataForm.id = id;
|
|
|
+ this.dataForm.name = itemName;
|
|
|
+ this.dataForm.code = itemCode;
|
|
|
+ this.dataForm.tag = Number(dataType);
|
|
|
+ this.dataForm.uninq = isOnlyMark === true ? "1" : "0";
|
|
|
+ this.dataForm.isnull = canNull === true ? "1" : "0";
|
|
|
+ this.dataForm.datas = sourceDataAnalysisId;
|
|
|
+ this.dataForm.priority = dataLevel;
|
|
|
+ this.dataForm.demo = parentItemID == 0 ? null : parentItemID;
|
|
|
+ this.sourceider = analysisDataItemSourceId;
|
|
|
},
|
|
|
- onNodeSub (data, e) {
|
|
|
- e.stopPropagation();
|
|
|
- const { Type } = data;
|
|
|
- const obj = {
|
|
|
- AuthName: "BSM",
|
|
|
- Desc: "行李源报文",
|
|
|
- Type: Type + 1,
|
|
|
- children: []
|
|
|
+ //删除信息
|
|
|
+ handleDelete(index, row) {
|
|
|
+ this.rmObj = row;
|
|
|
+ this.rmIndex = index;
|
|
|
+ this.flag = true;
|
|
|
+ this.deleID = row.id;
|
|
|
+ },
|
|
|
+ //删除
|
|
|
+ async remove() {
|
|
|
+ let params = {
|
|
|
+ id: this.deleID,
|
|
|
+ };
|
|
|
+ const result = await storageListdel(params);
|
|
|
+ if (result.code == 0) {
|
|
|
+ this.$message.success("成功");
|
|
|
+ } else {
|
|
|
+ this.$message.error(result.message);
|
|
|
}
|
|
|
- if (data.children) {
|
|
|
- data.children.push(obj);
|
|
|
+ this.storagedetails();
|
|
|
+ this.flag = false;
|
|
|
+ },
|
|
|
+ //新增数据项
|
|
|
+ addStore() {
|
|
|
+ this.msgType = 1;
|
|
|
+ this.addFlag = true;
|
|
|
+ },
|
|
|
+ //存储数据项-提交
|
|
|
+ async addSubmit(formName) {
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ // this.$message.success("提交成功");
|
|
|
+ // this.resetForm(formName);
|
|
|
+ } else {
|
|
|
+ console.log("error submit!!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (this.msgType === 1) {
|
|
|
+ let params = {
|
|
|
+ id: "",
|
|
|
+ targetDataID: this.dataStoreid,
|
|
|
+ parentItemID: this.dataForm.demo ? this.dataForm.demo : 0, //所属数据项
|
|
|
+ itemName: this.dataForm.name, //名称
|
|
|
+ itemCode: this.dataForm.code, //标识
|
|
|
+ dataType: this.dataForm.tag, //数据类型
|
|
|
+ isOnlyMark: this.dataForm.uninq == 1 ? true : false, //唯一项标志
|
|
|
+ canNull: this.dataForm.isnull == 1 ? true : false, //允许空值
|
|
|
+ sourceDataAnalysisId: this.dataForm.datas, //取值来源
|
|
|
+ dataLevel: this.dataForm.priority, //取值优先级
|
|
|
+ };
|
|
|
+ const result = await storageListadd(params);
|
|
|
+ if (result.code == 0) {
|
|
|
+ this.storagedetails();
|
|
|
+ this.$message.success("成功");
|
|
|
+ this.resetForm(formName);
|
|
|
+ this.dataForm = this.$options.data().dataForm;
|
|
|
+ this.sourceider = null;
|
|
|
+ }
|
|
|
} else {
|
|
|
- data.children = [];
|
|
|
- data.children.push(obj);
|
|
|
+ let params = {
|
|
|
+ id: this.dataForm.id,
|
|
|
+ targetDataID: this.dataStoreid,
|
|
|
+ parentItemID: this.dataForm.demo ? this.dataForm.demo : 0, //所属数据项
|
|
|
+ itemName: this.dataForm.name, //名称
|
|
|
+ itemCode: this.dataForm.code, //标识
|
|
|
+ dataType: this.dataForm.tag, //数据类型
|
|
|
+ isOnlyMark: this.dataForm.uninq == 1 ? true : false, //唯一项标志
|
|
|
+ canNull: this.dataForm.isnull == 1 ? true : false, //允许空值
|
|
|
+ sourceDataAnalysisId: this.dataForm.datas, //取值来源
|
|
|
+ dataLevel: this.dataForm.priority, //取值优先级
|
|
|
+ };
|
|
|
+ const result = await storageListadd(params);
|
|
|
+ if (result.code == 0) {
|
|
|
+ this.storagedetails();
|
|
|
+ this.$message.success("成功");
|
|
|
+ this.resetForm(formName);
|
|
|
+ this.dataForm = this.$options.data().dataForm;
|
|
|
+ this.sourceider = null;
|
|
|
+ }
|
|
|
+ this.resetForm(formName);
|
|
|
}
|
|
|
},
|
|
|
- removeSubmit () {
|
|
|
- this.removeDialogVisible = false;
|
|
|
- }
|
|
|
+ //存储数据项-取消
|
|
|
+ resetForm(formName) {
|
|
|
+ this.addFlag = false;
|
|
|
+ this.dataForm = this.$options.data().dataForm;
|
|
|
+ this.sourceider = null;
|
|
|
+ this.$refs[formName].resetFields();
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-.sourceDataItem-edit {
|
|
|
- height: calc(100vh - 80px);
|
|
|
- .wrap {
|
|
|
- padding: 16px 24px;
|
|
|
- height: 100%;
|
|
|
- .el-row {
|
|
|
- height: 100%;
|
|
|
- .el-col {
|
|
|
- height: 100%;
|
|
|
+.dataStoreInfo {
|
|
|
+ ::v-deep .warning-row {
|
|
|
+ background: #f0f3f7;
|
|
|
+ }
|
|
|
+ ::v-deep .warning-rows {
|
|
|
+ background: #ffffff;
|
|
|
+ }
|
|
|
+ .log {
|
|
|
+ width: 26px;
|
|
|
+ height: 26px;
|
|
|
+ background: #eb2f3b;
|
|
|
+ border-radius: 50%;
|
|
|
+ margin-right: 15px;
|
|
|
+ background: url("../../../../assets/index/ic_close_hint.png") no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ }
|
|
|
+ .fut {
|
|
|
+ width: 48px;
|
|
|
+ height: 24px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ background: #ffffff;
|
|
|
+ border: 1px solid #9ebbf7;
|
|
|
+ box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.06);
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #2d67e3;
|
|
|
+ }
|
|
|
+ .futdel {
|
|
|
+ width: 48px;
|
|
|
+ height: 24px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ background: #eb2f3b;
|
|
|
+ box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.06);
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #ffffff;
|
|
|
+ }
|
|
|
+ .contenter {
|
|
|
+ padding: 0 24px 0 24px;
|
|
|
+ }
|
|
|
+ .flexer {
|
|
|
+ margin-left: 0;
|
|
|
+ }
|
|
|
+ // ::v-deep .cell {
|
|
|
+ // display: flex;
|
|
|
+ // }
|
|
|
+ .er {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ .airportInfoDetails-head {
|
|
|
+ padding: 32px 40px 44px 24px;
|
|
|
+ background: #ffffff;
|
|
|
+ box-shadow: 8px 6px 7px 0px rgba(0, 0, 0, 0.06);
|
|
|
+ border-radius: 4px;
|
|
|
+ .airportInfoDetails-head-content {
|
|
|
+ margin-top: 48px;
|
|
|
+ .el-input {
|
|
|
+ min-width: 188px;
|
|
|
}
|
|
|
- }
|
|
|
- .protocol-header {
|
|
|
- line-height: 32px;
|
|
|
- font-size: 14px;
|
|
|
- .button-white {
|
|
|
- border: 1px solid #9ebbf7;
|
|
|
- background: #f5f7fa;
|
|
|
- -webkit-box-shadow: 0px 6px 7px 0px rgb(0 0 0 / 6%);
|
|
|
- box-shadow: 0px 6px 7px 0px rgb(0 0 0 / 6%);
|
|
|
- border-radius: 4px;
|
|
|
- font-family: Microsoft YaHei;
|
|
|
- font-weight: bold;
|
|
|
- color: #2d67e3;
|
|
|
+ .el-form--inline .el-form-item {
|
|
|
+ margin-bottom: 0;
|
|
|
+ margin-right: 48px;
|
|
|
}
|
|
|
- .button-blue {
|
|
|
- border: 1px solid #9ebbf7;
|
|
|
- background: #2d67e3;
|
|
|
- -webkit-box-shadow: 0px 6px 7px 0px rgb(0 0 0 / 6%);
|
|
|
- box-shadow: 0px 6px 7px 0px rgb(0 0 0 / 6%);
|
|
|
- border-radius: 4px;
|
|
|
- font-family: Microsoft YaHei;
|
|
|
- font-weight: bold;
|
|
|
- color: #ffffff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .airportInfoDetails-content {
|
|
|
+ // height: 56vh;
|
|
|
+ overflow-x: hidden;
|
|
|
+ overflow-y: hidden;
|
|
|
+ padding: 0 0 0 0;
|
|
|
+ background: #dfe3ea;
|
|
|
+ // box-shadow: 0px 6px 7px 0px rgba(0, 0, 0, 0.06);
|
|
|
+ border-radius: 4px;
|
|
|
+ margin-top: 10px;
|
|
|
+ .table-info {
|
|
|
+ margin-top: 8px;
|
|
|
+ ::v-deep .table {
|
|
|
+ .el-table__header {
|
|
|
+ .has-gutter {
|
|
|
+ color: #101116;
|
|
|
+ .is-leaf {
|
|
|
+ height: 40px;
|
|
|
+ background: #ffffff;
|
|
|
+ &:first-child {
|
|
|
+ border-top-left-radius: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .gutter {
|
|
|
+ background: #ffffff;
|
|
|
+ border-top-right-radius: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ td.el-table__cell,
|
|
|
+ th.el-table__cell.is-leaf {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+ .el-table__cell {
|
|
|
+ padding: 16px 0;
|
|
|
+ // background: #f5f7fa;
|
|
|
+ }
|
|
|
+ .el-table__row--level-1 {
|
|
|
+ td {
|
|
|
+ background: #dfe4ec;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tr {
|
|
|
+ transition: all 0.3s;
|
|
|
+ &:hover {
|
|
|
+ td {
|
|
|
+ background-color: #cbd7ee;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &::before {
|
|
|
+ width: 0;
|
|
|
+ }
|
|
|
}
|
|
|
- margin-bottom: 30px;
|
|
|
}
|
|
|
- .part {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- background: #ffffff;
|
|
|
- border-radius: 4px;
|
|
|
- padding: 30px 24px;
|
|
|
+ }
|
|
|
+ ::v-deep .dataStoreInfoDialog {
|
|
|
+ .demo-dataForm {
|
|
|
+ .noleft {
|
|
|
+ .el-form-item__content {
|
|
|
+ margin-left: 0 !important;
|
|
|
+ margin-right: 0 !important;
|
|
|
+ width: 300px;
|
|
|
+ .el-input__suffix {
|
|
|
+ right: 23px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ ::v-deep .el-input__suffix {
|
|
|
+ right: 15px;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|