Просмотр исходного кода

新增试验参数配置页面

duy 2 лет назад
Родитель
Сommit
205e91c89c

+ 10 - 1
src/router/views/index.js

@@ -308,7 +308,16 @@ export default [{
       },
       component: () =>
         import ( /* webpackChunkName: "views" */ '@/views/tentative/testcollect')
-    }
+    },
+    {
+        path: '/tentative/parameter',
+        name: '试验参数配置',
+        meta: {
+          i18n: 'parameter'
+        },
+        component: () =>
+          import ( /* webpackChunkName: "views" */ '@/views/tentative/parameter')
+      }
     ]
   }
 ]

+ 101 - 0
src/views/tentative/importDialog.vue

@@ -0,0 +1,101 @@
+<template>
+       <el-dialog title="参数导入" 
+        :visible.sync="importFormVisible" 
+        custom-class="flow-design-dialog" 
+        append-to-body
+        destroy-on-close>
+       <el-form :label-position="left" label-width="80px" :model="formLabelAlign">
+          <el-form-item label="模板上传:">
+            <!-- <el-input v-model="formLabelAlign.name"></el-input> -->
+            <el-upload
+              class="upload-demo"
+              action="https://jsonplaceholder.typicode.com/posts/"
+              :on-preview="handlePreview"
+              :on-remove="handleRemove"
+              :before-remove="beforeRemove"
+              multiple
+              :limit="3"
+              :on-exceed="handleExceed"
+              :file-list="fileList">
+              <el-button size="small" type="primary">点击上传</el-button>
+              <div slot="tip" class="el-upload__tip">只能上传.xls,.xlsx文件</div>
+            </el-upload>
+          </el-form-item>
+          <el-form-item label="数据覆盖:">
+            <!-- <el-input v-model="formLabelAlign.region"></el-input> -->
+            <el-switch
+              v-model="formLabelAlign.region"
+              active-text="是"
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+               inactive-text="否"
+              >
+            </el-switch>
+          </el-form-item>
+          <el-form-item label="模板下载">
+            <!-- <el-input v-model="formLabelAlign.type"></el-input> -->
+             <el-button
+                  @click="downloadExcel()" 
+                  type="primary"
+                  size="mini">点击下载
+             </el-button>
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="importFormVisible = false">取 消</el-button>
+          <el-button type="primary" @click="importFormVisible = false">确 定</el-button>
+        </div>
+      </el-dialog>
+</template>
+
+<script>
+export default {
+    data(){
+        return{
+            importFormVisible:false,
+            formLabelAlign: {//表格数据
+                name: '',
+                region: '',
+                type: ''
+            },
+             //文件上传
+         fileList: [{name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}, {name: 'food2.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}],
+        }
+    },
+    methods:{
+        show(){
+            this.importFormVisible=true
+        },
+        //文件上传
+        handleRemove(file, fileList) {
+            console.log(file, fileList);
+        },
+        handlePreview(file) {
+            console.log(file);
+        },
+        handleExceed(files, fileList) {
+            this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
+        },
+        beforeRemove(file, fileList) {
+            return this.$confirm(`确定移除 ${ file.name }?`);
+        },
+        downloadExcel () {//下载excel表
+        console.log('下载');
+        const link = document.createElement('a')
+        // downExcelFile(this.from.id).then((res)=>{
+        //   // 创建Blob对象,设置文件类型
+        //   let blob = new Blob([res.data], {type: "application/vnd.ms-excel"})
+        //   let objectUrl = URL.createObjectURL(blob) // 创建URL
+        //   link.href = objectUrl
+        //   link.download = this.from.extension // 自定义文件名
+        //   link.click() // 下载文件
+        //   URL.revokeObjectURL(objectUrl); // 释放内存
+        // })
+        },
+    }
+}
+</script>
+
+<style>
+
+</style>

+ 212 - 0
src/views/tentative/parameter.vue

@@ -0,0 +1,212 @@
+<template>
+  <basic-container>
+      <div class="h-100p">
+            <el-tabs v-model="activeName" @tab-click="handleClick">
+                <el-tab-pane label="压实度评标参数" name="first">
+                    <avue-crud 
+                     :table-loading="loading"
+                    :data="tableData" 
+                    :option="option" 
+                    @row-save="rowSave"  
+                    @row-update="addUpdate"  
+                    @selection-change="selectionChange"
+                    @refresh-change="refreshChange"
+                    @current-change="currentChange"
+                    @size-change="sizeChange"
+                    @on-load="onLoad"
+                    :page.sync="page" 
+                    ref="crud"
+                    > 
+                        <template slot="menuRight"> 
+                                <el-button
+                                    type="danger"
+                                    size="small"
+                                    icon="el-icon-delete"
+                                    plain
+                                    @click="handleDelete">删除
+                                </el-button>
+                                <el-button
+                                size="small"
+                                type="primary"
+                                plain
+                                 icon="el-icon-plus"
+                                @click="importdata"
+                                >导入
+                                </el-button> 
+                        </template>
+                    </avue-crud>
+                </el-tab-pane>
+                <el-tab-pane label="温度及密度参数" name="second">
+                  <temperature/>
+                </el-tab-pane>
+            </el-tabs>
+      </div>
+ <!-- 导入参数弹窗 -->
+  <importDialog ref="importDialog"/>
+  </basic-container>
+  
+</template>
+
+<script>
+import importDialog from './importDialog.vue';
+import temperature from './temperature.vue'
+export default {
+  components:{
+    importDialog,
+    temperature
+  },
+     data() {
+      return {
+        activeName: 'first',
+        page: {
+          pageSize: 20,
+          currentPage:1
+        },
+        loading:false,
+        tableData: [
+          {
+            id:1,
+            name:'张三',
+            sex:'男'
+          }, {
+            id:2,
+            name:'李四',
+            sex:'女'
+          }
+        ],
+        selectionList:[],
+        query:{},
+
+        option:{
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow:false,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          viewBtn: false,
+          selection: true,
+          editBtn:true,
+          delBtn:false,
+          addBtn:true,
+          menu:true,
+
+          dialogClickModal: false,
+          column:[
+             {
+              label:'姓名',
+              prop:'name'
+            }, {
+              label:'性别',
+              prop:'sex'
+            }
+          ]
+        },
+      };
+    },
+    computed:{
+     ids () {
+      let ids = [];
+      this.selectionList.forEach(ele => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    }
+  },
+    methods: {
+   
+       onLoad(page, params = {}) {
+         //模拟分页
+        this.page.total = 40
+        // this.loading = true;
+        // // getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => {
+        // //   this.data = res.data.data;
+        // //   this.loading = false;
+        // //   this.selectionClear();
+        // // });
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query);
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize;
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage;
+      },
+      handleClick(tab, event) {
+        console.log(tab, event);
+      },
+      rowSave (row, done, loading) {
+          console.log(row,'row');
+    //   add(row).then(() => {
+    //     this.onLoad(this.page);
+    //     this.$message({
+    //       type: "success",
+    //       message: "操作成功!"
+    //     });
+    //     done();
+    //   }, error => {
+    //     loading();
+    //     window.console.log(error);
+    //   });
+    },
+   addUpdate(form,index,done,loading){
+     console.log(form,'编辑');
+      this.$message.success('模拟网络请求')
+      setTimeout(() => {
+        this.$message.success('关闭按钮等待')
+        loading()
+      }, 1000)
+      setTimeout(() => {
+        this.$message.success(
+          '编辑数据' + JSON.stringify(form) + '数据序号' + index
+        )
+        done()
+      }, 2000)
+    },
+      handleDelete () {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+        //   return delTabInfoAll(this.ids);
+          console.log(this.ids,'this.ids删除');
+        })
+        .then(() => {
+        //   this.onLoad(this.page);//刷新表格数据
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$refs.crud.toggleSelection();
+        });
+      },
+      selectionChange (list) {
+        this.selectionList = list;
+      },
+      selectionClear () {
+            this.selectionList = [];
+            this.$refs.crud.toggleSelection();
+     },
+      importdata(){
+        console.log('导入');
+        this.$refs.importDialog.show()
+      },
+      
+  
+  
+    }
+}
+</script>
+
+<style>
+
+</style>

+ 204 - 0
src/views/tentative/temperature.vue

@@ -0,0 +1,204 @@
+<template>
+
+    <div class="h-100p">
+         <avue-crud 
+            :table-loading="loading"
+            :data="tableData" 
+            :option="option" 
+            @row-save="rowSave"  
+            @row-update="addUpdate"  
+            @selection-change="selectionChange"
+            @refresh-change="refreshChange"
+            @current-change="currentChange"
+            @size-change="sizeChange"
+            @on-load="onLoad"
+            :page.sync="page" 
+            ref="crud"
+        > 
+            <template slot="menuRight"> 
+                    <el-button
+                        type="danger"
+                        size="small"
+                        icon="el-icon-delete"
+                        plain
+                        @click="handleDelete">删除
+                    </el-button>
+                    <el-button
+                    size="small"
+                    type="primary"
+                    plain
+                        icon="el-icon-plus"
+                    @click="importdata"
+                    >导入
+                    </el-button> 
+            </template>
+        </avue-crud>
+           <!-- 导入参数弹窗 -->
+        <importDialog ref="importDialog"/>
+    </div>
+
+ 
+</template>
+
+<script>
+import importDialog from './importDialog.vue';
+export default {
+  components:{
+    importDialog,
+   
+  },
+     data() {
+      return {
+        activeName: 'first',
+        page: {
+          pageSize: 20,
+          currentPage:1
+        },
+        loading:false,
+        tableData: [
+          {
+            id:1,
+            name:'张三',
+            sex:'男'
+          }, {
+            id:2,
+            name:'李四',
+            sex:'女'
+          }
+        ],
+        selectionList:[],
+        query:{},
+
+        option:{
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow:false,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          viewBtn: false,
+          selection: true,
+          editBtn:true,
+          delBtn:false,
+          addBtn:true,
+          menu:true,
+
+          dialogClickModal: false,
+          column:[
+             {
+              label:'姓名',
+              prop:'name'
+            }, {
+              label:'性别',
+              prop:'sex'
+            }
+          ]
+        },
+      };
+    },
+    computed:{
+     ids () {
+      let ids = [];
+      this.selectionList.forEach(ele => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    }
+  },
+    methods: {
+   
+       onLoad(page, params = {}) {
+         //模拟分页
+        this.page.total = 40
+        // this.loading = true;
+        // // getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => {
+        // //   this.data = res.data.data;
+        // //   this.loading = false;
+        // //   this.selectionClear();
+        // // });
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query);
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize;
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage;
+      },
+      handleClick(tab, event) {
+        console.log(tab, event);
+      },
+      rowSave (row, done, loading) {
+          console.log(row,'row');
+    //   add(row).then(() => {
+    //     this.onLoad(this.page);
+    //     this.$message({
+    //       type: "success",
+    //       message: "操作成功!"
+    //     });
+    //     done();
+    //   }, error => {
+    //     loading();
+    //     window.console.log(error);
+    //   });
+    },
+   addUpdate(form,index,done,loading){
+     console.log(form,'编辑');
+      this.$message.success('模拟网络请求')
+      setTimeout(() => {
+        this.$message.success('关闭按钮等待')
+        loading()
+      }, 1000)
+      setTimeout(() => {
+        this.$message.success(
+          '编辑数据' + JSON.stringify(form) + '数据序号' + index
+        )
+        done()
+      }, 2000)
+    },
+      handleDelete () {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+        //   return delTabInfoAll(this.ids);
+          console.log(this.ids,'this.ids删除');
+        })
+        .then(() => {
+        //   this.onLoad(this.page);//刷新表格数据
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$refs.crud.toggleSelection();
+        });
+      },
+      selectionChange (list) {
+        this.selectionList = list;
+      },
+      selectionClear () {
+            this.selectionList = [];
+            this.$refs.crud.toggleSelection();
+     },
+      importdata(){
+        console.log('导入');
+        this.$refs.importDialog.show()
+      },
+      
+  
+  
+    }
+}
+</script>
+
+<style>
+
+</style>