马宇豪
2023-10-07 b3f6a4257759613f01f9d491914f0dbb0f640a4f
修改
已修改2个文件
已添加1个文件
已删除1个文件
469 ■■■■ 文件已修改
src/views/coalMine/cJobRegistration/components/addDialog.vue 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cJobRegistration/components/jobRegistDialog.vue 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cJobRegistration/index.vue 162 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nJobRegistration/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cJobRegistration/components/addDialog.vue
文件已删除
src/views/coalMine/cJobRegistration/components/jobRegistDialog.vue
对比新文件
@@ -0,0 +1,219 @@
<template>
  <el-dialog
    :title="title"
    :visible.sync="open"
    append-to-body
    width="50%"
    :before-close="handleClose"
  >
    <el-form ref="ruleForm" :model="form"  :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
      <el-form-item label="姓名:" prop="name">
        <el-input v-model.trim="form.name" :readonly="disable"/>
      </el-form-item>
      <el-form-item label="身份证号:" prop="idCard">
        <el-input v-model.trim="form.idCard" :readonly="disable"/>
      </el-form-item>
      <el-form-item label="IC卡编号:" prop="icNum">
        <el-input v-model.trim="form.icNum" :readonly="disable"/>
      </el-form-item>
      <el-form-item label="电子证号:" prop="electNum">
        <el-input v-model.trim="form.electNum" :readonly="disable"/>
      </el-form-item>
      <el-form-item label="所属单位:" prop="dept">
        <el-input v-model.trim="form.dept" :readonly="disable"/>
      </el-form-item>
      <el-form-item label="操作类型:" prop="operateTypeId">
        <el-cascader
          v-model="form.operateTypeId"
          :options="typeList"
          :disabled="disable"
          :show-all-levels="false"
          :props="{ expandTrigger: 'hover', value: 'id',label: 'name',emitPath:false}"></el-cascader>
      </el-form-item>
      <el-form-item label="作业时间:" prop="workTime">
        <el-date-picker
          v-model="form.workTime"
          type="date"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd 00:00:00"
          placeholder="选择日期"
          :disabled="disable">
        </el-date-picker>
      </el-form-item>
    </el-form>
    <span slot="footer" class="dialog-footer">
      <el-button @click="handleClose">取消</el-button>
      <el-button v-if="disable == false" type="primary" @click="submit">提交</el-button>
      <el-button v-else type="primary" @click="handleClose">确定</el-button>
    </span>
    <el-dialog :visible.sync="dialogVisible" append-to-body>
      <img width="100%" :src="dialogImageUrl" alt="">
    </el-dialog>
  </el-dialog>
</template>
<script >
import {verifyIdCard} from "@/utils/validate";
import {addJobRegist, editJobRegist} from "@/api/coalMine/jobRegist";
export default {
  name: 'violationDialog',
  components: {
  },
  props: ['typeList'],
  data() {
    let verifyId = (rule, value, callback)=>{
      if(value === ''){
        callback(new Error('请输入身份证号'))
      }else{
        if(!verifyIdCard(value)){
          callback(new Error('身份证号格式有误'))
        }else{
          callback()
        }
      }
    }
    return {
      disable: false,
      title: '新增登记',
      open: false,
      form:{
        workId: null,
        isCm: 1,
        name: '',
        idCard: '',
        icNum: '',
        electNum: '',
        dept: '',
        operateTypeId: null,
        workTime: '',
        remark: ''
      },
      fileList: [],
      dialogImageUrl: '',
      dialogVisible: false,
      rules:{
        name:[{ required: true, message: '请填写姓名', trigger: 'blur' }],
        // idCard: [{ required: true, validator: verifyId, trigger: 'blur' }],
        idCard: [{ required: true, message: '请填写身份证号', trigger: 'blur' }],
        dept: [{ required: true, message: '请填写所在单位', trigger: 'blur' }],
        operateTypeId: [{ required: true, message: '请选择操作类型', trigger: 'blur' }],
        workTime: [{ required: true, message: '请选择作业时间', trigger: 'blur' }]
      },
    }
  },
  created() {
  },
  methods: {
    openDialog (val,type) {
      const t = this
      t.fileList = []
      t.open = true
      if(type == 'add'){
        t.title = '新增登记'
        t.disable = false
        t.form = {
          workId: null,
          isCm: 1,
          name: '',
          idCard: '',
          icNum: '',
          electNum: '',
          dept: '',
          operateTypeId: null,
          workTime: '',
          remark: ''
        }
      }else{
        if(type == 'edit'){
          t.title = '编辑'
          t.disable = false
        }else{
          t.title = '查看'
          t.disable = true
        }
        if(val){
          for(let i in val){
            if(t.isValidKey(i,this.form)){
              t.form[i] = val[i]
            }
          }
        }
        t.form.workTime = t.form.workTime + ' 00:00:00'
      }
    },
    isValidKey(key,obj){
      return key in obj
    },
    handleClose() {
      this.open = false;
      this.resetForm();
    },
    async submit(){
      this.$refs["ruleForm"].validate(async(valid) =>{
        if(valid) {
          if(this.title == '新增登记'){
            const {workId,...data} = this.form
            const res= await addJobRegist(data)
            if(res.code == 200){
              this.$message({
                type:'success',
                message: res.msg
              })
              this.fileList = []
              this.open = false
              this.$emit('getList')
            }else{
              this.$message({
                type:'warning',
                message: res.msg
              })
            }
          }else{
            const res= await editJobRegist(this.form)
            if(res.code == 200){
              this.$message({
                type:'success',
                message: res.msg
              })
              this.fileList = []
              this.open = false
              this.$emit('getList')
            }else{
              this.$message({
                type:'warning',
                message: res.msg
              })
            }
          }
        }else{
          this.$message({
            type:'warning',
            message:'请完善必填信息'
          })
        }
      })
    },
    resetForm() {
      this.form = {
        workId: null,
        isCm: 1,
        name: '',
        idCard: '',
        icNum: '',
        electNum: '',
        dept: '',
        operateTypeId: null,
        workTime: '',
        remark: ''
      }
    },
  }
}
</script>
<style scoped>
</style>
src/views/coalMine/cJobRegistration/index.vue
@@ -3,7 +3,7 @@
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="用户姓名" prop="userName">
        <el-input
          v-model="queryParams.userName"
          v-model="queryParams.name"
          placeholder="请输入用户姓名"
          clearable
          @keyup.enter.native="handleQuery"
@@ -17,19 +17,20 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="单位名称" prop="idCard">
      <el-form-item label="单位名称" prop="dept">
        <el-input
          v-model="queryParams.unit"
          v-model="queryParams.dept"
          placeholder="请输入单位名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="作业类型">
      <el-form-item label="操作类型">
        <el-cascader
          v-model="classiFy"
          :options="expertTypes"
          :props="{ expandTrigger: 'hover', value: 'id',label: 'label'}"
          v-model="queryParams.operateTypeId"
          :options="typeList"
          :show-all-levels="false"
          :props="{ expandTrigger: 'hover', value: 'id',label: 'name',emitPath:false}"
          @change="handleChange"></el-cascader>
      </el-form-item>
      <el-form-item>
@@ -44,27 +45,35 @@
          type="primary"
          plain
          size="mini"
          @click="handleAdd"
          @click="openJobRegist({},'add')"
          v-hasPermi="['system:experts:add']"
        >新增填报</el-button>
        >新增作业</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="expertList">
      <el-table-column label="作业日期" align="center" prop="name" />
    <el-table v-loading="loading" :data="dataList">
      <el-table-column label="发生时间" align="center" prop="workTime" />
      <el-table-column label="姓名" align="center" prop="name" />
      <el-table-column label="身份证号" align="center" prop="name" />
      <el-table-column label="IC/电子证编号" align="center" prop="phone"/>
      <el-table-column label="所属单位" align="center" prop="phone"/>
      <el-table-column label="作业种类" align="center" prop="phone"/>
      <el-table-column label="身份证号" align="center" prop="idCard" />
      <el-table-column label="IC卡编号" align="center" prop="icNum"/>
      <el-table-column label="电子证编号" align="center" prop="electNum"/>
      <el-table-column label="所属单位" align="center" prop="dept"/>
      <el-table-column label="作业种类" align="center" prop="jobCategory"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
<!--          <el-button-->
<!--            size="mini"-->
<!--            type="text"-->
<!--            icon="el-icon-view"-->
<!--            @click="handleView(scope.row)"-->
<!--          >查看违规详情</el-button>-->
          <el-button
            size="mini"
            type="text"
            icon="el-icon-view"
            @click="openJobRegist(scope.row,'view')"
          >查看详情</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="openJobRegist(scope.row,'edit')"
            v-hasPermi="['system:experts:remove']"
          >编辑</el-button>
          <el-button
            size="mini"
            type="text"
@@ -78,62 +87,121 @@
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageIndex"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <add-dialog ref="addDialogRef" @getList = "getList"></add-dialog>
    <jobRegist-dialog ref="jobRegistDialog" @getList="getList" :typeList="typeList"></jobRegist-dialog>
  </div>
</template>
<script>
// import addDialog from "@/views/notCoalMine/nJobRegistration/components/addDialog.vue";
import jobRegistDialog from "@/views/coalMine/cJobRegistration/components/jobRegistDialog";
import {getOperatePage} from "@/api/coalMine/operateType";
import {delJobRegist, getJobRegistPage} from "@/api/coalMine/jobRegist";
export default {
  name: "nViolationRegistration",
  name: "cJobRegist",
  dicts: [],
  components: {
    addDialog
    jobRegistDialog
  },
  data() {
    return {
      addDialogRef: '',
      violationDialog: '',
      loading: false,
      single: true,
      multiple: true,
      showSearch: true,
      addForm: false,
      dataList: [],
      total: 0,
      expertTypes: [],
      expertList: [],
      queryParams: {},
      classiFy: [],
      form: {},
      rules: {
        classifyName: [
          { required: true, message: "分类名称不能为空", trigger: "blur" }
        ]
      }
      typeList: [],
      queryParams: {
        name: '',
        idCard:'',
        dept: '',
        operateTypeId: null,
        isCm: 1,
        pageNum: 1,
        pageSize: 10
      },
    };
  },
  created() {
    this.getList()
    this.getTypeList()
  },
  methods: {
    getList(){
    async getList(){
      const t = this
      t.loading = true
      const res = await getJobRegistPage(t.queryParams)
      if(res.code == 200){
        t.dataList = res.rows
        t.total = res.total
      }else{
        t.$message({
          message: res.msg,
          type: 'warning'
        })
      }
      t.loading = false
    },
    async getTypeList() {
      this.loading = true;
      const res = await getOperatePage({name: ''})
      if(res.code == 200){
        this.typeList = this.handleTree(res.data, "id");
      }else{
        this.$message({
          type: 'warning',
          message: res.msg
        });
      }
      this.loading = false;
    },
    handleChange(){
    },
    handleQuery(){
    handleDelete(row){
      this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(async () => {
        const res = await delJobRegist(row.workId)
        if(res.code == 200){
          this.$message({
            type: 'success',
            message: '删除成功!'
          });
          await this.getList()
        }else{
          this.$message({
            type: 'warning',
            message: res.msg
          });
        }
      }).catch(() => {
      });
    },
    handleQuery(){
      this.queryParams.pageNum = 1
      this.getList()
    },
    resetQuery(){
      this.queryParams = {
        name: '',
        idCard:'',
        dept: '',
        operateTypeId: null,
        isCm: 1,
        pageNum: 1,
        pageSize: 10
      }
      this.getList()
    },
    handleAdd(){
      this.$refs.addDialogRef.openDialog();
    openJobRegist(data,type){
      this.$refs.jobRegistDialog.openDialog(data,type);
    }
  }
};
src/views/notCoalMine/nJobRegistration/index.vue
@@ -101,7 +101,7 @@
import {getOperatePage} from "@/api/coalMine/operateType";
import {delJobRegist, getJobRegistPage} from "@/api/coalMine/jobRegist";
export default {
  name: "cJobRegist",
  name: "nJobRegist",
  dicts: [],
  components: {
    jobRegistDialog