Przeglądaj źródła

修改安全要求

余思翰 11 miesięcy temu
rodzic
commit
65e307d756

+ 2090
- 1941
oa-back/sql/cmc_oa(小余测试数据).sql
Plik diff jest za duży
Wyświetl plik


+ 7
- 1
oa-ui/src/utils/deleteResource.js Wyświetl plik

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-06-13 17:07:59
3
  * @Date: 2024-06-13 17:07:59
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-04 10:38:39
5
+ * @LastEditTime: 2024-07-09 17:09:23
6
  */
6
  */
7
 import request from '@/utils/request'
7
 import request from '@/utils/request'
8
 
8
 
35
       '/oa/carApproval/:id',
35
       '/oa/carApproval/:id',
36
     ]
36
     ]
37
   },
37
   },
38
+  {
39
+    procDefName: '设备审批',
40
+    apiUrl: [
41
+      '/oa/deviceApproval/:id',
42
+    ]
43
+  },
38
   {
44
   {
39
     procDefName: '项目流转',
45
     procDefName: '项目流转',
40
     apiUrl: [
46
     apiUrl: [

+ 133
- 0
oa-ui/src/views/flowable/form/components/chooseSaferequest.vue Wyświetl plik

1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-07-09 11:13:55
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-07-09 14:27:31
6
+-->
7
+<template>
8
+  <div>
9
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="128px">
10
+      <el-form-item label="安全提示类型">
11
+        <el-select v-model="queryParams.safeType" clearable placeholder="请选择" @change="handleQuery">
12
+          <el-option label="环境管理要求" value="0"></el-option>
13
+          <el-option label="安全生产与职业健康要求" value="1"></el-option>
14
+          <el-option label="信息安全管理要求" value="2"></el-option>
15
+        </el-select>
16
+      </el-form-item>
17
+      <el-form-item>
18
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
19
+      </el-form-item>
20
+    </el-form>
21
+
22
+    <el-table v-loading="loading" :data="safeRequestList" @selection-change="handleSelectionChange"
23
+      :row-key="getRowKeys">
24
+      <el-table-column type="selection" width="55" align="center" />
25
+      <el-table-column label="序号" type="index" width="55" align="center" />
26
+      <el-table-column label="安全提示类型" align="center" prop="safeType" :formatter="formatterLabel" width="120" />
27
+      <el-table-column label="内容" prop="content" />
28
+    </el-table>
29
+
30
+    <div class="text-center mt20">
31
+      <el-button type="primary" @click="confirm">确 定</el-button>
32
+      <el-button @click="$emit('close')">取 消</el-button>
33
+    </div>
34
+    <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
35
+      @pagination="getList" /> -->
36
+  </div>
37
+</template>
38
+
39
+<script>
40
+import { listSafeRequest, getSafeRequest } from '@/api/oa/safe/safeRequest'
41
+export default {
42
+  props: {
43
+    safeType: {
44
+      type: String,
45
+      default: ''
46
+    }
47
+  },
48
+  watch: {
49
+    safeType(val) {
50
+      this.queryParams.safeType = val;
51
+      this.handleQuery();
52
+    }
53
+  },
54
+  data() {
55
+    return {
56
+      // 遮罩层
57
+      loading: true,
58
+      // 总条数
59
+      total: 0,
60
+      // cmc安全要求表格数据
61
+      safeRequestList: [],
62
+      // 是否显示弹出层
63
+      open: false,
64
+      // 查询参数
65
+      queryParams: {
66
+        pageNum: 1,
67
+        pageSize: 99,
68
+        safeType: null,
69
+        content: null
70
+      },
71
+      // 表单参数
72
+      form: {},
73
+      // 表单校验
74
+      rules: {
75
+      },
76
+      chooseList: []
77
+    }
78
+  },
79
+  created() {
80
+    this.queryParams.safeType = this.safeType;
81
+    this.getList();
82
+  },
83
+  mounted() {
84
+  },
85
+  methods: {
86
+    /** 查询cmc安全要求列表 */
87
+    getList() {
88
+      this.loading = true;
89
+      listSafeRequest(this.queryParams).then(response => {
90
+        this.safeRequestList = response.rows;
91
+        this.total = response.total;
92
+        this.loading = false;
93
+      });
94
+    },
95
+    /** 搜索按钮操作 */
96
+    handleQuery() {
97
+      this.queryParams.pageNum = 1;
98
+      this.getList();
99
+    },
100
+    handleSelectionChange(val) {
101
+      this.chooseList = val
102
+    },
103
+    getRowKeys(row) {
104
+      return row.requestId;
105
+    },
106
+    formatterLabel(row) {
107
+      switch (row.safeType) {
108
+        case '0':
109
+          return '环境管理要求'
110
+        case '1':
111
+          return '安全生产与职业健康要求'
112
+        case '2':
113
+          return '信息安全管理要求'
114
+      }
115
+    },
116
+    formatterChooseList(arr){
117
+      let contentList = [];
118
+      arr.forEach(item => {
119
+        contentList.push(item.content)
120
+      })
121
+      let str = contentList.join('\n')
122
+      return str
123
+    },
124
+    confirm() {
125
+      let confirmRequest = this.formatterChooseList(this.chooseList);
126
+      this.$emit('confirm',confirmRequest)
127
+      this.$emit('close')
128
+    }
129
+  }
130
+}
131
+</script>
132
+
133
+<style lang="scss" scoped></style>

+ 2
- 52
oa-ui/src/views/flowable/form/projectProcess/addproject.vue Wyświetl plik

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-18 11:00:04
3
  * @Date: 2024-03-18 11:00:04
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-08 18:19:39
5
+ * @LastEditTime: 2024-07-09 14:41:48
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="project-wrapper">
8
   <div class="project-wrapper">
48
       <el-form-item label="联系电话:" prop="telephone">
48
       <el-form-item label="联系电话:" prop="telephone">
49
         <el-input v-model="addForm.telephone"></el-input>
49
         <el-input v-model="addForm.telephone"></el-input>
50
       </el-form-item>
50
       </el-form-item>
51
-      <!-- <el-form-item label="项目概况:">
52
-        <table border="1">
53
-          <tr>
54
-            <td style="width: 180px">工作内容</td>
55
-            <td>等级或比例尺</td>
56
-            <td>单位</td>
57
-            <td>工作量</td>
58
-            <td style="width: 100px">要求完成时间</td>
59
-            <td>备注</td>
60
-          </tr>
61
-          <tr v-for="(work, index) in workList" :key="index">
62
-            <td>
63
-              <el-input v-model="work.content" type="textarea" clearable
64
-                :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
65
-            </td>
66
-            <td>
67
-              <el-select v-model="work.scale" placeholder="请选择" clearable>
68
-                <el-option v-for="dict in dict.type.cmc_scale_grade" :key="dict.value" :label="dict.label"
69
-                  :value="dict.label" />
70
-              </el-select>
71
-            </td>
72
-            <td>
73
-              <el-select v-model="work.unit" placeholder="请选择" clearable>
74
-                <el-option v-for="dict in dict.type.cmc_unit" :key="dict.value" :label="dict.label"
75
-                  :value="dict.label" />
76
-              </el-select>
77
-            </td>
78
-            <td>
79
-              <el-input v-model="work.workload" clearable></el-input>
80
-            </td>
81
-            <td>
82
-              <el-date-picker style="width: 140px" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
83
-                placeholder="选择日期">
84
-              </el-date-picker>
85
-            </td>
86
-            <td>
87
-              <el-input v-model="work.remark" type="textarea" clearable
88
-                :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
89
-            </td>
90
-            <td>
91
-              <el-button type="text" style="color:#F56C6C" size="mini" @click="deletWorkItem(index)">删除行</el-button>
92
-            </td>
93
-          </tr>
94
-        </table>
95
-
96
-        <el-button icon="el-icon-plus" size="mini" @click="addWorkList"></el-button>
97
-      </el-form-item> -->
98
-      <!-- 项目安排 -->
99
-      <!-- <arrange-project ref="arrange" :taskForm="taskForm" :taskName="'项目登记'" :disabled="disabled"></arrange-project> -->
100
-      <!--  -->
101
       <el-form-item label="任务书上传:" prop="taskDocument">
51
       <el-form-item label="任务书上传:" prop="taskDocument">
102
         <div v-if="addForm.taskDocument" class="upload-list">
52
         <div v-if="addForm.taskDocument" class="upload-list">
103
           <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + addForm.taskDocument}`)">
53
           <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + addForm.taskDocument}`)">
136
       <el-button type="warning" @click="save" :disabled="disabled">保 存</el-button>
86
       <el-button type="warning" @click="save" :disabled="disabled">保 存</el-button>
137
       <el-button type="primary" @click="confirmAddForm" :disabled="disabled">提 交</el-button>
87
       <el-button type="primary" @click="confirmAddForm" :disabled="disabled">提 交</el-button>
138
     </div>
88
     </div>
139
-    <el-dialog title="选择合同" :visible.sync="openContract" width="1000px" append-to-body>
89
+    <el-dialog title="选择合同" :visible.sync="openContract" width="70%" append-to-body>
140
       <choose-contract @choose="setContract" @close="openContract = false"></choose-contract>
90
       <choose-contract @choose="setContract" @close="openContract = false"></choose-contract>
141
     </el-dialog>
91
     </el-dialog>
142
   </div>
92
   </div>

+ 16
- 10
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue Wyświetl plik

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-19 09:24:06
3
  * @Date: 2024-03-19 09:24:06
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-08 18:52:08
5
+ * @LastEditTime: 2024-07-09 09:28:51
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
31
       <el-row :gutter="20">
31
       <el-row :gutter="20">
32
         <el-col :span="12" :xs="24">
32
         <el-col :span="12" :xs="24">
33
           <el-form-item label="项目负责人:" prop="projectLeader">
33
           <el-form-item label="项目负责人:" prop="projectLeader">
34
-            <el-tag effect="plain" type="warning" style="margin-right: 10px;"
34
+            <el-select v-model="form.projectLeader" placeholder="请选择项目负责人" size="large" disabled>
35
+              <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
36
+            </el-select>
37
+            <!-- <el-tag effect="plain" type="warning" style="margin-right: 10px;"
35
               v-if="form.projectLeader != '' && form.projectLeader != undefined">{{
38
               v-if="form.projectLeader != '' && form.projectLeader != undefined">{{
36
-      form.projectLeaderName }}</el-tag>
37
-            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="choosePeople">选择</el-button>
39
+      form.projectLeaderName }}</el-tag> -->
40
+            <el-button type="primary" plain icon="el-icon-plus" @click="choosePeople">选择</el-button>
38
           </el-form-item>
41
           </el-form-item>
39
         </el-col>
42
         </el-col>
40
         <el-col :span="12" :xs="24">
43
         <el-col :span="12" :xs="24">
131
         deptId: [
134
         deptId: [
132
           { required: true, message: "请选择承担部门", trigger: "change" }
135
           { required: true, message: "请选择承担部门", trigger: "change" }
133
         ],
136
         ],
137
+        projectLeader: [
138
+          { required: true, message: "请选择项目负责人", trigger: "change" }
139
+        ]
134
       },
140
       },
135
       deptList: [],
141
       deptList: [],
136
       deptLeaderList: [],
142
       deptLeaderList: [],
247
         type: 'warning'
253
         type: 'warning'
248
       }).then(async () => {
254
       }).then(async () => {
249
         this.save();
255
         this.save();
250
-        let resData = await getDeptLeadersByDeptId({ deptId: 105 });
256
+        let resData = await getUsersDeptLeaderByDept({ deptId: 105 });
251
         let approvalId;
257
         let approvalId;
252
         if (resData.data) {
258
         if (resData.data) {
253
-          approvalId = resData.data[0].userId;
259
+          approvalId = resData.data.userId;
254
         }
260
         }
255
         console.log(approvalId);
261
         console.log(approvalId);
256
         const params = { taskId: this.taskForm.taskId };
262
         const params = { taskId: this.taskForm.taskId };
257
         // 获取下一个流程节点
263
         // 获取下一个流程节点
258
         getNextFlowNode(params).then(res => {
264
         getNextFlowNode(params).then(res => {
259
-        this.$set(this.taskForm.variables, "formId", this.taskForm.formId);
260
-        this.$set(this.taskForm.variables, "budgetInitiator", this.peopleForm.userId || this.form.projectLeader);
261
-        this.$set(this.taskForm.variables, "planInitiator", this.peopleForm.userId || this.form.projectLeader);
262
-        this.$set(this.taskForm.variables, "approval", approvalId);
265
+          this.$set(this.taskForm.variables, "formId", this.taskForm.formId);
266
+          this.$set(this.taskForm.variables, "budgetInitiator", this.peopleForm.userId || this.form.projectLeader);
267
+          this.$set(this.taskForm.variables, "planInitiator", this.peopleForm.userId || this.form.projectLeader);
268
+          this.$set(this.taskForm.variables, "approval", approvalId);
263
           complete(this.taskForm).then(response => {
269
           complete(this.taskForm).then(response => {
264
             this.$modal.msgSuccess(response.msg);
270
             this.$modal.msgSuccess(response.msg);
265
             this.$emit('goBack');
271
             this.$emit('goBack');

+ 5
- 3
oa-ui/src/views/flowable/form/projectProcess/assessWork.vue Wyświetl plik

128
     },
128
     },
129
     getProjectWorkList() {
129
     getProjectWorkList() {
130
       listProjectWork({ projectId: this.taskForm.formId }).then(res => {
130
       listProjectWork({ projectId: this.taskForm.formId }).then(res => {
131
-        this.workList = res.rows;
131
+        if (res.rows.length != 0) {
132
+          this.workList = res.rows;
133
+        }
132
       })
134
       })
133
     },
135
     },
134
     addWorkList() {
136
     addWorkList() {
175
     },
177
     },
176
     async confirm() {
178
     async confirm() {
177
       this.save();
179
       this.save();
178
-      let resData = await getDeptLeadersByDeptId({ deptId: 105 });
180
+      let resData = await getUsersDeptLeaderByDept({ deptId: 105 });
179
       let approval;
181
       let approval;
180
       if (resData.data) {
182
       if (resData.data) {
181
-        approval = resData.data[1].userId;
183
+        approval = resData.data.userId;
182
       }
184
       }
183
       this.$set(this.taskForm.variables, "approval", approval);
185
       this.$set(this.taskForm.variables, "approval", approval);
184
       const params = { taskId: this.taskForm.taskId };
186
       const params = { taskId: this.taskForm.taskId };

+ 30
- 1
oa-ui/src/views/flowable/form/safeForm.vue Wyświetl plik

28
             </el-select>
28
             </el-select>
29
           </el-form-item>
29
           </el-form-item>
30
           <el-form-item label="环境管理要求" prop="environmentComment">
30
           <el-form-item label="环境管理要求" prop="environmentComment">
31
+              <div v-if="taskName == '安全交底'">
32
+                <el-button size="mini" plain @click="chooseSafe('0')" type="primary" icon="el-icon-plus">选择要求</el-button>
33
+              </div>
31
             <el-input v-model="form.environmentComment" placeholder="请输入环境管理要求" type="textarea"
34
             <el-input v-model="form.environmentComment" placeholder="请输入环境管理要求" type="textarea"
32
               :disabled="taskName != '安全交底'" :autosize="{ minRows: 8 }" />
35
               :disabled="taskName != '安全交底'" :autosize="{ minRows: 8 }" />
33
           </el-form-item>
36
           </el-form-item>
34
           <el-form-item label="安全生产与职业健康要求" prop="outsideComment">
37
           <el-form-item label="安全生产与职业健康要求" prop="outsideComment">
38
+              <div v-if="taskName == '安全交底'">
39
+                <el-button size="mini" plain @click="chooseSafe('1')" type="primary" icon="el-icon-plus">选择要求</el-button>
40
+              </div>
35
             <el-input v-model="form.outsideComment" placeholder="请输入安全生产与职业健康要求" type="textarea"
41
             <el-input v-model="form.outsideComment" placeholder="请输入安全生产与职业健康要求" type="textarea"
36
               :disabled="taskName != '安全交底'" :autosize="{ minRows: 8 }" />
42
               :disabled="taskName != '安全交底'" :autosize="{ minRows: 8 }" />
37
           </el-form-item>
43
           </el-form-item>
38
           <el-form-item label="信息安全管理要求" prop="insideComment">
44
           <el-form-item label="信息安全管理要求" prop="insideComment">
45
+              <div v-if="taskName == '安全交底'">
46
+                <el-button size="mini" plain @click="chooseSafe('2')" type="primary" icon="el-icon-plus">选择要求</el-button>
47
+              </div>
39
             <el-input v-model="form.insideComment" placeholder="请输入信息安全管理要求" type="textarea" :autosize="{ minRows: 8 }"
48
             <el-input v-model="form.insideComment" placeholder="请输入信息安全管理要求" type="textarea" :autosize="{ minRows: 8 }"
40
               :disabled="taskName != '安全交底'" />
49
               :disabled="taskName != '安全交底'" />
41
           </el-form-item>
50
           </el-form-item>
86
         </el-card>
95
         </el-card>
87
       </el-col>
96
       </el-col>
88
     </el-row>
97
     </el-row>
98
+
99
+    <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body>
100
+      <choose-saferequest :safeType="safeType" @close="open = false" @confirm="setRequestVals"></choose-saferequest>
101
+    </el-dialog>
89
   </div>
102
   </div>
90
 </template>
103
 </template>
91
 
104
 
96
 import flow from '@/views/flowable/task/todo/detail/flow';
109
 import flow from '@/views/flowable/task/todo/detail/flow';
97
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
110
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
98
 import { flowXmlAndNode } from "@/api/flowable/definition";
111
 import { flowXmlAndNode } from "@/api/flowable/definition";
112
+import ChooseSaferequest from './components/chooseSaferequest.vue';
99
 
113
 
100
 export default {
114
 export default {
101
   components: {
115
   components: {
102
-    flow
116
+    flow,
117
+    ChooseSaferequest
103
   },
118
   },
104
   name: "Safe",
119
   name: "Safe",
105
   props: {
120
   props: {
116
     return {
131
     return {
117
       disclosurerUser: '',
132
       disclosurerUser: '',
118
       accepterUser: '',
133
       accepterUser: '',
134
+      safeType:'',
119
       // 遮罩层
135
       // 遮罩层
120
       loading: true,
136
       loading: true,
121
       // 选中数组
137
       // 选中数组
347
       this.download('oa/safe/export', {
363
       this.download('oa/safe/export', {
348
         ...this.queryParams
364
         ...this.queryParams
349
       }, `safe_${new Date().getTime()}.xlsx`)
365
       }, `safe_${new Date().getTime()}.xlsx`)
366
+    },
367
+    chooseSafe(type){
368
+      this.safeType = type
369
+      this.open = true;
370
+    },
371
+    setRequestVals(input){
372
+      if(this.safeType == '0'){
373
+        this.form.environmentComment = input
374
+      }else if(this.safeType == '1'){
375
+        this.form.outsideComment = input
376
+      }else{
377
+        this.form.insideComment = input
378
+      }
350
     }
379
     }
351
   }
380
   }
352
 };
381
 };

+ 23
- 23
oa-ui/src/views/flowable/form/settleForm.vue Wyświetl plik

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-04-30 09:03:14
3
  * @Date: 2024-04-30 09:03:14
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-07-09 14:08:54
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-07-09 17:01:08
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container" v-loading="loading">
8
   <div class="app-container" v-loading="loading">
9
-    <el-button type="warning" icon="el-icon-printer" @click="printOpen = true">打印</el-button>
10
-    <el-dialog title="结算表格预览" :visible.sync="printOpen" width="65%" append-to-body>
11
-      <settle-print :form="form" :chooseProject="chooseProject" :workList="settleWorkList"
12
-        :settleList="oldSettleSumList" @cancel="printOpen = false"></settle-print>
13
-    </el-dialog>
14
     <el-row :gutter="20">
9
     <el-row :gutter="20">
15
       <el-col :span="flowDisabled ? 19 : 24" :xs="24">
10
       <el-col :span="flowDisabled ? 19 : 24" :xs="24">
16
         <h2 class="text-center">项目结算表</h2>
11
         <h2 class="text-center">项目结算表</h2>
100
               </el-link>
95
               </el-link>
101
             </div>
96
             </div>
102
           </el-form-item>
97
           </el-form-item>
103
-          <el-form-item label="项目管理部审核结算单" prop="">
98
+          <!-- <el-form-item label="项目管理部审核结算单" prop="">
104
             <FileUpload v-if="taskName == '项目管理部结算'" :limit="1" :filePathName="'项目结算/项目管理部审核结算单'"
99
             <FileUpload v-if="taskName == '项目管理部结算'" :limit="1" :filePathName="'项目结算/项目管理部审核结算单'"
105
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="setModifyDocument">
100
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="setModifyDocument">
106
             </FileUpload>
101
             </FileUpload>
112
                 </span>
107
                 </span>
113
               </el-link>
108
               </el-link>
114
             </div>
109
             </div>
115
-          </el-form-item>
110
+          </el-form-item> -->
116
           <el-form-item label="分管领导审核结算单" prop="">
111
           <el-form-item label="分管领导审核结算单" prop="">
117
             <FileUpload v-if="taskName == '分管审核'" :limit="1" :filePathName="'项目结算/分管领导审核结算单'"
112
             <FileUpload v-if="taskName == '分管审核'" :limit="1" :filePathName="'项目结算/分管领导审核结算单'"
118
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="setFinalDocument">
113
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="setFinalDocument">
465
           </div>
460
           </div>
466
         </el-form>
461
         </el-form>
467
         <div style="text-align: center" v-if="!disabled">
462
         <div style="text-align: center" v-if="!disabled">
463
+          <el-button type="success" icon="el-icon-printer" @click="printOpen = true">打印</el-button>
468
           <el-button type="warning" @click="preserve">保存</el-button>
464
           <el-button type="warning" @click="preserve">保存</el-button>
469
           <el-button type="primary" @click="submitNextFlow">提交下一个流程</el-button>
465
           <el-button type="primary" @click="submitNextFlow">提交下一个流程</el-button>
470
         </div>
466
         </div>
479
       </el-col>
475
       </el-col>
480
     </el-row>
476
     </el-row>
481
 
477
 
478
+    <el-dialog title="结算表格预览" :visible.sync="printOpen" width="65%" append-to-body>
479
+      <settle-print :form="form" :chooseProject="chooseProject" :workList="settleWorkList"
480
+        :settleList="oldSettleSumList" @cancel="printOpen = false"></settle-print>
481
+    </el-dialog>
482
     <el-drawer title="选择单价" :visible.sync="drawer" direction="rtl">
482
     <el-drawer title="选择单价" :visible.sync="drawer" direction="rtl">
483
       <choose-price :row="clickWork" @getPrice="getPrice" @cancel="drawer = false"></choose-price>
483
       <choose-price :row="clickWork" @getPrice="getPrice" @cancel="drawer = false"></choose-price>
484
     </el-drawer>
484
     </el-drawer>
688
         this.form.jsUserName = this.$store.state.user.name;
688
         this.form.jsUserName = this.$store.state.user.name;
689
         this.form.jsUserId = this.$store.state.user.id;
689
         this.form.jsUserId = this.$store.state.user.id;
690
         this.form.jsTime = parseTime(new Date(), "{y}-{m}-{d}");
690
         this.form.jsTime = parseTime(new Date(), "{y}-{m}-{d}");
691
-      // } else if (this.taskName == "项目管理部结算") {
692
-      //   this.form.xmUserName = this.$store.state.user.name;
693
-      //   this.form.xmUserId = this.$store.state.user.id;
694
-      //   this.form.xmTime = parseTime(new Date(), "{y}-{m}-{d}");
695
-      // } else if (this.taskName == "结算发起人确认") {
696
-      //   this.form.deptUserName = this.$store.state.user.name;
697
-      //   this.form.deptUserId = this.$store.state.user.id;
698
-      //   this.form.deptTime = parseTime(new Date(), "{y}-{m}-{d}");
691
+        // } else if (this.taskName == "项目管理部结算") {
692
+        //   this.form.xmUserName = this.$store.state.user.name;
693
+        //   this.form.xmUserId = this.$store.state.user.id;
694
+        //   this.form.xmTime = parseTime(new Date(), "{y}-{m}-{d}");
695
+        // } else if (this.taskName == "结算发起人确认") {
696
+        //   this.form.deptUserName = this.$store.state.user.name;
697
+        //   this.form.deptUserId = this.$store.state.user.id;
698
+        //   this.form.deptTime = parseTime(new Date(), "{y}-{m}-{d}");
699
       } else if (this.taskName == "经营发展部校核") {
699
       } else if (this.taskName == "经营发展部校核") {
700
         this.form.jyUserName = this.$store.state.user.name;
700
         this.form.jyUserName = this.$store.state.user.name;
701
         this.form.jyUserId = this.$store.state.user.id;
701
         this.form.jyUserId = this.$store.state.user.id;
785
               this.getNextFlowNodeFn(null, 110, false);
785
               this.getNextFlowNodeFn(null, 110, false);
786
             } else if (this.taskName == "技术质量部审核") {
786
             } else if (this.taskName == "技术质量部审核") {
787
               this.getNextFlowNodeFn(null, 107, false);
787
               this.getNextFlowNodeFn(null, 107, false);
788
-            // } else if (this.taskName == "项目管理部结算") {
789
-            //   this.getNextFlowNodeFn();
790
-            // } else if (this.taskName == "结算发起人确认") {
791
-            //   this.getNextFlowNodeFn(null, 105, false);
788
+              // } else if (this.taskName == "项目管理部结算") {
789
+              //   this.getNextFlowNodeFn();
790
+              // } else if (this.taskName == "结算发起人确认") {
791
+              //   this.getNextFlowNodeFn(null, 105, false);
792
             } else if (this.taskName == "经营发展部校核") {
792
             } else if (this.taskName == "经营发展部校核") {
793
               this.getNextFlowNodeFn(null, this.deptId, true);
793
               this.getNextFlowNodeFn(null, this.deptId, true);
794
             } else if (this.taskName == "分管审核") {
794
             } else if (this.taskName == "分管审核") {
798
             } else if (this.taskName == "总经理审批") {
798
             } else if (this.taskName == "总经理审批") {
799
               this.getNextFlowNodeFn();
799
               this.getNextFlowNodeFn();
800
             }
800
             }
801
-          }else{
801
+          } else {
802
             this.$message.error('结算合计总金额不能大于预算内项目结算总金额!')
802
             this.$message.error('结算合计总金额不能大于预算内项目结算总金额!')
803
           }
803
           }
804
         } else {
804
         } else {
950
     },
950
     },
951
     calculateSettle(work) {
951
     calculateSettle(work) {
952
       let sum = work.workload * work.coefficient * work.price;
952
       let sum = work.workload * work.coefficient * work.price;
953
-      if(sum < 600){
953
+      if (sum < 600) {
954
         this.$message.warning('不足600,按600算')
954
         this.$message.warning('不足600,按600算')
955
         work.remark = '不足600,按600算'
955
         work.remark = '不足600,按600算'
956
         sum = 600
956
         sum = 600

+ 3
- 3
oa-ui/src/views/oa/project/index.vue Wyświetl plik

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-02-27 14:49:15
3
  * @Date: 2024-02-27 14:49:15
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-08 14:36:12
5
+ * @LastEditTime: 2024-07-09 15:26:58
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="project-wrapper">
8
   <div class="project-wrapper">
108
           <template slot-scope="scope" v-if="scope.row.userId !== 1">
108
           <template slot-scope="scope" v-if="scope.row.userId !== 1">
109
             <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
109
             <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
110
               v-hasPermi="['oa:project:query']">查看</el-button>
110
               v-hasPermi="['oa:project:query']">查看</el-button>
111
-            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
112
-              v-hasPermi="['oa:project:edit']">修改</el-button>
111
+            <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
112
+              v-hasPermi="['oa:project:edit']">修改</el-button> -->
113
             <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
113
             <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
114
               v-hasPermi="['oa:project:remove']">删除</el-button>
114
               v-hasPermi="['oa:project:remove']">删除</el-button>
115
           </template>
115
           </template>

+ 63
- 16
oa-ui/src/views/oa/project/info.vue Wyświetl plik

91
                 <svg-icon slot="prefix" icon-class="dept" />
91
                 <svg-icon slot="prefix" icon-class="dept" />
92
                 承担部门
92
                 承担部门
93
               </template>
93
               </template>
94
-              {{ project.undertakingDeptName }}
94
+              {{ getDeptNames(project.undertakingDept) }}
95
             </el-descriptions-item>
95
             </el-descriptions-item>
96
             <el-descriptions-item>
96
             <el-descriptions-item>
97
               <template slot="label">
97
               <template slot="label">
150
       </div>
150
       </div>
151
       <!-- 项目管理部安排 -->
151
       <!-- 项目管理部安排 -->
152
       <div class="box1 mt20">
152
       <div class="box1 mt20">
153
-        <div class="title">项目管理部安排
153
+        <div class="title">项目安排
154
           <div class="line"></div>
154
           <div class="line"></div>
155
         </div>
155
         </div>
156
         <div class="info mt20">
156
         <div class="info mt20">
157
-          <el-descriptions class="descriptions" border :column="4" style="text-align: center;">
157
+          <el-descriptions class="descriptions" border :column="2" style="text-align: center;">
158
             <el-descriptions-item>
158
             <el-descriptions-item>
159
               <template slot="label">
159
               <template slot="label">
160
                 <svg-icon slot="prefix" icon-class="dept" />
160
                 <svg-icon slot="prefix" icon-class="dept" />
161
                 承担部门
161
                 承担部门
162
               </template>
162
               </template>
163
-              {{ project.undertakingDeptName }}
163
+              <div style="display: flex;">
164
+                <div>{{ getDeptNames(project.undertakingDept) }}</div>
165
+                <div>
166
+                  <el-button class="ml20" type="success" plain size="mini" icon="el-icon-refresh"
167
+                    @click="deptOpen = true" v-hasPermi="['oa:project:edit']">
168
+                    更换部门
169
+                  </el-button>
170
+                </div>
171
+              </div>
172
+
164
             </el-descriptions-item>
173
             </el-descriptions-item>
165
             <el-descriptions-item>
174
             <el-descriptions-item>
166
               <template slot="label">
175
               <template slot="label">
174
                 <svg-icon slot="prefix" icon-class="user" />
183
                 <svg-icon slot="prefix" icon-class="user" />
175
                 项目负责人
184
                 项目负责人
176
               </template>
185
               </template>
177
-              <div style="display: flex;justify-content:space-between;">
186
+              <div style="display: flex;">
178
                 <div>{{ project.projectLeaderUser ? project.projectLeaderUser.nickName : "" }}</div>
187
                 <div>{{ project.projectLeaderUser ? project.projectLeaderUser.nickName : "" }}</div>
179
                 <div>
188
                 <div>
180
-                  <el-button class="ml20" type="warning" plain size="mini" icon="el-icon-plus"
189
+                  <el-button class="ml20" type="success" plain size="mini" icon="el-icon-refresh"
181
                     @click="prLeaderOpen = true" v-hasPermi="['oa:project:edit']">
190
                     @click="prLeaderOpen = true" v-hasPermi="['oa:project:edit']">
182
                     更换项目负责人
191
                     更换项目负责人
183
                   </el-button>
192
                   </el-button>
191
               </template>
200
               </template>
192
               {{ getUserName(project.siteLeader) }}
201
               {{ getUserName(project.siteLeader) }}
193
             </el-descriptions-item>
202
             </el-descriptions-item>
194
-            <el-descriptions-item>
203
+            <el-descriptions-item :span="3">
195
               <template slot="label">
204
               <template slot="label">
196
                 <svg-icon slot="prefix" icon-class="form" />
205
                 <svg-icon slot="prefix" icon-class="form" />
197
                 项目预算编制
206
                 项目预算编制
199
               <!-- v-hasPermi="['oa:project:edit']" -->
208
               <!-- v-hasPermi="['oa:project:edit']" -->
200
               <el-link type="primary" @click="openBudget = true">项目预算表</el-link>
209
               <el-link type="primary" @click="openBudget = true">项目预算表</el-link>
201
             </el-descriptions-item>
210
             </el-descriptions-item>
202
-            <el-descriptions-item>
211
+            <!-- <el-descriptions-item>
203
               <template slot="label">
212
               <template slot="label">
204
                 <svg-icon slot="prefix" icon-class="date" />
213
                 <svg-icon slot="prefix" icon-class="date" />
205
                 组织交底时间
214
                 组织交底时间
220
                   <span class="el-icon-download">下载文件</span>
229
                   <span class="el-icon-download">下载文件</span>
221
                 </el-link>
230
                 </el-link>
222
               </div>
231
               </div>
223
-            </el-descriptions-item>
232
+            </el-descriptions-item> -->
224
           </el-descriptions>
233
           </el-descriptions>
225
         </div>
234
         </div>
226
       </div>
235
       </div>
227
       <!-- 技术质量部安排 -->
236
       <!-- 技术质量部安排 -->
228
       <div class="box1 mt20">
237
       <div class="box1 mt20">
229
-        <div class="title">技术质量部安排
238
+        <div class="title">技术安排
230
           <div class="line"></div>
239
           <div class="line"></div>
231
         </div>
240
         </div>
232
         <div class="info mt20">
241
         <div class="info mt20">
279
                 <el-input disabled type="textarea" v-model="projectComment.jyComment"></el-input>
288
                 <el-input disabled type="textarea" v-model="projectComment.jyComment"></el-input>
280
                 <div class="sign mt10">
289
                 <div class="sign mt10">
281
                   <div class="mr20">签名:<span class="auditor">{{ projectComment.jyUser ? projectComment.jyUser.nickName :
290
                   <div class="mr20">签名:<span class="auditor">{{ projectComment.jyUser ? projectComment.jyUser.nickName :
282
-                    ''
283
-                  }}</span>
291
+        ''
292
+                      }}</span>
284
                   </div>
293
                   </div>
285
                   <div class="ml20"><span>审核时间:{{ projectComment.jyApprovalTime }}</span></div>
294
                   <div class="ml20"><span>审核时间:{{ projectComment.jyApprovalTime }}</span></div>
286
                 </div>
295
                 </div>
295
                 <el-input disabled type="textarea" v-model="projectComment.manageComment"></el-input>
304
                 <el-input disabled type="textarea" v-model="projectComment.manageComment"></el-input>
296
                 <div class="sign mt10">
305
                 <div class="sign mt10">
297
                   <div class="mr20">签名:<span class="auditor">{{ projectComment.managerUser ?
306
                   <div class="mr20">签名:<span class="auditor">{{ projectComment.managerUser ?
298
-                    projectComment.managerUser.nickName : '' }}</span>
307
+        projectComment.managerUser.nickName : '' }}</span>
299
                   </div>
308
                   </div>
300
                   <div class="ml20"><span>审核时间:{{ projectComment.manageApprovalTime }}</span></div>
309
                   <div class="ml20"><span>审核时间:{{ projectComment.manageApprovalTime }}</span></div>
301
                 </div>
310
                 </div>
346
               </template>
355
               </template>
347
               <el-select v-model="devices" multiple disabled style="width:100%">
356
               <el-select v-model="devices" multiple disabled style="width:100%">
348
                 <el-option v-for="item in deviceList" :key="item.deviceId" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
357
                 <el-option v-for="item in deviceList" :key="item.deviceId" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
349
-                  + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place" :value="item.deviceId">
358
+        + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place" :value="item.deviceId">
350
                 </el-option>
359
                 </el-option>
351
               </el-select>
360
               </el-select>
352
             </el-descriptions-item>
361
             </el-descriptions-item>
449
     <el-dialog title="更换项目负责人" :visible.sync="prLeaderOpen" width="1000px" append-to-body>
458
     <el-dialog title="更换项目负责人" :visible.sync="prLeaderOpen" width="1000px" append-to-body>
450
       <choose-people :multiple="false" @chooseUser="changeProjectLeader"></choose-people>
459
       <choose-people :multiple="false" @chooseUser="changeProjectLeader"></choose-people>
451
     </el-dialog>
460
     </el-dialog>
461
+    <el-dialog title="更换承担部门" :visible.sync="deptOpen" width="1000px" append-to-body>
462
+      <el-form>
463
+        <el-form-item label="当前承担部门:">
464
+          {{ getDeptNames(project.undertakingDept) }}
465
+        </el-form-item>
466
+        <el-form-item label="更换承担部门:">
467
+          <el-select v-model="undertakingDept" multiple clearable style="width:80%">
468
+            <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
469
+              :value="item.deptId">
470
+            </el-option>
471
+          </el-select>
472
+        </el-form-item>
473
+      </el-form>
474
+      <div class="text-center">
475
+        <el-button type="primary" @click="changeUndertakingDept">确定</el-button>
476
+        <el-button @click="deptOpen = false">取消</el-button>
477
+      </div>
478
+    </el-dialog>
452
   </div>
479
   </div>
453
 </template>
480
 </template>
454
 
481
 
508
       openSafe: false,
535
       openSafe: false,
509
       openTech: false,
536
       openTech: false,
510
       prLeaderOpen: false,
537
       prLeaderOpen: false,
538
+      deptOpen: false,
511
       taskForm: {
539
       taskForm: {
512
         formId: ''
540
         formId: ''
513
       },
541
       },
515
       devices: [],
543
       devices: [],
516
       cars: [],
544
       cars: [],
517
       drivers: [],
545
       drivers: [],
518
-      participates: []
546
+      participates: [],
547
+      undertakingDept: []
519
     }
548
     }
520
   },
549
   },
521
   methods: {
550
   methods: {
651
     changeProjectLeader(val) {
680
     changeProjectLeader(val) {
652
       let preLeader = this.getUserName(this.project.projectLeader);
681
       let preLeader = this.getUserName(this.project.projectLeader);
653
       let curLeader = val.nickName;
682
       let curLeader = val.nickName;
654
-      this.$confirm('项目负责人将由' + preLeader + '变更为' + curLeader + ',是否确认', '提示', {
683
+      this.$confirm('项目负责人将由 [' + preLeader + '] 变更为 [' + curLeader + '] ,是否确认', '提示', {
655
         confirmButtonText: '确定',
684
         confirmButtonText: '确定',
656
         cancelButtonText: '取消',
685
         cancelButtonText: '取消',
657
         type: 'warning'
686
         type: 'warning'
664
           this.$router.go(0);
693
           this.$router.go(0);
665
         })
694
         })
666
       }).catch(() => { });
695
       }).catch(() => { });
696
+    },
697
+    changeUndertakingDept() {
698
+      let deptIds = this.undertakingDept.join(',');
699
+      let currentDept = this.getDeptNames(deptIds);
700
+      let preDept = this.getDeptNames(this.project.undertakingDept);
701
+      this.$confirm('承担部门将由 [' + preDept + '] 变更为 [' + currentDept + '] ,是否确认', '提示', {
702
+        confirmButtonText: '确定',
703
+        cancelButtonText: '取消',
704
+        type: 'warning'
705
+      }).then(() => {
706
+        updateProject(
707
+          { projectId: this.project.projectId, undertakingDept: deptIds }
708
+        ).then(res => {
709
+          this.$message.success('承担部门修改成功');
710
+          this.deptOpen = false;
711
+          this.$router.go(0);
712
+        })
713
+      })
667
     }
714
     }
668
   },
715
   },
669
 }
716
 }

+ 53
- 67
oa-ui/src/views/oa/safe/request.vue Wyświetl plik

1
 <template>
1
 <template>
2
   <div class="app-container">
2
   <div class="app-container">
3
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
3
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="128px">
4
+      <el-form-item label="安全提示类型">
5
+        <el-select v-model="queryParams.safeType" clearable placeholder="请选择" @change="handleQuery">
6
+          <el-option label="环境管理要求" value="0"></el-option>
7
+          <el-option label="安全生产与职业健康要求" value="1"></el-option>
8
+          <el-option label="信息安全管理要求" value="2"></el-option>
9
+        </el-select>
10
+      </el-form-item>
4
       <el-form-item>
11
       <el-form-item>
5
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
12
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
6
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
13
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
9
 
16
 
10
     <el-row :gutter="10" class="mb8">
17
     <el-row :gutter="10" class="mb8">
11
       <el-col :span="1.5">
18
       <el-col :span="1.5">
12
-        <el-button
13
-          type="primary"
14
-          plain
15
-          icon="el-icon-plus"
16
-          size="mini"
17
-          @click="handleAdd"
18
-          v-hasPermi="['oa:safe:add']"
19
-        >新增</el-button>
19
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
20
+          v-hasPermi="['oa:safe:add']">新增</el-button>
20
       </el-col>
21
       </el-col>
21
       <el-col :span="1.5">
22
       <el-col :span="1.5">
22
-        <el-button
23
-          type="success"
24
-          plain
25
-          icon="el-icon-edit"
26
-          size="mini"
27
-          :disabled="single"
28
-          @click="handleUpdate"
29
-          v-hasPermi="['oa:safe:edit']"
30
-        >修改</el-button>
23
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
24
+          v-hasPermi="['oa:safe:edit']">修改</el-button>
31
       </el-col>
25
       </el-col>
32
       <el-col :span="1.5">
26
       <el-col :span="1.5">
33
-        <el-button
34
-          type="danger"
35
-          plain
36
-          icon="el-icon-delete"
37
-          size="mini"
38
-          :disabled="multiple"
39
-          @click="handleDelete"
40
-          v-hasPermi="['oa:safe:remove']"
41
-        >删除</el-button>
27
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
28
+          v-hasPermi="['oa:safe:remove']">删除</el-button>
42
       </el-col>
29
       </el-col>
43
       <el-col :span="1.5">
30
       <el-col :span="1.5">
44
-        <el-button
45
-          type="warning"
46
-          plain
47
-          icon="el-icon-download"
48
-          size="mini"
49
-          @click="handleExport"
50
-          v-hasPermi="['oa:safe:export']"
51
-        >导出</el-button>
31
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
32
+          v-hasPermi="['oa:safe:export']">导出</el-button>
52
       </el-col>
33
       </el-col>
53
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
34
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
54
     </el-row>
35
     </el-row>
55
 
36
 
56
     <el-table v-loading="loading" :data="safeRequestList" @selection-change="handleSelectionChange">
37
     <el-table v-loading="loading" :data="safeRequestList" @selection-change="handleSelectionChange">
57
       <el-table-column type="selection" width="55" align="center" />
38
       <el-table-column type="selection" width="55" align="center" />
58
-      <el-table-column label="常用要求id" align="center" prop="requestId" />
59
-      <el-table-column label="安全提示类型" align="center" prop="safeType" />
60
-      <el-table-column label="内容" align="center" prop="content" />
39
+      <el-table-column label="序号" width="55" align="center" prop="requestId" />
40
+      <el-table-column label="安全提示类型" align="center" prop="safeType" :formatter="formatterLabel" />
41
+      <el-table-column label="内容" prop="content" />
61
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
42
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
62
         <template slot-scope="scope">
43
         <template slot-scope="scope">
63
-          <el-button
64
-            size="mini"
65
-            type="text"
66
-            icon="el-icon-edit"
67
-            @click="handleUpdate(scope.row)"
68
-            v-hasPermi="['oa:safe:edit']"
69
-          >修改</el-button>
70
-          <el-button
71
-            size="mini"
72
-            type="text"
73
-            icon="el-icon-delete"
74
-            @click="handleDelete(scope.row)"
75
-            v-hasPermi="['oa:safe:remove']"
76
-          >删除</el-button>
44
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
45
+            v-hasPermi="['oa:safe:edit']">修改</el-button>
46
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
47
+            v-hasPermi="['oa:safe:remove']">删除</el-button>
77
         </template>
48
         </template>
78
       </el-table-column>
49
       </el-table-column>
79
     </el-table>
50
     </el-table>
80
-    
81
-    <pagination
82
-      v-show="total>0"
83
-      :total="total"
84
-      :page.sync="queryParams.pageNum"
85
-      :limit.sync="queryParams.pageSize"
86
-      @pagination="getList"
87
-    />
51
+
52
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
53
+      @pagination="getList" />
88
 
54
 
89
     <!-- 添加或修改cmc安全要求对话框 -->
55
     <!-- 添加或修改cmc安全要求对话框 -->
90
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
56
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
91
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
57
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
58
+        <el-form-item label="安全提示类型">
59
+          <el-select v-model="form.safeType" clearable placeholder="请选择" @change="handleQuery">
60
+          <el-option label="环境管理要求" value="0"></el-option>
61
+          <el-option label="安全生产与职业健康要求" value="1"></el-option>
62
+          <el-option label="信息安全管理要求" value="2"></el-option>
63
+        </el-select>
64
+        </el-form-item>
92
         <el-form-item label="内容">
65
         <el-form-item label="内容">
93
-          <editor v-model="form.content" :min-height="192"/>
66
+          <!-- <editor v-model="form.content" :min-height="192" /> -->
67
+          <el-input type="textarea" v-model="form.content" :autosize="{ minRows: 4}"></el-input>
94
         </el-form-item>
68
         </el-form-item>
95
       </el-form>
69
       </el-form>
96
       <div slot="footer" class="dialog-footer">
70
       <div slot="footer" class="dialog-footer">
180
     // 多选框选中数据
154
     // 多选框选中数据
181
     handleSelectionChange(selection) {
155
     handleSelectionChange(selection) {
182
       this.ids = selection.map(item => item.requestId)
156
       this.ids = selection.map(item => item.requestId)
183
-      this.single = selection.length!==1
157
+      this.single = selection.length !== 1
184
       this.multiple = !selection.length
158
       this.multiple = !selection.length
185
     },
159
     },
186
     /** 新增按钮操作 */
160
     /** 新增按钮操作 */
187
     handleAdd() {
161
     handleAdd() {
188
       this.reset();
162
       this.reset();
189
       this.open = true;
163
       this.open = true;
190
-      this.title = "添加cmc安全要求";
164
+      this.title = "添加安全要求";
191
     },
165
     },
192
     /** 修改按钮操作 */
166
     /** 修改按钮操作 */
193
     handleUpdate(row) {
167
     handleUpdate(row) {
196
       getSafeRequest(requestId).then(response => {
170
       getSafeRequest(requestId).then(response => {
197
         this.form = response.data;
171
         this.form = response.data;
198
         this.open = true;
172
         this.open = true;
199
-        this.title = "修改cmc安全要求";
173
+        this.title = "修改安全要求";
200
       });
174
       });
201
     },
175
     },
202
     /** 提交按钮 */
176
     /** 提交按钮 */
222
     /** 删除按钮操作 */
196
     /** 删除按钮操作 */
223
     handleDelete(row) {
197
     handleDelete(row) {
224
       const requestIds = row.requestId || this.ids;
198
       const requestIds = row.requestId || this.ids;
225
-      this.$modal.confirm('是否确认删除cmc安全要求编号为"' + requestIds + '"的数据项?').then(function() {
199
+      this.$modal.confirm('是否确认删除cmc安全要求编号为"' + requestIds + '"的数据项?').then(function () {
226
         return delSafeRequest(requestIds);
200
         return delSafeRequest(requestIds);
227
       }).then(() => {
201
       }).then(() => {
228
         this.getList();
202
         this.getList();
229
         this.$modal.msgSuccess("删除成功");
203
         this.$modal.msgSuccess("删除成功");
230
-      }).catch(() => {});
204
+      }).catch(() => { });
231
     },
205
     },
232
     /** 导出按钮操作 */
206
     /** 导出按钮操作 */
233
     handleExport() {
207
     handleExport() {
234
       this.download('oa/safeRequest/export', {
208
       this.download('oa/safeRequest/export', {
235
         ...this.queryParams
209
         ...this.queryParams
236
       }, `safeRequest_${new Date().getTime()}.xlsx`)
210
       }, `safeRequest_${new Date().getTime()}.xlsx`)
211
+    },
212
+    formatterLabel(row){
213
+      console.log(row);
214
+      switch (row.safeType){
215
+        case '0':
216
+          return '环境管理要求'
217
+        case '1':
218
+          return '安全生产与职业健康要求'
219
+        case '2':
220
+          return '信息安全管理要求'
221
+      }
222
+         
237
     }
223
     }
238
   }
224
   }
239
 };
225
 };

Ładowanie…
Anuluj
Zapisz