瀏覽代碼

参数库修改

duy 7 月之前
父節點
當前提交
f7e74f1120

+ 71 - 0
src/views/manager/wbsinfo/addParamDialog.vue

@@ -0,0 +1,71 @@
+<template>
+    <el-dialog title="添加参数" :visible.sync="visible" width="30%" append-to-body @close="closeDialog">
+      <el-form :model="parameter" label-width="120px" :rules="rules" ref="form" label-position="left">
+        <el-form-item label="参数名称" prop="name">
+          <el-input v-model="parameter.name"></el-input>
+        </el-form-item>
+        <el-form-item label="参数类型" prop="type">
+          <el-select v-model="parameter.type" placeholder="请选择参数类型" style="width: 100%;">
+            <el-option label="字符串" value="string"></el-option>
+            <el-option label="数字" value="number"></el-option>
+            <el-option label="布尔值" value="boolean"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否区分项目" prop="isProjectSpecific">
+          <el-radio v-model="parameter.isProjectSpecific" :label="true">是</el-radio>
+          <el-radio v-model="parameter.isProjectSpecific" :label="false">否</el-radio>
+        </el-form-item>
+        <el-form-item label="备注">
+          <el-input type="textarea" v-model="parameter.remark"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="closeDialog">取 消</el-button>
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+      </span>
+    </el-dialog>
+  </template>
+  
+  <script>
+  export default {
+    props: {
+      visible: {
+        type: Boolean,
+        required: true
+      }
+    },
+    data() {
+      return {
+        parameter: {
+          name: '',
+          type: '',
+          isProjectSpecific: false,
+          remark: ''
+        },
+        rules: {
+          name: [
+            { required: true, message: '请输入参数名称', trigger: 'blur' }
+          ],
+          type: [
+            { required: true, message: '请选择参数类型', trigger: 'change' }
+          ]
+        }
+      };
+    },
+    methods: {
+      closeDialog() {
+        this.$emit('update:visible', false);
+      },
+      submitForm() {
+        this.$refs.form.validate((valid) => {
+          if (valid) {
+            this.$emit('add-parameter', this.parameter);
+            this.closeDialog();
+          } else {
+            return false;
+          }
+        });
+      }
+    }
+  };
+  </script>

+ 50 - 21
src/views/manager/wbsinfo/paramDetail.vue

@@ -2,14 +2,15 @@
   <div>
    
     <!-- 弹窗 -->
-    <el-dialog :title="params.title" :visible.sync="dialogVisible" width="60%" append-to-body>
+    <el-dialog :title="params.title" :visible.sync="dialogVisible" width="60%" append-to-body @clocse="closeParamDialog">
       <div>
+        <div class="sub-title">分部工程名称</div>
         <!-- 搜索栏 -->
         <div class="search-container">
             <div>
               <el-form :inline="true" :model="searchForm" class="demo-form-inline" size="small" >
-                  <el-form-item label="项目名称" prop="projectName">
-                      <el-select v-model="searchForm.projectName" placeholder="请选择项目名称" @change="changeProject" clearable >
+                  <el-form-item label="" prop="projectName">
+                      <el-select v-model="searchForm.projectName" placeholder="项目名称" @change="changeProject" clearable >
                           <el-option
                           v-for="item in projectList"
                           :key="item.id"
@@ -18,8 +19,8 @@
                           </el-option>
                       </el-select>
                     </el-form-item>
-                    <el-form-item label="合同段" prop="contractSection">
-                      <el-select v-model="searchForm.contractSection" placeholder="请选择合同段" clearable >
+                    <el-form-item label="" prop="contractSection">
+                      <el-select v-model="searchForm.contractSection" placeholder="合同段" clearable >
                           <el-option
                           v-for="item in contractList"
                           :key="item.id"
@@ -28,21 +29,26 @@
                           </el-option>
                       </el-select>
                      </el-form-item>
+                     <el-form-item>
+                        <el-input v-model="searchForm.textSearch"  placeholder="元素名称"></el-input>
+                      </el-form-item>
                       <el-form-item>
-                          <el-button type="primary" @click="onSearch">搜索</el-button>
+                          <el-button type="primary" >搜索</el-button>
                       </el-form-item>
               </el-form>
           </div>
 
           <!-- 新增按钮 -->
           <div>
-            <el-button type="primary" @click="handleAdd" size="small" >新增</el-button>
+            <el-button type="success" @click="handleAdd" size="small" >新增元素</el-button>
+            <el-button type="primary" @click="handleEditParam" size="small" >编辑参数</el-button>
+            <el-button type="danger" @click="handleDelteParam" size="small" >删除参数</el-button>
           </div>
           
         </div>
 
         <!-- 表格 -->
-        <el-table :data="tableData" style="width: 100%">
+        <el-table :data="tableData" style="width: 100%" border>
           <el-table-column type="index" label="序号" width="50"></el-table-column>
           <el-table-column prop="elementName" label="元素名称"></el-table-column>
           <el-table-column prop="isGlobal" label="是否全局参数"></el-table-column>
@@ -50,7 +56,7 @@
           <el-table-column prop="contractSection" label="合同段"></el-table-column>
           <el-table-column prop="creator" label="创始人"></el-table-column>
           <el-table-column prop="createTime" label="创建时间"></el-table-column>
-          <el-table-column label="操作" width="150">
+          <el-table-column label="操作" width="100">
             <template slot-scope="scope">
               <el-link size="mini" @click="handleEdit(scope.$index, scope.row)"  type="primary" >编辑</el-link>
               <el-link size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)"  class="mg-l-10">删除</el-link>
@@ -61,12 +67,12 @@
     </el-dialog>
 
     <!-- 新增弹窗 -->
-    <el-dialog title="元素新增" :visible.sync="addDialogVisible" width="30%" append-to-body>
-      <el-form :model="form" :rules="rules" ref="formRef">
+    <el-dialog title="元素新增" :visible.sync="addDialogVisible" width="30%" append-to-body @close="closeDialog">
+      <el-form :model="form" :rules="rules" ref="formRef" label-position="left">
         <el-form-item label="元素名称" label-width="120px">
           <el-input v-model="form.elementName" :disabled="form.selectedElement.length>0"></el-input>
         </el-form-item>
-        <el-form-item label="选择元素" label-width="120px">
+        <el-form-item label="选择元素" label-width="120px" v-if="!isEdit">
             <el-button style="width: 100%;" @click="checkEle" v-if="form.selectedElement.length===0" :disabled="form.elementName.length>0">点击选择元素</el-button>
             <div class="bottom-box" v-else @click="checkEle">
               <el-tag type="info"  closable v-for="item in form.selectedElement" :key="id" class="mr-5"   @close="handleClose(tag)">{{ item.eName }}</el-tag>
@@ -79,7 +85,6 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="合同段" prop="contractSection" v-if="form.isGlobal===false"  label-width="120px">
-                 
                       <el-select v-model="form.projectName" placeholder="请选择项目" @change="changeProject" clearable style="width: 48%;">
                           <el-option
                           v-for="item in projectList"
@@ -97,7 +102,7 @@
                           :value="item.id">
                           </el-option>
                       </el-select>
-          </el-form-item>
+        </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="addDialogVisible = false">取 消</el-button>
@@ -107,6 +112,8 @@
 
     <!-- 选择元素弹窗 -->
      <checkEleDialog ref="checkEleDialogRef" @confirmCheck="confirmCheck"></checkEleDialog>
+     <!-- 编辑参数弹窗 -->
+      <addParamDialog :visible.sync="editDialogVisible" @add-parameter="handleEditParam" />
   </div>
 </template>
 
@@ -114,9 +121,11 @@
 import checkEleDialog from './checkEleDialog.vue';
 import { getProjectList } from "@/api/manager/projectinfo";
 import { findContractByProjectId } from "@/api/manager/contractinfo";
+import addParamDialog from './addParamDialog.vue';
 export default {
     components:{
-        checkEleDialog
+        checkEleDialog,
+        addParamDialog
     },
     props:{
             params:Object
@@ -138,7 +147,7 @@ export default {
       searchForm: {
         projectName: '',
         contractSection: '',
-        textSearch: ''
+        textSearch: '',
       },
       tableData: [
         {
@@ -159,6 +168,7 @@ export default {
         }
       ],
       addDialogVisible:false,
+      isEdit:false,
       form: {
         elementName: '',
         selectedElement: [],
@@ -169,7 +179,8 @@ export default {
         isGlobal: [
           { required: true, message: '请选择是否全局参数', trigger: 'change' }
         ]
-      }
+      },
+      editDialogVisible:false
     };
   },
   methods: {
@@ -177,19 +188,33 @@ export default {
       this.dialogVisible = true;
       this.getProjectListData()
     },
+    closeParamDialog(){
+      this.dialogVisible = false;
+      this.addDialogVisible=false;
+    },
     onSearch() {
       // 实现搜索逻辑
       console.log('搜索条件:', this.searchForm);
     },
     handleAdd() {
       // 实现新增逻辑
-      console.log('新增');
       this.addDialogVisible=true;
+      this.isEdit=false
+    },
+    closeDialog(){
+      this.addDialogVisible=false;
+      this.isEdit=false
     },
-    handleEdit(index, row) {
-      // 实现编辑逻辑
-      console.log('编辑:', index, row);
+    handleEditParam(item){
+      this.editDialogVisible=true
+   
+    },
+    handleEdit(index, row) {;
       this.addDialogVisible=true;
+      this.isEdit=true
+    },
+    handleDelteParam(){
+
     },
     handleDelete(index, row) {
       // 实现删除逻辑
@@ -246,4 +271,8 @@ export default {
 .mr-5{
   margin-right: 5px;
 }
+.sub-title{
+  margin-bottom: 15px;
+  font-weight: bold;
+}
 </style>

+ 9 - 29
src/views/manager/wbsinfo/parameter.vue

@@ -14,12 +14,12 @@
                 <p class="small-text">元泰自动获股单位工程的名称,并回显到表格中</p>
                
                 </div>
-                <div class="delete-icon-container">
+                <!-- <div class="delete-icon-container">
                 <i
                     class="el-icon-delete-solid delete-icon"
                     @click.stop="delSetParameterName(item)"
                 ></i>
-                </div>
+                </div> -->
             </el-card>
             </el-col>
             <el-col v-else :span="24">
@@ -28,40 +28,18 @@
         </el-row>
       </div>
       <!-- 新增弹窗 -->
-      <el-dialog title="添加参数" :visible.sync="dialogVisible" width="30%" append-to-body >
-            <el-form :model="parameter" label-width="100px" :rules="rules" ref="form">
-                <el-form-item label="参数名称"  prop="name">
-                <el-input v-model="parameter.name"></el-input>
-                </el-form-item>
-                <el-form-item label="参数类型"  prop="type">
-                <el-select v-model="parameter.type" placeholder="请选择参数类型" style="width: 100%;">
-                    <el-option label="字符串" value="string"></el-option>
-                    <el-option label="数字" value="number"></el-option>
-                    <el-option label="布尔值" value="boolean"></el-option>
-                </el-select>
-                </el-form-item>
-                <el-form-item label="是否区分项目"  prop="isProjectSpecific">
-                    <el-radio v-model="parameter.isProjectSpecific" :label="true">是</el-radio>
-                    <el-radio v-model="parameter.isProjectSpecific" :label="false">否</el-radio>
-                </el-form-item>
-                <el-form-item label="备注">
-                <el-input type="textarea" v-model="parameter.remark"></el-input>
-                </el-form-item>
-            </el-form>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="dialogVisible = false">取 消</el-button>
-                <el-button type="primary" @click="addParameter">确 定</el-button>
-            </span>
-        </el-dialog>
-        <!-- 详情弹窗 -->
          <paramDetail ref="paramDetailRef" :params="parameterRow"></paramDetail>
+          <!-- 新增弹窗 -->
+        <addParamDialog :visible.sync="dialogVisible" @add-parameter="addCard" />
  </basic-container>
 </template>
 <script>
 import paramDetail from './paramDetail.vue';
+import addParamDialog from './addParamDialog.vue';
 export default{
     components:{
-        paramDetail
+        paramDetail,
+        addParamDialog
     },
     data(){
         return{
@@ -130,7 +108,9 @@ export default{
         handleSetParameterName(item){
             console.log(item)
             this.parameterRow = item
+            this.dialogVisible = false
             this.$refs.paramDetailRef.show()
+          
         }
     }
 }