浏览代码

服务管理

chenjun 3 年之前
父节点
当前提交
4db975cb90

+ 18 - 2
src/router/routes/routes-file-two.js

@@ -14,11 +14,27 @@ const systemSettingsRoutes = {
         {
           path: '/systemSettings',
           name: 'serviceManagement',
-          component: () => import('@/views/systemSettings/views/serviceManagement/serviceHome'),
+          component: { render(c) { return c('router-view') } },
+          redirect: '/systemSettings/serviceManagement',
           meta: { title: '服务管理' },
           hidden: true,
           src: require('@/assets/nav/ic_setting_top_default.png'),
-          srcer: require('@/assets/nav/ic_setting_top_check.png')
+          srcer: require('@/assets/nav/ic_setting_top_check.png'),
+          children: [
+          {
+            path: '/systemSettings/serviceManagement',
+            component: () => import('@/views/systemSettings/views/serviceManagement/serviceHome'),
+          },
+          {
+            path: '/systemSettings/serviceEdit',
+            name: 'serviceEdit',
+            component: () => import('@/views/systemSettings/views/serviceManagement/serviceEdit'),
+            meta: { title: '服务编辑' },
+            hidden: false,
+            isAlone: true,
+            src: require('@/assets/nav/ic_setting_top@2x.png')
+          },
+          ]
         },
         {
           path: '/systemSettings/sourceDataItemManagement',

+ 449 - 0
src/views/systemSettings/views/serviceManagement/serviceEdit.vue

@@ -0,0 +1,449 @@
+<!--
+ * @Date: 2022-03-24 09:55:13
+ * @LastEditTime: 2022-03-24 18:13:32
+ * @LastEditors: your name
+ * @Description: 服务管理-编辑接口
+ * have a nice day!
+-->
+
+<template>
+  <div class="interface-edit">
+    <el-container class="scrollbar">
+      <el-container>
+        <el-main class="part part1">
+          <el-form
+            ref="form"
+            :model="formData"
+            class="form"
+            label-position="right"
+            label-width="132px"
+          >
+            <div class="header">
+              <span class="title">服务</span>
+              <el-form-item label="是否启用">
+                <el-radio-group v-model="formData.active">
+                  <el-radio label="1">是</el-radio>
+                  <el-radio label="0">否</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item>
+                <el-button
+                  type="primary"
+                  size="small"
+                >保存</el-button>
+              </el-form-item>
+            </div>
+            <div class="main">
+              <el-form-item
+                label="名称"
+                prop="name"
+              >
+                <el-input
+                  v-model="formData.name"
+                  width="224px"
+                  placeholder="请输入名称"
+                  size="small"
+                  clearable
+                />
+              </el-form-item>
+              <el-form-item
+                label="描述"
+                prop="desc"
+              >
+                <el-input
+                  v-model="formData.desc"
+                  placeholder="请输入描述"
+                  type="textarea"
+                  :auto-size="{ minRows: 2 }"
+                  clearable
+                />
+              </el-form-item>
+              <el-row>
+                <el-col :span="8">
+                  <el-form-item label="接口类型">
+                    <el-select
+                      v-model="formData.type"
+                      size="small"
+                      placeholder="请选择"
+                    >
+                      <el-option
+                        v-for="{ value, label } in formOptions.type"
+                        :key="value"
+                        :value="value"
+                        :label="label"
+                      />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-form-item label="接口协议">
+                    <el-select
+                      v-model="formData.protocol"
+                      size="small"
+                      placeholder="请选择"
+                    >
+                      <el-option
+                        v-for="{ value, label } in formOptions.protocol"
+                        :key="value"
+                        :value="value"
+                        :label="label"
+                      />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-form-item
+                label="详细配置"
+                prop="options"
+              >
+                <el-input
+                  v-model="formData.options"
+                  placeholder="请输入详细配置"
+                  type="textarea"
+                  :auto-size="{ minRows: 2 }"
+                  clearable
+                />
+              </el-form-item>
+              <el-form-item label="是否开启本地缓存">
+                <el-radio-group v-model="formData.cache">
+                  <el-radio label="1">是</el-radio>
+                  <el-radio label="0">否</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item label="目标数据类型">
+                <el-select
+                  v-model="formData.dataType"
+                  size="small"
+                  placeholder="请选择"
+                >
+                  <el-option
+                    v-for="{ value, label } in formOptions.dataType"
+                    :key="value"
+                    :value="value"
+                    :label="label"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item
+                label="目标数据配置"
+                prop="dataOptions"
+              >
+                <el-input
+                  v-model="formData.dataOptions"
+                  placeholder="请输入目标数据配置"
+                  type="textarea"
+                  :auto-size="{ minRows: 2 }"
+                  clearable
+                />
+              </el-form-item>
+            </div>
+          </el-form>
+        </el-main>
+        <el-aside
+          class="part part2"
+          width="502px"
+        >
+          <div class="header">
+            <span class="title">节点管理</span>
+            <el-button
+              class="button-white"
+              size="small"
+            >新增</el-button>
+          </div>
+          <div class="main">
+            <el-row :gutter="22">
+              <el-col
+                v-for="node in nodeList"
+                :key="node.id"
+                :span="12"
+              >
+                <div class="interface-edit-card">
+                  <div class="card-button-close">
+                    <i class="el-icon-close" />
+                  </div>
+                  <div class="card-header">
+                    <span>{{ node.nodeName }}</span>
+                    <el-checkbox v-model="node.isChecked" />
+                  </div>
+                  <div class="card-main">
+                    <span>{{ node.IPAddr }}</span>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+          </div>
+        </el-aside>
+      </el-container>
+      <el-footer
+        class="part part3"
+        height="360px"
+      >
+        <div class="header">
+          <span class="title">源数据管理</span>
+          <el-button
+            class="button-white"
+            size="small"
+          >新增</el-button>
+        </div>
+        <div class="main">
+          <el-row :gutter="20">
+            <el-col
+              v-for="source in sourceList"
+              :key="source.id"
+              :span="4"
+            >
+              <div class="interface-edit-card">
+                <div class="card-button-close">
+                  <i class="el-icon-close" />
+                </div>
+                <div class="card-header">
+                  <span>{{ source.sourceName }}</span>
+                  <el-checkbox v-model="source.isChecked" />
+                </div>
+                <div class="card-main">
+                  <span>{{ source.desc }}</span>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+        </div>
+      </el-footer>
+    </el-container>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      formData: {
+        active: '1',
+        name: '',
+        desc: '',
+        type: '',
+        protocol: '',
+        options: '',
+        cache: '1',
+        dataType: '',
+        dataOptions: ''
+      },
+      formOptions: {
+        type: [
+          {
+            value: '1',
+            label: '主动拉取'
+          },
+          {
+            value: '2',
+            label: '自动拉取'
+          }
+        ],
+        protocol: [
+          {
+            value: 'IBMMQ',
+            label: 'IBMMQ'
+          },
+          {
+            value: 'http',
+            label: 'http'
+          }
+        ],
+        dataType: [
+          {
+            value: 'kafka',
+            label: 'kafka'
+          },
+          {
+            value: 'MQ',
+            label: 'MQ'
+          }
+        ]
+      },
+      nodeList: [
+        {
+          id: 0,
+          nodeName: '首都机场BHS',
+          IPAddr: '192.168.1.1',
+          isChecked: false
+        },
+        {
+          id: 1,
+          nodeName: '主采集节点',
+          IPAddr: '10.12.13.112',
+          isChecked: true
+        },
+        {
+          id: 2,
+          nodeName: '备用采集节点',
+          IPAddr: '10.12.13.112',
+          isChecked: true
+        }
+      ],
+      checkedNodeList: [],
+      sourceList: [
+        {
+          id: 0,
+          sourceName: 'BSM',
+          desc: '行李源报文',
+          isChecked: true
+        },
+        {
+          id: 1,
+          sourceName: 'BPM',
+          desc: '行李处理报文',
+          isChecked: true
+        },
+        {
+          id: 2,
+          sourceName: '航班动态',
+          desc: '国航全球航班计划及航班动态信息',
+          isChecked: false
+        }
+      ],
+      sourceCheckedList: []
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.interface-edit {
+  padding: 16px 0 8px;
+  overflow: hidden;
+  > .scrollbar {
+    padding: 0 24px;
+    height: calc(100vh - 104px);
+    overflow-x: hidden;
+    overflow-y: auto;
+    ::v-deep .part {
+      background: #ffffff;
+      padding: 24px 33px 20px 24px;
+      .header {
+        display: flex;
+        justify-content: space-between;
+        .title {
+          flex: 1;
+          position: relative;
+          padding-left: 16px;
+          height: 20px;
+          line-height: 32px;
+          font-size: 20px;
+          font-weight: bold;
+          &::before {
+            content: '';
+            position: absolute;
+            width: 4px;
+            height: 20px;
+            background: #2d67e3;
+            top: 6px;
+            left: 0;
+          }
+        }
+        button {
+          width: 64px;
+          height: 32px;
+          &.button-white {
+            background: #ffffff;
+            border: 1px solid #92ace2;
+            color: #2d67e3;
+          }
+        }
+      }
+      label,
+      span,
+      button,
+      input,
+      optgroup,
+      select,
+      textarea {
+        font-family: Helvetica, 'Microsoft YaHei';
+        font-size: 14px;
+      }
+      label {
+        color: #303133;
+      }
+      input {
+        color: #101116;
+      }
+      .el-radio {
+        font-weight: 400;
+      }
+      .interface-edit-card {
+        display: flex;
+        flex-direction: column;
+        justify-content: space-between;
+        padding: 16px 14px 16px 16px;
+        background: #f5f7fa;
+        box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1);
+        border-radius: 4px;
+        position: relative;
+        font-family: Helvetica, 'Microsoft YaHei';
+        .card-button-close {
+          position: absolute;
+          top: -12px;
+          right: -12px;
+          z-index: 10;
+          width: 24px;
+          height: 24px;
+          line-height: 24px;
+          text-align: center;
+          background: #000000;
+          opacity: 0.8;
+          border-radius: 50%;
+          color: #ffffff;
+          cursor: pointer;
+        }
+        .card-header {
+          display: flex;
+          justify-content: space-between;
+          color: #101116;
+          font-weight: bold;
+          font-size: 14px;
+        }
+        .card-main {
+          color: #afb4bf;
+          font-size: 12px;
+        }
+      }
+      &.part1 {
+        .header {
+          .el-form-item {
+            .el-form-item__label {
+              line-height: 34px;
+            }
+            .el-form-item__content {
+              height: 32px;
+              line-height: 32px;
+            }
+          }
+        }
+        .main {
+          span {
+            line-height: 32px;
+          }
+        }
+      }
+    }
+    .part2 {
+      margin-left: 16px;
+      .main {
+        margin-top: 4px;
+        .interface-edit-card {
+          margin-top: 20px;
+          height: 104px;
+        }
+      }
+    }
+    .part3 {
+      margin-top: 16px;
+      .main {
+        margin-top: 4px;
+        .interface-edit-card {
+          margin-top: 20px;
+          height: 120px;
+        }
+      }
+    }
+  }
+}
+</style>

+ 2 - 135
src/views/systemSettings/views/serviceManagement/serviceHome.vue

@@ -45,73 +45,6 @@
           </el-col>
         </el-row>
       </div>
-      <!--新增/编辑-->
-      <Dialog
-        :flag="editDialogVisible"
-        width="508px"
-        :show-flag="true"
-      >
-        <div class="airportInfoDialog dialog-public-background">
-          <div class="title">{{ editDialogTitle }}</div>
-          <div class="content">
-            <el-form
-              ref="ruleForm"
-              :model="ruleForm"
-              :rules="rules"
-              label-width="100px"
-              class="demo-ruleForm"
-            >
-              <el-form-item
-                label="节点名称"
-                prop="deployNodeName"
-              >
-                <el-input
-                  v-model="ruleForm.deployNodeName"
-                  size="medium"
-                  placeholder="请输入节点名称(必填)"
-                />
-              </el-form-item>
-              <el-form-item
-                label="服务地址信息"
-                prop="className"
-              >
-                <el-input
-                  v-model="ruleForm.serviceURL"
-                  size="medium"
-                  type="textarea"
-                  :rows="2"
-                  placeholder="请输入服务地址信息(必填)"
-                />
-              </el-form-item>
-              <el-form-item
-                label="描述"
-                prop="deployNodeDescribe"
-              >
-                <el-input
-                  v-model="ruleForm.deployNodeDescribe"
-                  size="medium"
-                  type="textarea"
-                  :rows="3"
-                  placeholder="请输入节点描述"
-                />
-              </el-form-item>
-            </el-form>
-          </div>
-          <div class="foot center t30">
-            <el-button
-              size="medium"
-              type="primary"
-              class="r25 r26"
-              @click="submitClickHandler()"
-            >提交</el-button>
-            <el-button
-              size="medium"
-              class="r26"
-              @click="resetForm('ruleForm')"
-            >取消</el-button>
-          </div>
-        </div>
-      </Dialog>
       <!--删除弹框-->
       <Dialog :flag="removeDialogVisible">
         <div class="airportInfoDialog">
@@ -142,7 +75,6 @@
 
 <script>
 import Dialog from '@/layout/components/Dialog/index.vue'
-import { GeneralDataReception } from '@/api/dataIntegration'
 
 export default {
   name: 'ProtocolHome',
@@ -150,22 +82,8 @@ export default {
   data() {
     return {
       dataList: [],
-      editDialogVisible: false,
       removeDialogVisible: false,
       rmObj: {},
-      editDialogTitle: '新增节点',
-      ruleForm: {
-        // 节点信息表单
-        deployNodeID: null,
-        deployNodeName: '',
-        serviceURL: '',
-        deployNodeDescribe: ''
-      },
-      rules: {
-        // 节点信息表单验证
-        deployNodeName: [{ required: true, message: '请输入节点名称', trigger: 'blur' }],
-        serviceURL: [{ required: true, message: '请输入服务地址信息', trigger: 'blur' }]
-      }
     }
   },
   created() {
@@ -179,32 +97,11 @@ export default {
   methods: {
     // 新增-弹框
     showAddDialog() {
-      this.editDialogTitle = '新增节点'
-      this.editDialogVisible = true
+      this.$router.push('/systemSettings/serviceEdit')
     },
     // 编辑-弹框
     showEditDialog(item) {
-      this.editDialogTitle = '编辑节点'
-      this.ruleForm = item
-      this.editDialogVisible = true
-    },
-    // 新增/编辑-确认
-    submitClickHandler() {
-      this.$refs['ruleForm'].validate(valid => {
-        if (valid) {
-          if (this.ruleForm.deployNodeID) {
-            this.addSubmit()
-          } else {
-            this.editSubmit()
-          }
-          this.resetForm('ruleForm')
-        }
-      })
-    },
-    // 重置
-    resetForm(formName) {
-      this.$refs[formName].resetFields()
-      this.editDialogVisible = false
+      this.$router.push('/systemSettings/serviceEdit')
     },
     // 删除-弹框
     showRemoveDialog(item) {
@@ -215,36 +112,6 @@ export default {
     removeSubmit() {
       this.removeDialogVisible = false
       this.$message.success('删除成功')
-    },
-    async addSubmit() {
-      try {
-        const res = await GeneralDataReception({
-          serviceId: '1',
-          dataContent: JSON.stringify(this.ruleForm)
-        })
-        if (res.code === 0) {
-          this.$message.success(res.message ?? '成功')
-        } else {
-          this.$message.error(res.message ?? '失败')
-        }
-      } catch (error) {
-        console.log('错误', error)
-      }
-    },
-    async editSubmit() {
-      try {
-        const res = await GeneralDataReception({
-          serviceId: '1',
-          dataContent: JSON.stringify(this.ruleForm)
-        })
-        if (res.code === 0) {
-          this.$message.success(res.message ?? '成功')
-        } else {
-          this.$message.error(res.message ?? '失败')
-        }
-      } catch (error) {
-        console.log('错误', error)
-      }
     }
   }
 }

+ 709 - 191
src/views/systemSettings/views/sourceDataItemManagement/sourceDataItemEdit.vue

@@ -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>

+ 52 - 85
src/views/systemSettings/views/targetDataManagement/targetDataEdit.vue

@@ -22,7 +22,7 @@
         >
           <el-form-item label="目标数据名" prop="name">
             <el-input
-              size="medium"
+              size="small"
               maxlength="128"
               placeholder="请输入目标数据名"
               v-model="ruleForm.name"
@@ -30,7 +30,7 @@
           </el-form-item>
           <el-form-item label="数据类型" prop="tag">
             <el-select
-              size="medium"
+              size="small"
               style="width: 100%"
               v-model="ruleForm.tag"
               placeholder="请选择数据类型"
@@ -40,22 +40,23 @@
           </el-form-item>
           <el-form-item label="目标数据事件标识" prop="fullName">
             <el-input
-              size="medium"
+              size="small"
               maxlength="128"
               placeholder="请输入目标数据事件标识"
               v-model="ruleForm.fullName"
             ></el-input>
           </el-form-item>
           <el-row>
-              <el-form-item label="目标数据描述" prop="code">
-            <el-col :span="24">
-                <el-input
-                  maxlength="128"
-                  placeholder="请输入描述"
-                  v-model="ruleForm.code"
-                ></el-input>
-            </el-col>
-              </el-form-item>
+            <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>
@@ -149,7 +150,7 @@
           是否确认删除{{ rmObj.name }}?
         </div>
         <div class="foot right t30" style="background: #ffffff">
-          <el-button size="medium" @click="remove" class="r25 r26" type="danger"
+          <el-button size="small" @click="remove" class="r25 r26" type="danger"
             >删除</el-button
           >
           <el-button size="medium" class="r26" @click="flag = false"
@@ -159,44 +160,36 @@
       </div>
     </Dialog>
     <!--新增/编辑存储数据项弹框-->
-    <Dialog width="657px" customClass="dataStoreInfoDialog" :flag="addFlag">
+    <Dialog width="450px" customClass="dataStoreInfoDialog" :flag="addFlag">
       <div class="dialog-public-background">
-        <div class="flx">{{ msgType === 1 ? "新增" : "编辑" }}存储数据项</div>
+        <div class="flx">
+          {{ msgType === 1 ? "新增" : "编辑" }}新增数据项信息
+        </div>
         <div class="contenter">
           <el-form
             :model="dataForm"
             :rules="dataRules"
             ref="dataForm"
-            label-width="100px"
+            label-width="130px"
             class="demo-dataForm"
           >
             <el-row :gutter="24">
-              <el-col :span="12">
-                <el-form-item class="flex1" label="名称" prop="name">
+              <el-col :span="24">
+                <el-form-item class="flex1" label="数据项名称" prop="name">
                   <el-input
                     maxlength="128"
-                    size="medium"
-                    placeholder="请输入名称"
+                    size="small"
+                    placeholder="请输入数据项名称"
                     v-model="dataForm.name"
                   ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row :gutter="24">
-              <el-col :span="12">
-                <el-form-item class="flex1" label="标识" prop="code">
-                  <el-input
-                    maxlength="128"
-                    size="medium"
-                    placeholder="请输入标识"
-                    v-model="dataForm.code"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
+              <el-col :span="24">
                 <el-form-item class="flex1" label="数据类型" prop="tag">
                   <el-select
-                    size="medium"
+                    size="small"
                     style="width: 100%"
                     v-model="dataForm.tag"
                     placeholder="请选择数据类型"
@@ -213,13 +206,29 @@
               </el-col>
             </el-row>
             <el-row :gutter="24">
-              <el-col :span="12">
+              <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="12">
+              <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>
@@ -227,52 +236,15 @@
               </el-col>
             </el-row>
             <el-row :gutter="24">
-              <el-col :span="12">
-                <el-form-item label="取值来源">
-                  <el-select
-                    size="medium"
-                    v-model="sourceider"
-                    placeholder="请选择取值来源"
-                  >
-                    <el-option
-                      v-for="item in sourceList"
-                      :key="item.id"
-                      :label="item.sourceName"
-                      :value="item.id"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item class="noleft">
-                  <el-select
-                    size="medium"
-                    style="width: 100%"
-                    v-model="dataForm.datas"
-                    placeholder="请选择数据项"
-                  >
-                    <el-option
-                      v-for="item in tableData"
-                      :key="item.id"
-                      :label="item.itemName"
-                      :value="item.id"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row :gutter="24">
-              <el-col :span="12">
-                <el-form-item class="flex1" label="取值优先级" prop="priority">
+              <el-col :span="24">
+                <el-form-item label="数据项描述">
                   <el-input
-                    maxlength="128"
+                    v-model="dataForm.uninq"
                     size="medium"
-                    type="number"
-                    placeholder="请输入优先级"
-                    v-model="dataForm.priority"
-                  ></el-input>
+                    type="textarea"
+                    :rows="2"
+                    placeholder="请输入描述"
+                  />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -280,18 +252,13 @@
         </div>
         <div class="foot center" style="padding-right: 35px">
           <el-button
-            v-is="['ds_dsp_cardEdit_store_edit_submit']"
-            size="medium"
+            size="small"
             type="primary"
             @click="addSubmit('dataForm')"
             class="r25 r26"
             >提交</el-button
           >
-          <el-button
-            v-is="['ds_dsp_cardEdit_store_edit_cancel']"
-            size="medium"
-            class="r26"
-            @click="resetForm('dataForm')"
+          <el-button size="small" class="r26" @click="resetForm('dataForm')"
             >取消</el-button
           >
         </div>