소스 검색

问卷详情页新增开项操作

wangggziwen 10 달 전
부모
커밋
3f737497fe
3개의 변경된 파일171개의 추가작업 그리고 41개의 파일을 삭제
  1. 0 14
      ruoyi-ui/src/views/rc/chapter/index.vue
  2. 10 10
      ruoyi-ui/src/views/rc/openitem/index.vue
  3. 161 17
      ruoyi-ui/src/views/rc/questionnaire/index.vue

+ 0 - 14
ruoyi-ui/src/views/rc/chapter/index.vue

@@ -73,7 +73,6 @@ export default {
   },
   created() {
     // this.getList();
-    this.getDeptList();
   },
   methods: {
     // 节点单击事件
@@ -92,19 +91,6 @@ export default {
         this.loading = false;
       });
     },
-    /** 查询装置列表 */
-    getDeptList() {
-      listDept().then(response => {
-        let data = response.data;
-        for (let i = 0; i < data.length; i++) {
-          // 非顶级节点
-          if (data[i].parentId !== 0) {
-            // 插入装置列表
-            this.deptOptions.push({"dictLabel": data[i].deptName, "dictValue": data[i].deptId});
-          }
-        }
-      });
-    },
     // 取消按钮
     cancel() {
       this.open = false;

+ 10 - 10
ruoyi-ui/src/views/rc/openitem/index.vue

@@ -110,16 +110,16 @@
     </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="['rc:openitem:add']"
-        >新增</el-button>
-      </el-col>
+      <!--<el-col :span="1.5">-->
+        <!--<el-button-->
+          <!--type="primary"-->
+          <!--plain-->
+          <!--icon="el-icon-plus"-->
+          <!--size="mini"-->
+          <!--@click="handleAdd"-->
+          <!--v-hasPermi="['rc:openitem:add']"-->
+        <!--&gt;新增</el-button>-->
+      <!--</el-col>-->
       <el-col :span="1.5">
         <el-button
           type="success"

+ 161 - 17
ruoyi-ui/src/views/rc/questionnaire/index.vue

@@ -160,6 +160,11 @@
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
           >删除</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            @click="handleOpenitem(scope.row)"
+          >开项</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -313,6 +318,106 @@
         </el-table-column>
       </el-table>
     </el-dialog>
+
+    <!-- 添加或修改开项对话框 -->
+    <el-dialog :title="openitemTitle" :visible.sync="openitemOpen" width="500px" append-to-body>
+      <el-form ref="openitemForm" :model="openitemForm" :rules="openitemRules" label-width="120px">
+        <el-form-item label="问题类型" prop="type">
+          <el-select v-model="openitemForm.type" placeholder="请选择问题类型">
+            <el-option
+              v-for="dict in dict.type.t_open_item_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="存在问题描述" prop="description">
+          <el-input v-model="openitemForm.description" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="开项级别" prop="level">
+          <el-select v-model="openitemForm.level" placeholder="请选择开项级别">
+            <el-option
+              v-for="dict in dict.type.t_open_item_level"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="开项时间" prop="openTime">
+          <el-date-picker clearable
+                          v-model="openitemForm.openTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择开项时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="闭项时间" prop="closeTime">
+          <el-date-picker clearable
+                          v-model="openitemForm.closeTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择闭项时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="问题处理状态" prop="result">
+          <el-select v-model="openitemForm.status" placeholder="请选择问题处理状态">
+            <el-option
+              v-for="dict in dict.type.t_open_item_status"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="负责人" prop="personInCharge">
+          <el-select clearable v-model="openitemForm.personInCharge" placeholder="请选择负责人">
+            <el-option
+              v-for="dict in userOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="审核人" prop="reviewer">
+          <el-select clearable v-model="openitemForm.reviewer" placeholder="请选择审核人">
+            <el-option
+              v-for="dict in userOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="责任人确认" prop="result">
+          <el-select v-model="openitemForm.result" placeholder="请选择责任人确认">
+            <el-option
+              v-for="dict in dict.type.t_open_item_result"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="截至时间" prop="deadline">
+          <el-date-picker clearable
+                          v-model="openitemForm.deadline"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择截至时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="openitemForm.remarks" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitOpenitemForm">确 定</el-button>
+        <el-button @click="cancelOpenitem">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -322,10 +427,11 @@ import { listDept } from "@/api/system/dept";
 import { listAllUser } from "@/api/system/user";
 import { getToken } from "@/utils/auth";
 import { addCommonfile, allFileList, delCommonfile, updateCommonfile } from "@/api/rc/commonfile";
+import { listOpenitem, getOpenitem, delOpenitem, addOpenitem, updateOpenitem } from "@/api/rc/openitem";
 
 export default {
   name: "Questionnaire",
-  dicts: ['t_sec_sub_chap_completion_status', 't_sec_sub_chap_yes_no_na', 't_sec_sub_chap_type', 't_sec_sub_chap_standard'],
+  dicts: ['t_open_item_result', 't_open_item_type', 't_open_item_level', 't_open_item_status','t_sec_sub_chap_completion_status', 't_sec_sub_chap_yes_no_na', 't_sec_sub_chap_type', 't_sec_sub_chap_standard'],
   data() {
     return {
       // 遮罩层
@@ -344,8 +450,10 @@ export default {
       questionnaireList: [],
       // 弹出层标题
       title: "",
+      openitemTitle: "",
       // 是否显示弹出层
       open: false,
+      openitemOpen: false,
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -369,9 +477,12 @@ export default {
       },
       // 表单参数
       form: {},
+      openitemForm: {},
       // 表单校验
       rules: {
       },
+      openitemRules: {
+      },
       // 用户列表
       userOptions: [],
       // 附件参数
@@ -404,10 +515,56 @@ export default {
   },
   created() {
     // this.getList();
-    this.getDeptList();
     this.getUserList();
   },
-  methods: {/** 附件按钮操作 */
+  methods: {
+    /** 开项按钮操作 */
+    handleOpenitem(row) {
+      this.resetOpenitem();
+      this.openitemOpen = true;
+      this.openitemTitle = "添加开项";
+      this.openitemForm.deptId = row.deptId;
+      this.openitemForm.auditId = row.auditId;
+      this.openitemForm.questionnaireId = row.id;
+      this.openitemForm.code = row.code;
+    },
+    /** 开项提交按钮 */
+    submitOpenitemForm() {
+      this.$refs["openitemForm"].validate(valid => {
+        if (valid) {
+          addOpenitem(this.openitemForm).then(response => {
+            this.$modal.msgSuccess("新增开项成功");
+            this.openitemOpen = false;
+          });
+        }
+      });
+    },
+    // 取消按钮
+    cancelOpenitem() {
+      this.openitemOpen = false;
+      this.resetOpenitem();
+    },
+    // 开项表单重置
+    resetOpenitem() {
+      this.openitemForm = {
+        id: null,
+        type: null,
+        questionnaireId: null,
+        description: null,
+        level: null,
+        openTime: null,
+        closeTime: null,
+        status: null,
+        personInCharge: null,
+        reviewer: null,
+        result: null,
+        deadline: null,
+        remarks: null,
+        deptId: null
+      };
+      this.resetForm("openitemForm");
+    },
+    /** 附件按钮操作 */
     handleDoc(row , type) {
       var typeName = "";
       if (type === "questionnaire-standard"){
@@ -473,7 +630,7 @@ export default {
         for (let i = 0; i < data.length; i++) {
           // 非顶级节点
           if (data[i].parentId !== 0) {
-            // 插入装置列表
+            // 插入用户列表
             this.userOptions.push({"dictLabel": data[i].nickName, "dictValue": data[i].userId});
           }
         }
@@ -503,19 +660,6 @@ export default {
         this.loading = false;
       });
     },
-    /** 查询装置列表 */
-    getDeptList() {
-      listDept().then(response => {
-        let data = response.data;
-        for (let i = 0; i < data.length; i++) {
-          // 非顶级节点
-          if (data[i].parentId !== 0) {
-            // 插入装置列表
-            this.deptOptions.push({"dictLabel": data[i].deptName, "dictValue": data[i].deptId});
-          }
-        }
-      });
-    },
     // 取消按钮
     cancel() {
       this.open = false;