From b3f6a4257759613f01f9d491914f0dbb0f640a4f Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期六, 07 十月 2023 14:59:04 +0800
Subject: [PATCH] 修改

---
 /dev/null                                                          |   86 ----------
 src/views/coalMine/cJobRegistration/index.vue                      |  162 ++++++++++++++-----
 src/views/coalMine/cJobRegistration/components/jobRegistDialog.vue |  219 +++++++++++++++++++++++++++
 src/views/notCoalMine/nJobRegistration/index.vue                   |    2 
 4 files changed, 335 insertions(+), 134 deletions(-)

diff --git a/src/views/coalMine/cJobRegistration/components/addDialog.vue b/src/views/coalMine/cJobRegistration/components/addDialog.vue
deleted file mode 100644
index 9856c67..0000000
--- a/src/views/coalMine/cJobRegistration/components/addDialog.vue
+++ /dev/null
@@ -1,86 +0,0 @@
-<template>
-  <el-dialog
-    :title="dialogStatus==='add'?'新增填报':''"
-    :visible.sync="dialogVisible"
-    :modal-append-to-body="false"
-    :close-on-click-modal="false"
-    width="50%"
-    :before-close="handleClose"
-  >
-    <el-form ref="dataForm" :model="dataForm"  :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
-      <el-form-item label="身份证号:" prop="idCard">
-        <el-input v-model.trim="dataForm.idCard"/>
-      </el-form-item>
-      <el-form-item label="IC卡编号:" prop="iCCard">
-        <el-input v-model.trim="dataForm.iCCard"/>
-      </el-form-item>
-      <el-form-item label="电子证号:" prop="remark">
-        <el-input v-model.trim="dataForm.remark"/>
-      </el-form-item>
-      <el-form-item label="姓名:" prop="remark">
-        <el-input v-model.trim="dataForm.remark"/>
-      </el-form-item>
-      <el-form-item label="所属单位:" prop="remark">
-        <el-input v-model.trim="dataForm.remark"/>
-      </el-form-item>
-      <el-form-item label="操作类型:" prop="remark">
-        <el-cascader
-          v-model="value"
-          :options="options"
-          @change="handleChange">
-        </el-cascader>
-      </el-form-item>
-    </el-form>
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="handleClose">取 消</el-button>
-      <el-button type="primary" @click="onSubmit">确 定</el-button>
-    </span>
-  </el-dialog>
-</template>
-
-<script >
-export default {
-  name: 'addUser',
-  components: {
-  },
-  data() {
-    return {
-      dialogVisible: false,
-      dialogStatus: '',
-      rules: {
-        name: [{ required: true, message: '身份证号', trigger: 'blur' }],
-      },
-      dataForm: {}
-    }
-  },
-  created() {
-
-  },
-  methods: {
-    openDialog (type, data) {
-      this.resetDataForm();
-      this.dialogVisible = true;
-      this.dialogStatus = type;
-      this.$nextTick(() => {
-        this.$refs['dataForm'].clearValidate()
-      })
-    },
-    handleClose() {
-      this.dialogVisible = false;
-      this.$emit("getList");
-    },
-    onSubmit() {
-      this.$emit("getList");
-      this.dialogVisible = false;
-    },
-    resetDataForm() {
-      this.dataForm = {
-      }
-    },
-  }
-}
-
-</script>
-<style scoped>
-
-</style>
diff --git a/src/views/coalMine/cJobRegistration/components/jobRegistDialog.vue b/src/views/coalMine/cJobRegistration/components/jobRegistDialog.vue
new file mode 100644
index 0000000..644db03
--- /dev/null
+++ b/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>
diff --git a/src/views/coalMine/cJobRegistration/index.vue b/src/views/coalMine/cJobRegistration/index.vue
index 5203744..4cbbf46 100644
--- a/src/views/coalMine/cJobRegistration/index.vue
+++ b/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);
     }
   }
 };
diff --git a/src/views/notCoalMine/nJobRegistration/index.vue b/src/views/notCoalMine/nJobRegistration/index.vue
index 69bffec..5061edf 100644
--- a/src/views/notCoalMine/nJobRegistration/index.vue
+++ b/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

--
Gitblit v1.9.2