hailin
2023-07-18 b945f5a17664823e5ab2967e61bc3f3d38aa4087
src/views/laboratory/personnel/index.vue
@@ -5,42 +5,42 @@
        <el-form ref="form" inline="true" :model="searchData">
          <el-form-item>
            <el-input
              placeholder="请输入人员名称"
              v-model="keyword"
              placeholder="请输入人员名称"
            >
              <i slot="prefix" class="el-input__icon el-icon-search" />
            </el-input>
          </el-form-item>
          <el-form-item>
            <el-button @click="searchData()" type="primary">查询</el-button>
            <el-button @click="resetData()" type="primary" plain>重置</el-button>
            <el-button type="primary" @click="searchData()">查询</el-button>
            <el-button type="primary" plain @click="resetData()">重置</el-button>
            <!-- <el-button type="text">高级搜索<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
          </el-form-item>
        </el-form>
      </div>
      <div class="serve-btn">
        <el-button type="primary" @click="dialogFormVisible = true" icon="el-icon-plus">新增人员</el-button>
        <el-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">新增人员</el-button>
        <el-dialog title="新增人员" :visible.sync="dialogFormVisible">
          <el-form :model="form" :rules="rules" ref="form">
          <el-form ref="form" :model="form" :rules="rules">
            <el-form-item label="账号" :label-width="formLabelWidth" prop="account">
              <el-input v-model="form.account" autocomplete="off"></el-input>
            </el-form-item>
              <el-input v-model="form.account" autocomplete="off" />
            </el-form-item>
            <el-form-item label="年龄" :label-width="formLabelWidth">
              <el-input v-model="form.age" autocomplete="off"></el-input>
              <el-input v-model="form.age" autocomplete="off" />
            </el-form-item>
            <el-form-item label="邮箱" :label-width="formLabelWidth" prop="email">
              <el-input v-model="form.email" autocomplete="off"></el-input>
              <el-input v-model="form.email" autocomplete="off" />
            </el-form-item>
            <el-form-item label="名字" :label-width="formLabelWidth" prop="name">
              <el-input v-model="form.name" autocomplete="off"></el-input>
              <el-input v-model="form.name" autocomplete="off" />
            </el-form-item>
            <el-form-item label="电话" :label-width="formLabelWidth" prop="phone">
              <el-input v-model="form.phone" autocomplete="off"></el-input>
              <el-input v-model="form.phone" autocomplete="off" />
            </el-form-item>
            <el-form-item label="权限" :label-width="formLabelWidth" prop="role_id">
              <el-input v-model="form.role_id" autocomplete="off"></el-input>
              <el-input v-model="form.role_id" autocomplete="off" />
            </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footer">
@@ -111,7 +111,7 @@
            min-width="120"
          >
            <template slot-scope="scope">
              <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
              <el-button type="text" size="small" @click="handleClick(scope.row)">编辑</el-button>
              <!-- <el-button type="text" size="small">编辑</el-button> -->
            </template>
          </el-table-column>
@@ -119,14 +119,14 @@
        <div>
          <!-- 分页器 -->
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="currentPage"
            :page-sizes="[100, 200, 300, 400]"
            :page-size=pageSize
            :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total=this.personnerlTable.length>
          </el-pagination>
            :total="this.personnerlTable.length"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
          />
        </div>
      </div>
    </div>
@@ -139,115 +139,114 @@
export default {
  data() {
    return {
      currentPage: 1,
      keyword: '',
      personnerlTable: [
      ],
      filteredpersonnerlTable:[],
      currentindex:1,
      filteredpersonnerlTable: [],
      currentindex: 1,
      currentPage: 1, // 当前页码
      total: 20, // 总条数
      pageSize: 100, // 每页的数据条数
      personData:[],  //用来存放接口传过来的人员列表数据
      dialogFormVisible:false,
      personData: [], // 用来存放接口传过来的人员列表数据
      dialogFormVisible: false,
      form: {
        account: "",
        account: '',
        age: '',
        email: "",
        name: "",
        phone: "",
        email: '',
        name: '',
        phone: '',
        role_id: ''
        },
        formLabelWidth: '120px',
        rules: {
          account:[
            {
              required: true, message: '请输入账号', trigger: 'blur'
            }
          ],
          name:[{
            required: true, message: '请输入名字', trigger: 'blur'
          }],
          phone: [
            // { required: true, message: '请输入11位电话号码', trigger: 'blur' },
            { pattern: /^1[34578]\d{9}$/, message: '非法手机号码', trigger: 'blur' }
          ],
          email: [
            // { required: true, message: '请输入邮箱地址', trigger: 'blur' },
            { type: 'email', message: '非法邮箱地址', trigger: ['blur', 'change'] }
          ],
          role_id:[
            {required: true, message: '请输入权限(0或1)', trigger: 'blur'}
          ]
      },
      formLabelWidth: '120px',
      rules: {
        account: [
          {
            required: true, message: '请输入账号', trigger: 'blur'
          }
        ],
        name: [{
          required: true, message: '请输入名字', trigger: 'blur'
        }],
        phone: [
          // { required: true, message: '请输入11位电话号码', trigger: 'blur' },
          { pattern: /^1[34578]\d{9}$/, message: '非法手机号码', trigger: 'blur' }
        ],
        email: [
          // { required: true, message: '请输入邮箱地址', trigger: 'blur' },
          { type: 'email', message: '非法邮箱地址', trigger: ['blur', 'change'] }
        ],
        role_id: [
          { required: true, message: '请输入权限(0或1)', trigger: 'blur' }
        ]
      }
    }
  },
  mounted(){
    this.getData();
  mounted() {
    this.getData()
  },
  methods: {
    //每页条数改变时触发 选择一页显示多少行
    // 每页条数改变时触发 选择一页显示多少行
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`)
      this.currentPage = 1;
      this.pageSize = val;
      this.currentPage = 1
      this.pageSize = val
    },
    //当前页改变时触发 跳转其他页
    // 当前页改变时触发 跳转其他页
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
      this.currentPage = val;
      this.currentPage = val
    },
    getData(){
      axios.get("/user/list_new_personnel",{
        params:{
          pageNo:0,
          pageSize:20
    getData() {
      axios.get('/user/list_new_personnel', {
        params: {
          pageNo: 0,
          pageSize: 20
        }
      }).then(res=>{
      }).then(res => {
        // console.log(res)
        this.personData=res.data.data.row
        this.personnerlTable=this.personData
      }).catch(res=>{
        console.log("error")
        this.personData = res.data.data.row
        this.personnerlTable = this.personData
      }).catch(res => {
        console.log('error')
      })
    },
    searchData() {
      this.filteredpersonnerlTable = this.personnerlTable.filter((item) =>{
        return item.username==this.keyword
      this.filteredpersonnerlTable = this.personnerlTable.filter((item) => {
        return item.username === this.keyword
      }
      );
      this.personnerlTable=this.filteredpersonnerlTable
      )
      this.personnerlTable = this.filteredpersonnerlTable
    },
    resetData(){
    resetData() {
      // console.log("111111")
      this.personnerlTable=this.personData
      this.keyword=''
      this.personnerlTable = this.personData
      this.keyword = ''
    },
    // 提交新增人员表单
    submitForm() {
      // Handle form submission here
      // console.log(this.form);
      // POST请求
      this.$refs.form.validate((valid)=>{
        if(valid){
          this.dialogFormVisible = false;
      this.$refs.form.validate((valid) => {
        if (valid) {
          this.dialogFormVisible = false
          axios.post('/user/add_new_personnel', this.form)
          .then(response => {
          console.log(response);
        // this.dialogVisible = false;
          })
          .catch(error => {
           console.error(error);
           });
        }else{
          console.log('error submit!!');
          return false;
            .then(response => {
              console.log(response)
              // this.dialogVisible = false;
            })
            .catch(error => {
              console.error(error)
            })
        } else {
          console.log('error submit!!')
          return false
        }
      })
      })
    }
  },
  }
}
</script>