Przeglądaj źródła

搜索重置问题修改

ysc 1 rok temu
rodzic
commit
0686315437

+ 350 - 0
src/views/document/techparam.vue

@@ -0,0 +1,350 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
+      <el-form-item label="参数名称" prop="menuName">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入参数名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="所属分类" prop="categoryId">
+        <el-select
+          v-model="queryParams.categoryId"
+          clearable
+          style="width: 240px">
+          <el-option v-for="item in categoryList" :key="item.id" :label="item.categoryName" :value="item.id"/>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['document:techparam:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-sort"
+          size="mini"
+          @click="toggleExpandAll"
+        >展开/折叠
+        </el-button>
+      </el-col>
+    </el-row>
+
+    <el-table
+      v-if="refreshTable"
+      :data="menuList"
+      row-key="id"
+      size="small"
+      :default-expand-all="isExpandAll"
+      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+      <el-table-column prop="name" label="参数名称" :show-overflow-tooltip="true" width="160"></el-table-column>
+      <el-table-column prop="categoryName" label="所属分类"></el-table-column>
+      <el-table-column prop="perms" label="产品名称"></el-table-column>
+      <el-table-column prop="component" label="组件路径"></el-table-column>
+      <el-table-column prop="updateUserName" label="修改人"/>
+      <el-table-column label="修改时间" align="center" prop="createTime">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['document:techparam:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['document:techparam:query']"
+          >查看
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 添加或修改参数对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body>
+      <el-form ref="form" class="form" :model="form" :rules="rules" size="mini" label-width="80px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="参数名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入参数名称" style="width: 240px"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="参数类型" prop="paramType">
+              <el-radio-group v-model="form.paramType">
+                <el-radio label="1">系统参数</el-radio>
+                <el-radio label="2">模块参数</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属分类" prop="categoryId">
+              <el-select
+                v-model="queryParams.categoryId"
+                clearable
+                style="width: 240px">
+                <el-option v-for="item in categoryList" :key="item.id" :label="item.categoryName" :value="item.id"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="产品名称" prop="productName">
+              <el-input v-model="form.productName" placeholder="请输入产品名称" style="width: 240px"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item label="参数详情" prop="path">
+          <el-button type="primary" size="mini" icon="el-icon-circle-plus-outline" @click="addChild">添加</el-button>
+        </el-form-item>
+        <el-card class="form-child" shadow="always" v-for="(child,index) in form.children" :key="index">
+          <el-form :rules="rules" label-width="55px" inline>
+            <el-form-item :label="'参数'+(index+1)">
+              <el-input v-model="child.name" size="small" placeholder="请输入参数名称" style="width: 200px"/>
+            </el-form-item>
+            <el-form-item>
+              <el-input v-model="child.value" size="small" placeholder="请输入参数值" style="width: 325px"/>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="text" icon="el-icon-delete" @click="delChild(index)" style="color: red"></el-button>
+            </el-form-item>
+          </el-form>
+        </el-card>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listMenu, getMenu, delMenu, addMenu, updateMenu} from "@/api/system/menu";
+import {getCategoryList} from "@/api/task/category";
+
+export default {
+  name: "Techparam",
+
+  data() {
+    return {
+      categoryList: [],
+      // 参数表格树数据
+      menuList: [],
+      // 参数树选项
+      menuOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 是否展开,默认全部折叠
+      isExpandAll: false,
+      // 重新渲染表格状态
+      refreshTable: true,
+      // 查询参数
+      queryParams: {
+        menuName: undefined,
+        visible: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        menuName: [
+          {required: true, message: "参数名称不能为空", trigger: "blur"}
+        ],
+        orderNum: [
+          {required: true, message: "参数顺序不能为空", trigger: "blur"}
+        ],
+        path: [
+          {required: true, message: "路由地址不能为空", trigger: "blur"}
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询参数列表 */
+    getList() {
+      getCategoryList().then(res => {
+        this.categoryList = res.data;
+      })
+      listMenu(this.queryParams).then(response => {
+        this.menuList = this.handleTree(response.data, "id");
+      })
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.$refs.queryForm.resetFields();
+      this.handleQuery();
+    },
+    /** 查询参数下拉树结构 */
+    getTreeSelect() {
+      listMenu().then(response => {
+        this.menuOptions = [];
+        const menu = {id: 0, menuName: '主类目', children: []};
+        menu.children = this.handleTree(response.data, "id");
+        this.menuOptions.push(menu);
+      });
+    },
+    /** 转换参数数据结构 */
+    normalizer(node) {
+      if (node.children && !node.children.length) {
+        delete node.children;
+      }
+      return {
+        id: node.id,
+        label: node.menuName,
+        children: node.children
+      };
+    },
+    // 选择图标
+    selected(name) {
+      this.form.icon = name;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        parentId: 0,
+        name: undefined,
+        paramType: undefined,
+        orderNum: undefined,
+      };
+      // this.resetForm("form");
+    },
+    addChild() {
+      let child = {
+        name: undefined,
+        value: undefined,
+      }
+      this.form.children.push(child)
+    },
+    delChild(index) {
+      this.form.children.splice(index, 1)
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.form = {
+        name: undefined,
+        paramType: undefined,
+        orderNum: undefined,
+        children: []
+      }
+      this.title = "添加参数"
+    },
+    /** 展开/折叠操作 */
+    toggleExpandAll() {
+      this.refreshTable = false;
+      this.isExpandAll = !this.isExpandAll;
+      this.$nextTick(() => {
+        this.refreshTable = true;
+      });
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.getTreeSelect();
+      getMenu(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改参数";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            updateMenu(this.form).then(response => {
+              this.$message.success("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addMenu(this.form).then(response => {
+              this.$message.success("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$confirm('是否确认删除名称为"' + row.menuName + '"的数据项?').then(() => {
+        return delMenu(row.id);
+      }).then(() => {
+        this.getList();
+        this.$message.success("删除成功");
+      }).catch(() => {
+      });
+    }
+  }
+}
+</script>
+
+<style scoped lang="scss">
+.form {
+  ::v-deep .el-form-item__label {
+    font-size: 13px;
+  }
+
+  .form-child {
+    margin-bottom: 5px;
+
+    ::v-deep.el-form-item {
+      margin-bottom: 0;
+    }
+  }
+
+  ::v-deep.el-card__header {
+    padding: 5px 10px;
+  }
+
+  ::v-deep.el-card__body {
+    padding: 5px;
+  }
+}
+</style>

+ 8 - 6
src/views/material/receive.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
-      <el-form-item label="物料名称">
+      <el-form-item label="物料名称" prop="materialName">
         <el-input
           v-model="queryParams.materialName"
           placeholder="请输入物料名称"
@@ -10,7 +10,7 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="厂商">
+      <el-form-item label="厂商" pro="factory">
         <el-input
           v-model="queryParams.factory"
           placeholder="请输入厂商名称"
@@ -19,7 +19,7 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="月/周数据">
+      <el-form-item label="月/周数据" prop="monthOrWeek">
         <el-radio-group v-model="queryParams.monthOrWeek">
           <el-radio-button label="1">月</el-radio-button>
           <el-radio-button label="2">周</el-radio-button>
@@ -161,8 +161,8 @@
         <el-form-item label="领取量" prop="num">
           <el-input-number v-model="form.num" controls-position="right" :min="0" placeholder="请输入领取量"/>
         </el-form-item>
-        <el-form-item label="物料类型" prop="materialType" :disabled="form.monthOrWeek==='2'">
-          <el-radio-group v-model="form.materialType">
+        <el-form-item label="物料类型" prop="materialType">
+          <el-radio-group v-model="form.materialType" :disabled="form.monthOrWeek==='2'">
             <el-radio label="1">生产</el-radio>
             <el-radio label="2">非生产</el-radio>
           </el-radio-group>
@@ -283,11 +283,13 @@ export default {
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNum = 1;
+      this.queryParams.pageSize = 10;
       this.getList();
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
+      console.log(this.$refs);
+      this.$refs.queryForm.resetFields();
       this.handleQuery();
     },
     handleSizeChange(val) {

+ 1 - 1
src/views/system/dept.vue

@@ -137,7 +137,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="部门状态">
+            <el-form-item label="部门状态" prop="status">
               <el-radio-group v-model="form.status">
                 <el-radio label="0">正常</el-radio>
                 <el-radio label="1">停用</el-radio>

+ 5 - 5
src/views/system/role.vue

@@ -113,7 +113,7 @@
         <el-form-item label="角色顺序" prop="roleSort">
           <el-input-number v-model="form.roleSort" controls-position="right" :min="0"/>
         </el-form-item>
-        <el-form-item label="状态">
+        <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
             <el-radio label="0">正常</el-radio>
             <el-radio label="1">停用</el-radio>
@@ -135,7 +135,7 @@
             :props="defaultProps"
           ></el-tree>
         </el-form-item>
-        <el-form-item label="备注">
+        <el-form-item label="备注" prop="remark">
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
       </el-form>
@@ -148,13 +148,13 @@
     <!-- 分配角色数据权限对话框 -->
     <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
       <el-form :model="form" label-width="80px">
-        <el-form-item label="角色名称">
+        <el-form-item label="角色名称" prop="roleName">
           <el-input v-model="form.roleName" :disabled="true"/>
         </el-form-item>
-        <el-form-item label="权限字符">
+        <el-form-item label="权限字符" prop="roleKey">
           <el-input v-model="form.roleKey" :disabled="true"/>
         </el-form-item>
-        <el-form-item label="权限范围">
+        <el-form-item label="权限范围" prop="dataScope">
           <el-select v-model="form.dataScope" @change="dataScopeSelectChange">
             <el-option
               v-for="item in dataScopeOptions"

+ 5 - 5
src/views/system/user.vue

@@ -176,7 +176,7 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="状态">
+            <el-form-item label="状态" prop="status">
               <el-radio-group v-model="form.status">
                 <el-radio label="0">正常</el-radio>
                 <el-radio label="1">停用</el-radio>
@@ -184,7 +184,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="角色">
+            <el-form-item label="角色" prop="roleIds">
               <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
                 <el-option
                   v-for="item in roleOptions"
@@ -199,7 +199,7 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="用户性别">
+            <el-form-item label="用户性别" prop="sex">
               <el-select v-model="form.sex" placeholder="请选择性别">
                 <el-option :key="0" label="女" :value="0"/>
                 <el-option :key="1" label="男" :value="1"/>
@@ -207,7 +207,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="生日" prop="phone">
+            <el-form-item label="生日" prop="birthday">
               <el-input v-model="form.birthday" placeholder="请输入生日" maxlength="11"/>
             </el-form-item>
           </el-col>
@@ -221,7 +221,7 @@
         </el-row>
         <el-row>
           <el-col :span="24">
-            <el-form-item label="居住地址">
+            <el-form-item label="居住地址" prop="address">
               <el-input v-model="form.address" type="textarea" placeholder="请输入居住地址"></el-input>
             </el-form-item>
           </el-col>

+ 2 - 2
src/views/task/category.vue

@@ -99,13 +99,13 @@
         <el-form-item label="分类名称" prop="categoryName">
           <el-input v-model="form.categoryName" placeholder="请输入分类名称"/>
         </el-form-item>
-        <el-form-item label="状态">
+        <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
             <el-radio label="0">正常</el-radio>
             <el-radio label="1">停用</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="分类描述">
+        <el-form-item label="分类描述" prop="description">
           <el-input v-model="form.description" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
       </el-form>

+ 2 - 2
src/views/task/project.vue

@@ -115,13 +115,13 @@
             <el-option v-for="item in categoryList" :key="item.id" :label="item.categoryName" :value="item.id"/>
           </el-select>
         </el-form-item>
-        <el-form-item label="状态">
+        <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
             <el-radio label="0">正常</el-radio>
             <el-radio label="1">停用</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="项目描述">
+        <el-form-item label="项目描述" prop="description">
           <el-input v-model="form.description" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
       </el-form>

+ 5 - 5
src/views/task/task.vue

@@ -17,7 +17,7 @@
           <el-option v-for="item in projectList" :key="item.id" :label="item.projectName" :value="item.id"/>
         </el-select>
       </el-form-item>
-      <el-form-item label="月份选择">
+      <el-form-item label="月份选择" prop="month">
         <el-date-picker
           v-model="queryParams.month"
           type="month"
@@ -165,7 +165,7 @@
             <el-option v-for="item in projectList" :key="item.id" :label="item.projectName" :value="item.id"/>
           </el-select>
         </el-form-item>
-        <el-form-item label="起止时间">
+        <el-form-item label="起止时间" prop="rangeDate">
           <el-date-picker
             v-model="form.rangeDate"
             type="daterange"
@@ -189,7 +189,7 @@
         <el-form-item label="任务附件">
           <file-upload @getFileUrl="getFileUrl" @removeFile="removeFile"></file-upload>
         </el-form-item>
-        <el-form-item label="任务描述">
+        <el-form-item label="任务描述" prop="description">
           <el-input v-model="form.description" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
       </el-form>
@@ -210,7 +210,7 @@
               <el-radio label="0">驳回</el-radio>
             </el-radio-group>
           </el-form-item>
-          <el-form-item label="审核备注">
+          <el-form-item label="审核备注" prop="auditOpinion">
             <el-input v-model="auditForm.auditOpinion" type="textarea"/>
           </el-form-item>
         </el-form>
@@ -250,7 +250,7 @@
                 :props="{ expandTrigger: 'hover',value:'id',label:'name' }"
                 :show-all-levels="false"></el-cascader>
             </el-form-item>
-            <el-form-item label="起止时间">
+            <el-form-item label="起止时间" prop="rangeDate">
               <el-date-picker
                 v-model="child.rangeDate"
                 type="daterange"

+ 4 - 4
src/views/task/view.vue

@@ -10,7 +10,7 @@
           <el-option v-for="item in projectList" :key="item.id" :label="item.projectName" :value="item.id"/>
         </el-select>
       </el-form-item>
-      <el-form-item label="月份">
+      <el-form-item label="月份" prop="month">
         <el-date-picker
           v-model="queryParams.month"
           @change="getList"
@@ -19,7 +19,7 @@
           style="width: 200px">
         </el-date-picker>
       </el-form-item>
-      <el-form-item>
+      <el-form-item prop="status">
         <el-radio-group v-model="queryParams.status" size="mini" @change="getList">
           <el-radio-button label="0">全部</el-radio-button>
           <el-radio-button label="1">未开始</el-radio-button>
@@ -113,7 +113,7 @@
         <el-form-item label="反馈时间">
           <div>{{ form.feedbackDate }}</div>
         </el-form-item>
-        <el-form-item label="反馈类型">
+        <el-form-item label="反馈类型" prop="feedbackType">
           <el-radio-group v-model="form.feedbackType">
             <el-radio label="1">进度反馈</el-radio>
             <el-radio label="2">完成</el-radio>
@@ -121,7 +121,7 @@
             <el-radio label="4">评论</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="进度">
+        <el-form-item label="进度" prop="value">
           <el-input-number v-model="form.value" :min="1" :max="100"></el-input-number>
         </el-form-item>
         <el-form-item label="附件">